Commit Graph

624 Commits

Author SHA1 Message Date
Gavin Wood 97acfa76d1 Introduce polling pallet (#1391)
* Initial draft

* Initial build

* Integrate into runtime

* Fix warnings.

* Initial tests

* Fixes and tests

* Update runtime/polkadot/src/poll.rs

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>

* Expose End constant

* Docs

* Update runtime/polkadot/src/lib.rs

Co-authored-by: kaichao <kaichaosuna@gmail.com>

* Update runtime/polkadot/src/poll.rs

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

* Clean up filters

* Warnings

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: kaichao <kaichaosuna@gmail.com>
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
2020-07-11 17:04:10 +02:00
Bastian Köcher 566281675b Revert log rotation (#1389)
* Revert log rotation

https://github.com/paritytech/substrate/pull/6627

* 'Update substrate'

Co-authored-by: parity-processbot <>
2020-07-10 13:24:17 +02:00
Fedor Sakharov c119627835 CandidateBackingSubsystem (#1312)
* Updates guide for CandidateBacking

* Move assignment types to primitives

* Initial implementation.

* More functionality

* use assert_matches

* Changes to report misbehaviors

* Some fixes after a review

* Remove a blank line

* Update guide and some types

* Adds run_job function

* Some comments and refactorings

* Fix review

* Remove warnings

* Use summary in kicking off validation

* Parallelize requests

* Validation provides local and global validation params

* Test issued validity tracking

* Nits from review
2020-07-09 16:23:58 -04:00
Bastian Köcher 54bace2b5d Companion for #6620 (#1386)
* Companiong for #6620

https://github.com/paritytech/substrate/pull/6620

* 'Update substrate'

Co-authored-by: parity-processbot <>
2020-07-09 15:24:00 +00:00
Ashley 1c5f9b09ba Companion PR for ' Simplify a few chain components creation APIs related to the service' (#1384)
* Switch branch

* Fix service creation

* Revert "Switch branch"

This reverts commit a706335821eb1553e48f86e0b0c5b3c11d589a1d.

* Switch branch again

* Revert "Switch branch again"

This reverts commit 04afc5095e408ff9a116c526ef84f6b101482ee1.

* Update substrate branch
2020-07-09 16:59:58 +02:00
Cecile Tonglet a4fa71ed17 Make a test crate to make the runtime-test usable (#1258)
Fixes #833
2020-07-09 15:12:52 +02:00
Robert Habermeier 151d73af5b Implement PoV Distribution Subsystem (#1344)
* introduce candidatedescriptor type

* add PoVDistribution message type

* loosen bound on PoV Distribution to account for equivocations

* re-export some types from the messages module

* begin PoV Distribution subsystem

* remove redundant index from PoV distribution

* define state machine for pov distribution

* handle overseer signals

* set up control flow

* remove `ValidatorStatement` section

* implement PoV fetching

* implement distribution logic

* add missing `

* implement some network bridge event handlers

* stub for message processing, handle our view change

* control flow for handling messages

* handle `awaiting` message

* handle any incoming PoVs and redistribute

* actually provide a subsystem implementation

* remove set-builder notation

* begin testing PoV distribution

* test that we send awaiting messages only to peers with same view

* ensure we distribute awaited PoVs to peers on view changes

* test that peers can complete fetch and are rewarded

* test some reporting logic

* ensure peer is reported for flooding

* test punishing peers diverging from awaited protocol

* test that we eagerly complete peers' awaited PoVs based on what we receive

* test that we prune the awaited set after receiving

* expand pov-distribution in guide to match a change I made

* remove unneeded import
2020-07-08 18:15:39 -04:00
Gavin Wood f83ba174f1 Bump Substrate (#1382) 2020-07-08 18:48:48 +02:00
Bastian Köcher 283ffd4ec4 Companion for #6599 (#1371)
* Companion for #6599

https://github.com/paritytech/substrate/pull/6599

* Update Substrate ref
2020-07-08 16:15:59 +00:00
Pierre Krieger fef3c181d9 Update to substrate#59ee76a0 (#1380) 2020-07-08 17:21:37 +02:00
pscott acb5875e85 Companion PR for #6564 (#1350)
* Add log_rotation_opt

* Update Cargo lock

* Use SubstrateCli's log-directory instead of re-defining it
2020-07-08 14:05:41 +02:00
Bastian Köcher 61ba45aaad Companion for #6584 (#1373)
* Companion for #6584

https://github.com/paritytech/substrate/pull/6584

* updating sp-io

* Update dev-dependency, too

* update lockfile

Co-authored-by: Benjamin Kampmann <ben@gnunicorn.org>
2020-07-08 11:42:46 +02:00
Shaopeng Wang c9046d9686 Companion for #6500 (decl_module: frame_system as default ident) (#1314)
* Update decl_storage usage with frame_system as default ident.

* More decl_module usage update.

* 'Update substrate'

Co-authored-by: parity-processbot <>
2020-07-08 09:07:19 +02:00
Bastian Köcher 37da08a764 Companion for #6589 (#1367)
https://github.com/paritytech/substrate/pull/6589
2020-07-07 12:06:57 +02:00
Robert Habermeier ac8e1ca206 Implement the Statement Distribution Subsystem (#1326)
* set up data types and control flow for statement distribution

* add some set-like methods to View

* implement sending to peers

* start fixing equivocation handling

* Add a section to the statement distribution subsystem on equivocations and flood protection

* fix typo and amend wording

* implement flood protection

* have peer knowledge tracker follow when peer first learns about a candidate

* send dependents after circulating

* add another TODO

* trigger send in one more place

* refactors from review

* send new statements to candidate backing

* instantiate active head data with runtime API values

* track our view changes and peer view changes

* apply a benefit to peers who send us statements we want

* remove unneeded TODO

* add some comments and improve Hash implementation

* start tests and fix `note_statement`

* test active_head seconding logic

* test that the per-peer tracking logic works

* test per-peer knowledge tracker

* test that peer view updates lead to messages being sent

* test statement circulation

* address review comments

* have view set methods return references
2020-07-06 11:16:17 -04:00
Bastian Köcher 72d0f09659 Companion for #6576 (#1351)
* Companion for #6576

* 'Update substrate'

Co-authored-by: parity-processbot <>
2020-07-06 13:36:00 +02:00
Shawn Tabrizi 4af14c5191 Companion for #6567 (Benchmark Writer CLI) (#1349)
* Update usage of macro

* 'Update substrate'

* cargo update -p sp-io

Co-authored-by: parity-processbot <>
2020-07-06 10:06:02 +00:00
Peter Goodspeed-Niklaus f2104562d8 implement custom proposer (#1320)
* network bridge skeleton

* move some primitives around and add debug impls

* protocol registration glue & abstract network interface

* add send_msgs to subsystemctx

* select logic

* transform different events into actions and handle

* implement remaining network bridge state machine

* start test skeleton

* make network methods asynchronous

* extract subsystem out to subsystem crate

* port over overseer to subsystem context trait

* fix minimal example

* fix overseer doc test

* update network-bridge crate

* write a subsystem test-helpers crate

* write a network test helper for network-bridge

* set up (broken) view test

* Revamp network to be more async-friendly and not require Sync

* fix spacing

* fix test compilation

* insert side-channel for actions

* Add some more message types to AllMessages

* introduce a test harness

* impl ProvideInherent for InclusionInherent

* reduce import churn; correct expect message

* move inclusion inherent identifier into primitives

It's not clear precisely why this is desired, but it's a pattern
I've seen in several places, so I'm going this to be on the
safe side. Worst case, we can revert this commit pretty easily.

* bump kusama spec_version to placate CI

* copy sc_basic_authorship::{ProposerFactory, Proposer}

We have from the problem description:

> This Proposer will require an OverseerHandle to make requests via.

That's next on the plate.

* use polkadot custom proposer instead of basic-authorship one

* add some tests

* ensure service compiles and passes tests

* fix typo

* fix service-new compilation

* Subsystem test helpers send messages synchronously

* remove smelly action inspector

* remove superfluous let binding

* fix warnings

* add license header

* empty commit; maybe github will notice the one with changes

* Update node/network/bridge/src/lib.rs

Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>

* add sanity check to only include valid inherents

* stub: encapsulate block production mechanics instead of copying them

The goal is to end up with something like what's in
validation::block_production::*, which encapsulates
basic block production mechanics. This is a better idea than
just straight-up copying those mechanics.

* partial implementation of propose fn

Doesn't actually compile yet; need to bring in some other
commits to ensure ProvisionerMessage is a thing, and also
figure out how to get the block hash given the current
context.

* fix compilation

* clear a few more compile errors

* finish fn propose

* broken: add timeout to proposal

* add timeout to proposal

* guide: provisioner is responsible for selecting parachain candidates

* implement ProvisionerMessage::RequestInherentData & update fn propose

* impl CreateProposer::init; clean up

* impl std::error::Error for Error

* document error-handling rationale

* cause polkadot-service-new to compile correctly

* Move potentially-blocking call from fn init -> fn propose

This means that we can wrap the delayed call into the same
timeout check used elsewhere.

* document struct Proposer

* extract provisioner data fetch

This satisfies two requirements:

- only applies the timeout to actually fetching the provisioner data,
  not to constructing the block after
- simplifies the problem of injecting default data if we could not
  get the real provisioner data in time.

Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
Co-authored-by: Gavin Wood <gavin@parity.io>
2020-07-05 19:22:52 +02:00
André Silva 19ef40a7c9 babe: enable equivocation reporting on all runtimes (#1330)
* enable BABE equivocation reporting on all runtimes

* runtime: fix parachains mock test runtime

* cargo update -p sp-io

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
2020-07-04 15:19:58 +02:00
Bastian Köcher f77b8139c0 Make a collator send a collation as backup as well (#1353)
Currently a collator will only send a collation to validators it is a
primary for. While testing this could lead to the situation that the
same collator was registered as prime for all Parachain validators but
failed for other reasons to generate a PoVBlock. However no other
collator was sending a collation, which stopped the Parachain until the
faulty collator was stopped.

This pr solves this problem by making sure that every collator sends a
collation to one of his validators he is connected to, but registered as backup.
2020-07-03 20:10:47 -04:00
Gavin Wood 79954ae589 Reduce Westend deposit requirements (#1341)
* Switch branch

* Return chain ops parts in new_chain_ops

* Remove where param from new_chain_ops

* Add task manager to new_chain_ops return

* Revert branch switch

* Revert "Revert branch switch"

This reverts commit 7c7900c047abd794ddc759aa092811db4961a7a6.

* network/test/src/lib: Adjust network worker polling

Companion for https://github.com/paritytech/substrate/pull/6552.

* Fix adder parachain

* Fix collator tests

* Revert branch switch

* Bump everything

- Remove old migration code
- Reduce deposit requried for westend

* Reapply fixes

* Bump locl

* Fix for #6550

* Fix message

Co-authored-by: Ashley Ruglys <ashley.ruglys@gmail.com>
Co-authored-by: Max Inden <mail@max-inden.de>
2020-07-03 15:35:36 +02:00
Bastian Köcher 934f27d92b Downward & Upward messages (#1266)
* Downward messages, the front-end.

* Move types around to make them accessible from Parachains

* Fix compilation

* Fix branch

* Make it compile for Cumulus

* Update the branch names

* Add default generic parameter

* Implement `Partialeq`

* Move upward messages into the `ValidationResult`

* Support disabling of the runtime api

* Update branch

* Adds support for handling downward messages

* Implement sending XCMP messages as up/downward messages

* service: update to latest ServiceBuilder changes

* Make it compile

* Initial commit

Forked at: ef2aa428d7
Parent branch: origin/master

* Update substrate branch to cecton-update-polkadot-substrate

* Update substrate & polkadot to cumulus-branch

* Reset branch

* Update primitives/src/parachain.rs

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

* Update runtime/common/src/parachains.rs

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

* Update runtime/common/src/parachains.rs

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

* Minor fixes

* Fix wasm build

Co-authored-by: Gav Wood <gavin@parity.io>
Co-authored-by: André Silva <andre.beat@gmail.com>
Co-authored-by: Cecile Tonglet <cecile.tonglet@cecton.com>
Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
2020-07-01 10:20:38 -04:00
Bastian Köcher c8a039067a Companion for Substrate #6508 (#1329)
* Companion for Substrate #6508

* Update Cargo.lock
2020-06-30 15:21:45 +00:00
Robert Habermeier d16e7485d4 Implement Network Bridge (#1280)
* network bridge skeleton

* move some primitives around and add debug impls

* protocol registration glue & abstract network interface

* add send_msgs to subsystemctx

* select logic

* transform different events into actions and handle

* implement remaining network bridge state machine

* start test skeleton

* make network methods asynchronous

* extract subsystem out to subsystem crate

* port over overseer to subsystem context trait

* fix minimal example

* fix overseer doc test

* update network-bridge crate

* write a subsystem test-helpers crate

* write a network test helper for network-bridge

* set up (broken) view test

* Revamp network to be more async-friendly and not require Sync

* fix spacing

* fix test compilation

* insert side-channel for actions

* Add some more message types to AllMessages

* introduce a test harness

* add some tests

* ensure service compiles and passes tests

* fix typo

* fix service-new compilation

* Subsystem test helpers send messages synchronously

* remove smelly action inspector

* remove superfluous let binding

* fix warnings

* Update node/network/bridge/src/lib.rs

Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>

* fix compilation

Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
2020-06-30 11:21:40 -04:00
Ashley b26f6d08ac Companion PR for Remove the service, replacing it with a struct of individual chain components (#1288)
* Switch branch

* Fix service things

* Fix browser node compilation

* Update branch

* fixed new service

* Update for new branch

* Fix browser node

* Update branch

* Revert "Switch branch"

This reverts commit 3623adff7681124a1539a385a718c34e85931254.

* Update cargo.lock

Co-authored-by: Bastian Köcher <git@kchr.de>
2020-06-30 12:06:55 +00:00
Gavin Wood b2b0902ddd Companion for #6503 (#1315)
* Companion for #6503

* Remove old filtering

* Bump tx version

* Bump version

* Bump
2020-06-26 12:08:43 +02:00
Shawn Tabrizi 1e86cc30a5 Companion PR for #6386 (Read/Write Tracking) (#1284)
* add new apis to externalities

* Update mod.rs

* update for new host function

* Rename unused

* cargo update -p sp-io

* Add whitelists

* Apply changes to polkadot runtime as well

Co-authored-by: kianenigma <kian.peymani@gmail.com>
2020-06-25 10:04:34 +02:00
Tomasz Drwięga 3d692491a8 CheckEra -> CheckMortality (#1306)
* CheckEra -> CheckMortality

* Update substrate.
2020-06-24 17:25:02 +02:00
Gavin Wood 5045262fa7 Update staking reward curves (#1302)
* Update staking reward curve for pre-parachain situation.

* Bump runtime.

* Bump versions
2020-06-23 17:40:41 +02:00
Cecile Tonglet 26f975511f Companion PR for https://github.com/paritytech/substrate/pull/6400 (#1287)
* Initial commit

Forked at: 00ac43c26c
Parent branch: origin/master

* Substrate companion PR

impl Debug for sc_service::Configuration

Related to: https://github.com/paritytech/substrate/pull/6400

* Bump

Co-authored-by: Gav Wood <gavin@parity.io>
2020-06-23 13:12:34 +02:00
Alexander Theißen 8fb1e2547c Companion for Substrate #6269 (nested storage tx) (#1210)
* Companion for Substrate #6269 (nested storage tx)

* Adjust to PR changes

* Bump to newest substrate

* Bump spec
2020-06-23 12:50:29 +02:00
André Silva 6feeabbc7e node: spawn babe and grandpa as blocking tasks (#1292)
* node: spawn babe and grandpa as blocking tasks

* update to latest substrate
2020-06-22 19:27:38 +02:00
Gavin Wood d52751d9e6 Bump Substrate (#1286) 2020-06-19 11:57:03 +02:00
Toralf Wittner 00ac43c26c Update libp2p-ping. (#1285)
Bugfix release, see [CHANGELOG].

[CHANGELOG]: https://github.com/libp2p/rust-libp2p/blob/master/protocols/ping/CHANGELOG.md
2020-06-19 08:36:37 +02:00
Pierre Krieger 3d7c3479b2 Revert yamux to 0.4.5 (#1281) 2020-06-18 11:43:51 +02:00
Arkadiy Paronyan ae9ebc38bb Bump trie-db (Companion for substrate#6364) (#1274)
* Bump trie-db

* Bump substrate
2020-06-18 11:13:15 +02:00
Kian Paimani 3c9d72fb57 Companion for substrate/pull/6334 (#1263)
* fix all runtimes and add test'

* Fix build

* Undo changes to lock file?

* Fix runtime test

* Remove unused imports

* cargo update -p sp-io

* Update Cargo.lock

* bump spec version

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
2020-06-18 09:41:39 +02:00
Robert Habermeier c226c4403d Add some message types from subsystem definitions (#1265)
* 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>
2020-06-17 19:49:17 -04:00
Gavin Wood fdda80295f v0.8.10 (Polkadot 10) (#1277)
* Rename old labels.

* Bump runtimes

* Bump versions

* Bump lock
2020-06-17 13:03:23 +02:00
Xiliang Chen 43d99bf24b fix build (#1260) 2020-06-17 12:23:15 +02:00
Gav Wood 825b4b4b34 Bump 2020-06-16 18:52:10 +02:00
Gavin Wood 3adb08d916 Bump (#1273) 2020-06-16 18:20:59 +02:00
Guillaume Thiolliere 8492e622ae Companion: remove IsCallable make use of introduced in-origin filtering (#1226)
* 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.
2020-06-16 10:32:19 +02:00
Gav Wood ef2aa428d7 Version and lock 2020-06-12 16:10:10 +02:00
Gavin Wood 4317d1b980 Bump versions, tweak deposit costs. (#1252)
* Bump versions, tweak deposit costs.

* Version

* Lock

* Make test work ok when numbers are not round.

* Bump Substrate

* Lock
2020-06-12 16:08:31 +02:00
Fedor Sakharov d7e17fc612 New service initial commit (#1234)
* 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>
2020-06-11 15:26:15 -04:00
Robert Habermeier 04c8603042 Scheduler Module (#1162)
* 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>
2020-06-11 15:15:30 -04:00
André Silva 9bb2e0dadc service: update to latest ServiceBuilder changes (#1245)
* service: update to latest ServiceBuilder changes

* Update Cargo.lock

Co-authored-by: Bastian Köcher <git@kchr.de>
2020-06-11 13:43:20 +02:00
Cecile Tonglet 8662ff7686 Companion PR for https://github.com/paritytech/substrate/pull/6221 (#1213)
* Initial commit

Forked at: fc45a8e673
Parent branch: origin/master

* Remove unnecessary Clone derives

* Update Cargo.lock

* Update Cargo.lock again
2020-06-10 14:59:49 +02:00
Gavin Wood 2978c1b9f4 v0.8.7 (#1222)
* Bump Substrate again.

* update kusama runtmie for ensure origin

* update polkadot runtime for ensure origin

* fix imports

* root only available for runtime benchmarks

* Fix lock file

* Bump Substrate

* Update lock

* Remove questionable feature-gating.

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
2020-06-10 13:06:33 +02:00