Overview
These instructions are for setting up a Full node for network participation. If you just need a local development environment, you should instead follow the instructions in Create a Local IOTA Network to create a local Full node, validators, and faucet.
IOTA Full nodes validate blockchain activities, including transactions, checkpoints, and epoch changes. Each Full node stores and services the queries for the blockchain state and history.
This role enables validators to focus on servicing and processing transactions. When a validator commits a new set of transactions (or a block of transactions), the validator pushes that block to all connected Full nodes that then service the queries from clients.
Features
IOTA Full nodes:
- Track and verify the state of the blockchain, independently and locally.
- Serve read requests from clients.
State Synchronization
IOTA Full nodes sync with validators to receive new transactions on the network.
A transaction requires a few round trips to 2f+1 validators to form a transaction certificateA certificate is the mechanism proving a transaction was approved or certified. Validators vote on transactions, and aggregators collect a Byzantine-resistant majority of these votes into a certificate and broadcasts it to all IOTA validators, thereby ensuring finality. (TxCert).
This synchronization process includes:
In Byzantine Fault Tolerant (BFT) f
represents the number of faulty validators. 2f+1
represents the minimum number of validators
needed to agree on a transaction to ensure integrity and finality, even if up to f
validators are faulty.
For example, if f = 1
, this means 3 validators must confirm a transaction (a supermajority) to guarantee its
integrity,
ensuring that even if one validator is faulty, the correct decision still stands.
- Following 2f+1 validators and listening for newly committed transactions.
- Making sure that 2f+1 validators recognize the transaction and that it reaches finality.
- Executing the transaction locally and updating the local DB.
This synchronization process requires listening to at a minimum 2f+1 validators to ensure that a Full node has properly processed all new transactions. IOTA will improve the synchronization process with the introduction of checkpoints and the ability to synchronize with other Full nodes.
Architecture
An IOTA Full node is essentially a read-only view of the network state. Unlike validator nodes, Full nodes cannot sign transactions, although they can validate the integrity of the chain by re-executing transactions that a quorum of validators previously committed.
Today, an IOTA Full node maintains the full history of the chain.
Validator nodes store only the latest transactions on the frontier of the object graph (for example, transactions with >0 unspent output objects).
Set Up a Full Node
You can set up your IOTA Full Node using Docker or build it from source.