consensus-shipyard / consensuslab

The go-to place for scalable decentralised consensus research
66 stars 3 forks source link

🎯 | B3.2-M1: Consensus interface and dummy consensus in Forest #127

Closed jsoares closed 2 years ago

jsoares commented 2 years ago

For work tracking purposes.

Refer to the parent project issue for high-level discussion and resources.

jsoares commented 2 years ago
- Deliverable: 
    - __Does Forest need FVM integration?__ To call the FVM actors, it sounds like it does. The main branch has its own VM, similar but not the same as the FVM code I have seen. Is the upgrade to use FVM already happening, perhaps?
    - __Abstract Consensus Interface__: Make consensus pluggable. We want to be able to run Forest with _Delegated Consensus_, meaning the same validator produces all the blocks. This is to showcase that we can, and that subnets can choose their own consensus. 
    - __Delegated Consensus__: Needs to be implemented once the code supports choosing.
    - __Documentation__: The Forest team has no documentation about how consensus works, and the people who worked on it have already moved on, so it might be a good idea to prepare some documentation, to help them with reviews at least.
    - __Reviews__: We can ask the Forest team to review and potentially merge the code at this stage as it should be just refactoring.
    - __Testing__: Can we hook into an existing testbed to make sure we haven't broken anything?
- Date: 15th August
- Demo: 1 September
aakoshh commented 2 years ago

Forest PR to factor out validation into a Consensus interface.

The review comments have links to snapshots to testnet (~4GB) and mainnet (~74GB). Forest cannot sync from Genesis because it only supports Network Version 16 (NV16) and doesn't have migrations.

The command to test if it syncs with calibnet is in the review comments.

aakoshh commented 2 years ago

Forest PR to factor out the chain::weight function into Consensus

aakoshh commented 2 years ago

Started working on Delegated Consensus

jsoares commented 2 years ago

We've decided to end this work early following M1 and put later milestones on hold. I'll close subsequent issues appropriately.