Validator Onboarding
SEDA Chain validators perform various signing duties for the SEDA Protocol.
Contents
Syncing Node Create-Validator Transaction SEDA Key File Without Encryption
Syncing Node
In order to create your validator, first make sure your node fully synced to the latest block height of the network.
You can check by using the following command:
curl -s localhost:26657/status | jq .result | jq .sync_infoIn the output of the above command make sure catching_up is false
“catching_up”: falseCreate-Validator Transaction
Create a validator.json file and fill in the parameters of the create-validator transaction:
{
    "pubkey": $(sedad tendermint show-validator),
    "amount": "1000000000000000000000000000000000aseda", 
    "moniker": "the moniker for your validator",
    "identity": "optional identity signature (ex. UPort or Keybase) This key will be used by block explorers to identify the validator.",
    "website": "validator's (optional) website",
    "security": "validator's (optional) security contact email",
    "details": "validator's (optional) details",
    "commission-rate": "0.1",
    "commission-max-rate": "0.2",
    "commission-max-change-rate": "0.01",
    "min-self-delegation": "1" 
}Starting with v1.0.0, SEDA Chain requires validators to generate SEDA Keys and register their public keys to perform signing duties beyond consensus signing. SEDA Keys currently consist of a single secp256k1 key used to sign batches.
The create-validator transaction will automatically generate SEDA Keys, save the key file, and register the public keys. Before executing the transaction, check the relevant app configurations and modify them in app.toml as necessary.
sedad config get app seda.enable-seda-signer 
sedad config get app seda.allow-unencrypted-seda-keys
sedad config get app seda.seda-key-file # path to key file from node directory
# You must enable SEDA signer.
sedad config set app seda.enable-seda-signer true
# We recommend that you encrypt your SEDA key file.
sedad config set app seda.allow-unencrypted-seda-keys falseWe recommend that you fully set up the node(s) for validation with SEDA key signer before sending the create-validator transaction. To accomplish this, run the create-validator transaction with the --generate-only flag to generate a SEDA key file without actually sending a transaction.
sedad tx staking create-validator validator.json \
    --from <wallet-name> --chain-id <chain-id> \
    --gas auto --gas-prices 10000000000aseda --gas-adjustment 2.0 \
    --generate-onlyTake note of the encryption key for the SEDA key file. This encryption key should be set as an environment variable SEDA_KEYS_ENCRYPTION_KEY in the node environment. In a basic setup, this means stopping the node, executing the export command, and re-starting the node so that the environment variable gets picked up by the node.
export SEDA_KEYS_ENCRYPTION_KEY=ajfUfrdnrFRkej9OXTDb1IMdrIWkDN3P7CWKz5It20I=+g9ZQ=
sedad startIf you are using systemctl to run the node, add the environment variable by editing the service file, reload the daemon, then restart the node service.
If the signer has been set up correctly, the following message should appear in the log:
3:34PM INF successfully loaded SEDA signer module=serverSince the SEDA key file is used by the SEDA signer at the application layer of the chain, if you're using Horcrux, you must copy the SEDA key file to all your sentry nodes. Make sure that the signer is correctly loaded by checking the success log message on each sentry node.
Once your validation setup is ready, send a create-validator transaction with the --key-file flag pointing to the SEDA key file and the --key-file-custom-encryption-key flag. The latter flag will prompt you to enter the encryption key.
sedad tx staking create-validator validator.json \
    --from <wallet-name> --chain-id <chain-id> \
    --gas auto --gas-prices 10000000000aseda --gas-adjustment 2.0 \
    --key-file ~/.sedad/config/seda_keys.json \
    --key-file-custom-encryption-keyYou can find your validator operator address using the following command, which you can advertise to receive delegations:
sedad keys show <wallet-name> --bech val -aSEDA Key File Without Encryption
Although we advise against this approach, you may generate and use the SEDA key file without encryption.
First, change the allow-unencrypted-seda-keys configuration under the [seda] section of the app.toml file to true. Alternatively, run the following command:
sedad config set app seda.allow-unencrypted-seda-keys trueThen, run the create-validator transaction with the --key-file-no-encryption flag.
sedad tx staking create-validator validator.json \
    --from <wallet-name> --chain-id <chain-id> \
    --gas auto --gas-prices 10000000000aseda --gas-adjustment 2.0 \
    --key-file-no-encryptionLast updated
Was this helpful?

