filecoin-project / ref-fvm

Reference implementation of the Filecoin Virtual Machine
https://fvm.filecoin.io/
Other
385 stars 140 forks source link
filecoin rust webassembly

Reference Filecoin VM implementation (v4; dev)

Continuous integration

This repository contains the reference implementation of the Filecoin VM (specs). It is written in Rust, and intended to be integrated via FFI into non-Rust clients (e.g. Lotus, Fuhon), or directly into Rust clients (e.g. Forest). FFI bindings for Go are provided in-repo, and developers are encouraged to contribute bindings for other languages.

See the Project Website for details.

Build requirements

Build instructions

$ git clone https://github.com/filecoin-project/ref-fvm.git
$ cd ref-fvm
$ make

Code structure

Here's what you'll find in each directory:

Versioning

At least of 202409, ref-fvm follows this versioning scheme:

Below is the mapping between ref-fvm versions and the network upgrade versions they support:

FVM Version Supported Network Version Range Source
v2 15-17 https://github.com/filecoin-project/ref-fvm/blob/release/v2/fvm/src/machine/default.rs#L64
v3 18-20 https://github.com/filecoin-project/ref-fvm/blob/release/v3/fvm/src/machine/default.rs#L63
v4 21+ https://github.com/filecoin-project/ref-fvm/blob/master/fvm/src/machine/default.rs#L55

These are relevant issues/discussions about changing FVM versioning:

License

Dual-licensed: MIT, Apache Software License v2, by way of the Permissive License Stack.


actors and vm forked from ChainSafe/forest commit: 73e8f95a108902c6bef44ee359a8478663844e5b