1# Substrate Node Template23A new FRAME-based Substrate node, ready for hacking.45## Build67Install Rust:89```bash10curl https://sh.rustup.rs -sSf | sh11```1213Initialize your Wasm Build environment:1415```bash16./scripts/init.sh17```1819Build Wasm and native code:2021```bash22cargo build --release23```2425## Run2627### Single node development chain2829Purge any existing developer chain state:3031```bash32./target/release/node-template purge-chain --dev33```3435Start a development chain with:3637```bash38./target/release/node-template --dev39```4041Detailed logs may be shown by running the node with the following environment variables set: `RUST_LOG=debug RUST_BACKTRACE=1 cargo run -- --dev`.4243### Multi-node local testnet4445If you want to see the multi-node consensus algorithm in action locally, then you can create a local testnet with two validator nodes for Alice and Bob, who are the initial authorities of the genesis chain that have been endowed with testnet units.4647Optionally, give each node a name and expose them so they are listed on the Polkadot [telemetry site](https://telemetry.polkadot.io/#/Local%20Testnet).4849You'll need two terminal windows open.5051We'll start Alice's substrate node first on default TCP port 30333 with her chain database stored locally at `/tmp/alice`. The bootnode ID of her node is `QmRpheLN4JWdAnY7HGJfWFNbfkQCb6tFf4vvA6hgjMZKrR`, which is generated from the `--node-key` value that we specify below:5253```bash54cargo run -- \55 --base-path /tmp/alice \56 --chain=local \57 --alice \58 --node-key 0000000000000000000000000000000000000000000000000000000000000001 \59 --telemetry-url ws://telemetry.polkadot.io:1024 \60 --validator61```6263In the second terminal, we'll start Bob's substrate node on a different TCP port of 30334, and with his chain database stored locally at `/tmp/bob`. We'll specify a value for the `--bootnodes` option that will connect his node to Alice's bootnode ID on TCP port 30333:6465```bash66cargo run -- \67 --base-path /tmp/bob \68 --bootnodes /ip4/127.0.0.1/tcp/30333/p2p/QmRpheLN4JWdAnY7HGJfWFNbfkQCb6tFf4vvA6hgjMZKrR \69 --chain=local \70 --bob \71 --port 30334 \72 --telemetry-url ws://telemetry.polkadot.io:1024 \73 --validator74```7576Additional CLI usage options are available and may be shown by running `cargo run -- --help`.