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:
- Autonity Contract Interfaces and JSON-RPC APIs - see Autonity Interfaces Reference
- RPC calls from the Autonity Utility Tool
aut
.aut
provides a command-line interface to Autonity-specific queries and operations, as well as much of the base Ethereum functionality. - Command line options for client configuration and interaction - see Command-line options Reference
- Metrics and logging, see Command-line options. For
go-metrics
, see the Autonity GitHub /metrics/README.