# README

Overview
The dapos package provides the services for using Delegated Asynchronous Proof-of-Stake (DAPoS) consensus for transactions.
DAPoS is a new consensus algorithm developed by the Dispatch team for use in the Dispatch protocol. It aims to maximize parallelizable transaction throughput. DAPoS maximizes scalability of transaction throuput by minimizing the Delegates codependency. Once transaction information is evenly distributed between Delegates, each Delegate autonomously and deterministically accepts the Transaction into their chain and reports the validity of the Transaction. Work done by delegates is redundant for Byzantine security of the network. DAPoS Delegates are elected by Stakeholders based on stake-weighted voting, and gossip to one another about which Transaction they have received from External Actors using ECDSA signatures. Once a Delegate receives 2/3 of Delegate signatures for a given Transaction within maximum Lag Threshold, the Transaction is accepted and added to that Delegate Ledger. The validity of the Transaction is reported back to Bookkeepers, so Delegates can be evaluated and held accountable by Stakeholders.
For more details on DAPoS, please refer to Introduction to DAPoS document.
Download
go get github.com/dispatchlabs/disgo/dapos
or
git clone http://github.com/dispatchlabs/disgo/dapos
Wiki Documentation
For more technical details on how dapos works, please visit the Wiki
Dependencies
Because dapos relies on sending transactions to other delegates, it is necessary to also have the disgover package for network discovery.
commons for common types domain types.
NOTE: if you go get ./..
then dependencies are getting pulled automatically
Configuration
The dapos package only relies on the configuration loaded by commons
protobuf (see common install instructions)
How to use the dapos package
See the wiki page for links to full examples on running bare-bones dapos
Tests
Tests to be added
Acknowledgments
Add lists of contributors
Contributing
Add link to common CONRIBUTING.md file
License
Add License data