* BlockAuthorityId convenience type
* Rename AuthorityId -> Ed25519AuthorityId to make it more precise
* Generalize AuthorityId up to substrate-client
* Fix in client-db
* rename: BlockAuthorityId -> AuthorityIdFor
* typo: should be digest item
* Fix test-runtime authorityId mismatch
One states that AuthorityId is u64 while the other states that it's Ed25519AuthorityId.
* Fix more u64 - Ed25519AuthorityId mismatch
* Fix compile of most of the srml modules
* Continue to pin aura and grandpa with ed25519 and fix compile
* Add MaybeHash trait
* Fix node-runtime compile
* Fix network tests
* 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
* Revert "start to refactor block import wrapper a bit"
This reverts commit b919de49e1a82422a0870b66100832d531174771.
* Refactor grandpa stuff to get tests almost compiling
* Fixes after rebase
* Fixes merge compile errors
* build CHT for changes tries roots
* collect chnages tries roots proof in key_changes_proof
* flush check_changes_proof
* fixed compilation
* LightDataChecker now has a ref to the blockchain
* continue passing proofs
* new light db tests
* more CHT tests
* more tests for key changes proof when headers are missing
* lost files
* 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
* docs: Remove safe-mix since is no longer local dependency
* docs: Fix existing packages link. Still only includes Substrate Core
* docs: Remove empty package Readmes. Remove old docs links. Rename to Readme
* docs: Remove link to old docs
* misc: Merge latest from master. Renaem to sr-metadata. Fix list of RustDoc package names
* Rename substrate-metadata to sr-metadata, since it is in the "srml" subdirectory
* Change example to use package name that opens all packages in RustDocs
* Fix list of packages names that are available to open in RustDocs
* fix typo
* fix ordering of CLI options and add missing backslash
* [core/primitives] Update crunchy 0.1 => 0.2
* [core/primitives] Update fixed-hash 0.2 => 0.3.0-beta
* [core/primitives] Update `uint` 0.4 => 0.5.0-beta
* [core/state-machine] Fix errors emerged by fixed-hash update
* [core/state-db] Fix errors that emerged from fixed-hash update
* [core/sr-io] Fix errors that emerged from the fixed-hash update
* [core/trie] Fix errors emerged from fixed-hash updates
* [core/trie] Make use of new Hash::as_fixed_bytes_mut method in tests
* [core/sr-primitives] Fix errors emerged from updating fixed-hash
* [core/executor] Fix errors that emerged from fixed-hash update
* [core/test-runtime] Fix errors that emerged from updating fixed-hash
* [core/test-runtime] Fix an error that emerged from fixed-hash update
* [core/transaction-pool] Fix errors that emerged from updating fixed-hash
* Add From<u64> impl for hash types defined in core/primitives
* [core/client/db] Fix errors that emerged from fixed-hash update
* [core/{client/network/rpc}]: Fix errors emerged by fixed-hash update
* [node/{cli/executor/runtime}]: Fix errors emerged by updating fixed-hash
* [core/network]: Fix bug in parsing constant str
* Update Cargo.lock
- Add crunchy 0.2.1
- fixed-hash 0.2.2 => 0.3.0-beta.3
- Add static-assertions 0.2.5
- uint 0.4.1 => 0.5.0-beta.1
* [core/primitives]: Add fixed-hash/rustc-hex feature for FromStr impl
* [core/primitives] No longer provide From<u64> impl for hash types if byteorder support is not enabled
* [core/primitives] Revert to using From impl again in primitives tests
* [core/..] Fix some bugs that emerged by recent fixed-hash updates
* Update a bunch of Cargo.lock files
* [core/state-db] Re-add whitespace between attr and extern crate/mod
* [core/primitives] Fix bug in From<u64> impl for hash types using the wrong feature guard
* 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
* Add Assets module
* Fixes
* Fix
* Update comments
* Support `GenesisConfig` without any fields
Fixes: #923
* Do not generate an empty `GenesisConfig`, instead generate no `GenesisConfig`
* Adds new `ProvideInherent` trait
Also implements the new trait for `srml/consensus` and `srml/timestamp`.
* Adds `impl_outer_inherent!` macro
* Reexport macros from `alloc`
* Introduce `RuntimeString` and fix `ProvideInherent` on `no_std`
* Replace `VersionString` with `RuntimeString`
* Improvements for `impl_outer_inherent!`
* Make `construct_runtime!` support `impl_outer_inherent!`
* Fixes after rebase
* Whitespace
* pass correct header column to read_meta again
fixes#826
* make COLUMN_META exist in a single place
* pass COLUMN_META as arg for more consistency with other db utils
* remove unused import
* add stub for Client.best_chain_containing_block_hash
* add fn blockchain::Backend::leaf_hashes
* fix typo
* sketch out Client.best_chain_containing_block_hash
* fix indent
* Blockchain.leaf_hashes -> Blockchain.leaves
* add unimplemented! stub impls for Blockchain.leaves
* start impl of Blockchain.leaves for in-memory client db
* Client.best_chain_containing...: check canonical first and make compile
* first rough attempt at maintaining leaf list in in-memory db
* fix tab indent
* add test best_chain_containing_single_block
* add failing test best_chain_containing_with_fork
* pub use client::blockchain; in test-client to prevent circular dep in client tests
* best_chain_containing_with_single_block: improve and test leaves
* far improve in-memory Backend::leaves impl
* test blockchain::Backend::leaves more thoroughly
* handle more edge cases in blockchain::Backend::leaves impl for in memory
* fix test best_chain_containing_with_fork (two distinct test blocks had same hash)
* make best_chain_containing_block_hash pass existing tests
* improve docstring for Blockchain::leaves
* Client.best_chain_containing: some cleanup. support max_block_number
* best_chain_containing: remove broken outcommented fast check for best = canonical
* remove blank line
* best_block_containing: return None if target_hash not found
* best_chain_containing: add unreachable! at end of function
* improve tests for best_chain_containing
* renames
* more elaborate test scenario for best_containing
* best_containing: fix restriction of search through maybe_max_number
* best_containing: tests for restriction of search
* get rid of unnecessary clones
* replace Client::new_in_mem by new_with_backend which is useful for testing backends
* add test_client::new_with_backend for testing different backend impls
* add test for in_mem::Backend::leaves
* remove unused imports
* in_mem test_leaves: simplify
* flesh out tests for in_mem leaves impl
* remove tests for leaves from client which are now covered in implementing module
* improve comment
* add Client.new_in_mem again
* unwrap in test_client::new_with_backend
* make test_client::BlockBuilderExt work not just with in-mem backend
* make test client ext not just work with in mem backend
* add failing Backend.leaves test for client-db
* update Cargo.lock
* replace KeccakHasher with Blake2Hasher
* refactor
address grumble https://github.com/paritytech/substrate/pull/740#discussion_r217822862
* refactor using NumberFor
address grumble https://github.com/paritytech/substrate/pull/740#discussion_r217823341
* add test that exposes possible problem
* update docstring for Client.best_containing
* extract test for Backend.leaves for reuse
* improve test blockchain_header_and_hash_return_blocks_from_canonical_chain_given_block_numbers
* extract test_blockchain_query_by_number_gets_canonical to easily test multiple impls
* remove whitespace
* remove todo
* Client.best_containing: pre-empt search loop when target in canonical
* best_containing: prevent race condition by holding import lock
* add todo
* extract leaf list update code into function
* add comment
* client-db: use in-memory-kvdb for tests
* use BTreeSet to store leaves for in-mem which is faster and simpler
* add docstring
* add comments and fix formatting
* add initial raw version of LeafSet
* remove Client::update_leaves which has been superceded by LeafSet
* use LeafSet in in-mem backend
* keccak -> blake2
* don't reexport codec traits in primitives
addresses https://github.com/paritytech/substrate/pull/740#discussion_r219538185
* fix rebase mistake
* improve LeafSet and use it in state-db
* correct Transfer nonces to fix ApplyExtinsicFailed(Stale)
* use given backend in canoncal test
* kill dead tree-route code in util
* fix warnings
* tests for leafset
* reorganizations in in_mem backend
* fix reorganization canon block logic
* DB commit and safe reversion on write error
* fix style nits
* state-db: typo fixes
* use fmt::Result for 'fmt'
* state-db: typo fixes
* state-db: use the same pattern to pass the parameter
* state-db: follow the same style
* state pruning after window even when nothing is finalized
* rename and alter canonicalization delay
* fix constant
* address grumbles
* add comment on canonicality vs finality
* finalization for in_mem
* fetch last finalized block
* pruning: use canonical term instead of final
* finalize blocks in full node
* begin to port light client DB
* add tree-route
* keep number index consistent in full nodes
* fix tests
* disable cache and finish porting light client
* add AsMut to system module
* final leaf is always best
* fix all tests
* Fix comment and trace
* removed unused Into call
* add comment on behavior of `finalize_block`
* move `tree_route` to client common
* tree_route tests
* return slices in TreeRoute
* apply finality up to parent
* add `finalize_block` call
* adjust formatting
* finality notifications and add last finalized block to chain info
* exhaustive match and comments
* fix sync tests by using non-instant finality
* finalization for in_mem
* fetch last finalized block
* pruning: use canonical term instead of final
* finalize blocks in full node
* begin to port light client DB
* add tree-route
* keep number index consistent in full nodes
* fix tests
* disable cache and finish porting light client
* add AsMut to system module
* final leaf is always best
* fix all tests
* Fix comment and trace
* removed unused Into call
* add comment on behavior of `finalize_block`
* Remove unneeded script
* Rename Substrate Demo -> Substrate
* Rename demo -> node
* Build wasm from last rename.
* Merge ed25519 into substrate-primitives
* Minor tweak
* Rename substrate -> core
* Move substrate-runtime-support to core/runtime/support
* Rename/move substrate-runtime-version
* Move codec up a level
* Rename substrate-codec -> parity-codec
* Move environmental up a level
* Move pwasm-* up to top, ready for removal
* Remove requirement of s-r-support from s-r-primitives
* Move core/runtime/primitives into core/runtime-primitives
* Remove s-r-support dep from s-r-version
* Remove dep of s-r-support from bft
* Remove dep of s-r-support from node/consensus
* Sever all other core deps from s-r-support
* Forgot the no_std directive
* Rename non-SRML modules to sr-* to avoid match clashes
* Move runtime/* to srml/*
* Rename substrate-runtime-* -> srml-*
* Move srml to top-level