Skip to content

Instantly share code, notes, and snippets.

@kchristidis
Created December 8, 2017 17:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kchristidis/659acf94d5392e35204a9a42a9dbe65e to your computer and use it in GitHub Desktop.
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.
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ 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) │ └───────────────────────────┘ │ │
│ │ │ └────────────────────────────────────────────────┘ │
│ │ │ │
│ │ │ │
│ │ │ │
└───────────────┘ │ │
│ │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
@kchristidis
Copy link
Author

7069-filter

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment