Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Commit

Permalink
Introduce a skill-tree for remaining tasks in phase-1 (#961)
Browse files Browse the repository at this point in the history
* add dummy parachains.toml

* flesh out parachains.toml

* finish phase-1 rendering

* render to svg instead

* put graphviz svg through sanitizer so github can render

* return to PNG
  • Loading branch information
rphmeier committed Apr 2, 2020
1 parent fb358e8 commit d7abd17
Show file tree
Hide file tree
Showing 3 changed files with 75 additions and 0 deletions.
Binary file added roadmap/phase-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
64 changes: 64 additions & 0 deletions roadmap/phase-1.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,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 = []
11 changes: 11 additions & 0 deletions roadmap/render.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# requires skill-tree: github.com/nikomatsakis/skill-tree

render () {
echo "Rendering $1"
skill-tree $1.toml output
python3 -c "from graphviz import render; render('dot', 'png', 'output/skill-tree.dot')"
mv output/skill-tree.dot.png "$1.png"
rm -rf output
}

render phase-1

0 comments on commit d7abd17

Please sign in to comment.