Created
December 8, 2017 17:32
-
-
Save kchristidis/659acf94d5392e35204a9a42a9dbe65e to your computer and use it in GitHub Desktop.
Rough sketch showing how the two servers interact with each other. We only expose the EventsServer.
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
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ | |
│ peer │ | |
│ │ | |
┌───────────────┐ │ │ | |
│ │ │ │ | |
│ │ │ │ | |
│ │ │ │ | |
│ │ │ │ | |
│ │ │ ┌────────────────────────────────────────────────┐ │ | |
│ │ 1. invoke │ │ ┌───────────────────────────┐ │ │ | |
│ ──────┼─────peer.Deliver RPC──┼─────┼──▶ │ │ │ │ | |
│ │ (sends Envelope) │ │ │ │ │ │ | |
│ │ │ │ │2. record requested filter │ │ │ | |
│ │ │ │ │3. is the client authorized│ │ │ | |
│ │ │ │ │ for this request? [*] │ │ ┌──────────────────────────────────────────┐ │ | |
│ │ │ │ │ │ │ 4. peer internally invokes │ │ │ | |
│ │ │ │ │ │ ───────┼────────ab.Deliver RPC───────────┼───▶ │ │ | |
│ │ │ │ │ │ │ │ │ │ | |
│ │ │ │ └───────────────────────────┘ │ │ │ │ | |
│ │ │ │ peer.EventsServer │ │ │ │ | |
│ client │ │ │ │ │ │ │ | |
│ │ │ │ (implements peer.Deliver RPC) │ │ ab.AtomicBroadcastServer │ │ | |
│ │ │ │ │ │ │ │ | |
│ │ │ │ ┌───────────────────────────┐ │ │ (implements ab.Deliver RPC) │ │ | |
│ │ │ │ │ │ │ │ │ │ | |
│ │ │ │ │ │ │ │ │ │ | |
│ │ │ │ │6. transform/scrub received│ │ │ │ │ | |
│ │ │ │ │ block based on requested │ │ │ │ │ | |
│ │ │ │ │ filter │ │ 5. peer receives │ │ │ | |
│ │ │ │ │ │ ◀──────┼─────ab.Deliver RPC response─────┼──── │ │ | |
│ │ 7. return │ │ │ │ │ │ │ │ | |
│ ◀─────┼─peer.Deliver RPC response───┼─── │ │ │ └──────────────────────────────────────────┘ │ | |
│ │ (sends DeliverResponse) │ └───────────────────────────┘ │ │ | |
│ │ │ └────────────────────────────────────────────────┘ │ | |
│ │ │ │ | |
│ │ │ │ | |
│ │ │ │ | |
└───────────────┘ │ │ | |
│ │ | |
│ │ | |
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ |
Author
kchristidis
commented
Dec 8, 2017
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment