Commit Graph

16208 Commits

Author SHA1 Message Date
Gavin Wood c81e9df162 Society pallet (#4170)
* Introduce efficient Hash-based RNG streamer

* Initial draft of the society module

* Introduce a test

* Dual-pot logic

* Vouching

* Use chacha

* Half way through moving to cliff payout.

* Fixes

* Add some tests

* Remove printlns

* Merge remote-tracking branch 'origin/gav-verified-id' into gav-verified-id

# Conflicts:
#	frame/identity/src/lib.rs

* Merge remote-tracking branch 'origin/gav-verified-id' into gav-verified-id

# Conflicts:
#	frame/identity/src/lib.rs

* Fix `slash_payout`, add test

* Test for multi-slash_payout

* Add docs to `put_bid` function and `bidding_works` test

* Add strikes to test

* Add comments to `rotate_period`

* Implement `suspend_member`

* Off chain iteration of suspended members using linked_map

* Half of suspended candidate

* Finish suspend_candidate, need tests

* Resolve mistakes and feedback, add `suspended_candidate_rejected` test

* Remove logic which increases payout time after un-suspension

* Fix error in `slash_suspended_candidates`, add member check to `vote`

* Fix vouch rewards, dont create zero payouts, add tests for vouch

* Test unvouch

* Unbid tests

* Add lifecycle events, fix `add_member` to update `MembershipChanged`

* Head cannot be removed from society

* Use `add_member` in `found` to ensure `MembershipChanged` is triggered

* Use `Judgement` enum for suspended candidate judgement

* Make society instantiable

* Implement challenges

* Remove extra text in test

* Remove `BlockNumber` return from `slash_payout`

* Add bad vote causes slash test

* Update frame/society/src/lib.rs

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

* Add consts to module metadata

* Check `suspended_member` cant bid

* Increase strength of payout check, **must** be a member.

* Start pallet documentation

* Finish docs

* Update library names, use decl_error

* Prevent double bids, add test

* Use `map` for vouching member, and introduce banned vouchers

* Remove leftover docs

* Vouching handles removed member lifecycles w/ tests

* `take` the votes when tallying, add comprehensive checks before vouch or bid

* Check votes are cleaned up

* Check vote is for a valid candidate, add vote event

* Defender vote event

* Fix `judge_suspended_candidate`, add weight docs

* First pass fixes (blank lines, formatting, no operational)

* Bump copyright year

* Make `add_member` infallible

* More feedback updates

* Add storage access complexity

* Fix logic for AutoUnbid

* Complete weight documentation

* Optimize logic which used to result in double storage read.

* Use Bid struct rather than tuple

* Introduce `MaxMembers` configuration constant

* Add comment about fringe scenario where `MaxMembers` could go over, NBD

* Change MaxMembership to configurable storage item with ability for root to update

* Make membership challenges skew toward failure.

If no one at all votes, or the vote is tied, the user will be suspended from society. This means, that the user simply needs to vote for themselves to stay in society assuming no one else participates.

* Refactor `is_candidate`as to avoid possible double storage reads in the future.

* Blank lines

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: thiolliere <gui.thiolliere@gmail.com>
2020-01-10 10:55:16 +01:00
Bastian Köcher fd6b29dd2c Remove requirement on Hash = H256, make Proposer return StorageChanges and Proof (#3860)
* Extend `Proposer` to optionally generate a proof of the proposal

* Something

* Refactor sr-api to not depend on client anymore

* Fix benches

* Apply suggestions from code review

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

* Apply suggestions from code review

* Introduce new `into_storage_changes` function

* Switch to runtime api for `execute_block` and don't require `H256`
anywhere in the code

* Put the `StorageChanges` into the `Proposal`

* Move the runtime api error to its own trait

* Adds `StorageTransactionCache` to the runtime api

This requires that we add `type NodeBlock = ` to the
`impl_runtime_apis!` macro to work around some bugs in rustc :(

* Remove `type NodeBlock` and switch to a "better" hack

* Start using the transaction cache from the runtime api

* Make it compile

* Move `InMemory` to its own file

* Make all tests work again

* Return block, storage_changes and proof from Blockbuilder::bake()

* Make sure that we use/set `storage_changes` when possible

* Add test

* Fix deadlock

* Remove accidentally added folders

* Introduce `RecordProof` as argument type to be more explicit

* Update client/src/client.rs

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

* Update primitives/state-machine/src/ext.rs

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

* Integrates review feedback

* Remove `unsafe` usage

* Update client/block-builder/src/lib.rs

Co-Authored-By: Benjamin Kampmann <ben@gnunicorn.org>

* Update client/src/call_executor.rs

* Bump versions

Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
Co-authored-by: Benjamin Kampmann <ben.kampmann@googlemail.com>
2020-01-10 10:48:32 +01:00
Tomasz Drwięga 74d6e660c6 Add documentation to SubmitSignedTransaction and actually make it work (#4200)
* Add documentation to signed transactions and actually make them work.

* Fix naming and bounds.

* Forgotten import.

* Remove warning.

* Make accounts optional, fix logic.

* Split the method to avoid confusing type error message.

* Move executor tests to integration.

* Add submit transactions tests.

* Make `submit_transaction` tests compile

* Remove a file that was accidently committed

* Add can_sign helper function.

* Fix compilation.

* Add a key to keystore.

* Fix the tests.

* Remove env_logger.

* Fix sending multiple transactions.

* Remove commented code.

* Bring back criterion.

* Remove stray debug log.

* Apply suggestions from code review

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

* Make sure to initialize block correctly.

* Initialize block for offchain workers.

* Add test for transaction validity.

* Fix tests.

* Review suggestions.

* Remove redundant comment.

* Make sure to use correct block number of authoring.

* Change the runtime API.

* Support both versions.

* Bump spec version, fix RPC test.

Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
Co-authored-by: Gavin Wood <github@gavwood.com>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
2020-01-10 01:46:55 +01:00
Shawn Tabrizi a1e0076aa8 Introduce OnReapAccount (#4585)
* Initial run and gun at `OnReapAccount`

* Fix some imports

* More fixes

* Whitespace

* More wack-a-mole

* Gotta catch em all

* Update lib.rs

* Small doc update

* Whitespace
2020-01-10 01:46:23 +01:00
Gavin Wood ddce5fe496 Bump Substrate & versions (#747)
* Bump versions

* Update for tipping treasury

* Bump substrate

* Fixes

* Put send_consensus back in.

* Fix test

* Fixes

* Fixes

* Fix warning
2020-01-10 00:23:43 +01:00
Sergei Pepyakin 78c73e76c3 Fix some entries in CODEOWNERS (#4584) 2020-01-09 23:09:23 +00:00
Svyatoslav Nikolsky f372fa4d72 fix race in light_peer_imports_header_from_announce (#4579) 2020-01-09 23:28:04 +01:00
Pierre Krieger affd6e7225 Companion PR to substrate#4542 (#732) 2020-01-09 19:27:49 +01:00
Pierre Krieger bc3d283e78 Clean-ups in the network-gossip crate (#4542)
* Remove usage of sc_network::Context trait

* Remove Context::send_consensus

* Pass &mut dyn Network instead of &dyn Network

* Move Validator traits and related to separate module
2020-01-09 19:24:51 +01:00
Arkadiy Paronyan b61b3095ee Enabled wasmtime (#4569) 2020-01-09 19:23:51 +01:00
Pierre Krieger ca997cf1e4 Update networking code to libp2p 0.14 (#4383)
* Entirely update substrate-telemetry to futures 0.3

* Add a Closed error

* Update to libp2p 0.14

* More work

* More work

* More work

* More work

* Fix warnings

* Remove unwrap()

* Work on tests fixing

* Fix network tests

* Fix external network tests

* Update libp2p and restore Yamux in discovery test

* Ignore DNS if initializatio nfails

* Restore variables ordering

* Forgot browser-utils

* Fix downfall after merge

* Fix tests
2020-01-09 19:01:23 +01:00
Arkadiy Paronyan 6e572a9477 Prioritize new blocks over old forks when syncing (#4414)
* Prioritize new blocks over old forks when syncing

* Fixed some test cases
2020-01-09 19:00:57 +01:00
Ashley 628dd08c20 Companion PR for Substrate#4394 (#723)
* service/src/lib.rs: Register network event stream for authority disc

Previously one would create a sender and receiver channel pair, pass the
sender to the build_network_future through the service builder and
funnel network events returned from polling the network service into the
sender to be consumed by the authority discovery module owning the
receiver.

With recent changes it is now possible to register an event_stream
with the network service directly, thus one does not need to make the
detour through the build_network_future.

This commit is an adjusted clone of one targeting the Substrate
repository.

* service/src/lib.rs: Fix futures::stream imports

* [TMP] *: Replace polkadot-upstream with feature branch

* Switch branch

* Small change

* Companion PR to substrate#4542

* Revert "Merge remote-tracking branch 'tomaka/companion-4542' into ashley-browser-utils"

This reverts commit 17f00afe483ee65cb3cf4a0faca27034e6d6523a, reversing
changes made to 928cbb9c55542baff56b53accd9a5a45f12f01f1.

* ashley-browser-utils -> ashley-browser-utils-polkadot

* Switch branches back

Co-authored-by: Max Inden <mail@max-inden.de>
Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com>
2020-01-09 18:55:40 +01:00
Gavin Wood 6d8b99cf5e Add an extra test to check rebond is a LIFO (#4578) 2020-01-09 18:19:11 +01:00
Shawn Tabrizi 0943a05833 Update getting started link (#4581)
* Update getting started link

* Update README.md
2020-01-09 15:27:24 +01:00
Gavin Wood 67202b7ec3 Add tipping into treasury (#4480)
* First draft

* Initial work on tests

* Add tests.

* Ensure old members can't tip.

* Fix complexity

* Update node runtime

* Build fix.

* build fix

* Fix tests

* Fix tests

* Refactor Contains impl for tests

* Introduce new way to avoid impl Contains conflicts

* Fixes

* Docs.

* Docs.

* Typo

* Whitespace

* Docs

* Typo

* Formatting

* Update frame/treasury/src/lib.rs

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

* Update frame/treasury/src/lib.rs

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

* Update frame/treasury/src/lib.rs

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

* Apply suggestions from code review

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

* Add provisional weights.

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
2020-01-09 14:39:12 +01:00
Marcio Diaz 586685fca0 Add missing weights to Identity module. (#4577) 2020-01-09 14:15:47 +01:00
Marcio Diaz 6100fb14e6 Introduce rebond (#4374)
* Implement rebond: allowing to re-bond stake unbonded.
2020-01-09 11:33:27 +01:00
Shawn Tabrizi 69245901dc Update per_thing docs (#4575)
* Update `per_thing` docs

* Update primitives/arithmetic/src/per_things.rs

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

* Update per_things.rs

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
2020-01-09 11:29:09 +01:00
Cecile Tonglet cc573bc106 Wasm executor should provide stubs for unknown externs (wasmi) (#4550)
Related to #4456
2020-01-09 11:18:14 +01:00
Gavin Wood d9b8ba7707 v0.7.16 (#744)
* Bump Substrate and versions

* Bump Substrate
2020-01-09 01:09:48 +01:00
Bastian Köcher 06386558ae Switch parachain interface to new runtime_interface macro (#665)
* Make use of `runtime_interface` for parachain externalities

This also changes the encoding of the `ValidationResult` return value to
match the default encoding used in Substrate.

* Fix compilation for web

* Update `Cargo.lock`

* Include feedback

* Move proc macro

* Update parachain/src/lib.rs

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

Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
2020-01-08 20:44:50 +01:00
Bastian Köcher 189bd2349c Keystore fix default path (#4570) 2020-01-08 15:19:14 +01:00
Gavin Wood 10f1f3a381 Bumped version to v0.7.15, use minimallly-changed Substrate. (#741)
* Bumped versions

* Bump to latest substrate that exposes load_spec
2020-01-08 14:44:49 +01:00
Arkadiy Paronyan 897445f32a Bumped runtime version (#4568) 2020-01-08 12:12:11 +01:00
Weiliang Li 7a9b570ee5 txpool: unify client generic name (#4565) 2020-01-08 11:46:56 +01:00
Shawn Tabrizi 7f8f97ef91 Use single map and remove_all for EventTopics (#4566) 2020-01-08 09:50:35 +01:00
Gavin Wood 59d121dbdc Tweak Polkadot constants & bump Substrate (#739)
* Tweak Polkadot constants.

* Bump and remove warning

* Bump impl version

* Bump Substrate

* Bump Substrate again
2020-01-08 00:45:55 +01:00
André Silva bd58ddb6e4 remove kusama fixes (#738) 2020-01-08 00:02:46 +01:00
André Silva 660c882cd3 grandpa: guarantee that vote limit is never lower than vote base (#4563) 2020-01-07 23:34:54 +01:00
Nikolay Volf df4058b556 i/o stats for backend databases (#4525) 2020-01-07 21:53:03 +03:00
Gavin Wood bd8db613ef Bump versions (#736)
* Fix up Kusama balance constants

* Bump versions

* Fix for the --dev option
2020-01-07 19:30:06 +01:00
Bastian Köcher 263dc43da3 Add sudo module to polkadot-runtime (#735) 2020-01-07 19:07:54 +01:00
Stanislav Tkach 9500eb7590 Fix Request::new documentation (#4560) 2020-01-07 18:09:27 +01:00
Ashley ce0b82a9da Remove timing based bits of grafana test (#4558) 2020-01-07 16:43:35 +01:00
Arkadiy Paronyan 0d055c9640 Select native runtime based on chain spec (#733)
* Select native runtime based on chain spec

* Bumped substrate
2020-01-07 16:31:25 +01:00
Ashley bb44f8fc24 Add a browser-utils crate (#4394)
* Squash

* Fix keystore on wasm

* Update utils/browser/Cargo.toml

Co-Authored-By: Benjamin Kampmann <ben@gnunicorn.org>

* export console functions

* Use an Option<PathBuf> in keystore instead of cfg flags

* Add a KeystoreConfig

* Update libp2p

* Bump kvdb-web version

* Fix cli

* Upgrade versions

* Update wasm-bindgen stuff

Co-authored-by: Benjamin Kampmann <ben.kampmann@googlemail.com>
2020-01-07 16:30:04 +01:00
s3krit d945280142 Fix pending-release alert script (#734)
... parity/tools doesn't have /bin/bash
2020-01-07 16:29:17 +01:00
Max Inden d76a33033d client/network-gossip: Remove GossipEngine::abort method (#4552)
`GossipEngine::abort` and thus `ConsensusGossip::abort` are never
called. This patch removes both.
2020-01-07 15:26:40 +01:00
Arkadiy Paronyan bc9676737f Expose load_spec (#4556) 2020-01-07 15:08:27 +01:00
Robert Habermeier 6a0e60c3a4 do not chill indirectly-slashed nominators (#4553)
* do not chill indirectly-slashed nominators

* test nomination non-kick and vote ignoring behavior
2020-01-07 13:17:17 +01:00
Bastian Köcher 82661cd2ce decl_event support trailing comma in args (#4554) 2020-01-07 12:48:05 +01:00
Gavin Wood 3cc6249cdf Fix error message (#4549) 2020-01-07 01:57:32 +01:00
André Silva a869258fc5 polkadot v0.7.13 (#730)
* bump substrate version

* bump version to 0.7.13
2020-01-07 00:12:17 +00:00
Gavin Wood bf858b0a60 Bump version (#729) 2020-01-06 23:45:29 +00:00
André Silva 30a8eec44f service: reset grandpa into a future round (not past) (#726)
* service: reset grandpa into a future round (not past)

* update substrate version

* service: create grandpa reset round variable

* service: fine grained grandpa reset on startup

Co-authored-by: Gavin Wood <github@gavwood.com>
2020-01-06 23:39:12 +00:00
Gavin Wood b4c031b4fc Fix the can-author issue by defaulting to Kusama when no chainspec given. (#728)
* Fix can_author by defaulting correctly.

* Comments

* Better logging

* Bump Substrate

* Minor updates to readme.
2020-01-06 23:20:46 +00:00
Joshy Orndorff 6b57c7181f typo: lead -> leave (#4546) 2020-01-06 20:55:39 +01:00
s3krit 2d5a1c953a allow release alerts to fail (#725) 2020-01-06 19:40:58 +01:00
André Silva a89d87d708 client: add a block blacklist extension (#4544)
* client: add a block blacklist extension

* test-utils: fix client construction

* client: fix rustdoc test
2020-01-06 18:03:44 +00:00