Marlowe resources and tools (playground, tutorials, documentation)

The Marlowe playground: (browser-based environment to write and test smart contracts) https://alpha.marlowe.iohkdev.io/#/

Marlowe Tutorial (video-based), Simon Thompson personally guides you through the tutorial here: https://www.youtube.com/playlist?list=PLqu19-ygE4ofUgGpslOs5zCr9Z6zCMibq

Marlowe Tutorial (text-based): https://alpha.marlowe.iohkdev.io/tutorial/index.html#_marlowe_tutorials

Marlowe Telegram Group: Telegram: Contact @IOHK_Marlowe

12 Likes

First link is innactive…
Error: 404 page not found

1 Like

Thanks for the notification. We’re working on it.

| Roslon
6 December |

  • | - |

First link is innactive…
Error: 404 page not found


Visit Topic or reply to this email to respond.

To unsubscribe from these emails, click here.

Simon Thompson
Technical Project Director, dApp platform | UK

Website: www.iohk.io
Skype: simonjthompson
Twitter: @thompson_si

Input Output

TwitterGithubLinkedInYouTubeFacebookRedditMeetupCardanoAnnouncements

2 Likes

Marlow Play is up and running, and that’s good news.
Is it deliberate action that in comments you cannot use signs such as: ą, ę, ć, ś, ń, ż, ź, ó?

1 Like

Can you please specify if you are refering to the Haskell editor? If yes, it is not on purpose and we will look into it.
For the future issues, I encourage you to create issues in our GitHub repo: Issues · input-output-hk/marlowe-cardano · GitHub ; this will help us manage any requests.
Thank you!

1 Like

The lack of diacritics in the code comments at https://play.marlowe-finance.io/#/haskell doesn’t seem like a problem.
However, if we want to have an end customer, we would surely like to have their transactions handled in their national language.

1 Like

What is the difference between:

and

?

Hello,
marlowe is the repository for the Marlowe DSL with semantics and formal verification.
marlowe-cardano is the implementation of Marlowe on Cardano and also contains the playground and Marlowe run

3 Likes

Hi there,

Using the existing documentation, I was able to create Marlowe Financial smart contract, I even tried marlowe playground for testing few simple contracts.
Now I am trying to create/host a real smart contract and how to interact with it.
Although I found multiple options, but nothing seems to be working. Most of links are either outdated or not reachable.

Could you please provide one golden source of information which I can try to host a Marlowe smart contract and interact with the same.

Thanks,
AS

1 Like

Sorry about the outdated documentation—that is being revamped. Currently, there are three techniques for running Marlowe contracts on the Cardano blockchain.

image

The Marlowe Starter Kit, which is intended for developers who are familiar with Cardano tools and the UTxO model, includes lessons for each of the three techniques.

  • Lessons 1, 2, 4, 5 require access to the Marlowe Runtime backend services, which can be deployed with Docker.
  • Lesson 3 just requires access to a Cardano Node, but you’ll need to manage UTxOs manually.

If you have further questions, run into difficulties, or have suggestions, please feel free to reach out, either here or in #ask-marlowe on the IOG Discord. Thanks!

2 Likes

Thanks a lot for quick reply, will try this tomorrow.

2 Likes

Hello There,

One more quick question, once I launched the Jupyter notebook using nix run command, how can I access this Jupyter server from different machine.
I tried changing the JUPYTER_CONFIG_DIR variable to relevant Jupyter config file but it seems this Jupyter notebook is launched differently from NIX and not picking up the updated config file.

Any help or direction is highly appreciated.

Thanks,
AS

Unfortunately, the nix flake github:tweag/jupyenv does not take an argument to enable remote access. Until it does (maybe its Issue#58 should be reopened or a new issue created), there are two approaches to accessing remotely.

  1. Connect to the notebook from a remote machine via an ssh tunnel that forwards the notebook’s port.
  2. Alternatively, modify github:tweag/jupyenv as shown in this commit and then edit the starter kit’s flake at this line so that is uses the modified Jupyter environment.

I haven’t tried these recently, so Jupyter’s security settings might defeat them: it is somewhat finicky about proxies and might be able to detect the tunnel.

Thanks @bwbush for very prompt response, let me try this.
I might come back for any further clarifications.

Thanks,
AS

BTW, Jupyter is just a convenience for tutorials and experimentation. If one exposes Marlowe Runtime’s ports (either its web server or its proxy client), then one can execute contracts remotely.

For example, exposing the Marlowe Runtime webserver port would provide the capability for any tool or programming language to make HTTP calls to execute Marlowe contracts.

Hello @bwbush,

Thanks for all your help and support, I am able to run couple of contracts end-to-end via jupyter notebook.

Though, I am able to interact with cardano blockchain using jupyter notebook, however still outside the jupyter notebook (say from cmd or python) when I tried to send similar curl request (say curl -sSI “http://127.0.0.1:3780/healthcheck”) it failed to connect.

I assume I am missing some configuration here to connect to marowe/cardano cli running on remote server.

Could you please help me here.

Thanks,
AS

Well I am able run the healthcheck using another tunnel to actual Linux server.
Could you guide me the documentation wherein I can find how to fire cardano/marlowe commands remotely using similar http calls.

Thanks,
AS

I don’t think we have documentation for port forwarding and tunneling, since that technique isn’t specific to Cardano or Marlowe.

Here is an example of tunneling from the remote (192.168.0.12) ports 537xx to the corresponding local (127.0.0.1) ports 37xx and also forwarding the node socket from /remote/node.socket to /local/node.socket. This command is executed on the local machine (not the remote one).

ssh -NT \
  -L 3700:127.0.0.1:53700 \
  -L 3715:127.0.0.1:53715 \
  -L 3716:127.0.0.1:53716 \
  -L 3720:127.0.0.1:53720 \
  -L 3723:127.0.0.1:53723 \
  -L 3724:127.0.0.1:53724 \
  -L 3725:127.0.0.1:53725 \
  -L 3726:127.0.0.1:53726 \
  -L /local/node.socket:/remote/node.socket \
  192.168.0.12

It could be that local firewalls are blocking traffic. The Marlowe Runtime web server on the remote machine binds to all interfaces (0.0.0.0) by default, so it should be possible to access its port directly if the remote machine permits. If you’re running Marlowe Runtime inside docker, then either docker’s network configuration or the remote machine’s firewall might be blocking traffic.

Thanks @bwbush: I am able to get it working end to end.

One more question, We don’t want user to provide the signing key for authorizing the transactions. Is there a way that we can send notification to user wallet to deposit money to contract wallet.
He just has to open the wallet and click on send, something like that.

Or is it already handled, once we add an address in contract he receives some notification for depositing the money.
In marlowe playground ( https://run.marlowe-finance.io/) I already validated that it sends notification to deposit money to buying party, just want to clarify that it will also happen in real test network and with any cardano wallet.

Thanks,
AS

1 Like