Connection of a new node to blockchain network¶
The Waves Enterprise blockchain platform gives an opportunity to connect new nodes to a blockchain network at any moment.
Practical steps of node connection are stated in the article Connection and removing of nodes.
The general chart for connection of a new node is provided below:
A user of a new node passes the public key of the new node to the network administrator (node with the connection-manager permission).
The node with the connection-manager permission uses the received public key for creation of the 111 RegisterNode transaction with the “opType”: “add” parameter.
The 111 transaction gets to the block.
Consequently, information from the 111 transaction (sender address, new node name and public key) is transferred to states of participant nodes.
In case a new node key is absent in the list of nodes that have been registered in the network genesis block (Network Participants), a new node is initially synchronized. A new node sends the PeerIdentityRequest with its signature to all addresses from the peer list in its configuration file. Peers make sure that a node that has sent the PeerIdentityRequest has been registered in the network.
In case of a successful check, in response to the PeerIdentityRequest, peers send their public keys to the new node. The new node saves these public keys in its temporary address storage for primary connection with peers. After saving of addresses, the new node has an opportunity to validate network handshakes from its peers.
The new node sends handshake messages with its public key to network participants from the peer lists in its configuration file.
Peers compare the public key in the handshake message and the new node public key from the 111 transaction which has been sent by the node with the connection-manager permission. If the check is successful, peers send handshake responses with their signatures to the new node and send the Peers Messages to the network.
After successful connection, the new node performs synchronization with the network and receives the table with network participant addresses.