Files
pezkuwi-subxt/polkadot/roadmap/implementers-guide/src/node/backing
Peter Goodspeed-Niklaus d1b1c17285 implement candidate selection subsystem (#1645)
* choose the straightforward candidate selection algorithm for now

* add draft implementation of candidate selection

* fix typo in summary

* more properly report misbehaving collators

* describe how CandidateSelection subsystem becomes aware of candidates

* revise candidate selection / collator protocol interaction pattern

* implement rest of candidate selection per the guide

* review: resolve nits

* start writing test suite, harness

* implement first test

* add second test

* implement third test

Co-authored-by: Bernhard Schuster <bernhard@ahoi.io>
2020-09-08 09:48:48 +00:00
..
2020-07-07 10:10:36 -04:00

Backing Subsystems

The backing subsystems, when conceived as a black box, receive an arbitrary quantity of parablock candidates and associated proofs of validity from arbitrary untrusted collators. From these, they produce a bounded quantity of backable candidates which relay chain block authors may choose to include in a subsequent block.

In broad strokes, the flow operates like this:

  • Candidate Selection winnows the field of parablock candidates, selecting up to one of them to second.
  • Candidate Backing ensures that a seconding candidate is valid, then generates the appropriate Statement. It also keeps track of which candidates have received the backing of a quorum of other validators.
  • Statement Distribution is the networking component which ensures that all validators receive each others' statements.
  • PoV Distribution is the networking component which ensures that validators considering a candidate can get the appropriate PoV.