A template for kick starting a Rust and Blockchain project using Substrate.
This template includes the minimum required components to start a PoS testnet, inspired by substrate-node-template.
- Consensus related pallets: Babe & GRANDPA
- Staking related pallets: staking, session, authorship, im-online, offences, utility
- Governance related pallets: collective, membership, elections-phragmen, democracy, treasure
Notes: The code is un-audited and not production ready, use it at your own risk.
Follow the steps below to get started.
First, complete the Dev Docs Installation.
Use the following command to build the node and run it after build successfully:
cargo build --release
./target/release/substrate-stencil --dev
- Modify the genesis config in chain_spec.rs
- Build spec,
./target/release/substrate-stencil build-spec --chain staging > stencil-staging.json
- Change original spec to encoded raw spec,
./target/release/substrate-stencil build-spec --chain=stencil-staging.json --raw > stencil-staging-raw.json
- Start your bootnodes, node key can be generate with command
./target/release/substrate-stencil key generate-node-key
../target/release/substrate-stencil \ --node-key <your-node-key> \ --base-path /tmp/bootnode1 \ --chain stencil-staging-raw.json \ --name bootnode1
- Start your initial validators,
./target/release/substrate-stencil \ --base-path /tmp/validator1 \ --chain stencil-staging-raw.json \ --bootnodes /ip4/<your-bootnode-ip>/tcp/30333/p2p/<your-bootnode-peerid> \ --port 30336 \ --ws-port 9947 \ --rpc-port 9936 \ --name validator1 \ --validator
- Insert session keys
- Attract enough validators from community in waiting
- Call force_new_era in staking pallet with sudo, rotate to PoS validators
- Enable governance, and remove sudo
- Enable transfer and other functions