Skip to content
Snippets Groups Projects
  1. May 02, 2024
  2. May 01, 2024
    • Branislav Kontur's avatar
      HRMP - set `DefaultChannelSizeAndCapacityWithSystem` with dynamic values... · e5a93fbc
      Branislav Kontur authored
      HRMP - set `DefaultChannelSizeAndCapacityWithSystem` with dynamic values according to the `ActiveConfig` (#4332)
      
      ## Summary
      This PR enhances the capability to set
      `DefaultChannelSizeAndCapacityWithSystem` for HRMP. Currently, all
      testnets (Rococo, Westend) have a hard-coded value set as 'half of the
      maximum' determined by the live `ActiveConfig`. While this approach
      appears satisfactory, potential issues could arise if the live
      `ActiveConfig` are adjusted below these hard-coded values, necessitating
      a new runtime release with updated values. Additionally, hard-coded
      values have consequences, such as Rococo's benchmarks not functioning:
      https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/6082656.
      
      ## Solution
      The proposed solution here is to utilize
      `ActiveConfigHrmpChannelSizeAndCapacityRatio`, which reads the current
      `ActiveConfig` and calculates `DefaultChannelSizeAndCapacityWithSystem`,
      for example, "half of the maximum" based on live data. This way,
      whenever `ActiveConfig` is modified,
      `ActiveConfigHrmpChannelSizeAndCapacityRatio` automatically returns
      adjusted values with the appropriate ratio. Thus, manual adjustments and
      new runtime releases become unnecessary.
      
      
      Relates to a comment/discussion:
      https://github.com/paritytech/polkadot-sdk/pull/3721/files#r1541001420
      Relates to a comment/discussion:
      https://github.com/paritytech/polkadot-sdk/pull/3721/files#r1549291588
      
      ---------
      
      Co-authored-by: command-bot <>
      e5a93fbc
    • Maciej's avatar
      Statement Distribution Per Peer Rate Limit (#3444) · 6d392c7e
      Maciej authored
      - [x] Drop requests from a PeerID that is already being served by us.
      - [x] Don't sent requests to a PeerID if we already are requesting
      something from them at that moment (prioritise other requests or wait).
      - [x] Tests
      - [ ] ~~Add a small rep update for unsolicited requests (same peer
      request)~~ not included in original PR due to potential issues with
      nodes slowly updating
      - [x] Add a metric to track the amount of dropped requests due to peer
      rate limiting
      - [x] Add a metric to track how many time a node reaches the max
      parallel requests limit in v2+
      
      Helps with but does not close yet:
      https://github.com/paritytech-secops/srlabs_findings/issues/303
      6d392c7e
  3. Apr 30, 2024
  4. Apr 29, 2024
    • Shawn Tabrizi's avatar
      Refactor XCM Simulator Example (#4220) · 4875ea11
      Shawn Tabrizi authored
      
      This PR does a "developer experience" refactor of the XCM Simulator
      Example.
      
      I was looking for existing code / documentation where developers could
      better learn about working with and configuring XCM.
      
      The XCM Simulator was a natural starting point due to the fact that it
      can emulate end to end XCM scenarios, without needing to spawn multiple
      real chains.
      
      However, the XCM Simulator Example was just 3 giant files with a ton of
      configurations, runtime, pallets, and tests mashed together.
      
      This PR breaks down the XCM Simulator Example in a way that I believe is
      more approachable by a new developer who is looking to navigate the
      various components of the end to end example, and modify it themselves.
      
      The basic structure is:
      
      - xcm simulator example
          - lib (tries to only use the xcm simulator macros)
          - tests
          - relay-chain
              - mod (basic runtime that developers should be familiar with)
              - xcm-config
                  - mod (contains the `XcmConfig` type
                  - various files for each custom configuration  
          - parachain
              - mock_msg_queue (custom pallet for simulator example)
              - mod (basic runtime that developers should be familiar with)
              - xcm-config
                  - mod (contains the `XcmConfig` type
                  - various files for each custom configuration
      
      I would like to add more documentation to this too, but I think this is
      a first step to be accepted which will affect how documentation is added
      to the example
      
      ---------
      
      Co-authored-by: default avatarFrancisco Aguirre <franciscoaguirreperez@gmail.com>
      Co-authored-by: default avatarKian Paimani <5588131+kianenigma@users.noreply.github.com>
      4875ea11
    • Ankan's avatar
      [Staking] Not allow reap stash for virtual stakers (#4311) · 0031d49d
      Ankan authored
      Related to https://github.com/paritytech/polkadot-sdk/pull/3905.
      
      Since virtual stakers does not have a real balance, they should not be
      allowed to be reaped.
      
      The proper reaping for agents slashed will be done in a separate PR.
      0031d49d
    • Tin Chung's avatar
      Remove hard-coded indices from pallet-xcm tests (#4248) · f34d8e3c
      Tin Chung authored
      
      # ISSUE
      - Link to issue: https://github.com/paritytech/polkadot-sdk/issues/4237
      
      # DESCRIPTION
      Remove all ModuleError with hard-coded indices to pallet Error. For
      example:
      ```rs
      Err(DispatchError::Module(ModuleError {
      	index: 4,
      	error: [2, 0, 0, 0],
      	message: Some("Filtered")
      }))
      ```
      To 
      ```rs
      let expected_result = Err(crate::Error::<Test>::Filtered.into());
      assert_eq!(result, expected_result);
      ```
      # TEST OUTCOME
      ```
      test result: ok. 74 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
      ```
      
      ---------
      
      Co-authored-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      f34d8e3c
  5. Apr 28, 2024
    • dependabot[bot]'s avatar
      Bump snow from 0.9.3 to 0.9.6 (#4061) · 92a348f5
      dependabot[bot] authored
      
      Bumps [snow](https://github.com/mcginty/snow) from 0.9.3 to 0.9.6.
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/mcginty/snow/releases">snow's
      releases</a>.</em></p>
      <blockquote>
      <h2>v0.9.6</h2>
      <ul>
      <li>Validate invalid PSK positions when building a Noise protocol.</li>
      <li>Raise errors in various typos/mistakes in Noise patterns when
      parsing.</li>
      <li>Deprecate the <code>sodiumoxide</code> backend, as that crate is no
      longer maintained. We may eventually migrate it to a maintaned version
      of the crate, but for now it's best to warn users.</li>
      <li>Set a hard limit in <code>read_message()</code> in transport mode to
      65535 to be fully compliant with the Noise specification.</li>
      </ul>
      <p><strong>Full Changelog</strong>: <a
      href="https://github.com/mcginty/snow/compare/v0.9.5...v0.9.6">https://github.com/mcginty/snow/compare/v0.9.5...v0.9.6</a></p>
      <h2>v0.9.5</h2>
      <p>This is a security release that fixes a logic flaw in decryption in
      <code>TransportState</code> (i.e. the stateful one), where the nonce
      could increase even when decryption failed, which can cause a desync
      between the sender and receiver, opening this up as a denial of service
      vector if the attacker has the ability to inject packets in the channel
      Noise is talking over.</p>
      <p>More details can be found in the advisory: <a
      href="https://github.com/mcginty/snow/security/advisories/GHSA-7g9j-g5jg-3vv3">https://github.com/mcginty/snow/security/advisories/GHSA-7g9j-g5jg-3vv3</a></p>
      <p>All users are encouraged to update.</p>
      <h2>v0.9.4</h2>
      <p>This is a dependency version bump release because a couple of
      important dependencies released new versions that needed a
      <code>Cargo.toml</code> bump:</p>
      <ul>
      <li><code>ring</code> 0.17</li>
      <li><code>pqcrypto-kyber</code> 0.8</li>
      <li><code>aes-gcm</code> 0.10</li>
      <li><code>chacha20poly1305</code> 0.10</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/mcginty/snow/commit/a4be73faa042c5967f39662aa66919f774831a9a"><code>a4be73f</code></a>
      meta: v0.9.6 release</li>
      <li><a
      href="https://github.com/mcginty/snow/commit/9e53dcf5bbea869b5e3e9ed26866d683906bc848"><code>9e53dcf</code></a>
      TransportState: limit read_message size to 65535</li>
      <li><a
      href="https://github.com/mcginty/snow/commit/faf05609e19f4106cd47b78123415dfeb9330861"><code>faf0560</code></a>
      Deprecate sodiumoxide resolver</li>
      <li><a
      href="https://github.com/mcginty/snow/commit/308a24d23da13cb01a173f0ec23f140898801fb9"><code>308a24d</code></a>
      Add warnings about multiple calls to same method in Builder</li>
      <li><a
      href="https://github.com/mcginty/snow/commit/f280991ae408685d72e098545314f2be160e57f9"><code>f280991</code></a>
      Error when extraneous parameters are included in string to parse</li>
      <li><a
      href="https://github.com/mcginty/snow/commit/dbdcc4803aae6e5d9910163a7d52e0df8def4310"><code>dbdcc48</code></a>
      Error on duplicate modifiers in parameter string</li>
      <li><a
      href="https://github.com/mcginty/snow/commit/8b1a819c93ceae98f9ba0a1be192fa61fdec78c2"><code>8b1a819</code></a>
      Validate PSK index in pattern to avoid panic</li>
      <li><a
      href="https://github.com/mcginty/snow/commit/74e30cf591d6d89c8a1670ee713ecc4e9607e38f"><code>74e30cf</code></a>
      meta: v0.9.5 release</li>
      <li><a
      href="https://github.com/mcginty/snow/commit/12e8ae55547ae297d5f70599e5c884ea891303eb"><code>12e8ae5</code></a>
      Stateful nonce desync fix</li>
      <li><a
      href="https://github.com/mcginty/snow/commit/02c26b7551cb7e221792a9d3d3a94730e6a34e8a"><code>02c26b7</code></a>
      Remove clap from simple example</li>
      <li>Additional commits viewable in <a
      href="https://github.com/mcginty/snow/compare/v0.9.3...v0.9.6">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      
      [![Dependabot compatibility
      score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=snow&package-manager=cargo&previous-version=0.9.3&new-version=0.9.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
      
      Dependabot will resolve any conflicts with this PR as long as you don't
      alter it yourself. You can also trigger a rebase manually by commenting
      `@dependabot rebase`.
      
      [//]: # (dependabot-automerge-start)
      [//]: # (dependabot-automerge-end)
      
      ---
      
      <details>
      <summary>Dependabot commands and options</summary>
      <br />
      
      You can trigger Dependabot actions by commenting on this PR:
      - `@dependabot rebase` will rebase this PR
      - `@dependabot recreate` will recreate this PR, overwriting any edits
      that have been made to it
      - `@dependabot merge` will merge this PR after your CI passes on it
      - `@dependabot squash and merge` will squash and merge this PR after
      your CI passes on it
      - `@dependabot cancel merge` will cancel a previously requested merge
      and block automerging
      - `@dependabot reopen` will reopen this PR if it is closed
      - `@dependabot close` will close this PR and stop Dependabot recreating
      it. You can achieve the same result by closing it manually
      - `@dependabot show <dependency name> ignore conditions` will show all
      of the ignore conditions of the specified dependency
      - `@dependabot ignore this major version` will close this PR and stop
      Dependabot creating any more for this major version (unless you reopen
      the PR or upgrade to it yourself)
      - `@dependabot ignore this minor version` will close this PR and stop
      Dependabot creating any more for this minor version (unless you reopen
      the PR or upgrade to it yourself)
      - `@dependabot ignore this dependency` will close this PR and stop
      Dependabot creating any more for this dependency (unless you reopen the
      PR or upgrade to it yourself)
      You can disable automated security fix PRs for this repo from the
      [Security Alerts
      page](https://github.com/paritytech/polkadot-sdk/network/alerts).
      
      </details>
      
      Signed-off-by: default avatardependabot[bot] <support@github.com>
      Co-authored-by: default avatardependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
      92a348f5
    • Squirrel's avatar
      remove unnessisary use statements due to 2021 core prelude (#4183) · 954150f3
      Squirrel authored
      Some traits are already included in the 2021 prelude and so shouldn't be
      needed to use explicitly:
      
      use `convert::TryFrom`, `convert::TryInto`, and `iter::FromIterator` are
      removed.
      
      ( https://doc.rust-lang.org/core/prelude/rust_2021/ )
      
      No breaking changes or change of functionality, so I think no PR doc is
      needed in this case.
      
      (Motivation: Removes some references to `sp-std`)
      954150f3
    • Ankan's avatar
      [Staking] Runtime api if era rewards are pending to be claimed (#4301) · 73b9a839
      Ankan authored
      closes https://github.com/paritytech/polkadot-sdk/issues/426.
      related to https://github.com/paritytech/polkadot-sdk/pull/1189.
      
      Would help offchain programs to query if there are unclaimed pages of
      rewards for a given era.
      
      The logic could look like below
      
      ```js
      // loop as long as all era pages are claimed.
      while (api.call.stakingApi.pendingRewards(era, validator_stash)) {
        api.tx.staking.payout_stakers(validator_stash, era)
      }
      ```
      73b9a839
  6. Apr 26, 2024
  7. Apr 25, 2024
  8. Apr 24, 2024
    • Francisco Aguirre's avatar
      Revert `execute_blob` and `send_blob` (#4266) · 4f3d43a0
      Francisco Aguirre authored
      Revert "pallet-xcm: Deprecate `execute` and `send` in favor of
      `execute_blob` and `send_blob` (#3749)"
      
      This reverts commit feee773d
      
      .
      
      ---------
      
      Co-authored-by: default avatarAdrian Catangiu <adrian@parity.io>
      Co-authored-by: default avatarJavier Bullrich <javier@bullrich.dev>
      4f3d43a0
    • Javyer's avatar
      Updated review-bot to obtain number from event (#4271) · d29c3636
      Javyer authored
      It seems that `review-trigger` is not uploading the artifact that is
      used by `review-bot`, so I changed the PR-Number to be obtained by the
      previous event that triggered this action.
      
      I also took the liberty to replace `tibdex/github-app-token` for
      `actions/create-github-app-token` which is GitHub's official app.
      d29c3636
    • Branislav Kontur's avatar
      `AllowHrmpNotificationsFromRelayChain` barrier for HRMP notifications from the relaychain (#4156) · ac473cfa
      Branislav Kontur authored
      This PR:
      - introduces `AllowHrmpNotificationsFromRelayChain` barrier for allowing
      HRMP notifications just from the relay chain (to fulfill safety
      assumptions -
      [see](https://github.com/paritytech/polkadot-sdk/blob/master/polkadot/xcm/src/v4/mod.rs#L532))
      - sets it up for all testnet SP parachains
      
      Continuation of: https://github.com/paritytech/polkadot-sdk/pull/3696
      ac473cfa
    • Serban Iorga's avatar
      [BEEFY] Return valid signatures when verifying commitment (#4259) · 8dc0b337
      Serban Iorga authored
      Trying to split parts of the
      https://github.com/paritytech/polkadot-sdk/pull/1903 into smaller PRs
      
      For https://github.com/paritytech/polkadot-sdk/pull/1903 it would help
      if `verify_with_validator_set()` returned the list of valid
      authority-signatures pairs, since after the verification we need to send
      them in the equivocation proof.
      8dc0b337
    • Alexander Kalankhodzhaev's avatar
      Remove unnecessary cloning (#4263) · c594b10a
      Alexander Kalankhodzhaev authored
      Seems like Externalities already [return a
      vector](https://github.com/paritytech/polkadot-sdk/blob/ffbce2a8
      
      /substrate/primitives/externalities/src/lib.rs#L86),
      so calling `to_vec` on a vector just results in an unneeded copying.
      
      Co-authored-by: default avatarLiam Aharon <liam.aharon@hotmail.com>
      c594b10a
    • Adrian Catangiu's avatar
      pallet-xcm::transfer_assets_using_type() supports custom actions on destination (#4260) · e0584a15
      Adrian Catangiu authored
      
      Change `transfer_assets_using_type()` to not assume `DepositAssets` as
      the intended use of the assets on the destination.
      
      Instead provides the caller with the ability to specify custom XCM that
      be executed on `dest` chain as the last step of the transfer, thus
      allowing custom usecases for the transferred assets. E.g. some are
      used/swapped/etc there, while some are sent further to yet another
      chain.
      
      Note: this is a follow-up on
      https://github.com/paritytech/polkadot-sdk/pull/3695, bringing in an API
      change for `transfer_assets_using_type()`. This is ok as the previous
      version has not been yet released. Thus, its first release will include
      the new API proposed by this PR.
      
      This allows usecases such as:
      https://forum.polkadot.network/t/managing-sas-on-multiple-reserve-chains-for-same-asset/7538/4
      
      BTW: all this pallet-xcm asset transfers code will be massively reduced
      once we have https://github.com/paritytech/xcm-format/pull/54
      
      ---------
      
      Signed-off-by: default avatarAdrian Catangiu <adrian@parity.io>
      e0584a15