30 May 2024 | Balaji Arun, Zekun Li, Florian Suri-Payer, Sourav Das, Alexander Spiegelman
Shoal++: High Throughput DAG BFT Can Be Fast!
Shoal++ is a novel DAG-based Byzantine Fault Tolerant (BFT) consensus protocol that achieves high throughput while significantly reducing commit latency. Traditional BFT protocols like PBFT prioritize low latency, requiring only 3 message exchanges to commit, but suffer from limited throughput due to a single leader. In contrast, DAG-BFT protocols like Bullshark and Shoal achieve high throughput by allowing every replica to act as a proposer, but require more message exchanges (up to 10.5 for Shoal). Shoal++ reduces commit latency to an average of 4.5 message exchanges, achieving throughput comparable to state-of-the-art DAG-BFT solutions while reducing latency by up to 60%.
Shoal++ addresses three main latency stages: queuing, anchoring, and anchor commit. It optimizes the Bullshark commit rule to reduce anchor commit latency to 4md, dynamically makes every node an anchor to eliminate anchoring latency, and operates multiple DAGs in parallel to minimize queuing latency. These techniques allow Shoal++ to reduce expected end-to-end latency to 4.5md.
Shoal++ is implemented and evaluated against Bullshark, Shoal, Mysticeti, and Jolteon. Results show that Shoal++ achieves matching throughput to existing DAG-BFT solutions while reducing latency by up to 40% over Mysticeti and 60% over Bullshark. It is also robust to faults and maintains safety and liveness.
Shoal++ uses a linear star-based communication pattern for node certification, and can adopt all-to-all communication to reduce latency further. It avoids the worker layer to reduce latency and instead disseminates transaction batches inline with DAG proposals. Efficient fetching is enabled by certified edges, allowing replicas to balance data fetching load. Distance-based priority broadcast ensures balanced message distribution.
Shoal++ is implemented in the Aptos Blockchain codebase using Rust and the Tokio asynchronous runtime. It uses BLS signatures, RocksDB for persistent storage, and Noise for authentication. The evaluation shows that Shoal++ sustains subsecond e2e latency up to 100k transactions per second while scaling throughput to over 150k tps. At low load, Shoal++ achieves 775ms median latency. Jolteon is bottlenecked by the leader's network.Shoal++: High Throughput DAG BFT Can Be Fast!
Shoal++ is a novel DAG-based Byzantine Fault Tolerant (BFT) consensus protocol that achieves high throughput while significantly reducing commit latency. Traditional BFT protocols like PBFT prioritize low latency, requiring only 3 message exchanges to commit, but suffer from limited throughput due to a single leader. In contrast, DAG-BFT protocols like Bullshark and Shoal achieve high throughput by allowing every replica to act as a proposer, but require more message exchanges (up to 10.5 for Shoal). Shoal++ reduces commit latency to an average of 4.5 message exchanges, achieving throughput comparable to state-of-the-art DAG-BFT solutions while reducing latency by up to 60%.
Shoal++ addresses three main latency stages: queuing, anchoring, and anchor commit. It optimizes the Bullshark commit rule to reduce anchor commit latency to 4md, dynamically makes every node an anchor to eliminate anchoring latency, and operates multiple DAGs in parallel to minimize queuing latency. These techniques allow Shoal++ to reduce expected end-to-end latency to 4.5md.
Shoal++ is implemented and evaluated against Bullshark, Shoal, Mysticeti, and Jolteon. Results show that Shoal++ achieves matching throughput to existing DAG-BFT solutions while reducing latency by up to 40% over Mysticeti and 60% over Bullshark. It is also robust to faults and maintains safety and liveness.
Shoal++ uses a linear star-based communication pattern for node certification, and can adopt all-to-all communication to reduce latency further. It avoids the worker layer to reduce latency and instead disseminates transaction batches inline with DAG proposals. Efficient fetching is enabled by certified edges, allowing replicas to balance data fetching load. Distance-based priority broadcast ensures balanced message distribution.
Shoal++ is implemented in the Aptos Blockchain codebase using Rust and the Tokio asynchronous runtime. It uses BLS signatures, RocksDB for persistent storage, and Noise for authentication. The evaluation shows that Shoal++ sustains subsecond e2e latency up to 100k transactions per second while scaling throughput to over 150k tps. At low load, Shoal++ achieves 775ms median latency. Jolteon is bottlenecked by the leader's network.