Skip to content
  1. Jun 12, 2024
  2. Jun 11, 2024
    • cheme's avatar
      Append overlay optimization. (#1223) · ad862092
      cheme authored
      
      
      This branch propose to avoid clones in append by storing offset and size
      in previous overlay depth.
      That way on rollback we can just truncate and change size of existing
      value.
      To avoid copy it also means that :
      
      - append on new overlay layer if there is an existing value: create a
      new Append entry with previous offsets, and take memory of previous
      overlay value.
      - rollback on append: restore value by applying offsets and put it back
      in previous overlay value
      - commit on append: appended value overwrite previous value (is an empty
      vec as the memory was taken). offsets of commited layer are dropped, if
      there is offset in previous overlay layer they are maintained.
      - set value (or remove) when append offsets are present: current
      appended value is moved back to previous overlay value with offset
      applied and current empty entry is overwrite (no offsets kept).
      
      The modify mechanism is not needed anymore.
      This branch lacks testing and break some existing genericity (bit of
      duplicated code), but good to have to check direction.
      
      Generally I am not sure if it is worth or we just should favor
      differents directions (transients blob storage for instance), as the
      current append mechanism is a bit tricky (having a variable length in
      first position means we sometime need to insert in front of a vector).
      
      Fix #30.
      
      ---------
      
      Signed-off-by: default avatarAlexandru Vasile <[email protected]>
      Co-authored-by: default avatarEgorPopelyaev <[email protected]>
      Co-authored-by: default avatarAlexandru Vasile <[email protected]>
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      Co-authored-by: default avatarOliver Tale-Yazdi <[email protected]>
      Co-authored-by: default avatarjoe petrowski <[email protected]>
      Co-authored-by: default avatarLiam Aharon <[email protected]>
      Co-authored-by: default avatarKian Paimani <[email protected]>
      Co-authored-by: default avatarBranislav Kontur <[email protected]>
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      Co-authored-by: default avatarSebastian Kunert <[email protected]>
      ad862092
    • Sebastian Kunert's avatar
      finalization: Skip tree route calculation if no forks present (#4721) · 96ab6869
      Sebastian Kunert authored
      ## Issue
      
      Currently, syncing parachains from scratch can lead to a very long
      finalization time once they reach the tip of the chain. The problem is
      that we try to finalize everything from 0 to the tip, which can be
      thousands or even millions of blocks.
      
      We finalize sequentially and try to compute displaced branches during
      finalization. So for every block on the way, we compute an expensive
      tree route.
      
      ## Proposed Improvements
      
      In this PR, I propose improvements that solve this situation:
      
      - **Skip tree route calculation if `leaves().len() == 1`:** This should
      be enough for 90% of cases where there is only one leaf after sync.
      - **Optimize finalization for long distances:** It can happen that the
      parachain has imported some leaf and then receives a relay chain
      notification with the finalized block. In that case, the previous
      optimization will not trigger. A second mechanism should ensure that we
      do not need to compute the full tree route. If the finalization distance
      is long, we check the lowest common ancestor of all the leaves. If it is
      above the to-be-finalized block, we know that there are no displaced
      leaves. This is fast because forks are short and close to the tip, so we
      can leverage the header cache.
      
      ## Alternative Approach
      
      - The problem was introduced in #3962. Reverting that PR is another
      possible strategy.
      - We could store for every fork where it begins, however sounds a bit
      more involved to me.
      
      
      fixes #4614
      96ab6869
  3. Jun 10, 2024
    • Alexandru Gheorghe's avatar
      Remove unncessary call remove_from_peers_set (#4742) · b65313e8
      Alexandru Gheorghe authored
      ... this is superfluous because set_reserved_peers implementation
      already calls this method here:
      
      https://github.com/paritytech/polkadot-sdk/blob/cdb297b1
      
      /substrate/client/network/src/protocol_controller.rs#L571,
      so the call just ends producing this warnings whenever we manipulate the
      peers set.
      
      ```
      Trying to remove unknown reserved node 12D3KooWRCePWvHoBbz9PSkw4aogtdVqkVDhiwpcHZCqh4hdPTXC from SetId(3)
      peerset warnings (from different peers)
      ```
      
      Signed-off-by: default avatarAlexandru Gheorghe <[email protected]>
      b65313e8
    • Alin Dima's avatar
      add pov-recovery unit tests and support for elastic scaling (#4733) · a3472c44
      Alin Dima authored
      - unit tests for pov-recovery
      - elastic scaling support (recovering multiple candidates in a single
      relay chain block)
      - also some small cleanups
      - also switches to candidates_pending_availability in
      `handle_empty_block_announce_data`
      
      Fixes https://github.com/paritytech/polkadot-sdk/issues/3577
      
      After https://github.com/paritytech/polkadot-sdk/pull/4097 is merged, we
      should also add a zombienet test, similar to the existing
      `0002-pov_recovery.toml` but which has a single collator using elastic
      scaling on multiple cores.
      a3472c44
    • Alexandru Gheorghe's avatar
      approval-voting: Add no shows debug information (#4726) · 2869fd6a
      Alexandru Gheorghe authored
      
      
      Add some debug logs to be able to identify the validators and parachains
      that have most no-shows, this metric is valuable because it will help us
      identify validators and parachains that regularly have this problem.
      
      From the validator_index we can then query the on-chain information and
      identify the exact validator that is causing the no-shows.
      
      ---------
      
      Signed-off-by: default avatarAlexandru Gheorghe <[email protected]>
      2869fd6a
    • Przemek Rzad's avatar
      Revamp the Readme of the parachain template (#4713) · 497d64ef
      Przemek Rzad authored
      - Addresses
      [this](https://github.com/paritytech/polkadot-sdk/issues/3155#issuecomment-2126934939).
      - Revamps the Readme, very similar to [the minimal
      template](https://github.com/paritytech/polkadot-sdk/pull/4649).
      - Changed `polkadot-launch` to `zombienet`, with instructions how to run
      it.
      - See the [rendered
      version](https://github.com/paritytech/polkadot-sdk/blob/rzadp/parachain-template-readme/templates/parachain/README.md).
      497d64ef
  4. Jun 08, 2024
  5. Jun 07, 2024
  6. Jun 06, 2024
  7. Jun 05, 2024
    • Adrian Catangiu's avatar
      fix build on MacOS: bump secp256k1 and secp256k1-sys to patched versions (#4709) · 2460cddf
      Adrian Catangiu authored
      `secp256k1 v0.28.0` and `secp256k1-sys v0.9.0` were yanked because
      building them fails for `aarch64-apple-darwin` targets.
      
      Use the `secp256k1 v0.28.2` and `secp256k1-sys v0.9.2` patched versions
      that build fine on ARM chipset MacOS.
      2460cddf
    • Oliver Tale-Yazdi's avatar
      Unify dependency aliases (#4633) · d2fd5364
      Oliver Tale-Yazdi authored
      
      
      Inherited workspace dependencies cannot be renamed by the crate using
      them (see [1](https://github.com/rust-lang/cargo/issues/12546),
      [2](https://stackoverflow.com/questions/76792343/can-inherited-dependencies-in-rust-be-aliased-in-the-cargo-toml-file)).
      Since we want to use inherited workspace dependencies everywhere, we
      first need to unify all aliases that we use for a dependency throughout
      the workspace.
      The umbrella crate is currently excluded from this procedure, since it
      should be able to export the crates by their original name without much
      hassle.
      
      For example: one crate may alias `parity-scale-codec` to `codec`, while
      another crate does not alias it at all. After this change, all crates
      have to use `codec` as name. The problematic combinations were:
      - conflicting aliases: most crates aliases as `A` but some use `B`.
      - missing alias: most of the crates alias a dep but some dont.
      - superfluous alias: most crates dont alias a dep but some do.
      
      The script that i used first determines whether most crates opted to
      alias a dependency or not. From that info it decides whether to use an
      alias or not. If it decided to use an alias, the most common one is used
      everywhere.
      
      To reproduce, i used
      [this](https://github.com/ggwpez/substrate-scripts/blob/master/uniform-crate-alias.py)
      python script in combination with
      [this](https://github.com/ggwpez/zepter/blob/38ad10585fe98a5a86c1d2369738bc763a77057b/renames.json)
      error output from Zepter.
      
      ---------
      
      Signed-off-by: default avatarOliver Tale-Yazdi <[email protected]>
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      d2fd5364
    • ordian's avatar
      statement-distribution: prep for re-enabling (#4431) · 0d661eac
      ordian authored
      In preparation for launching re-enabling
      (https://github.com/paritytech/polkadot-sdk/issues/2418), we need to
      adjust the disabling strategy of statement-distribution to use the relay
      parent's state instead of the latest state (union of active leaves).
      This will also ensure no raciness of getting the latest state vs
      accepting statements from disabling validators at the cost of being more
      lenient/potentially accepting more statements from disabled validators.
      
      - [x] PRDoc
      0d661eac
    • Oliver Tale-Yazdi's avatar
      Rococo AH: cleanup storage (#4444) · d1299683
      Oliver Tale-Yazdi authored
      
      
      Follow up on #4414 to clean up the old storage.
      
      ---------
      
      Signed-off-by: default avatarOliver Tale-Yazdi <[email protected]>
      d1299683
    • Michal Kucharczyk's avatar
      chain-spec-doc: some minor fixes (#4700) · f65beb7f
      Michal Kucharczyk authored
      some minor text fixes.
      f65beb7f
    • Przemek Rzad's avatar
      Update the `polkadot_builder` Dockerfile (#4638) · 8ffe2290
      Przemek Rzad authored
      
      
      This Dockerfile seems outdated - it currently fails to build (on my
      machine).
      I don't see it being built anywhere on CI.
      
      I did a couple of tweaks to make it build.
      
      ---------
      
      Co-authored-by: default avatarAlexander Samusev <[email protected]>
      8ffe2290
    • georgepisaltu's avatar
      [Identity] Remove double encoding username signature payload (#4646) · 3977f389
      georgepisaltu authored
      In order to receive a username in `pallet-identity`, users have to,
      among other things, provide a signature of the desired username. Right
      now, there is an [extra encoding
      step](https://github.com/paritytech/polkadot-sdk/blob/4ab078d6
      
      /substrate/frame/identity/src/lib.rs#L1119)
      when generating the payload to sign.
      
      Encoding a `Vec` adds extra bytes related to the length, which changes
      the payload. This is unnecessary and confusing as users expect the
      payload to sign to be just the username bytes. This PR fixes this issue
      by validating the signature directly against the username bytes.
      
      ---------
      
      Signed-off-by: default avatargeorgepisaltu <[email protected]>
      3977f389
  8. Jun 04, 2024
  9. Jun 03, 2024
    • Alexander Samusev's avatar
      [ci] Increase timeout for check-runtime-migration workflow (#4674) · cbe45121
      Alexander Samusev authored
      `[check-runtime-migration` now takes more than 30 minutes. Quick fix
      with increased timeout.
      cbe45121
    • Egor_P's avatar
      [ci] Delete unused flow (#4676) · 6f228e7d
      Egor_P authored
      6f228e7d
    • Bastian Köcher's avatar
    • Przemek Rzad's avatar
      Add Dockerfiles to the templates (#4637) · 6ede7a05
      Przemek Rzad authored
      As requested
      [here](https://github.com/paritytech/polkadot-sdk/issues/3155#issuecomment-2126934939).
      
      The Dockerfiles are inspired by [this
      one](https://github.com/paritytech/polkadot-sdk/blob/aa32faae/docker/dockerfiles/polkadot/polkadot_builder.Dockerfile).
      6ede7a05
    • Przemek Rzad's avatar
      Revamp the Readme of the minimal template (#4649) · dfb01aaa
      Przemek Rzad authored
      
      
      - Addresses
      [this](https://github.com/paritytech/polkadot-sdk/issues/3155#issuecomment-2126934939).
      - Technical content got adopted from the existing [solochain
      readme](https://github.com/paritytech/polkadot-sdk/tree/master/templates/solochain).
        - Updated some broken links there.
      - The docker instructions will work after
      https://github.com/paritytech/polkadot-sdk/pull/4637.
      - See the [rendered
      version](https://github.com/paritytech/polkadot-sdk/blob/rzadp/minimal-template-readme/templates/minimal/README.md).
      
      ---------
      
      Co-authored-by: default avatargupnik <[email protected]>
      dfb01aaa
    • Egor_P's avatar
      Add chain-spec-builder docker image (#4655) · f66e693a
      Egor_P authored
      This PR adds possibility to publish container images for the
      `chain-spec-builder` binary on the regular basis.
      Related to: https://github.com/paritytech/release-engineering/issues/190
      f66e693a
    • tugy's avatar
      Update Amforc bootnodes for Kusama and Polkadot (#4668) · 63f0cbf7
      tugy authored
      Tested each bootnode with `--reserved-only` `--reserved-nodes`
      
      Kusama
      ```
      polkadot --chain kusama --base-path /tmp/node --reserved-only --reserved-nodes "/dns/kusama.bootnode.amforc.com/tcp/29999/wss/p2p/12D3KooWKvYf6qKaAF8UUDw3KsTwjHLnvkED23yxHbH3npMe8w4G" --no-hardware-benchmarks
      polkadot --chain kusama --base-path /tmp/node --reserved-only --reserved-nodes "/dns/kusama.bootnode.amforc.com/tcp/30001/p2p/12D3KooWKvYf6qKaAF8UUDw3KsTwjHLnvkED23yxHbH3npMe8w4G" --no-hardware-benchmarks
      ```
      
      Asset Hub Kusama
      ```
      ./polkadot-parachain --chain asset-hub-kusama --base-path /tmp/node --reserved-only --reserved-nodes "/dns/asset-hub-kusama.bootnode.amforc.com/tcp/29999/wss/p2p/12D3KooWHy1CPndZYphwdVqMb295KPC6LRt17Ae3zNSr7evzeF5a" --no-hardware-benchmarks
      ./polkadot-parachain --chain asset-hub-kusama --base-path /tmp/node --reserved-only --reserved-nodes "/dns/asset-hub-kusama.bootnode.amforc.com/tcp/30007/p2p/12D3KooWHy1CPndZYphwdVqMb295KPC6LRt17Ae3zNSr7evzeF5a" --no-hardware-benchmarks
      ```
      
      
      Bridge Hub Kusama
      ```
      ./polkadot-parachain --chain bridge-hub-kusama --base-path /tmp/node --reserved-only --reserved-nodes "/dns/bridge-hub-kusama.bootnode.amforc.com/tcp/29999/wss/p2p/12D3KooWNyTBwRvCz1Ey2SgC1f3MvymhiAyLEa3cL8kU5gFH3V7Z" --no-hardware-benchmarks
      ./polkadot-parachain --chain bridge-hub-kusama --base-path /tmp/node --reserved-only --reserved-nodes "/dns/bridge-hub-kusama.bootnode.amforc.com/tcp/30010/p2p/12D3KooWNyTBwRvCz1Ey2SgC1f3MvymhiAyLEa3cL8kU5gFH3V7Z" --no-hardware-benchmarks
      ```
      
      Coretime Kusama
      ```
      ./polkadot-parachain --chain coretime-kusama --base-path /tmp/node --reserved-only --reserved-nodes "/dns/coretime-kusama.bootnode.amforc.com/tcp/29999/wss/p2p/12D3KooWPrgxrrumrANp6Bp2SMEwMQHPHDbPzA1HbcrakZrbFi5P" --no-hardware-benchmarks
      ./polkadot-parachain --chain coretime-kusama --base-path /tmp/node --reserved-only --reserved-nodes "/dns/coretime-kusama.bootnode.amforc.com/tcp/30013/p2p/12D3KooWPrgxrrumrANp6Bp2SMEwMQHPHDbPzA1HbcrakZrbFi5P" --no-hardware-benchmarks
      ```
      
      People Kusama
      ```
      ./polkadot-parachain --chain people-kusama --base-path /tmp/node --reserved-only --reserved-nodes "/dns/people-kusama.bootnode.amforc.com/tcp/29999/wss/p2p/12D3KooWPjzgKZe5jdG6TY4gwcFq8QxyyhqsYbQo6N29pwGePWLA" --no-hardware-benchmarks
      ./polkadot-parachain --chain people-kusama --base-path /tmp/node --reserved-only --reserved-nodes "/dns/people-kusama.bootnode.amforc.com/tcp/30004/p2p/12D3KooWPjzgKZe5jdG6TY4gwcFq8QxyyhqsYbQo6N29pwGePWLA" --no-hardware-benchmarks
      ```
      
      People Westend
      ```
      ./polkadot-parachain --chain people-westend --base-path /tmp/node --reserved-only --reserved-nodes "/dns/people-westend.bootnode.amforc.com/tcp/29999/wss/p2p/12D3KooWE1btdwDhNpApg8BEe2QwJxdVDtz6a6BRhgTeUh9HMhWs" --no-hardware-benchmarks
      ./polkadot-parachain --chain people-westend --base-path /tmp/node --reserved-only --reserved-nodes "/dns/people-westend.bootnode.amforc.com/tcp/30016/p2p/12D3KooWE1btdwDhNpApg8BEe2QwJxdVDtz6a6BRhgTeUh9HMhWs" --no-hardware-benchmarks
      ```
      
      Polkadot
      ```
      polkadot --chain polkadot --base-path /tmp/node --reserved-only --reserved-nodes "/dns/polkadot.bootnode.amforc.com/tcp/29999/wss/p2p/12D3KooWT2HyZx5C6BBeLbCKhYG2SqJYuiu7sLMxGzUcQBko3BMr" --no-hardware-benchmarks
      polkadot --chain polkadot --base-path /tmp/node --reserved-only --reserved-nodes "/dns/polkadot.bootnode.amforc.com/tcp/30001/p2p/12D3KooWT2HyZx5C6BBeLbCKhYG2SqJYuiu7sLMxGzUcQBko3BMr" --no-hardware-benchmarks
      ```
      
      Asset Hub Polkadot
      ```
      ./polkadot-parachain --chain asset-hub-polkadot --base-path /tmp/node --reserved-only --reserved-nodes "/dns/asset-hub-polkadot.bootnode.amforc.com/tcp/29999/wss/p2p/12D3KooWDLxPXYnSHjNwq9ibqgxuzRni5VViuGNSjNe3ueqVgqE3" --no-hardware-benchmarks
      ./polkadot-parachain --chain asset-hub-polkadot --base-path /tmp/node --reserved-only --reserved-nodes "/dns/asset-hub-polkadot.bootnode.amforc.com/tcp/30007/p2p/12D3KooWDLxPXYnSHjNwq9ibqgxuzRni5VViuGNSjNe3ueqVgqE3" --no-hardware-benchmarks
      ```
      
      Bridge Hub Polkadot
      ```
      ./polkadot-parachain --chain bridge-hub-polkadot --base-path /tmp/node --reserved-only --reserved-nodes "/dns/bridge-hub-polkadot.bootnode.amforc.com/tcp/29999/wss/p2p/12D3KooWGT5E56rAHfT5dY1pMLTrpAgV72yfDtD1Y5tPCHaTsifp" --no-hardware-benchmarks
      ./polkadot-parachain --chain bridge-hub-polkadot --base-path /tmp/node --reserved-only --reserved-nodes "/dns/bridge-hub-polkadot.bootnode.amforc.com/tcp/30010/p2p/12D3KooWGT5E56rAHfT5dY1pMLTrpAgV72yfDtD1Y5tPCHaTsifp" --no-hardware-benchmarks
      ```
      
      Collectives Polkadot
      ```
      ./polkadot-parachain --chain collectives-polkadot --base-path /tmp/node --reserved-only --reserved-nodes "/dns/collectives-polkadot.bootnode.amforc.com/tcp/29999/wss/p2p/12D3KooWL6v6FHMtCP5VsiDbMHLRFiW6YBtv37BarpW3hLqnDski" --no-hardware-benchmarks
      ./polkadot-parachain --chain collectives-polkadot --base-path /tmp/node --reserved-only --reserved-nodes "/dns/collectives-polkadot.bootnode.amforc.com/tcp/30013/p2p/12D3KooWL6v6FHMtCP5VsiDbMHLRFiW6YBtv37BarpW3hLqnDski" --no-hardware-benchmarks
      ```
      63f0cbf7