hyperledger / besu

An enterprise-grade Java-based, Apache 2.0 licensed Ethereum client https://wiki.hyperledger.org/display/besu
https://www.hyperledger.org/projects/besu
Apache License 2.0
1.51k stars 833 forks source link

Modularity of Consensus Mechanisms #5477

Open non-fungible-nelson opened 1 year ago

non-fungible-nelson commented 1 year ago

Description

Besu is primarily used in a PoS and PoA context. However, the bulk of development of the client impacts the codebase with the assumption of PoS consensus only. This can cause unintended side-effects for PoA and other networks like ETC using PoW.

This epic outlines a set of work to modularize the components used in consensus to remove/avoid downstream impacts of PoS code on other network types. This can allow for the speed of Mainnet related development to keep pace and will allow other users to develop PoA/PoW features without confusing / entangled code.

Goals

Outcomes

Approach

NickSneo commented 1 year ago

Hey @non-fungible-nelson , Me and @gtebrean also wants to get involved in this. Can you invite us too for the discussion meetings? Would love to contribute in this

non-fungible-nelson commented 1 year ago

Hi all - tagging @matthew1001 as well. @NickSneo @gtebrean I think we should start a working group for this. We can begin on the next AMER/EUR contributor call. I just rescheduled it as it was previously on the 4th of July in the US, now on the 11th of July.

I will come prepared with some materials we can discuss on how to get started. I think this will be a long-running piece of work. We can start in several places and extend out.

Ideally we lean on the plug-ins heavily and create the easiest plug-in (likely proof of work) and template it from there to the more complicated constructs.

@diega if you are able to attend this call, your knowledge will be greatly helpful!