TABConf / 6.tabconf.com

TABConf 6
18 stars 2 forks source link

Writing smart contracts in Rust using Simfony workshop #99

Open uncomputable opened 3 weeks ago

uncomputable commented 3 weeks ago

Description

What is this workshop about? Provide as many details as possible.

This workshop introduces Simfony, a language that looks and feels like Rust that lets you write Bitcoin smart contracts. We will explore how existing contracts written in Bitcoin Script are represented in Rust syntax. We will play around with the existing tooling, such as a Simfony IDE running in the web, and a wallet that can spend Simfony programs on the Elements-Simplicity testnet.

What would an attendee learn from this workshop?

The main takeaway of this workshop is that smart contracts can be written in Rust syntax, which is arguably more elegant than Bitcoin Script or Solidity. The workshop aims to give attendees a clear understanding of what Simfony offers. By the end of the workshop, attendees should be able to use the existing tools to dive deeper should they wish to do so.

Is there anything attendees should read up on before they attend this talk?

The Simfony GitHub repo hosts documentation and examples. Attendees are also encouraged to try the Simfony web IDE to get a first impression of the language.

None of this is required reading.

Is there anything attendees should set up before the workshop?

The bulk of the workshop can be done in the Simfony web IDE, which runs in any browser.

Attendees might want to install the Rust compiler to compile and run the Simfony wallet. The wallet is useful for running contracts on actual Elements nodes, which the web IDE doesn't do.

Relevant Links

Level of difficulty

Advanced. Simfony is Rust without the hard parts (no ownership, no lifetimes, ...), so Simfony should be significantly easier to learn than Rust. That said, the Simfony tooling is immature and there are bound to be some rough edges in the UX. For instance, the Simfony wallet runs on the command line. Attendees should understand the UTXO model and roughly how Bitcoin smart contracts work. Attendees should be proficient in a programming language, which doesn't have to be Rust.

About the Speaker

Social Links

Github: https://github.com/uncomputable Twitter: https://twitter.com/uncomputab1e Website

Workshop Details

Length of workshop

The introduction and main part of the workshop will take roughly 2 hours. We can go for an additional hour depending on how people are engaged.

Preferred Day/Time Slot

Any time works.

iglesiasbrandon commented 2 weeks ago

@uncomputable Will this be available in liquid for the workshop?

uncomputable commented 2 weeks ago

Simplicity / Simfony will run on Liquid testnet for the workshop. Liquid mainnet will not have support because we want to thoroughly test Simplicity / Simfony on Liquid testnet first.