102 lines
3.1 KiB
Markdown
102 lines
3.1 KiB
Markdown
[![Try on playground](https://img.shields.io/badge/Playground-node_template-brightgreen?logo=Parity%20Substrate)](https://playground-staging.substrate.dev/?deploy=node-template)
|
|
|
|
# Substrate Node Template
|
|
|
|
A new FRAME-based Substrate node, ready for hacking :rocket:
|
|
|
|
## Local Development
|
|
|
|
Follow these steps to prepare your local environment for Substrate development :hammer_and_wrench:
|
|
|
|
### Simple Method
|
|
|
|
You can install all the required dependencies with a single command (be patient, this can take up
|
|
to 30 minutes).
|
|
|
|
```bash
|
|
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](https://substrate.dev/docs/en/knowledgebase/getting-started/#manual-installation).
|
|
|
|
Install Rust:
|
|
|
|
```bash
|
|
curl https://sh.rustup.rs -sSf | sh
|
|
```
|
|
|
|
Initialize your Wasm Build environment:
|
|
|
|
```bash
|
|
./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](https://substrate.dev/docs/en/knowledgebase/advanced/executor#wasm-execution)
|
|
and [native](https://substrate.dev/docs/en/knowledgebase/advanced/executor#native-execution) code:
|
|
|
|
```bash
|
|
cargo build --release
|
|
```
|
|
|
|
## Playground [![Try on playground](https://img.shields.io/badge/Playground-node_template-brightgreen?logo=Parity%20Substrate)](https://playground-staging.substrate.dev/?deploy=node-template)
|
|
|
|
[The Substrate Playground](https://playground-staging.substrate.dev/?deploy=node-template) is an
|
|
online development environment that allows you to take advantage of a pre-configured container
|
|
with pre-compiled build artifacts :woman_cartwheeling:
|
|
|
|
## Run
|
|
|
|
### Single Node Development Chain
|
|
|
|
Purge any existing developer chain state:
|
|
|
|
```bash
|
|
./target/release/node-template purge-chain --dev
|
|
```
|
|
|
|
Start a development chain with:
|
|
|
|
```bash
|
|
./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](https://substrate.dev/docs/en/tutorials/start-a-private-network/).
|
|
|
|
### Run in Docker
|
|
|
|
First, install [Docker](https://docs.docker.com/get-docker/) and
|
|
[Docker Compose](https://docs.docker.com/compose/install/).
|
|
|
|
Then run the following command to start a single node development chain.
|
|
|
|
```bash
|
|
./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.
|
|
|
|
```bash
|
|
# 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
|
|
```
|