49 lines
2.0 KiB
Markdown
49 lines
2.0 KiB
Markdown
# 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](https://g.g6.network/g6-chain/Scripts/-/tree/main/keys)
|
|
|
|
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:
|
|
|
|
```shell
|
|
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)`
|
|
|
|

|
|

|
|

|