mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-30 07:17:56 +00:00
guide: validation data refactoring (#1576)
* guide: validation data refactoring * address grumbles from review * Update roadmap/implementers-guide/src/types/candidate.md Co-authored-by: Bernhard Schuster <bernhard@ahoi.io> * last comments from review Co-authored-by: Sergei Shulepov <sergei@parity.io> Co-authored-by: Bernhard Schuster <bernhard@ahoi.io>
This commit is contained in:
committed by
GitHub
parent
57aef8eef5
commit
2a96c19370
@@ -19,8 +19,7 @@ Parachain candidates are validated against their validation function: A piece of
|
||||
Upon receiving a validation request, the first thing the candidate validation subsystem should do is make sure it has all the necessary parameters to the validation function. These are:
|
||||
* The Validation Function itself.
|
||||
* The [`CandidateDescriptor`](../../types/candidate.md#candidatedescriptor).
|
||||
* The [`LocalValidationData`](../../types/candidate.md#localvalidationdata).
|
||||
* The [`GlobalValidationSchedule](../../types/candidate.md#globalvalidationschedule).
|
||||
* The [`ValidationData`](../../types/candidate.md#validationdata).
|
||||
* The [`PoV`](../../types/availability.md#proofofvalidity).
|
||||
|
||||
### Determining Parameters
|
||||
|
||||
@@ -64,7 +64,7 @@ To determine availability:
|
||||
- If the bitfields indicate availability and there is a scheduled `next_up_on_available`, then we can make an `OccupiedCoreAssumption::Included`.
|
||||
- If the bitfields do not indicate availability, and there is a scheduled `next_up_on_time_out`, and `occupied_core.time_out_at == block_number_under_production`, then we can make an `OccupiedCoreAssumption::TimedOut`.
|
||||
- If we did not make an `OccupiedCoreAssumption`, then continue on to the next core.
|
||||
- Now compute the core's `validation_data_hash`: get the `LocalValidationData` from the runtime, given the known `ParaId` and `OccupiedCoreAssumption`; this can be combined with a cached `GlobalValidationData` to compute the hash.
|
||||
- Now compute the core's `validation_data_hash`: get the `PersistedValidationData` from the runtime, given the known `ParaId` and `OccupiedCoreAssumption`;
|
||||
- Find an appropriate candidate for the core.
|
||||
- There are two constraints: `backed_candidate.candidate.descriptor.para_id == scheduled_core.para_id && candidate.candidate.descriptor.validation_data_hash == computed_validation_data_hash`.
|
||||
- In the event that more than one candidate meets the constraints, selection between the candidates is arbitrary. However, not more than one candidate can be selected per core.
|
||||
|
||||
Reference in New Issue
Block a user