Skip to content
Snippets Groups Projects
  1. Jan 15, 2025
  2. Jan 14, 2025
    • Sebastian Kunert's avatar
      Parachains: Use relay chain slot for velocity measurement (#6825) · d5539aa6
      Sebastian Kunert authored
      
      closes #3967 
      
      ## Changes
      We now use relay chain slots to measure velocity on chain. Previously we
      were storing the current parachain slot. Then in `on_state_proof` of the
      `ConsensusHook` we were checking how many blocks were athored in the
      current parachain slot. This works well when the parachain slot time and
      relay chain slot time is the same. With elastic scaling, we can have
      parachain slot times lower than that of the relay chain. In these cases
      we want to measure velocity in relation to the relay chain. This PR
      adjusts that.
      
      
      ##  Migration
      This PR includes a migration. Storage item `SlotInfo` of pallet
      `aura-ext` is renamed to `RelaySlotInfo` to better reflect its new
      content. A migration has been added that just kills the old storage
      item. `RelaySlotInfo` will be `None` initially but its value will be
      adjusted after one new relay chain slot arrives.
      
      ---------
      
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarBastian Köcher <git@kchr...>
    • Bastian Köcher's avatar
    • Carlo Sala's avatar
      xcm: convert properly assets in xcmpayment apis (#7134) · 85c244f6
      Carlo Sala authored
      
      Port #6459 changes to relays as well, which were probably forgotten in
      that PR.
      Thanks!
      
      ---------
      
      Co-authored-by: default avatarFrancisco Aguirre <franciscoaguirreperez@gmail.com>
      Co-authored-by: command-bot <>
    • Sebastian Kunert's avatar
      CI: Only format umbrella crate during umbrella check (#7139) · ba36b2d2
      Sebastian Kunert authored
      The umbrella crate quick-check was always failing whenever there was
      something misformated in the whole codebase.
      This leads to an error that indicates that a new crate was added, even
      when it was not.
      
      After this PR we only apply `cargo fmt` to the newly generated umbrella
      crate `polkadot-sdk`. This results in this check being independent from
      the fmt job which should check the entire codebase.
    • Alexandru Gheorghe's avatar
      approval-voting: Fix sending of assignments after restart (#6973) · d38bb953
      Alexandru Gheorghe authored
      There is a problem on restart where nodes will not trigger their needed
      assignment if they were offline while the time of the assignment passed.
      
      That happens because after restart we will hit this condition
      https://github.com/paritytech/polkadot-sdk/blob/4e805ca0
      
      /polkadot/node/core/approval-voting/src/lib.rs#L2495
      and considered will be `tick_now` which is already higher than the tick
      of our assignment.
      
      The fix is to schedule a wakeup for untriggered assignments at restart
      and let the logic of processing an wakeup decide if it needs to trigger
      the assignment or not.
      
      One thing that we need to be careful here is to make sure we don't
      schedule the wake up immediately after restart because, the node would
      still be behind with all the assignments that should have received and
      might make it wrongfully decide it needs to trigger its assignment, so I
      added a `RESTART_WAKEUP_DELAY: Tick = 12` which should be more than
      enough for the node to catch up.
      
      ---------
      
      Signed-off-by: default avatarAlexandru Gheorghe <alexandru.gheorghe@parity.io>
      Co-authored-by: default avatarordian <write@reusable.software>
      Co-authored-by: default avatarAndrei Eres <eresav@me.com>
    • Alexandru Gheorghe's avatar
      Retry approval on availability failure if the check is still needed (#6807) · 6878ba1f
      Alexandru Gheorghe authored
      
      Recovering the POV can fail in situation where the node just restart and
      the DHT topology wasn't fully discovered yet, so the current node can't
      connect to most of its Peers. This is bad because for gossiping the
      assignment you need to be connected to just a few peers, so because we
      can't approve the candidate and other nodes will see this as a no show.
      
      This becomes bad in the scenario where you've got a lot of nodes
      restarting at the same time, so you end up having a lot of no-shows in
      the network that are never covered, in that case it makes sense for
      nodes to actually retry approving the candidate at a later data in time
      and retry several times if the block containing the candidate wasn't
      approved.
      
      ## TODO
      - [x] Add a subsystem test.
      
      ---------
      
      Signed-off-by: default avatarAlexandru Gheorghe <alexandru.gheorghe@parity.io>
    • PG Herveou's avatar
      [pallet-revive-eth-rpc] persist eth transaction hash (#6836) · 023763da
      PG Herveou authored
      
      Add an option to persist EVM transaction hash to a SQL db.
      This should make it possible to run a full archive ETH RPC node
      (assuming the substrate node is also a full archive node)
      
      Some queries such as eth_getTransactionByHash,
      eth_getBlockTransactionCountByHash, and other need to work with a
      transaction hash indexes, which are not stored in Substrate and need to
      be stored by the eth-rpc proxy.
      
      The refactoring break down the Client into a `BlockInfoProvider` and
      `ReceiptProvider`
      - BlockInfoProvider does not need any persistence data, as we can fetch
      all block info from the source substrate chain
      - ReceiptProvider comes in two flavor, 
        - An in memory cache implementation - This is the one we had so far.
      - A DB implementation - This one persist rows with the block_hash, the
      transaction_index and the transaction_hash, so that we can later fetch
      the block and extrinsic for that receipt and reconstruct the ReceiptInfo
      object.
      
      This PR also adds a new binary eth-indexer, that iterate past and new
      blocks and write the receipt hashes to the DB using the new
      ReceiptProvider.
      
      ---------
      
      Co-authored-by: default avatarGitHub Action <action@github.com>
      Co-authored-by: command-bot <>
    • Alexandru Vasile's avatar
      litep2p: Sufix litep2p to the identify agent version for visibility (#7133) · 105c5b94
      Alexandru Vasile authored
      This PR adds the `(litep2p)` suffix to the agent version (user agent) of
      the identify protocol.
      
      The change is needed to gain visibility into network backends and
      determine exactly the number of validators that are running litep2p.
      Using tools like subp2p-explorer, we can determine if the validators are
      running litep2p nodes.
      
      This reflects on the identify protocol:
      
      ```
      info=Identify {
        protocol_version: Some("/substrate/1.0"),
        agent_version: Some("polkadot-parachain/v1.17.0-967989c5
      
       (kusama-node-name-01) (litep2p)")
        ...
      }
      ```
      
      cc @paritytech/networking
      
      ---------
      
      Signed-off-by: default avatarAlexandru Vasile <alexandru.vasile@parity.io>
    • Michal Kucharczyk's avatar
      `fatxpool`: proper handling of priorities when mempool is full (#6647) · f4743b00
      Michal Kucharczyk authored
      
      Higher-priority transactions can now replace lower-priority transactions
      even when the internal _tx_mem_pool_ is full.
      
      **Notes for reviewers:**
      - The _tx_mem_pool_ now maintains information about transaction
      priority. Although _tx_mem_pool_ itself is stateless, transaction
      priority is updated after submission to the view. An alternative
      approach could involve validating transactions at the `at` block, but
      this is computationally expensive. To avoid additional validation
      overhead, I opted to use the priority obtained from runtime during
      submission to the view. This is the rationale behind introducing the
      `SubmitOutcome` struct, which synchronously communicates transaction
      priority from the view to the pool. This results in a very brief window
      during which the transaction priority remains unknown - those
      transaction are not taken into consideration while dropping takes place.
      In the future, if needed, we could update transaction priority using
      view revalidation results to keep this information fully up-to-date (as
      priority of transaction may change with chain-state evolution).
      - When _tx_mem_pool_ becomes full (an event anticipated to be rare),
      transaction priority must be known to perform priority-based removal. In
      such cases, the most recent block known is utilized for validation. I
      think that speculative submission to the view and re-using the priority
      from this submission would be an unnecessary complication.
      - Once the priority is determined, lower-priority transactions whose
      cumulative size meets or exceeds the size of the new transaction are
      collected to ensure the pool size limit is not exceeded.
      - Transaction removed from _tx_mem_pool_ , also needs to be removed from
      all the views with appropriate event (which is done by
      `remove_transaction_subtree`). To ensure complete removal, the
      `PendingTxReplacement` struct was re-factored to more generic
      `PendingPreInsertTask` (introduced in #6405) which covers removal and
      submssion of transaction in the view which may be potentially created in
      the background. This is to ensure that removed transaction will not
      re-enter to the newly created view.
      - `submit_local` implementation was also improved to properly handle
      priorities in case when mempool is full. Some missing tests for this
      method were also added.
      
      Closes: #5809
      
      ---------
      
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarIulian Barbu <14218860+iulianbarbu@users.noreply.github.com>
    • Alin Dima's avatar
  3. Jan 13, 2025
    • polka.dom's avatar
      Remove usage of the pallet::getter macro from pallet-grandpa (#4529) · cccefdd9
      polka.dom authored
      
      As per #3326, removes pallet::getter macro usage from pallet-grandpa.
      The syntax `StorageItem::<T, I>::get()` should be used instead.
      
      cc @muraca
      
      ---------
      
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
    • Michal Kucharczyk's avatar
      `fatxpool`: rotator cache size now depends on pool's limits (#7102) · 0e0fa478
      Michal Kucharczyk authored
      # Description
      
      This PR modifies the hard-coded size of extrinsics cache within
      [`PoolRotator`](https://github.com/paritytech/polkadot-sdk/blob/cdf107de/substrate/client/transaction-pool/src/graph/rotator.rs#L36-L45)
      to be inline with pool limits.
      
      The problem was, that due to small size (comparing to number of txs in
      single block) of hard coded size:
      
      https://github.com/paritytech/polkadot-sdk/blob/cdf107de/substrate/client/transaction-pool/src/graph/rotator.rs#L34
      excessive number of unnecessary verification were performed in
      `prune_tags`:
      
      https://github.com/paritytech/polkadot-sdk/blob/cdf107de
      
      /substrate/client/transaction-pool/src/graph/pool.rs#L369-L370
      
      This was resulting in quite long durations of `prune_tags` execution
      time (which was ok for 6s, but becomes noticable for 2s blocks):
      ```
      Pruning at HashAndNumber { number: 83, ... }. Resubmitting transactions: 6142, reverification took: 237.818955ms    
      Pruning at HashAndNumber { number: 84, ... }. Resubmitting transactions: 5985, reverification took: 222.118218ms    
      Pruning at HashAndNumber { number: 85, ... }. Resubmitting transactions: 5981, reverification took: 215.546847ms
      ```
      
      The fix reduces the overhead:
      ```
      Pruning at HashAndNumber { number: 92, ... }. Resubmitting transactions: 6325, reverification took: 14.728354ms    
      Pruning at HashAndNumber { number: 93, ... }. Resubmitting transactions: 7030, reverification took: 23.973607ms    
      Pruning at HashAndNumber { number: 94, ... }. Resubmitting transactions: 4465, reverification took: 9.532472ms    
      ```
      
      ## Review Notes
      I decided to leave the hardocded `EXPECTED_SIZE` for the legacy
      transaction pool. Removing verification of transactions during
      re-submission may negatively impact the behavior of the legacy
      (single-state) pool. As in long-term we probably want to deprecate old
      pool, I did not invest time to assess the impact of rotator change in
      behavior of the legacy pool.
      
      ---------
      
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarIulian Barbu <14218860+iulianbarbu@users.noreply.github.com>
    • Alexandru Gheorghe's avatar
      Increase the number of pvf execute workers (#7116) · f0eec07f
      Alexandru Gheorghe authored
      
      Reference hardware requirements have been bumped to at least 8 cores so
      we can no allocate 50% of that capacity to PVF execution.
      
      ---------
      
      Signed-off-by: default avatarAlexandru Gheorghe <alexandru.gheorghe@parity.io>
    • PG Herveou's avatar
      [pallet-revive] Update gas encoding (#6689) · ba572ae8
      PG Herveou authored
      
      Update the current approach to attach the `ref_time`, `pov` and
      `deposit` parameters to an Ethereum transaction.
      Previously we will pass these 3 parameters along with the signed
      payload, and check that the fees resulting from `gas x gas_price` match
      the actual fees paid by the user for the extrinsic.
      
      This approach unfortunately can be attacked. A malicious actor could
      force such a transaction to fail by injecting low values for some of
      these extra parameters as they are not part of the signed payload.
      
      The new approach encodes these 3 extra parameters in the lower digits of
      the transaction gas, approximating the the log2 of the actual values to
      encode each components on 2 digits
      
      ---------
      
      Co-authored-by: default avatarGitHub Action <action@github.com>
      Co-authored-by: command-bot <>
    • Branislav Kontur's avatar
      xcm: Fixes for `UnpaidLocalExporter` (#7126) · 2f7cf417
      Branislav Kontur authored
      ## Description
      
      This PR deprecates `UnpaidLocalExporter` in favor of the new
      `LocalExporter`. First, the name is misleading, as it can be used in
      both paid and unpaid scenarios. Second, it contains a hard-coded channel
      0, whereas `LocalExporter` uses the same algorithm as `xcm-exporter`.
      
      ## Future Improvements  
      
      Remove the `channel` argument and slightly modify the
      `ExportXcm::validate` signature as part of [this
      issue](https://github.com/orgs/paritytech/projects/145/views/8?pane=issue&itemId=84899273).
      
      ---------
      
      Co-authored-by: command-bot <>
    • Bastian Köcher's avatar
      reference-docs: Start `state` and mention well known keys (#7037) · 7d8e3a43
      Bastian Köcher authored
      Closes: https://github.com/paritytech/polkadot-sdk/issues/7033
  4. Jan 11, 2025
  5. Jan 10, 2025
  6. Jan 09, 2025
    • Andrei Eres's avatar
      networking-bench: Update benchmarks payload (#7056) · 6bfe4523
      Andrei Eres authored
      # Description
      
      - Used 10 notifications and requests within the benchmarks. After moving
      the network workers' initialization out of the benchmarks, it is
      acceptable to use this small number without losing precision.
      - Removed the 128MB payload that consumed most of the execution time.
    • seemantaggarwal's avatar
      Migrating salary pallet to use umbrella crate (#7048) · 2f179585
      seemantaggarwal authored
      # Description
      
      Migrating salary pallet to use umbrella crate. It is a follow-up from
      https://github.com/paritytech/polkadot-sdk/pull/7025
      Why did I create this new branch? 
      I did this, so that the unnecessary cargo fmt changes from the previous
      branch are discarded and hence opened this new PR.
      
      
      
      ## Review Notes
      
      This PR migrates pallet-salary to use the umbrella crate.
      
      Added change: Explanation requested for why `TestExternalities` was
      replaced by `TestState` as testing_prelude already includes it
      `pub use sp_io::TestExternalities as TestState;`
      
      
      I have also modified the defensive! macro to be compatible with umbrella
      crate as it was being used in the salary pallet
    • wmjae's avatar
      fix typo (#7096) · cdf107de
      wmjae authored
      
      Co-authored-by: default avatarDónal Murray <donalm@seadanda.dev>
  7. Jan 07, 2025
    • Alistair Singh's avatar
      Snowbridge: Support bridging native ETH (#6855) · 4059282f
      Alistair Singh authored
      
      Changes:
      1. Use the 0x0000000000000000000000000000000000000000 token address as
      Native ETH.
      2. Convert it to/from `{ parents: 2, interior:
      X1(GlobalConsensus(Ethereum{chain_id: 1})) }` when encountered.
      
      Onchain changes:
      This will require a governance request to register native ETH (with the
      above location) in the foreign assets pallet and make it sufficient.
      
      Related solidity changes:
      https://github.com/Snowfork/snowbridge/pull/1354
      
      TODO:
      - [x] Emulated Tests
      
      ---------
      
      Co-authored-by: default avatarVincent Geddes <117534+vgeddes@users.noreply.github.com>
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      Co-authored-by: default avatarBastian Köcher <info@kchr.de>
    • Ludovic_Domingues's avatar
      adding warning when using default substrateWeight in production (#7046) · 645878a2
      Ludovic_Domingues authored
      
      PR for #3581 
      Added a cfg to show a deprecated warning message when using std
      
      ---------
      
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarAdrian Catangiu <adrian@parity.io>
    • Iulian Barbu's avatar
      release: unset SKIP_WASM_BUILD (#7074) · a5780527
      Iulian Barbu authored
      # Description
      
      Seems like I added `SKIP_WASM_BUILD=1` :skull:
      
       for arch64 binaries, which
      results in various errors like:
      https://github.com/paritytech/polkadot-sdk/issues/6966. This PR unsets
      the variable.
      
      Closes #6966.
      
      ## Integration
      
      People who found workarounds as in #6966 can consume the fixed binaries
      again.
      
      ## Review Notes
      
      I introduced SKIP_WASM_BUILD=1 for some reason for aarch64 (probably to
      speed up testing) and forgot to remove it. It slipped through and
      interfered with `stable2412` release artifacts. Needs backporting to
      `stable2412` and then rebuilding/overwriting the aarch64 artifacts.
      
      ---------
      
      Signed-off-by: default avatarIulian Barbu <iulian.barbu@parity.io>
    • wmjae's avatar
      fix typos (#7068) · f4f56f6c
      wmjae authored
      
      Co-authored-by: default avatarDónal Murray <donalm@seadanda.dev>
      Co-authored-by: default avatarDónal Murray <donal.murray@parity.io>
      Co-authored-by: default avatarShawn Tabrizi <shawntabrizi@gmail.com>
    • Ludovic_Domingues's avatar
      Fix defensive! macro to be used in umbrella crates (#7069) · baa3bcc6
      Ludovic_Domingues authored
      PR for #7054 
      
      Replaced frame_support with $crate from @gui1117 's suggestion to fix
      the dependency issue
      
      ---------
      
      Co-authored-by: command-bot <>
    • Alin Dima's avatar
      rewrite some flaky zombienet polkadot tests to zombienet-sdk (#6757) · 064f10c4
      Alin Dima authored
      
      Will fix:
      https://github.com/paritytech/polkadot-sdk/issues/6574
      https://github.com/paritytech/polkadot-sdk/issues/6644
      https://github.com/paritytech/polkadot-sdk/issues/6062
      
      ---------
      
      Co-authored-by: default avatarJavier Viola <javier@parity.io>
    • Andrei Eres's avatar
      Implement NetworkRequest for litep2p (#7073) · be20c657
      Andrei Eres authored
      # Description
      
      Implements NetworkRequest::request for litep2p that we need for
      networking benchmarks
      
      
      ## Review Notes
      
      Duplicates implementation for NetworkService
      
      https://github.com/paritytech/polkadot-sdk/blob/5bf9dd2a/substrate/client/network/src/service.rs#L1186-L1205
      
      ---------
      
      Co-authored-by: command-bot <>
    • Utkarsh Bhardwaj's avatar
      migrate pallet-node-authorization to use umbrella crate (#7040) · d2c157a4
      Utkarsh Bhardwaj authored
      # Description
      
      Migrate pallet-node-authorization to use umbrella crate. Part of #6504 
      
      ## Review Notes
      
      * This PR migrates pallet-node-authorization to use the umbrella crate.
      * Some imports like below have not been added to any prelude as they
      have very limited usage across the various pallets.
      ```rust
      use sp_core::OpaquePeerId as PeerId;
      ```
      * Added a commonly used runtime trait for testing in the
      `testing_prelude` in `substrate/frame/src/lib.rs`:
      ```rust
      pub use sp_runtime::traits::BadOrigin;
      ```
      * `weights.rs` uses the `weights_prelude` like:
      ```rust
      use frame::weights_prelude::*;
      ```
      * `tests.rs` and `mock.rs` use the `testing_prelude`:
      ```rust
      use frame::testing_prelude::*;
      ```
      * `lib.rs` uses the main `prelude` like:
      ```rust
      use frame::prelude::*;
      ```
      * For testing: Checked that local build works and tests run
      successfully.
    • Iulian Barbu's avatar
      workflows: add debug input for sync templates act (#7057) · 1059be75
      Iulian Barbu authored
      
      # Description
      
      Introduce a workflow `debug` input for `misc-sync-templates.yml` and use
      it instead of the `runner.debug` context variable, which is set to '1'
      when `ACTIONS_RUNNER_DEBUG` env/secret is set
      (https://docs.github.com/en/actions/monitoring-and-troubleshooting-workflows/troubleshooting-workflows/enabling-debug-logging#enabling-runner-diagnostic-logging).
      This is useful for controlling when to show debug prints.
      
      ## Integration
      
      N/A
      
      ## Review Notes
      
      Using `runner.debug` requires setting the `ACTIONS_RUNNER_DEBUG` env
      variable, but setting it to false/true is doable through an input, or by
      importing a variable from the github env file (which requires a code
      change). This input alone can replace the entire `runner.debug` +
      `ACTIONS_RUNNER_DEBUG` setup, which simplifies debug printing, but it
      doesn't look as standard as `runner.debug`. I don't think it is a big
      deal overall, for this action alone, but happy to account for other
      opinions.
      
      Note: setting the `ACTIONS_RUNNER_DEBUG` whenever we want in a separate
      branch wouldn't be useful because we can not run the
      `misc-sync-templates.yml` action from other branch than `master` (due to
      branch protection rules), so we need to expose this input to be
      controllable from `master`.
      
      ---------
      
      Signed-off-by: default avatarIulian Barbu <iulian.barbu@parity.io>
    • Jeeyong Um's avatar
      Remove usage of `sp-std` from Substrate (#7043) · c1397398
      Jeeyong Um authored
      
      # Description
      
      This PR removes usage of deprecated `sp-std` from Substrate. (following
      PR of #5010)
      
      ## Integration
      
      This PR doesn't remove re-exported `sp_std` from any crates yet, so
      downstream projects using re-exported `sp_std` will not be affected.
      
      ## Review Notes
      
      The existing code using `sp-std` is refactored to use `alloc` and `core`
      directly. The key-value maps are instantiated from a vector of tuples
      directly instead of using `sp_std::map!` macro.
      
      `sp_std::Writer` is a helper type to use `Vec<u8>` with
      `core::fmt::Write` trait. This PR copied it into `sp-runtime`, because
      all crates using `sp_std::Writer` (including `sp-runtime` itself,
      `frame-support`, etc.) depend on `sp-runtime`.
      
      If this PR is merged, I would write following PRs to remove remaining
      usage of `sp-std` from `bridges` and `cumulus`.
      
      ---------
      
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarGuillaume Thiolliere <guillaume.thiolliere@parity.io>
      Co-authored-by: default avatarBastian Köcher <info@kchr.de>
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
  8. Jan 06, 2025
    • jasmy's avatar
      Fix typos (#7027) · 6b6c70b0
      jasmy authored
      
      Co-authored-by: default avatarDónal Murray <donal.murray@parity.io>
    • Oliver Tale-Yazdi's avatar
      [core-fellowship] Add permissionless import_member (#7030) · 568231a9
      Oliver Tale-Yazdi authored
      
      Changes:
      - Add call `import_member` to the core-fellowship pallet.
      - Move common logic between `import` and `import_member` into
      `do_import`.
      
      ## `import_member`
      
      Can be used to induct an arbitrary collective member and is callable by
      any signed origin. Pays no fees upon success.
      This is useful in the case that members did not induct themselves and
      are idling on their rank.
      
      ---------
      
      Signed-off-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      Co-authored-by: command-bot <>
    • Sebastian Kunert's avatar
      Avoid incomplete block import pipeline with full verifying import queue (#7050) · 1dcff3df
      Sebastian Kunert authored
      ## Problem
      In the parachain template we use the [fully verifying import queue
      
      ](https://github.com/paritytech/polkadot-sdk/blob/3d9eddbe/cumulus/client/consensus/aura/src/equivocation_import_queue.rs#L224-L224)
      which does extra equivocation checks.
      
      However, when we import a warp synced block with state, we don't set a
      fork choice, leading to an incomplete block import pipeline and error
      here:
      https://github.com/paritytech/polkadot-sdk/blob/3d9eddbe/substrate/client/service/src/client/client.rs#L488-L488
      
      This renders warp sync useless for chains using this import queue.
      
      ## Fix
      The fix is to always import a block with state as best block, as we
      already do in the normal Aura Verifier.
      In a follow up we should also take another look into unifying the usage
      of the different import queues.
      
      fixes https://github.com/paritytech/project-mythical/issues/256
      
      ---------
      
      Co-authored-by: command-bot <>
    • Alin Dima's avatar
      fix chunk fetching network compatibility zombienet test (#6988) · ffa90d0f
      Alin Dima authored
      Fix this zombienet test
      
      It was failing because in
      https://github.com/paritytech/polkadot-sdk/pull/6452 I enabled the v2
      receipts for testnet genesis,
      so the collators started sending v2 receipts with zeroed collator
      signatures to old validators that were still checking those signatures
      (which lead to disputes, since new validators considered the candidates
      valid).
      
      The fix is to also use an old image for collators, so that we don't
      create v2 receipts.
      
      We cannot remove this test yet because collators also perform chunk
      recovery, so until all collators are upgraded, we need to maintain this
      compatibility with the old protocol version (which is also why
      systematic recovery was not yet enabled)