Run SUM Chain from source
A SUM Chain node is a single Rust binary. To join an existing network, build it from this repository and point it at that network’s config.toml and genesis.json plus a bootnode, it will sync the chain, serve JSON-RPC, and gossip with peers. Running a full node does not make you a validator.
Three commands to a running node
- 1
Build from source target/release/sumchain
Compile the node binary from the workspace. The binary is named sumchain.
- 2
Prepare config and genesis config.toml + genesis.json
To join an existing network, use that network’s config.toml and its exact genesis.json (obtained from the operators). Every node on a network runs a byte-identical genesis, do not edit it to join.
- 3
Run the node
Start syncing, serve JSON-RPC, and connect to peers via a bootnode from your target network.
# From the repository root
cargo build -p sumchain-node --release
# → binary at target/release/sumchaintarget/release/sumchain run \
--config config.toml \
--genesis genesis.jsonsumchain run \
--config config.toml \
--genesis genesis.json \
--data-dir ./data \
--rpc-addr 127.0.0.1:8545 \
--p2p-addr /ip4/0.0.0.0/tcp/9933 \
--bootnodes /ip4/<PUBLIC_IP>/tcp/9933/p2p/<PEER_ID>Connect via bootnodes
Bootnodes are multiaddrs your node dials to discover peers. Supply them with --bootnodes or in your config. Use your network's published bootnodes; the form below is a placeholder.
# Example only, replace placeholders with real
# published bootnodes for your target network.
bootnodes = [
"/ip4/<PUBLIC_IP>/tcp/9933/p2p/<PEER_ID>",
]Full node vs. validator
Full node
Anyone can run a full node. It syncs blocks, verifies state, serves JSON-RPC, and relays transactions and blocks to peers. Running a full node does not produce blocks.
Validator / block producer
Block production runs under Proof-of-Authority: the proposer for each height is chosen from the active validator set. Supplying a --validator-key does not by itself make your node a block producer.
Validator-set membership is coordinated