<aside> 🚫 This document has been ported to https://github.com/filecoin-project/fvm-project to facilitate community engagement. PR: https://github.com/filecoin-project/fvm-project/pull/6 Please do not make any further updates here.

</aside>

Purpose: Explore the design space for a VM that can support both the EVM ecosystem and the current built-in Filecoin actors. More details are in the requirements section of the project document.

References

Prior Art

<aside> ⚠️ This section has been merged to https://github.com/filecoin-project/fvm-project/blob/main/02-state-of-the-art.md.

</aside>

This section covers some alternative WASM based blockchain VMs.

eWASM

Some interesting considerations for Blockchain VMs. Work seems to have stalled in 2019.

Substrate

Supports WASM and the EVM, but with separate VMs. It also supports cross-VM calling.

Near Protocol

WASM based VM, but they're adding EVM support with project Aurora.

Has an async (and parallel?) calling convention. Calling is entirely based on callbacks and promises. Of course, it does all this without closures so it's more like erlang than javascript.

VM Considerations

While we've considered alternative VM implementations, we're currently leaning towards WASM. This section dives into VM-related design considerations.