Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Consensus] Consensus Onboarding & Knowledge Transfer #890

Open
14 tasks
Olshansk opened this issue Jul 7, 2023 · 1 comment
Open
14 tasks

[Consensus] Consensus Onboarding & Knowledge Transfer #890

Olshansk opened this issue Jul 7, 2023 · 1 comment
Assignees
Labels
consensus Consensus specific changes core starter task Good for newcomers, but aimed at core team members though still open for everyone

Comments

@Olshansk
Copy link
Member

Olshansk commented Jul 7, 2023

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

Where is the consensus module today?

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.

Screenshot 2023-01-16 at 3 08 51 PM

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

4.2 Required Deliverables

4.3 Stretch Deliverables

4.4 Non-Deliverables

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

Creator: @Olshansk
Co-Owners: @red-0ne

@Olshansk Olshansk added consensus Consensus specific changes core starter task Good for newcomers, but aimed at core team members though still open for everyone labels Jul 7, 2023
@Olshansk Olshansk moved this to In Progress in V1 Dashboard Jul 10, 2023
@Olshansk Olshansk changed the title [Consensus] Consensus Knowledge Transfer [Consensus] Consensus Onboarding & Knowledge Transfer Jul 30, 2023
@Olshansk Olshansk self-assigned this Jul 30, 2023
@Olshansk
Copy link
Member Author

Olshansk commented Aug 2, 2023

@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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
consensus Consensus specific changes core starter task Good for newcomers, but aimed at core team members though still open for everyone
Projects
Status: In Progress
Development

No branches or pull requests

2 participants