Guide to the D.A.G.G.E.R. Litepaper, Part 1


Welcome to the first installment of our three-part “Guide to the Litepaper” blog series, where we embark on an educational journey into the world of GenesysGo's groundbreaking Directed Acyclic Gossip Graph Enabling Replication Protocol (D.A.G.G.E.R.). In this series, we will break down the D.A.G.G.E.R. Litepaper piece by piece, unraveling the intricate details and uncovering the immense potential of D.A.G.G.E.R. for Web3 and the entire distributed ledger technology space. Whether you're a seasoned crypto enthusiast, a blockchain novice, or just curious about the future of decentralized systems, join us as we decode the secrets behind D.A.G.G.E.R.'s innovative design and its implications for the future of decentralized networks. This first post will cover the Introduction and Section 2 of the Litepaper. For a deeper dive into technical specifics, please refer to the full version of the D.A.G.G.E.R. Litepaper

Section 1 - Introduction

The Litepaper's introduction establishes the basis for the question, "Why develop D.A.G.G.E.R.?" The answer is simple: in a world that’s rapidly embracing digitalization, decentralized consensus algorithms provide the opportunity to construct resilient, transparent, and cost-effective digital infrastructure that eliminates central authorities and single points of failure. D.A.G.G.E.R. responds to the market’s request for a general-purpose consensus mechanism that can adapt to the customized infrastructure needs of Web2 and Web3 applications. The initial implementation of D.A.G.G.E.R. is written in Rust, but it uses broad standards that allow for implementation in any language.

Section 2 - D.A.G.G.E.R. 

Section 2 of the Litepaper explains that D.A.G.G.E.R. is made up of four key components that work together seamlessly to handle, verify, and execute transactions. One of the components has two sub-modules, and so we often say that D.A.G.G.E.R. is made of five total components. We can use an airport analogy to explain how these parts work together harmoniously and asynchronously. 

  1. Communications (Comms): This component is akin to an airport's control tower. It manages all flights (bundles of transactions), coordinating with other airports (peers/sync) to make sure every plane is handled effectively, efficiently, and known across the entire airport network.
  2. Processor: This component can be compared to the airport's security and baggage handling system, which consists of two essential parts: Verifier & Forester. 
  • Verifier: This sub-module is like a security checkpoint. It's responsible for verifying passengers (transactions) and ensuring no prohibited items (duplicates) make it onto the plane.
  • Forester: This sub-module is akin to the baggage handling system. It packs passengers' baggage (hashes) into containers (Merkle trees) and ensures they are correctly loaded onto the correct plane (bundling), verifying the luggage tag (signature) as it validates the containers (root hash's) contents.
  1. Graph: This module is similar to the airport's flight scheduling system. It's responsible for managing and logging the flight schedule (directed acyclic graph) so that all arrivals and departures are in proper order and communicated to all other airports (synchronization of state) in a tamper-proof way.
  2. Controller: This module is comparable to the airport's pilots, tower controllers, and ground crew. After the flight schedule (consensus ordering) is determined, the ground crew executes the necessary actions to ensure each plane (bundle of transactions) is ready for departure, including refueling, maintenance, and transport of passengers (execution of transactions). The pilots, tower controllers, and ground crew can also form an agreement (consensus) to updates in the flight scheduling system (add more transactions), verify a plane has landed properly (strongly see finalized transactions), and report new airports (peers) that have joined the airport network (membership management).
Section 2.1 - Communications

The Communications module in GenesysGo's D.A.G.G.E.R. system acts as a control tower network for digital data. It efficiently manages requests and responses, including sync requests, transactions, and RPC queries. Sync requests are handled systematically to minimize delays while incoming transactions undergo verification and processing. This module utilizes the D.A.G.G.E.R.-p2p protocol, based on QUIC and written in Rust, for asynchronous peer and client connections; eventually, it will allow advanced users to customize stream limits and buffer sizes.

Section 2.2 - Processor: Verifier & Forester

The Processor, functioning as the airport's security and baggage system, ensures transactions are properly screened and prepared for their journey. It comprises two vital sub-modules: the Verifier and the Forester. Transaction verification includes three simultaneous stages: verifying the transaction's signature, validating nonce and deduplication, and checking application-specific details. Block verification confirms the Merkle root hash of a block matches the transaction order. Event verification ensures consistent graphs among all operators.

  1. The Verifier: Like an airport security checkpoint, this stage authenticates incoming transactions, eliminates duplicates, and ensures the system's integrity.
  2. The Forester: Similar to an airport's baggage handling, this phase packs transactions into Merkle trees, verifying their content's accuracy and preparing them for transmission.
Section 2.3 - Graph

Think of our Graph module as a flight control system at a busy airport. It manages the sequence of transactions (like takeoffs and landings), ensuring consensus order, preventing conflicts, and verifying data validity before integration into the graph. This meticulous process ensures data accuracy and efficiency in our D.A.G.G.E.R. system.

Section 2.4 - Controller

In technical terms, the Controller executes ledger reads and writes, customizing operations for D.A.G.G.E.R.'s use cases, including sharding and erasure coding for file systems like ShdwDrive. It plays a crucial role in applications like ShdwDrive, blockchains, oracles, bridges, and VM orchestration, ensuring adaptability, reliability, and efficiency. For other applications, it carries out their specific operations while managing key D.A.G.G.E.R. consensus tasks, such as operator management and stake updates for Proof-of-Stake.

Section 2.5 - Visualizations

This section of the Litepaper provides a diagram to help visualize the flow of an RPC request to the protocol. It also explains the lifetime of an RPC request.

Section 2.6 - Transactions

In D.A.G.G.E.R., a transaction goes through several steps. It starts by entering the Communications module, which forwards it to the Processor module. The Processor verifies the transaction's content and signatures, then organizes them into Merkle trees. These trees are then managed by the Graph module. The Graph module places transactions in the Directed Acyclic Gossip Graph (DAG) for consensus-based ordering. Once ordered, they are sent to the Controller module for execution, ensuring secure and efficient transaction processing from start to finish.

Section 2.7 - Membership Management

Successful decentralized networks rely on efficient membership management. In D.A.G.G.E.R., we maintain a clear record of participants, much like a trustworthy private club. Operators request to join, akin to applying for club membership. The network verifies their eligibility and stake, like a membership committee vetting credentials. Once approved, operators can engage in the network.

Leaving is straightforward, too. Operators request to exit, similar to resigning from a club. The membership committee verifies and, upon approval, they can leave after fulfilling certain responsibilities, akin to settling dues before departure. Every operator in our network has a ledger-based state, recording key details like their entry date, unique index, and role-specific metadata, similar to a club's membership records.


We appreciate you reading this initial installment of our three-part series delving into the D.A.G.G.E.R. Litepaper Guide. Stay tuned for our upcoming post, where we'll explore Section 3 and dive deeper into ShdwDrive.