Blazing Fast and Verified WebAssembly for the Blockchain [Workshop]
This workshop will be a brief introduction to the MultiversX ecosystem, and how to build and deploy on it. The main focus, however, remains firmly on WebAssembly technology, so an interest in blockchain is not necessary for anyone to find this engaging.
Who this talk is for (in no particular order): - people curious about blockchain;
- people who are looking into integrating WebAssembly in their own tech stacks;
- people interested in WebAssembly optimization;
- people looking for ideas on how to test their WebAssembly builds.
All of the code will be Rust; nothing is required other than a laptop with the latest Rust installed and your favorite editor!
No previous knowledge of blockchain required, I’ll do my best to make it comprehensible for everyone. Some familiarity with Rust is ideal, but not essential.
A broad summary:
- Introduction: a short primer on what the blockchain technology and ecosystems require from us.
- What a smart contract actually does. Getting a taste of it with a few lines of code.
- Building the first wasm binary. What makes it so small (< 1kB), what makes it so fast.
- Wasm in action: deploying and running it on the blockchain, also with a few lines of code.
- Deriving some basic tests automatically.
- A rundown of the architecture: how it all runs, where it runs, how it all fits together. Will also be talking about our execution engine, Wasmer, and how we’ve integrated it into both Go and Rust codebases.
- How we are using the same Rust syntax to write contracts, interactions and tests, using several backends.
- Variation: producing several build variants from the same smart contract code. On meta-programming and our build infrastructure.
- A taste of WebAssembly-based symbolic execution.
There are some ideas that I’ve touched upon before (such as in this clip from a few months ago ), but most of the tooling will be presented here for the first time.