Step 3) Configure and Run an Orchestrator Instance
After setting up the validator, immediately proceed to setup the orchestrator. This is a necessary step in order to prevent the validator from being slashed.
Setup Orchestrator
Create orchestrator account
export ORCHESTRATOR_KEY_NAME="my-orchestrator-name"
routerd keys add $ORCHESTRATOR_KEY_NAME --chain-id router_9600-1 --keyring-backend fileget Orchestrator address
routerd keys show $ORCHESTRATOR_KEY_NAME -a --keyring-backend file
export ORCHESTRATOR_ADDRESS=<routerd-address>Get funds to orchestrator account, check balance after getting funds
routerd q bank balances $ORCHESTRATOR_ADDRESS --chain-id router_9600-1 --keyring-backend file
Map orchestrator address to validator address.
EVM-KEY-FOR-SIGNING-TXNS
is the public ethereum address. You can create one in Metamask, it doesnt need to have funds. We use it to sign transactions on EVM chains. Make sure to save the private key of this address somewhere safe.export EVM_ADDRESS_FOR_SIGNING_TXNS=<EVM-ADDRESS-FOR-SIGNING-TXNS>
routerd tx attestation set-orchestrator-address $ORCHESTRATOR_ADDRESS $EVM_ADDRESS_FOR_SIGNING_TXNS --from my-validator-key \
--chain-id router_9600-1 \
--fees 1000000000000000route \
--keyring-backend file
Add config.json for Orchestrator
{
"chains": [
{
"chainId": "137",
"chainType": "CHAIN_TYPE_EVM",
"chainName": "Polygon",
"chainRpc": "www.polygon-rpc.com",
"blocksToSearch": 1000,
"blockTime": "5s"
}
],
"globalConfig": {
"logLevel": "debug",
"networkType": "mainnet",
"dbPath": "orchestrator.db",
"batchSize": 25,
"batchWaitTime": 4,
"routerChainTmRpc": "http://0.0.0.0:26657",
"routerChainGRpc": "tcp://0.0.0.0:9090",
"evmAddress": "",
"cosmosAddress": "",
"ethPrivateKey": "",
"cosmosPrivateKey": ""
}
}
routerChainTmRpc
androuterChainGRpc
, point it to your validator IPcosmosAddress
is Router address of orchestrator // router5678abcdcosmosPrivateKey
is private key for your orchestrator cosmos address (private key of abovecosmosAddress
)evmAddress
is EVM address of orchestrator which created in above step in Metamask //0x1234abcdethPrivateKey
is private key for the the aboveevmAddress
wallet you createdloglevel
currently kept it as "debug" can be set as "info" evmAddress is EVM address of orchestrator //0x1234abcd
Start Validator and Orchestrator
Start validator
sudo systemctl start cosmovisor.service
sudo systemctl status cosmovisor.service
# check logs
journalctl -u cosmovisor -fStart orchestrator
sudo systemctl start orchestrator.service
sudo systemctl status orchestrator.service
# check logs
journalctl -u orchestrator -f
Check validator and orchestrator status
Check if node is syncing, make sure it is not stuck at some block height
routerd status | jq .SyncInfo.latest_block_height
Check if orchestrator health is ok
curl localhost:8001/health