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:
- 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? - Could
bootnode
be anaura
validator at the same time? - Are any config options to explicitly tell parity to run this node as a bootnode or any node could be run as a bootnode?
- Does bootnode share blocks with other peers?
Best Answer
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.
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.
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 useYes 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.