Autonity Go Client (AGC)

Main client software features

AGC is the reference implementation of the Autonity Protocol and the main client software run by participants in an Autonity network. It is a fork of Geth. For the current geth rebase version see Codebase.

Features

Core logic

  • Autonity Protocol Contract, the core Autonity Protocol contract providing operations for: protocol governance, staking, validator registration, consensus committee selection, and staking rewards distribution. See Autonity Protocol Contract.
  • Autonity Accountability Contracts, the accountable and omission fault detection protocol contracts providing operations for: detecting consensus rule infractions and failure to participate in consensus voting rounds, and computing rewards and penalties to incentivise correct and disincentivise incorrect behavior by committee members. See Autonity Accountability Contract, Autonity Omission Accountability Contract and concepts Accountability Fault Detection (AFD) and Omission Fault Detection (OFD).
  • Autonity Oracle Contract, the oracle protocol contract providing operations for: computing median price data, managing the currency-pair symbols for which price data is provided by the Autonity oracle network, and implementing the Autonity Oracle Accountability Fault Detection (OAFD) protocol to incentivise correct and timely price reporting by the oracle network. See Autonity Oracle Contract and concepts Oracle Server, Oracle network, and Oracle Accountability Fault Detection (OAFD).
  • EVM, the deterministic virtual machine providing the state transition function for computing global state
  • Consensus, Autonity implementation of the Tendermint BFT consensus protocol managing state replication and block production with dynamic committee selection. See Consensus layer
  • P2P Networking, transport and wire protocols providing reliable broadcast for blockchain and consensus state synchronisation between participants. See Communication layer
  • Core, the core Autonity Go Client codebase managing interactions with the blockchain ledger and EVM.

State storage

Each participant maintains a local state database synchronised to world state, using a LevelDB k-v store. See also System model and the Ledger object.

Interfaces

The client provides interfaces for: