Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# 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 = "Maintain a frontier of candidates that are likely to be checked soon" },
{ label = "Listen for new reports on candidates and new checks to update frontier" },
]
[[group]]
name = "runtime-availability-validity-slashing"
label = "Availability and Validity slashing in the runtime"
requires = ["two-phase-inclusion"]
items = [
{ label = "Track all candidates within the slash period as well as their session" },
{ label = "Submit secondary checks to runtime", port = "submitsecondary", requires = ["secondary-checking"]},
{ label = "Track reports and attestatations for candidates" },
]
[[group]]
name = "non-direct-ancestor"
label = "Allow candidates with non-direct ancestor"
items = [
{ label = "Extend GlobalValidationData with random seed and session index"},
{ label = "Block author can provide minimally-attested candidate with older relay parent" },
{ label = "Runtime can accept and process candidates with older relay-parent" },
{ label = "Revise availability-store pruning to ensure only needed data is kept" },
]
[[group]]
name = "grandpa-voting-rule"
label = "GRANDPA voting rule to follow valid/available chains"
requires = ["runtime-availability-validity-slashing"]
items = [
{ label = "Add a utility to flag a block and all of its ancestors as abandoned" },
{ label = "Accept new blocks on abandoned but mark them abandoned as well." },
{ label = "Do not vote or build on abandoned chains" },
]
[[group]]
name = "phase-1"
label = "Phase 1: Availability and Validity"
requires = ["non-direct-ancestor", "grandpa-voting-rule", "runtime-availability-validity-slashing"]
items = []