2.0 KiB
A guide how to add validators to the network
Key generation
The validator should generate and insert aura, grandpa and node keys with the generate_validator_keys.sh script
Keep all the private keys safe. They should remain secret and only the owner should have access to them. You should see a generated folder and file structure similar to this:
data % tree
.
├── aura-sr25519.json
├── chains
│ └── gen6
│ ├── keystore
│ │ ├── 6175726108fd5c07440953c6b8d920e196d4a02fbbfdd2fa2668b6c16aabb8a2280b7f24
│ │ └── 6772616e134dad80895e7ea54c99c1d673a177450674de2a95ad35d1f833734bfcc97bbb
│ └── network
│ └── secret_ed25519
├── grandpa-ed25519.json
├── node-key-ed25519.json
└── peer-id.txt
5 directories, 7 files
Extrinsic calls
Sudo calls
This step could only be done by the owner of the sud keys of the blockchain. Sudo should add the aura ss58Address to the validator set through the extrinsic
sudo.sudo( substrateValidatorSet.addValidator( <new_validator_aura_ss58Address> ) )
Validator key Calls
This step is done by the owner of the validator keys.
The owner of tha validator keys should add his aura keys to a wallet extension of his choice in order to sign the message later.
The owner of tha validator keys should call the extrinsic substrateValidatorSet.start.
Aura "publicKey" and grandpa "publicKey" should be submitted as parameters to the extrinsic and the transaction should be signed the previously added aura keys
Validator aura key calls substrateValidatorSet.start(auraPublicKey, grandpaPublicKey)