Duniter is compiled using the Rust compiler. For a general overview, refer to the Rustc Dev Guide.
Substrate and Duniter provide a set of features enabling or disabling parts of the code using conditional compilation. More information on conditional compilation can be found here, or by enabling or disabling compilation of packages. Below is a list of all available features:
- runtime-benchmarks: Compiles the runtime with benchmarks for extrinsics benchmarking.
- try-runtime: Compiles the runtime for tests and verifies operations in a simulated environment.
- std: Enables the Rust standard library.
- gdev: Sets
gdev-runtime
andstd
used to build the development chain. - gtest: Sets
gtest-runtime
andstd
used to build the test chain. - g1: Sets
g1-runtime
andstd
used to build the production chain. - constant-fees: Uses a constant and predictable weight-to-fee conversion only for testing.
- embed: Enables hardcoded live chainspecs loaded from "../specs/gtest-raw.json" file.
- native: Compiles the runtime into native-platform executable only for debugging purposes.
Note: By default, Duniter will be compiled using the gdev
feature and including the compilation of the distance oracle. Since the three Duniter chains are mutually exclusive, it is mandatory to disable the default feature to compile gtest
and g1
as follows:
cargo build --no-default-features --features gtest
cargo build --no-default-features --features g1
cargo build --no-default-features -p distance-oracle --features std