Commit Graph

3428 Commits

Author SHA1 Message Date
Arkadiy Paronyan d146cc3ae3 Don't format when telemetry is disabled (#5273) 2020-03-17 12:22:05 +01:00
Alexander Theißen 601f2538c6 Add ext_terminate (#5234)
With this patch forward this will be the only way for
a contract to destroy itself. This patch therefore changes
the semantics of all other contract initiated balance
transfers to fail if they would bring the caller below the
existential deposit.
2020-03-17 11:51:34 +01:00
Max Inden e91d4be998 client/network/src/protocol: Refactor Prometheus metric logic (#5266)
* client/network/src/protocol: Start Prometheus metric help with capital

* client/network/src/protocol: Differentiate metric status as label

Prometheus query language is powerful through its multi-dimensional data
model. Metric names are hirarchical whereas labels enable data to become
multi-dimensional.

Exposing the justification of finality-proof status as a label allows
for more powerful queries.

* client/network/src/protocol: Remove 'Total' from non counter metric help

The word 'total' is reserved for accumulating counters. Counters have to
be monotonically increasing. `obsolete_requests` can decrease, thereby
it is defined as a `Gauge` and not a `Counter`.

For more details on metric naming see
https://prometheus.io/docs/practices/naming/
2020-03-17 11:47:55 +01:00
Gavin Wood af9083f53b Refactor away from opaque hashes (#5226)
* System.BlockHash

* Fix hash

* Introduce K/V iteration in all _concat maps

Also move across:
- System.Account (blake2_128_concat)
- Balances.Locks (twox_64_concat)
- ElectionsPhragmen.VotesOf (twox_64_concat)
- ElectionsPhragmen.StakeOf (twox_64_concat)
- Identity.IdentityOf (twox_64_concat)
- Identity.SubsOf (twox_64_concat)
- Society.Payouts (twox_64_concat)
- Session.NextKeys (twox_64_concat)
- Identity.SuperOf (blake2_128_concat)
- Session.KeyOwner (blake2_128_concat)
- Society.SuspendedCandidates (twox_64_concat)
- Society.SuspendedMembers (twox_64_concat)
- Society.Vouching (twox_64_concat)
- Society.Strikes (twox_64_concat)
- System.EventTopics
- Balances.Account

* Build fixes

* Ensure migration happens in correct order

* Staking.*

* Vesting.* Offences.*

* Democracy.*

* Babe.* Collective.*

* Grandpa.*

* Assets.* Benchmark.* Contracts.* Elections.* Asset.* Nicks.*

Also introduce real account list

* ImOnline.*

* Treasury.*

* Recovery.*

* Final bits.

* Docs

* Fix one test

* Fix test

* All passing except the UI tests

* Remove linked_map part 1

* Remove linked_map

* Some iterator utils for double maps.

* Remove old migrations

* Introduce tombstone for LinkedMap type

* Migration for genesis hash

* Fix build

* Fix hash

* Rename Map is_linked -> unused, keeping backwards compat (#5256)

* Update frame/balances/src/lib.rs

Co-Authored-By: Shawn Tabrizi <shawntabrizi@gmail.com>

* Update frame/elections/src/lib.rs

Co-Authored-By: Shawn Tabrizi <shawntabrizi@gmail.com>

* Remove old migration code.

* Update frame/system/src/lib.rs

Co-Authored-By: Shawn Tabrizi <shawntabrizi@gmail.com>

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

Co-Authored-By: Shawn Tabrizi <shawntabrizi@gmail.com>

* Fix hash

* fix session migration

* Fix watning

Co-authored-by: Jaco Greeff <jacogr@gmail.com>
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
2020-03-16 23:19:53 +01:00
Wei Tang 846a9ce8c6 epoch-changes: separate epoch header with epoch data (#4881)
* fork-tree: prune returns all pruned node data

* epoch-changes: split EpochHeader vs epoch data

* EpochChanges::viable_epoch and add missing comments

* Incoperate the new epoch_changes interface for BABE

* Fix BABE tests

* Fix fork-tree pruning issue

* Fix tests

* Fix pruning algorithm

* fork-tree: implement map function for mapping one value type to another

* Add migration script for new epoch changes scheme

* Update utils/fork-tree/src/lib.rs

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

* Update client/consensus/slots/src/lib.rs

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

* Remove authorities_len.is_none check, which is duplicate of unwrap_or(false)

* Update client/consensus/epochs/src/lib.rs

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

* Update client/consensus/epochs/src/lib.rs

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

* No trailing ; for return statement

* Use VERSION_KEY for migration

* Fix issues that removed nodes are not properly added into removed list

* Add comments indicating end_slot is non-inclusive

* fork-tree: use &mut F for map type declaration

* Add tests for v0 epoch_changes migration

* Fix babe RPC tests

Co-authored-by: André Silva <andre.beat@gmail.com>
2020-03-16 17:06:13 -04:00
gabriel klawitter abe391a0a7 ci: check_runtime: fetch release tag ii (#5263) 2020-03-16 19:02:04 +01:00
Nikolay Volf 372745705d create parallel tasks extension (#5249) 2020-03-16 16:30:39 +01:00
gabriel klawitter 418b7b8bc2 ci: check_runtime: fetch release tag (#5259) 2020-03-16 12:28:07 +01:00
Stanislav Tkach 5e0b6f2f29 Update parity-common dependencies (#5254) 2020-03-16 09:36:04 +01:00
Bastian Köcher 26fa6e3c76 Move runtime upgrade to frame-executive (#5197)
* Move runtime upgrade to `frame-executive`

Instead of storing the runtime upgraded in the space of `frame-system`,
this moves it to `frame-executive`. We also start storing the
`spec_version` and `impl_version` the last runtime upgrade was applied.

This scheme has multiple advantages:
- We don't need to make sure that runtime upgrade was set.
- This will work in the future when we want to test a runtime upgrade,
because the `on_runtime_upgrade` will be executed automatically when the
runtime changes.

* Move `LAST_RUNTIME_UPGRADE` key to `frame-executive`

* Add some more documentation

* Make sure `spec_version` always increases between runtime upgrades

* Fix test

* Upgrade `parity-multiaddr` to fix compilation

* Also check if the `spec_name` changed

* Remove `RuntimeUpgraded` storage entry

* Don't run on genesis
2020-03-15 20:28:57 +01:00
Shawn Tabrizi b57fd17998 Fix genesis bug in bench db (#5253) 2020-03-15 20:19:01 +01:00
s3krit 45bb897ea1 Create release-tagging github action (#5225)
* Create release-tagging github action

Uses an action that I forked, which I retain control of for now. Can probably move it to the paritytech repo at some point

* Remove 'prereleased' trigger

`published` action is triggered whether the release is a pre-release or not.

* Update release-tagging.yml

* Remove superfluous cmment
2020-03-14 12:57:09 +01:00
Max Inden 79fc16e4d7 client/finality-grandpa: Add Prometheus metrics to GossipValidator (#5237)
* client/finality-grandpa: Add Prometheus metrics to GossipValidator

Instrument finality grandpa `GossipValidator` exposing count of messages
validated by message type and message action.

```
\# HELP substrate_finality_grandpa_communication_gossip_validator_messages Number of messages validated by the finality grandpa gossip validator.
\# TYPE substrate_finality_grandpa_communication_gossip_validator_messages counter
substrate_finality_grandpa_communication_gossip_validator_messages{action="discard",message="neighbor"} 39
substrate_finality_grandpa_communication_gossip_validator_messages{action="keep",message="vote"} 28
```

* client/finality-grandpa: Add None as Prometheus registry in tests

* client/finality-granpda/src/communication: Refactor metric registration
2020-03-14 12:51:44 +01:00
Alexander Theißen b817763ea9 Add ext_transfer call (#5169)
* contracts: Add ext_transfer call

This call allows contracts to send balance to any account
contract or not. Previously, the only way to do that was
though ext_call.

* Apply suggestions from code review

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

* The define_env! macro does not allow for trailing comma

* Update frame/contracts/src/exec.rs

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

* Bump spec version

* Do not use nested gas meter

* Use explicit 0 or 1 as return value

* Remove superflous intermediate binding

Co-authored-by: Nikolay Volf <nikvolf@gmail.com>
2020-03-14 12:49:22 +01:00
Kian Paimani 7e2cd0edee Remove unused imports and extern crate (#5245) 2020-03-14 12:48:47 +01:00
Shawn Tabrizi 74f8db5def Assign unique storage names to pallets. (#5010)
* Assign unique storage names to pallets.

* Bump spec

* Upgrade logic for finality tracker (untested)

* Logic for migrating Identity (untested)

* Logic for migrating transaction-payment

* Fix tests

* Fix `decl_storage` build

* Contract -> Contracts

* Update Cargo.lock

* bump spec

* update migration

* Fix merge error

* Migration for contracts

* Remove serde

* Remove some illegal spaces and Options

* Fix types in identity.

* Minor variable rename

Co-authored-by: Gavin Wood <gavin@parity.io>
2020-03-14 12:44:48 +01:00
Nikolay Volf 7285cbc801 Update master benchmarks (#5230)
* try more samples

* try increase span

* reaping bench + config

* wip

* ed25519 block import

* update naming

* align names

* Update bin/node/testing/benches/import.rs

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

* Update bin/node/testing/benches/import.rs

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

* Update bin/node/testing/benches/import.rs

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

* Update bin/node/testing/benches/import.rs

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

* Update bin/node/testing/benches/import.rs

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

* Update bin/node/testing/benches/import.rs

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

* use existential deposit

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
2020-03-13 13:01:44 +01:00
Gavin Wood eba4fb764a Don't lock if we're not voting with conviction (#5247)
* Don't lock if we're not voting with conviction

* Add test
2020-03-13 13:01:17 +01:00
Marcio Diaz 74ed6978e1 Fix identity benchmark (#5229)
* Set identity before calling set_subs.

* Remove -1.
2020-03-13 10:46:25 +01:00
joe petrowski abb67d1ecf Emit events to bonding and unbonding ops in Staking pallet (#5228)
* add events to bonding and unbonding ops

* add semicolon on event line

* fix nits
2020-03-13 00:38:25 +01:00
Seun Lanlege 3193b0d4aa removes use of sc_client::Client from node-transaction-factory (#5158)
* removes use of sc_client::Client from node-transaction-factory

* move sc-block-builder to [dev-dependencies] in substrate-test-runtime
2020-03-12 19:19:38 +01:00
Gavin Wood 6f2aaf9d11 Remove balances migration. (#5224)
* Remove balances migration.

* Remove extraneous code

* Remove old test
2020-03-12 14:13:05 +01:00
Seun Lanlege 9898fc7e81 removes use of sc_client::Client from sc_network (#5147)
* removes use of sc_client::Client from sc_network

* rename BlockProvider to BlockBackend

* fix broken test
2020-03-12 14:02:04 +01:00
Stanislav Tkach 6e1b4cd560 Update sysinfo version to 0.11 (#5216) 2020-03-12 14:00:07 +01:00
Gavin Wood 2387543ecb Split fees and tips between author and treasury independently (#5207)
* Split fees and tips between author and treasury independently

* Docs and cleanup

* Fix test
2020-03-12 00:15:39 +01:00
Arkadiy Paronyan dc0bf210fb ChainSpec trait (#5185)
* ChainSpec trait

* Apply suggestions from code review

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

* Added docs

* Fixed build

* Fixed build

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
2020-03-12 00:00:10 +01:00
Max Inden d2345e8d5c client/authority-discovery: Instrument code with Prometheus (#5195)
* client/authority-discovery: Instrument code with Prometheus

Introduce Prometheus metrics into the authority discovery module
enabling one to observe:

- authority_discovery_times_published_total

- authority_discovery_amount_external_addresses_last_published

- authority_discovery_times_requested_total

- authority_discovery_dht_event_received

* client/authority-discovery/src/lib.rs: Reword metric help texts

Co-Authored-By: Ashley <ashley.ruglys@gmail.com>

* client/authority-discovery/src/lib.rs: Reword metric help text

Co-Authored-By: Ashley <ashley.ruglys@gmail.com>

* client/authority-discovery/tests: Fix struct instantiation + basic test

Co-authored-by: Ashley <ashley.ruglys@gmail.com>
2020-03-11 23:59:33 +01:00
Max Inden c9c7d655f1 .maintain/sentry-node/docker-compose: Expose Prometheus endpoin… (#5196)
This patch adds the Prometheus endpoint port of validator A to the
exposed ports to access it from the host network namespace.
2020-03-11 18:32:47 +01:00
Gavin Wood e05e494f74 Refactor session away from needless double_maps (#5202)
* Meat and bones.

* Fix migration

* Update frame/balances/src/migration.rs

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

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
2020-03-11 16:27:47 +01:00
Marcio Diaz 914ce67fd7 Add dev chain as default chain for benchmarks. (#5204) 2020-03-11 12:44:48 +01:00
Hero Bird e5e0ca7389 Split ext_clear_storage out from ext_set_storage (#5103)
* split out ext_clear_storage from ext_set_storage contracts API

* update tests to adjust for the ext_set_storage changes

* adjust COMPLEXITY for the ext_set_storage API changes

* remove value_len == 0 constraint for ext_set_storage

* bump spec_version

* remove guarantee from COMPLEXITY of ext_clear_storage

Co-authored-by: Gavin Wood <gavin@parity.io>
2020-03-11 09:46:20 +01:00
Stanislav Tkach 93ee3104e7 Use CLI to configure max instances cache (#5177)
* Use CLI to configure max instances cache

* Fix tests

* Move default value into CLI

* Use SmallVec

* Apply review comments

* Get rid of `SmallVec`

Co-authored-by: Bastian Köcher <git@kchr.de>
2020-03-11 09:43:37 +01:00
Pierre Krieger f21680209f Minor fixes for Android compilation (#5209)
* Minor fixes for Android

* Update parity-multiaddr

* Bump in service Cargo.toml too
2020-03-10 20:54:58 +01:00
thiolliere 1b4dcd1f23 Staking improve payout_validator (#5208)
* add documentation and optimise payout_validator a bit

* bump spec version to be safe

this is just in case clipped exposure and exposure have different fields
own and total. This shouldn't be the case but better be safe in case
storage is wrong.

* Update frame/staking/src/lib.rs

Co-Authored-By: joe petrowski <25483142+joepetrowski@users.noreply.github.com>

Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>
2020-03-10 20:54:29 +01:00
Bastian Köcher 60b65695e2 Make wasm-builder select dependencies more sensitive (#5162)
Up to now `wasm-builder` iterated over all packages that were not part
of the wasm workspace and added the files to the `rerun-if-changed`
list. However, this included to many files and resulted in needless
re-compilations in `Cumulus` for example.
2020-03-10 20:52:36 +01:00
Bastian Köcher 57ecc10cf1 Remove secp256k1 from WASM build (#5187)
* Remove `secp256k1` from WASM build

* Bring back full public key parse on native

* Add extra method to create from a full public key
2020-03-10 14:10:57 +01:00
Gavin Wood d1cac6cd19 Sort address types and mark reserved. (#5189)
* Sort address types and mark reserved.

* Typos

* Fix warning
2020-03-10 14:08:29 +01:00
s3krit d56c374b47 CI: Check runtime version against last release, not master (#5203) 2020-03-10 14:02:34 +01:00
Denis Pisarev def94f012e Necessary warnings test (#5206)
* test run warnings test

* fix dependency

* fail on warnings is now necessary
2020-03-10 13:59:26 +01:00
Ashley 3429967122 Use libp2p's implementation of a wasm websocket transport (#5089)
* Update to libp2p 0.16.2

* Use libp2ps implementation of a wasm websocket transport

* Remove explicit Configuration type in node-cli

Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com>
2020-03-10 11:14:20 +01:00
Bastian Köcher 1cfcf5cbfe Don't include :code by default in storage proofs (#5179)
* Don't include `:code` by default in storage proofs (#5060)

* Adds test to verify that the runtime currently is always contained in
the proof

* Start passing the runtime wasm code from the outside

* Fix compilation

* More build fixes

* Make the test work as expected now :)

* Last fixes

* Fixes benchmarks

* Review feedback

* Apply suggestions from code review

Co-Authored-By: Sergei Pepyakin <sergei@parity.io>

* Review feedback

* Fix compilation

Co-authored-by: Sergei Pepyakin <s.pepyakin@gmail.com>

* Fix compilation and change the way `RuntimeCode` works

* Fix tests

* Switch to `Cow`

Co-authored-by: Benjamin Kampmann <ben@gnunicorn.org>
Co-authored-by: Sergei Pepyakin <s.pepyakin@gmail.com>
2020-03-10 11:13:20 +01:00
Max Inden 0cc3b96076 client/service/src/builder.rs: Add build_info metric (#5192)
* client/service/src/builder.rs: Add build_info metric

Add static Prometheus metric exposing the chain name, the version and
the commit.

* client/service/src/builder.rs: Move node_role to static metrics

The Prometheus metrics `node_role` is static and thus there is no need
to keep a reference of it within `ServiceMetrics`. This follows the
example of the `build_info` metric.

* client/service/src/builder.rs: Adjust indentation
2020-03-10 11:12:32 +01:00
Igor Matuszewski 3d73dd1c3b Make sc-offchain tests more resilient on macOS (#5191)
* offchain: Simplify bits of http code

* offchain: Sort dev-dependencies

* deps: Bump parity-multiaddr to 0.7.3

Fixes build failure when using:
rustc 1.43.0-nightly (96bb8b31c 2020-03-05).

* offchain: Raise FD limit for HTTP tests

* offchain: Reword the comment on increasing the test fd limit
2020-03-10 10:45:10 +01:00
Bastian Köcher d2c51e3c59 Make sure to always run wasm-builder for the HOST architecture (#5199) 2020-03-10 10:44:56 +01:00
André Silva cfd6824e57 grandpa: improve handling of global gossip messages (#5133)
* grandpa: only gossip commits to peers on the same set

* grandpa: track commits uniquely by round and set

* grandpa: fix communication test

* grandpa: add tests for commit gossip handling

* grandpa: add missing docs
2020-03-09 16:46:03 -07:00
thiolliere 2aac500d61 Change space to tab (#5193) 2020-03-09 16:32:24 +01:00
Max Inden e8f3c6a686 client/network-gossip: Merge GossipEngine and GossipEngineInner (#5042)
* client/network-gossip: Merge GossipEngine and GossipEngineInner

Given that GossipEngine and GossipEngineInner are not shared between
threads anyone (public interface + background tasks), neither depends on
being Send or Sync. Thus one can merge the two as done in this patch.
One only needs to wrap an `Arc<Mutex<>>` around the whole structure when
the owner (e.g. finality-grandpa) needs to share the gossip engine
between threads.

* client/finality-grandpa: Wrap GossipEngine in Arc Mutex & lock it on use

GossipEngine in itself has no need to be Send and Sync, given that it
does not rely on separately spawned background tasks anymore. Given that
finality-grandpa shares the `NetworkBridge` potentially between threads
its components need to be clonable, thus this patch wraps `GossipEngine`
in an `Arc<Mutex<>>`.
2020-03-09 16:31:29 +01:00
Bastian Köcher 67f10b9195 Improve debug implementation of CheckNonce and CheckEra (#5156) 2020-03-09 12:39:49 +01:00
Jianping Deng da9e7861f8 Add 6 as address type of ss58 for Bifrost Network (#5184) 2020-03-09 12:39:17 +01:00
Shawn Tabrizi 0971fff470 Update logic to cancel_deferred_slash (#5186)
* Update logic to cancel_deferred_slash

* More idiomatic

* bump spec

Co-authored-by: Gavin Wood <gavin@parity.io>
2020-03-09 12:39:05 +01:00