Skip to content
  1. Dec 10, 2018
    • Bastian Köcher's avatar
      Make runtime api generate version and identifier information (#1226) · df338c24
      Bastian Köcher authored
      * Make `decl_runtime_apis!` implement `RuntimeApiInfo` for all runtime
      apis
      
      * Make the runtime side generate the info constants as well
      
      * Make `RuntimeApiInfo` implementation use the correct generics
      
      * Adds a test for the runtime api info stuff
      
      * Remove duplicated code by using block from `test-client`
      
      * Adds `compile_fail` tests for `api_version`
      
      * Adds documentation for `api_version`
      
      * Make `impl_runtime_apis!` generate `RUNTIME_API_VERSIONS`
      
      * Update documentation and tests for `RUNTIME_API_VERSIONS`
      
      * Implement `has_api` by using the `RuntimeApiInfo`
      
      * Make `impl_runtime_apis` check that trait identifiers are unique
      
      * Prefix all runtime api function with the corresponding trait
      
      So `execute_block` will be called `Core_execute_block`.
      This makes it possible to have traits implement a function with the
      same name.
      
      * Rebase master
      
      * Update after master rebase
      df338c24
  2. Dec 09, 2018
  3. Dec 08, 2018
    • André Silva's avatar
      core: fix max depth handling of best_containing (#1234) · 8b4ff729
      André Silva authored and asynchronous rob's avatar asynchronous rob committed
      8b4ff729
    • André Silva's avatar
      Grandpa validator set handoff justification (#1190) · 8a19aa54
      André Silva authored
      * 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 51eb2c58.
      
      * 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
      8a19aa54
  4. Dec 03, 2018
  5. 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
  6. Nov 23, 2018
  7. Nov 19, 2018
  8. Nov 16, 2018
    • Bastian Köcher's avatar
      Try to get grandpa tests compiling again (#1121) · baf7cf63
      Bastian Köcher authored
      * 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
      baf7cf63
  9. Nov 15, 2018
  10. Nov 14, 2018
    • Svyatoslav Nikolsky's avatar
      Fetch changes trie roots + CHT-based proof for these roots (#896) · 79d461ad
      Svyatoslav Nikolsky authored
      * 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
      79d461ad
    • Shawn Tabrizi's avatar
      Clean up justification (#1111) · c10123e4
      Shawn Tabrizi authored and asynchronous rob's avatar asynchronous rob committed
      * adding mac libraries and how to start testnet
      
      * Clean up Justification struct, Issue #1033
      
      * adding mac libraries and how to start testnet
      c10123e4
  11. 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
    • Svyatoslav Nikolsky's avatar
      Changes tries: support forks (#950) · e5439021
      Svyatoslav Nikolsky authored
      * forks support in changes trie storage
      
      * moved convert_hash to primitives
      
      * optimize ChangesTrieRootsStorage::root when anchor is canonicalized
      e5439021
  12. Nov 12, 2018
    • Gav Wood's avatar
      Remove unneeded Serde requirements (#1076) · d45de4b3
      Gav Wood authored
      * Remove superfluous serde requirements.
      
      * Try to ensure hash is serde
      
      * Fixups
      
      * Building again
      
      * Attempt to reenable Block (doesn't build)
      
      * Fixes compilation for node cli
      
      * Fixes test compilation
      
      * Fix wasm
      
      * Fix tests
      
      * Remove unneeded changes
      
      * Fix up comments
      
      * Reenable some code
      
      * Compile error when origin misused.
      
      * Remove unnecessary includes of `serde_derive`
      
      * Cleanups
      d45de4b3
  13. Nov 01, 2018
  14. Oct 31, 2018
  15. 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
  16. Oct 25, 2018
  17. Oct 18, 2018
  18. Oct 16, 2018
    • Bastian Köcher's avatar
      Adds `check_inherents` function to the `BlockerBuilder` API (#912) · e1c03f78
      Bastian Köcher authored
      * Adds new `check_inherents` function to the `BlockBuilder` API
      
      * Switch to `check_inherents` in `node-consensus`
      
      * Remove `CheckedBlock`, because it is not required anymore
      
      * Fixes after rebase
      
      * Fixes compilation on stable
      e1c03f78
    • 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
  19. Oct 12, 2018
    • Tomasz Drwięga's avatar
      Tagged transaction queue integration (#893) · ce598db0
      Tomasz Drwięga authored
      * Make the graph generic.
      
      * Adapting pool API for the graph.
      
      * Merge pool & graph.
      
      * Restructure.
      
      * Fix test of transaction pool.
      
      * Get rid of node/transaction-pool.
      
      * Compilation fixes.
      
      * Test7
      
      * Fix compilation of tests.
      
      * Revert runtime changes.
      
      * Add validate_transaction to test-runtime.
      
      * Fix RPC tests.
      
      * Add clearing of the old transactions.
      
      * Trigger pool events.
      
      * Use new queue API.
      
      * Fix wasm build, re-export Hasher.
      
      * No warning if validate transaction fails.
      
      * Get rid of Into<u64> and use As
      ce598db0
  20. Oct 10, 2018
  21. Oct 09, 2018
    • Bastian Köcher's avatar
      Runtime API clean up (#892) · 4fc8c98b
      Bastian Köcher authored
      * Rename `NewTxQueue` to `TaggedTransactionQueue`
      
      * Remove `BlockBuilder` API and support adding documentation to the API functions
      
      * Adds new `BlockBuilder` API
      
      * Fixes compilation with new `BlockBuilder` API
      
      * Some more cleanup
      
      * Cargo.lock update
      
      * Try to fix on stable
      4fc8c98b
    • 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
  22. Oct 05, 2018
  23. Sep 29, 2018
    • Arkadiy Paronyan's avatar
      Fixed consensus message garbage collection & DB initialization (#841) · 73d72278
      Arkadiy Paronyan authored
      * Consensus cleanup
      
      * Fixed DB initialization issue
      
      * Spacing
      73d72278
    • Svyatoslav Nikolsky's avatar
      Fetching changes proof from remote nodes (#769) · 9d4fcedc
      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
      
      * key changes proof generation + query
      
      * fix grumbles
      
      * check that changes trie config is not changed by block.finalize()
      
      * fixed changes trie config check
      9d4fcedc
  24. Sep 28, 2018
    • Arkadiy Paronyan's avatar
      Integration tests (#805) · e722f09b
      Arkadiy Paronyan authored
      * Started substrate tests
      
      * Sync test
      
      * Test updates
      
      * Improved tests
      
      * Use on-chain block delay
      
      * Parallel test execution
      
      * Otimized tests
      
      * Logging
      
      * Fixed racing test
      
      * Fixed compilation
      
      * Fixed timestamp test
      
      * Removed rlp dependency
      
      * Minor fixes
      
      * Fixed tests
      
      * Removed best_block_id and resolved fdlimit issue
      
      * Whitespace
      
      * Use keyring
      
      * Style
      
      * Added API execution setting
      
      * Removed stale import
      e722f09b
  25. Sep 27, 2018
  26. 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
  27. 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
  28. 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
  29. Sep 21, 2018
    • asynchronous rob's avatar
      Introduce notion of finality to substrate (#760) · 3cb5d889
      asynchronous rob authored
      * 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`
      3cb5d889
  30. Sep 20, 2018
    • Gav Wood's avatar
      Address grumbles in eras PR (#782) · 2eb36233
      Gav Wood authored
      * Address grumbles
      
      * Fix hash
      2eb36233
    • Gav Wood's avatar
      Transaction eras (#758) · 0b72f33d
      Gav Wood authored
      * Initial groundwork
      
      * A mess.
      
      * Integrate
      
      * Fix tests
      
      * Unit tests
      
      * Tests for unchecked_extrisnic
      
      * fix tab
      
      * Improve binary format.
      
      * fix tests
      
      * Rename extrinsic-pool -> transaction-pool
      
      Closes #770
      
      * Implement unimplemented.
      
      * typo
      0b72f33d