Skip to content
  1. Aug 30, 2019
    • Benjamin Kampmann's avatar
      Remove `client.backend` (#2960) · 409f5aa1
      Benjamin Kampmann authored
      
      
      * generalize tree_root to remove client.backend dependency
      
      * replace client.backend.blockchain.header with client.header
      
      * move used_state_cache_size into client info
      
      * Create intermediate Setup State. Fixes #1134
      
      * remove client.backend from finality proof
      
      * update node-template
      
      * move memory backend into test helper mode
      
      * move test helper into client
      
      * starting the big refactor, remove unused functions
      
      * apply_finality
      
      * apply_finality
      
      * replacing more .backend from environment with client directly
      
      * remove .backend from grandpa by using traits
      
      * remove .backend from babe
      
      * remove .backend from tests where it is not needed
      
      * remove .backend from tests
      
      * fixing tests
      
      * fixing tests
      
      * fixing more tests
      
      * fixing tests
      
      * fix all forks test
      
      * fix style
      
      * fixing unnecessary allocation
      
      * remove old test.
      
      * fix service docs
      
      * apply suggestion
      
      * minor clean ups
      
      * turns out the test-helper features actually is being used!
      
      * fixing line length.
      
      * fix line length
      
      * minor cleaning
      
      * Apply suggestions from code review
      
      thanks, @Basti
      
      Co-Authored-By: default avatarBastian Köcher <[email protected]>
      
      * address grumbles
      
      * simplify finalize block on client
      
      * move block back into inner function
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarDemiMarie-parity <[email protected]>
      
      * use as.ref instead of match
      
      * Update core/client/src/backend.rs
      
      Co-Authored-By: default avatarDemiMarie-parity <[email protected]>
      409f5aa1
  2. Aug 07, 2019
    • Arkadiy Paronyan's avatar
      Set uncles inherent (#3317) · d6eb5dd8
      Arkadiy Paronyan authored
      * Include uncles
      
      * Filter missing uncles
      
      * Moved inherent registration to a new crate
      
      * Ignore invalid inherent encoding
      d6eb5dd8
    • Gavin Wood's avatar
      Refactor key management (#3296) · ed61b1fd
      Gavin Wood authored
      
      
      * Add Call type to extensible transactions.
      
      Cleanup some naming
      
      * Merge Resource and BlockExhausted into just Exhausted
      
      * Fix
      
      * Another fix
      
      * Call
      
      * Some fixes
      
      * Fix srml tests.
      
      * Fix all tests.
      
      * Refactor crypto so each application of it has its own type.
      
      * Introduce new AuthorityProvider API into Aura
      
      This will eventually allow for dynamic determination of authority
      keys and avoid having to set them directly on CLI.
      
      * Introduce authority determinator for Babe.
      
      Experiment with modular consensus API.
      
      * Work in progress to introduce KeyTypeId and avoid polluting API
      with validator IDs
      
      * Finish up drafting imonline
      
      * Rework offchain workers API.
      
      * Rework API implementation.
      
      * Make it compile for wasm, simplify app_crypto.
      
      * Fix compilation of im-online.
      
      * Fix compilation of im-online.
      
      * Fix more compilation errors.
      
      * Make it compile.
      
      * Fixing tests.
      
      * Rewrite `keystore`
      
      * Fix session tests
      
      * Bring back `TryFrom`'s'
      
      * Fix `srml-grandpa`
      
      * Fix `srml-aura`
      
      * Fix consensus babe
      
      * More fixes
      
      * Make service generate keys from dev_seed
      
      * Build fixes
      
      * Remove offchain tests
      
      * More fixes and cleanups
      
      * Fixes finality grandpa
      
      * Fix `consensus-aura`
      
      * Fix cli
      
      * Fix `node-cli`
      
      * Fix chain_spec builder
      
      * Fix doc tests
      
      * Add authority getter for grandpa.
      
      * Test fix
      
      * Fixes
      
      * Make keystore accessible from the runtime
      
      * Move app crypto to its own crate
      
      * Update `Cargo.lock`
      
      * Make the crypto stuff usable from the runtime
      
      * Adds some runtime crypto tests
      
      * Use last finalized block for grandpa authority
      
      * Fix warning
      
      * Adds `SessionKeys` runtime api
      
      * Remove `FinalityPair` and `ConsensusPair`
      
      * Minor governance tweaks to get it inline with docs.
      
      * Make the governance be up to date with the docs.
      
      * Build fixes.
      
      * Generate the inital session keys
      
      * Failing keystore is a hard error
      
      * Make babe work again
      
      * Fix grandpa
      
      * Fix tests
      
      * Disable `keystore` in consensus critical stuff
      
      * Build fix.
      
      * ImOnline supports multiple authorities at once.
      
      * Update core/application-crypto/src/ed25519.rs
      
      * Merge branch 'master' into gav-in-progress
      
      * Remove unneeded code for now.
      
      * Some `session` testing
      
      * Support querying the public keys
      
      * Cleanup offchain
      
      * Remove warnings
      
      * More cleanup
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarBenjamin Kampmann <[email protected]>
      
      * More cleanups
      
      * JSONRPC API for setting keys.
      
      Also, rename traits::KeyStore* -> traits::BareCryptoStore*
      
      * Bad merge
      
      * Fix integration tests
      
      * Fix test build
      
      * Test fix
      
      * Fixes
      
      * Warnings
      
      * Another warning
      
      * Bump version.
      ed61b1fd
  3. Aug 03, 2019
  4. Jul 29, 2019
  5. Jul 23, 2019
    • DemiMarie-parity's avatar
      BABE Epochs (#3028) · a626ba78
      DemiMarie-parity authored and asynchronous rob's avatar asynchronous rob committed
      
      
      * Add `epoch` field to `SlotInfo`
      
      * Add slot calculations
      
      * More work on epochs in BABE
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarBastian Köcher <[email protected]>
      
      * Typo: `/` not `%` for division
      
      * Delete useless `LastSlotInEpoch::put(false)`
      
      * Bump `spec_version`
      
      * Make test suite pass again
      
      * Implement BABE epoch randomness signing
      
      * Try to fix compilation
      
      Currently causes a stack overflow in the compiler
      
      * Fix rustc stack overflow
      
      * Add missing `PartialEq` and `Eq` implementations
      
      * Fix compile errors in test suite
      
      * Another silly compile error
      
      * Clone `epoch`
      
      * Fix compile error in benchmarks
      
      * Implement `clone` for `Epoch`
      
      * Merge master
      
      * AUTHORING TEST PASSES!!!
      
      * Fix compilation
      
      * Bump `spec_version`
      
      * Fix compilation
      
      * Fix compilation (again)
      
      * Remove an outdated FIXME
      
      * Fix run.sh and move it to scripts/
      
      * Delete commented-out code
      
      * Fix documentation
      
      Co-Authored-By: default avatarAndré Silva <[email protected]>
      
      * Fix BABE initialization and refactor
      
      * Respond to review
      
      * typo
      
      * Remove useless data in `CheckedHeader::Deferred`
      
      * Remove `slot_number` from Epoch
      
      It is not needed, and only served to waste space and cause confusion.
      
      * Remove epoch from BABE digests
      
      * Move digest.rs to primitives
      
      * Fix incorrect warning names
      
      * Fix compile error
      
      * Consistent field naming for BABE digests
      
      * More compiler error fixex
      
      * Unbound variable
      
      * more compile errors
      
      * another compile error
      
      * Fix compile errors in runtime
      
      * another compile error
      
      * Another compile error
      
      * Fix wasm build
      
      * missing import
      
      * Fix more compile errors
      
      * yet another compile error
      
      * compile fix in test runtime
      
      * Fix and simplify the BABE runtime
      
      The BABE runtime was massively overcomplicated and also wrong.  It
      assumed it needed to:
      
      1. delay new authorities taking effect until the next epoch
      2. not delay emitting `Consensus` digests to mark epoch changes
      
      However, the first is handled by the `srml_session` crate, and the
      second is flat-out incorrect: `Consensus` digests take effect
      immediately.  Furthermore, `srml_babe` tried to duplicate the
      functionality of `srml_session::PeriodicSession`, but did it both
      clumsily and incorrectly.  Fortunately, the new code is simpler and far
      more likely to be correct.
      
      * Use `system` to get the test authorities
      
      The genesis block used by tests defines no authorities.  Only the test
      suite is affected.
      
      * Fix test runtime impl for BabeApi::epoch() with std
      
      * Fix compilation
      
      * Cached authorities are in the form of an epoch
      
      not a `Vec<AuthorityId>`.
      
      * `slots_per_epoch` is not fixed in general
      
      The BABE code previously assumed `slots_per_epoch` to be a constant,
      but that assumption is false in general.  Furthermore, removing this
      assumption also allows a lot of code to go away.
      
      * fix compile error
      
      * Implement epoch checker
      
      * Fix runtime compilation
      
      * fork-tree: add method for finding a node in the tree
      
      * babe: register epoch transitions in fork tree and validate them
      
      * fork-tree: add method for arbitrary pruning
      
      * Expose the queued validator set to SRML modules
      
      BABE needs to know not only what the current validator set is, but also
      what the next validator set will be.  Expose this to clients of the
      session module.
      
      * Bump hex-literal
      
      Hopefully this will fix the panic
      
      * babe: prune epoch change fork tree on finality
      
      * babe: validate epoch index on transition
      
      * babe: persist epoch changes tree
      
      * Fix compile error in tests
      
      * Fix compile error in tests
      
      * Another compile error in tests
      
      * Fix compilation of tests
      
      * core: move grandpa::is_descendent_of to client utils
      
      * babe: use is_descendent_of from client utils
      
      * babe: extract slot_number from pre_digest in import_block
      
      * Move BABE testsuite to its own file
      
      * Initial part of test code
      
      * Missing `WeightMultiplierUpdate` in test-runtime
      
      * bump `spec_version`
      
      * Add a test that a very bogus is rejected
      
      * Run the tests again
      
      * Fix compiler diagnostics
      
      * Bump `spec_version`
      
      * Initial infrastructure for mutation testing
      
      * Mutation testing of block import
      
      * babe: revert epoch changes in case of block import error
      
      * babe: fix logging target
      
      * babe: BabeBlockImport doesn't box inner BlockImport
      
      * babe: fix epoch check in block import
      
      * babe: populate authorities cache on block authorship
      
      * babe: remove unused functions
      
      * babe: use RANDOMNESS_LENGTH const
      
      * babe: remove unneeded config parameters
      
      * core: revert change to hex dependency version
      
      * cleanup gitignore
      
      * babe: add docs to aux_schema
      
      * babe: remove useless drops in tests
      
      * babe: remove annoying macos smart quotes
      
      * fork-tree: docs
      
      * fork-tree: add tests
      
      * babe: style
      
      * babe: rename randomness config variable
      
      * babe: remove randomness helper function
      
      * babe: style fixes
      
      * babe: add docs
      
      * babe: fix tests
      
      * node: bump spec_version
      
      * babe: fix tests
      a626ba78
  6. Jul 11, 2019
  7. Jun 14, 2019
    • cheme's avatar
      Add storage cache for child trie and notification internals (#2639) · 879e4a89
      cheme authored
      
      
      * 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: default avatarTomasz Drwięga <[email protected]>
      
      * Update core/client/src/notifications.rs
      
      Co-Authored-By: default avatarTomasz Drwięga <[email protected]>
      
      * Update core/client/src/notifications.rs
      
      Co-Authored-By: default avatarTomasz Drwięga <[email protected]>
      
      * Update core/client/src/notifications.rs
      
      Co-Authored-By: default avatarTomasz Drwięga <[email protected]>
      
      * 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
      879e4a89
  8. May 13, 2019
    • Svyatoslav Nikolsky's avatar
      Light GRANDPA import handler (#1669) · 2b241014
      Svyatoslav Nikolsky authored
      * GrandpaLightBlockImport
      
      * extract authorities in AuraVerifier
      
      * post-merge fix
      
      * restore authorities cache
      
      * license
      
      * new finality proof draft
      
      * generalized PendingJustifications
      
      * finality proof messages
      
      * fixed compilation
      
      * pass verifier to import_finality_proof
      
      * do not fetch remote proof from light import directly
      
      * FinalityProofProvider
      
      * fixed authorities cache test
      
      * restored finality proof tests
      
      * finality_proof docs
      
      * use DB backend in test client
      
      * justification_is_fetched_by_light_client_when_consensus_data_changes
      
      * restore justification_is_fetched_by_light_client_when_consensus_data_changes
      
      * some more tests
      
      * added authorities-related TODO
      
      * removed unneeded clear_finality_proof_requests field
      
      * truncated some long lines
      
      * more granular light import tests
      
      * only provide finality proof if it is generated by the requested set
      
      * post-merge fix
      
      * finality_proof_is_none_if_first_justification_is_generated_by_unknown_set
      
      * make light+grandpa test rely on finality proofs (instead of simple justifications)
      
      * empty_finality_proof_is_returned_to_light_client_when_authority_set_is_different
      
      * missing trait method impl
      
      * fixed proof-of-finality docs
      
      * one more doc fix
      
      * fix docs
      
      * initialize authorities cache (post-merge fix)
      
      * fixed cache initialization (post-merge fix)
      
      * post-fix merge: fix light + GRANDPA tests (bad way)
      
      * proper fix of empty_finality_proof_is_returned_to_light_client_when_authority_set_is_different
      
      * fixed easy grumbles
      
      * import finality proofs in BlockImportWorker thread
      
      * allow import of finality proofs for non-requested blocks
      
      * limit number of fragments in finality proof
      
      * GRANDPA post-merge fix
      
      * BABE: pos-merge fix
      2b241014
  9. May 10, 2019
    • Benjamin Kampmann's avatar
      Allow for customisation of chain selection systems (#2240) · 77c10cd4
      Benjamin Kampmann authored
      
      
      * move SelectChain trait out of client
      
      * Extend SelectChain, move longest chain implementation into it
      
      * Bring SelectChain into service
      
      * implement LongestChain SelectChain
      
      * implement longest chain for node
      
      * update Cargo.lock's
      
      * in between erroring tests
      
      * deprecate ::backend and ::import_lock
      
      * Remove unneded space
      
      Co-Authored-By: default avatargnunicorn <[email protected]>
      
      * Remove unneded space
      
      Co-Authored-By: default avatargnunicorn <[email protected]>
      
      * Fixes test compilation
      
      * remove todo
      
      * re-enable client test
      
      * add doc
      
      * fixing tests
      
      * Clarify SelectChain Interface, intended implementation and usage
      
      * minor components cleanups
      
      * minor cleanups
      
      * Update lock files
      
      * Implement cleaner interface for SelectChain
      
      * addressing comments
      
      * Updating tests
      
      * bump node runtime impl version
      
      * address grumbles
      77c10cd4
  10. Mar 06, 2019
  11. Feb 26, 2019
  12. Feb 25, 2019
    • Marcio Diaz's avatar
      Client provide uncles (#1609) · 7999743a
      Marcio Diaz authored
      
      * feat: add children function to backend
      
      * feat: add test for children hashes
      
      * feat: add uncles function to client
      
      * fix: improve uncles function adds few more tests
      
      * fix: remove children when reverting
      
      * fix: typo and spec version
      7999743a
  13. Feb 13, 2019
  14. Feb 11, 2019
    • Marcio Diaz's avatar
      Adds new execution strategy nativeElseWasm (#1546) · 5f4ebb47
      Marcio Diaz authored
      * fix: adds new execution strategy nativeElseWasm and replace nativeWhenPossible with it
      
      * feat: adds cmd line params for execution strategies
      
      * fix: uses of cmd line execution strategies
      
      * chore: remove white spaces
      
      * chore: remove println
      
      * chore: remove whitespace
      
      * fix: generating functions with context
      
      * feat: add function to generate with_context declarations
      
      * fix: add implementation for with_context function calls
      
      * fix: add execution context to call_api_at function
      
      * fix: making use of context to select strategy for block_builder
      
      * chore: cleaning up
      
      * fix: merging issues
      
      * fix tests
      
      * add wasm files
      
      * chore: small doc for context fields
      
      * chore: delete redundant docs
      
      * fix: use full path for ExecutionContext
      
      * fix: add context functions from inside fold_item_impl
      
      * chore: remove clone
      
      * fix: moving generative function to utils, remove unused imports
      
      * fix: add missing full path for ExecutionContext
      
      * fix: merge issues
      
      * update wasm files
      
      * fix: update to keep up with changes in master
      
      * chore: remove unused functions, clean up
      
      * fix test
      
      * fix grumbles
      
      * fix: add more tests
      
      * fix: some refactorings
      
      * feat: add execution strategy to call
      
      * chore: small improvements
      
      * fix: add message to panic
      
      * fix tests
      5f4ebb47
  15. Feb 06, 2019
    • Bastian Köcher's avatar
      Make API backwards compatible with CC (#1697) · 95e9be2c
      Bastian Köcher authored
      * Rework how a runtime api calls into the runtime
      
      Now we generate a default implementation for each api call that calls
      a generated method `method_runtime_api_impl`. This newly generated
      method is the one that will be implemented by the `impl_runtime_apis`
      macro in the runtime for the client side.
      
      * Support `changed_in` to change runtime api function signatures
      
      * Update documentation
      
      * Fixes tests
      
      * Implement checking the api version with a predicate
      
      * Make the implementation backwards compatible with CC
      
      * Update wasm files after merge
      
      * Check for wasm runtime differences by building master and current branch
      
      * Update spec_version and wasm files
      
      * Fixes
      
      * Revert my changes
      
      * Remove `patch.crates-io` from test-runtime
      v0.10
      95e9be2c
  16. Jan 16, 2019
    • Marcio Diaz's avatar
      Make use of NLL in client crate (#1436) · 5d454b71
      Marcio Diaz authored
      * 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
      5d454b71
  17. Jan 08, 2019
  18. Nov 30, 2018
    • Bastian Köcher's avatar
      Rewrite `impl_runtime_apis!` and `decl_runtime_apis!` as proc-macro (#1174) · 5651ac71
      Bastian Köcher authored
      
      
      * 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: default avatarbkchr <[email protected]>
      
      * Addresses some grumbles
      
      * Adds test to ensure that method signatures need to match
      
      * New wasm files
      5651ac71
  19. Nov 26, 2018
    • asynchronous rob's avatar
      GRANDPA: add commit messages (#1151) · 66c743a0
      asynchronous rob authored
      
      
      * get compiling with latest version of grandpa
      
      * generalize UntilImported to prepare for waiting for commit message targets
      
      * extract until_imported out to own module
      
      * logic for blocking commits until enough blocks imported
      
      * add tests for commit message blocking logic
      
      * pass through commit mesage round number as well
      
      * extract communication streams to own module
      
      * add Error implementation for ExitOrError
      
      * introduce stream adapter for checking commit messages
      
      * output sink for commits
      
      * implement the unimplemented
      
      * remove extra line
      
      * update to latest version of grandpa api
      
      * update finality-grandpa to 0.4.0
      
      * Use filter_map earlier when checking incoming commits messages
      
      Co-Authored-By: default avatarrphmeier <[email protected]>
      
      * address some grumbles
      66c743a0
  20. Nov 13, 2018
    • Bastian Köcher's avatar
      Implement runtime api client side directly in the runtime (#1094) · 0cc0a793
      Bastian Köcher authored
      * 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 ea722a70 0809531a 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
      0cc0a793
  21. Nov 12, 2018
    • Luke Schoen's avatar
      docs: Extends #999. Remove disused package readmes. Rename to sr-metadata. Fix... · 470be19a
      Luke Schoen authored
      docs: Extends #999. Remove disused package readmes. Rename to sr-metadata. Fix Readme Rustdoc names (#1016)
      
      * 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
      470be19a
  22. Oct 27, 2018
    • Benjamin Kampmann's avatar
      Consensus Engines Implementation: Aura (#911) · 101d673c
      Benjamin Kampmann authored
      * 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
      101d673c
  23. Oct 26, 2018
  24. Oct 16, 2018
    • Benjamin Kampmann's avatar
      Generalize the Consensus Infrastructure (#883) · 14ff8f9e
      Benjamin Kampmann authored
      * Split out Consensus
      * Supply ImportQueue through network-service
        - simplify ImportQueue.import_blocks
        - remove Deadlock on import_block
        - Adding Verifier-Trait
        - Implement import_queue provisioning in service; allow cli to import
      * Allow to actually customize import queue
      * Consensus Gossip: Cache Message hash per Topic
      14ff8f9e
  25. Oct 10, 2018
  26. Oct 09, 2018
    • Bastian Köcher's avatar
      Refactor the runtime API to use traits. (#878) · 3f467478
      Bastian Köcher authored
      * Add missing `As` imports.
      
      * Adds new API traits that will be used by the client and runtime
      
      * Switch consensus to new API's
      
      * Switches transaction-pool to new API's
      
      * Move runtime api stuff into its own crate
      
      * Adds `impl_apis!` macro for implementing the new API traits
      
      * Make `metadata` return directly a blob
      
      * Runtime replace `impl_stubs!` with `impl_apis!`
      
      * Switches to none feature based approach for declaring the different API traits
      
      * Fixes compilation error
      
      * Fixes errors
      
      * Make the `decl_apis!` trait usable from the outside
      
      * Make the `test-client` use the new API traits
      
      * Remove last `impl_stubs!` bits and move some of them into wasm executor for tests
      
      * A little bit more documentation
      3f467478
  27. Sep 27, 2018
  28. Sep 26, 2018
    • snd's avatar
      best_containing operations (issue 603) (#740) · 6c7b45e9
      snd authored and asynchronous rob's avatar asynchronous rob committed
      * 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
      6c7b45e9
  29. Sep 25, 2018
    • Gav Wood's avatar
      Switch to shiny new fast, RLP-less trie (#795) · e4c07ba5
      Gav Wood authored and Arkadiy Paronyan's avatar Arkadiy Paronyan committed
      * Bump codec
      
      * Fix tests
      
      * Patricia trie builds
      
      * Introduce trie
      
      * Some yak shaving.
      
      * Some fixes
      
      * Remove RLP ref
      
      * Fixes
      
      * It builds!
      
      * Some tests fixed
      
      * Another test fix
      
      * Rejig more hashes
      
      * substrate-trie::iterator_works test
      
      * Update lock
      
      * Polish
      
      * Docs
      
      * Undo incorrect "fix" for tests
      
      * Fix nits
      e4c07ba5
  30. Sep 24, 2018
    • asynchronous rob's avatar
      Finality notification streams (#791) · 54f22b63
      asynchronous rob authored and Arkadiy Paronyan's avatar Arkadiy Paronyan committed
      * 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
      54f22b63
  31. Sep 20, 2018
    • Bastian Köcher's avatar
      Replace JSON metadata with custom metadata structures (#766) · 64fa981d
      Bastian Köcher authored
      * Move module metadata from json string to custom metadata
      
      * Revisit the metadata structures
      
      1. Move the structures into the metadata crate.
      2. Switch to using Cow/MaybeOwnedArray to support Encode/Decode
      
      * Adapt to new metadata structures
      
      * Convert event json metadata to new metadata structures
      
      * Convert storage json metadata to new metadata structures
      
      * Convert runtime metadata from json to new metadata structs
      
      * Implements new metadata structures in client and runtime
      
      * Fixes errors on `no_std`
      
      * Fixes errors after rebasing master
      
      * Do not use `Cow` anymore in metadata
      
      Also replace `String` with our own type definition `StringBuf`.
      This fixes compilation on `no_std`.
      
      * Wrap `RuntimeMetadata` in `RuntimeMetadataVersioned` to support versioning
      
      * Move metadata into `srml` and make core unaware of the implementation
      64fa981d
  32. Sep 18, 2018
    • Svyatoslav Nikolsky's avatar
      Light friendly storage tracking: changes trie + extending over ranges (#628) · 95e017dd
      Svyatoslav Nikolsky authored
      * changes_trie
      
      * changs_trie: continue
      
      * changes_trie: adding tests
      
      * fixed TODO
      
      * removed obsolete ExtrinsicChanges
      
      * encodable ChangesTrieConfiguration
      
      * removed polkadot fle
      
      * fixed grumbles
      
      * ext_storage_changes_root returns u32
      
      * moved changes trie root to digest
      
      * removed commented code
      
      * read storage values from native code
      
      * fixed grumbles
      
      * fixed grumbles
      
      * missing comma
      95e017dd
  33. Sep 12, 2018
    • Gav Wood's avatar
      Phase 1 of repo reorg (#719) · bc276f3c
      Gav Wood authored and Arkadiy Paronyan's avatar Arkadiy Paronyan committed
      * 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
      bc276f3c
  34. Sep 04, 2018
  35. Aug 15, 2018
    • Gav Wood's avatar
      Refactor/substrate state machine generic (#553) · 690f52f5
      Gav Wood authored and asynchronous rob's avatar asynchronous rob committed
      * Genric over hasher
      
      * WIP start adding NodeCodec
      
      * Add codec to TrieBackend
      
      * Typechecks
      
      * Fix error type
      
      * Cleanup
      
      * Tests build (and fail)
      
      * Fix tests: don't use MemoryDB::default()
      
      * Lockfile
      
      * Address grumbles
      
      * Teach environmental! about generics
      
      * Add Finder artifacts
      
      * whitespace
      
      * Add a toy impl of Hasher and plug it in to Externalities
      
      * Use `uint` and `fixed-hash` from `parity-common`
      Remove unused U512
      Add test to ensure H256 impls heapsizeof
      
      * lock file updates
      
      * Make hashes Encodable/Decodable
      
      * lock file updates
      
      * Impl FromIterator for TestExternalities so we can collect() and use map!
      
      * Use rustc-hex from crates
      Use rlp from master so dependencies do not mess up the scope
      
      * Fix tests in runtime-io
      
      * lockfile shenanigans
      
      * Add a BlakeHasher impl
      
      * Use BlakeHasher in runtime-io
      
      * lockfile updates
      
      * ws
      
      * Add a Blake2/RLP-flavoured NodeCodec
      
      * Use Blake-flavoured Hasher and NodeCodec
      
      * lockfile
      
      * Implement PartialEq and Default for TestExternalities
      
      * Add note about limitations of environmental!
      
      * Make it compile, but this is probably broken
      
      * Derive Debug so tests in executor can work
      
      * Make executor use BlakeHasher
      
      * ws
      
      * WIP make client generic
      
      * typechecks
      
      * cleanup
      
      * client tests pass
      
      * Fix client/db
      
      * cleanup
      
      * Fix network
      
      * Fix rpc
      
      * Fix service
      
      * Make TestExternalities work better au lieu d'un HashMap
      
      * Fix tests in council
      
      * Fix tests in contract
      
      * Fix tests in council
      
      * Fix democracy
      
      * Add comment about odd-looking reexports in tests
      
      * Don't need to load branch
      
      * Fix staking
      
      * Fix session
      
      * Some polkadot fixes and lockfile
      
      * Fix executive
      
      * fixup lockfile
      
      * Fix polkadot/api
      
      * Fix polkadot/service
      
      * Fix polkadot/runtime tests
      
      * Fix tests in test-runtime
      
      * Test fixes
      
      * Fix missing component in the `std` feature
      
      * Use PhantomData and Result from core
      
      * Fix paths
      Use core
      
      * load heapsize on wasm
      
      * implement `HeapSizeOf` for wasm
      
      * Add toy impl of `blake2_256` for no_std
      
      * lockfile
      
      * Use kvdb* from parity-common and fix errors
      
      * rebuilt lockfile
      
      * Add dummy impl of `on_advance_round` for rhododendron::Context
      
      * Fix build after merge
      
      * Add HeapSizeOf bound where needed
      
      * Sort out dependencies for no_std
      
      * Add HeapSizeOf bound where needed
      
      * use temp branch pending PR merges
      
      * Remove unneeded tests
      
      * Lock file and wasm artifacts
      
      * lockfile
      
      * Use magic commit for libp2p
      
      * Cleanup
      
      * Implement blake2_256 for no_std
      
      * Back on parity-common master
      
      * missing type params
      
      * Update Cargo.lock
      
      * whitespace
      
      * Rename concrete Rlp node codec "RlpCodec" and use everywhere
      Implement a Keccak-flavoured Rlp NodeCodec and use everywhere
      Add a KeccakHasher
      
      * Switch to use KeccakHasher
      
      * Lock file and runtimes
      
      * fixup lockfile
      
      * Fix outstanding issue using concrete types (thanks @gnunicorn)
      
      * Cleanup
      
      * More cleanup
      
      * Comment out Blake2 Hasher
      
      * implement ext_keccak256
      
      * Address todo: FetchChecker is generic
      
      * all tests passing
      690f52f5
  36. Aug 06, 2018
  37. Aug 01, 2018
    • Tomasz Drwięga's avatar
      Storage changes subscription (#464) · 757a721b
      Tomasz Drwięga authored and Svyatoslav Nikolsky's avatar Svyatoslav Nikolsky committed
      * Initial implementation of storage events.
      
      * Attaching storage events.
      
      * Expose storage modification stream over RPC.
      
      * Use FNV for hashing small keys.
      
      * Fix and add tests.
      
      * Swap alias and RPC name.
      
      * Fix demo.
      
      * Addressing review grumbles.
      
      * Fix comment.
      757a721b
  38. Jul 14, 2018
    • Arkadiy Paronyan's avatar
      Split polkadot-service (#310) · 62b28322
      Arkadiy Paronyan authored
      * Substrate service
      
      * Splitting polkadot service
      
      * Specialised components
      
      * Specialised components
      
      * Docs and style
      
      * Docs and style
      
      * Final touches
      
      * Added db key assertion
      62b28322