# Phase 0 [[group]] name = "phase-0" label = "Phase 0: MVP" items = [] # Phase 1 [[group]] name = "two-phase-inclusion" label = "Two-phase inclusion of parachain candidates" requires = ["phase-0"] items = [ { label = "Buffer submitted parachain candidate until considered available." }, { label = "Validators submit signed bitfields re: availability of parachains" }, { label = "relay chain fully includes candidate once considered available" }, ] [[group]] name = "secondary-checking" label = "Secondary checks and self-selection by validators" requires = ["two-phase-inclusion"] items = [ { label = "Extract #VCheck for all checkable candidates" }, { label = "Listen for new reports on candidates and new checks to update frontier" }, { label = "Maintain a frontier of candidates that are likely to be checked soon" }, ] [[group]] name = "runtime-availability-validity-slashing" label = "Availability and Validity slashing in the runtime" requires = ["two-phase-inclusion"] items = [ { label = "Submit secondary checks to runtime", port = "submitsecondary", requires = ["secondary-checking"] }, { label = "Track all candidates within the slash period as well as their session" }, { label = "Track reports and attestations for candidates" }, ] [[group]] name = "non-direct-ancestor" label = "Allow candidates with non-direct ancestor" items = [ { label = "Block author can provide minimally-attested candidate with older relay parent" }, { label = "Extend GlobalValidationData with random seed and session index" }, { label = "Revise availability-store pruning to ensure only needed data is kept" }, { label = "Runtime can accept and process candidates with older relay-parent" }, ] [[group]] name = "grandpa-voting-rule" label = "GRANDPA voting rule to follow valid/available chains" requires = ["runtime-availability-validity-slashing"] items = [ { label = "Accept new blocks on abandoned but mark them abandoned as well." }, { label = "Add a utility to flag a block and all of its ancestors as abandoned" }, { label = "Do not vote or build on abandoned chains" }, ] [[group]] name = "phase-1" label = "Phase 1: Availability and Validity" requires = ["grandpa-voting-rule", "non-direct-ancestor", "runtime-availability-validity-slashing"] items = []