* Make `produce_candidate` return an `Option`
Instead of `produce_candidate` returning a `Result`, it should return an
`Option`. The only supported error was `InvalidHead` anyway and Cumulus
will take care to print appropriate information on what failed and
Polkadot can just ignore it.
* Fix warning
* rejig candidate types a bit
* adjust doc
* describe basic PoV distribution
* replace some straggling html links
* address grumbles from review and fix links
* Refactor publish_draft_release.sh
* Switch to using arrays for storing labelled changes
* Combine changes for Polkadot and Substrate
* Change sanitised_git_logs in `lib.sh` to drop `*`s at the start
* Only look for priorities of medium or above (presence of one or more
C1 label is enforeced by check-labels anyway, saves us some API calls)
* Ensure priorities >C1-low aren't labelled B0-silent
* add signed wrapper, typedef SignedStatement
* typedef SignedAvailabilityBitfield
* implement Signed wrapper
This is strictly an addition as of this commit; nothing is yet
changed in existing behavior.
* inline getters, remove review comment
* move EncodeAs, Signed from node::primitives to primitives::parachain
* Refactor SignedAvailabilityBitfield to use Signed
* don't double-encode real payload
This isn't an ideal solution, because it depends on the
implementation details of how SCALE encodes tuples, but OTOH
that behavior seems unlikely to change anytime soon.
* fix build errors
* cause the runtime to build properly with the new changes
Not sure why cargo check didn't catch this earlier; oh well.
* fix runtime tests and separate SignedStatement from SignedFullStatement
* better explain why CompactStatement exists
Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
* Add mdbook-linkcheck
* Convert todo to not a link
* Fix external glossary link
* Fix various broken links
* Mass replace: s/.html/.md/
* My sloppy attempt to add a gitlab CI check
* add availability bitfield types to primitives
* begin inclusion module
* use GitHub issue link for limitation
* fix some compiler errors
* integrate validators into initializer
* add generic signing context
* make signing-context more generic
* fix issues with inclusion module
* add TODO
* guide: add validators and session index to inclusion
* guide: add session index to change notification
* implement session change logic
* add BackedCandidate type
* guide: refine inclusion pipeline
* guide: rename group_on to group_validators
* guide: add check about collator for parathread
* guide: add last_code_upgrade to paras and use in inclusion
* implement Paras::last_code_upgrade
* implement most checks in process_candidates
* make candidate receipt structs more generic
* make BackedCandidate struct more generic
* use hash param, not block number
* check that candidate is in context of the parent block
* include inclusion module in initializer
* implement enact-candidate
* check that only occupied cores have bits set
* finish implementing bitfield processing
* restructure consistency checks on candidates
* make some more primitives generic
* signature checking logic for backed candidates
* finish implementing process_candidates
* implement collect_pending
* add some trait implementations to primitives
* implement InclusionInherent and squash warnings
* test bitfield signing checks
* rename parachain head to para_head
* fix note_new_head bug in paras
* test bitfield enactment in inclusion
* helpers for candidate checks
* add test for most candidate checks
* add test for backing setting storage
* test session change logic
* remove extraneous type parameter
* remove some allow(unused)s
* extract threshold computation to const fn
* remove some more allow(unused)s
* improve doc
* add debug assertion
* fix primitive test compilation
* tag unanimous variant as unused
* Router module initial commit
* Add the router.md itself
* Enqueue only on enact_candidate
* Initialization concerns
* Ignore the snippet
* Update roadmap/implementors-guide/src/runtime/router.md
Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
* Dispatch messages on finalization
* More fixes from review
* Update roadmap/implementors-guide/src/SUMMARY.md
Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
* Adds router to initializer order
* Adds messages.md
Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
* introduce polkadot-node-primitives
* guide: change statement distribution message types
* guide: remove variant from `CandidateSelectionMessage`
* add a few more message types
* add TODOs
* Almost all messages
* NewBackedCandidate notification
* Formatting
* Use AttestedCandidate as BackedCandidate
* Update node/primitives/src/lib.rs
Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
* Fix the tests
* Bring in types from #1242
* Adds network bridge messages
* More message types from doc
* use fn pointer type
* Fixes from the review
* Add missing Runtime subsystem message
* rename to CandidateValidationMessage and fix tests
Co-authored-by: Fedor Sakharov <fedor.sakharov@gmail.com>
Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
* types chapter & candidate types
* Factor out some message types
* backing and availability types.
* spacing
* finish thought
* info on signed payloads
* update links
* explicit wrapper types
* add remaining message types
* add runtime API subsystem
* adjust language
* tweak candidate validation message
* find homes for some misfit types
* embed abridged within full candidate receipt
* Update roadmap/implementors-guide/src/SUMMARY.md
Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
* Update roadmap/implementors-guide/src/SUMMARY.md
Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
* adjust text on candidate selection message to match
Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
* Enforces presence of C-labels to designate the importance of a release
* Iterates over them on a release, takes the highest present and includes it in the release notes
* Lists the change(s) that caused the release to be that priority
* remove IsCallable make use of in-origin filter
* update lock
* bump version for runtimes as spec as changed
* trigger CI
* Revert "trigger CI"
This reverts commit 5ac58fd42ac50dfb2fcd41ca866c7f6a605c5112.
* update provisioner subsystem
Closes#1143
* update with answers to the questions posed by previous todos
* add misbehavior reports, disputes to provisioner messages
* expand on the protocol
* updates per code review
* New service initial commit
* More separation of the new and old services
* Fix review comments
* Adds polkadot.json
* Fix browser build
* Remove unused import
* Update node/service/src/lib.rs
Co-authored-by: Fedor Sakharov <fedor.sakharov@gmail.com>
* Remove duplicate json files
Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
* scheduler module skeleton
* update scheduler skeleton to match latest version of guide
* better session change notification
* add mock randomness and fix test compilation
* shuffle validators into groups
* finish implementing session change logic for scheduler
* tweak core assignment type to track retries of parathread
* reframe queued parathread core as offset
* implement initialzation and finalization routines
* implement parathread claim queuing
* implement core_para
* implement the group_validators routine and fix errors
* add a reason for freeing cores
* implement `schedule` function
* add some docs to the scheduled function
* implement `occupied` helper
* implement availability predicate
* fix some warnings
* integrate scheduler into initializer
* integrate scheduler into mock module
* avoid conflict with Substrate's scheduler storage
* add parathreads index to paras module
* implement parathreads map in paras module
* add is_parathread to paras
* test adding parathread claim
* test that you cannot add claims when no parathread cores exist
* check session change parathread queue pruning
* test validator shuffling
* add allow_unused to scheduler items
* add test for scheduling
* add some more tests for scheduling logic
* test core rotation
* check parathread claim pruning after retries
* add bound notes
* Apply suggestions from code review
Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
Co-authored-by: Bernhard Schuster <bernhard@ahoi.io>
* more suggestions from review
* test availability predicate, add box to please compiler
* add changes to guide
Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
Co-authored-by: Bernhard Schuster <bernhard@ahoi.io>
* move old implementers' guide, add skeleton of new
* Split the old implementers' guide into the new one's sections
This is mostly a straightforward copying operation, moving the
appropriate sections from the old guide to the new. However, there
are certain differences between the old text and the new:
- removed horizontal rules between the sections
- promoted headers appropriately within each section
- deleted certain sections which were in the old guide's ToC but
which were not actually present in the old guide.
- added Peer Set Manager to the new ToC
* remove description headers
It is redundant and unnecessary. Descriptions fall directly under the
top-level header for any given section.
* add stub description of the backing module
* add stub description for the availability module
* add stub description for collators
* add stub description for validity
* add stub description for utility
* highlight TODO and REVIEW comments
* add guide readme describing how to use mdbook
* fix markdownlint lints
* re-title parachains overview
* internal linking for types
* module and subsystem internal links
* .gitignore should have a trailing newline
* node does not have modules, just subsystems
* define subsystems skeleton
* Create a blank section for each subsystem in the initial batch
* write out basics for most subsystems
* define network bridge subsystem
* integrate network bridge into network systems
* Apply suggestions from code review
some nits
Co-authored-by: Max Inden <mail@max-inden.de>
* clean up wording
Co-authored-by: Max Inden <mail@max-inden.de>
* define subsystems skeleton
* Create a blank section for each subsystem in the initial batch
* write out basics for most subsystems
* Update roadmap/implementors-guide/guide.md
clean up language
Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
* ToC indentation
* clean up wording
* renaming block authorship (provisioning) to Provisioner
Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>