Skip to content

sebaraj/DAG-Rider

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DAG-Rider

An non-production-grade implementation of DAG-Rider, an asynchronous, post-quantum safe, Byzantine Atomic Broadcast protocol, written in modern C++23, compiled with clang/llvm 18.1.8. At the time of writing and to the best of my knowledge, this is the only publically available C++ implementation.

The goal of this initial implementation was to practice implementing a modern consensus protocol directly from a white paper, rapidly improve my C++ skills, and explore the nuances of this BAB protocol. I plan to drastically refactor this codebase into a performant, production-grade BAB layer after completing CPSC 426 - Building Distributed Systems at Yale this December.

Build + Run

  • To build and run a sample application which utilizes DAG-Rider for BAB, run the following commands in the root directory of this project:
  • mkdir src/node/build/
  • cmake src/node/ src/node/build/
  • cmake --build ./src/node/build/
  • src/node/build/Node --id 1 --address 127.0.0.1 --port 12345

Dependencies

To-Do

  • Drastic refactor after CPSC 426
  • Switch from json serialization/deserialization to gRPC/protobufs

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published