* 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