Constellation-Labs / constellation

:milky_way::satellite: Decentralized Application Integration Platform
Apache License 2.0
153 stars 40 forks source link

L1 Consensus Implementation #1435

Closed buckysballs closed 3 years ago

buckysballs commented 3 years ago

We need to essentially re-implement L1 consneus (ConsensusManager) in terms of a Gather apply Scatter. There is an example of a GAS that adds ints together, namely ConsensusExample in Tessellation. For L1 consenus, we just need to concatenate collections and check their combined hash. We should be able to re-implement this in terms of GAS over collections of Transactions.

DoD)

1) Re-implementation of ConsensusManager in terms of GAS 2) Pipeline that streams Transactions into Cells performing L1 consensus. We should set a chunk size that's equal to the batch size, so that as a stream of transactions comes in, if the backpressure is greater than the batch size, another Cell running L1 consensus gets created and runs. We should be able to show this in a unit test 3) Port over code utilities necessary for facilitator selection, maj state chooser etc. We will want to Tessellation to be its new home.

LukaszKoral commented 3 years ago

Back to in progress due to additional development for edge case and documentation needed