Keys are generated using subkey or use tfchain key
.
For each validator generate a key:
subkey generate --scheme sr25519
To also finalize blocks, create the ed25519 public key and address:
subkey inspect --scheme ed25519 "<seed from the previous command>"
If you want your validator to be a bootnode (node that other validators can sync against), it is is best to generate a nodekey so the bootnode address is predictive:
subkey generate-node-key
This prints the p2p nodeId to stderr and the nodekey to stdout.