Skip to content

Setting up bootnode

Paul edited this page Jun 30, 2024 · 9 revisions

Bootnode is a regular node providing the a bunch of initial peers for newcomers to start off syncing with. The bootnode list is introduced by the network ChainSpec file the node is getting started with. The Ledger of Things mainnetChainSpecRaw.json

This part of the ChainSpec is editable, meaning anyone can replace or change any bootnode in the list and get the node running with new bootnodes:

"bootNodes": [
    "/ip4/37.157.249.162/tcp/30333/p2p/12D3KooWPtSEY4xcwkfc2BBFhBfDBgsv33C6Q91prz6GD3uH1KEy",
    "/ip4/221.15.185.232/tcp/30333/p2p/12D3KooWFsqBqW8dosLmB83Rw9Ahsikgh69hNwpNsp9KZ9qjqkGn",
    "/ip4/146.19.24.10/tcp/30333/p2p/12D3KooWETQLiFMYEKk3Ztg9DRqCByRmwswru8acgGB2TendoQL9",
    "/ip4/65.108.130.174/tcp/30333/p2p/12D3KooWMC1iPZ7ngoq5umf7RapLjwGkiQFYApUZXXqr2AbvK9VW",
    "/ip4/65.108.130.175/tcp/30333/p2p/12D3KooWJPMeEsiXUSRuue3CzPpkBkoquiJz85HU2SwW4uSVVFYh",
    "/ip4/65.108.133.126/tcp/30333/p2p/12D3KooWQJt9Pj91kCbWL46tceCudE1NpSjXotAYvrGufVewghoX",
    "/ip4/43.163.242.241/tcp/30333/ws/p2p/12D3KooWQfXS8tEiLtMjwcHgarMQRGa8tZXoo4j1GzvFSxGaR7bw",
    "/ip4/146.19.215.217/tcp/30333/p2p/12D3KooWChGra2xyms8HYjyHQ573fDy7J2P3DLCwQSZKFzsSZ2wN",
    "/ip4/144.76.75.94/tcp/30333/ws/p2p/12D3KooWF2S3YVEPQnJLYpUUXszargK6rnA9ViWmSrRN4jGT57gu",
    "/ip4/65.21.8.167/tcp/30333/p2p/12D3KooWQGBiHHuGcLxX1JoiFTUMTNARt9f2K2UFuri4xCHzxWgE"
  ],

Requirements

The node should be able to catch up with the chain, and one ipv4 static address is required.

Generate Node-key

Use this command to generate stable Node-key for your bootnode:

cd 3DP
./target/release/poscan-consensus key generate-node-key

The output is a key pair (public key and private key)

12D3KooWGwuWavkMFsTuN4dVKUbfuR3fBMqjGtdXVCbaMF3TvsVS
005f76fa0bd924e7843962eae7ef56bf7731376ec80c36023f79e7abbdb39e79

Run your bootnode with the Node-key generated

Use --node-key parameter to run the node with the node key specified:

./target/release/poscan-consensus --base-path ~/3dp-chain/ --chain mainnetSpecRaw.json --name MyNodeName --validator --telemetry-url "wss://submit.telemetry.3dpscan.io/submit 0" --author <my_account_public_key> --threads 2 --no-mdns --node-key 005f76fa0bd924e7843962eae7ef56bf7731376ec80c36023f79e7abbdb39e79

Share your bootnode address with others

Use you server ipv4 address and the bootnode public key to create the line for the mainnetChainSpecRaw.json. For example:

"/ip4/35.137.229.112/tcp/30333/p2p/12D3KooWGwuWavkMFsTuN4dVKUbfuR3fBMqjGtdXVCbaMF3TvsVS",
  • 30333 - external port must be open and forwarded to the local server
  • tcp - the protocol must be enabled
  • ip4/35.137.229.112 - static ipv4 address available from the Internet

Anyone can add your bootnode into the ChainSpec. So, feel free to share it with others.