Verifier Rotations
One type of message the network can sign and prove to a destination chain is a message containing an update to the verifier set. To make an update to the verifier set for a chain, the previous verifier set must sign a message communicating the changes.
Check if a verifier is in an active set
Use current_verifier_set to get the active verifier set for an integrated chain. This is the same as the signer set unless there is a verifier set update in progress, since the prover requires a few extra steps before active verifier sets can be confirmed as signers.
export CHAIN_MULTISIG_PROVER_ADDRESS="axelar1xz4cya4qm2ws6nzperhvc40wdjcq4872fl6d3j2s4cytyx8j80eqenv87g"
export RPC="https://axelar-testnet-rpc.qubelabs.io:443"axelard q wasm contract-state smart $CHAIN_MULTISIG_PROVER_ADDRESS \
'"current_verifier_set"' \
--node $RPCGet proof of a verifier set change
get_proof communicates with a destination chain that a verifier set has been changed, and tells the destination chain that it must accept signatures from these new verifiers.
export MULTISIG_SESSION_ID="3457"axelard q wasm contract-state smart $CHAIN_MULTISIG_PROVER_ADDRESS \
'{
"get_proof":{
"multisig_session_id":"'"$MULTISIG_SESSION_ID"'"
}
}' \
--node $RPCUpdate the verifier set for a given chain
When a verifier set is rotated for a given chain, the existing signers verify the new signers via the update_verifier_set command. This is temporarily permissioned to the admin contract established by the network.
axelard tx wasm execute $CHAIN_MULTISIG_PROVER_ADDRESS \
'"update_verifier_set"' \
--from wallet
--gas auto --gas-adjustment 1.5 --gas-prices 0.007uverifiers \
--chain-id axelar-testnet-lisbon-3 \
--node $RPCConfirm the verifier set after a vote
Use confirm_verifier_set to confirm a verifier set update.
axelard tx wasm execute $CHAIN_MULTISIG_PROVER_ADDRESS \
'"confirm_verifier_set"' \
--keyring-backend test
--from wallet
--gas auto --gas-adjustment 1.5 --gas-prices 0.007uverifiers \
--chain-id axelar-testnet-lisbon-3 \
--node $RPC