5 unstable releases
|0.3.1||Dec 3, 2020|
|0.3.0||Nov 10, 2020|
|0.2.1||Aug 25, 2020|
|0.2.0||May 22, 2020|
|0.1.0||May 18, 2020|
#150 in Emulators
430 downloads per month
Used in 4 crates
Forest is an implementation of Filecoin written in Rust. The implementation will take a modular approach to building a full Filecoin node in two parts — (i) building Filecoin’s security critical systems in Rust from the Filecoin Protocol Specification, specifically the virtual machine, blockchain, and node system, and (ii) integrating functional components for storage mining and storage & retrieval markets to compose a fully functional Filecoin node implementation.
❗Current development should be considered a work in progress.
||Chain structures and syncing functionality|
||Verification and signature definitions|
||Forest encoding and decoding|
||IPLD data model for content-addressable data|
||Networking synchronization and storage|
||State transition and actor, message and address definitions|
rustc >= 1.40.0
# Clone repository git clone --recursive https://github.com/chainsafe/forest cd forest # Install binary to $HOME/.cargo/bin and run node make install forest
OpenCLare also required to build. Installation for protoc can be found here.
Run the node with custom config and bootnodes
forest --config /path/to/your_config.toml
Example of config options available:
data_dir = "<directory for all chain and networking data>" genesis_file = "<relative file path of genesis car file>" [network] listening_multiaddr = "<multiaddress>" bootstrap_peers = ["<multiaddress>"]
Example of a multiaddress:
The Forest logger uses Rust's log filtering options with the
RUST_LOG environment variable.
Will show all debug logs by default, but the
forest_libp2p::service logs will be limited to
# To run base tests cargo test # add --release flag for longer compilation but faster execution # To pull serialization vectors submodule and run serialization tests make test-vectors # To run all tests and all features enabled make test-all