Commit Graph

11 Commits

Author SHA1 Message Date
Robert Habermeier b925981971 Utility subsystem for actually connecting to network (#1205)
* 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>
2020-06-10 13:31:29 -04:00
Robert Habermeier 88161da402 Write out stubs for most backing and availability subsystems (#1199)
* 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>
2020-06-10 11:24:37 -04:00
Peter Goodspeed-Niklaus 67e7fba60d expand validity subsystems descriptions independent of subsystems overview (#1185)
* expand subsystems descriptions independent of subsystems overview

The subsystems overview in https://github.com/paritytech/polkadot/pull/1161
is a very useful reference for what subsystems need to talk to each other,
when, and why; it helps us design the actual messages.

However, administratively, it belongs in a different PR. This commit
brings in all the changes made there so far as a base for an independent
PR.

* Reorder subsystem descriptions, add some messages

Update ordering of subsystem descriptions to rough order of use,
mirroring the order in the overview document.

Added some message types. Added OverseerSignal variants to several
types, such that each subsystem only needs to listen for a single
type.

* add some more message types, Statement Distribution overview

* add more detail on Statement Distribution, Misbehavior Arbitration

* intentionally punt MA details for a future PR

* reduce duplication from overseer signal handling

* reword for clarity

* clarify: other modules and subsystems also get to talk to the network

* finish current work on candidate selection

* update candidate backing subsystem description according to current thought

* update mechanism for candidate backing to report collator misbehavior to candidate selection

* sketch out the peer receipt state machine

* Fix typo in roadmap/implementors-guide/guide.md

Co-authored-by: Robert Habermeier <rphmeier@gmail.com>

* Don't specify 'peer validators', as messages from non-validator peers are ignored regardless

* clarify instancing of peer receipt state machine

* add section on peer knowledge tracking

* fix typo in roadmap/implementors-guide/guide.md

Co-authored-by: Max Inden <mail@max-inden.de>

Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
Co-authored-by: Max Inden <mail@max-inden.de>
2020-06-10 09:13:32 -04:00
Robert Habermeier 2ff55ca4b6 Add exception to overseer communication and write up local and remote disputes (#1176)
* clarify exception to communication rule for responses

* add note about outside world

* write up my understanding of local and remote disputes

* clean up secondary checker language

* amend to match Jeff's notes
2020-06-05 13:55:16 -04:00
Peter Goodspeed-Niklaus 3d0bda8a42 Add an overview of Validity subsystems (#1161)
* migrate subsystem expansion PR from w3f/research

As the file at this new location included changes not present in
https://github.com/w3f/research/pull/87, this is effectively a
rebase, applied manually. I believe that I have successfully retained
all of, and only, the intended changes.

* add section on collators

* note why the overseer is the terminal message point for the validation subsystem

* add detail about how the validitiy system gets PoV blocks

* rename to Validity Subsystems Overview

* get rid of changes to the implementor's guide

I think it makes most sense to track and review the subsystems
overview in a different PR than the one which adds content to
the implementor's guide.

* punt misbehavior arbitration details to the future

* empty commit to rerun CI
2020-06-04 12:35:37 -04:00
Robert Habermeier 593fa2b0c1 note pruning of orphan blocks in the overseer description (#1189)
* note pruning of orphan blocks in the overseer description

* remove note about finalization events being maybe not needed
2020-06-02 16:19:53 -04:00
Robert Habermeier bd2304ec98 New parachain runtime skeleton (#1158)
* file structure and initializer skeleton

* ensure session changes happen before initialization

* add a couple tests for initializer flow

* integrate with session handling

* configuration update logic

* configuration methods

* move test mock to its own module

* integrate configuration into initializer

* add note about initialization order

* integrate configuration module into mock

* add some tests for config module

* paras module storage

* implement paras session change operation

* amend past code pruning to fully cover acceptance period

* update guide again

* do pruning of historical validation code

* add weight to initialization

* integrate into mock & leave notes for next session

* clean up un-ended sentence

* alter test to account for double index in past code meta

* port over code-at logic test

* clarify checking for conflicting code upgrades

* add genesis for paras, include in mock, ensure incoming paras are processed

* note on return value of `validation_code_at`

* implement paras routines from implementor's guide

* bring over some existing tests and begin porting

* port over code upgrade tests

* test parachain registration

* test code_at with intermediate block

* fix warnings

* clean up docs and extract to separate struct

* adjust implementor's guide to include replacementtimes

* kill stray println

* rename expected_at to applied_after

* rewrite ParaPastCodeMeta to avoid reversal

* clarify and test interface of validation_code_at

* make FutureCode optional

* rename do_old_code_pruning

* add comment on Option<()> to answer FAQ

* address some more grumbles
2020-06-02 12:34:07 -04:00
Robert Habermeier 03576b3707 Remove old runtime requirements section, reorganize, and improve ToC (#1180)
* remove old runtime requirements section

* reorganize guide and improve ToC
2020-06-01 17:52:42 -04:00
Robert Habermeier a3e4893a7c Improve the implementor's guide section on the Scheduler module (#1168)
* remove redundant resize instruction from guide

* amend past code pruning to fully cover acceptance period

* update guide again

* note on return value of `validation_code_at`

* rename execution cores to availability cores

* clarify terminology

* add ReplacementTimes to the guide

* fully decouple inclusion and scheduler

* clarify parathread scheduling substantially

* clarify validator group selection
2020-05-29 15:52:59 +02:00
Robert Habermeier 1a3557a597 clarify some things about subsystems (#1157) 2020-05-28 14:15:07 +03:00
Robert Habermeier cbb412f515 include implementor's guide in this repo (#1137)
* include implementor's guide in this repo

* most updated guide
2020-05-25 19:11:36 -04:00