What is total ordering?

Total ordering

Written by Finn
Updated over a week ago

For a better understanding of total ordering, an example is using Avalanche® transactions and seeing how the consensus protocol does not group into blocks, and there isn't a single linear blockchain. Instead, Avalanche employs a DAG (Directed Acyclic Graph) structure.

In the context of Avalanche and other DAG-based consensus protocols, total ordering refers to establishing a consistent order for transactions within the Directed Acyclic Graphs (DAG). Unlike traditional blockchains where transactions are ordered in sequential blocks, in a DAG, transactions are linked together, and determining their order is essential to achieve consensus.

A total ordering on Avalanche involves ensuring that all nodes in the network agree on the order in which transactions were added to the DAG. This order is crucial for reaching consensus on the state of the ledger and preventing double-spending and other conflicts that could arise and cause slower throughput.

Here's a simplified overview of how Avalanche achieves total ordering:

1. Transactions are initially proposed and broadcasted to the network.

2. Nodes collect and validate these transactions.

3. Nodes then vote on the order in which transactions should be added to the DAG. Each node repeatedly queries other nodes to determine their preferences.

4. Over time, nodes converge to a common ordering as they see the preferences of other nodes.

5. Once a threshold level of agreement is reached, a transaction is considered finalized and added to the DAG in a particular order.

6. This process continues for subsequent transactions, gradually building a consistent total ordering of transactions within the DAG.

The key advantage of Avalanche and similar DAG-based consensus mechanisms is that it can achieve high transaction throughput and low latency while maintaining security and decentralization.

For more information on Avalanche and it's consensus protocol, navigate to the following whitepapers:

For any additional questions, please view our other knowledge base articles or contact a support team member via the chat button.

Did this answer your question?