* Remove InherentsPool.
* Introduce transactions that are not propagated over the network.
* Bump spec version.
* Use separate flag for propagation.
* Fix tests.
* Silence known deprecation warnings
1. Prefixes known instances of usages of client.backend and client.import_lock with `#[allow(deprecated)]` to silence the warnings. 2. Remove file-global `#![allow(deprecated)]` used in these cases. Both to prevent us overlooking externally caused deprecation messages.
* fixing missing ;
* fix missing test cases
* move deprecated markers to make CI happy
* move deprecated markers to make CI happy
* attempt to fix the test
* bumping impl_version of node runtime
* Minor cleanup
* Send high-level consensus telemetry by default
* Notify telemetry on finalized
* Send used authority set to telemetry
* Do not send commit message telemetry by default
* Fix typo
* Allow for notifications on telemetry connect
...and send the current authority set on each connect.
* Send authority set to telemetry on change
* Revert "Send used authority set to telemetry"
This reverts commit 1deceead52bb7443a02879ac8138afad9a6ca5ff.
* Merge branch 'master' into 'cmichi-send-high-level-consensus-telemetry-by-default'
Squashed commit of the following:
commit 19d77cbc23
Author: Xiliang Chen <xlchen1291@gmail.com>
Date: Wed Apr 10 20:26:29 2019 +1200
update authers for rest of the node-template cargo.toml files (#2242)
commit 0afc357a97
Author: Bastian Köcher <bkchr@users.noreply.github.com>
Date: Tue Apr 9 10:31:18 2019 +0200
Throw a compile error for `on_finalise` and `on_initialise` (#2236)
commit e57e54ab9c
Author: Pierre Krieger <pierre.krieger1708@gmail.com>
Date: Tue Apr 9 05:30:43 2019 -0300
Add warning when using default protocol ID (#2234)
* Add warning when using default protocol ID
* Update core/service/src/lib.rs
commit cb766e5f5d
Author: Xiliang Chen <xlchen1291@gmail.com>
Date: Tue Apr 9 17:22:20 2019 +1200
update name and authors to placeholder text for node-template (#2222)
* update name and authors to placeholder text
* revert package name change
commit a1e15ae55a
Author: André Silva <andre.beat@gmail.com>
Date: Mon Apr 8 12:50:34 2019 +0100
grandpa: Voter persistence and upgrade to finality-grandpa v0.7 (#2139)
* core: grandpa: migrate to grandpa 0.7
* core: grandpa: store current round votes and load them on startup
* core: grandpa: resend old persisted votes for the current round
* core: grandpa: store base and votes for last completed round
* core: grandpa: fix latest grandpa 0.7 changes
* core: grandpa: update to grandpa 0.7.1
* core: grandpa: persist votes for last two completed rounds
* core: grandpa: simplify VoterSetState usage
* core: grandpa: use Environment::update_voter_set_state
* core: grandpa: fix aux_schema test
* core: grandpa: add docs
* core: grandpa: add note about environment assumption
* core: grandpa: don't update voter set state on ignored votes
* core: grandpa: add test for v1 -> v2 aux_schema migration
* core: grandpa: add test for voter vote persistence
* core: grandpa: use grandpa 0.7.1 from crates.io
* core: grandpa: use try_init in test
* core: grandpa: add comment about block_import in test
* core: grandpa: avoid cloning HasVoted
* core: grandpa: add missing docs
* core: grandpa: cleanup up can_propose/prevote/precommit
commit ed3ae4ac39
Author: Gregory Terzian <2792687+gterzian@users.noreply.github.com>
Date: Mon Apr 8 13:17:00 2019 +0200
remove clone bound on specialization in testnet factory (#2157)
commit 03f3fb1442
Author: Andrew Jones <ascjones@gmail.com>
Date: Sat Apr 6 12:23:56 2019 +0100
Contract import/export validation (#2203)
* Reject validation of contract with unknown exports
* Validate imports eagerly
* Increment spec version
commit decddaab0f
Author: Pierre Krieger <pierre.krieger1708@gmail.com>
Date: Fri Apr 5 14:07:09 2019 -0300
Fix state inconsistency between handler and behaviour (#2220)
* Fix state inconsistency between handler and behaviour
* Fix the error! being in the wrong place
commit dce0b4ea49
Author: Bastian Köcher <bkchr@users.noreply.github.com>
Date: Fri Apr 5 18:50:38 2019 +0200
Use `storage_root` of newly calculated header (#2216)
Instead of calculating the `storage_root` a second time, we just can
take the `storage_root` from the new header.
commit b01136c90d
Author: Marek Kotewicz <marek.kotewicz@gmail.com>
Date: Fri Apr 5 14:44:46 2019 +0200
Peerset::discovered accepts many peer ids (#2213)
* Peerset::discovered accepts many peer ids
* Improve tracing in peerset
commit 1142bcde97
Author: Marek Kotewicz <marek.kotewicz@gmail.com>
Date: Thu Apr 4 19:40:40 2019 +0200
simplification of peerset api (#2123)
* Introduction of PeersetHandle
* integrate PeersetHandle with the rest of the codebase
* fix compilation errors
* more tests for peerset, fixed overwriting bug in add_reserved_peer
* Slots data structure and bugfixes for peerset
* bend to pressure
* updated lru-cache to 0.1.2 and updated linked-hash-map to 0.5.2
* peerset discovered list is now a LinkedHashMap
* fix review suggestions
* split back Peerset and PeersetHandle
* test for Peerset::discovered
* applied review suggestions
* fixes to peerset::incoming
* peerset disconnects are all instantaneous
* instantaneous drop in peerset finished
* Peerset::set_reserved_only can also reconnect nodes
* Peerset scores cache uses lru-cache
* remove redundant function call and comment from Peerset::on_set_reserved_only
* add_peer returns SlotState enum
* apply review suggestions
* is_reserved -> is_connected_and_reserved
commit 301844dd56
Author: Arkadiy Paronyan <arkady.paronyan@gmail.com>
Date: Thu Apr 4 18:01:28 2019 +0200
Disconnect on protocol timeout (#2212)
commit cb3c912b1a
Author: André Silva <andre.beat@gmail.com>
Date: Thu Apr 4 15:56:49 2019 +0100
core: grandpa: verify commit target in justification (#2201)
commit 6920b169cd
Author: Bastian Köcher <bkchr@users.noreply.github.com>
Date: Thu Apr 4 16:56:16 2019 +0200
Introduce `original_storage` and `original_storage_hash` (#2211)
Both functions will ignore any overlayed changes and access the backend
directly.
commit cb7a8161f5
Author: Xiliang Chen <xlchen1291@gmail.com>
Date: Fri Apr 5 03:55:55 2019 +1300
code cleanup (#2206)
commit acaf1fe625
Author: Arkadiy Paronyan <arkady.paronyan@gmail.com>
Date: Wed Apr 3 15:52:46 2019 +0200
Emberic elm testnet (#2197)
* Make telemetry onconnect hoook optional
* Merge branch 'master' into 'cmichi-send-high-level-consensus-telemetry-by-default'
* Introduce GrandpaParams struct to condense parameters
* Remove debug statement
* Fix tests
* Rename parameter
* Fix tests
* Rename struct
* Do not send verbosity level
* Combine imports
* Implement comments
* Run cargo build --all
* Remove noisy telemetry
* Add docs for public items
* Unbox and support Clone trait
* Fix merge
* Fix merge
* Update core/finality-grandpa/src/lib.rs
Co-Authored-By: cmichi <mich@elmueller.net>
* grandpa: initial implementation of minimal grandpa worker
* grandpa: extract grandpa observer future to function
* grandpa: add test for observer
* grandpa: start observer if no local key is defined
* grandpa: add minor comments
* grandpa: observer: log invalid commit
* grandpa: observer: persist voter set state on authority change and pause
* grandpa: observer: use commit processing callback
* grandpa: keep run_grandpa to avoid breaking public api
* grandpa: use grandpa::process_commit_validation_result
* grandpa: use finality-grandpa 0.7.2
* Consensus status packet
* Allow for repropagation after status
* More generic gossip
* add a basic view struct and gossip module
* move gossip stuff to the gossip module
* integrate view into gossip
* some reshuffling
* alter rules for keeping one commit at a time in view
* Allow sending addressed messages
* don't cast outgoing votes if we know that we voted before
* Handle one hop messages
* initial run at polite grandpa
* build WASM
* handle neighbor messages
* refactor validator's internals into an Inner struct
* gossip only knows to keep or discard messages. optimize should_send_to
* Periodic rebroadcast
* implement `should_send_to` and message_expired
* track peers' best received commit height
* Pass peer id to topic steam
* kill rebroadcasting network
* Notify about existing peers
* clean up network APIs a bunch
* implement gossip::send_message for direct messages
* refactor network trait
* implement gossip::send_message for direct messages
* get all non set-change tests passing
* treat unknown rebroadcasts as broadcasts
* get all other main tests passing
* remove unimplemented test
* everything compiles
* treat unknown rebroadcasts as broadcasts
* Rebradcast interval
* Apply suggestions from code review
Style
Co-Authored-By: arkpar <arkady.paronyan@gmail.com>
* Style
* some module docs
* address some grumbles + docs
* allow rebroadcast every few minutes
* send_topic && generic context
* some tests for view change
* more grumbles & tests
* use send_peer
* Add `start_aura2`.
* .gitignore patch conflict files
and remove one that accidentally got committed
* Fix build
The tests still don’t work.
* Fix compilation errors
* Fix compile errors (again)
* Try (and fail) to fix tests
* Properly deserialize data
Previously, `DigestItem::Consensus` had no separate `DigestItemType`,
so it did not get properly serialized and deserialized.
* Add extra debug logging. Always allow old seals.
A `RUST_LOG=substrate_aura_consensus cargo test --all -- --nocapture \
tests::authoring_blocks` revealed that old seals were being and
rejected, causing the test to hang. As a temporary debug measure, allow
old seals unconditionally, so that CI can test if this fixes the
problem.
* Forcibly disable rejection of old seals
* Use old trait, but newer serialization
The old trait for `CompatibleDigestItem` actually worked. By changing
its implementation, one can ensure that all *new* seals have the modern
form, but *legacy* seals are still decoded correctly.
* Bump impl version
* Squash spurious deprecation warning
`rustc` should not be emitting a deprecation warning in deprecated
code, but it does, so silence it.
* Rip out unused Cargo feature
* Move AURA to aura_primitives
* Respond to code review
* Wrap overly-long line
* Reduce logging verbosity and add target
* Add dependency on `sr-primitives` to `aura_primitives`
* Fix build
It failed with a message about Cargo.lock being out of date.
* core: aura: rename aura engine id const
* core: aura: remove superfluous logging
* core: primitives: add removed semicolons
* core: aura: remove unused import
* core: network: style fix
* runtime: update wasm blobs
* runtime: bump impl_version
* core: primitives: tag all DigestItemType variants explicitly
* Refactor state-machine stuff.
* Fix tests.
* WiP
* WiP2
* Service support for offchain workers.
* Service support for offchain workers.
* Testing offchain worker.
* Initial version working.
* Pass side effects in call.
* Pass OffchainExt in context.
* Submit extrinsics to the pool.
* Support inherents.
* Insert to inherents pool.
* Inserting to the pool asynchronously.
* Add test to offchain worker.
* Implement convenience syntax for modules.
* Dispatching offchain worker through executive.
* Fix offchain test.
* Remove offchain worker from timestamp.
* Update Cargo.lock.
* Address review comments.
* Use latest patch version for futures.
* Add CLI parameter for offchain worker.
* Fix compilation.
* Fix test.
* Fix extrinsics format for tests.
* Fix RPC test.
* Bump spec version.
* Fix executive.
* Fix support macro.
* Address grumbles.
* Bump runtime
* Be a little safer with total issuance.
* PairT instead of _Pair
* Remove rev causing upset
* Remove fees stuff.
* Fix build (including tests)
* Update runtime, bump version
* Fix
* Handle gas refunds properly.
* Rename identifier
ala #2025
* Address grumbles
* New not-quite-linear-typing API
* Slimmer API
* More linear-type test fixes
* Fix tests
* Tidy
* Fix some grumbles
* Keep unchecked functions private
* Remove another less-than-safe currency function and ensure that
contracts module can never create cash.
* Address a few grumbles and fix tests
* use channels to implement basic import queue
* async justification import
* better conditional for is_done in tests
* reword the test for presence of link
* fix conditional
* trace instead of panic when no link present
* reword expectations when sending to importers
* fix
* debug justification import error
* update expectations
* use NumberFor
* nits
* add general description
* move error handling into closure
Went through the TODOs, removed a bunch, which are outdated or nothing more than a regular comment, documented a bunch more as actual tickets and made them FIXMEs and unified their structure (`FIXME #TICKETNO DESC` for local tickets, `FIXME: DESC LINK` for external tickets) for easier in-editor support. Further more remove unnecessary remarks and related old code that I noticed in that instance.
* Implement new inherent data
* Fixes compilation on wasm
* Fixes after rebase
* Switch back to generate inherent stuff by macro
* Update after rebase
* Apply suggestions from code review
Co-Authored-By: bkchr <bkchr@users.noreply.github.com>
* Fix compilation after rebase
* Address grumbles
* Remove `InherentDataProviders` from `Client`
* Update wasm files after rebase
* Address grumbles
* Fixes compilation after latest merge
* Last fix
* grandpa finality proof
* prove GrandpaApi::grandpa_authorities using parent block + some docs
* create justification when consensus data is changed
* generate justifications periodically
* test for ConsensusChanges
* node: remove grandpa authority flags
* node: exit-guard grandpa and aura spawned futures
* node: wait for futures to stop running on shutdown
* core: run connectivity tests on same ports
* core: pass on_exit future when starting aura and grandpa
* node: add issue number to todo
* core: fix aura and grandpa tests
* core: support broadcasting consensus message to all peers
* grandpa: remove liveness oracle
* node: always start grandpa on full nodes
* core: don't check for grandpa justifications on failed block imports
* core: fix network connectivity test
* make offline-reporting infrastructure more generic
* add a listener-trait for watching when the timestamp has been set
* prevent inclusion of empty offline reports
* add test for exclusion
* generate aura-offline reports
* ability to slash many times for being offline "multiple" times
* Logic for punishing validators for missing aura steps
* stub tests
* pave way for verification of timestamp vs slot
* alter aura import queue to wait for timestamp
* check timestamp matches seal
* do inherent check properly
* service compiles
* all tests compile
* test srml-aura logic
* aura tests pass
* everything builds
* some more final tweaks to block authorship for aura
* switch to manual delays before step
* restore substrate-consensus-aura to always std and address grumbles
* update some state roots in executor tests
* node-executor tests pass
* get most tests passing
* address grumbles
* core: make block justification optional
* runtime: update wasm binaries
* core: optionally pass justification on finalize_block
* finality-grandpa: add channel to trigger authority set changes
this will allow the `BlockImport` to trigger an authority set change when
importing a change block that provides a justification (when syncing)
* finality-grandpa: move finalize_block to free function
* finality-grandpa: add GrandpaOracle for auth set liveness checking
this will be used by `BlockImport` to check whether the authority set for a
given block is still live, if the authority set isn't live then importing a
change block requires a justification.
* finality-grandpa: store justification on finalized transition blocks
* finality-grandpa: check justification on authority set change blocks
* finality-grandpa: poll grandpa liveness oracle every 10 seconds
* finality-grandpa: spawn grandpa oracle in service setup
* core: support multiple subscriptions per consensus gossip topic
* finality-grandpa: create and verify justifications
* finality-grandpa: update to local branch of grandpa
* finality-grandpa: update to finality-grandpa v0.5.0
* finality-grandpa: move grandpa oracle code
* finality-grandpa: fix canonality check
* finality-grandpa: clean up error handling
* finality-grandpa: fix canonical_at_height
* finality-grandpa: fix tests
* runtime: update wasm binaries
* core: add tests for finalizing block with justification
* finality-grandpa: improve validation of justifications
* core: remove unused IncompleteJustification block import error
* core: test multiple subscribers for same consensus gossip topic
* Revert "finality-grandpa: improve validation of justifications"
This reverts commit 51eb2c58c2219801e876af6d6c9371bdd9ff2477.
* finality-grandpa: fix commit validation
* finality-grandpa: fix commit ancestry validation
* finality-grandpa: use grandpa v0.5.1
* finality-grandpa: add docs
* finality-grandpa: fix failing test
* finality-grandpa: only allow a pending authority set change per fork
* finality-grandpa: fix validator set transition test
* Rewrites `impl_runtime_apis!` macro as `proc-macro`
* Adds some documentation
* Require the `impl_runtime_apis` to use a path for accessing the trait
* Make the runtime implement `GetNodeBlockType`
* Moves first chunk of runtime api code into the `impl_runtime_apis` macro
This also renames `ClientWithApi` into `RuntimeApi`.
* Make `impl_runtime_apis` use `runtime` api version automatically
* `decl_runtime_apis` automatically adds `Block: BlockT` as generic parameter
* Remove function generic arguments in block builder api
* Remove some unnused stuff from the `decl_runtime_apis` macro
* Make `InherentData` working again
* Make `impl_runtime_apis!` implement the `RuntimeApi` side as well
* Make it compile again after rebasing with master
* Split `sr-api-macros` into multiple files
* Reimplement `decl_runtime_apis!` as proc_macro
* Use `decl_runtime_apis!` for `Core` as well and improve error reporting
* Adds documentation for `decl_runtime_apis!` and `impl_runtime_apis!`
* Move some code
* Adds compile fail tests
* Adds a test and fixes some bugs
* Make `impl_runtime_apis!` support `_` as parameter name
* Fixes build errors with wasm
* Wasm rebuild after master rebase
* Apply suggestions from code review
Co-Authored-By: bkchr <bkchr@users.noreply.github.com>
* Addresses some grumbles
* Adds test to ensure that method signatures need to match
* New wasm files
* core, node: use grandpa block import for locally sealed aura blocks
* core: impl DerefMut for FullComponents
* node: take grandpa_import_setup from service config
* add beginnings of SRML grandpa library
* get srml-grandpa compiling
* tests for srml-grandpa
* add optional session integration to grandpa SRML
* start integration into node runtime
* Allow extracting pending change from header digest
* Make it compile on wasm
* make tests compile again
* Move Authority Key fetching into service, simplify service factory construction
* Generalize Authority Consensus Setup system
* Add Authority Setup Docs
* Allow CLI params to be extensible
- move params to structopts
- split parsing and default command execution
- add custom config to node
- extended parsing of custom config
- extending params via structop's flatten
* Minor fixes on cli extension params:
- added docs
- re-add actual app name, rather than node-name
- make strategy and subcommand optional
* better cli params
* synchronize GRANDPA and normal node authorities
* Implement grandpa::network for gossip consensus
* run_grandpa in Node
* Fix missed merge error
* Integrate grandpa import queue
* more specific type def
* link up linkhalf and import block
* make grandpa future send
* get compiling
* Fix new params convention and license header
* get it running
* rebuild node runtime WASM
* change logging level
* Update node/cli/src/params.rs
Co-Authored-By: rphmeier <rphmeier@gmail.com>
* Update node/cli/src/params.rs
Co-Authored-By: rphmeier <rphmeier@gmail.com>
* Update node/cli/src/lib.rs
Co-Authored-By: rphmeier <rphmeier@gmail.com>
* Update node/runtime/src/lib.rs
Co-Authored-By: rphmeier <rphmeier@gmail.com>
* Update node/cli/src/lib.rs
Co-Authored-By: rphmeier <rphmeier@gmail.com>
* Clean up and Fixme for mutable config
* Move GrandpaService Integration into grandpa, feature gated but on per default
* Fixing grandpa runtime module test
* Update wasm runtime hashes for tests
* GRANDPA: use post-header hash when logging scheduled changes
* add an extra bit of logging to authorities
* fixing missing constrain
* remove old code
* move `NewAuthorities` to an event in srml-grandpa
* fix node-executor tests to use grandpa log
* Remove GossipConsensus from tests, use newly provided sync-feature, fixes tests
* Update to latest wasm runtimes
* address grumbles
* address grumbles
* only derive deserialize when using std
* Clean up use of Deserialize
* Move `initialise_block` into `Core` trait as it is crucial calling the API functions
* Switch to first version of new runtime API implementation
* Fixes bug in tests
* Reenable asserts
* Directly use the `TestAPI` in the tests
* Start improving the api traits
:100644 100644 898aadc7 49217199 M Cargo.lock
:100644 100644 61570436 465ed664 M core/client/src/backend.rs
:100644 100644 5d0c886b 64d710fd M core/client/src/block_builder.rs
:100644 100644 c447855e 5ecbe474 M core/client/src/client.rs
:100644 100644 139cef13 f90dbf3d M core/client/src/error.rs
:100644 100644 2800c503 3298e66a M core/client/src/runtime_api.rs
:100644 100644 affa1c5c 809b08bc M core/primitives/src/lib.rs
:100644 100644 2877dfa9 d5547413 M core/sr-api/Cargo.toml
:100644 100644 9a49784d 6a625a03 M core/sr-api/src/lib.rs
:100644 100644 7c28e1c7 a1a444a9 M core/sr-primitives/src/traits.rs
:100644 100644 2e113ab6 dcc01a6d M srml/metadata/Cargo.toml
:100644 100644 ea722a700809531a M srml/metadata/src/lib.rs
* Refactoring
* Move `sr-api` into client and more refactoring
* Fixes tests
* Some documentation and cleanup
* Fixes compilation after rebase
* More refactoring and more documentation
* Makes `substrate-client` compilable on `wasm`
On `wasm` it basically just exports the runtime api stuff.
* Fixes grumbles
* Updates wasm files after rebasing the master
* Remove TODO comment
* Remove whitespaces
* Fixes after rebasing master
* Another rebase, another fix commit
* Generalize BlockImport
- move ImportBlock, BlockOrigin, ImportResult into shared sr-primitives
- let Consensus provide and traits again
- update consensus traits to latest development
- implement traits on client::Client, test_client::TestClient
- update RHD to use the new import_block API
* Move ImportBlock into consensus-common
* Send import notification in aura tests
* Integrating aura into service
* Make Signatures more generic
* Aura Block Production with the given key
* run aura on the thread pool
* start at exact step start in aura
* Add needed wasm blob, in leiu of better solutions.
* Make API ids consistent with traits and bring upstream for sharing.
* Add decrease_free_balance to Balances module
* Encode `Metadata` once instead of two times
* Bitops include xor
* Upgrade key module.
* Default pages to somewhat bigger.
* Introduce upgrade key into node
* Add `Created` event