* 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
* Bump jsonrpc pubsub, core, http, and ws
Right now these are the packages which _need_ to be updated
so I can just the latest `jsonrpc-pubsub` code. Once a release
it cut upstream the rest of the dependencies should be updated
as well.
* Use jsonrpc-pubsub's SubscriptionManager
This places sc-rpc-api::Subscriptions
* Bump jsonrpc-core outside of sc-rpc-*
* Update client/rpc tests
Right now one of the `author` tests is failing, I
need to think a bit about how best to fix it.
* Remove Subscriptions manager
There's no need for this implementation since we're
using the one from `jsonrpc-pubsub` now
* Fix author RPC test
This test used to check for a numerial subscription ID,
whereas now it uses a string based ID which is the default
provided by `jsonrpc-pubsub`'s subscription manager.
* Remove unused NumericIdProvider
* Add missing bracket
Removed one too many with that last one, lol
* Bump `jsonrpc` to v14.2
There's an exception though. `jsonrpc-derive` cannot be bumped
past v14.0.5 just yet since it has a dependency on `quote` pinned
to v1.0.1. This means that at the moment it won't build on Substrate
since it's using v1.0.3.
* Track `jsonrpc-derive` master branch
* Bump `quote` version to v1.0.6
* Bump `jsonrpc-derive` to v14.2.1
This includes support for `quote` v1.0.6
Instead of having the tx pool and offchain worker being feed from the
same import notification stream, this pr splits them to use two
different streams. The first advantage of this split is that the tx pool
will not be spawned anymore in another task and instead will directly
process the notification in the same task. This has the advantage of
being faster when the system is being under load, as the tx pool will
not be waiting for being scheduled to handle the notification.
* Make dev profile faster by compiling deps with opt-level=3
* More comment
* More comment refinment
* Remove soketto as it doesn't fit criterias
* Fix style
* 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
* fix (ci): hotfix Docker release
* test (ci): run full ci [skip ci]
* change (ci): check stage; add default variables because they were overriden; test-dep-rules goes k8s
* change (ci): move companion job to another stage
* change (ci): no good way to avoid artifacts downloads without dependencies
* fix (ci): typo
* change (ci): all CI images were moved to paritytech registry
* fix (ci): return to the prev image, new needs more testing
* Initial commit
* Licenses, spaces, docs
* Add a spawner
* Watch spawned subsystems with a FuturesUnordered
* Move the types around a bit
* Suggested fixes by Max
* Add a handler to talk to the Overseer
* FromOverseer and ToOverseer msgs and stopping
* Docs and return errors
* Dont broadcast, have add a from field to messages
* Allow communication between subsystems and outside world
* A message with a oneshot to send result example
* Remove leftover can_recv_msg
* Remove from field from messages
* Dont be generic over stuff
* Gather messages with StreamUnordered
* Fix comments and formatting
* More docs fixes and an example
* Apply suggestions from code review
Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
* Fixes from review
Move function from impl block.
Do not panic but resolve with errors if spawner fails or subsystem
resolves.
* Dropping a handler results in a flaky test
Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
This pr ensures that the table router stays alive for the lifetime of
the validation instance. This is required to ensure that the node
responds onto gossip messages for the particular relay chain round.
Before, the table router was only kept alive for relay chain nodes that
were assigned to a Parachain, however the lifetime was also relative
short. This lead to bugs where a relay chain node did not include
PoVBlock's, because it did not receive them (rejected them on receive,
because it was not listening on the particular round).
* refactor import reporting and add time
* Update primitives/consensus/common/src/metrics.rs
Co-authored-by: Max Inden <mail@max-inden.de>
* remove (crate)
* fix longer lines
* swap names to avoid api breaking
Co-authored-by: Max Inden <mail@max-inden.de>
* Make `Proposer` consume its reference on `propose`
A proposer must be created per new round, so it makes sense to have the
proposer consume its own reference.
* Remove `ProposerInner`
* 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
* Enable the `runtime-wasm` for wasm builds
This enables the `runtime-wasm` feature for wasm builds. The feature is
not mandatory and will only be activated if it exists in the
`Cargo.toml`.
* Fix compilation
* Update docs
* Uprgade version
* Apply suggestions from code review