Conversation
Collaborator
Mirko-von-Leipzig
left a comment
There was a problem hiding this comment.
I'm about halfway through, I think so far my main question/suggestion is moving the proof inputs out of the db.
4907595 to
637af22
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Store Replica Mode
Adds a replica mode to the store, enabling (replica) store instances to sync blocks and proofs
from an upstream store. This allows the RPC layer to be scaled horizontally by pointing multiple
RPC nodes at multiple replica stores, without adding load to the primary store or block producer.
Architecture
The store now operates in one of two mutually exclusive modes, controlled by the new
StoreModeenum:
BlockProducermode — existing behaviour. Accepts blocks from the block producer via theBlockProducergRPC service, runs the proof scheduler, and exposes theNtxBuilderservice.Replicamode — new. Syncs blocks from an upstream store via the newStoreReplicagRPCservice. Only exposes the
RpcandStoreReplicaservices — no block producer service, no NTX builder service, and no proof scheduler task.New:
StoreReplicagRPC serviceImplemented on the upstream store side. Exposes two streaming RPCs:
SubscribeBlocks— streams committed blocks to a subscriber starting from a given blocknumber.
SubscribeProofs— streams block proofs to a subscriber starting from a given block number.Operational
run-node.shupdated to demonstrate a topology with a primary storeand two replicas, with RPC nodes pointing at the replicas.