pokt-network / pocket

Official implementation of the Pocket Network Protocol v1
https://pokt.network
MIT License
63 stars 33 forks source link

[Consensus] Consensus Onboarding & Knowledge Transfer #890

Open Olshansk opened 1 year ago

Olshansk commented 1 year ago

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

4.1 Starter Tasks

4.2 Required Deliverables

4.3 Stretch Deliverables

4.4 Non-Deliverables

4.5 Non-goals


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

Olshansk commented 1 year ago

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