Skip to content

Add A Node To A Network

Assumptions

  1. There is an existing STRATO network which is an operational PBFT network
  2. The network to be added currently does not have an assigned blockstanbul validator or private key

Steps to Add a Node

  1. SSH or otherwise navigate onto the node you'll be adding
  2. Add the STRATO software package to your node.
  3. Change directories into the strato folder: cd strato-getting-started\
  4. Copy the run script from one of the existing nodes to your new node.

    Your run.sh script should contain the following:

    • blockstanbulPrivateKey=<your-new-node-private-key>
    • validators= the list of validators that the nodes on the existing network were started with
    • blockstanbulSkipCheck=true

    The blockstanbulRoundPeriodS and blockstanbulBlockPeriodMs should be the same as the existing network. In most cases, the block period is not set

    The BOOT_NODE_IP listed should be for a node that is listed in the current validator pool.

  5. Generate a private key/address pair for the new node by running ./strato --keygen 1 from within the STRATO directory on the new node. In the run.sh script, replace the NODE_HOST value with your new node's IP address. Replace the private key with the new key you have just generated.

  6. Navigate to each of your existing nodes. Then, on each existing node, send blockstanbulPrivateKey=<admin_private_key> ./strato.sh --blockstanbul-vote --username=admin --password=admin --node=<node_name> --nonce=<nonce-provided> --recipient=$newAddress. The admin_private_key can be any one of the blockstanbulAdmins listed in the blockstanbulAdmins array used on the run script for that node. When you provide a nonce to use for the command, the nonce you choose to use must be higher than any other nonces used by that address on that node.
  7. After each node with a pending vote has proposed a block, it should be a member of the validator pool.
  8. Return to the new node and modify the run.sh script to start your new node.

The new node should be watched to see that its sequence numbers are increasing. From the web you can verify this at http:///prometheus/consoles/pbft-overview.html, or you can see this using the CMD, if you have deployed a monitoring dashboard and have added the node to the list you are watching.