Skip to content
  1. Jan 29, 2020
  2. Jan 28, 2020
  3. Jan 27, 2020
  4. Jan 25, 2020
  5. Jan 24, 2020
    • Bastian Köcher's avatar
      Introduces `author_hasKey` and `author_hasSessionKeys` rpc endpoints (#4720) · 82428e08
      Bastian Köcher authored
      
      
      * Introduces `author_hasKey` and `author_hasSessionKeys` rpc endpoints
      
      Both endpoints can be used to check if a key is present in the keystore.
      
      - `hasKey` works on with an individual public key and key type. It
      checks if a private key for the given combination exists in the
      keystore.
      - `hasSessionKeys` works with the full encoded session key blob stored
      on-chain in `nextKeys`. This requires that the given blob can be decoded
      by the runtime. It will return `true`, iff all public keys of the
      session key exist in the storage.
      
      Fixes: https://github.com/paritytech/substrate/issues/4696
      
      * Update client/rpc-api/src/author/error.rs
      
      Co-Authored-By: default avatarNikolay Volf <[email protected]>
      
      * Indentation
      
      Co-authored-by: default avatarNikolay Volf <[email protected]>
      82428e08
    • Nikolay Volf's avatar
      Async/await in transaction-graph (#4645) · e2eda0e5
      Nikolay Volf authored
      * async/await in tx graph
      
      * review notes
      
      * remove unused typedef
      e2eda0e5
    • Ashley's avatar
      Switch GrandPa to std futures (replaces #3909) (#4612) · fca8058f
      Ashley authored
      
      
      * Switch GrandPa to new futures
      
      * Work on making tests work
      
      * until_imported tests working again
      
      * Work on switching tests to stable futures
      
      * Modifications
      
      * Re-add test as #[ignore]
      
      * Don't ignore
      
      * Add manual unpins
      
      * Remove Header import
      
      * Return concrete Sink type
      
      * Switch to crates.io finality-grandpa version
      
      * Remove use statement that slipped in
      
      * Fix some nitpicks
      
      * Remove unpin from i
      
      * Fixed typo
      
      * Move futures01 to dev-deps
      
      * Fix nitpicks
      
      * Update client/finality-grandpa/src/communication/mod.rs
      
      Co-Authored-By: default avatarAndré Silva <[email protected]>
      
      * nitpicking
      
      Co-authored-by: default avatarPierre Krieger <[email protected]>
      Co-authored-by: default avatarAndré Silva <[email protected]>
      fca8058f
    • Nikolay Volf's avatar
      Refactor tx-pool maintenance and other high-level api (#4629) · e5fed334
      Nikolay Volf authored
      * Reduction.
      
      * Reformation.
      
      * add locked timer stuff
      
      * fix issues and introduce full pool
      
      * arrange together
      
      * fix benches
      
      * fix new_light
      
      * Add revalidation test case
      
      * review fixes
      
      * review fixes
      
      * use just ready future
      
      * address review
      e5fed334
  6. Jan 23, 2020
  7. Jan 22, 2020
  8. Jan 21, 2020
  9. Jan 20, 2020
  10. Jan 17, 2020
    • Max Inden's avatar
      client/finality-grandpa: Reintegrate gossip validator report stream (#4661) · f0c18520
      Max Inden authored
      * client/finality-grandpa: Reintegrate gossip validator report stream
      
      The `finality-grandpa` `GossipValidator` is called by the `GossipEngine`
      in a synchronous fashion on each gossip message. Its main task is to
      decide whether to gossip the given message on, or whether to drop it.
      
      In addition it also updates the reputation of a node's peers based on
      the incoming gossip messages. To do so it needs to be able to report the
      reputation change which it does through an unbounded channel (in order
      to stay synchronous).
      
      Previously the receiving side of this channel would be handled by a new
      task, polling the channel and forwarding the changes to a clone of the
      `GossipEngine` that it would own.
      
      Instead the receiver of the above mentioned channel is now being polled
      by the `NetworkBridge` within its `Future::poll` implementation.
      Reputation changes are reported through the already existing
      `GossipEngine` instance within `NetworkBridge`.
      
      For details on the overall goal, see d4fbb897.
      
      * client/finality-grandpa: Remove exit future from test NetworkBridges
      f0c18520
    • Nikolay Volf's avatar
      add missing bits (#4660) · 10bebed2
      Nikolay Volf authored
      10bebed2
    • André Silva's avatar
    • Max Inden's avatar
      client/finality-grandpa: Reintegrate periodic neighbor packet worker (#4631) · d4fbb897
      Max Inden authored
      The `NeighborPacketWorker` within `client/finality-grandpa` does two
      things:
      
      1. It receives neighbor packets from components within
      `client/finality-grandpa`, sends them down to the `GossipEngine` in
      order for neighboring nodes to receive.
      
      2. It periodically sends out the most recent neighbor packet to the
      `GossipEngine`.
      
      In order to send out packets it had a clone to a `GossipEgine` within
      an atomic reference counter and a mutex. The `NeighborPacketWorker` was
      then spawned onto its own asynchronous task.
      
      Instead of running in its own task, this patch reintegrates the
      `NeighborPacketWorker` into the main `client/finality-grandpa` task not
      requiring the `NeighborPacketWorker` to own a clone of the
      `GossipEngine`.
      
      The greater picture
      
      This is a tiny change within a greater refactoring. The overall goal is
      to **simplify** how finality-grandpa interacts with the network and to
      **reduce** the amount of **unbounded channels** within the logic.
      
      Why no unbounded channels: Bounding channels is needed for backpressure
      and proper scheduling. With unbounded channels there is no way of
      telling the producer side to slow down for the consumer side to catch
      up.  Rephrased, there is no way for the scheduler to know when to favour
      the consumer task over the producer task on a crowded channel and the
      other way round for an empty channel.
      
      Reducing the amount of shared ownership simplifies the logic and enables
      one to use async-await syntax-suggar, given that one does not need to
      hold a lock across poll invocations. Using async-await enables one to
      use bounded channels without complex logic.
      d4fbb897
    • Nikolay Volf's avatar
      add debug logs (#4657) · 7248ac20
      Nikolay Volf authored
      7248ac20
    • Stanislav Tkach's avatar
      Add typedefs for storage types (#4654) · 394bcf4c
      Stanislav Tkach authored
      * Add typedefs for storage types
      
      * Fix after merge
      394bcf4c
  11. Jan 16, 2020
    • Svyatoslav Nikolsky's avatar
      Allow updating configuration of changes tries (#3201) · 8e986433
      Svyatoslav Nikolsky authored
      
      
      * DigestItem::ChangesTrieSignal
      
      * introduce changes_trie::State
      
      * introduce config activation block
      
      * ChangesTrieSignal::as_new_configuration
      
      * moved well_known_cache_keys to client
      
      * extracted DbChangesTrieStorage to separate file
      
      * change meaning of none in blockchain cache
      
      * changes trie config (FULL) cache draft
      
      * eliminating const ChangesTrieConfiguration
      
      * delay pruning
      
      * continue elimination
      
      * do not prune CT config from cache
      
      * removed redundant code
      
      * fix some TODOs
      
      * introduce ConfigurationRange
      
      * use Configuration range in build
      
      * build skewed digest
      
      * remove debug print
      
      * extracted surface iterator
      
      * key_changes works with skewed digests
      
      * fix client build
      
      * add test for NeverPrune
      
      * fix TODO
      
      * fixed some TODOs
      
      * more tests
      
      * fixing TODOs
      
      * fixed compilation
      
      * update runtime version
      
      * git rid of large tuple
      
      * too long lines
      
      * config_activation_block -> zero
      
      * obsolete TODO
      
      * removed unjustified expect
      
      * update TODOs with issue number
      
      * new CT pruning algorithm
      
      fixed cache + multiple blocks finalization
      
      track CT configuraiton on light clients
      
      support CT configuration change revert
      
      revert CT config test
      
      new CT pruning algorithm
      
      fixed cache + multiple blocks finalization
      
      track CT configuraiton on light clients
      
      support CT configuration change revert
      
      revert CT config test
      
      * BlockIdOrHeader isn't really required
      
      * removed debug leftovers + some docs
      
      * more docs
      
      * more post-merge fixes
      
      * more post-merge fixes
      
      * revertes some unnecessary changes
      
      * reverted unnecessary changes
      
      * fix compilation + unnecessary changes
      
      * (restart CI)
      
      * fix cache update when finalizing multiple blocks
      
      * fixed tests
      
      * collect_extrinsics -> set_collect_extrinsics
      
      * restore lost test
      
      * do not calculate block number twice
      
      * Update primitives/blockchain/src/error.rs
      
      Co-Authored-By: default avatarcheme <[email protected]>
      
      * map_err -> unwrap_or
      
      * document get_at Result
      
      * delete abandoned file
      
      * added weight for set_changes_trie_config
      
      * prefer_configs -> fail_if_disabled
      
      * Update client/api/src/backend.rs
      
      Co-Authored-By: default avatarcheme <[email protected]>
      
      * Update client/db/src/changes_tries_storage.rs
      
      Co-Authored-By: default avatarcheme <[email protected]>
      
      * CommitOperation+merge -> CommitOperations
      
      * fixed test compilation
      
      * merged two different CTRange structs
      
      * lost file
      
      * uggrade db from v0 to v1 (init CT cache + add column)
      
      * fix after merge
      
      Co-authored-by: default avatarcheme <[email protected]>
      Co-authored-by: default avatarGavin Wood <[email protected]>
      8e986433
    • Pierre Krieger's avatar
      1e0c6794
    • André Silva's avatar
      grandpa: generic voting rule for backing off from best block (#4635) · 99430a51
      André Silva authored and asynchronous rob's avatar asynchronous rob committed
      * grandpa: generic voting rule for backing off from best block
      
      * grandpa: fix tests
      99430a51
    • Bastian Köcher's avatar
      Implement runtime version checks in `set_code` (#4548) · 879e28ae
      Bastian Köcher authored
      * Implement runtime version checks in `set_code`
      
      Check that the new runtime code given to `set_code` fullfills some
      requirements:
      
      - `spec_name` matches
      - `spec_version` does not decreases
      - `impl_version` does not decreases
      - Either `spec_version` and `impl_version` increase
      
      * Make tests almost work
      
      * Some fixes after master merge
      
      * Fix tests
      
      * Add missed file
      
      * Make depedency check happy?
      
      * Remove leftover `sc-executor`
      
      * AHHHHH
      
      * Reset debug stuff
      
      * Remove some 'static
      
      * More 'static
      
      * Some docs
      
      * Update `Cargo.lock`
      879e28ae