architecture
modules
observer
Overview

The observer module keeps track of ballots for voting, a mapping between chains and observer accounts, a list of supported connected chains, core parameters (contract addresses, outbound transaction schedule interval, etc.), observer parameters (ballot threshold, min observer delegation, etc.), and admin policy parameters.

Ballots are used to vote on inbound and outbound transaction. The observer module keeps create, read, update, and delete (CRUD) operations for ballots, as well as helper functions to determine if a ballot has been finalized. The ballot system is used by other modules, such as the crosschain module when observer validators vote on transactions.

An observer validator is a validator that runs zetaclient alongside the zetacored (the blockchain node) and is authorized to vote on inbound and outbound cross-chain transactions.

A mapping between chains and observer accounts right now is set during genesis and is used in the crosschain module to determine whether an observer validator is authorized to vote on a transaction coming in/out of a specific connected chain.