We're updating the issue view to help you get more done. 

In Parsec, also return "excess events" from poll

Description

In Parsec, poll currently returns any consensused event once and only once. This comes from the original idea of requiring a supermajority for any consensus decision, which can't happen twice (we don't allow duplicate votes).

Since we now allow opaque payloads to be consensused with only one vote, we want to reach consensus on each voter's vote for the same payload. This means that a Vote for an Opaque payload by Alice must not be treated as a duplicate of a Vote for the same Opaque payload by Bob when we are using unique OpaquePayloads.

Instead of always returning an Option<Block>, poll should return an Option<ConsensusOutput> where ConsensusOutput is an enum that can represent

  • A block made valid

  • A vote for a payload reaching consensus for the first time

  • A subsequent vote for an already consensused payload

This is necessary to ease routing integration.

Note: It may make sense to tackle first.

Environment

None

Status

Assignee

Adam Cigánek

Reporter

Pierre Chevalier

External issue URL

None

External issue ID

None

Start date

2018/11/21

End date

2018/11/21

Task progress

None

Baseline start date

None

Baseline end date

None

Story Points

4

Epic Link

Components

Priority

Critical