Skip to content

Latest commit

 

History

History
85 lines (77 loc) · 5.09 KB

overview.adoc

File metadata and controls

85 lines (77 loc) · 5.09 KB

Marlowe 3.0 tutorials

This document gives an overview of a set of Marlowe tutorials.

  1. introducing-marlowe.adoc This tutorial gives an overview of the ideas behind Marlowe, as a domain-specific language embedded in Haskell. It also introduces commitments and timeouts, which are central to how Marlowe works in a blockchain context.

  2. escrow-ex.adoc This tutorial introduces a simple financial contract in pseudocode, before explaining how it is modified to work in Marlowe, giving the first example of a Marlowe contract.

  3. marlowe-model.adoc In this tutorial we look at our general approach to modelling contracts in Marlowe, and the context in which Marlowe contracts are executed: the Cardano blockchain. In doing this we also introduce some of the standard terminology that we will use in describing Marlowe.

  4. marlowe-step-by-step.adoc This tutorial explains the five ways of building contracts in Marlowe. Four of these – Pay, Let, If and When – build a complex contract from simpler contracts, and the fifth, Close, is a simple contract. In explaining these contracts we will also explain Marlowe values, observations and actions, which are used to supply external information and inputs to a running contract to control how it will evolve.

  5. playground-blockly.adoc This section shows how Marlowe contracts are built using the Blockly visual programming environment.

  6. marlowe-data.adoc This tutorial formally introduces Marlowe as a Haskell data type, as well as presenting the different types used by the model, and discussing a number of assumptions about the infrastructure in which contracts will be run.

  7. embedded-marlowe.adoc This tutorial shows how to use some simple features of Haskell to write Marlowe contracts that are more readable, maintainable and reusable, illustrated by revisiting the escrow contract.

  8. using-marlowe.adoc This tutorial shows you how to use Marlowe from the command line in ghci, and in particular shows how to exercise a contract using the semantics given earlier.

  9. playground-overview.adoc This tutorial introduces the Marlowe Playground, an online tool for creating embedded Marlowe contracts and interactively stepping through their execution.

  10. potential-problems-with-contracts.adoc This tutorial reviews how not to write Marlowe contracts, and what can go wrong when executing contracts even if they have been written correctly.

  11. static-analysis.adoc Marlowe contracts can be analysed without running them, and so, for instance, we can verify that a contract will always make the payments that it is required to, irrespective of the inputs that it receives. This tutorial explains this, and how to run an analysis in the playground.

  12. actus-marlowe.adoc This tutorial gives an introduction to the general idea of the ACTUS taxonomy, plus examples implemented in Marlowe.

  13. migrating.adoc Here we explain how the current version of Marlowe is related to earlier versions, in particular version 1.3 and 2.0.

  14. wallets-simulation.adoc The wallets simulation present a view of a running contract from the perspective of a participant in that contract, rather than the ‘omniscient‘ view given in the simulation tab.

  15. actus-labs.adoc The Actus Labs support generation of different styles of Actus contract from the parameters that describe the particular contract instance.

  16. javascript-embedding.adoc Marlowe is also embedded in JavaScript, and here we show how Marlowe contracts can be created and edited in JavaScript.

These tutorials address the current version of Marlowe, 3.0, which is implemented in the Marlowe Playground, and available {marloweplayground}[here].

The version covered in the ISoLA paper, and supported in the original version of Meadow, is tagged as v1.3 and is available here.