Populate more data in parachain inherents #2989
Labels
A-triage
issue description needs refactor and/or labeled.
Epic
Issue used to track development status of a complex feature, aggregates several issues
S-subsystems-backing
issues related to polkadot host backing subsystem functionality.
Issue summary
Parachain Inherents have four fields Parent Header, Bitfields, BackedCandidates and Disputes.
However, we have populated only Parent Header, because that is our minimum requirement for a node to run (build blocks).
We would like to populate other fields as well.
The scope of this issue would be find where to and how to get those remaining information (Bitfields, BackedCandidates and Disputes).
It would most like require a larger parachain support. In which case, figure out what extra feature we might need to populate these data and create other issues accordingly.
Updates after research
This is a large task, one which requires building systems written below
Receive collations from parachains #3204
feat(dot/parachain): Implement Parachain Candidate Backing #3247
This can also be done independently Implement ParachainHost runtime calls #3186
Details of how these subsystems work in polkadot is https://paritytech.github.io/polkadot/book/node/subsystems-and-jobs.html while spec is at https://spec.polkadot.network/#chapter-anv
Basically in order to populate parachain inherents we should be able to get data from collators, that data will make use of all the above mentioned subsystems and in the end we will get parachain inherents for us to put into new blocks.
I feel like the first systems for us to implement should be collator protocol. The Collator Protocol implements the network protocol by which collators and validators communicate. It is used by collators to distribute collations to validators and used by validators to accept collations by collators.
The Collator Protocol is the first in the journey of a parachain block to become part of the relay chain. Thus, we can test this implementation independently. Whereas, all other systems interact with other not-yet-implemented systems, which would require us to mock behaviour.
Other information and links
There is the Node Implementer's Guide. Node implementer explains how parachain host is implemented in Polkadot (rust implementation). It is really helpful because
The is also the spec. Personally, I find spec easy to understand. Spec is good to know just the requirement. With node implementer's guide one can get confused on what is the requirement and what is a implementation choice.
The text was updated successfully, but these errors were encountered: