Skip to content
  1. Feb 21, 2023
  2. 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 <[email protected]>
      
      * ".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 <[email protected]>
      Co-authored-by: command-bot <>
      7a101541
  3. Feb 17, 2023
    • Adrian Catangiu's avatar
      BEEFY: implement equivocations detection, reporting and slashing (#13121) · c21f292a
      Adrian Catangiu authored
      
      
      * client/beefy: simplify self_vote logic
      
      * client/beefy: migrate to new state version
      
      * client/beefy: detect equivocated votes
      
      * fix typos
      
      * sp-beefy: add equivocation primitives
      
      * client/beefy: refactor vote processing
      
      * fix version migration for new rounds struct
      
      * client/beefy: track equivocations and create proofs
      
      * client/beefy: adjust tests for new voting logic
      
      * sp-beefy: fix commitment ordering and equality
      
      * client/beefy: simplify handle_vote() a bit
      
      * client/beefy: add simple equivocation test
      
      * client/beefy: submit equivocation proof - WIP
      
      * frame/beefy: add equivocation report runtime api - part 1
      
      * frame/beefy: report equivocation logic - part 2
      
      * frame/beefy: add pluggable Equivocation handler - part 3
      
      * frame/beefy: impl ValidateUnsigned for equivocations reporting
      
      * client/beefy: submit report equivocation unsigned extrinsic
      
      * primitives/beefy: fix tests
      
      * frame/beefy: add default weights
      
      * frame/beefy: fix tests
      
      * client/beefy: fix tests
      
      * frame/beefy-mmr: fix tests
      
      * frame/beefy: cross-check session index with equivocation report
      
      * sp-beefy: make test Keyring useable in pallet
      
      * frame/beefy: add basic equivocation test
      
      * frame/beefy: test verify equivocation results in slashing
      
      * frame/beefy: test report_equivocation_old_set
      
      * frame/beefy: add more equivocation tests
      
      * sp-beefy: fix docs
      
      * beefy: simplify equivocations and fix tests
      
      * client/beefy: address review comments
      
      * frame/beefy: add ValidateUnsigned to test/mock runtime
      
      * client/beefy: fixes after merge master
      
      * fix missed merge damage
      
      * client/beefy: add test for reporting equivocations
      
      Also validated there's no unexpected equivocations reported in the
      other tests.
      
      Signed-off-by: default avataracatangiu <[email protected]>
      
      * sp-beefy: move test utils to their own file
      
      * client/beefy: add negative test for equivocation reports
      
      * sp-beefy: move back MmrRootProvider - used in polkadot-service
      
      * impl review suggestions
      
      * client/beefy: add equivocation metrics
      
      ---------
      
      Signed-off-by: default avataracatangiu <[email protected]>
      Co-authored-by: parity-processbot <>
      c21f292a
  4. Feb 15, 2023
  5. Feb 11, 2023
  6. Feb 08, 2023
  7. Feb 02, 2023
  8. Jan 29, 2023
  9. Jan 27, 2023
  10. Jan 26, 2023
    • Bastian Köcher's avatar
      Aura: Fix warp syncing (#13221) · 41f819eb
      Bastian Köcher authored
      * Aura: Fix warp syncing
      
      We need to set the fork choice rule! When using Cumulus this is done by the `ParachainsBlockImport`,
      but for standalone chains we still need this!
      
      Closes: https://github.com/paritytech/substrate/issues/13220
      
      * Improve fork choice
      41f819eb
  11. Jan 25, 2023
  12. Jan 21, 2023
    • Bastian Köcher's avatar
      Fix flaky BABE test (#13199) · a8d7cda7
      Bastian Köcher authored
      The `authoring_blocks` test of BABE was calculating the slot based on the timestamp it sometimes
      failed in CI. The problem is that we combine all the notifications and authoring futures in one big
      future. This one big future may first polls one authoring future to build a block. Then it polls all
      notification futures again to import the block. Then some other authoring future is polled and
      builds on the imported block using the same slot and making the import fail. The solution is that we
      just artificially increase the slot to make the test work.
      a8d7cda7
  13. Jan 19, 2023
  14. Jan 17, 2023
    • Davide Galassi's avatar
      Refactory of `next_slot` method (#13155) · 09ddb373
      Davide Galassi authored
      Refactory of `next_slot` method
      
      * Prevents slot worker exit if inherent data provider creation fails
      * Failure is not possible anymore
      * Fix potential failure after warp-sync where block headers of not already downloaded blocks are used by the inherent data provider
      09ddb373
  15. Jan 12, 2023
  16. Jan 05, 2023
    • André Silva's avatar
      37e137e5
    • Anton's avatar
      upgrade libp2p to 0.50.0 (#12734) · f2dcd952
      Anton authored
      * upgrade libp2p to 0.50.0
      
      * on_swarm_event and on_connection_handler_event
      
      * replace `Swarm::new` with `Swarm::with_threadpool_executor`
      
      * on_swarm_event and on_connection_handler_event part 2
      
      * on_swarm_event and on_connection_handler_event part 3
      
      * on_swarm_event and on_connection_handler_event part 4
      
      * update libp2p
      
      * libp2p 0.50.0
      
      * rename OutboundQueryCompleted to OutboundQueryProgressed
      
      refs https://github.com/libp2p/rust-libp2p/pull/2712
      
      * remove unused var
      
      * accumulate outbound_query_records until query is finished
      
      * format code
      
      * use p_handler instead of new_handler
      
      https://github.com/paritytech/substrate/pull/12734#discussion_r1027640610
      
      * pass ListenFailure to kademlia
      
      https://github.com/paritytech/substrate/pull/12734#discussion_r1034716664
      
      * use tokio executor in tests
      
      https://github.com/paritytech/substrate/pull/12734#discussion_r1039291776
      
      * use chrono Local::now
      
      instead of deprecated Local::today
      
      * remove unused vars from request_responses tests
      
      * attempt to fix pallet UI tests
      
      * restart CI
      
      * restart CI
      
      * restart CI
      
      * restart CI
      
      * restart CI
      
      * restart CI
      
      * restart CI
      
      * restart CI
      f2dcd952
  17. Jan 04, 2023
  18. Dec 24, 2022
    • André Silva's avatar
      babe: allow skipping over empty epochs (#11727) · 017cf703
      André Silva authored
      
      
      * babe: allow skipping epochs in pallet
      
      * babe: detect and skip epochs on client
      
      * babe: cleaner epoch util functions
      
      * babe: add test for runtime handling of skipped epochs
      
      * babe: simpler implementation of client handling of skipped epochs
      
      * babe: test client-side handling of skipped epochs
      
      * babe: add comments on client-side skipped epochs
      
      * babe: remove emptyline
      
      * babe: make it resilient to forks
      
      * babe: typo
      
      * babe: overflow-safe math
      
      * babe: add test for skipping epochs across different forks
      
      * Fix tests
      
      * FMT
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      017cf703
  19. Dec 23, 2022
  20. Dec 21, 2022
  21. Dec 20, 2022
    • Michal Kucharczyk's avatar
      `BlockId` removal: refactor: `HeaderBackend::header` (#12874) · 548955a7
      Michal Kucharczyk authored
      * BlockId removal: refactor: HeaderBackend::header
      
      It changes the arguments of:
      - `HeaderBackend::header`,
      - `Client::header`,
      - `PeersClient::header`
      - `ChainApi::block_header`
      
      methods from: `BlockId<Block>` to: `Block::Hash`
      
      This PR is part of BlockId::Number refactoring analysis (paritytech/substrate#11292)
      
      * non-trivial usages of haeder(block_id) refactored
      
      This may required introduction of dedicated function:
      header_for_block_num
      
      * fmt
      
      * fix
      
      * doc fixed
      
      * ".git/.scripts/fmt.sh"
      
      * BlockId removal: refactor: HeaderBackend::expect_header
      
      It changes the arguments of `HeaderBackend::expect_header` method from: `BlockId<Block>` to: `Block::Hash`
      
      * ".git/.scripts/fmt.sh"
      
      * readme updated
      
      * ".git/.scripts/fmt.sh"
      
      * fix
      
      Co-authored-by: parity-processbot <>
      548955a7
  22. Dec 19, 2022
    • Qinxuan Chen's avatar
      *: update `rand` to v0.8.5 (#12962) · 40c04cf1
      Qinxuan Chen authored
      * *: update rand to v0.8.5
      
      * *: remove useless deps from Cargo.toml
      
      * fix pallet-session-benchmarking
      
      * fix pallet-election-provider-support test
      
      * remove useless rand from dev-dependencies
      40c04cf1
  23. Dec 16, 2022
  24. Dec 14, 2022
  25. Dec 12, 2022
    • Niklas Adolfsson's avatar
      rpc server with HTTP/WS on the same socket (#12663) · 84303ca7
      Niklas Adolfsson authored
      * jsonrpsee v0.16
      
      add backwards compatibility
      
      run old http server on http only
      
      * cargo fmt
      
      * update jsonrpsee 0.16.1
      
      * less verbose cors log
      
      * fix nit in log: WS -> HTTP
      
      * revert needless changes in Cargo.lock
      
      * remove unused features in tower
      
      * fix nits; add client-core feature
      
      * jsonrpsee v0.16.2
      84303ca7
  26. Dec 09, 2022
    • Aaro Altonen's avatar
      Move import queue out of `sc-network` (#12764) · d6827185
      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.
      
      * Fix tests
      
      * Apply review comments
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      * Update client/network/sync/src/lib.rs
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      d6827185
  27. Dec 05, 2022
    • Dmitry Markin's avatar
      Upgrade tokio to 1.22.0 and replace async-std with tokio (#12646) · 5eb84f9c
      Dmitry Markin authored
      * Replace deprecated libp2p feature specs with correct ones
      
      * Bump tokio to 1.21.2
      
      * Replace async-std libp2p primitives with tokio ones
      
      * minor: rustfmt
      
      * Fix TestNet to run initialization in the tokio context
      
      * Convert telemetry test from async-std to tokio
      
      * Convert notifications tests from async-std to tokio
      
      * Convert chain sync tests from async-std to tokio
      
      * Ditch async-std completely
      
      * Make executor mandatory
      
      * Bump tokio to 1.22.0
      
      * minor: rustfmt
      
      * Explicitly use tokio runtime in tests
      
      * Move more tests to explicit tokio runtime
      
      * Explicitly set multithreaded runtime in tokio test
      
      * minor: rustfmt
      
      * minor: fix comment
      
      * Replace async-std with tokio in MMR tests
      5eb84f9c
  28. Dec 01, 2022
    • alexgparity's avatar
      Reduce provisioner work (#12749) · d20e4958
      alexgparity authored
      
      
      * Move create_inherent_data call to use side
      
      * Make provide_inherent_data async
      
      * Fix tests
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      * Log errors
      
      * Fix test
      
      * Fix test
      
      * fix
      
      * Deduplicate test code
      
      * fix
      
      * flag
      
      * Update client/consensus/slots/src/lib.rs
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      * Revert "Deduplicate test code"
      
      This reverts commit ba46adbe089329c78cd69ccdb08e27ed67bd77cf.
      
      * Fix test
      
      * remove commented out code
      
      * minor to start CI run
      
      * start CI
      
      * Update client/consensus/slots/src/lib.rs
      
      Co-authored-by: default avatarMarcin S. <[email protected]>
      
      * Apply PR suggestions
      
      * Apply PR suggestions
      
      * Update client/consensus/slots/src/lib.rs
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      * minor
      
      * kickoff CI
      
      * PR suggestions
      
      * Compute remaining duration instead of using slot_info.duration
      
      * Don't rely on sub implementation for Instant
      
      * Apply PR suggestions
      
      * Use saturating_duration_since
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      Co-authored-by: default avatarMarcin S. <[email protected]>
      Co-authored-by: parity-processbot <>
      d20e4958
  29. Nov 29, 2022
  30. Nov 23, 2022
  31. Nov 16, 2022
  32. Nov 15, 2022
  33. Nov 09, 2022
  34. Nov 07, 2022
  35. Oct 28, 2022
    • Bastian Köcher's avatar
      Aura: Adds some compatibility mode to support old chains (#12492) · 33b61f0e
      Bastian Köcher authored
      
      
      * Aura: Adds some compatibility mode to support old chains
      
      In https://github.com/paritytech/substrate/pull/9132 we changed the way how we get the authorities
      from the runtime. Before this mentioned pr we would call `initialize_block` before calling the
      authorities runtime function. The problem with this was that when you have a block X that would
      switch the authority set, it would already be signed by an authority of the new set. This was wrong,
      as a block should only be signed by the current authority set. As this change is a hard fork, this
      pr brings back the possibility for users that have a chain running with this old logic to upgrade.
      
      They will need to use:
      ```
      CompatibilityMode::UseInitializeBlock { until: some_block_in_the_future }
      ```
      
      Using this compatibility mode will make the node behave like the old nodes, aka calling
      `initialize_block` before doing the actual runtime call to `authorities`. Then when the given
      `until` block is being build/imported the node switches to the new behaviour of not calling
      `initialize_block` before. This is a hard fork, so the `until` block should be chosen wisely as a
      point where all nodes in the network have upgraded.
      
      * Fixes
      
      * Make docs ready
      
      * Update client/consensus/aura/src/lib.rs
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      
      * Update client/consensus/aura/src/lib.rs
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      
      * Update client/consensus/aura/src/lib.rs
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      
      * FMT
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      33b61f0e
  36. Oct 24, 2022
  37. Oct 20, 2022
    • Michal Kucharczyk's avatar
      BlockId removal: refactor: Finalizer (#12528) · 749bcd19
      Michal Kucharczyk authored
      * BlockId removal: refactor: Finalizer
      
      It changes the arguments of methods of `Finalizer` trait from:
      block: `BlockId<Block>` to: hash: `&Block::Hash`
      
      This PR is part of BlockId::Number refactoring analysis (paritytech/substrate#11292)
      
      * minor corrections
      
      * failing test corrected
      
      * minor rework
      749bcd19