-
Notifications
You must be signed in to change notification settings - Fork 11.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Umbrella] [Sync] Engineering plan for follower (A), transaction dissemination (B) and check pointing (C) #1099
Comments
Tagging myself @velvia here. A couple thoughts:
|
If it helps you can have a look here, this is what I was thinking of: As you can see in this draft indeed checkpoints have a sequence number, and you can get the set of transaction digests (potentially maybe effects digests down the line) at each checkpoint. Is this what you were suggesting? |
To start with I would use the follower interfaces for authorities to follow a subset of other authorities to propagate the transactions digests that are processed. If a transaction digest seen at another authority is not processed locally, the authority can try to download the cert to execute it. All this is TBD. How does that affect your work on storage? |
It probably doesn't, I was just curious about if we were using IBLTs, bitmaps, etc. The only thing that would affect is basically an efficient way of extracting whatever info is exchanged, if it is not the subscription.
I looked into the WIP / authority_checkpoint that you have above. I guess I'm thinking of a different approach, one designed for easy state shedding. Here we will have a table going from checkpoint to TX digest (well, checkpoint and TX digest) and we also have a separate sequencing table for the batch sequences, and these are all growing rapidly with time. Instead I'm thinking of a TX store which organizes all TXs sequenced within each checkpoint or "block":
So the cert/effects store would have built in a notion of checkpoints or blocks, and allow older checkpoints to easily be "dropped" or shipped off to cold storage. Furthermore and the reason why I ask about the checkpoint number. Imagine if you have a CertificateSequenceNumber which is basically a u64 or a |
The latest diffs implement the gossip protocol: |
This issue gathers the tasks road map following the extensive design discussions in #194 . We we develop particular components we will make individual issues to discuss, but here we present the big picture.
Priority A: A client / authority / replica can request historic and real time local transaction sequence from another authority.
Priority B: Authorities proactively share certificates (and optionally transactions) with each other, to ensure honest authorities are close to having processed the same set of certificates. ( @laura-makdah & @gdanezis )
Priority C: Protocols to leverage the information available on authorities to derive periodic checkpoints where a super-majority of authorities agree to the set of certificates processed up to these points.
cc: @LefKok who can provide reviews on design & feedback on interactions with reconfig. @kchalkias who will want to review crypto.
The text was updated successfully, but these errors were encountered: