Robust Round Robin (RRR) Is a consensus algorithm adding fairness, liveness to simple round robin leader selection. In return for accepting the use of stable long term validator identities (node private keys), this approach scales to 10,000's of nodes.
The general approach is defined by this paper
A basic implementation is now complete and is suitable for development experimentation and testing.
- Respect --permissioned and --permissioned-nodes (this offers a form of identity removal)
- Wait Te rounds before considering a freshly enrolled identity 'active'. As a grinding attach mitigation for re-enrolment
- Full implementation of VerifyBranch
- Full implementation of SelectBranch
- The paper specifies that active identities are sorted by public key before being randomly sampled to select endorsers. In this implementation we provide (mostly for comparison) an additional approach: the identities are conveniently available 'pre' sorted by age. So we do not sort by public key.
- Mining of long term identities - without this (or SGX based identities) this implementation is only suitable for private networks.
- Multiple identity queues
- SGX based longterm identities