* Add `max_members` to `found`, add society genesis for Substrate node
* Update test
* Use `Option<bool>` rather than `Option<()>`
* Update from feedback
* Implement runtime version checks in `set_code`
Check that the new runtime code given to `set_code` fullfills some
requirements:
- `spec_name` matches
- `spec_version` does not decreases
- `impl_version` does not decreases
- Either `spec_version` and `impl_version` increase
* Make tests almost work
* Some fixes after master merge
* Fix tests
* Add missed file
* Make depedency check happy?
* Remove leftover `sc-executor`
* AHHHHH
* Reset debug stuff
* Remove some 'static
* More 'static
* Some docs
* Update `Cargo.lock`
* reset a couple of versions down from v0.2.0
* Unstablise browser-utils (very new) and grafana-data-source (going to be replaced with prometheus sometime)
* unmark a bunch more client crates for stabilization
* fix versions in Cargo.tomls
* Downgrade network-test
* Set frame-metadata version to `10.0.0`
* Hide and documented storage generator as internal api
* Downgrade `sp-externalities`
* Downgrade `sc-cli`
* Downgrade sc-executor et al to 0.8.0
* Downgrade sp-state-machine to 0.8.0
* Downgrade pallet-contracts et al to 0.8.0
* Downgrade sp-sandbox to 0.8.0
* downgrade pallet-evm to 0.8.0
* Downgrade pallet-staking to 0.8.0
2.0 should be implementation of lazy payout alongside all the fixes of
current module
* Downgrade node-transaction-factory to 0.8.0
* frame pallets are 2.0.0
Co-authored-by: Ashley <ashley.ruglys@gmail.com>
Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: Sergei Pepyakin <s.pepyakin@gmail.com>
Co-authored-by: Wei Tang <accounts@that.world>
Co-authored-by: thiolliere <gui.thiolliere@gmail.com>
Co-authored-by: Marcio Diaz <marcio@parity.io>
* Switch service to futures03
* Fix tests
* Fix service test and cli
* Re-add Executor trait to SpawnTaskHandle
* Fix node-service
* Update babe
* Fix browser node
* Update aura
* Revert back to tokio-executor to fix runtime panic
* Add todo item
* Fix service tests again
* Timeout test futures
* Fix tests
* nits
* Fix service test
* Remove zstd patch
* Re-add futures01 to aura and babe tests as a dev-dep
* Change failing test to tee
* Fix node
* Upgrade tokio
* fix society
* Start switching grandpa to stable futures
* Revert "Start switching grandpa to stable futures"
This reverts commit 9c1976346237637effc07c13f7d0403daf5e71cf.
* Fix utils
* Revert substrate service test
* Revert gitlab
Co-authored-by: thiolliere <gui.thiolliere@gmail.com>
* Initial sketch of social recovery pallet
* Fix compilation issues
* Use a single total delay, rename stuff
* Check possible overflow
* Copyright bump
* Add mock for tests
* Add basic end to end test
* Add `create_recovery` tests
* Add malicious recovery lifecycle test
* Make clear we check for sorted and unique friends
* Work on some tests, clean up imports
* Change `if let Some(_)` to `ok_or()`
* More tests
* Finish tests, except issue with `on_free_balance_zero`
* Fix `on_free_balance_zero`
* Pallet docs
* Add function/weight docs
* Fix merge master
* OnReapAccount for System too
* Update weight docs
* Allow passthrough to support fee-less extrinsics
* 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>
* 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>
* 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
* client/authority-discovery: Limit number of connections to authorities
Instead of connecting to all sentry nodes of all authorities, with this
patch the authority discovery module does the following:
- Choose one sentry node per authority at random.
- Choose MAX_NUM_AUTHORITY_CONN out of the above at random.
The module uses randomness to prevent hot spots, e.g. all nodes trying
to connect to a single node. If the authority discovery module would
choose the nodes to connect to at random on each new address that it
learns of, the node would go through a lot of connection churn. Instead
it creates a random seed at start up and uses this seed for its RNG on
each update cycle.
* client/authority-discovery: Extract address cache into own module
* client/authority-discovery/src/addr_cache: Add basic unit tests
* client/authority-discovery: Replace unwrap with expect on [u8] cmp
* .maintain/sentry-node/docker-compose.yml: Prefix endpoint flags
* client/authority-discovery/src/addr_cache: Use sort_unstable and cmp
* client/authority-discovery: Use BTreeMap in addr_cache for sorted iter
To reduce connection churn it is preferrable to have `get_subset` of the
`addr_cache` to return the same result on repeated calls. `get_subset`
iterates a map. To make the process of iteration deterministic, use a
`BTreeMap` instead of a `HashMap`.
* Fix cli for structopt 0.3.7 and pin to that version
This is just some hotfix to make everything compile. In the future it
will require another pr to not depend on internals of StructOpt, but
that will probably also require some additions to StructOpt itself. To
not break the code again with another StructOpt, this also pins the
StructOpt version.
* Fix benches
* Fix for fix
* Clean imports in wasmi_execution
* Replace `interpret_runtime_api_result` with `pointer_and_len_from_u64`.
* Extract sc-executor-common crate
* Extract `sc-executor-wasmi` into its own crate
* Extract `sc-executor-wasmtime` into its own crate.
* Add missing headers.
* Clean and docs
* Docs for sc-executor-wasmi
* Expand a comment about sandboxing
* Fix assert_matches
* Rename (un)pack_ptr_and_len and move them into util module
* Remove wasmtime errors in sc-executor-common
* clean up cargo.toml syntax
* bumping versions to 2.0
* bump networking to 0.8
* move consensus down to 0.8
* bump consensus pallets to 0.8.0, too
* Upping babe and aura pallets
* add remaining, missing version definitions
* missed some
* take test-client off sp-consensus
* use test primitives rather than test client in authority discovery tests
* move runtime-interface tests
* don't forget to remove the dev-dependency
* remove more unneeded dev deps
* add changes_trie_config to test prrimitives
* Separate network crates from its integration tests
* Fix up consensus crates for networking test changes
* remove unnecessary dependencies
* remove unused addition
* remove unnecessary dev-dependencies
* fixing finality grandpa tests
* removing unnecessary executor dependencies
* Limit number of uncles that can be provided.
* Check length of uncles vector on inherent.
* Set fatal error to true for too many uncles.
* Take max uncles in create_inherent.