Run a node

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.

Build & run

Three commands to a running node

  1. 1

    Build from source target/release/sumchain

    Compile the node binary from the workspace. The binary is named sumchain.

  2. 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. 3

    Run the node

    Start syncing, serve JSON-RPC, and connect to peers via a bootnode from your target network.

build
# From the repository root
cargo build -p sumchain-node --release
# → binary at target/release/sumchain
run
target/release/sumchain run \
  --config config.toml \
  --genesis genesis.json
optional flags
sumchain 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>
Peering

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.

--bootnodes/ip4/<PUBLIC_IP>/tcp/9933/p2p/<PEER_ID>
config.toml (excerpt)
# Example only, replace placeholders with real
# published bootnodes for your target network.
bootnodes = [
  "/ip4/<PUBLIC_IP>/tcp/9933/p2p/<PEER_ID>",
]
Roles

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

Joining the active validator set is a coordinated Proof-of-Authority process, not an automatic outcome of running a node with a key. Run a full node to participate in the network today; validator onboarding is handled separately by the network operators.