Avalanche will enable higher performance, security, and efficiency over previous decentralized protocols.
* Best estimates from online information & core dev conversations. ** Theoretically able to accommodate millions of participants.
The Avalanche consensus protocol provides all of the advantages. It even is resilient to 51% attacks.
1. Consensus Engine
Avalanche has two consensus engines on launch:
Avalanche: A DAG-optimized consensus protocol–high-throughput, parallelizable, and simple to prune.
Snowman: A chain-optimized consensus protocol–high-throughput, totally-ordered, and great for smart contracts.
2. Virtual Machines (VMs)
Virtual Machines (VMs) in Avalanche are code that uses consensus to produce a database. This database can be in the form of a chain, a DAG, a logfile, or some other data structure that requires synchronization across multiple machines.
The VM logic can be deployed many times across many subnets.
Chains are a generic term for VM instances. Each chain is assigned a ChainID and can be part of one and only one subnet. However, the same VM instance can be used to deploy the same type of chain multiple times within a subnet.
Subnets (short for “sub-network”) are a dynamic set of validators working together to achieve consensus on the state of a set of blockchains. Subnets are required to create custom incentive mechanisms for these validators.
More on Subnets and Their Power
Avalanche was designed to be customizable, scalable, and interoperable. Everything on Avalanche is a subnet, and every chain is part of a subnet. Validators are required to be a member of the Primary Network; all other subnets are optional, depending on the validator. The Primary Network contains three blockchains:
Platform Chain (P)
The P-Chain is the metadata chain on Avalanche and coordinates validators, keeps track of active subnets, and allows for the creation of new subnets.
The Platform Chain implements the Snowman consensus protocol powered by Avalanche.
Exchange Chain (X)
The X-Chain is the default asset chain on Avalanche and enables the creation of new assets, exchanging between assets, and cross-subnet transfers.
The Exchange Chain implements the Avalanche consensus protocol.
Contracts Chain (C)
The Contract Chain is the default smart contract chain on Avalanche and enables the creation of any Ethereum-compatible smart contracts.
The Contract Chain implements the Snowman consensus protocol powered by Avalanche.
AvalancheGo is the official Go implementation of Avalanche and has a full suite of JSON RPCs for interacting with the virtual machine APIs on Avalanche. AvalancheGo comes replete with a local KeyStore, metrics, IPC, and Admin APIs for interacting with the node itself.
Avash is a program written in Go that aims to enable the creation of local networks on Avalanche, quickly for your testing purposes. Avash supports Lua scripts enabling developers to automate various local networks, launch subnets, and deploy chains on these networks to integrate into CI pipelines.
A wallet and faucet server have been open-sourced to enable developers to interact with Avalanche. Using the wallet, funds can be sent and received throughout the network. When using private shared testing environments, the faucet is useful for developers in need of funds for their own testing purposes.