Parity – How to Set Up Parity Bootnode Role in a Private Network

node-discoveryparity

NOTE: I've found a bunch of answers concerning geth client, but I'm interested specifically in parity. I have the following private network spec:

  • clients: Parity v1.9.2-beta
  • consensus: aura

I've split the main question into the smaller chunks:

  1. I treat bootnode as a node which should always be online to provide your node with a list of other peers. Your node has either a hardcoded bootnodes list (for public networks such as mainnet, kovan, ropsten, etc)
    or the list is provided to a parity executable using startup params or via *.toml config file. Is this definition correct?
  2. Could bootnode be an aura validator at the same time?
  3. Are any config options to explicitly tell parity to run this node as a bootnode or any node could be run as a bootnode?
  4. Does bootnode share blocks with other peers?

Best Answer

  1. Bootnodes are the nodes which provide information about other peers, txns, blocks. Once that information is received, bootnode does not need to be online. But bootnodes are always kept online, because new nodes keep coming up and require some of this information. Information of bootnodes can be provided by:
  • genesis file
  • list of reserved peers at startup

If your node gets information of other nodes from bootnode, it can get blocks and txns from other too. Even if bootnode goes offline, your chain will sync.

  1. Yes. Bootnode can be validator nodes. It does not matter whether bootnode is validator or non validator. For all other nodes, it is just some node which can be used to get information of other nodes and get previous blockchain data. NOTE: Since the validator node needs to expose its enode address (enode://pubkey1@ip1:port1) and thus the validator node's IP address in order to be a Bootnode, having validator nodes serve as Bootnodes (and advertising this) makes it easier for network attackers (DDOS) to target validator nodes.

  2. Yes. You can provide a list of nodes using a file containing list of enode urls and you can use that file while starting parity. Use this tag to point to the file: --reserved-peers <file_name>. If you want it to be configured in toml file, you can use

    [network]
    reserved_peers: "<filename>"
    
  3. Yes they do. Bootnodes also become a part of the peers and communicate transactions and blocks and if discovery is set to true, they also discover other peers.

Related Topic