* move old implementers' guide, add skeleton of new * Split the old implementers' guide into the new one's sections This is mostly a straightforward copying operation, moving the appropriate sections from the old guide to the new. However, there are certain differences between the old text and the new: - removed horizontal rules between the sections - promoted headers appropriately within each section - deleted certain sections which were in the old guide's ToC but which were not actually present in the old guide. - added Peer Set Manager to the new ToC * remove description headers It is redundant and unnecessary. Descriptions fall directly under the top-level header for any given section. * add stub description of the backing module * add stub description for the availability module * add stub description for collators * add stub description for validity * add stub description for utility * highlight TODO and REVIEW comments * add guide readme describing how to use mdbook * fix markdownlint lints * re-title parachains overview * internal linking for types * module and subsystem internal links * .gitignore should have a trailing newline * node does not have modules, just subsystems
1.1 KiB
Provisioner
This subsystem is responsible for providing data to an external block authorship service beyond the scope of the Overseer so that the block authorship service can author blocks containing data produced by various subsystems.
In particular, the data to provide:
- backable candidates and their backings
- signed bitfields
- misbehavior reports
- dispute inherent
TODO: needs fleshing out in validity module, related to blacklisting
Protocol
Input:
- Bitfield(relay_parent, signed_bitfield)
- BackableCandidate(relay_parent, candidate_receipt, backing)
- RequestBlockAuthorshipData(relay_parent, response_channel)
Functionality
Use StartWork and StopWork to manage a set of jobs for relay-parents we might be building upon.
Forward all messages to corresponding job, if any.
Block Authorship Provisioning Job
Track all signed bitfields, all backable candidates received. Provide them to the RequestBlockAuthorshipData requester via the response_channel. If more than one backable candidate exists for a given Para, provide the first one received.
TODO: better candidate-choice rules.