Skip to content
Snippets Groups Projects
  1. Jan 17, 2020
    • Max Inden's avatar
      client/finality-grandpa: Reintegrate periodic neighbor packet worker (#4631) · d9837d7d
      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.
      d9837d7d
  2. Jan 16, 2020
    • Svyatoslav Nikolsky's avatar
      Allow updating configuration of changes tries (#3201) · febf2939
      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 <emericchevalier.pro@gmail.com>
      
      * 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 <emericchevalier.pro@gmail.com>
      
      * Update client/db/src/changes_tries_storage.rs
      
      Co-Authored-By: default avatarcheme <emericchevalier.pro@gmail.com>
      
      * 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 <emericchevalier.pro@gmail.com>
      Co-authored-by: default avatarGavin Wood <github@gavwood.com>
      febf2939
    • André Silva's avatar
      grandpa: generic voting rule for backing off from best block (#4635) · d18fbd79
      André Silva authored and asynchronous rob's avatar asynchronous rob committed
      * grandpa: generic voting rule for backing off from best block
      
      * grandpa: fix tests
      d18fbd79
    • Bastian Köcher's avatar
      Implement runtime version checks in `set_code` (#4548) · afc3318f
      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`
      afc3318f
  3. Jan 14, 2020
    • Ashley's avatar
      Update the service to std futures (#4447) · 3219be25
      Ashley authored
      
      * Switch service to futures03
      
      * Fix tests
      
      * Fix service test and cli
      
      * Re-add Executor trait to SpawnTaskHandle
      
      * Fix node-service
      
      * Update babe
      
      * Fix browser node
      
      * Update aura
      
      * Revert back to tokio-executor to fix runtime panic
      
      * Add todo item
      
      * Fix service tests again
      
      * Timeout test futures
      
      * Fix tests
      
      * nits
      
      * Fix service test
      
      * Remove zstd patch
      
      * Re-add futures01 to aura and babe tests as a dev-dep
      
      * Change failing test to tee
      
      * Fix node
      
      * Upgrade tokio
      
      * fix society
      
      * Start switching grandpa to stable futures
      
      * Revert "Start switching grandpa to stable futures"
      
      This reverts commit 9c1976346237637effc07c13f7d0403daf5e71cf.
      
      * Fix utils
      
      * Revert substrate service test
      
      * Revert gitlab
      
      Co-authored-by: default avatarthiolliere <gui.thiolliere@gmail.com>
      3219be25
  4. Jan 10, 2020
  5. Jan 07, 2020
  6. Jan 05, 2020
  7. Jan 02, 2020
  8. Dec 24, 2019
  9. Dec 20, 2019
  10. Dec 18, 2019
  11. Dec 16, 2019
    • Tomasz Drwięga's avatar
      [big refactor] Remove crate aliasing. (#4395) · 8778ca7d
      Tomasz Drwięga authored
      * Rename: Phase 1.
      
      * Unify codec.
      
      * Fixing: Phase 2
      
      * Fixing: Phase 3.
      
      * Fixing: Phase 4.
      
      * Fixing: Phase 5.
      
      * Fixing: Phase 6.
      
      * Fixing: Phase 7.
      
      * Fixing: Phase 8. Tests
      
      * Fixing: Phase 9. Tests!!!
      
      * Fixing: Phase 10. Moar tests!
      
      * Finally done!
      
      * More fixes.
      
      * Rename primitives:: to sp_core::
      
      * Apply renames in finality-grandpa.
      
      * Fix benches.
      
      * Fix benches 2.
      
      * Revert node-template.
      
      * Fix frame-system in our modules.
      8778ca7d
  12. Dec 14, 2019
    • cheme's avatar
      Fix key collision for child trie (#4162) · 0ece5d9e
      cheme authored
      * In progress, runtime io must switch to future proof root +
      child_specific (unique id) + u32 type.
      
      * Switch interface, sr-io seems ok, rpc could use similar interface to
      sr-io, genesis json broken if there is child trie in existing encoding
      genesis.
      
      * test from previous implementation.
      
      * fix proving test.
      
      * Restore Keyspacedb from other branch, only apply to child trie.
      
      * Removing unneeded child_info from child root (child info are stored
      if things changed, otherwhise the root does not change).
      
      * Switch rpc to use same format as ext: more future proof.
      
      * use root from child info for trie backend essence.
      
      * Breaking long lines.
      
      * Update doc and clean pr a bit.
      
      * fix error type
      
      * Restore removed doc on merge and update sr-io doc.
      
      * Switch child storage api to use directly unique id, if managed id
      where to be put in place, the api will change at this time.
      
      * Clean deprecated host interface from child.
      
      * Removing assertion on child info (can fail depending on root
      memoization).
      
      * merging child info in the overlay when possible.
      
      * child iteration by prefix using child_info.
      
      * Using ChainInfo in frame support. ChainInfo gets redesign to avoid
      buffers allocation on every calls.
      
      * Add length of root to the data of child info.
      
      * comments
      
      * Encode compact.
      
      * Remove child info with root.
      
      * Fix try_update condition.
      
      * Comment Ext child root caching.
      
      * Replace tuples by struct with field
      
      * remove StorageTuple alias.
      
      * Fix doc tests, and remove StorageOverlay and ChildStorageOverlay
      aliases.
      0ece5d9e
  13. Dec 13, 2019
    • Pierre Krieger's avatar
      Extract consensus_gossip.rs and put it in its own crate (#4284) · c66c191b
      Pierre Krieger authored
      
      * Extract gossiping system from network
      
      * Finish porting GRANDPA tests
      
      * Try put correct engine ID
      
      * Fix messages encoding
      
      * Fix communication tests
      
      * Use a threads pool to spawn stuff
      
      * Fix compilation everywhere
      
      * Fix bad merge conflict
      
      * Remove dependency on async-std
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarRobert Habermeier <rphmeier@gmail.com>
      
      * More suggestions
      
      * Remove network startup GP future
      
      * Update to futures_timer
      
      * adjust wait_when_behind test
      
      * Pass correct Roles after handshake
      
      * Revert "adjust wait_when_behind test"
      
      This reverts commit 23cb3a0a6d25ed732c2cd648607bc44ef2ab0919.
      
      * Crate root documentation
      
      * Remove MessageRecipient
      
      * Address concerns
      
      * Fix more concerns
      
      * Forgot Cargo.lock
      c66c191b
  14. Dec 11, 2019
    • Benjamin Kampmann's avatar
      Fix a bunch of low work dependency cycles (#4354) · 605c0e65
      Benjamin Kampmann authored
      * take test-client off sp-consensus
      
      * use test primitives rather than test client in authority discovery tests
      
      * move runtime-interface tests
      
      * don't forget to remove the dev-dependency
      
      * remove more unneeded dev deps
      
      * add changes_trie_config to test prrimitives
      
      * Separate network crates from its integration tests
      
      * Fix up consensus crates for networking test changes
      
      * remove unnecessary dependencies
      
      * remove unused addition
      
      * remove unnecessary dev-dependencies
      
      * fixing finality grandpa tests
      
      * removing unnecessary executor dependencies
      605c0e65
  15. Dec 04, 2019
    • Ashley's avatar
      Update exit-future and make sc-cli compile on wasm (#4289) · a58e8a6e
      Ashley authored
      * updated exit-future (github repo)
      
      * Switch to broadcast crate
      
      * Migrate client/cli
      
      * Switch exit-future to modernize branch
      
      * Small changes
      
      * Switch to cargo version and fix fg tests
      
      * Revert "Small changes"
      
      This reverts commit a488106805d220cb4aee9e46a71481424c6d87d5.
      a58e8a6e
  16. Dec 03, 2019
  17. Dec 02, 2019
    • Benjamin Kampmann's avatar
      The crate rename (#4223) · 927e13c1
      Benjamin Kampmann authored
      * Adding script for rename, could be applicable for nodes on top of it, too
      
      * add stderr and gitlab ci features
      
      * apply script
      
      * fix now minor details in expected stderr
      
      * Update the Cargo.lock
      
      * fix name: sc-transaction -> sc-tracing
      
      * fix rename in script, too
      927e13c1
  18. Dec 01, 2019
  19. Nov 29, 2019
  20. Nov 28, 2019
  21. Nov 26, 2019
    • Benjamin Kampmann's avatar
      Remove all (non-dev) `client` references from `frame`, activate dependency enforcer (#4184) · bd652793
      Benjamin Kampmann authored
      * Move transaction pool to primitives
      
      * move backend, errors into primitives
      
      * remove unused client depencies
      
      * Move rpc-api into primitives
      
      * Move peerset back to client
      
      * Move rpc/api back to client, move palette/support/rpc into utils
      
      * move support-rpc into subfolder
      
      * move system-rpc into utils
      
      * move transaction-pool  and -graph back into client
      
      * fix broken imports
      
      * Clean up test primitives
      
      * Make support test utils independent of frame
      
      * remove unnecessary node dependencies from service
      
      * Reactivate dependency script:
       - only enforce the now achieved status quo will remain
       - allow for primitives to depend on /client for now without failing
       - more discriptive error message so people understand, what it wants
       - minor fix to differentiative between ../client and /client (which may be a subfolder)
       - don't allow this to fail anylonger.
      
      * fix doc comment
      
      * 'Should not' rather than 'must not'.
      
      * Revert unwanted dependency changes
      
      * fix faulty import
      
      * fixup derive_more version
      
      * fix wrong import path
      bd652793
    • Arkadiy Paronyan's avatar
      Time-based gradual gossip (#4176) · 53a48214
      Arkadiy Paronyan authored
      53a48214
  22. Nov 22, 2019
  23. Nov 20, 2019
  24. Nov 19, 2019
  25. Nov 14, 2019
    • Benjamin Kampmann's avatar
      Reorganising the repository - external renames and moves (#4074) · 60e5011c
      Benjamin Kampmann authored
      * Adding first rough ouline of the repository structure
      
      * Remove old CI stuff
      
      * add title
      
      * formatting fixes
      
      * move node-exits job's script to scripts dir
      
      * Move docs into subdir
      
      * move to bin
      
      * move maintainence scripts, configs and helpers into its own dir
      
      * add .local to ignore
      
      * move core->client
      
      * start up 'test' area
      
      * move test client
      
      * move test runtime
      
      * make test move compile
      
      * Add dependencies rule enforcement.
      
      * Fix indexing.
      
      * Update docs to reflect latest changes
      
      * Moving /srml->/paint
      
      * update docs
      
      * move client/sr-* -> primitives/
      
      * clean old readme
      
      * remove old broken code in rhd
      
      * update lock
      
      * Step 1.
      
      * starting to untangle client
      
      * Fix after merge.
      
      * start splitting out client interfaces
      
      * move children and blockchain interfaces
      
      * Move trie and state-machine to primitives.
      
      * Fix WASM builds.
      
      * fixing broken imports
      
      * more interface moves
      
      * move backend and light to interfaces
      
      * move CallExecutor
      
      * move cli off client
      
      * moving around more interfaces
      
      * re-add consensus crates into the mix
      
      * fix subkey path
      
      * relieve client from executor
      
      * starting to pull out client from grandpa
      
      * move is_decendent_of out of client
      
      * grandpa still depends on client directly
      
      * lemme tests pass
      
      * rename srml->paint
      
      * Make it compile.
      
      * rename interfaces->client-api
      
      * Move keyring to primitives.
      
      * fixup libp2p dep
      
      * fix broken use
      
      * allow dependency enforcement to fail
      
      * move fork-tree
      
      * Moving wasm-builder
      
      * make env
      
      * move build-script-utils
      
      * fixup broken crate depdencies and names
      
      * fix imports for authority discovery
      
      * fix typo
      
      * update cargo.lock
      
      * fixing imports
      
      * Fix paths and add missing crates
      
      * re-add missing crates
      60e5011c