typhon icon indicating copy to clipboard operation
typhon copied to clipboard

Message Pipelining

Open isheff opened this issue 2 years ago • 1 comments

Pipelineing, at least as used in HottStuff, is the art of using a single message as part of multiple instances of consensus, to save on message space.

With the naive message design in the tech report, the main content of each message is a list of references to prior messages. This makes it very easy for a message to serve as part of multiple consensus instances. We do have to watch out for a couple of points:

  • Since a recipient may not care about the same set of consensuses as the sender, the recipient may no longer want to wait to receive all of the referenced messages before receiving this one. We may have to flag each reference with relevant information.
  • A sender will now send messages that are "well-formed" on at least one consensus, but not necessarily on all (they aren't really 2A or 1B or whatever). So we need to not throw those away.
  • If we introduce more elaborate signature aggregation, we need to not mess up pipelining.

isheff avatar Nov 18 '21 13:11 isheff