This is a mono repository for Subspace Network implementation, primarily containing Subspace node/client using Substrate framework and farmer app implementations.
The implementation is currently being upgraded to Subspace, in the meantime you'll find multiple references to Spartan Proof-of-Capacity (PoC) consensus, which is a simplified version of Subspace using proof of useless storage that was implemented as part of Web 3 Foundation Open Grant.
The structure of this repository is the following:
crates
contains Subspace-specific Rust crates used to build node and farmer, most are following Substrate naming conventionssubstrate
contains modified copies of Substrate's crates that we use for testingnode-template-spartan
is the current implementation of the node for Spartan protocol (will be upgraded to Subspace soon)
This is a monorepo with multiple binaries and the workflow is typical for Rust projects:
cargo run --bin node-template-spartan -- --dev --tmp
to run a nodecargo run --release --bin spartan-farmer -- plot 256000 spartan
to create a 1 GiB plotcargo run --release --bin spartan-farmer -- farm
to start farming
NOTE: You need to have nightly
version of Rust toolchain with wasm32-unknown-unknown
target available or else you'll get a compilation error.
You can find readme files in corresponding crates for requirements, multi-node setup and other details.