3.1 KiB
Substrate Node Template
A new FRAME-based Substrate node, ready for hacking 🚀
Local Development
Follow these steps to prepare your local environment for Substrate development 🛠️
Simple Method
You can install all the required dependencies with a single command (be patient, this can take up to 30 minutes).
curl https://getsubstrate.io -sSf | bash -s -- --fast
Manual Method
Manual steps for Linux-based systems can be found below; you can find more information at substrate.dev.
Install Rust:
curl https://sh.rustup.rs -sSf | sh
Initialize your Wasm Build environment:
./scripts/init.sh
Build
Once you have prepared your local development environment, you can build the node template. Use this command to build the Wasm and native code:
cargo build --release
Playground
The Substrate Playground is an online development environment that allows you to take advantage of a pre-configured container with pre-compiled build artifacts 🤸♀️
Run
Single Node Development Chain
Purge any existing developer chain state:
./target/release/node-template purge-chain --dev
Start a development chain with:
./target/release/node-template --dev
Detailed logs may be shown by running the node with the following environment variables set:
RUST_LOG=debug RUST_BACKTRACE=1 cargo run -- --dev
.
Multi-Node Local Testnet
If you want to see the multi-node consensus algorithm in action, refer to our Start a Private Network tutorial.
Run in Docker
First, install Docker and Docker Compose.
Then run the following command to start a single node development chain.
./scripts/docker_run.sh
This command will firstly compile your code, and then start a local development network. You can
also replace the default command (cargo build --release && ./target/release/node-template --dev --ws-external
)
by appending your own. A few useful ones are as follow.
# Run Substrate node without re-compiling
./scripts/docker_run.sh ./target/release/node-template --dev --ws-external
# Purge the local dev chain
./scripts/docker_run.sh ./target/release/node-template purge-chain --dev
# Check whether the code is compilable
./scripts/docker_run.sh cargo check