Commit Graph

3100 Commits

Author SHA1 Message Date
thiolliere 76acc96f3a Remove default hasher (#4739)
* remove default hasher from decl_storage!

* fix decl_storage declarations
2020-01-27 18:23:10 +01:00
gabriel klawitter 38a01f3c65 ci: fix runtime version check (#4741) 2020-01-27 18:22:52 +01:00
Sergei Pepyakin f39335d638 pallet-contracts: Refactor and comment rent module. (#4733)
* Refactor and comment `rent` module.

* impl_version bump

* Add doc for Exempt

* Simplify code.

* Update bin/node/runtime/src/lib.rs

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

* Update frame/contracts/src/exec.rs

Co-Authored-By: Hero Bird <robin.freyler@gmail.com>

Co-authored-by: thiolliere <gui.thiolliere@gmail.com>
Co-authored-by: Hero Bird <robbepop@web.de>
2020-01-27 17:40:57 +01:00
Joshy Orndorff 957ea8ba46 Remove references to frame_consensus from docs (#4582)
* Simply remove references to frame_consensus

* More thorough re-write

* Update frame/session/src/lib.rs

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

* on_initialize is not dispatchable

* Attempt to fix test.

* Actually fix test.

* Actually ran passing test.

* Update frame/session/src/lib.rs

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

Co-authored-by: thiolliere <gui.thiolliere@gmail.com>
2020-01-27 17:14:10 +01:00
Nikolay Volf 94a187f291 Transaction queue tests update (#4734)
* shuffle tests

* update tests

* inc_nonce -> increment_nonce
2020-01-27 04:22:04 -08:00
Seun LanLege 9cea98e950 Manual Seal (#4143)
* instant/manual seal

unbounded queues are evil

Apply suggestions from code review

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

add fork tests, docs, remove todos

moar docs

Update client/consensus/manual-seal/src/rpc.rs

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

remove unbound generic, parameter, docs, deps, code style changes

Apply suggestions from code review

Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com>

code style chnges

remove unused deps, remove dep renames, check if block is empty before importing, use ? for error propagation

fix tests

log errors for instant seal

use debug

code style changes, updated copyright dates

use txpool::Pool instead of BasicPool, code style changes

fixed tests

* fix tests

* requested changes from review

* check inherents len

* rebase
2020-01-27 10:59:40 +01:00
Sergei Pepyakin 2421576f91 Cursed implementation of allowing missing imports on wasmtime (#4730)
* Quick and dirty impl.

* Clean up

* Check the signatures.

* Fix tests.

* Apply suggestions from code review

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

* Ignore non function members.

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
2020-01-25 23:53:08 +01:00
thiolliere e4f3e85585 Improve decl storage parsing (#4731)
* improve decl storage parsing

* remove hidding detail macro

* Apply suggestions from code review

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
2020-01-24 20:04:11 +01:00
Bastian Köcher fc99887de0 Introduces author_hasKey and author_hasSessionKeys rpc endpoints (#4720)
* Introduces `author_hasKey` and `author_hasSessionKeys` rpc endpoints

Both endpoints can be used to check if a key is present in the keystore.

- `hasKey` works on with an individual public key and key type. It
checks if a private key for the given combination exists in the
keystore.
- `hasSessionKeys` works with the full encoded session key blob stored
on-chain in `nextKeys`. This requires that the given blob can be decoded
by the runtime. It will return `true`, iff all public keys of the
session key exist in the storage.

Fixes: https://github.com/paritytech/substrate/issues/4696

* Update client/rpc-api/src/author/error.rs

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

* Indentation

Co-authored-by: Nikolay Volf <nikvolf@gmail.com>
2020-01-24 15:20:45 +01:00
Nikolay Volf 1614ce0996 Async/await in transaction-graph (#4645)
* async/await in tx graph

* review notes

* remove unused typedef
2020-01-24 05:22:39 -08:00
Bastian Köcher b7887df104 Deposit event on frame-system::set_code (#4726)
* Deposit event on `frame-system::set_code`

* Update frame/system/src/lib.rs

Co-authored-by: thiolliere <gui.thiolliere@gmail.com>
2020-01-24 13:38:45 +01:00
Ashley c2c429877e Switch GrandPa to std futures (replaces #3909) (#4612)
* Switch GrandPa to new futures

* Work on making tests work

* until_imported tests working again

* Work on switching tests to stable futures

* Modifications

* Re-add test as #[ignore]

* Don't ignore

* Add manual unpins

* Remove Header import

* Return concrete Sink type

* Switch to crates.io finality-grandpa version

* Remove use statement that slipped in

* Fix some nitpicks

* Remove unpin from i

* Fixed typo

* Move futures01 to dev-deps

* Fix nitpicks

* Update client/finality-grandpa/src/communication/mod.rs

Co-Authored-By: André Silva <andre.beat@gmail.com>

* nitpicking

Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com>
Co-authored-by: André Silva <andre.beat@gmail.com>
2020-01-24 13:34:42 +01:00
Nikolay Volf 14e95f3398 Refactor tx-pool maintenance and other high-level api (#4629)
* Reduction.

* Reformation.

* add locked timer stuff

* fix issues and introduce full pool

* arrange together

* fix benches

* fix new_light

* Add revalidation test case

* review fixes

* review fixes

* use just ready future

* address review
2020-01-24 04:21:24 -08:00
Jaco Greeff b89ac5d2ef Expose recovery module errors in metadata (#4727) 2020-01-24 10:02:55 +01:00
Hero Bird ad9c75e4c4 [contracts] minor follow-up on PR #4722 (#4723) 2020-01-23 16:59:00 +01:00
Hero Bird 389b8f1698 [contracts] Add ext_tombstone_deposit (#4722)
* [contracts] add ext_tombstone_deposit

* [contracts] update tombstone_deposit docs
2020-01-23 15:13:49 +01:00
Nikolay Volf 81004eabfd Refactor and test spec block rules (#4670)
* Refactor and test spec block rules

* address review

* Update client/src/block_rules.rs

Co-Authored-By: André Silva <andre.beat@gmail.com>

Co-authored-by: André Silva <andre.beat@gmail.com>
2020-01-23 05:41:22 -08:00
Bastian Köcher 8370b99709 Expose Error in metadata for pallet-utility (#4721) 2020-01-23 14:35:04 +01:00
Max Inden 597c0a6c4f client/finality-grandpa: Make round_communication use bounded channel (#4691)
* clinet/finality-grandpa: Make round_communication use bounded channel

`round_communication` returns a `Sink` and a `Stream` for outgoing and
incoming messages. The messages send into the `Sink` are forwarded down
to the network as well as send back into the `Stream` to ensure the node
processes its own messages.

So far, to send messages into the `Sink` back into the `Stream`, an
unbounded channel was used. This patch updates `round_communication` and
`OutgoingMessages` to use a bounded channel.

This is part of a greater effort to reduce the number of owners of
components within `finality-grandpa` and `network` as well as to reduce
the amount of unbounded channels. For details see d9837d7dd and
5f80929dc.

* client/finality-grandpa: Import futures03::future::ready at the top

* client/finality-grandpa: Make tests use compat of future 03

* client/finality-grandpa: Do not import ready into scope

Instead of importing futures03::future::ready into the scope, only
import futures::future03 into scope and call ready as furure03::ready.
2020-01-23 12:58:36 +01:00
Wei Tang 4b2e6a5be2 Default fork choice value and intermediates for block import parameters (#4652)
* consensus, pow: intermediate separation and fail

* Fix compiles

* Update primitives/consensus/common/src/block_import.rs

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

* Update primitives/consensus/common/src/block_import.rs

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

* Document what None means for `fork_choice` in block import params

Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
2020-01-23 00:03:38 -08:00
Sergei Pepyakin 9a77b299df Add fool protection and comment construct_block (#4715)
* Add fool protection and comment construct_block

* Update bin/node/executor/tests/common.rs

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

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
2020-01-22 18:34:41 +01:00
Bastian Köcher 5bd6e94e64 Move "wasm" allocator into its own crate (#4716)
This moves the wasm-allocator (`FreeingBumpHeapAllocator`) into its own
crate `sp-allocator`. This new crate can theoretically provide multiple
different allocators. Besides moving the allocator, this pr also makes
`FreeingBumpHeapAllocator` compile on `no_std`.
2020-01-22 18:13:17 +01:00
Toralf Wittner 670ce71009 Update soketto to v0.3.2 (#4714)
See #4702 for details.
2020-01-22 17:34:42 +01:00
Robert Habermeier 21a2539a24 make NotificationStream event naming consistent (#4712) 2020-01-22 16:33:42 +01:00
Denis Pisarev 40e4d8fb0a fixes trigger-contracts-ci job to actually depend on build-linux-subs… (#4701)
* fixes trigger-contracts-ci job to actually depend on build-linux-substrate
2020-01-22 15:24:34 +01:00
Nikolay Volf 19df538c62 More cleanups in node-template (#4705)
* remove and reformat

* remove some more

* commit Cargo.lock
2020-01-22 14:53:40 +01:00
Max Inden e0c6955ca9 client/authority-discovery/Cargo.toml: Update dependency (#4706)
* client/authority-discovery/Cargo.toml: Update dependency

* client/authority-discovery: Pass packet payload and addresses as slice

Starting with Bytes 0.5 `Vec<T>` does not implement `Buf`, but `&[T]`
does.
2020-01-22 14:49:28 +01:00
Bastian Köcher 07d738ea3e Support u128/i128 in runtime interface (#4703)
* Support `u128`/`i128` in runtime interface

This implements support for `u128`/`i128` as parameters/return value in
runtime interfaces. As we can not pass them as identity, as for the
other primitives types, we pass them as an pointer to an `[u8; 16]` array.

* Remove some unsafe code usage
2020-01-22 12:17:52 +01:00
André Silva c1750c5c28 grandpa: filter some telemetry events on larger voter sets (#4700) 2020-01-21 22:14:44 +01:00
Nikolay Volf 9d556a69ef remove license preamble from node-template (#4699) 2020-01-21 22:10:26 +01:00
Nikolay Volf def8573b07 fix docs deadlinks (#4698) 2020-01-21 08:01:55 -08:00
Hero Bird caa6efa5ec contracts: New contract events + unconfusions (#4685)
* contracts: during execution -> contract trapped during execution

This message confused many people so we are improving it to make clear what happened.

* contracts: rename Event::Contract -> Event::ContractExecution

* contracts: fix tests after ContractExecution renaming

* contracts: Add Evicted and Restored events

* fix doc comment

* wrap to not go over (soft) 100 column line limit

* add event deposit for eventual eviction upon pay_rent

* contracts: adjust tests for the new events

* emit Evicted event immediately and add tombstone flag bool
2020-01-21 13:06:54 +01:00
Pierre Krieger 169a48c0c5 Pass an executor through the Configuration (#4688)
* Pass an executor through the Configuration

* Make tasks_executor mandatory

* Fix tests
2020-01-21 13:06:15 +01:00
André Silva b7a63e3b77 grandpa: reduce allocations when verifying multiple messages (#4693) 2020-01-21 11:45:36 +00:00
Bastian Köcher 85aa632278 Make debug builds more usable (#4683)
* Make debug builds more usable

This pr makes debug builds more usable in terms of `cargo run -- --dev`.

1. `--dev` activates `--execution native`, iff `--execution` is not
given or no sub `--execution-*` is given.
2. It was probably a mistake to compile WASM in debug for a debug build.
So, we now build the WASM binary always as `release` (if not requested
differently by the user). So, we trade compilation time for a better
debug experience.

* Make sure we only overwrite default values

* Make it work

* Apply suggestion
2020-01-21 12:33:28 +01:00
Pierre Krieger da614c257c Call enable_all() when building tokio runtime (#4690) 2020-01-20 19:52:02 +01:00
Bastian Köcher 1f18964f01 Only support ECDSA compressed public keys (#4667)
Some fixes after: https://github.com/paritytech/substrate/pull/4502

This removes the unwanted `expect`s from `MultiSigner`. Instead we
convert from full to compressed in `TryFrom` and can return an error on
invalid input.
2020-01-20 17:28:27 +01:00
thiolliere 164dec95e5 Pallet session new API (#4609)
* Initial work

* Fix most things

* fix test

* fix old comment

* migration

* fix

* remove useless stuff

* fix

* less spaghetti implementation

* fix initial session

* fix
2020-01-20 17:26:53 +01:00
gabriel klawitter b0d1a7183a ci: increase retention for logs of tests to 144 hours (#4677)
* ci: increase retention for logs of tests to 144 hours

* change to days
2020-01-20 17:26:19 +01:00
Max Inden 05838b2c65 client/finality-grandpa/communication: Add doc comment for PeerReport (#4684) 2020-01-20 17:25:56 +01:00
Robert Habermeier 47e665be2e deprecate chain_status field of network handshake (#4675)
* deprecate chain_status field of network handshake

* Update client/network/src/protocol/message.rs

remove unneeded whitespace.

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

Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com>
2020-01-20 16:00:43 +01:00
Robert Habermeier 3ae5e1640b keep nominations after getting kicked with zero slash (#4681)
* keep nominations after getting kicked with zero slash

* rename next_key to maybe_next_key

Co-Authored-By: Gavin Wood <gavin@parity.io>

Co-authored-by: Gavin Wood <github@gavwood.com>
2020-01-20 15:58:39 +01:00
Pierre Krieger 4e0ac574e2 Move DummySpecialization to sc-network (#4680) 2020-01-20 12:57:49 +01:00
Bastian Köcher 96cd57a695 Make use of cfg(doc) in sp-runtime-interface (#4673)
By using `cfg(doc)`, we can generate docs for modules which are only
available from `no_std`. This drastically improves the documentation for
the developers.
2020-01-19 01:51:03 +01:00
Gavin Wood 26fa5193cd Add rules and unfounding to society. (#4671)
* Add rules and unfounding to society.

* Docs and event

* Extra bit of docs.

* Cunningly reduce complexity

* Remove candidates when unfounding.

* Remove suspended candidates when unfounding, too.
2020-01-18 18:35:25 +01:00
Bastian Köcher 1b9baad04f sp-runtime-interface add table about FFI types (#4668)
Adds a table to the rustdoc that shows how each individual type is
passed between the wasm and the host side.
2020-01-18 13:51:12 +01:00
Xiliang Chen b72ba98b97 make compute_fee public (#4669) 2020-01-18 09:22:43 +01:00
Shawn Tabrizi bd0e72ffad Society: Ensure all votes are removed after tally (#4666)
* Ensure all votes are removed after tally

* Fix comment
2020-01-17 19:09:36 +01:00
Max Inden 5f80929dce client/finality-grandpa: Reintegrate gossip validator report stream (#4661)
* client/finality-grandpa: Reintegrate gossip validator report stream

The `finality-grandpa` `GossipValidator` is called by the `GossipEngine`
in a synchronous fashion on each gossip message. Its main task is to
decide whether to gossip the given message on, or whether to drop it.

In addition it also updates the reputation of a node's peers based on
the incoming gossip messages. To do so it needs to be able to report the
reputation change which it does through an unbounded channel (in order
to stay synchronous).

Previously the receiving side of this channel would be handled by a new
task, polling the channel and forwarding the changes to a clone of the
`GossipEngine` that it would own.

Instead the receiver of the above mentioned channel is now being polled
by the `NetworkBridge` within its `Future::poll` implementation.
Reputation changes are reported through the already existing
`GossipEngine` instance within `NetworkBridge`.

For details on the overall goal, see d9837d7dd.

* client/finality-grandpa: Remove exit future from test NetworkBridges
2020-01-17 18:28:32 +01:00
Sergei Pepyakin 8c789806f2 Drive by fix of doc of Value. (#4658)
* Drive by fix of doc of `Value`.

* Apply suggestions from code review

Co-Authored-By: André Silva <andre.beat@gmail.com>

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: André Silva <andre.beat@gmail.com>
2020-01-17 18:09:39 +01:00