Skip to content
  1. Apr 05, 2024
    • Alessandro Siniscalchi's avatar
      [parachain-template] benchmarks into `mod benchmarks` (#3818) · 33bbdb3c
      Alessandro Siniscalchi authored
      
      
      This PR introduces a dedicated module for benchmarks within the
      parachain runtime. By segregating benchmarks into their own module, we
      achieve a cleaner project structure and improved readability,
      facilitating easier maintenance and updates.
      
      ### Key Changes:
      - **New Benchmarks Module**: A new file `benchmarks.rs` is added,
      encapsulating the benchmarking code for various pallets.
      - **Refactoring `lib.rs`**: The main runtime library file (`lib.rs`) has
      been updated to reflect the extraction of benchmark definitions. By
      moving these definitions to `benchmarks.rs`, we reduce clutter in
      `lib.rs`, streamlining the runtime's core logic and configuration.
      
      ### Benefits of This Refactoring:
      - **Focused Benchmarking**: Developers can now easily locate and modify
      benchmarks without navigating through the core runtime logic, enabling
      targeted performance improvements.
      - **Cleaner Codebase**: Segregating benchmarks from the main runtime
      logic helps maintain a clean, well-organized codebase, simplifying
      navigation and maintenance.
      - **Scalability**: As the parachain evolves, adding or updating
      benchmarks becomes more straightforward, supporting scalability and
      adaptability of the runtime.
      
      ### Summary of Changes:
      - Created `benchmarks.rs` to house the benchmarking suite.
      - Streamlined `lib.rs` by removing the inlined benchmark definitions and
      linking to the new benchmarks module.
      
      ---------
      
      Co-authored-by: default avatarKian Paimani <[email protected]>
      33bbdb3c
    • Dónal Murray's avatar
      [pallet-broker] Fix claim revenue behaviour for zero timeslices (#3997) · ba0f8de0
      Dónal Murray authored
      This PR adds a check that `max_timeslices > 0` and errors if not. It
      also adds a test for this behaviour and cleans up some misleading docs.
      ba0f8de0
    • Oliver Tale-Yazdi's avatar
      [prdoc] Support multiple audiences (#3990) · d3eba369
      Oliver Tale-Yazdi authored
      
      
      Closes https://github.com/paritytech/polkadot-sdk/issues/3986
      
      ---------
      
      Signed-off-by: default avatarOliver Tale-Yazdi <[email protected]>
      d3eba369
    • ordian's avatar
      Update pr_3302.prdoc (#3985) · 03e9dd77
      ordian authored
      Properly account for #3302, cc #3984.
      03e9dd77
    • Oliver Tale-Yazdi's avatar
      Revert "[prdoc] Require SemVer bump level" (#3987) · cb0748b6
      Oliver Tale-Yazdi authored
      Reverts paritytech/polkadot-sdk#3816
      cb0748b6
    • Andrei Sandu's avatar
      Elastic scaling: add e2e test (#3929) · 0dc0d407
      Andrei Sandu authored
      
      
      On top of https://github.com/paritytech/polkadot-sdk/pull/3879
      
      I've also moved the previous test where we ensure multiple cores per
      para doesn't break non elastic parachains.
      
      ---------
      
      Signed-off-by: default avatarAndrei Sandu <[email protected]>
      Co-authored-by: default avatarJavier Viola <[email protected]>
      0dc0d407
  2. Apr 04, 2024
    • Ermal Kaleci's avatar
      Update pr_3844.prdoc (#3988) · 5fb43978
      Ermal Kaleci authored
      5fb43978
    • Kutsal Kaan Bilgin's avatar
      Add Helikon boot nodes for Coretime Westend and People Westend. (#3922) · a7acec70
      Kutsal Kaan Bilgin authored
      ## Verify
      
      Coretime Westend:
      ```
      polkadot-parachain --chain=coretime-westend --tmp --relay-chain-rpc-url wss://rpc.ibp.network/westend  --reserved-only --reserved-nodes /dns/boot-node.helikon.io/tcp/9420/p2p/12D3KooWFBPartM873MNm1AmVK3etUz34cAE9A9rwPztPno2epQ3
      polkadot-parachain --chain=coretime-westend --tmp --relay-chain-rpc-url wss://rpc.ibp.network/westend  --reserved-only --reserved-nodes /dns/boot-node.helikon.io/tcp/9422/wss/p2p/12D3KooWFBPartM873MNm1AmVK3etUz34cAE9A9rwPztPno2epQ3
      ```
      
      People Westend:
      
      ```
      polkadot-parachain --chain=/path/to/people-westend.json --tmp --relay-chain-rpc-url wss://rpc.ibp.network/westend  --reserved-only --reserved-nodes /dns/boot-node.helikon.io/tcp/9520/p2p/12D3KooWHhZk21Wzvsd3Un1Cp63diXqr6idbG1MEiUWaitUZuX4c
      polkadot-parachain --chain=/path/to/people-westend.json --tmp --relay-chain-rpc-url wss://rpc.ibp.network/westend  --reserved-only --reserved-nodes /dns/boot-node.helikon.io/tcp/9522/wss/p2p/12D3KooWHhZk21Wzvsd3Un1Cp63diXqr6idbG1MEiUWaitUZuX4c
      ```
      
      Thanks.
      a7acec70
    • 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
    • Shawn Tabrizi's avatar
      Make `BlockNumberProvider::set_block_number` available in tests / std (#3974) · 9d052b7e
      Shawn Tabrizi authored
      
      
      This function is currently only exposed to runtime-benchmarks, where it
      should be available in all tests.
      
      Also made it available in `std` because this is how `set_block_number`
      works in FRAME System, however, not sure if it is needed in the latest
      std/no_std paradigm.
      
      ---------
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      Co-authored-by: default avatarOliver Tale-Yazdi <[email protected]>
      9d052b7e
    • Branislav Kontur's avatar
      Added support for coretime-kusama/polkadot and people-kusama/polkadot (#3961) · 68cdb126
      Branislav Kontur authored
      ## Running  `./polkadot-parachain --chain coretime-kusama` works now:
      
      **Parachain genesis state and header** match expected ones from
      https://gist.github.com/bkontur/f74fc00fd726d09bc7f0f3a9f51ec113?permalink_comment_id=5009857#gistcomment-5009857
      ```
      2024-04-03 12:03:58 [Parachain] 🔨 Initializing Genesis block/state (state: 0xc418…889c, header-hash: 0x638c…d050) 
      ...
      2024-04-03 12:04:04 [Parachain] 💤 Idle (0 peers), best: #0 (0x638c…d050), finalized #0 (0x638c…d050)
      ```
      
      **Relaychain genesis state and header** match expected ones:
      https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fkusama-rpc.polkadot.io#/explorer/query/0
      
      ```
      2024-04-03 12:03:59 [Relaychain] 🔨 Initializing Genesis block/state (state: 0xb000…ef6b, header-hash: 0xb0a8…dafe)    
      ```
      
      
      
      
      
      **Full logs:**
      ```
      bparity@bkontur-ThinkPad-P14s-Gen-2i:~/parity/polkadot-sdk$ ./target/debug/polkadot-parachain --chain coretime-kusama
      2024-04-03 12:03:52 Polkadot parachain    
      2024-04-03 12:03:52 ️  version 4.0.0-665e3654    
      2024-04-03 12:03:52 ️  by Parity Technologies <[email protected]>, 2017-2024    
      2024-04-03 12:03:52 📋 Chain specification: Kusama Coretime    
      2024-04-03 12:03:52 🏷  Node name: subsequent-quicksand-2382    
      2024-04-03 12:03:52 👤 Role: FULL    
      2024-04-03 12:03:52 💾 Database: RocksDb at /home/bparity/.local/share/polkadot-parachain/chains/coretime-kusama/db/full    
      2024-04-03 12:03:54 Parachain id: Id(1005)    
      2024-04-03 12:03:54 Parachain Account: 5Ec4AhPakEiNWFbAd26nRrREnaGQZo3uukPDC5xLr6314Dwg    
      2024-04-03 12:03:54 Is collating: no    
      2024-04-03 12:03:58 [Parachain] 🔨 Initializing Genesis block/state (state: 0xc418…889c, header-hash: 0x638c…d050)    
      2024-04-03 12:03:59 [Relaychain] 🔨 Initializing Genesis block/state (state: 0xb000…ef6b, header-hash: 0xb0a8…dafe)    
      2024-04-03 12:03:59 [Relaychain] 👴 Loading GRANDPA authority set from genesis on what appears to be first startup.    
      2024-04-03 12:03:59 [Relaychain] 👶 Creating empty BABE epoch changes on what appears to be first startup.    
      2024-04-03 12:03:59 [Relaychain] 🏷  Local node identity is: 12D3KooWSfXNBZYimwSKBqfKf7F1X6adNQQD5HVQbdnvSyBFn8Wd    
      2024-04-03 12:03:59 [Relaychain] 💻 Operating system: linux    
      2024-04-03 12:03:59 [Relaychain] 💻 CPU architecture: x86_64    
      2024-04-03 12:03:59 [Relaychain] 💻 Target environment: gnu    
      2024-04-03 12:03:59 [Relaychain] 💻 CPU: 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz    
      2024-04-03 12:03:59 [Relaychain] 💻 CPU cores: 4    
      2024-04-03 12:03:59 [Relaychain] 💻 Memory: 31797MB    
      2024-04-03 12:03:59 [Relaychain] 💻 Kernel: 5.15.0-101-generic    
      2024-04-03 12:03:59 [Relaychain] 💻 Linux distribution: Ubuntu 20.04.6 LTS    
      2024-04-03 12:03:59 [Relaychain] 💻 Virtual machine: no    
      2024-04-03 12:03:59 [Relaychain] 📦 Highest known block at #0    
      2024-04-03 12:03:59 [Relaychain] ️ Prometheus exporter started at 127.0.0.1:9616    
      2024-04-03 12:03:59 [Relaychain] Running JSON-RPC server: addr=127.0.0.1:9945, allowed origins=["http://localhost:*", "http://127.0.0.1:*", "https://localhost:*", "https://127.0.0.1:*", "https://polkadot.js.org"]    
      2024-04-03 12:03:59 [Relaychain] 🏁 CPU score: 1.40 GiBs    
      2024-04-03 12:03:59 [Relaychain] 🏁 Memory score: 15.42 GiBs    
      2024-04-03 12:03:59 [Relaychain] 🏁 Disk score (seq. writes): 1.39 GiBs    
      2024-04-03 12:03:59 [Relaychain] 🏁 Disk score (rand. writes): 690.56 MiBs    
      2024-04-03 12:03:59 [Parachain] Using default protocol ID "sup" because none is configured in the chain specs    
      2024-04-03 12:03:59 [Parachain] 🏷  Local node identity is: 12D3KooWAAvNqXn8WPmvnEj36j7HsdbtpRpmWDPT9xtp4CuphvxW    
      2024-04-03 12:03:59 [Parachain] 💻 Operating system: linux    
      2024-04-03 12:03:59 [Parachain] 💻 CPU architecture: x86_64    
      2024-04-03 12:03:59 [Parachain] 💻 Target environment: gnu    
      2024-04-03 12:03:59 [Parachain] 💻 CPU: 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz    
      2024-04-03 12:03:59 [Parachain] 💻 CPU cores: 4    
      2024-04-03 12:03:59 [Parachain] 💻 Memory: 31797MB    
      2024-04-03 12:03:59 [Parachain] 💻 Kernel: 5.15.0-101-generic    
      2024-04-03 12:03:59 [Parachain] 💻 Linux distribution: Ubuntu 20.04.6 LTS    
      2024-04-03 12:03:59 [Parachain] 💻 Virtual machine: no    
      2024-04-03 12:03:59 [Parachain] 📦 Highest known block at #0    
      2024-04-03 12:03:59 [Parachain] ️ Prometheus exporter started at 127.0.0.1:9615    
      2024-04-03 12:03:59 [Parachain] Running JSON-RPC server: addr=127.0.0.1:9944, allowed origins=["http://localhost:*", "http://127.0.0.1:*", "https://localhost:*", "https://127.0.0.1:*", "https://polkadot.js.org"]    
      2024-04-03 12:03:59 [Parachain] 🏁 CPU score: 1.40 GiBs    
      2024-04-03 12:03:59 [Parachain] 🏁 Memory score: 15.42 GiBs    
      2024-04-03 12:03:59 [Parachain] 🏁 Disk score (seq. writes): 1.39 GiBs    
      2024-04-03 12:03:59 [Parachain] 🏁 Disk score (rand. writes): 690.56 MiBs    
      2024-04-03 12:03:59 [Parachain] discovered: 12D3KooWSfXNBZYimwSKBqfKf7F1X6adNQQD5HVQbdnvSyBFn8Wd /ip4/192.168.1.100/tcp/30334/ws    
      2024-04-03 12:03:59 [Relaychain] discovered: 12D3KooWAAvNqXn8WPmvnEj36j7HsdbtpRpmWDPT9xtp4CuphvxW /ip4/192.168.1.100/tcp/30333/ws    
      2024-04-03 12:03:59 [Relaychain] discovered: 12D3KooWAAvNqXn8WPmvnEj36j7HsdbtpRpmWDPT9xtp4CuphvxW /ip4/172.18.0.1/tcp/30333/ws    
      2024-04-03 12:03:59 [Parachain] discovered: 12D3KooWSfXNBZYimwSKBqfKf7F1X6adNQQD5HVQbdnvSyBFn8Wd /ip4/172.17.0.1/tcp/30334/ws    
      2024-04-03 12:03:59 [Relaychain] discovered: 12D3KooWAAvNqXn8WPmvnEj36j7HsdbtpRpmWDPT9xtp4CuphvxW /ip4/172.17.0.1/tcp/30333/ws    
      2024-04-03 12:03:59 [Parachain] discovered: 12D3KooWSfXNBZYimwSKBqfKf7F1X6adNQQD5HVQbdnvSyBFn8Wd /ip4/172.18.0.1/tcp/30334/ws    
      2024-04-03 12:04:00 [Relaychain] 🔍 Discovered new external address for our node: /ip4/178.41.176.246/tcp/30334/ws/p2p/12D3KooWSfXNBZYimwSKBqfKf7F1X6adNQQD5HVQbdnvSyBFn8Wd    
      2024-04-03 12:04:00 [Relaychain] Sending fatal alert BadCertificate    
      2024-04-03 12:04:00 [Relaychain] Sending fatal alert BadCertificate    
      2024-04-03 12:04:04 [Relaychain] ️  Syncing, target=#22575321 (7 peers), best: #738 (0x1803…bbef), finalized #512 (0xb9b6…7014),  328.5kiB/s  102.9kiB/s    
      2024-04-03 12:04:04 [Parachain] 💤 Idle (0 peers), best: #0 (0x638c…d050), finalized #0 (0x638c…d050),  0  0    
      2024-04-03 12:04:09 [Relaychain] ️  Syncing 169.5 bps, target=#22575322 (8 peers), best: #1586 (0x405b…a8aa), finalized #1536 (0x55d1…fb04),  232.3kiB/s  55.9kiB/s    
      2024-04-03 12:04:09 [Parachain] 💤 Idle (0 peers), best: #0 (0x638c…d050), finalized #0 (0x638c…d050),  0  0    
      2024-04-03 12:04:14 [Relaychain] ️  Syncing 168.0 bps, target=#22575323 (8 peers), best: #2426 (0x155f…d083), finalized #2048 (0xede6…f879),  235.8kiB/s  67.2kiB/s    
      2024-04-03 12:04:14 [Parachain] 💤 Idle (0 peers), best: #0 (0x638c…d050), finalized #0 (0x638c…d050),  0  0    
      2024-04-03 12:04:19 [Relaychain] ️  Syncing 170.0 bps, target=#22575324 (8 peers), best: #3276 (0x94d8…097e), finalized #3072 (0x0e4c…f587),  129.0kiB/s  34.0kiB/s
      ...
      ```
      
      ## Running  `./polkadot-parachain --chain people-kusama` works now:
      
      **Parachain genesis state and header** match expected ones from
      https://gist.github.com/bkontur/f74fc00fd726d09bc7f0f3a9f51ec113?permalink_comment_id=5011798#gistcomment-5011798
      ```
      2024-04-04 10:26:24 [Parachain] 🔨 Initializing Genesis block/state (state: 0x023a…2733, header-hash: 0x07b8…2645)    
      ...
      2024-04-04 10:26:30 [Parachain] 💤 Idle (0 peers), best: #0 (0x07b8…2645), finalized #0 (0x07b8…2645),  0  0    
      ```
      
      **Relaychain genesis state and header** match expected ones:
      https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fkusama-rpc.polkadot.io#/explorer/query/0
      
      ```
      2024-04-04 10:26:25 [Relaychain] 🔨 Initializing Genesis block/state (state: 0xb000…ef6b, header-hash: 0xb0a8…dafe)  
      ```
      
      
      
      
      
      **Full logs:**
      ```
      bparity@bkontur-ThinkPad-P14s-Gen-2i:~/parity/aaa/polkadot-sdk$ ./target/debug/polkadot-parachain --chain people-kusama
      2024-04-04 10:26:18 Polkadot parachain    
      2024-04-04 10:26:18 ️  version 4.0.0-39274bb7    
      2024-04-04 10:26:18 ️  by Parity Technologies <[email protected]>, 2017-2024    
      2024-04-04 10:26:18 📋 Chain specification: Kusama People    
      2024-04-04 10:26:18 🏷  Node name: knotty-flight-5398    
      2024-04-04 10:26:18 👤 Role: FULL    
      2024-04-04 10:26:18 💾 Database: RocksDb at /home/bparity/.local/share/polkadot-parachain/chains/people-kusama/db/full    
      2024-04-04 10:26:21 Parachain id: Id(1004)    
      2024-04-04 10:26:21 Parachain Account: 5Ec4AhPaYcfBz8fMoPd4EfnAgwbzRS7np3APZUnnFo12qEYk    
      2024-04-04 10:26:21 Is collating: no    
      2024-04-04 10:26:24 [Parachain] 🔨 Initializing Genesis block/state (state: 0x023a…2733, header-hash: 0x07b8…2645)    
      2024-04-04 10:26:25 [Relaychain] 🔨 Initializing Genesis block/state (state: 0xb000…ef6b, header-hash: 0xb0a8…dafe)    
      2024-04-04 10:26:25 [Relaychain] 👴 Loading GRANDPA authority set from genesis on what appears to be first startup.    
      2024-04-04 10:26:25 [Relaychain] 👶 Creating empty BABE epoch changes on what appears to be first startup.    
      2024-04-04 10:26:25 [Relaychain] 🏷  Local node identity is: 12D3KooWPoTVhnrFNzVYJPR42HE9rYjXhkKHFDL9ut5nafDqJHKB    
      2024-04-04 10:26:25 [Relaychain] 💻 Operating system: linux    
      2024-04-04 10:26:25 [Relaychain] 💻 CPU architecture: x86_64    
      2024-04-04 10:26:25 [Relaychain] 💻 Target environment: gnu    
      2024-04-04 10:26:25 [Relaychain] 💻 CPU: 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz    
      2024-04-04 10:26:25 [Relaychain] 💻 CPU cores: 4    
      2024-04-04 10:26:25 [Relaychain] 💻 Memory: 31797MB    
      2024-04-04 10:26:25 [Relaychain] 💻 Kernel: 5.15.0-101-generic    
      2024-04-04 10:26:25 [Relaychain] 💻 Linux distribution: Ubuntu 20.04.6 LTS    
      2024-04-04 10:26:25 [Relaychain] 💻 Virtual machine: no    
      2024-04-04 10:26:25 [Relaychain] 📦 Highest known block at #0    
      2024-04-04 10:26:25 [Relaychain] ️ Prometheus exporter started at 127.0.0.1:9616    
      2024-04-04 10:26:25 [Relaychain] Running JSON-RPC server: addr=127.0.0.1:9945, allowed origins=["http://localhost:*", "http://127.0.0.1:*", "https://localhost:*", "https://127.0.0.1:*", "https://polkadot.js.org"]    
      2024-04-04 10:26:25 [Relaychain] 🏁 CPU score: 1.18 GiBs    
      2024-04-04 10:26:25 [Relaychain] 🏁 Memory score: 15.61 GiBs    
      2024-04-04 10:26:25 [Relaychain] 🏁 Disk score (seq. writes): 1.49 GiBs    
      2024-04-04 10:26:25 [Relaychain] 🏁 Disk score (rand. writes): 650.01 MiBs    
      2024-04-04 10:26:25 [Parachain] Using default protocol ID "sup" because none is configured in the chain specs    
      2024-04-04 10:26:25 [Parachain] 🏷  Local node identity is: 12D3KooWS2WPQgtiZZYT6bLGjwGcJU7QVd5EeQvb4jHN3NVSWDdj    
      2024-04-04 10:26:25 [Parachain] 💻 Operating system: linux    
      2024-04-04 10:26:25 [Parachain] 💻 CPU architecture: x86_64    
      2024-04-04 10:26:25 [Parachain] 💻 Target environment: gnu    
      2024-04-04 10:26:25 [Parachain] 💻 CPU: 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz    
      2024-04-04 10:26:25 [Parachain] 💻 CPU cores: 4    
      2024-04-04 10:26:25 [Parachain] 💻 Memory: 31797MB    
      2024-04-04 10:26:25 [Parachain] 💻 Kernel: 5.15.0-101-generic    
      2024-04-04 10:26:25 [Parachain] 💻 Linux distribution: Ubuntu 20.04.6 LTS    
      2024-04-04 10:26:25 [Parachain] 💻 Virtual machine: no    
      2024-04-04 10:26:25 [Parachain] 📦 Highest known block at #0    
      2024-04-04 10:26:25 [Parachain] ️ Prometheus exporter started at 127.0.0.1:9615    
      2024-04-04 10:26:25 [Parachain] Running JSON-RPC server: addr=127.0.0.1:9944, allowed origins=["http://localhost:*", "http://127.0.0.1:*", "https://localhost:*", "https://127.0.0.1:*", "https://polkadot.js.org"]    
      2024-04-04 10:26:25 [Parachain] 🏁 CPU score: 1.18 GiBs    
      2024-04-04 10:26:25 [Parachain] 🏁 Memory score: 15.61 GiBs    
      2024-04-04 10:26:25 [Parachain] 🏁 Disk score (seq. writes): 1.49 GiBs    
      2024-04-04 10:26:25 [Parachain] 🏁 Disk score (rand. writes): 650.01 MiBs    
      2024-04-04 10:26:25 [Parachain] discovered: 12D3KooWPoTVhnrFNzVYJPR42HE9rYjXhkKHFDL9ut5nafDqJHKB /ip4/172.17.0.1/tcp/30334/ws    
      2024-04-04 10:26:25 [Relaychain] discovered: 12D3KooWS2WPQgtiZZYT6bLGjwGcJU7QVd5EeQvb4jHN3NVSWDdj /ip4/172.18.0.1/tcp/30333/ws    
      2024-04-04 10:26:25 [Relaychain] discovered: 12D3KooWS2WPQgtiZZYT6bLGjwGcJU7QVd5EeQvb4jHN3NVSWDdj /ip4/192.168.1.100/tcp/30333/ws    
      2024-04-04 10:26:25 [Parachain] discovered: 12D3KooWPoTVhnrFNzVYJPR42HE9rYjXhkKHFDL9ut5nafDqJHKB /ip4/172.18.0.1/tcp/30334/ws    
      2024-04-04 10:26:25 [Relaychain] discovered: 12D3KooWS2WPQgtiZZYT6bLGjwGcJU7QVd5EeQvb4jHN3NVSWDdj /ip4/172.17.0.1/tcp/30333/ws    
      2024-04-04 10:26:25 [Parachain] discovered: 12D3KooWPoTVhnrFNzVYJPR42HE9rYjXhkKHFDL9ut5nafDqJHKB /ip4/192.168.1.100/tcp/30334/ws    
      2024-04-04 10:26:26 [Relaychain] 🔍 Discovered new external address for our node: /ip4/178.41.176.246/tcp/30334/ws/p2p/12D3KooWPoTVhnrFNzVYJPR42HE9rYjXhkKHFDL9ut5nafDqJHKB    
      2024-04-04 10:26:27 [Relaychain] Sending fatal alert BadCertificate    
      2024-04-04 10:26:27 [Relaychain] Sending fatal alert BadCertificate    
      2024-04-04 10:26:30 [Relaychain] ️  Syncing, target=#22588722 (8 peers), best: #638 (0xa9cd…7c30), finalized #512 (0xb9b6…7014),  345.6kiB/s  108.7kiB/s    
      2024-04-04 10:26:30 [Parachain] 💤 Idle (0 peers), best: #0 (0x07b8…2645), finalized #0 (0x07b8…2645),  0  0    
      2024-04-04 10:26:35 [Relaychain] ️  Syncing 174.4 bps, target=#22588722 (9 peers), best: #1510 (0xec0b…72f0), finalized #1024 (0x3f17…fd7f),  203.1kiB/s  45.0kiB/s    
      2024-04-04 10:26:35 [Parachain] 💤 Idle (0 peers), best: #0 (0x07b8…2645), finalized #0 (0x07b8…2645),  0  0    
      2024-04-04 10:26:40 [Relaychain] ️  Syncing 168.9 bps, target=#22588723 (9 peers), best: #2355 (0xa68b…3a64), finalized #2048 (0xede6…f879),  201.6kiB/s  47.4kiB/s    
      2024-04-04 10:26:40 [Parachain] 💤 Idle (0 peers), best: #0 (0x07b8…2645), finalized #0 (0x07b8…2645),  0 
      
       0    
      
      ```
      
      ## TODO
      - [x] double check
      `cumulus/polkadot-parachain/chain-specs/coretime-kusama.json`
      (safeXcmVersion=3) see
      [comment](https://github.com/paritytech/polkadot-sdk/pull/3961#discussion_r1549473587)
      - [x] check if ~~`start_generic_aura_node`~~ or
      `start_generic_aura_lookahead_node`
      - [x] generate chain-spec for `people-kusama`
      
      ---------
      
      Co-authored-by: default avatarDónal Murray <[email protected]>
      68cdb126
    • Liam Aharon's avatar
      Migrate fee payment from `Currency` to `fungible` (#2292) · bda4e75a
      Liam Aharon authored
      Part of https://github.com/paritytech/polkadot-sdk/issues/226 
      Related https://github.com/paritytech/polkadot-sdk/issues/1833
      
      - Deprecate `CurrencyAdapter` and introduce `FungibleAdapter`
      - Deprecate `ToStakingPot` and replace usage with `ResolveTo`
      - Required creating a new `StakingPotAccountId` struct that implements
      `TypedGet` for the staking pot account ID
      - Update parachain common utils `DealWithFees`, `ToAuthor` and
      `AssetsToBlockAuthor` implementations to use `fungible`
      - Update runtime XCM Weight Traders to use `ResolveTo` instead of
      `ToStakingPot`
      - Update runtime Transaction Payment pallets to use `FungibleAdapter`
      instead of `CurrencyAdapter`
      - [x] Blocked by https://github.com/paritytech/polkadot-sdk/pull/1296,
      needs the `Unbalanced::decrease_balance` fix
      bda4e75a
    • Francisco Aguirre's avatar
      XCM builder pattern improvement - Accept `impl Into<T>` instead of just `T` (#3708) · c130ea99
      Francisco Aguirre authored
      
      
      The XCM builder pattern lets you build xcms like so:
      
      ```rust
      let xcm = Xcm::builder()
          .withdraw_asset((Parent, 100u128).into())
          .buy_execution((Parent, 1u128).into())
          .deposit_asset(All.into(), AccountId32 { id: [0u8; 32], network: None }.into())
          .build();
      ```
      
      All the `.into()` become quite annoying to have to write.
      I accepted `impl Into<T>` instead of `T` in the generated methods from
      the macro.
      Now the previous example can be simplified as follows:
      
      ```rust
      let xcm = Xcm::builder()
          .withdraw_asset((Parent, 100u128))
          .buy_execution((Parent, 1u128))
          .deposit_asset(All, [0u8; 32])
          .build();
      ```
      
      ---------
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarAdrian Catangiu <[email protected]>
      c130ea99
    • juangirini's avatar
      [doc] Example MBM pallet (#2119) · bcb4d137
      juangirini authored
      
      
      ## Basic example showcasing a migration using the MBM framework
      
      This PR has been built on top of
      https://github.com/paritytech/polkadot-sdk/pull/1781 and adds two new
      example crates to the `examples` pallet
      
      ### Changes Made:
      
      Added the `pallet-example-mbm` crate: This crate provides a minimal
      example of a pallet that uses MBM. It showcases a storage migration
      where values are migrated from a `u32` to a `u64`.
      
      ---------
      
      Signed-off-by: default avatarOliver Tale-Yazdi <[email protected]>
      Co-authored-by: default avatarOliver Tale-Yazdi <[email protected]>
      Co-authored-by: default avatarLiam Aharon <[email protected]>
      bcb4d137
    • Liam Aharon's avatar
      Fix Mermaid diagram rendering (#3875) · 0ef37c75
      Liam Aharon authored
      
      
      Closes https://github.com/paritytech/polkadot-sdk/issues/2977
      
      The issue appears to stem from the `aquamarine` crate failing to render
      diagrams in re-exported crates.
      
      e.g. as raised
      [here](https://github.com/paritytech/polkadot-sdk/issues/2977), diagrams
      would render at `frame_support::traits::Hooks` but not the re-exported
      doc `frame::traits::Hooks`, even if I added `aquamarine` as a `frame`
      crate dependency.
      
      To resolve this, I followed advice in
      https://github.com/mersinvald/aquamarine/issues/20 to instead render
      mermaid diagrams directly using JS by adding an `after-content.js`.
      
      ---
      
      Also fixes compile warnings, enables `--all-features` and disallows
      future warnings in CI.
      
      ---------
      
      Co-authored-by: default avatarKian Paimani <[email protected]>
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      0ef37c75
    • Lulu's avatar
      Use 0.1.0 as minimum version for crates (#3941) · 0bbda78d
      Lulu authored
      CI will be enforcing this with next parity-publish release
      0bbda78d
    • Vladimir Istyufeev's avatar
      Convince GitLab not to crop collapsed multiline strings (#3971) · ebdca15c
      Vladimir Istyufeev authored
      Use of `- >` instead of `- |` workarounds GitLab quirk when it crops
      collapsed multiline `script:` section commands in its CI job logs.
      This PR also fixes `- |` based `script:` steps to behave properly after
      `- >` conversion.
      
      Resolves https://github.com/paritytech/ci_cd/issues/972.
      ebdca15c
    • gupnik's avatar
      Renames `frame` crate to `polkadot-sdk-frame` (#3813) · 38363769
      gupnik authored
      
      
      Step in https://github.com/paritytech/polkadot-sdk/issues/3155
      
      Needed for https://github.com/paritytech/eng-automation/issues/6
      
      This PR renames `frame` crate to `polkadot-sdk-frame` as `frame` is not
      available on crates.io
      
      ---------
      
      Co-authored-by: default avatarKian Paimani <[email protected]>
      38363769
  3. Apr 03, 2024
  4. Apr 02, 2024
    • Andrei Eres's avatar
      Remove nextest filtration (#3885) · 665e3654
      Andrei Eres authored
      
      
      Fixes
      https://github.com/paritytech/polkadot-sdk/issues/3884#issuecomment-2026058687
      
      After moving regression tests to benchmarks
      (https://github.com/paritytech/polkadot-sdk/pull/3741) we don't need to
      filter tests anymore.
      
      ---------
      
      Signed-off-by: default avatarAlexandru Vasile <[email protected]>
      Signed-off-by: default avatarOliver Tale-Yazdi <[email protected]>
      Co-authored-by: default avatarAndrei Sandu <[email protected]>
      Co-authored-by: default avatarAlin Dima <[email protected]>
      Co-authored-by: default avatarAndrei Sandu <[email protected]>
      Co-authored-by: default avatarOliver Tale-Yazdi <[email protected]>
      Co-authored-by: default avatarJavier Viola <[email protected]>
      Co-authored-by: default avatarSerban Iorga <[email protected]>
      Co-authored-by: default avatarAdrian Catangiu <[email protected]>
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      Co-authored-by: default avatarAlexandru Vasile <[email protected]>
      Co-authored-by: default avatarNiklas Adolfsson <[email protected]>
      Co-authored-by: default avatarDastan <[email protected]>
      Co-authored-by: default avatarLiam Aharon <[email protected]>
      Co-authored-by: default avatarClara van Staden <[email protected]>
      Co-authored-by: default avatarRon <[email protected]>
      Co-authored-by: default avatarVincent Geddes <[email protected]>
      Co-authored-by: default avatarSvyatoslav Nikolsky <[email protected]>
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      665e3654
    • Dino Pačandi's avatar
      SortedMembers::add for pallet-membership benchmarks (#3729) · f88190a5
      Dino Pačandi authored
      
      
      Adds implementation for `SortedMembers::add` for _pallet-membership_
      benchmarks.
      
      ---------
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      Co-authored-by: command-bot <>
      f88190a5
    • Michal Kucharczyk's avatar
      sp_runtime: TryFrom<RuntimeString> for &str (#3942) · 0becc45b
      Michal Kucharczyk authored
      Added `TryFrom<&'a RuntimeString> for &'a str`
      0becc45b
    • Clara van Staden's avatar
      Snowbridge: Synchronize from Snowfork repository (#3761) · 5d9826c2
      Clara van Staden authored
      This PR includes the following 2 improvements:
      
      ## Ethereum Client
      
      Author: @yrong 
      ### Original Upstream PRs
      - https://github.com/Snowfork/polkadot-sdk/pull/123
      - https://github.com/Snowfork/polkadot-sdk/pull/125
      
      ### Description
      The Ethereum client syncs beacon headers as they are finalized, and
      imports every execution header. When a message is received, it is
      verified against the import execution header. This is unnecessary, since
      the execution header can be sent with the message as proof. The recent
      Deneb Ethereum upgrade made it easier to locate the relevant beacon
      header from an execution header, and so this improvement was made
      possible. This resolves a concern @svyatonik had in our initial Rococo
      PR:
      https://github.com/paritytech/polkadot-sdk/pull/2522#discussion_r1431270691
      
      ## Inbound Queue
      
      Author: @yrong 
      ### Original Upstream PR
      - https://github.com/Snowfork/polkadot-sdk/pull/118
      
      ### Description
      When the AH sovereign account (who pays relayer rewards) is depleted,
      the inbound message will not fail. The relayer just will not receive
      rewards.
      
      Both these changes were done by @yrong, many thanks. 
      
      ️
      
      ---------
      
      Co-authored-by: claravanstaden <Cats 4 life!>
      Co-authored-by: default avatarRon <[email protected]>
      Co-authored-by: default avatarVincent Geddes <[email protected]>
      Co-authored-by: default avatarSvyatoslav Nikolsky <[email protected]>
      5d9826c2
    • Dastan's avatar
      migrations: prevent accidentally using unversioned migrations instead of... · e5427969
      Dastan authored
      migrations: prevent accidentally using unversioned migrations instead of `VersionedMigration` (#3835)
      
      closes #1324 
      
      #### Problem
      Currently, it is possible to accidentally use inner unversioned
      migration instead of `VersionedMigration` since both implement
      `OnRuntimeUpgrade`.
      
      #### Solution
      
      With this change, we make it clear that value of `Inner` is not intended
      to be used directly. It is achieved by bounding `Inner` to new trait
      `UncheckedOnRuntimeUpgrade`, which has the same interface (except
      `unchecked_` prefix) as `OnRuntimeUpgrade`.
      
      #### `try-runtime` functions
      
      Since developers can implement `try-runtime` for `Inner` value in
      `VersionedMigration` and have custom logic for it, I added the same
      `try-runtime` functions to `UncheckedOnRuntimeUpgrade`. I looked for a
      ways to not duplicate functions, but couldn't find anything that doesn't
      significantly change the codebase. So I would appreciate If you have any
      suggestions to improve this
      
      cc @liamaharon
      
       @xlc 
      
      polkadot address: 16FqwPZ8GRC5U5D4Fu7W33nA55ZXzXGWHwmbnE1eT6pxuqcT
      
      ---------
      
      Co-authored-by: default avatarLiam Aharon <[email protected]>
      e5427969
    • 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
    • Alexandru Vasile's avatar
      chainHead: Allow methods to be called from within a single connection context... · 7430f413
      Alexandru Vasile authored
      
      chainHead: Allow methods to be called from within a single connection context and limit connections (#3481)
      
      This PR ensures that the chainHead RPC class can be called only from
      within the same connection context.
      
      The chainHead methods are now registered as raw methods. 
      - https://github.com/paritytech/jsonrpsee/pull/1297
      The concept of raw methods is introduced in jsonrpsee, which is an async
      method that exposes the connection ID:
      The raw method doesn't have the concept of a blocking method. Previously
      blocking methods are now spawning a blocking task to handle their
      blocking (ie DB) access. We spawn the same number of tasks as before,
      however we do that explicitly.
      
      Another approach would be implementing a RPC middleware that captures
      and decodes the method parameters:
      - https://github.com/paritytech/polkadot-sdk/pull/3343
      However, that approach is prone to errors since the methods are
      hardcoded by name. Performace is affected by the double deserialization
      that needs to happen to extract the subscription ID we'd like to limit.
      Once from the middleware, and once from the methods itself.
      
      This PR paves the way to implement the chainHead connection limiter:
      - https://github.com/paritytech/polkadot-sdk/issues/1505
      Registering tokens (subscription ID / operation ID) on the
      `RpcConnections` could be extended to return an error when the maximum
      number of operations is reached.
      
      While at it, have added an integration-test to ensure that chainHead
      methods can be called from within the same connection context.
      
      Before this is merged, a new JsonRPC release should be made to expose
      the `raw-methods`:
      - [x] Use jsonrpsee from crates io (blocked by:
      https://github.com/paritytech/jsonrpsee/pull/1297)
      
      Closes: https://github.com/paritytech/polkadot-sdk/issues/3207
      
      
      cc @paritytech/subxt-team
      
      ---------
      
      Signed-off-by: default avatarAlexandru Vasile <[email protected]>
      Co-authored-by: default avatarNiklas Adolfsson <[email protected]>
      7430f413
    • 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
    • Serban Iorga's avatar
      Update bridges subtree (#3938) · d5617cf3
      Serban Iorga authored
      Pulling the latest changes from `parity-bridges-common`
      d5617cf3
    • Javier Viola's avatar
      chore(zombienet): bump version (#3933) · db1af43c
      Javier Viola authored
      This version includes:
      
      - Internal metrics of zombienet (used to benchmark with v2).
      db1af43c
    • Bastian Köcher's avatar
      Fix parachain upgrade scheduling when done by the owner/root (#3341) · 12eb285d
      Bastian Köcher authored
      When using `schedule_code_upgrade` to change the code of a parachain in
      the relay chain runtime, we had already fixed to not set the `GoAhead`
      signal. This was done to not brick any parachain after the upgrade,
      because they were seeing the signal without having any upgrade prepared.
      The remaining problem is that the parachain code is only upgraded after
      a parachain header was enacted, aka the parachain made some progress.
      However, this is quite complicated if the parachain is bricked (which is
      the most common scenario why to manually schedule a code upgrade). Thus,
      this pull request replaces `SetGoAhead` with `UpgradeStrategy` to signal
      to the logic kind of strategy want to use. The strategies are either
      `SetGoAheadSignal` or `ApplyAtExpectedBlock`. `SetGoAheadSignal` sets
      the go ahead signal as before and awaits a parachain block.
      `ApplyAtExpectedBlock` schedules the upgrade and applies it directly at
      the `expected_block` without waiting for the parachain to make any kind
      of progress.
      12eb285d
    • Adrian Catangiu's avatar
      pallet-xcm: fix weights for all XTs and deprecate unlimited weight ones (#3927) · d0ebb850
      Adrian Catangiu authored
      
      
      Fix "double-weights" for extrinsics, use only the ones benchmarked in
      the runtime.
      
      Deprecate extrinsics that don't specify WeightLimit, remove their usage
      across the repo.
      
      ---------
      
      Signed-off-by: default avatarAdrian Catangiu <[email protected]>
      Co-authored-by: command-bot <>
      d0ebb850
    • Sam Johnson's avatar
      Update derive syn parse 0.2.0 (+ docify) (#3920) · 9a62de27
      Sam Johnson authored
      
      
      derive-syn-parse v0.2.0 came out recently which (finally) adds support
      for syn 2x.
      
      Upgrading to this will remove many of the places where syn 1x was still
      compiling alongside syn 2x in the polkadot-sdk workspace.
      
      This also upgrades `docify` to 0.2.8 which is the version that upgrades
      derive-syn-pasre to 0.2.0.
      
      Additionally, this consolidates the `docify` versions in the repo to all
      use the latest, and in one case upgrades to the 0.2x syntax where 0.1.x
      was still being used.
      
      ---------
      
      Co-authored-by: default avatarLiam Aharon <[email protected]>
      9a62de27
  5. 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
    • Andrei Sandu's avatar
      pallet-scheduler: fix test (#3923) · bf1ca86f
      Andrei Sandu authored
      
      
      fix https://github.com/paritytech/polkadot-sdk/issues/3921
      
      ---------
      
      Signed-off-by: default avatarAndrei Sandu <[email protected]>
      bf1ca86f
    • Serban Iorga's avatar
      Fix links (#3928) · 9805ba2c
      Serban Iorga authored
      Fix links
      
      Related CI failure:
      https://github.com/paritytech/polkadot-sdk/actions/runs/8455425042/job/23162858534?pr=3859
      9805ba2c