3.6.2 Global State

DGT utilizes two forms of storing the global state: a block-based structure and a DAG-based view.

In the block-based structure, the global state is organized using an addressable Merkle-Radix tree on each validator. This tree allows efficient storage and retrieval of data for different transaction families. Each transaction family has its own address space within the tree, ensuring logical separation of data. The tree stores node hashes from leaf to root, and a single root hash is generated for a set of state transitions associated with a block. Unique hex-encoded 70-character strings are used as addresses to access specific data in the tree.

The Merkle-Radix tree enables efficient updates and queries to the global state. When a transaction is processed, the tree is updated to reflect the changes in the state. This enables quick verification and retrieval of data during transaction validation and subsequent processing. The use of the addressable Merkle-Radix tree ensures the security and scalability of the global state, allowing for efficient storage and retrieval even as the system grows.

In addition to the block-based structure, DGT also maintains a DAG-based view of the global state. Transaction batches are stored in the leaves of a directed graph, with each branch representing a separate transaction family. This DAG structure enables fast transaction searches and facilitates the verification of network time using the heartbeat mechanism.

By utilizing both the block-based structure and the DAG-based view, DGT ensures an efficient and reliable storage mechanism for the global state, supporting the processing and management of transactions across different transaction families.

Last updated