/autonity

Primary LanguageGoGNU Lesser General Public License v3.0LGPL-3.0


Main client software for Autonity networks

codecov Go Report Card License License GitHub issues GitHub forks GitHub stars


Documentation @ https://docs.autonity.org

What is Autonity?

Autonity is an EVM-based Layer 1 blockchain protocol for peer-to-peer networks hosting decentralised risk markets. Autonity networks are permissionless: access is open to all and anyone can operate a network node.

Autonity networks are Byzantine fault-tolerant and secured by delegated Proof of Stake using Tendermint consensus. Autonity has native protocol coins and implements a liquid staking model. Native coins are the Auton utility coin used in the transaction fee mechanism and Newton for staking the network. Liquid Newton is minted and burned as stake is bonded and redeemed.

Key features of the Autonity Protocol are:

  • immediate and deterministic transaction finality in a public environment where participant nodes can join the network dynamically without permission
  • delegated Proof of Stake consensus for committee selection and blockchain management, using the deterministic Tendermint BFT consensus algorithm
  • dual coin tokenomics, with native coins Auton and Newton for utility and staking
  • liquid staking for capital efficiency, staked newton yielding transferrable Liquid Newton redeemed for Newton on unbonding stake
  • epoch-based staking reward distribution

Core technology is the Autonity Go Client (AGC). AGC is the reference implementation of the Autonity Protocol and provides the main client software run by participant peer nodes in an Autonity network system. The client is a fork of Go Ethereum.

For more information about Autonity networks and risk markets visit the Project website @ http://autonity.org.

Installation

The minimum recommended device specifications for an Autonity node are:

Requirement Minimum Recommended
OS Ubuntu 20.04 LTS Ubuntu 20.04 LTS
CPU 3.10 GHz with 8 CPU's 3.10 GHz with 16 CPU's
RAM 8GB 16GB
Storage 1024GB free storage for full nodes and Validators 1024 GB free storage for full nodes and validators
Network interface 200 Mbit/s 200 Mbit/s

Linux Binaries

Download pre-built binaries of the Autonity client and NodeJS Console CLI for Linux from the Release Archive.

Build from source

Prerequisites

To build you will need :

Get the source code

Clone the Autonity Go Client repository:

git clone git@github.com:autonity/autonity.git
cd autonity

Build

To build the Autonity Go Client (AGC) run:

make autonity

This generates the Autonity binary in the /build/bin/ directory. Run ./build/bin/autonity to start the client, CTRL+C to stop. To view the client's command-line options run autonity --help.

To build the Autonity Go Client (AGC) and Tools in the cmd subdirectory, run:

make all

To build the Docker image run:

make build-docker-image

This generates the Autonity Go Client Docker image and manifest.

Run a node

Quick-start connecting to an Autonity testnet by using a testnet flag in the command line to set the genesis config for that network when starting the client. For example, to connect to the Piccadilly Testnet:

./build/bin/autonity --piccadilly

For full docs on how to run the client and connect to a public Autonity network see Networks and Run Autonity.

Connect to a node using Autonity Utility Tool aut

The recommended way of interacting with an Autonity node is via aut, which provides a command-line interface to Autonity-specific queries and operations, as well as much of the base Ethereum functionality.

For source code, installation, and usage see the aut repository.

See the docs how to Setup the Autonity Utility Tool (aut) for how to make calls and submit transactions.

Networks

Testnets

For details of public Autonity networks, see docs.autonity.org/networks.

Development

To run the tests, you will need the following prerequisites installed:

License

The library (i.e. all code outside of the cmd directory) is licensed under the GNU Lesser General Public License v3.0, also included in the repository in the COPYING.LESSER file.

The binaries (i.e. all code inside of the cmd directory) is licensed under the GNU General Public License v3.0, also included in the repository in the COPYING file.