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 Contract, the accountability and fault detection protocol contract providing operations for: returning accountability history and status, handling submitted accountability events, and computing accountability and slashing penalties. See Autonity Accountability Contract and concept Accountability and fault detection.
  • Autonity Oracle Contract, the oracle protocol contract providing operations for: computing median price data, and managing the currency-pair symbols for which price data is provided by the Autonity oracle network. See Autonity Oracle Contract and concepts Oracle Server and Oracle network.
  • 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 Blockchain Consensus
  • 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: