Validators are responsible for observing the Mailbox contract and, if required, signing a merkle root to faciliate message transmission to remote chains.
Unlike many other protocols, Hyperlane does not have an enshrined validator set. Anyone is free to run their own validator, as long as the receiver contract specifies a Multisig ISM that includes their validator.
Want to run a validator? Follow the validators guide.
For messages using a Multisig ISM, validators read the current merkle root by calling
MerkleTreeHook.latestCheckpoint(). Once a root has achieved sufficient finality, validators are expected to sign it and post their signature to highly available storage so that it can be collected by a relayer.
* @notice Returns the latest checkpoint for validators to sign.
* @return root Latest checkpointed root
* @return index Latest checkpointed index
returns (bytes32 root, uint256 index);
Validators that sign anything other than a finalized checkpoint risk compromising the safety of the protocol. If they are participating in proof of stake, this may result in their stake being slashed.
Hyperlane is developing the validator as a binary implemented in Rust that can be easily run by anyone. Operationally, validators need to run this binary and have access to an RPC provider or node for the chain that they are validating for. We hope that the majority of Hyperlane validators will come from each chain's existing node operator community.