Skip to content
  1. Apr 25, 2024
    • Andrei Eres's avatar
      8f5c8f73
    • Alin Dima's avatar
      rename fragment_tree folder to fragment_chain (#4294) · c9923cd7
      Alin Dima authored
      Makes https://github.com/paritytech/polkadot-sdk/pull/4035 easier to
      review
      c9923cd7
    • s0me0ne-unkn0wn's avatar
      Do not re-prepare PVFs if not needed (#4211) · c26cf3f6
      s0me0ne-unkn0wn authored
      Currently, PVFs are re-prepared if any execution environment parameter
      changes. As we've recently seen on Kusama and Polkadot, that may lead to
      a severe finality lag because every validator has to re-prepare every
      PVF. That cannot be avoided altogether; however, we could cease
      re-preparing PVFs when a change in the execution environment can't lead
      to a change in the artifact itself. For example, it's clear that
      changing the execution timeout cannot affect the artifact.
      
      In this PR, I'm introducing a separate hash for the subset of execution
      environment parameters that changes only if a preparation-related
      parameter changes. It introduces some minor code duplication, but
      without that, the scope of changes would be much bigger.
      
      TODO:
      - [x] Add a test to ensure the artifact is not re-prepared if
      non-preparation-related parameter is changed
      - [x] Add a test to ensure the artifact is re-prepared if a
      preparation-related parameter is changed
      - [x] Add comments, warnings, and, possibly, a test to ensure a new
      parameter ever added to the executor environment parameters will be
      evaluated by the author of changes with respect to its artifact
      preparation impact and added to the new hash preimage if needed.
      
      Closes #4132
      c26cf3f6
    • Alexandru Gheorghe's avatar
      Fix polkadot parachains not producing blocks until next session (#4269) · 239a23d9
      Alexandru Gheorghe authored
      
      
      ... a few sessions too late :(, this already happened on polkadot, so as
      of now there are no known relay-chains without async backing enabled in
      runtime, but let's fix it in case someone else wants to repeat our
      steps.
      
      Fixes: https://github.com/paritytech/polkadot-sdk/issues/4226
      
      ---------
      
      Signed-off-by: default avatarAlexandru Gheorghe <[email protected]>
      239a23d9
  2. Apr 24, 2024
  3. Apr 23, 2024
  4. Apr 22, 2024
  5. Apr 19, 2024
    • maksimryndin's avatar
      Pvf refactor execute worker errors follow up (#4071) · 4eabe5e0
      maksimryndin authored
      
      
      follow up of https://github.com/paritytech/polkadot-sdk/pull/2604
      closes https://github.com/paritytech/polkadot-sdk/pull/2604
      
      - [x] take relevant changes from Marcin's PR 
      - [x] extract common duplicate code for workers (low-hanging fruits)
      
      ~Some unpassed ci problems are more general and should be fixed in
      master (see https://github.com/paritytech/polkadot-sdk/pull/4074)~
      
      Proposed labels: **T0-node**, **R0-silent**, **I4-refactor**
      
      -----
      
      kusama address: FZXVQLqLbFV2otNXs6BMnNch54CFJ1idpWwjMb3Z8fTLQC6
      
      ---------
      
      Co-authored-by: default avatars0me0ne-unkn0wn <[email protected]>
      4eabe5e0
    • Andrei Sandu's avatar
      Use higher priority for PVF preparation in dispute/approval context (#4172) · 04a9071e
      Andrei Sandu authored
      
      
      Related to https://github.com/paritytech/polkadot-sdk/issues/4126
      discussion
      
      Currently all preparations have same priority and this is not ideal in
      all cases. This change should improve the finality time in the context
      of on-demand parachains and when `ExecutorParams` are updated on-chain
      and a rebuild of all artifacts is required. The desired effect is to
      speed up approval and dispute PVF executions which require preparation
      and delay backing executions which require preparation.
      
      ---------
      
      Signed-off-by: default avatarAndrei Sandu <[email protected]>
      04a9071e
    • Andrei Eres's avatar
      Update subsystem-benchmark params (#4201) · 4f125d19
      Andrei Eres authored
      - Returned latency (with it, results are more stable)
      - The threshold is weakened
      - Increased number of runs
      4f125d19
  6. Apr 18, 2024
  7. Apr 16, 2024
    • Alin Dima's avatar
      move fragment_tree module to its own folder (#4148) · 4b5c3fd0
      Alin Dima authored
      Will make https://github.com/paritytech/polkadot-sdk/pull/4035 easier to
      review (the mentioned PR already does this move so the diff will be
      clearer).
      
      Also called out as part of:
      https://github.com/paritytech/polkadot-sdk/pull/3233#discussion_r1490867383
      4b5c3fd0
  8. Apr 14, 2024
  9. Apr 12, 2024
  10. Apr 11, 2024
    • Andrei Eres's avatar
      Run subsystem-benchmark without network latency (#4068) · 25f038aa
      Andrei Eres authored
      Implements the idea from
      https://github.com/paritytech/polkadot-sdk/pull/3899
      - Removed latencies
      - Number of runs reduced from 50 to 5, according to local runs it's
      quite enough
      - Network message is always sent in a spawned task, even if latency is
      zero. Without it, CPU time sometimes spikes.
      - Removed the `testnet` profile because we probably don't need that
      debug additions.
      
      After the local tests I can't say that it brings a significant
      improvement in the stability of the results. However, I belive it is
      worth trying and looking at the results over time.
      25f038aa
    • Andrei Sandu's avatar
      collation-generation: Avoid using `para_backing_state` if runtime is ancient (#4070) · 9ede4152
      Andrei Sandu authored
      
      
      fixes https://github.com/paritytech/polkadot-sdk/issues/4067
      
      Also add an early bail out for look ahead collator such that we don't
      waste time if a CollatorFn is not set.
      
      TODO:
      - [x] add test.
      - [x] Polkadot System Parachain burn-in.
      
      ---------
      
      Signed-off-by: default avatarAndrei Sandu <[email protected]>
      9ede4152
  11. Apr 10, 2024
  12. Apr 08, 2024
    • Aaro Altonen's avatar
      Integrate litep2p into Polkadot SDK (#2944) · 80616f6d
      Aaro Altonen authored
      [litep2p](https://github.com/altonen/litep2p) is a libp2p-compatible P2P
      networking library. It supports all of the features of `rust-libp2p`
      that are currently being utilized by Polkadot SDK.
      
      Compared to `rust-libp2p`, `litep2p` has a quite different architecture
      which is why the new `litep2p` network backend is only able to use a
      little of the existing code in `sc-network`. The design has been mainly
      influenced by how we'd wish to structure our networking-related code in
      Polkadot SDK: independent higher-levels protocols directly communicating
      with the network over links that support bidirectional backpressure. A
      good example would be `NotificationHandle`/`RequestResponseHandle`
      abstractions which allow, e.g., `SyncingEngine` to directly communicate
      with peers to announce/request blocks.
      
      I've tried running `polkadot --network-backend litep2p` with a few
      different peer configurations and there is a noticeable reduction in
      networking CPU usage. For high load (`...
      80616f6d
    • Tsvetomir Dimitrov's avatar
      Deprecate `para_id()` from `CoreState` in polkadot primitives (#3979) · 59f868d1
      Tsvetomir Dimitrov authored
      
      
      With Coretime enabled we can no longer assume there is a static 1:1
      mapping between core index and para id. This mapping should be obtained
      from the scheduler/claimqueue on block by block basis.
      
      This PR modifies `para_id()` (from `CoreState`) to return the scheduled
      `ParaId` for occupied cores and removes its usages in the code.
      
      Closes https://github.com/paritytech/polkadot-sdk/issues/3948
      
      ---------
      
      Co-authored-by: default avatarAndrei Sandu <[email protected]>
      59f868d1
    • HongKuang's avatar
      Fix some typos (#4018) · bd4471b4
      HongKuang authored
      
      
      Signed-off-by: default avatarhongkuang <[email protected]>
      bd4471b4
  13. Apr 05, 2024
  14. Apr 04, 2024
    • Michal Kucharczyk's avatar
      `GenesisConfig` presets for runtime (#2714) · f910a15c
      Michal Kucharczyk authored
      The runtime now can provide a number of predefined presets of
      `RuntimeGenesisConfig` struct. This presets are intended to be used in
      different deployments, e.g.: `local`, `staging`, etc, and should be
      included into the corresponding chain-specs.
      
      Having `GenesisConfig` presets in runtime allows to fully decouple node
      from runtime types (the problem is described in #1984).
      
      **Summary of changes:**
      - The `GenesisBuilder` API was adjusted to enable this functionality
      (and provide better naming - #150):
         ```rust
          fn preset_names() -> Vec<PresetId>;
      fn get_preset(id: Option<PresetId>) -> Option<serde_json::Value>;
      //`None` means default
          fn build_state(value: serde_json::Value);
          pub struct PresetId(Vec<u8>);
         ```
      
      - **Breaking change**: Old `create_default_config` method was removed,
      `build_config` was renamed to `build_state`. As a consequence a node
      won't be able to interact with genesis config for older runtimes. The
      cleanup was made for sake of API simplicity. Also IMO maintaining
      compatibility with old API is not so crucial.
      - Reference implementation was provided for `substrate-test-runtime` and
      `rococo` runtimes. For rococo new
      [`genesis_configs_presets`](https://github.com/paritytech/polkadot-sdk/blob/3b41d66b/polkadot/runtime/rococo/src/genesis_config_presets.rs#L530)
      module was added and is used in `GenesisBuilder`
      [_presets-related_](https://github.com/paritytech/polkadot-sdk/blob/3b41d66b/polkadot/runtime/rococo/src/lib.rs#L2462-L2485)
      methods.
      
      - The `chain-spec-builder` util was also improved and allows to
      ([_doc_](https://github.com/paritytech/polkadot-sdk/blob/3b41d66b/substrate/bin/utils/chain-spec-builder/src/lib.rs#L19)):
         - list presets provided by given runtime (`list-presets`),
      - display preset or default config provided by the runtime
      (`display-preset`),
         - build chain-spec using named preset (`create ... named-preset`),
      
      
      - The `ChainSpecBuilder` is extended with
      [`with_genesis_config_preset_name`](https://github.com/paritytech/polkadot-sdk/blob/3b41d66b/substrate/client/chain-spec/src/chain_spec.rs#L447)
      method which allows to build chain-spec using named preset provided by
      the runtime. Sample usage on the node side
      [here](https://github.com/paritytech/polkadot-sdk/blob/2caffaae
      
      /polkadot/node/service/src/chain_spec.rs#L404).
      
      Implementation of #1984.
      fixes: #150
      part of: #25
      
      ---------
      
      Co-authored-by: default avatarSebastian Kunert <[email protected]>
      Co-authored-by: default avatarKian Paimani <[email protected]>
      Co-authored-by: default avatarOliver Tale-Yazdi <[email protected]>
      f910a15c
  15. Apr 03, 2024
  16. Apr 02, 2024
    • Serban Iorga's avatar
      Align dependencies with `parity-bridges-common` (#3937) · 8e95a3e1
      Serban Iorga authored
      Working towards migrating the `parity-bridges-common` repo inside
      `polkadot-sdk`. This PR upgrades some dependencies in order to align
      them with the versions used in `parity-bridges-common`
      
      Related to
      https://github.com/paritytech/parity-bridges-common/issues/2538
      8e95a3e1
    • Adrian Catangiu's avatar
      beefy: error logs for validators with dummy keys (#3939) · 5eff3f94
      Adrian Catangiu authored
      
      
      This outputs:
      ```
      2024-04-02 14:36:02.135 ERROR tokio-runtime-worker beefy: 🥩 for session starting at block 21990151
      no BEEFY authority key found in store, you must generate valid session keys
      (https://wiki.polkadot.network/docs/maintain-guides-how-to-validate-polkadot#generating-the-session-keys)
      ```
      error log entry, once every session, for nodes running with
      `Role::Authority` that have no public BEEFY key in their keystore
      
      ---------
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      5eff3f94
  17. Apr 01, 2024
    • s0me0ne-unkn0wn's avatar
      `im-online` removal final cleanup (#3902) · 52e10378
      s0me0ne-unkn0wn authored
      Rejoice! Rejoice! The story is nearly over.
      
      This PR removes stale migrations, auxiliary structures, and package
      dependencies, thus making Rococo and Westend totally free from any
      `im-online`-related stuff.
      
      `im-online` still stays a part of the Substrate node and its runtime:
      https://github.com/paritytech/polkadot-sdk/blob/0d932484/substrate/bin/node/runtime/src/lib.rs#L2276-L2277
      I'm not sure if it makes sense to remove it from there considering that
      we're not removing `im-online` from FRAME. Please share your opinion.
      52e10378
    • Alexandru Gheorghe's avatar
      primitives: Move out of staging released APIs (#3925) · d6f68bb9
      Alexandru Gheorghe authored
      
      
      Runtime release 1.2 includes bumping of the ParachainHost APIs up to
      v10, so let's move all the released APIs out of vstaging folder, this PR
      does not include any logic changes only renaming of the modules and some
      moving around.
      
      Signed-off-by: default avatarAlexandru Gheorghe <[email protected]>
      d6f68bb9
    • Alexandru Gheorghe's avatar
      network:bridge: fix peer_count metric (#3711) · e0c081db
      Alexandru Gheorghe authored
      
      
      The metric records the current protocol_version of the validator that
      just connected with the peer_map.len(), which contains all peers that
      connected, that has the effect the metric will be wrong since it won't
      tell us how many peers we have connected per version because it will
      always record the total number of peers
      
      Fix this by counting by version inside peer_map, additionally because
      that might be a bit heavier than len(), publish it only on-active
      leaves.
      
      ---------
      
      Signed-off-by: default avatarAlexandru Gheorghe <[email protected]>
      e0c081db
  18. Mar 31, 2024
  19. Mar 29, 2024
  20. Mar 28, 2024
  21. Mar 27, 2024