This is an umbrella ticket to capture references and discussion around knowledge transfer of the Consensus module. The primary focus is to onboard a new team member to co-own the module.
We've got a basic version of 3-phase Hotstuff w/ deterministic round robin leader election driving the entire blockchain
What's the (#1) biggest known missing gap?
State sync is not implemented yet. The most basic version of it is in review in #812 and #874.
Note that this implementation uses the FSM (Finite State Machine) but we have decided to remove it as it is adding more complexity than simplicity to the codebase. We plan to make an ADR for this and likely remove it in #821.
What's the (#2) second biggest known missing gap?
The libraries for VRF leader election are in place but have not been integrated into the rest of the codebase.
We use a basic round-robin approach right now.
What's the (#3) third biggest known missing gap?
We haven't implemented penalties double signing yet, or any mechanism related to "evidence" in Tendermint.
There's also a ton of opportunity for this like inactivity leaks and implementing other penalties since we're building our own L1 ;)
What's an (???) unknown gap?
Our block & signature validation process. It's not documented well and there are not sufficient tests in place.
Points of contact for related ongoing work
Who is currently building p2p discovery, churn and gossip?
@bryanchriswhite ๐
Who is currently building state important, export, rollback, validation and guaranteeing efficient data integrity?
@dylanlott ๐พ
Who is currently thinking about IBC and related light client implementations?
@h5law ๐ฒ
Who is building & maintaining the infrastructure for all of this?
@okdas ๐๏ธ
Who is dependant on this to enable E2E relays?
@adshmh ๐
3. HotPOKT
The following is a screenshot from another thread (p2p related) we had just to show how hotstuff linear complexity works and how it relates to other types of gossip.
4. Goals
Get the consensus module to a TestNet ready stage
Leverage the perspective of someone new in order to update the tooling & documentation
Identify and resolve low-hanging fruit
Complete a few starter tasks and one major task
Determine the missing gaps and define a path forward for HotPOKT
Identify a co-owner and additional Point of Contact (POC) for the V1 Consensus module
Outline & document follow-up work & tasks to build & scale the Consensus module
4.1 Starter Tasks
[ ] #441
[ ] #705
[ ] #821
Blocked by #812 and #874
4.2 Required Deliverables
[ ] #324
[ ] #650
[ ] #432
[ ] #469
[ ] Create a ticket to scope, track & implement inactivity leaks
[ ] Create tickets to scope future implementations / improvements of state sync
4.3 Stretch Deliverables
[ ] #615
[ ] #669
[ ] #470
[ ] #109
[ ] #618
4.4 Non-Deliverables
816
538
473
428
415
108
109
4.5 Non-goals
Getting the consensus module to a MainNet-ready stage
Updating/re-writing the Consensus specification; though this will need to be done in the future
@red-0ne Friendly reminder that if you're ever blocked on something or waiting on someone, this should capture the first 3 months of onboarding in terms of goals & deliverables.
Objective
This is an umbrella ticket to capture references and discussion around knowledge transfer of the Consensus module. The primary focus is to onboard a new team member to co-own the module.
1. Origin Document
2. Knowledge Transfer FAQ
We've got a basic version of 3-phase Hotstuff w/ deterministic round robin leader election driving the entire blockchain
State sync is not implemented yet. The most basic version of it is in review in #812 and #874.
Note that this implementation uses the FSM (Finite State Machine) but we have decided to remove it as it is adding more complexity than simplicity to the codebase. We plan to make an ADR for this and likely remove it in #821.
The libraries for VRF leader election are in place but have not been integrated into the rest of the codebase.
We use a basic round-robin approach right now.
We haven't implemented penalties double signing yet, or any mechanism related to "evidence" in Tendermint.
There's also a ton of opportunity for this like inactivity leaks and implementing other penalties since we're building our own L1 ;)
Our block & signature validation process. It's not documented well and there are not sufficient tests in place.
Points of contact for related ongoing work
@bryanchriswhite ๐
@dylanlott ๐พ
@h5law ๐ฒ
@okdas ๐๏ธ
@adshmh ๐
3. HotPOKT
The following is a screenshot from another thread (p2p related) we had just to show how hotstuff linear complexity works and how it relates to other types of gossip.
4. Goals
4.1 Starter Tasks
4.2 Required Deliverables
4.3 Stretch Deliverables
4.4 Non-Deliverables
816
538
473
428
415
108
109
4.5 Non-goals
Creator: @Olshansk Co-Owners: @red-0ne