* Initial implementation, some redundancy is awkward and there is
some useless computation (but there is a pending pr for that).
Next are tests.
* Minimal tests and fix extend child.
* implement iterator for change child trie.
* prune child trie.
* Fix pruning test.
* bump spec version.
* Avoid empty child trie (could also be checked before)
* tabs.
* Fix child digest overriding each others.
* Restore doc deleted on merge.
* Check correct child value on extrinsics build.
* Revert runtime version update.
* Using child storage, (srml-support only), test failing .
* fix simple tests.
* Enumerable by requiring owned struct (previous form only allow
&'static).
Broken tests are from genesis init.
* implement for_child_keys_with_prefix
* indent
* clear_child_prefix fix.
* clear_child_prefix fix 2.
* fix for storage_impl, if/when allowing child and not child this could be
reverted.
* Fix lot of urlinked child genesis, still need to look upon actual
genesis srml module code.
Probably still a lot of broken code needing debugging.
* switch well_known_key to their associated module child trie.
Fix a genesis init (balance).
Complete some testing.
Comment some tests before using.
* fixing test runtime child keys
* latest commit fix broken genesis init
* fix system balances child name.
* Important fix: storage_root from test externalities need children (it is
already the case for ext).
* executive root with child calculation
* Avoid empty trie on test ext.
* Symetric removal of key for system.
* commenting changes related tests.
* Remove child module specifics.
* fix issues.
* fix some formatting
* fix bench and bump runtime
* Remove extend_storage_overlays, assimilate_storage do the same as is
proper considering srml macro.
* Fix warning for assimilate.
* Removing kill as they do not impact any test cases.
* Use tuple of storage map instead of two parameters. This changes the
behavior of decl_storage genesis build closure (breaking api).
* Do not use build storage before assimilate.
* fix error
* Update core/state-machine/src/backend.rs
* child cache, and test failing notifications
* fix tests and no listen child on top wildcard
* remove useless method
* bump impl version
* Update core/client/src/notifications.rs
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* Update core/client/src/notifications.rs
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* Update core/client/src/notifications.rs
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* Update core/client/src/notifications.rs
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* factoring notification methods to remove some redundant code.
* test child sub removal
* HStorage implementation and some type alias.
* Remove HStorage cache: does not fit
* fix removal
* Make cache use byte length (shared) instead of number of kv
* Make use of hashes cache in rpc
* applying ratio on different lru caches
* Fix format
* break a line
* Remove per element overhead of lru cache.
* typo
* Drop import_lock from client, move it into backend, impl default version via static mutex
* still need to allow depcretion because of client.backend
* additional docs
* Remove default impl of get_import_lock, impl on instances
* Bump parking_lot to 0.8.0 accross the board
* State pinning in client
* Canonicalization queue
* Fixed prioritization queue
* possible fix of "hash mismatch"
* Check for pinned discarded states
* Release state before finalization
* Style
* Style
* Remove As usage from CHT
* Remove As usage from CHT (continue)
* Restrict BN <-> int conversions in CT
* more BN <-> u64 conversions removed
* upd spec_version
* Apply suggestions from code review
Co-Authored-By: Gavin Wood <github@gavwood.com>
* Apply suggestions from code review
Co-Authored-By: Gavin Wood <github@gavwood.com>
* more grumbles
* fix last grumbles + compilation
* too long lines
* too long lines
* Move authorities interface from Core to consensus
f
* notify all caches of block insert + create with up-to-date best_fin
* merged authorities_are_cached from light_grandpa_import2
* Add ProvideCache trait
* Create helper function for 'get_cache'
* Fix some formatting
* Bump impl version
* Resolve wasm conflicts
* Apply review comments
* Use try_for_each
* Move authorities interface from Core to consensus
f
* notify all caches of block insert + create with up-to-date best_fin
* merged authorities_are_cached from light_grandpa_import2
* Add ProvideCache trait
* Create helper function for 'get_cache'
* Fix some formatting
* Bump impl version
* Resolve wasm conflicts
* Apply review comments
* Use try_for_each
* Move authorities interface from Core to consensus
f
* notify all caches of block insert + create with up-to-date best_fin
* merged authorities_are_cached from light_grandpa_import2
* Add ProvideCache trait
* Create helper function for 'get_cache'
* Fix some formatting
* Bump impl version
* Resolve wasm conflicts
* Apply review comments
* Use try_for_each
* Increment impl_version
* Update lib.rs
* Refactor decl_storage a bit to allow easier impl of linked map.
* A bunch of refactorings for storage generation.
- Rename StorageMap and ChildrenStorageMap to avoid confusion with generator::StorageMap.
- Separate implementation from the procedural macro code to clean it up.
- Make sure that genesis is initialised using the `StorageValue/StorageMap`
generated implementations instead of going RAW.
* WiP: Writing test.
* Basic implementation.
* Implement enumeration.
* Fix non-std issues.
* fix warning
* Fix test-client.
* Address review grumbles - part 1
* Avoid cloning the key, relax Storage requirements.
* Rebuild runtime.
* Remove dangling todo.
* Refactor head setting operation to a separate function
* Fix commit issue and implement set_head standalone in db
* Add standalone set head operations
* Address grumbles
* Change number_and_hash_to_lookup key in light mod to take reference
* Fix bug in set head commit
* Add a convenience fn
* Fix a deadlock
* Fix missing argument
* make genesis state available on light client
* RemoteOrLocalCallExecutor
* code_is_executed_locally_or_remotely
* OnDemandOrGenesisState tests
* some comments
* Add ClientImportOperation and remove an unused enum
* set_aux to insert_aux so that it can be called multiple times
* [WIP] All basic designs of lock_import_and_run
* [WIP] `apply_block` and `apply_aux` implementation
* Update client db with the new interface
* Always make sure we reset importing_block back to None
* Address grumbles
`apply_block` should be pub
* Add comments on insert_aux
* Fix compile
* fix: set edition to 2018 in Cargo.toml.
* fix: refactor function to make use of NLL.
* fix: result of applying 'cargo fix --edition' command.
* fix: removes extern crate
* fix: remove module uses from lib.rs
* fix: tests imports
* 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
* Implement a non generic version of child delta trie
* Use delta_trie_root in state_machine
* Expand InMemory backend to support multi-storage
* Create Consolidate trait
* Fix all crate compile and remove unused OverlayedChanges::drain
* Implement child storage root support and overlay changes
* Add child storage reader
* Add child storage writer
* Implement child storage cleaning
* Fix light backend compile
* Add all required ext functions for wasm executor
* Add ext def to io
* Add all io functions
* Fix nostd compile
* Add simple test
* Remove unnecessary vec copy in child_storage_root_transaction
* Use values_mut/for_each to make it shorter
* Use extend to shorter a for loop
* Move record_all_keys to trie so it's easier to generic them later
* space -> tab
* Remove to_owned in debug format
* Clean out all to_owned
* Break debug_trace to multiple lines
* Remove 0..
* UserError copy/paste typo
* Replace Vec::from_raw_parts by slice::from_raw_parts
* Use iter::empty()
* Wrap some long lines
* Wrap a missing line
* Remove unnecessary map
https://github.com/paritytech/substrate/pull/856#discussion_r226222663
* Call ext_free after from_raw_parts
* Fix tests in other crates
* 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