Skip to content

Commit

Permalink
feat: verifier rotations doc (#1082)
Browse files Browse the repository at this point in the history
  • Loading branch information
ffe9f8 committed Aug 5, 2024
1 parent 6be728a commit ec6423a
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 0 deletions.
4 changes: 4 additions & 0 deletions src/layouts/navigation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -436,6 +436,10 @@ export const getNavigation = (section) => {
title: "Verifier Rewards",
href: "/validator/amplifier/verifier-rewards",
},
{
title: "Verifier Rotations",
href: "/validator/amplifier/verifier-rotations"
},
],
},
],
Expand Down
63 changes: 63 additions & 0 deletions src/pages/validator/amplifier/verifier-rotations.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# 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.

```bash
export CHAIN_MULTISIG_PROVER_ADDRESS="axelar1xz4cya4qm2ws6nzperhvc40wdjcq4872fl6d3j2s4cytyx8j80eqenv87g"
export RPC="http://devnet-verifiers.axelar.dev:26657"
```

```bash
axelard q wasm contract-state smart $CHAIN_MULTISIG_PROVER_ADDRESS \
'"current_verifier_set"' \
--node $RPC
```

## Get proof of a verifier set change

[`get_proof`](https://github.com/axelarnetwork/axelar-amplifier/blob/f76dc8a775b8bb529cf50147bab9259d1ec7f784/contracts/multisig-prover/src/msg.rs#L81) communicates with a destination chain that a [verifier set has been changed](https://github.com/axelarnetwork/axelar-amplifier/blob/main/doc/src/contracts/multisig_prover.md#update-and-confirm-verifierset-sequence-diagram), and tells the destination chain that it must accept signatures from these new verifiers.

```bash
export MULTISIG_SESSION_ID="3457"
```

```bash
axelard q wasm contract-state smart $CHAIN_MULTISIG_PROVER_ADDRESS \
'{
"get_proof":{
"multisig_session_id":"'"$MULTISIG_SESSION_ID"'"
}
}' \
--node $RPC
```

## Update 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.

```bash
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=devnet-verifiers \
--node $RPC
```

## Confirm the verifier set after a vote

Use `confirm_verifier_set` to confirm a verifier set update.

```bash
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=devnet-verifiers \
--node $RPC
```

0 comments on commit ec6423a

Please sign in to comment.