[General] Utilizing Decentralized Sequencers #943
-
Team or ProjectNo response ZK chainEra EnvironmentTestnet L2 block numberNo response Provide a brief description of the functionality you're trying to implement and the issue you are running into.Hello, I have been looking into implementing a decentralized sequencer for research purposes using zkSync. So far, I have seen that progress has been made by implementing a custom consensus (ChonkyBFT) in the era-consensus repo, but I cannot find instructions for running it. Also, it is not entirely clear how the decentralized sequencer would integrate with the current zksync-era architecture. So I was wondering if there is some type of interface that the sequencer must implement (whether it be centralized or decentralized) so that it can interact with the rest of the components regardless of its architecture. If so, where can I find it? If not, how can one integrate a decentralized sequencer into the current zksync-era architecture? Thank you! Repo Link (Optional)No response Additional DetailsNo response |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 5 replies
-
Hi, @khalidzahra. I'm the consensus lead, I can help you. |
Beta Was this translation helpful? Give feedback.
Sure. I'll assume you have some familiarity with era-consensus and focus just on the integration.
So, era-consensus exposes 3 traits that must be implemented for any codebase that uses it. They are the payload manager, the block store and the replica store.
Payload manager is used by replicas to get block proposals and verify them, that entire logic is handled by the execution layer (in our case zksync-era), for era-consensus blocks are basically just binary blobs. Replica store is used to persist some replica state if the replica crashes or restarts, needed to maintain safety of the BFT algorithm. Block store is used by all nodes, not only replicas, and is mainly used to store blocks and…