Skip to content
Snippets Groups Projects
  1. Aug 27, 2024
  2. Aug 26, 2024
    • Oliver Tale-Yazdi's avatar
      [CI] Fix SemVer check base commit (#5361) · b34d4a08
      Oliver Tale-Yazdi authored
      
      After seeing some cases of reported changes that did not happen by the
      merge request proposer (like
      https://github.com/paritytech/polkadot-sdk/pull/5339), it became clear
      that [this](https://github.com/orgs/community/discussions/59677) is
      probably the issue.
      The base commit of the SemVer check CI is currently using the *latest*
      master commit, instead of the master commit at the time when the MR was
      created.
      
      Trying to get the correct base commit now. For this to be debugged, i
      have to wait until another MR is merged into master.
      
      ---------
      
      Signed-off-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
    • Nazar Mokrynskyi's avatar
      Sync status refactoring (#5450) · dd1aaa47
      Nazar Mokrynskyi authored
      
      As I was looking at the coupling between `SyncingEngine`,
      `SyncingStrategy` and individual strategies I noticed a few things that
      were unused, redundant or awkward.
      
      The awkward change comes from
      https://github.com/paritytech/substrate/pull/13700 where
      `num_connected_peers` property was added to `SyncStatus` struct just so
      it can be rendered in the informer. While convenient, the property
      didn't really belong there and was annoyingly set to `0` in some
      strategies and to `num_peers` in others. I have replaced that with a
      property on `SyncingService` that already stored necessary information
      internally.
      
      Also `ExtendedPeerInfo` didn't have a working `Clone` implementation due
      to lack of perfect derive in Rust and while I ended up not using it in
      the refactoring, I included fixed implementation for it in this PR
      anyway.
      
      While these changes are not strictly necessary for
      https://github.com/paritytech/polkadot-sdk/issues/5333, they do reduce
      coupling of syncing engine with syncing strategy, which I thought is a
      good thing.
      
      Reviewing individual commits will be the easiest as usual.
      
      ---------
      
      Co-authored-by: default avatarDmitry Markin <dmitry@markin.tech>
    • Egor_P's avatar
      Add build options to the srtool build step (#4956) · 3cbefaf1
      Egor_P authored
      
      This PR adds possibility to set BUILD_OPTIONS to the "Srtool Build" step
      in the release pipeline while building runtimes.
      
      Colses: https://github.com/paritytech/release-engineering/issues/213
      
      ---------
      
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      Co-authored-by: default avatarEgorPopelyaev <EgorPopelyaev@users.noreply.github.com>
    • Muharem Ismailov's avatar
      `MaybeConsideration` extension trait for `Consideration` (#5384) · ad0de749
      Muharem Ismailov authored
      Introduce `MaybeConsideration` extension trait for `Consideration`.
      
      The trait allows for the management of tickets that may represent no
      cost. While the `MaybeConsideration` still requires proper handling, it
      introduces the ability to determine if a ticket represents no cost and
      can be safely forgotten without any side effects.
      
      The new trait is particularly useful when a consumer expects the cost to
      be zero under certain conditions (e.g., when the proposal count is below
      a threshold N) and does not want to store such consideration tickets in
      storage. The extension approach allows us to avoid breaking changes to
      the existing trait and to continue using it as a non-optional version
      for migrating pallets that utilize the `Currency` and `fungible` traits
      for `holds` and `freezes`, without requiring any storage migration.
  3. Aug 25, 2024
    • Lech Głowiak's avatar
      Skip slot before creating inherent data providers during major sync (#5344) · 178e699c
      Lech Głowiak authored
      # Description
      
      Moves `create_inherent_data_provider` after checking if major sync is in
      progress.
      
      ## Integration
      
      Change is internal to sc-consensus-slots. It should be no-op unless
      someone is using fork of this SDK.
      
      ## Review Notes
      
      Motivation for this change is to avoid calling
      `create_inherent_data_providers` if it's result is going to be discarded
      anyway during major sync. This has potential to speed up node operations
      during major sync by not calling possibly expensive
      `create_inherent_data_provider`.
      
      TODO: labels T0-node D0-simple
      TODO: there is no tests for `Slots`, should I add one for this case?
      
      # Checklist
      
      * [x] My PR includes a detailed description as outlined in the
      "Description" and its two subsections above.
      * [x] My PR follows the [labeling requirements](CONTRIBUTING.md#Process)
      of this project (at minimum one label for `T`
        required)
      * External contributors: ask maintainers to put the right label on your
      PR.
      * [ ] I have made corresponding changes to the documentation (if
      applicable)
      * [ ] I have added tests that prove my fix is effective or that my
      feature works (if applicable)
    • Przemek Rzad's avatar
      Add symlinks for code of conduct and contribution guidelines (#5447) · 91b5a49a
      Przemek Rzad authored
      Addresses
      [this](https://github.com/paritytech/eng-automation/issues/10#issuecomment-2286391379).
      
      > Another side note is the checkmarks in
      https://github.com/paritytech/polkadot-sdk/community. It seems like even
      though we have `CONTRIBUTING.md` in `/docs` it is not picked up in this
      list. I am not even sure what is the benefit of following these
      standards, but it is probably for the best to do it.
  4. Aug 24, 2024
  5. Aug 23, 2024
    • Yuri Volkov's avatar
      Moving `Find FAIL-CI` check to GHA (#5377) · b3c2a25b
      Yuri Volkov authored
    • eskimor's avatar
      Remove panic, as proof is invalid. (#5427) · d26d7f1d
      eskimor authored
      
      `validity_vote` function is also called from `import_statement` not only
      from `import_candidate`. The proof still holds if we assume seconded
      statements always come before valid statements, which should be the case
      but is not actually enforced by this module at all. On top of this the
      proof is not local.
      
      Co-authored-by: default avatareskimor <eskimor@no-such-url.com>
    • Nazar Mokrynskyi's avatar
      Reactive syncing metrics (#5410) · 4057ccd7
      Nazar Mokrynskyi authored
      This PR untangles syncing metrics and makes them reactive, the way
      metrics are supposed to be in general.
      
      Syncing metrics were bundled in a way that caused coupling across
      multiple layers: justifications metrics were defined and managed by
      `ChainSync`, but only updated periodically on tick in `SyncingEngine`,
      while actual values were queried from `ExtraRequests`. This convoluted
      architecture was hard to follow when I was looking into
      https://github.com/paritytech/polkadot-sdk/issues/5333.
      
      Now metrics that correspond to each component are owned by that
      component and updated as changes are made instead of on tick every
      1100ms.
      
      This does add some annoying boilerplate that is a bit harder to
      maintain, but it separates metrics more nicely and if someone queries
      them more frequently will give arbitrary resolution. Since metrics
      updates are just atomic operations I do not expect any performance
      impact of these changes.
      
      Will add prdoc if changes look good otherwise.
      
      P.S. I noticed that importing requests (and corresponding metrics) were
      not cleared ever since corresponding code was introduced in
      https://github.com/paritytech/polkadot-sdk/commit/dc41558b#r145518721
      and I left it as is to not change the behavior, but it might be
      something worth fixing.
      
      cc @dmitry-markin
      
      
      
      ---------
      
      Co-authored-by: default avatarDmitry Markin <dmitry@markin.tech>
    • Branislav Kontur's avatar
      [bridges] Prune messages from confirmation tx body, not from the on_idle (#5006) · e4ffba6e
      Branislav Kontur authored
      
      (Please, do not merge until SA, reverted and restored of
      https://github.com/paritytech/polkadot-sdk/pull/4944)
      
      Original PR with more context:
      https://github.com/paritytech/parity-bridges-common/pull/2211
      Relates to:
      https://github.com/paritytech/parity-bridges-common/issues/2210
      
      ## TODO
      
      - [x] fresh weighs for `pallet_bridge_messages`
      - [x] add `try_state` for `pallet_bridge_messages` which checks for
      unpruned messages - relates to the
      [comment](https://github.com/paritytech/parity-bridges-common/pull/2211#issuecomment-1643224831)
      - [x] ~prepare migration, that prunes leftovers, which would be pruned
      eventually from `on_idle` the
      [comment](https://github.com/paritytech/parity-bridges-common/pull/2211#issuecomment-1643224831)~
      can be done also by `set_storage` / `kill_storage` or with
      `OnRuntimeUpgrade` implementatino when `do_try_state_for_outbound_lanes`
      detects problem.
      
      ## Open question
      
      - [ ] Do we really need `oldest_unpruned_nonce` afterwards?
      - after the runtime upgrade and when `do_try_state_for_outbound_lanes`
      pass, we won't need any migrations here
          - we won't even need `do_try_state_for_outbound_lanes`
      - please check comments bellow:
      https://github.com/paritytech/polkadot-sdk/pull/4944#discussion_r1666737961
      
      ---------
      
      Signed-off-by: default avatarBranislav Kontur <bkontur@gmail.com>
      Co-authored-by: default avatarSerban Iorga <serban@parity.io>
      Co-authored-by: default avatarSvyatoslav Nikolsky <svyatonik@gmail.com>
      Co-authored-by: command-bot <>
    • Przemek Rzad's avatar
      Change the chain to Rococo in the parachain template Zombienet config (#5279) · 9fecd898
      Przemek Rzad authored
      
      Following this:
      https://github.com/paritytech/polkadot-sdk-parachain-template/pull/11
      
      ---------
      
      Co-authored-by: default avatarShawn Tabrizi <shawntabrizi@gmail.com>
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
    • Przemek Rzad's avatar
      Improve the appearance of crates on `crates.io` (#5243) · c66f7bd4
      Przemek Rzad authored
      ## Context
      
      Currently, many crates have no readme files, even though they are public
      and available on crates.io.
      Others have just a couple of words that does not look super presentable.
      
      Even though probably nobody starts a journey with `polkadot-sdk` or its
      documentation with a readme of a random low-level crate, I think it
      would look more mature to have a little better readmes there.
      
      So, in an attempt to improve [the
      aesthetics](https://github.com/paritytech/eng-automation/issues/10) of
      `polkadot-sdk`, I propose a set of consistent, branded, better-looking
      readmes for all published crates.
      
      ## What's inside
      
      - ~~New readme files for published crates.~~
      - A python script to generate new readmes, for the crates that have
      none.
        - It will skip crates that do have a readme, and private crates.
      - Added a new image asset to the repo - logo with a background.
      - The main readme of the repo uses a [nice
      trick](https://github.com/paritytech/polkadot-sdk/blob/ce6938ae/README.md?plain=1#L4-L5)
      to accompany both light and dark modes - but that doesn't work on
      `crates.io` so a single logo with a background is needed.
      
      ## Example
      
      ### Current
      
      ![Screenshot 2024-08-04 at 16 13
      36](https://github.com/user-attachments/assets/3ae0881d-0f40-4614-9d2c-3c95029f0820)
      
      ### Changed
      
      ![Screenshot 2024-08-04 at 16 12
      28](https://github.com/user-attachments/assets/fa7eadc8-aec8-4f77-84d9-54d63ce189cd)
    • Alexander Theißen's avatar
      Add initial version of `pallet_revive` (#5293) · 559fa1db
      Alexander Theißen authored
      This is a heavily modified and stripped down version of
      `pallet_contracts`. We decided to fork instead of extend the old pallet.
      Reasons for that are:
      
      - There is no benefit of supporting both on the same pallet as the
      intended payload for the new pallet (recompiled YUL) will be using a
      different ABI.
      - It is much easier since it allows us to remove all the code that was
      necessary to support Wasm and focus fully on running cross compiled YUL
      contracts.
      
      **The code is reviewable but can't be merged because it depends on an
      unreleased version of PolkaVM via git.**
      
      ## Current state
      
      All tests are passing and the code is not quick and dirty but written to
      last. The work is not finished, though. It is included in the
      `kitchensink-runtime` and a node can be built. However, we merge early
      in order to be able to start testing other components as early as
      possible.
      
      Outstanding changes are tracked here and will be merged separately:
      https://github.com/paritytech/polkadot-sdk/issues/5308
      
      ## Syscall Interface
      
      The syscall interface is best explored by generating the docs of this
      crate and looking at the `SyscallDoc` trait. Arguments are passed in
      registers a0-a5 in the order they are listed. If there are more than 6
      arguments (call, instantiate) a pointer to a packed struct of the
      arguments is expected as the only argument. I plan to create variants of
      those syscalls with less arguments specifically for YUL.
      
      Functions are just referenced by their name as ASCII within the PolkaVM
      container. Rather than by a syscall number as it was the case in the
      last implementation.
       
      
      ## Changes vs. `pallet_contracts`
      
      The changes are too numerous to list them all here. This is an
      incomplete list:
      
      - Use PolkaVM instead of wasmi to execute contracts
      - Made Runtime generic over a new `Memory` trait as we can't map memory
      directly on PolkaVM anymore
      - No static verification on code upload. Everything is a determinstic
      runtime failure
      - Removed all migrations and reset the pallet version
      - Removed the nonce storage item and instead use the deployers account
      nonce to generate a unique trie
      - We now bump the deployers account nonce on contract instantiation to
      they are bumped even within a batch transaction
      - Removed the instantiation nonce host function: We should add a new
      `instantiate` variant as a replacement for thos
      - ContractInfoOf of uses the indentity hasher now
      - Remove the determinism feature: User of that feature should switch to
      soft floats
      - The `unstable` attribute has been replaced by a `api_version`
      attribute to declare at which version an API became available
      	- leaving out that attribute makes the API effectively unstable
      - a new `api_version` field on the CodeInfo makes sure that old
      contracts can't access new APIs (necessary due to lack of static
      verification.
      - Added a `behaviour_version` field to CodeInfo that can used if we need
      to introduce breaking changes and keep the old behaviour for existing
      contracts
      - Unified storage vs. transient and fixed vs. variable sized keys all
      into one set of multiplexing host functions
      - Removed all contract observeable limits from the `Config` trait and
      instead hardcode them
      - Removed the Schedule
      - Removed all deprecated host functions
      - Simplify chain extension as preperation for making it a pre-compile
      
      ---------
      
      Co-authored-by: command-bot <>
    • Gustavo Gonzalez's avatar
      Update OpenZeppelin template documentation (#5398) · 4ffccac4
      Gustavo Gonzalez authored
      
      # Description
      Updates `template.rs` to reflect the two OZ templates available and a
      short description
      
      # Checklist
      
      * [x] My PR includes a detailed description as outlined in the
      "Description" and its two subsections above.
      * [x] My PR follows the [labeling requirements](CONTRIBUTING.md#Process)
      of this project (at minimum one label for `T`
        required)
      * External contributors: ask maintainers to put the right label on your
      PR.
      * [x] I have made corresponding changes to the documentation (if
      applicable)
      
      ---------
      
      Co-authored-by: default avatarKian Paimani <5588131+kianenigma@users.noreply.github.com>
      Co-authored-by: default avatarShawn Tabrizi <shawntabrizi@gmail.com>
    • Nazar Mokrynskyi's avatar
      Remove the need to wait for target block header in warp sync implementation (#5431) · 6d819a61
      Nazar Mokrynskyi authored
      I'm not sure if this is exactly what
      https://github.com/paritytech/polkadot-sdk/issues/3537 meant, but I
      think it should be fine to wait for relay chain before initializing
      parachain node fully, which removed the need for background task and
      extra hacks throughout the stack just to know where warp sync should
      start.
      
      Previously there were both `WarpSyncParams` and `WarpSyncConfig`, but
      there was no longer any point in having two data structures, so I
      simplified it to just `WarpSyncConfig`.
      
      Fixes https://github.com/paritytech/polkadot-sdk/issues/3537
  6. Aug 22, 2024
  7. Aug 21, 2024
  8. Aug 20, 2024
  9. Aug 19, 2024
  10. Aug 18, 2024
  11. Aug 16, 2024
  12. Aug 15, 2024
    • Przemek Rzad's avatar
      Update Readme of the `polkadot` crate (#5326) · 843c4db7
      Przemek Rzad authored
      - Typos.
      - Those telemetry links like https://telemetry.polkadot.io/#list/Kusama
      didn't seem to properly point to a proper list (anymore?) - updated
      them.
      - Also looks like it was trying to use rust-style linking instead of
      markdown linking, changed that.
      - Relative links do not work on crates.io - updated to absolute,
      similarly as some already existing links, such as contribution
      guidelines.
    • Kian Paimani's avatar
      allow for `u8` to be used as hold/freeze reason (#5348) · 90c91b1e
      Kian Paimani authored
      ..without needing to provide your own `newtype` around it.  
      
      This will allow `type Reason = u8` to be used as `FreezeReason` and
      `HoldReason`, which I think is a nice simplification if one doens't want
      to deal with the complications.
      
      At the same time, it is a bit of an anti-pattern.
      
      Putting it out there to check people's vibes.