At Fluence, we use WebAssembly (Wasm) to run applications in a trustless network of independent nodes. This trustless environment mandates that every piece of the code executed by any network node must be verified by another node to check whether the execution was performed correctly. In order to be verifiable, every computation must be made deterministic, which means that to run WebAssembly code in a trustless network, we need to make its execution deterministic.
There are a great many different tools that will allow a developer to compile C/C++, Rust, or AssemblyScript code to WebAssembly. But it is not enough…
(this post was initially published here)
WebAssembly has become the computation machine of choice for a significant number of decentralized projects. While WebAssembly has already been supported for a while by the major browsers, standalone virtual machines are somewhat less common with WAVM probably being the oldest and most mature. Other virtual machines are catching up though.
For example, Asmble translates WebAssembly instructions into JVM bytecode which allows it to enjoy Java JIT compiler perks almost for free. Wasmer compiles WebAssembly code into Cranelift IR which is later translated into executable machine code by Cranelift. Aforementioned WAVM compiles WebAssembly into…
The article had been originally published here and in the Fluence Network blog, but removed as Medium publishing rules allow only one copy of content to exist on the platform .
You can find the “Standalone WebAssembly Benchmarks” in the Fluence Network blog along with other technical articles.