All Projects β†’ ChainSafe β†’ Forest

ChainSafe / Forest

Licence: other
🌲 Rust Filecoin Node Implementation

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Forest

Wavelet
Write once, run forever. Deploy robust, scalable, decentralized WebAssembly applications on Wavelet.
Stars: ✭ 224 (-0.44%)
Mutual labels:  blockchain, p2p
Gym Fx
Forex trading simulator environment for OpenAI Gym, observations contain the order status, performance and timeseries loaded from a CSV file containing rates and indicators. Work In Progress
Stars: ✭ 151 (-32.89%)
Mutual labels:  blockchain, p2p
Hive
Fast. Scalable. Powerful. The Blockchain for Web 3.0
Stars: ✭ 142 (-36.89%)
Mutual labels:  blockchain, p2p
Atomicdex Desktop
atomicDEX Desktop app - project codename "Dextop"
Stars: ✭ 126 (-44%)
Mutual labels:  blockchain, p2p
Blockchain
A simple implementation of blockchain in java
Stars: ✭ 201 (-10.67%)
Mutual labels:  blockchain, p2p
Particl Desktop
The GUI application for Particl Markeplace and PART coin wallet. A decentralized peer to peer marketplace –free, secure, private, untraceable.
Stars: ✭ 131 (-41.78%)
Mutual labels:  blockchain, p2p
Sdk
Write your own dat app!
Stars: ✭ 215 (-4.44%)
Mutual labels:  blockchain, p2p
Hyperchain
Official Go implementation of the hyperchain protocol
Stars: ✭ 90 (-60%)
Mutual labels:  blockchain, p2p
Gun
An open source cybersecurity protocol for syncing decentralized graph data.
Stars: ✭ 15,172 (+6643.11%)
Mutual labels:  blockchain, p2p
Unstoppable Wallet Ios
A secure and decentralized Bitcoin and other cryptocurrency wallet for iPhone. Supports Bitcoin, Ethereum, EOS, Binance Chain, Bitcoin Cash, DASH, ...
Stars: ✭ 180 (-20%)
Mutual labels:  blockchain, p2p
Ddn
DDN, Data Delivery Network, a next generation blockchain system
Stars: ✭ 118 (-47.56%)
Mutual labels:  blockchain, p2p
Redwood
A highly-configurable, distributed, realtime database that manages a state tree shared among many peers.
Stars: ✭ 218 (-3.11%)
Mutual labels:  blockchain, p2p
Catapult Server
Catapult server
Stars: ✭ 111 (-50.67%)
Mutual labels:  blockchain, p2p
Bitcoin Kit Ios
Full Bitcoin library for iOS, implemented on Swift. SPV wallet implementation for Bitcoin, Bitcoin Cash and Dash blockchains.
Stars: ✭ 134 (-40.44%)
Mutual labels:  blockchain, p2p
Covenantforum
CovenantForum is a simple Decentralized forum powered by CovenantSQL.
Stars: ✭ 102 (-54.67%)
Mutual labels:  blockchain, p2p
Space Daemon
The Space Daemon packages together IPFS, Textile Threads/Buckets, and Textile Powergate (Filecoin*) into one easy to install Daemon to make it easy to build peer to peer and privacy focused apps.
Stars: ✭ 151 (-32.89%)
Mutual labels:  blockchain, p2p
Awesome Privacy On Blockchains
A curated list of privacy on blockchains resources
Stars: ✭ 86 (-61.78%)
Mutual labels:  blockchain, p2p
Node Webdollar
WebDollar Protocol - Currency of the Internet
Stars: ✭ 89 (-60.44%)
Mutual labels:  blockchain, p2p
Unstoppable Wallet Android
A secure and decentralized Bitcoin and other cryptocurrency wallet for Android phones. Supports Bitcoin, Ethereum, EOS, Binance Chain, Bitcoin Cash, DASH, ...
Stars: ✭ 165 (-26.67%)
Mutual labels:  blockchain, p2p
Bitcoin Wallet
Bitcoin Wallet app for your Android device. Standalone Bitcoin node, no centralized backend required.
Stars: ✭ 2,672 (+1087.56%)
Mutual labels:  blockchain, p2p

build status Apache License MIT License Discord Twitter

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.

Our crates:

crate description
blockchain Chain structures and syncing functionality
crypto Verification and signature definitions
encoding Forest encoding and decoding
ipld IPLD data model for content-addressable data
node Networking synchronization and storage
vm State transition and actors, message and address definitions

Dependencies

rustc >= 1.46.0

Usage

# Clone repository
git clone --recursive https://github.com/chainsafe/forest
cd forest

# Install binary to $HOME/.cargo/bin and run node
make install
forest

OpenCL, hwloc and a compatible assembly linker (ex. clang) are also required to build Filecoin proofs.

Config

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: "/ip4/54.186.82.90/tcp/1347/p2p/12D3K1oWKNF7vNFEhnvB45E9mw2B5z6t419W3ziZPLdUDVnLLKGs"

Logging

The Forest logger uses Rust's log filtering options with the RUST_LOG environment variable.
For example:

RUST_LOG="debug,forest_libp2p::service=info" forest

Will show all debug logs by default, but the forest_libp2p::service logs will be limited to info

Testing

# To run base tests
cargo test # use `make test-release` for longer compilation but faster execution

# To pull serialization vectors submodule and run serialization and conformance tests
make test-vectors

# To run all tests and all features enabled
make test-all

Joining the testnet

Build with the interopnet config with:

make interopnet

# Run and import past the state migrations to latest network version
./target/release/forest --import-snapshot ./types/networks/src/interopnet/snapshot.car

Importing the snapshot only needs to happen during the first run. Following this, to restart the daemon run:

./target/release/forest

Documentation

https://chainsafe.github.io/forest/

Contributing

ChainSafe Security Policy

Reporting a Security Bug

We take all security issues seriously, if you believe you have found a security issue within a ChainSafe project please notify us immediately. If an issue is confirmed, we will take all necessary precautions to ensure a statement and patch release is made in a timely manner.

Please email us a description of the flaw and any related information (e.g. reproduction steps, version) to security at chainsafe dot io.

License

Forest is dual licensed under MIT + Apache 2.0.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].