Skip to content
  1. 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
  2. Dec 19, 2022
  3. Dec 17, 2022
  4. Dec 16, 2022
    • Bastian Köcher's avatar
      Fix missing block number issue on forced canonicalization (#12949) · f894c050
      Bastian Köcher authored
      * Fix missing block number issue on forced canonicalization
      
      There is this issue about missing block numbers on forced canonicalization. I looked over the code
      now 10000 times and there are possible ways this can be triggered, but I don't really know how this
      is triggered. So, this pr is going to solve the symptom and not the cause. The block number to hash
      mapping is set when we import a new best block. Forced canonicalization will now stop at the best
      block and it will canonicalize the other blocks later when the best block moved. As the error
      reports indicated that this issue mainly happened on major sync, there should not be any forks, so
      not doing the canonicalization directly shouldn't be that harmful. All known implementations should
      import all blocks as best block on major sync anyway (I mean somewhere there is the bug, but I
      didn't yet found it).
      
      I will also do some changes to Cumulus around some potential culprit for this issue.
      
      Closes: https://github.com/paritytech/substrate/issues/12613
      
      * Add some docs
      
      * Fix fix
      
      * Review comments
      
      * Review comments
      f894c050
    • Dmitry Markin's avatar
    • Bernardo A. Rodrigues's avatar
      improve ocw validator/collator CLI description (#12931) · 88feb686
      Bernardo A. Rodrigues authored
      
      
      * improve ocw validator/collator CLI description
      
      * rename WhenValidating to WhenAuthoring
      
      * Update client/cli/src/arg_enums.rs
      
      Co-authored-by: default avatarAlexandru Vasile <[email protected]>
      
      Co-authored-by: default avatarAlexandru Vasile <[email protected]>
      88feb686
  5. Dec 15, 2022
  6. Dec 14, 2022
  7. Dec 12, 2022
  8. Dec 10, 2022
    • Bastian Köcher's avatar
      Ensure that we inform all tasks to stop before starting the 60 seconds shutdown (#12897) · 2f2e481d
      Bastian Köcher authored
      * Ensure that we inform all tasks to stop before starting the 60 seconds shutdown
      
      The change of waiting in maximum 60 seconds for the node to shutdown actually introduced a bug. We
      were actually waiting always 60 seconds as we didn't informed our tasks to shutdown. The solution to
      this problem is to drop the task manager as this will then inform all tasks to end. It also adds
      tests to ensure that the behaviors work as expected. (This should already have been done in the
      first pr! :()
      
      * ".git/.scripts/fmt.sh" 1
      
      Co-authored-by: command-bot <>
      2f2e481d
  9. Dec 09, 2022
  10. Dec 08, 2022
  11. Dec 07, 2022
    • João Paulo Silva de Souza's avatar
      Implement crate publishing on CI (#12768) · 8751f88f
      João Paulo Silva de Souza authored
      
      
      * implement crate publishing from CI
      
      * fix indentation
      
      * use resource_group for job exclusivity
      
      ensure that at most one instance of the publish-crates job is running at any given time to prevent race conditions
      
      * correct publish = false
      
      * Remove YAML anchors as GitLab's `extends:` doesn't need it
      
      * Temporarily force cache upload for the new jobs
      
      * Revert `RUSTY_CACHIER_FORCE_UPLOAD`
      
      * pin libp2p-tcp=0.37.0 for sc-telemetry
      
      * Revert "pin libp2p-tcp=0.37.0 for sc-telemetry"
      
      This reverts commit 29146bfad6c31e8cf0e2f17ad92a71bb81a373af.
      
      * always collect generated crates
      
      * increase timeout for publish-crates-template
      
      * Force upload the new job cache again
      
      * Revert "Force upload the new job cache again"
      
      This reverts commit 5a5feee1b2c51fdef768b25a76be4c3949ec1c99.
      
      * reformat
      
      * improve timeout explanation
      
      * s/usual/average
      
      Co-authored-by: Vladimir Istyufeev's avatarVladimir Istyufeev <[email protected]>
      8751f88f
    • Alexander Theißen's avatar
      Remove sandboxing host function interface (#12852) · 32578cb0
      Alexander Theißen authored
      * Remove sandboxing interface
      
      * Remove unused struct
      32578cb0
    • Adrian Catangiu's avatar
      Mmr persist state (#12822) · 1657feae
      Adrian Catangiu authored
      
      
      client/mmr: persisting gadget state across runs
      
      Fixes #12780
      
      * client/mmr: on init do canonicalization catch-up
      
      * client/mmr: add more tests
      
      * client/mmr: persist gadget progress in aux db
      
      * client/mmr: add more tests
      
      * client/mmr: replace async_std with tokio
      
      * remove leftover comment
      
      * address review comments
      
      Signed-off-by: default avataracatangiu <[email protected]>
      1657feae
  12. Dec 06, 2022
  13. Dec 05, 2022
    • dharjeezy's avatar
      client/beefy: add some bounds on enqueued votes (#12562) · 91e6de05
      dharjeezy authored
      
      
      Introduce bounds on the justifications and votes queues, so they do not grow forever if voter cannot make progress and consume from them. When bounds are hit, new votes or justifications get dropped.
      
      * use a BTreeMap and check for bounds
      
      * cargo fmt
      
      * use usize
      
      Co-authored-by: default avatarAdrian Catangiu <[email protected]>
      91e6de05
    • 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
  14. 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
  15. Nov 30, 2022
  16. Nov 29, 2022
  17. Nov 28, 2022
  18. Nov 27, 2022
    • Bastian Köcher's avatar
      ed25519_verify: Support using dalek for historical blocks (#12661) · 0c934a93
      Bastian Köcher authored
      
      
      * ed25519_verify: Support using dalek for historical blocks
      
      The switch from `ed25519-dalek` to `ed25519-zebra` was actually a breaking change. `ed25519-zebra`
      is more permissive. To support historical blocks when syncing a chain this pull request introduces
      an externalities extension `UseDalekExt`. This extension is just used as a signaling mechanism to
      `ed25519_verify` to use `ed25519-dalek` when it is present. Together with `ExtensionBeforeBlock` it
      can be used to setup a node in way to sync historical blocks that require `ed25519-dalek`, because
      they included a transaction that verified differently as when using `ed25519-zebra`.
      
      This feature can be enabled in the following way. In the chain service file, directly after the
      client is created, the following code should be added:
      
      ```
      use sc_client_api::ExecutorProvider;
      client.execution_extensions().set_extensions_factory(
      	sc_client_api::execution_extensions::ExtensionBeforeBlock::<Block, sp_io::UseDalekExt>::new(BLOCK_NUMBER_UNTIL_DALEK_SHOULD_BE_USED)
      );
      ```
      
      * Fix doc
      
      * More fixes
      
      * Update client/api/src/execution_extensions.rs
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      
      * Fix merge and warning
      
      * Fix docs
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      0c934a93
  19. Nov 25, 2022
  20. Nov 23, 2022
  21. Nov 22, 2022
  22. Nov 21, 2022
    • Adrian Catangiu's avatar
      client/beefy: persist voter state (#12712) · 3e7a2778
      Adrian Catangiu authored
      
      
      * client/beefy: prepare worker for persisting state
      
      * client/beefy: persist voter state
      
      * client/beefy: initialize persistent state
      
      * client/beefy: try to vote from the very beginning
      
      Now that voter is initialized from persistent state, it makes
      sense that it can attempt voting right away. This also helps
      the genesis case when we consider block `One` as mandatory.
      
      * client/beefy: add tests for voter state db
      * client/beefy: persist voter state as soon as initialized
      * client/beefy: make sure min-block-delta is at least 1
      * client/beefy: persist state after voting
      
      Persist state after handling self vote to avoid double voting in case
      of voter restarts.
      
      * client/beefy: persist state after handling mandatory block vote
      
      For mandatory blocks we want to make sure we're not losing votes
      in case of crashes or restarts, since voter will not make further
      progress without finalizing them.
      
      * frame/beefy: use GENESIS_AUTHORITY_SET_ID on pallet genesis
      
      * client/beefy: initialize voter at either genesis or last finalized
      To guarantee unbroken chain of mandatory blocks justifications, voter
      will always resume from either last BEEFY-justified block or
      `pallet-beefy` genesis, whichever is more recent.
      
      Initialization walks back the chain from latest GRANDPA finalized
      block looking for one of the above. Along the way, it also records
      and enqueues for processing any BEEFY mandatory blocks that have
      been already GRANDPA finalized but not BEEFY finalized.
      
      * client/beefy: decouple voter init from aux db state load
      * client/beefy: fix voter init tests
      * remove debug prints
      * gadget future must be type ()
      * fix init from last justification
      
      Signed-off-by: default avatarAdrian Catangiu <[email protected]>
      3e7a2778
  23. Nov 18, 2022