Commit Graph

966 Commits

Author SHA1 Message Date
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
Robert Habermeier 42bd096413 I am dumb and can't spell (#1366)
* rename implementor's guide to implementer's guide

* fix typos in more places
2020-07-07 10:10:36 -04:00
Bastian Köcher 37da08a764 Companion for #6589 (#1367)
https://github.com/paritytech/substrate/pull/6589
2020-07-07 12:06:57 +02:00
Peter Goodspeed-Niklaus f3c2db1a28 convert SignedAvailabilityBitfields from newtype to typedef (#1342)
Closes #1339.
2020-07-07 10:01:15 +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 e7bb3aef39 Check candidate signatures before including them in set_heads (#1335)
* Check candidate signatures before including them in `set_heads`

This work around the bug described in: https://github.com/paritytech/polkadot/issues/1327

We check the candidate signatures in `create_inherent` to ensure that
all are valid. If one isn't valid, we don't include any candidate for
the current inherent.

* Bump runtimes
2020-07-03 10:02:55 +02:00
Gavin Wood aeae0e1422 Revert "Companion PR for Allow specify schedule dispatch origin #6387" (#1340) 2020-07-02 15:09:03 +02:00
Gav Wood b05d7413bf Merge branch 'xlc-update-scheduler' 2020-07-02 15:06:18 +02:00
Gav Wood 393c4bffe4 Merge branch 'update-scheduler' of https://github.com/xlc/polkadot into xlc-update-scheduler 2020-07-02 15:06:11 +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
Chevdor 3b357fadd5 Add registrar proxy (#1296)
* Add registrar proxy

* Add proxy filter for registrar for polkadot and westend

* Renaming + allow batch calls for Kusama

* Add batch calls for other chains
2020-07-01 15:36:54 +02:00
Gavin Wood bba14546ab Allow voting in democracy (#1331)
* Allow voting in democracy.

* Ensire Root can begin referenda
2020-07-01 15:35:57 +02:00
Bryan Chen 9b8cba9815 Merge remote-tracking branch 'origin/master' into update-scheduler 2020-07-01 20:37:47 +12:00
Robert Habermeier 2a3e607d14 Subsystem::start takes self by-value (#1325)
* Subsystem::start takes self by-value

* fix doc-test compilation
2020-06-30 15:16:37 -04:00
Cecile Tonglet cb59245085 Use spawner to spawn work task instead of tokio (#1328)
* Use spawner to spawn work task instead of tokio

This allows the caller to choose the runtime they want (instead of tokio).

* Replace generic by actual type
2020-06-30 13:04:50 -04:00
Shawn Tabrizi b42d7ba4a2 Companion for #6511 (#1321)
* Add custom runtime upgrade for retract tip

* cargo update -p sp-io
2020-06-30 18:50:20 +02: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
Peter Goodspeed-Niklaus 90de55918a impl ProvideInherent for InclusionInherent (#1318)
* 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

* add license header

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

* add sanity check to only include valid inherents
2020-06-30 11:07:59 -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
Bryan Chen a9480d9fe8 add runtime upgrade 2020-06-27 12:59:51 +12:00
Bryan Chen e426a8e070 Merge remote-tracking branch 'origin/master' into update-scheduler 2020-06-27 12:15:16 +12:00
s3krit baadabd910 add burnin-label-notification.yml (#1324) 2020-06-26 20:14:02 -04: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
Bryan Chen 46e56f6f9c Merge remote-tracking branch 'origin/master' into update-scheduler 2020-06-25 11:19:48 +12:00
Tomasz Drwięga 3d692491a8 CheckEra -> CheckMortality (#1306)
* CheckEra -> CheckMortality

* Update substrate.
2020-06-24 17:25:02 +02:00
Sergei Shulepov e2ed86e499 Exploration of using graphwiz (#1298)
* Experiment with graphwiz

* Convert parachain overview diagrams

* add install note for mdbook-graphviz

Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
2020-06-24 10:14:41 -04:00
Ashley aacc251af9 Companion PR for Fix the browser node and ensure it doesn't colour the informant output #6457 (#1307)
* Companion for Substrate #6269 (nested storage tx)

* Adjust to PR changes

* Bump to newest substrate

* Bump spec

* Switch branch

* Remove redundant informant_prefix

* Fix collator tests

* Update branch

* Revert "Switch branch"

This reverts commit bcce560c51fbc9db604cf3b0f615bfd21419f87d.

Co-authored-by: Alexander Theißen <alexander.theissen@parity.io>
2020-06-24 12:04:07 +02:00
Bastian Köcher 2dfe8ffce8 Make produce_candidate return an Option (#1309)
* 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
2020-06-24 01:04:45 +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
Shawn Tabrizi 3f53deb10e Make Proxy NonTransfer filter explicit (#1303)
* Make kusama proxy explicit

* Make polkadot explicit

* Make westend explicit

* bump spec
2020-06-23 13:14:38 +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
Bryan Chen f5a3a1165e Merge remote-tracking branch 'origin/master' into update-scheduler 2020-06-23 14:27:01 +12:00
Robert Habermeier 424d61818e Expand PoV Distribution section and improve candidate types (#1294)
* rejig candidate types a bit

* adjust doc

* describe basic PoV distribution

* replace some straggling html links

* address grumbles from review and fix links
2020-06-22 15:01:38 -04: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
s3krit ebf7de90c2 [CI] Refactor publish_draft_release.sh (#1289)
* 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
2020-06-22 19:24:12 +02:00
Pierre Krieger 2338b80af1 Use /dns/ rather than /dns4/ (#1275)
* Use /dns4/ rather than /dns/

* Update polkadot.json
2020-06-22 19:19:50 +02:00
Bryan Chen 710b25d0eb update scheduler 2020-06-21 16:35:22 +12:00
Peter Goodspeed-Niklaus 14ce04c9cd signed wrapper (#1283)
* 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>
2020-06-20 14:56:33 -04:00
Sergei Shulepov 90a1ba1e90 Fix glossary link (snowballed) (#1297)
* 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
2020-06-20 14:23:28 -04:00
s3krit d4e6013d38 [CI] Don't autolabel insubstantial PRs 'pleasereview' (#1293)
* Don't label insubstantial PRs 'pleasereview'

* Update auto-label-prs.yml

* Update auto-label-prs.yml
2020-06-20 10:40:48 +02:00