Commit Graph

16221 Commits

Author SHA1 Message Date
Nikolay Volf 4d3557d5a1 Versioning for #[runtime-interface] (#5328)
* versionned runtime-interface

* use only one additional wasm blob

* alter docs

* formatting, naming and docs

* add comment for test

* version duplicate err

* RuntimeInterfaceItem -> RuntimeInterfaceFunction<

* test naming

* version checking

* remove spaces

* Update primitives/runtime-interface/proc-macro/src/runtime_interface/bare_function_interface.rs

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

* remove sanity checks and reduce coverage

* add doc comment

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
2020-03-23 15:09:05 +01:00
Toralf Wittner fe972155c8 Update yamux to version 0.4.5 (#927) 2020-03-23 14:32:31 +01:00
Toralf Wittner fe68d6fd8c Update yamux to version 0.4.5 (#5354) 2020-03-23 14:11:46 +01:00
Marcio Diaz 0c10687022 Regression algorithm for runtime benchmarks (#5288)
* Add linregress

* Regression, initial stuff.

* More analytics

* whitespace

* Fix

* Median slopes regression algo

* Warnings

* Update to lastest benchmark changes.

* Use both algorithms temp.

* Move analysis to frame.

* Fix tests.

* Only build analysis in std

Co-authored-by: Gav Wood <gavin@parity.io>
2020-03-23 14:07:25 +01:00
Wei Tang 14249913a6 pallet-evm: configurable gasometer config (#5320)
* pallet-evm: configurable gasometer config

* Bump runtime impl_version

* Update evm to 0.16.1

Documentation updates

Co-authored-by: Gavin Wood <gavin@parity.io>
2020-03-23 13:30:40 +01:00
Shawn Tabrizi ad1876bf94 Switch Treasury to on_initialize, Tips KeepAlive (#5352)
* Switch Treasury to `on_initialize`

* Fix bench compile
2020-03-23 13:19:15 +01:00
Wei Tang 9c7261fab3 Simplify BABE pre-digest definitions (#5289)
* Init vrf crate without type alias

* Generic PreDigest definition for BABE

* Fix BABE vrf interface change

* Missing default-features def in sp-consensus-babe

* Fix sp-consensus-babe compile

* frame-babe: fix type inference

* Unify type definitions of vrf output/proof and randomness

* frame-babe: fix tests

* Bump node impl version

* Update cargo lock

* Derive Copy for RawVRFOutput and RawVRFProof

* Fix duplicated derive

Co-authored-by: Gavin Wood <gavin@parity.io>
2020-03-23 11:53:41 +01:00
Gavin Wood 95d1d668c3 Sensible way of selecting Prime member (#5346)
* Calculate prime votes only during the election

* Migration

* Fix build, enable migration

* Fix tests

* Bump runtime version

* Update frame/elections-phragmen/src/lib.rs

Co-Authored-By: Marcio Diaz <marcio.diaz@gmail.com>

Co-authored-by: Marcio Diaz <marcio.diaz@gmail.com>
2020-03-23 11:52:44 +01:00
Pierre Krieger 1da48b3b3f Rewrite reconnect_after_disconnect test (#5351) 2020-03-23 11:50:11 +01:00
Max Inden 26a204da21 client/network-gossip/state_machine: Fix log message (#5350)
A gossip validator returns `ValidationResult::Discard` for messages that
should not be processed nor kept due to not being useful for the node.
Examples are out-of-scope messages or messages with bad signatures. The
corresponding log message did not reflect this, thus the update through
this patch.

One caveat is a finality grandpa neighbor packet. Given that the concept
of neighbor packets is handled in the finality grandpa gossip validator
only, valid neighbor packets are always discarded on the
`client/network-gossip` layer.
2020-03-23 11:04:48 +01:00
Andronik Ordian d348fed02e deduplicate parity-util-mem (#926) 2020-03-23 08:57:15 +01:00
Andronik Ordian 28ae4042fd deduplicate parity-util-mem (#5348) 2020-03-22 20:37:40 +01:00
Fedor Sakharov 88ba024489 Parachains double vote handler initial implementation. (#840)
* Parachains double vote handler initial implementation.

* Make tests test the actual slashing.

* Implement SignedExtension validation of double vote reports.

* Fixes build after merge

* Review fixes

* Adds historical session proofs

* Review fixes.

* Bump runtime spec_version

* Get the session number from the proof

* Check that proof matches session

* Change signature type on DoubleVoteReport

* Adds docs and removes blank lines

* Removes leftover code

* Fix build

* Fix build after a merge

* Apply suggestions from code review

Co-Authored-By: Robert Habermeier <rphmeier@gmail.com>

* Prune ParentToSessionIndex

* Remove a clone and a warning

Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
Co-authored-by: Gavin Wood <gavin@parity.io>
2020-03-22 09:48:35 +03:00
Fedor Sakharov 3293186b90 Bump parity-util-mem (#921)
* Bump parity-util-mem

* Change util mem version to wildcard
2020-03-22 02:18:10 -04:00
Stanislav Tkach 41a8d43161 Rename ExecutionContext::parent to caller (#5285) 2020-03-21 22:17:06 +01:00
ddorgan 56264ad1fc Make pushing consensus message loglevel trace (#5342) 2020-03-21 15:49:51 +00:00
Gav Wood 0c435448f9 Bump version 2020-03-21 16:48:06 +01:00
Gavin Wood 95d732beca Introduce progressive democracy (#920)
* Updates for the new democracy

* Introduce progressive democracy

Also move to "master" branch of Substrate ready for continuous
sync with Substrate master.
2020-03-21 16:46:09 +01:00
Ashley fb442c9112 Update and fix wasm code again, add cli check to .gitlab-ci.yml (#917)
* Add cli to wasm tests, update and bring closer to the substrate browser code

* Remove ws.js

* Update cli/src/browser.rs

Co-Authored-By: Pierre Krieger <pierre.krieger1708@gmail.com>

* Update browser.rs

Co-authored-by: Gavin Wood <gavin@parity.io>
Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com>
2020-03-21 16:13:59 +01:00
Gavin Wood 22f88bf9d1 Redesign Democracy pallet (#5294)
* Repot a bit of democracy code

* Basic logic is drafted

* Lazy democracy builds.

* Add non-locked split-voting and instant-scheduling.

* Introduce delegation that works.

* Builds again.

* Indentation

* Building.

* Docs and migration

* Fix half of the tests

* Fix up & repot tests

* Fix runtime build

* Update docs

* Docs

* Nits.

* Turnout counts full capital

* Delegations could towards capital

* proxy delegation & proxy unvoting

* Fix

* Tests for split-voting

* Add missing file

* Persistent locking.
2020-03-21 16:08:48 +01:00
Bastian Köcher 1f7df4528f Make sure that the start_collator future implements Send (#915)
Co-authored-by: Gav Wood <gavin@parity.io>
2020-03-21 15:48:46 +01:00
s3krit 965b74beb3 CI: Don't announce releases on updated (#912)
we were getting double-posts for newly-published releases - we don't need to post to the channel when releases are updated.
2020-03-21 13:40:16 +01:00
s3krit 73ab649437 CI: Move publish_draft_release job to test stage, and substrate changelog subsections (#908)
* Move publish_draft_release to test stage

Also remove the alert_pending_release job since it's no longer needed

* delete alert_pending_release.sh

* Add splitting substrate changes into subsections
2020-03-21 13:39:52 +01:00
Gavin Wood 6a7374aca3 Remove migration code. (#910)
* Remove migration code.

* Bump Substrate

* Bump runtime
2020-03-21 13:37:55 +01:00
joe petrowski 40f57f8ffa Minor fixes to CLI arg docs (#5339)
* minor fixes to CLI arg docs

* Update client/cli/src/params/shared_params.rs

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
2020-03-21 08:52:57 +01:00
Benjamin Kampmann 71aef91099 latest unleash and on all ci-release-prefixed tags (#5334) 2020-03-20 20:03:19 +01:00
Bastian Köcher 7693bd5ee5 Adds new event phase Initialization (#5302)
* Adds new event phase `Initialization`

Every event that was deposited inside of `on_initialize` was assigned to
the `ApplyExtrinsic(0)` phase which wasn't correct. This pr introduces a
new phase `Initialization`. This is the new phase while initializing
a block. After initialization we switch to `ApplyExtrinsic(N)` and at
the end to `Finalization` as before.

* Set `ExecutionPhase` in `initialize`

* Increment `spec_version`
2020-03-20 19:34:51 +01:00
André Silva 459557aadc grandpa: allow noting same set in gossip with different authorities (#5323)
* grandpa: allow noting same set in gossip with different authorities

* grandpa: add test for note_set behavior
2020-03-20 19:07:10 +01:00
Bastian Köcher 5688f0b293 Update sysinfo to fix compilation on Windows (#5338) 2020-03-20 19:00:39 +01:00
Hero Bird 017f218926 Implement ext_ hashes for contracts (issue #5258) (#5326)
* Implement ext_ hashes for contracts (issue #5258)

* load cryto hash .wat from raw string literal instead of file

* update .wat contents for testing crypto hashes

* remove unnecessary 'static

* fix bug in input (call_indirect required 1+ at least it seems)

* no longer use scratch buffer for crypto hash functions

* improve doc comments of ext_ hash functions

* remove unnecessary comment in .wat test file

* add return value (const 0) to contract test to hopefully enable result buffer

* fix bug in contract assertion

* implement proper output_len in contract

* implement proper test for crypto hashes

* bump spec_version 238 -> 239

* fix COMPLEXITY description

* remove final invalid instances of scratch buffer from docs
2020-03-20 18:46:51 +01:00
Bastian Köcher 46458f4082 Make sure frame examples compile for wasm (#5332)
* Make sure frame examples compile for wasm

This makes sure that `frame-example` and `frame-example-offchain-worker`
compile for wasm.

This also fixes compilation for these crates. The offchain worker
example doesn't use serde-json anymore as that is too heavy and breaks
`no_std` compilation.

* Apply suggestions from code review

Co-Authored-By: Nikolay Volf <nikvolf@gmail.com>

Co-authored-by: Nikolay Volf <nikvolf@gmail.com>
2020-03-20 16:57:39 +01:00
Pierre Krieger 57af4facbd Remove the #[doc(hidden)] reexports of sc_network (#5264)
* Remove the #[doc(hidden)] reexports of sc_network

* Fix tests not building
2020-03-20 16:42:00 +01:00
Benjamin Kampmann 62b3e57470 Ensure schnorrkel is always _at least_ 0.9.1 (#5333) 2020-03-20 16:41:35 +01:00
Chevdor 17f6b4b8fb WIP: Upgrade kvdb_rocksdb dependency (#914)
* Add clang

* Upgrade kvdb-rocksdb version
2020-03-20 11:26:52 -04:00
Shawn Tabrizi ca3cbbfc14 Benchmark Treasury Pallet (#5287)
* Start benchmarks

* try_origin or root

* More benches

* stuck

* Custom trait functions for benchmarks

* finish benchmarks

* Bump impl

* More comments

* Bump spec

* Remove import

* Update frame/elections-phragmen/src/lib.rs

Co-Authored-By: thiolliere <gui.thiolliere@gmail.com>

* Update frame/support/src/traits.rs

Co-Authored-By: thiolliere <gui.thiolliere@gmail.com>

* Fix merge

Co-authored-by: thiolliere <gui.thiolliere@gmail.com>
2020-03-20 15:08:16 +01:00
Peter Goodspeed-Niklaus a9b9ca5fa8 Factor out can_set_code (#5317)
* Factor out can_set_code

The motivation for this feature is parachain runtime upgrades, which
happen in two different moments: the initial call, when the checks
should be performed, and at the actual upgrade block. It's much
better and more maintainable to just call `can_set_code` in the
function than to manually copy those checks.

I'm not entirely thrilled with the interface, which requires
cloning the entire code vector in `set_code`. However, it looks
like something in `decl_module!` does not play nicely with
references in its function arguments. If `code` has a lifetime,
it _must_ be named, which gives us this signature.

```rust
pub fn can_set_code<'a>(origin, code: &'a [u8]) {
```

Unfortunately, attempting to compile with that signature generates
a very large and baffling collection of build errors, so I decided
to abandon that path for now.

* make can_set_code non-dispatchable per PR revew

Not only can we now borrow the `code` slice, but we also no longer
need to worry about people sending a `can_set_code` transaction because
of some misunderstanding.

* move into existing impl block
2020-03-20 15:00:01 +01:00
joe petrowski 589c279adf fix lone txqueue log target (#5331) 2020-03-20 14:15:02 +01:00
Shawn Tabrizi 400a62680f Benchmark Im Online Pallet (#5318)
* Initial benchmarking setup

* Add keystore

* validate unsigned

* Update frame/im-online/src/benchmarking.rs

Co-Authored-By: Marcio Diaz <marcio.diaz@gmail.com>

* Fix verify_unsigned benchmark

* add variable for teting the external addresss length

* Update frame/im-online/src/benchmarking.rs

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

* Update utils/frame/benchmarking-cli/src/lib.rs

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

Co-authored-by: Marcio Diaz <marcio.diaz@gmail.com>
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
Co-authored-by: Benjamin Kampmann <ben@gnunicorn.org>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
2020-03-20 12:42:00 +01:00
Gavin Wood 7947cbf915 Remove migration code. (#5291)
* Remove migration code.

* Fix cargo

* Bump spec version
2020-03-19 23:01:13 +01:00
lwshang 81da73475c Prompt error if vanity pattern is not valid base58 (#5308)
* Prompt error if vanity pattern is not valid base58

* Update bin/utils/subkey/src/vanity.rs

* Add tests for validating pattern of subkey vanity

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
2020-03-19 22:05:49 +01:00
André Silva 2edc7f13b0 Release version v0.7.27 (#916)
* bump version to v0.7.27

* update to latest substrate polkadot-master

* bump runtime impl_version
2020-03-19 16:24:32 +00:00
Bastian Köcher 1b1eea1590 Make ChainSpec implement Send (#5315) 2020-03-19 17:24:31 +01:00
Benjamin Kampmann 0cc54008c8 Update dependencies (#5316)
* switching to released wasmtime

* update depdencies in general

* Update fdlimit

* Update parity common deps

* Also update schnorrkel

* update kvdb-rocksdb

* update further dependents

* also update primitive types

* update cargo.lock

* update merlin

* Bumping evm version
2020-03-19 16:03:26 +01:00
Arkadiy Paronyan a66615446d Fixed a couple of syncing issues (#5277)
* Don't queue duplicate blocks

* Keep queue_blocks on restart
2020-03-19 14:02:07 +01:00
Roman Borschel cfa179f2ce Safe logger initialisation in test. (#5311)
env_logger::init() can lead to panics on concurrent test execution.

See: https://gitlab.parity.io/parity/substrate/-/jobs/422283
2020-03-19 13:53:16 +01:00
André Silva f1dad04d9a hardfork the GRANDPA authority set in kusama to fix migration issue (#913)
* hardfork the GRANDPA authority set in kusama to fix migration issue

* move grandpa integration code

* remove unnecessary grandpa hard fork

* update to latest substrate polkadot-master
2020-03-19 12:37:32 +00:00
André Silva 04d3ab56b2 grandpa: bump dependency version to 0.11.2 (#5312) 2020-03-19 11:44:18 +00:00
André Silva c7a23d836d grandpa: support for hard forking any pending standard changes (#5306)
* grandpa: support for hard forking any pending standard changes

* grandpa: expose authority_set_hard_forks in block import constructor

* grandpa: don't break the public api
2020-03-19 10:37:29 +00:00
Chevdor 86410de227 Add more generated utils to the image (#5305) 2020-03-18 23:04:32 +01:00
Max Inden 9201f8abf3 client/network-gossip/src/bridge: Finish when network event stream closes (#5282)
* client/network-gossip/src/bridge: Finish when network even stream closes

Previously within `<GossipEngine as Future>::poll` one would poll the
`network_event_stream` ignoring all messages other than
`Poll::Ready(Some())`. Ignoring `Poll::Ready(None)` leads to a panic on
the next poll of the stream, gien that it is not fused.

By design `network_event_stream` does not close unless an unbounded send
into it fails, or the `NetworkWorker` gets shut down.

> The stream never ends (unless the `NetworkWorker` gets shut down).
> (client/network/src/service.rs)

An `unbounded_send` to fail on an unbounded channel is unlikely. The
`NetworkWorker` shutting down is not unlikely. In such case the
`GossipEngine` should shut down as well.

With this patch a `<GossipEngine as Future>` finishes on
`Poll::Ready(None)` returned from `network_event_stream`.

* client/finality-grandpa/communication: Error on gossip engine finished

Have `<NetworkBridge as Future>::poll` return `Poll::Ready(Err)` instead
of `Poll::Ready(Ok)` to be consistent with the handling of the neighbor
packet worker stream and the gossip validator report stream. Both `Err`
as well as `Ok` shut down the `NetworkBridge` as well as the
`VoterWorker`.

* client/network-gossip/src/bridge: Add regression test

* client/network-gossip: Move substrate test client to dev dependencies

* client/network-gossip: Remove TODO

Addressed in a follow up pull request.

* client/network-gossip/bridge: Put match on newline after loop

* client/finality-grandpa/src/observer: Fix regression test

Make sure the event stream sender side is not dropped till the end.
2020-03-18 20:15:57 +01:00