Skip to content
Snippets Groups Projects
  1. Jul 25, 2023
    • Anton's avatar
      chore: update libp2p to 0.52.1 (#14429) · 59d8b864
      Anton authored
      * update libp2p to 0.52.0
      
      * proto name now must implement `AsRef<str>`
      
      * update libp2p version everywhere
      
      * ToSwarm, FromBehaviour, ToBehaviour
      
      also LocalProtocolsChange and RemoteProtocolsChange
      
      * new NetworkBehaviour invariants
      
      * replace `Vec<u8>` with `StreamProtocol`
      
      * rename ConnectionHandlerEvent::Custom to NotifyBehaviour
      
      * remove DialError & ListenError invariants
      
      also fix pending_events
      
      * use connection_limits::Behaviour
      
      See https://github.com/libp2p/rust-libp2p/pull/3885
      
      * impl `void::Void` for `BehaviourOut`
      
      also use `Behaviour::with_codec`
      
      * KademliaHandler no longer public
      
      * fix StreamProtocol construction
      
      * update libp2p-identify to 0.2.0
      
      * remove non-existing methods from PollParameters
      
      rename ConnectionHandlerUpgrErr to StreamUpgradeError
      
      * `P2p` now contains `PeerId`, not `Multihash`
      
      * use multihash-codetable crate
      
      * update Cargo.lock
      
      * reformat text
      
      * comment out tests for now
      
      * remove `.into()` from P2p
      
      * confirm observed addr manually
      
      See https://github.com/libp2p/rust-libp2p/blob/master/protocols/identify/CHANGELOG.md#0430
      
      * remove SwarmEvent::Banned
      
      since we're not using `ban_peer_id`, this can be safely removed.
      we may want to introduce `libp2p::allow_block_list` module in the future.
      
      * fix imports
      
      * replace `libp2p` with smaller deps in network-gossip
      
      * bring back tests
      
      * finish rewriting tests
      
      * uncomment handler tests
      
      * Revert "uncomment handler tests"
      
      This reverts commit 720a06815887f4e10767c62b58864a7ec3a48e50.
      
      * add a fixme
      
      * update Cargo.lock
      
      * remove extra From
      
      * make void uninhabited
      
      * fix discovery test
      
      * use autonat protocols
      
      confirming external addresses manually is unsafe in open networks
      
      * fix SyncNotificationsClogged invariant
      
      * only set server mode manually in tests
      
      doubt that we need to set it on node since we're adding public addresses
      
      * address @dmitry-markin comments
      
      * remove autonat
      
      * removed unused var
      
      * fix EOL
      
      * update smallvec and sha2
      
      in attempt to compile polkadot
      
      * bump k256
      
      in attempt to build cumulus
      
      ---------
      
      Co-authored-by: parity-processbot <>
      59d8b864
  2. Jul 20, 2023
  3. Jul 17, 2023
  4. Jul 11, 2023
    • Bastian Köcher's avatar
      Removal of execution strategies (#14387) · 5eb816d7
      Bastian Köcher authored
      
      * Start
      
      * More work!
      
      * Moar
      
      * More changes
      
      * More fixes
      
      * More worrk
      
      * More fixes
      
      * More fixes to make it compile
      
      * Adds `NoOffchainStorage`
      
      * Pass the extensions
      
      * Small basti making small progress
      
      * Fix merge errors and remove `ExecutionContext`
      
      * Move registration of `ReadRuntimeVersionExt` to `ExecutionExtension`
      
      Instead of registering `ReadRuntimeVersionExt` in `sp-state-machine` it is moved to
      `ExecutionExtension` which provides the default extensions.
      
      * Fix compilation
      
      * Register the global extensions inside runtime api instance
      
      * Fixes
      
      * Fix `generate_initial_session_keys` by passing the keystore extension
      
      * Fix the grandpa tests
      
      * Fix more tests
      
      * Fix more tests
      
      * Don't set any heap pages if there isn't an override
      
      * Fix small fallout
      
      * FMT
      
      * Fix tests
      
      * More tests
      
      * Offchain worker custom extensions
      
      * More fixes
      
      * Make offchain tx pool creation reusable
      
      Introduces an `OffchainTransactionPoolFactory` for creating offchain transactions pools that can be
      registered in the runtime externalities context. This factory will be required for a later pr to
      make the creation of offchain transaction pools easier.
      
      * Fixes
      
      * Fixes
      
      * Set offchain transaction pool in BABE before using it in the runtime
      
      * Add the `offchain_tx_pool` to Grandpa as well
      
      * Fix the nodes
      
      * Print some error when using the old warnings
      
      * Fix merge issues
      
      * Fix compilation
      
      * Rename `babe_link`
      
      * Rename to `offchain_tx_pool_factory`
      
      * Cleanup
      
      * FMT
      
      * Fix benchmark name
      
      * Fix `try-runtime`
      
      * Remove `--execution` CLI args
      
      * Make clippy happy
      
      * Forward bls functions
      
      * Fix docs
      
      * Update UI tests
      
      * Update client/api/src/execution_extensions.rs
      
      Co-authored-by: default avatarMichal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com>
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarKoute <koute@users.noreply.github.com>
      
      * Update client/cli/src/params/import_params.rs
      
      Co-authored-by: default avatarKoute <koute@users.noreply.github.com>
      
      * Update client/api/src/execution_extensions.rs
      
      Co-authored-by: default avatarKoute <koute@users.noreply.github.com>
      
      * Pass the offchain storage to the MMR RPC
      
      * Update client/api/src/execution_extensions.rs
      
      Co-authored-by: default avatarSebastian Kunert <skunert49@gmail.com>
      
      * Review comments
      
      * Fixes
      
      ---------
      
      Co-authored-by: default avatarMichal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com>
      Co-authored-by: default avatarKoute <koute@users.noreply.github.com>
      Co-authored-by: default avatarSebastian Kunert <skunert49@gmail.com>
      5eb816d7
  5. Jun 29, 2023
  6. Jun 07, 2023
  7. May 31, 2023
  8. May 11, 2023
    • Aaro Altonen's avatar
      Prepare `sc-network` for `ProtocolController`/`NotificationService` (#14080) · f36749b9
      Aaro Altonen authored
      
      * Prepare `sc-network` for `ProtocolController`/`NotificationService`
      
      The upcoming notification protocol refactoring requires that protocols
      are able to communicate with `sc-network` over unique and direct links.
      This means that `sc-network` side of the link has to be created before
      `sc-network` is initialized and that it is allowed to consume the object
      as the receiver half of the link may not implement `Clone`.
      
      Remove request-response and notification protocols from `NetworkConfiguration`
      and create a new object that contains the configurations of these protocols
      and which is consumable by `sc-network`. This is needed needed because, e.g.,
      the receiver half of `NotificationService` is not clonable so `sc-network`
      must consume it when it's initializing the protocols in `Notifications`.
      
      Similar principe applies to `PeerStore`/`ProtocolController`: as per current
      design, protocols are created before the network so `Protocol` cannot be
      the one creating the `PeerStore` object. `FullNetworkConfiguration` will be
      used to store the objects that `sc-network` will use to communicate with
      protocols and it will also allow protocols to allocate handles so they
      can directly communicate with `sc-network`.
      
      * Fixes
      
      * Update client/service/src/builder.rs
      
      Co-authored-by: default avatarDmitry Markin <dmitry@markin.tech>
      
      * Updates
      
      * Doc updates + cargo-fmt
      
      ---------
      
      Co-authored-by: default avatarDmitry Markin <dmitry@markin.tech>
      f36749b9
  9. May 07, 2023
  10. May 04, 2023
    • Michal Kucharczyk's avatar
      substrate-test-runtime migrated to "pure" frame runtime (#13737) · 6a295e7c
      Michal Kucharczyk authored
      * substrate-test-runtime migrated to pure-frame based
      
      * test block builder: helpers added
      
      * simple renaming
      
      * basic_authorship test adjusted
      
      * block_building storage_proof test adjusted
      
      * babe: tests: should_panic expected added
      
      * babe: tests adjusted
      
      ConsensusLog::NextEpochData is now added by pallet_babe as
      pallet_babe::SameAuthoritiesForever trigger is used in runtime config.
      
      * beefy: tests adjusted
      
      test-substrate-runtime is now using frame::executive to finalize the
      block. during finalization the digests stored during block execution are
      checked against header digests:
      https://github.com/paritytech/substrate/blob/91bb2d29/frame/executive/src/lib.rs#L585-L591
      
      It makes impossible to directly manipulate header's digets, w/o
      depositing logs into system pallet storage `Digest<T: Config>`.
      
      Instead of this dedicated extrinsic allowing to store logs items
      (MmrRoot / AuthoritiesChange) is used.
      
      * grandpa: tests adjusted
      
      test-substrate-runtime is now using frame::executive to finalize the
      block. during finalization the digest logs stored during block execution are
      checked against header digest logs:
      https://github.com/paritytech/substrate/blob/91bb2d29
      
      /frame/executive/src/lib.rs#L585-L591
      
      It makes impossible to directly manipulate header's digets, w/o
      depositing logs into system pallet storage `Digest<T: Config>`.
      
      Instead of this dedicated extrinsic allowing to store logs items
      (ScheduledChange / ForcedChange and DigestItem::Other) is used.
      
      * network:bitswap: test adjusted
      
      The size of unchecked extrinsic was increased. The pattern used in test will
      be placed at the end of scale-encoded buffer.
      
      * runtime apis versions adjusted
      
      * storage keys used in runtime adjusted
      
      * wasm vs native tests removed
      
      * rpc tests: adjusted
      
      Transfer transaction processing was slightly improved, test was
      adjusted.
      
      * tests: sizes adjusted
      
      Runtime extrinsic size was increased. Size of data read during block
      execution was also increased due to usage of new pallets in runtime.
      
      Sizes were adjusted in tests.
      
      * cargo.lock update
      
      cargo update -p substrate-test-runtime -p substrate-test-runtime-client
      
      * warnings fixed
      
      * builders cleanup: includes / std
      
      * extrinsic validation cleanup
      
      * txpool: benches performance fixed
      
      * fmt
      
      * spelling
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarDavide Galassi <davxy@datawok.net>
      
      * Apply code review suggestions
      
      * Apply code review suggestions
      
      * get rid of 1063 const
      
      * renaming: UncheckedExtrinsic -> Extrinsic
      
      * test-utils-runtime: further step to pure-frame
      
      * basic-authorship: tests OK
      
      * CheckSubstrateCall added + tests fixes
      
      * test::Transfer call removed
      
      * priority / propagate / no sudo+root-testing
      
      * fixing warnings + format
      
      * cleanup: build2/nonce + format
      
      * final tests fixes
      
      all tests are passing
      
      * logs/comments removal
      
      * should_not_accept_old_signatures test removed
      
      * make txpool benches work again
      
      * Cargo.lock reset
      
      * format
      
      * sudo hack removed
      
      * txpool benches fix+cleanup
      
      * .gitignore reverted
      
      * rebase fixing + unsigned cleanup
      
      * Cargo.toml/Cargo.lock cleanup
      
      * force-debug feature removed
      
      * mmr tests fixed
      
      * make cargo-clippy happy
      
      * network sync test uses unsigned extrinsic
      
      * cleanup
      
      * ".git/.scripts/commands/fmt/fmt.sh"
      
      * push_storage_change signed call remove
      
      * GenesisConfig cleanup
      
      * fix
      
      * fix
      
      * GenesisConfig simplified
      
      * storage_keys_works: reworked
      
      * storage_keys_works: expected keys in vec
      
      * storage keys list moved to substrate-test-runtime
      
      * substrate-test: some sanity tests + GenesisConfigBuilder rework
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      
      * Apply suggestions from code review
      
      * Review suggestions
      
      * fix
      
      * fix
      
      * beefy: generate_blocks_and_sync block_num sync with actaul value
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarDavide Galassi <davxy@datawok.net>
      
      * Update test-utils/runtime/src/genesismap.rs
      
      Co-authored-by: default avatarDavide Galassi <davxy@datawok.net>
      
      * cargo update -p sc-rpc -p sc-transaction-pool
      
      * Review suggestions
      
      * fix
      
      * doc added
      
      * slot_duration adjusted for Babe::slot_duration
      
      * small doc fixes
      
      * array_bytes::hex used instead of hex
      
      * tiny -> medium name fix
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarSebastian Kunert <skunert49@gmail.com>
      
      * TransferData::try_from_unchecked_extrinsic -> try_from
      
      * Update Cargo.lock
      
      ---------
      
      Co-authored-by: parity-processbot <>
      Co-authored-by: default avatarDavide Galassi <davxy@datawok.net>
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      Co-authored-by: default avatarSebastian Kunert <skunert49@gmail.com>
      6a295e7c
    • Arkadiy Paronyan's avatar
      Statement store (#13701) · bfafbf7b
      Arkadiy Paronyan authored
      
      * WIP Statement store
      
      * Sync with networking changes in master
      
      * WIP statement pallet
      
      * Statement validation
      
      * pallet tests
      
      * Validation queue
      
      * Store maintenance
      
      * Basic statement refactoring + tests + docs
      
      * Store metrics
      
      * Store tests
      
      * Store maintenance test
      
      * cargo fmt
      
      * Build fix
      
      * OCW Api
      
      * Offchain worker
      
      * Enable host functions
      
      * fmt
      
      * Minor tweaks
      
      * Fixed a warning
      
      * Removed tracing
      
      * Manual expiration
      
      * Reworked constraint management
      
      * Updated pallet constraint calculation
      
      * Added small test
      
      * Added remove function to the APIs
      
      * Copy-paste spec into readme
      
      * Comments
      
      * Made the store optional
      
      * Removed network protocol controller
      
      * fmt
      
      * Clippy fixes
      
      * fmt
      
      * fmt
      
      * More clippy fixes
      
      * More clippy fixes
      
      * More clippy fixes
      
      * Update client/statement-store/README.md
      
      Co-authored-by: default avatarcheme <emericchevalier.pro@gmail.com>
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      
      * Removed sstore from node-template
      
      * Sort out data path
      
      * Added offline check
      
      * Removed dispatch_statement
      
      * Renamed into_generic
      
      * Fixed commit placement
      
      * Use HashSet for tracking peers/statements
      
      * fmt
      
      * Use ExtendedHostFunctions
      
      * Fixed benches
      
      * Tweaks
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarcheme <emericchevalier.pro@gmail.com>
      
      * Fixed priority mixup
      
      * Rename
      
      * newtypes for priorities
      
      * Added MAX_TOPICS
      
      * Fixed key filtering logic
      
      * Remove empty entrie
      
      * Removed prefix from signing
      
      * More documentation
      
      * fmt
      
      * Moved store setup from sc-service to node
      
      * Handle maintenance task in sc-statement-store
      
      * Use statement iterator
      
      * Renamed runtime API mod
      
      * fmt
      
      * Remove dump_encoded
      
      * fmt
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      
      * Fixed build after applying review suggestions
      
      * License exceptions
      
      * fmt
      
      * Store options
      
      * Moved pallet consts to config trait
      
      * Removed global priority
      
      * Validate fields when decoding
      
      * Limit validation channel size
      
      * Made a comment into module doc
      
      * Removed submit_encoded
      
      ---------
      
      Co-authored-by: default avatarcheme <emericchevalier.pro@gmail.com>
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      bfafbf7b
  11. May 03, 2023
  12. May 02, 2023
  13. Apr 20, 2023
  14. Apr 19, 2023
  15. Apr 09, 2023
    • yjh's avatar
      refactor(sc-executor): use wasm executor builder instead of old apis (#13740) · d5e460b3
      yjh authored
      * refactor: use builder api for all executors
      
      * improve a lot
      
      * remove unused args
      
      * cleanup deps
      
      * fix inconsistency about heap alloc
      
      * add `heap_pages` back to try-runtime
      
      * fix
      
      * chore: reduce duplicated code for sc-service-test
      
      * cleanup code
      
      * fmt
      
      * improve test executor
      
      * improve
      
      * use #[deprecated]
      
      * set runtime_cache_size: 4
      
      * fix and improve
      
      * refactor builder
      
      * fix
      
      * fix bench
      
      * fix tests
      
      * fix warnings
      
      * fix warnings
      
      * fix
      
      * fix
      
      * update by suggestions
      
      * update name
      d5e460b3
  16. Apr 05, 2023
  17. Apr 04, 2023
    • Bastian Köcher's avatar
      Remove deprecated batch verification (#13799) · 846ec8cd
      Bastian Köcher authored
      This removes the deprecated batch verification. This was actually never really activated.
      Nevertheless, we need to keep the host functions around to support old runtimes which may import
      these host functions. However, we do not give access to these functions anymore. This means that any new
      runtime can not call them anymore. The host function implementations we keep will not do batch verification and will
      instead fall back to the always existing option of directly verifying the passed signature.
      `finish_batch_verification` will return the combined result of all the batch verify calls.
      
      This removes the `TaskExecutorExt` which only existed to support the batch verification. So, any
      code that used this extension can just remove the registration of them. It also removes
      `SignatureBatching` that was used by `frame-executive` to control the batch verification.
      However, there wasn't any `Verify` implementation that called the batch verification functions.
      846ec8cd
  18. Mar 30, 2023
    • Aaro Altonen's avatar
      Attempt to relieve pressure on `mpsc_network_worker` (#13725) · 4240490d
      Aaro Altonen authored
      * Attempt to relieve pressure on `mpsc_network_worker`
      
      `SyncingEngine` interacting with `NetworkWorker` can put a lot of strain
      on the channel if the number of inbound connections is high. This is
      because `SyncingEngine` is notified of each inbound substream which it
      then can either accept or reject and this causes a lot of message
      exchange on the already busy channel.
      
      Use a direct channel pair between `Protocol` and `SyncingEngine`
      to exchange notification events. It is a temporary change to alleviate
      the problems caused by syncing being an independent protocol and the
      fix will be removed once `NotificationService` is implemented.
      
      * Apply review comments
      
      * fixes
      
      * trigger ci
      
      * Fix tests
      
      Verify that both peers have a connection now that the validation goes
      through `SyncingEngine`. Depending on how the tasks are scheduled,
      one of them might not have the peer registered in `SyncingEngine` at which
      point the test won't make any progress because block announcement received
      from an unknown peer is discarded.
      
      Move polling of `ChainSync` at the end of the function so that if a block
      announcement causes a block request to be sent, that can be sent in the
      same call to `SyncingEngine::poll()`.
      
      ---------
      
      Co-authored-by: parity-processbot <>
      4240490d
  19. Mar 28, 2023
  20. Mar 21, 2023
  21. Mar 20, 2023
    • Davide Galassi's avatar
      Keystore overhaul (iter 2) (#13634) · 480396fe
      Davide Galassi authored
      * Remove bloat about remote keystore
      
      * Update docs and remove unused 'KeystoreRef' trait
      
      * Use wherever possible, MemoryKeystore for testing
      
      * Remove unrequired fully qualified method syntax for Keystore
      480396fe
  22. Mar 17, 2023
    • Davide Galassi's avatar
      Keystore overhaul (#13615) · f110941b
      Davide Galassi authored
      * Remove 'supported_keys' 'sign_with_any' and 'sign_with_all' from keystore trait
      
      * Remove the aync keystore
      
      * Renaming:
      - SyncCryptoStore -> Keystore
      - SyncCryptoStorePtr -> KeystorePtr
      - KeyStore -> MemoryKeystore
      
      * Fix authority discovery worker and tests
      
      * Rename 'insert_unknown' to 'insert'
      
      * Remove leftover
      f110941b
  23. Mar 14, 2023
    • Aaro Altonen's avatar
      Move code from `sc-network-common` back to `sc-network` (#13592) · 9ced14e2
      Aaro Altonen authored
      
      * Move service tests to `client/network/tests`
      
      These tests depend on `sc-network` and `sc-network-sync` so they should
      live outside the crate.
      
      * Move some configs from `sc-network-common` to `sc-network`
      
      * Move `NetworkService` traits to `sc-network`
      
      * Move request-responses to `sc-network`
      
      * Remove more stuff
      
      * Remove rest of configs from `sc-network-common` to `sc-network`
      
      * Remove more stuff
      
      * Fix warnings
      
      * Update client/network/src/request_responses.rs
      
      Co-authored-by: default avatarDmitry Markin <dmitry@markin.tech>
      
      * Fix cargo doc
      
      ---------
      
      Co-authored-by: default avatarDmitry Markin <dmitry@markin.tech>
      9ced14e2
  24. Mar 07, 2023
  25. Mar 06, 2023
    • Liu-Cheng Xu's avatar
      Expose `new_full_parts_with_genesis_builder` from sc-service (#13539) · 58d1d9e1
      Liu-Cheng Xu authored
      I forgot this in https://github.com/paritytech/substrate/pull/12291
      58d1d9e1
    • Aaro Altonen's avatar
      Extract syncing protocol from `sc-network` (#12828) · 1a7f5be0
      Aaro Altonen authored
      
      * Move import queue out of `sc-network`
      
      Add supplementary asynchronous API for the import queue which means
      it can be run as an independent task and communicated with through
      the `ImportQueueService`.
      
      This commit removes removes block and justification imports from
      `sc-network` and provides `ChainSync` with a handle to import queue so
      it can import blocks and justifications. Polling of the import queue is
      moved complete out of `sc-network` and `sc_consensus::Link` is
      implemented for `ChainSyncInterfaceHandled` so the import queue
      can still influence the syncing process.
      
      * Move stuff to SyncingEngine
      
      * Move `ChainSync` instanation to `SyncingEngine`
      
      Some of the tests have to be rewritten
      
      * Move peer hashmap to `SyncingEngine`
      
      * Let `SyncingEngine` to implement `ChainSyncInterface`
      
      * Introduce `SyncStatusProvider`
      
      * Move `sync_peer_(connected|disconnected)` to `SyncingEngine`
      
      * Implement `SyncEventStream`
      
      Remove `SyncConnected`/`SyncDisconnected` events from
      `NetworkEvenStream` and provide those events through
      `ChainSyncInterface` instead.
      
      Modify BEEFY/GRANDPA/transactions protocol and `NetworkGossip` to take
      `SyncEventStream` object which they listen to for incoming sync peer
      events.
      
      * Introduce `ChainSyncInterface`
      
      This interface provides a set of miscellaneous functions that other
      subsystems can use to query, for example, the syncing status.
      
      * Move event stream polling to `SyncingEngine`
      
      Subscribe to `NetworkStreamEvent` and poll the incoming notifications
      and substream events from `SyncingEngine`.
      
      The code needs refactoring.
      
      * Make `SyncingEngine` into an asynchronous runner
      
      This commits removes the last hard dependency of syncing from
      `sc-network` meaning the protocol now lives completely outside of
      `sc-network`, ignoring the hardcoded peerset entry which will be
      addressed in the future.
      
      Code needs a lot of refactoring.
      
      * Fix warnings
      
      * Code refactoring
      
      * Use `SyncingService` for BEEFY
      
      * Use `SyncingService` for GRANDPA
      
      * Remove call delegation from `NetworkService`
      
      * Remove `ChainSyncService`
      
      * Remove `ChainSync` service tests
      
      They were written for the sole purpose of verifying that `NetworWorker`
      continues to function while the calls are being dispatched to
      `ChainSync`.
      
      * Refactor code
      
      * Refactor code
      
      * Update client/finality-grandpa/src/communication/tests.rs
      
      Co-authored-by: default avatarAnton <anton.kalyaev@gmail.com>
      
      * Fix warnings
      
      * Apply review comments
      
      * Fix docs
      
      * Fix test
      
      * cargo-fmt
      
      * Update client/network/sync/src/engine.rs
      
      Co-authored-by: default avatarAnton <anton.kalyaev@gmail.com>
      
      * Update client/network/sync/src/engine.rs
      
      Co-authored-by: default avatarAnton <anton.kalyaev@gmail.com>
      
      * Add missing docs
      
      * Refactor code
      
      ---------
      
      Co-authored-by: default avatarAnton <anton.kalyaev@gmail.com>
      1a7f5be0
  26. Feb 28, 2023
  27. Feb 27, 2023
  28. Feb 24, 2023
  29. Feb 22, 2023
    • Koute's avatar
      Rework storage iterators (#13284) · f8e3bdad
      Koute authored
      * Rework storage iterators
      
      * Make sure storage iteration is also accounted for when benchmarking
      
      * Use `trie-db` from crates.io
      
      * Appease clippy
      
      * Bump `trie-bench` to 0.35.0
      
      * Fix tests' compilation
      
      * Update comment to clarify how `IterArgs::start_at` works
      
      * Add extra tests
      
      * Fix iterators on `Client` so that they behave as before
      
      * Add extra `unwrap`s in tests
      
      * More clippy fixes
      
      * Come on clippy, give me a break already
      
      * Rename `allow_missing` to `stop_on_incomplete_database`
      
      * Add `#[inline]` to `with_recorder_and_cache`
      
      * Use `with_recorder_and_cache` in `with_trie_db`; add doc comment
      
      * Simplify code: use `with_trie_db` in `next_storage_key_from_root`
      
      * Remove `expect`s in the benchmarking CLI
      
      * Add extra doc comments
      
      * Move `RawIter` before `TrieBackendEssence` (no code changes; just cut-paste)
      
      * Remove a TODO in tests
      
      * Update comment for `StorageIterator::was_complete`
      
      * Update `trie-db` to 0.25.1
      f8e3bdad
  30. Feb 21, 2023
  31. Feb 20, 2023
    • Michal Kucharczyk's avatar
      `BlockId` removal: `runtime-api` refactor (#13255) · 7a101541
      Michal Kucharczyk authored
      
      * BlockId removal: refactor of runtime API
      
      It changes the arguments of:
      - `ApiExt` methods:  `has_api`, `has_api_with`, `api_version`
      - `CallApiAt` method: `runtime_version_at`
      from: `BlockId<Block>` to: `Block::Hash`
      
      It also changes the first argument of all generated runtime API calls from: `BlockId<Block>` to: `Block::Hash`
      
      This PR is part of BlockId::Number refactoring analysis (paritytech/substrate#11292)
      
      * BlockId removal: refactor of runtime API - tests
      
      - tests adjusted to new runtime API,
      - some tests migrated from block number to block hash
      
      * benchmarking-cli: BlockId(0) migrated to info().genesis_hash
      
      `runtime_api.call()` now requires the block hash instead of BlockId::Number.
      To access the genesis hash widely used in benchmarking engine the Client
      was constrained to satisfy `sp_blockchain::HeaderBackend<Block>` trait
      which provides `info().genesis_hash`.
      
      * trivial: api.call(BlockId) -> api.call(Hash)
      
      - Migrated all `runtime_api.calls` to use Hash
      - Noteworthy (?):
      -- `validate_transaction_blocking` in transaction pool,
      
      * CallApiAtParams::at changed to Block::Hash
      
      * missed doc updated
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      
      * ".git/.scripts/commands/fmt/fmt.sh"
      
      * BlockId removal: Benchmark::consumed_weight
      
      Little refactor around `Benchmark::consumed_weight`: `BlockId` removed.
      
      * at_hash renamed
      
      * wrong merge fixed
      
      * beefy worker: merged with master
      
      * beefy: tests: missing block problem fixed
      
      * Apply review suggestion
      
      * fix
      
      ---------
      
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      Co-authored-by: command-bot <>
      7a101541
    • Dmitry Markin's avatar
      Use async/await instead of manual polling of `NetworkWorker` (#13219) · 8d033b6d
      Dmitry Markin authored
      
      * Convert `NetworkWorker::poll()` into async `next_action()`
      
      * Use `NetworkWorker::next_action` instead of `poll` in `sc-network-test`
      
      * Revert "Use `NetworkWorker::next_action` instead of `poll` in `sc-network-test`"
      
      This reverts commit 4b5d851ec864f78f9d083a18a618fbe117c896d2.
      
      * Fix `sc-network-test` to poll `NetworkWorker::next_action`
      
      * Fix `sc_network::service` tests to poll `NetworkWorker::next_action`
      
      * Fix docs
      
      * kick CI
      
      * Factor out `next_worker_message()` & `next_swarm_event()`
      
      * Error handling: replace `futures::pending!()` with `expect()`
      
      * Simplify stream polling in `select!`
      
      * Replace `NetworkWorker::next_action()` with `run()`
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      
      * minor: comment
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      
      * Print debug log when network future is shut down
      
      * Evaluate `NetworkWorker::run()` future once before the loop
      
      * Fix client code to match new `NetworkService` interfaces
      
      * Make clippy happy
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      
      * Revert "Apply suggestions from code review"
      
      This reverts commit 9fa646d0ed613e5f8623d3d37d1d59ec0a535850.
      
      * Make `NetworkWorker::run()` consume `self`
      
      * Terminate system RPC future if RPC rx stream has terminated.
      
      * Rewrite with let-else
      
      * Fix comments
      
      * Get `best_seen_block` and call `on_block_finalized` via `ChainSync` instead of `NetworkService`
      
      * rustfmt
      
      * make clippy happy
      
      * Tests: schedule wake if `next_action()` returned true
      
      * minor: comment
      
      * minor: fix `NetworkWorker` rustdoc
      
      * minor: amend the rustdoc
      
      * Fix bug that caused `on_demand_beefy_justification_sync` test to hang
      
      * rustfmt
      
      * Apply review suggestions
      
      ---------
      
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      8d033b6d
  32. Feb 16, 2023