Skip to content
Snippets Groups Projects
  1. Apr 11, 2024
    • s0me0ne-unkn0wn's avatar
      Enable mainnet system parachains to use async backing-enabled collator (#3630) · f13408d5
      s0me0ne-unkn0wn authored
      This is phase 2 of async backing enablement for the system parachains on
      the production networks. ~~It should be merged after
      polkadot-fellows/runtimes#228 is enacted. After it is released,~~ all
      the system parachain collators should be upgraded, and then we can
      proceed with phase 3, which will enable async backing in the runtimes.
      
      UPDATE: Indeed, we don't need to wait for the runtime upgrade enactions.
      The lookahead collator handles the transition by itself, so we can
      upgrade ASAP.
      
      ## Scope of changes
      
      Here, we eliminate the dichotomy of having "generic Aura collators" for
      the production system parachains and "lookahead Aura collators" for the
      testnet system parachains. Now, all the collators are started as
      lookahead ones, preserving the logic of transferring from the shell node
      to Aura-enabled collators for the asset hubs. So, indeed, it simplifies
      the parachain service logic, which cannot but rejoice.
  2. 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 (`--out-peers 200`), networking CPU
      usage goes down from ~110% to ~30% (80 pp) and for normal load
      (`--out-peers 40`), the usage goes down from ~55% to ~18% (37 pp).
      
      These should not be taken as final numbers because:
      
      a) there are still some low-hanging optimization fruits, such as
      enabling [receive window
      auto-tuning](https://github.com/libp2p/rust-yamux/pull/176), integrating
      `Peerset` more closely with `litep2p` or improving memory usage of the
      WebSocket transport
      b) fixing bugs/instabilities that incorrectly cause `litep2p` to do less
      work will increase the networking CPU usage
      c) verification in a more diverse set of tests/conditions is needed
      
      Nevertheless, these numbers should give an early estimate for CPU usage
      of the new networking backend.
      
      This PR consists of three separate changes:
      * introduce a generic `PeerId` (wrapper around `Multihash`) so that we
      don't have use `NetworkService::PeerId` in every part of the code that
      uses a `PeerId`
      * introduce `NetworkBackend` trait, implement it for the libp2p network
      stack and make Polkadot SDK generic over `NetworkBackend`
        * implement `NetworkBackend` for litep2p
      
      The new library should be considered experimental which is why
      `rust-libp2p` will remain as the default option for the time being. This
      PR currently depends on the master branch of `litep2p` but I'll cut a
      new release for the library once all review comments have been
      addresses.
      
      ---------
      
      Signed-off-by: default avatarAlexandru Vasile <alexandru.vasile@parity.io>
      Co-authored-by: default avatarDmitry Markin <dmitry@markin.tech>
      Co-authored-by: default avatarAlexandru Vasile <60601340+lexnv@users.noreply.github.com>
      Co-authored-by: default avatarAlexandru Vasile <alexandru.vasile@parity.io>
    • Oliver Tale-Yazdi's avatar
      [FRAME] Runtime Omni Bencher (#3512) · 9543d314
      Oliver Tale-Yazdi authored
      
      This MR contains two major changes and some maintenance cleanup.  
      
      ## 1. Free Standing Pallet Benchmark Runner
      
      Closes https://github.com/paritytech/polkadot-sdk/issues/3045, depends
      on your runtime exposing the `GenesisBuilderApi` (like
      https://github.com/paritytech/polkadot-sdk/pull/1492).
      
      Introduces a new binary crate: `frame-omni-bencher`.  
      It allows to directly benchmark a WASM blob - without needing a node or
      chain spec.
      
      This makes it much easier to generate pallet weights and should allow us
      to remove bloaty code from the node.
      It should work for all FRAME runtimes that dont use 3rd party host calls
      or non `BlakeTwo256` block hashing (basically all polkadot parachains
      should work).
      
      It is 100% backwards compatible with the old CLI args, when the `v1`
      compatibility command is used. This is done to allow for forwards
      compatible addition of new commands.
      
      ### Example (full example in the Rust docs)
      
      Installing the CLI:
      ```sh
      cargo install --locked --path substrate/utils/frame/omni-bencher
      frame-omni-bencher --help
      ```
      
      Building the Westend runtime:
      ```sh
      cargo build -p westend-runtime --release --features runtime-benchmarks
      ```
      
      Benchmarking the runtime:
      ```sh
      frame-omni-bencher v1 benchmark pallet --runtime target/release/wbuild/westend-runtime/westend_runtime.compact.compressed.wasm --all
      ```
      
      ## 2. Building the Benchmark Genesis State in the Runtime
      
      Closes https://github.com/paritytech/polkadot-sdk/issues/2664
      
      This adds `--runtime` and `--genesis-builder=none|runtime|spec`
      arguments to the `benchmark pallet` command to make it possible to
      generate the genesis storage by the runtime. This can be used with both
      the node and the freestanding benchmark runners. It utilizes the new
      `GenesisBuilder` RA and depends on having
      https://github.com/paritytech/polkadot-sdk/pull/3412 deployed.
      
      ## 3. Simpler args for `PalletCmd::run`
      
      You can do three things here to integrate the changes into your node:
      - nothing: old code keeps working as before but emits a deprecated
      warning
      - delete: remove the pallet benchmarking code from your node and use the
      omni-bencher instead
      - patch: apply the patch below and keep using as currently. This emits a
      deprecated warning at runtime, since it uses the old way to generate a
      genesis state, but is the smallest change.
      
      ```patch
      runner.sync_run(|config| cmd
      -    .run::<HashingFor<Block>, ReclaimHostFunctions>(config)
      +    .run_with_spec::<HashingFor<Block>, ReclaimHostFunctions>(Some(config.chain_spec))
      )
      ```
      
      ## 4. Maintenance Change
      - `pallet-nis` get a `BenchmarkSetup` config item to prepare its
      counterparty asset.
      - Add percent progress print when running benchmarks.
      - Dont immediately exit on benchmark error but try to run as many as
      possible and print errors last.
      
      ---------
      
      Signed-off-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      Co-authored-by: default avatarLiam Aharon <liam.aharon@hotmail.com>
  3. Apr 04, 2024
    • 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] :hammer: Initializing Genesis block/state (state: 0xc418…889c, header-hash: 0x638c…d050) 
      ...
      2024-04-03 12:04:04 [Parachain] :zzz: 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] :hammer: 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 :v:️  version 4.0.0-665e3654    
      2024-04-03 12:03:52 :heart:️  by Parity Technologies <admin@parity.io>, 2017-2024    
      2024-04-03 12:03:52 :clipboard: Chain specification: Kusama Coretime    
      2024-04-03 12:03:52 :label:  Node name: subsequent-quicksand-2382    
      2024-04-03 12:03:52 :bust_in_silhouette: Role: FULL    
      2024-04-03 12:03:52 :floppy_disk: 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] :hammer: Initializing Genesis block/state (state: 0xc418…889c, header-hash: 0x638c…d050)    
      2024-04-03 12:03:59 [Relaychain] :hammer: Initializing Genesis block/state (state: 0xb000…ef6b, header-hash: 0xb0a8…dafe)    
      2024-04-03 12:03:59 [Relaychain] :older_man: Loading GRANDPA authority set from genesis on what appears to be first startup.    
      2024-04-03 12:03:59 [Relaychain] :baby: Creating empty BABE epoch changes on what appears to be first startup.    
      2024-04-03 12:03:59 [Relaychain] :label:  Local node identity is: 12D3KooWSfXNBZYimwSKBqfKf7F1X6adNQQD5HVQbdnvSyBFn8Wd    
      2024-04-03 12:03:59 [Relaychain] :computer: Operating system: linux    
      2024-04-03 12:03:59 [Relaychain] :computer: CPU architecture: x86_64    
      2024-04-03 12:03:59 [Relaychain] :computer: Target environment: gnu    
      2024-04-03 12:03:59 [Relaychain] :computer: CPU: 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz    
      2024-04-03 12:03:59 [Relaychain] :computer: CPU cores: 4    
      2024-04-03 12:03:59 [Relaychain] :computer: Memory: 31797MB    
      2024-04-03 12:03:59 [Relaychain] :computer: Kernel: 5.15.0-101-generic    
      2024-04-03 12:03:59 [Relaychain] :computer: Linux distribution: Ubuntu 20.04.6 LTS    
      2024-04-03 12:03:59 [Relaychain] :computer: Virtual machine: no    
      2024-04-03 12:03:59 [Relaychain] :package: Highest known block at #0    
      2024-04-03 12:03:59 [Relaychain] :part_alternation_mark:️ 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] :checkered_flag: CPU score: 1.40 GiBs    
      2024-04-03 12:03:59 [Relaychain] :checkered_flag: Memory score: 15.42 GiBs    
      2024-04-03 12:03:59 [Relaychain] :checkered_flag: Disk score (seq. writes): 1.39 GiBs    
      2024-04-03 12:03:59 [Relaychain] :checkered_flag: 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] :label:  Local node identity is: 12D3KooWAAvNqXn8WPmvnEj36j7HsdbtpRpmWDPT9xtp4CuphvxW    
      2024-04-03 12:03:59 [Parachain] :computer: Operating system: linux    
      2024-04-03 12:03:59 [Parachain] :computer: CPU architecture: x86_64    
      2024-04-03 12:03:59 [Parachain] :computer: Target environment: gnu    
      2024-04-03 12:03:59 [Parachain] :computer: CPU: 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz    
      2024-04-03 12:03:59 [Parachain] :computer: CPU cores: 4    
      2024-04-03 12:03:59 [Parachain] :computer: Memory: 31797MB    
      2024-04-03 12:03:59 [Parachain] :computer: Kernel: 5.15.0-101-generic    
      2024-04-03 12:03:59 [Parachain] :computer: Linux distribution: Ubuntu 20.04.6 LTS    
      2024-04-03 12:03:59 [Parachain] :computer: Virtual machine: no    
      2024-04-03 12:03:59 [Parachain] :package: Highest known block at #0    
      2024-04-03 12:03:59 [Parachain] :part_alternation_mark:️ 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] :checkered_flag: CPU score: 1.40 GiBs    
      2024-04-03 12:03:59 [Parachain] :checkered_flag: Memory score: 15.42 GiBs    
      2024-04-03 12:03:59 [Parachain] :checkered_flag: Disk score (seq. writes): 1.39 GiBs    
      2024-04-03 12:03:59 [Parachain] :checkered_flag: 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] :mag: 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] :gear:️  Syncing, target=#22575321 (7 peers), best: #738 (0x1803…bbef), finalized #512 (0xb9b6…7014), :arrow_down: 328.5kiB/s :arrow_up: 102.9kiB/s    
      2024-04-03 12:04:04 [Parachain] :zzz: Idle (0 peers), best: #0 (0x638c…d050), finalized #0 (0x638c…d050), :arrow_down: 0 :arrow_up: 0    
      2024-04-03 12:04:09 [Relaychain] :gear:️  Syncing 169.5 bps, target=#22575322 (8 peers), best: #1586 (0x405b…a8aa), finalized #1536 (0x55d1…fb04), :arrow_down: 232.3kiB/s :arrow_up: 55.9kiB/s    
      2024-04-03 12:04:09 [Parachain] :zzz: Idle (0 peers), best: #0 (0x638c…d050), finalized #0 (0x638c…d050), :arrow_down: 0 :arrow_up: 0    
      2024-04-03 12:04:14 [Relaychain] :gear:️  Syncing 168.0 bps, target=#22575323 (8 peers), best: #2426 (0x155f…d083), finalized #2048 (0xede6…f879), :arrow_down: 235.8kiB/s :arrow_up: 67.2kiB/s    
      2024-04-03 12:04:14 [Parachain] :zzz: Idle (0 peers), best: #0 (0x638c…d050), finalized #0 (0x638c…d050), :arrow_down: 0 :arrow_up: 0    
      2024-04-03 12:04:19 [Relaychain] :gear:️  Syncing 170.0 bps, target=#22575324 (8 peers), best: #3276 (0x94d8…097e), finalized #3072 (0x0e4c…f587), :arrow_down: 129.0kiB/s :arrow_up: 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] :hammer: Initializing Genesis block/state (state: 0x023a…2733, header-hash: 0x07b8…2645)    
      ...
      2024-04-04 10:26:30 [Parachain] :zzz: Idle (0 peers), best: #0 (0x07b8…2645), finalized #0 (0x07b8…2645), :arrow_down: 0 :arrow_up: 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] :hammer: 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 :v:️  version 4.0.0-39274bb7    
      2024-04-04 10:26:18 :heart:️  by Parity Technologies <admin@parity.io>, 2017-2024    
      2024-04-04 10:26:18 :clipboard: Chain specification: Kusama People    
      2024-04-04 10:26:18 :label:  Node name: knotty-flight-5398    
      2024-04-04 10:26:18 :bust_in_silhouette: Role: FULL    
      2024-04-04 10:26:18 :floppy_disk: 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] :hammer: Initializing Genesis block/state (state: 0x023a…2733, header-hash: 0x07b8…2645)    
      2024-04-04 10:26:25 [Relaychain] :hammer: Initializing Genesis block/state (state: 0xb000…ef6b, header-hash: 0xb0a8…dafe)    
      2024-04-04 10:26:25 [Relaychain] :older_man: Loading GRANDPA authority set from genesis on what appears to be first startup.    
      2024-04-04 10:26:25 [Relaychain] :baby: Creating empty BABE epoch changes on what appears to be first startup.    
      2024-04-04 10:26:25 [Relaychain] :label:  Local node identity is: 12D3KooWPoTVhnrFNzVYJPR42HE9rYjXhkKHFDL9ut5nafDqJHKB    
      2024-04-04 10:26:25 [Relaychain] :computer: Operating system: linux    
      2024-04-04 10:26:25 [Relaychain] :computer: CPU architecture: x86_64    
      2024-04-04 10:26:25 [Relaychain] :computer: Target environment: gnu    
      2024-04-04 10:26:25 [Relaychain] :computer: CPU: 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz    
      2024-04-04 10:26:25 [Relaychain] :computer: CPU cores: 4    
      2024-04-04 10:26:25 [Relaychain] :computer: Memory: 31797MB    
      2024-04-04 10:26:25 [Relaychain] :computer: Kernel: 5.15.0-101-generic    
      2024-04-04 10:26:25 [Relaychain] :computer: Linux distribution: Ubuntu 20.04.6 LTS    
      2024-04-04 10:26:25 [Relaychain] :computer: Virtual machine: no    
      2024-04-04 10:26:25 [Relaychain] :package: Highest known block at #0    
      2024-04-04 10:26:25 [Relaychain] :part_alternation_mark:️ 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] :checkered_flag: CPU score: 1.18 GiBs    
      2024-04-04 10:26:25 [Relaychain] :checkered_flag: Memory score: 15.61 GiBs    
      2024-04-04 10:26:25 [Relaychain] :checkered_flag: Disk score (seq. writes): 1.49 GiBs    
      2024-04-04 10:26:25 [Relaychain] :checkered_flag: 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] :label:  Local node identity is: 12D3KooWS2WPQgtiZZYT6bLGjwGcJU7QVd5EeQvb4jHN3NVSWDdj    
      2024-04-04 10:26:25 [Parachain] :computer: Operating system: linux    
      2024-04-04 10:26:25 [Parachain] :computer: CPU architecture: x86_64    
      2024-04-04 10:26:25 [Parachain] :computer: Target environment: gnu    
      2024-04-04 10:26:25 [Parachain] :computer: CPU: 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz    
      2024-04-04 10:26:25 [Parachain] :computer: CPU cores: 4    
      2024-04-04 10:26:25 [Parachain] :computer: Memory: 31797MB    
      2024-04-04 10:26:25 [Parachain] :computer: Kernel: 5.15.0-101-generic    
      2024-04-04 10:26:25 [Parachain] :computer: Linux distribution: Ubuntu 20.04.6 LTS    
      2024-04-04 10:26:25 [Parachain] :computer: Virtual machine: no    
      2024-04-04 10:26:25 [Parachain] :package: Highest known block at #0    
      2024-04-04 10:26:25 [Parachain] :part_alternation_mark:️ 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] :checkered_flag: CPU score: 1.18 GiBs    
      2024-04-04 10:26:25 [Parachain] :checkered_flag: Memory score: 15.61 GiBs    
      2024-04-04 10:26:25 [Parachain] :checkered_flag: Disk score (seq. writes): 1.49 GiBs    
      2024-04-04 10:26:25 [Parachain] :checkered_flag: 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] :mag: 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] :gear:️  Syncing, target=#22588722 (8 peers), best: #638 (0xa9cd…7c30), finalized #512 (0xb9b6…7014), :arrow_down: 345.6kiB/s :arrow_up: 108.7kiB/s    
      2024-04-04 10:26:30 [Parachain] :zzz: Idle (0 peers), best: #0 (0x07b8…2645), finalized #0 (0x07b8…2645), :arrow_down: 0 :arrow_up: 0    
      2024-04-04 10:26:35 [Relaychain] :gear:️  Syncing 174.4 bps, target=#22588722 (9 peers), best: #1510 (0xec0b…72f0), finalized #1024 (0x3f17…fd7f), :arrow_down: 203.1kiB/s :arrow_up: 45.0kiB/s    
      2024-04-04 10:26:35 [Parachain] :zzz: Idle (0 peers), best: #0 (0x07b8…2645), finalized #0 (0x07b8…2645), :arrow_down: 0 :arrow_up: 0    
      2024-04-04 10:26:40 [Relaychain] :gear:️  Syncing 168.9 bps, target=#22588723 (9 peers), best: #2355 (0xa68b…3a64), finalized #2048 (0xede6…f879), :arrow_down: 201.6kiB/s :arrow_up: 47.4kiB/s    
      2024-04-04 10:26:40 [Parachain] :zzz: Idle (0 peers), best: #0 (0x07b8…2645), finalized #0 (0x07b8…2645), :arrow_down: 0 :arrow_up:
      
       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 <donal.murray@parity.io>
  4. Mar 26, 2024
    • Dcompoze's avatar
      Fix spelling mistakes across the whole repository (#3808) · 002d9260
      Dcompoze authored
      **Update:** Pushed additional changes based on the review comments.
      
      **This pull request fixes various spelling mistakes in this
      repository.**
      
      Most of the changes are contained in the first **3** commits:
      
      - `Fix spelling mistakes in comments and docs`
      
      - `Fix spelling mistakes in test names`
      
      - `Fix spelling mistakes in error messages, panic messages, logs and
      tracing`
      
      Other source code spelling mistakes are separated into individual
      commits for easier reviewing:
      
      - `Fix the spelling of 'authority'`
      
      - `Fix the spelling of 'REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY'`
      
      - `Fix the spelling of 'prev_enqueud_messages'`
      
      - `Fix the spelling of 'endpoint'`
      
      - `Fix the spelling of 'children'`
      
      - `Fix the spelling of 'PenpalSiblingSovereignAccount'`
      
      - `Fix the spelling of 'PenpalSudoAccount'`
      
      - `Fix the spelling of 'insufficient'`
      
      - `Fix the spelling of 'PalletXcmExtrinsicsBenchmark'`
      
      - `Fix the spelling of 'subtracted'`
      
      - `Fix the spelling of 'CandidatePendingAvailability'`
      
      - `Fix the spelling of 'exclusive'`
      
      - `Fix the spelling of 'until'`
      
      - `Fix the spelling of 'discriminator'`
      
      - `Fix the spelling of 'nonexistent'`
      
      - `Fix the spelling of 'subsystem'`
      
      - `Fix the spelling of 'indices'`
      
      - `Fix the spelling of 'committed'`
      
      - `Fix the spelling of 'topology'`
      
      - `Fix the spelling of 'response'`
      
      - `Fix the spelling of 'beneficiary'`
      
      - `Fix the spelling of 'formatted'`
      
      - `Fix the spelling of 'UNKNOWN_PROOF_REQUEST'`
      
      - `Fix the spelling of 'succeeded'`
      
      - `Fix the spelling of 'reopened'`
      
      - `Fix the spelling of 'proposer'`
      
      - `Fix the spelling of 'InstantiationNonce'`
      
      - `Fix the spelling of 'depositor'`
      
      - `Fix the spelling of 'expiration'`
      
      - `Fix the spelling of 'phantom'`
      
      - `Fix the spelling of 'AggregatedKeyValue'`
      
      - `Fix the spelling of 'randomness'`
      
      - `Fix the spelling of 'defendant'`
      
      - `Fix the spelling of 'AquaticMammal'`
      
      - `Fix the spelling of 'transactions'`
      
      - `Fix the spelling of 'PassingTracingSubscriber'`
      
      - `Fix the spelling of 'TxSignaturePayload'`
      
      - `Fix the spelling of 'versioning'`
      
      - `Fix the spelling of 'descendant'`
      
      - `Fix the spelling of 'overridden'`
      
      - `Fix the spelling of 'network'`
      
      Let me know if this structure is adequate.
      
      **Note:** The usage of the words `Merkle`, `Merkelize`, `Merklization`,
      `Merkelization`, `Merkleization`, is somewhat inconsistent but I left it
      as it is.
      
      ~~**Note:** In some places the term `Receival` is used to refer to
      message reception, IMO `Reception` is the correct word here, but I left
      it as it is.~~
      
      ~~**Note:** In some places the term `Overlayed` is used instead of the
      more acceptable version `Overlaid` but I also left it as it is.~~
      
      ~~**Note:** In some places the term `Applyable` is used instead of the
      correct version `Applicable` but I also left it as it is.~~
      
      **Note:** Some usage of British vs American english e.g. `judgement` vs
      `judgment`, `initialise` vs `initialize`, `optimise` vs `optimize` etc.
      are both present in different places, but I suppose that's
      understandable given the number of contributors.
      
      ~~**Note:** There is a spelling mistake in `.github/CODEOWNERS` but it
      triggers errors in CI when I make changes to it, so I left it as it
      is.~~
  5. Mar 07, 2024
  6. Feb 23, 2024
    • Sebastian Kunert's avatar
      PoV Reclaim Runtime Side (#3002) · 3386377b
      Sebastian Kunert authored
      
      # Runtime side for PoV Reclaim
      
      ## Implementation Overview
      - Hostfunction to fetch the storage proof size has been added to the
      PVF. It uses the size tracking recorder that was introduced in my
      previous PR.
      - Mechanisms to use the reclaim HostFunction have been introduced.
      - 1. A SignedExtension that checks the node-reported proof size before
      and after application of an extrinsic. Then it reclaims the difference.
      - 2. A manual helper to make reclaiming easier when manual interaction
      is required, for example in `on_idle` or other hooks.
      - In order to utilize the manual reclaiming, I modified `WeightMeter` to
      support the reduction of consumed weight, at least for storage proof
      size.
      
      ## How to use
      To enable the general functionality for a parachain:
      1. Add the SignedExtension to your parachain runtime. 
      2. Provide the HostFunction to the node
      3. Enable proof recording during block import
      
      ## TODO
      - [x] PRDoc
      
      ---------
      
      Co-authored-by: default avatarDmitry Markin <dmitry@markin.tech>
      Co-authored-by: default avatarDavide Galassi <davxy@datawok.net>
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
    • Serban Iorga's avatar
      Add support for BHP local and BHK local (#3443) · e4b6b8cd
      Serban Iorga authored
      Related to https://github.com/paritytech/polkadot-sdk/issues/3400
      
      Extracting small parts of
      https://github.com/paritytech/polkadot-sdk/pull/3429 into separate PR:
      
      - Add support for BHP local and BHK local
      - Increase the timeout for the bridge zomienet tests
  7. Feb 16, 2024
  8. Feb 08, 2024
  9. Feb 02, 2024
  10. Jan 22, 2024
  11. Jan 11, 2024
    • Sebastian Kunert's avatar
      Cumulus test service cleanup (#2887) · c93f5aba
      Sebastian Kunert authored
      closes #2567 
      
      Followup for https://github.com/paritytech/polkadot-sdk/pull/2331
      
      This PR contains multiple internal cleanups:
      
      1. This gets rid of the functionality in `generate_genesis_block` which
      was only used in one benchmark
      2. Fixed `transaction_pool` and `transaction_throughput` benchmarks
      failing since they require a tokio runtime now.
      3. Removed `parachain_id` CLI option from the test parachain
      4. Removed `expect` call from `RuntimeResolver`
  12. Dec 22, 2023
  13. Dec 21, 2023
  14. Dec 19, 2023
  15. Dec 13, 2023
    • Joshy Orndorff's avatar
      Rename `ExportGenesisStateCommand` to `ExportGenesisHeadCommand` and make it... · 8683bbee
      Joshy Orndorff authored
      Rename `ExportGenesisStateCommand` to `ExportGenesisHeadCommand` and make it respect custom genesis block builders (#2331)
      
      Closes #2326.
      
      This PR both fixes a logic bug and replaces an incorrect name.
      
      ## Bug Fix: Respecting custom genesis builder
      
      Prior to this PR the standard logic for creating a genesis block was
      repeated inside of cumulus. This PR removes that duplicated logic, and
      calls into the proper `BuildGenesisBlock` implementation.
      
      One consequence is that if the genesis block has already been
      initialized, it will not be re-created, but rather read from the
      database like it is for other node invocations. So you need to watch out
      for old unpurged data during the development process. Offchain tools may
      need to be updated accordingly. I've already filed
      https://github.com/paritytech/zombienet/issues/1519
      
      ## Rename: It doesn't export state. It exports head data.
      
      The name export-genesis-state was always wrong, nad it's never too late
      to right a wrong. I've changed the name of the struct to
      `ExportGenesisHeadCommand`.
      
      There is still the question of what to do with individual nodes' public
      CLIs. I have updated the parachain template to a reasonable default that
      preserves compatibility with tools that will expect
      `export-genesis-state` to still work. And I've chosen not to modify the
      public CLIs of any other nodes in the repo. I'll leave it up to their
      individual owners/maintains to decide whether that is appropriate.
      
      ---------
      
      Co-authored-by: default avatarJoshy Orndorff <git-user-email.h0ly5@simplelogin.com>
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      Co-authored-by: default avatarBastian Köcher <info@kchr.de>
  16. Nov 29, 2023
    • Dónal Murray's avatar
      Remove system parachains Polkadot and Kusama runtimes (#1737) · 63ac2471
      Dónal Murray authored
      Since the Polkadot and Kusama runtimes are no longer in the repo, the
      relevant systems parachains runtimes also need to be removed. More
      context [here](https://github.com/paritytech/polkadot-sdk/issues/603)
      and [here](https://github.com/paritytech/polkadot-sdk/pull/1731).
      
      Removes the following:
      - `asset-hub-kusama` and `asset-hub-polkadot`
      - `bridge-hub-kusama` and `bridge-hub-polkadot`
      - `collectives-polkadot`
      - `glutton-kusama`
      
      Partially solves #603 and adds to #1731.
  17. Nov 25, 2023
    • Michal Kucharczyk's avatar
      polkadot-parachain: one chain-spec for all (#2457) · d5d15a18
      Michal Kucharczyk authored
      This PR removes some `ChainSpec` types which are not necessary
      (left-overs from #1256). Currently `ChainSpec` does not have to be
      generic over the specific `RuntimeGenesisConfig`, it is enough to use
      single type for all:
      
      https://github.com/paritytech/polkadot-sdk/blob/9f787018/cumulus/polkadot-parachain/src/chain_spec/mod.rs#L53-L54
      
      
      related to: https://github.com/paritytech/polkadot-sdk/issues/25
      
      ---------
      
      Co-authored-by: command-bot <>
  18. Nov 24, 2023
    • Dónal Murray's avatar
      Remove `RuntimeApi` dependency on system parachain runtime code (#2455) · d07186b8
      Dónal Murray authored
      
      The last issue blocking the removal of the Polkadot and Kusama system
      parachains from the repo in #1737 is the dependency on the runtime code
      through the RuntimeApi in `polkadot-parachain`.
      
      This PR introduces two fake runtimes to satisfy the build requirements
      and changes the `new_partial` function to make it not be generic over
      the runtimes.
      The reason for the second runtime is the different Aura keys used in
      Polkadot Asset Hub, as the impl for AuraApi depends on this type.
      If this changes the `RuntimeApi` generic could be removed completely
      from all functions in `services.rs` and and generic type parameters in
      `services.rs` and specified as a concrete type to TFullClient`.
      
      ---------
      
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
  19. Nov 15, 2023
  20. Nov 05, 2023
    • Michal Kucharczyk's avatar
      `chain-spec`: getting ready for native-runtime-free world (#1256) · 8ba7a6ab
      Michal Kucharczyk authored
      
      This PR prepares chains specs for _native-runtime-free_  world.
      
      This PR has following changes:
      - `substrate`:
        - adds support for:
      - JSON based `GenesisConfig` to `ChainSpec` allowing interaction with
      runtime `GenesisBuilder` API.
      - interacting with arbitrary runtime wasm blob to[
      `chain-spec-builder`](https://github.com/paritytech/substrate/blob/3ef576eaeb3f42610e85daecc464961cf1295570/bin/utils/chain-spec-builder/src/lib.rs#L46)
      command line util,
      - removes
      [`code`](https://github.com/paritytech/substrate/blob/3ef576eaeb3f42610e85daecc464961cf1295570/frame/system/src/lib.rs#L660)
      from `system_pallet`
        - adds `code` to the `ChainSpec`
      - deprecates
      [`ChainSpec::from_genesis`](https://github.com/paritytech/substrate/blob/3ef576eaeb3f42610e85daecc464961cf1295570/client/chain-spec/src/chain_spec.rs#L263),
      but also changes the signature of this method extending it with `code`
      argument.
      [`ChainSpec::builder()`](https://github.com/paritytech/substrate/blob/20bee680ed098be7239cf7a6b804cd4de267983e/client/chain-spec/src/chain_spec.rs#L507)
      should be used instead.
      - `polkadot`:
      - all references to `RuntimeGenesisConfig` in `node/service` are
      removed,
      - all
      `(kusama|polkadot|versi|rococo|wococo)_(staging|dev)_genesis_config`
      functions now return the JSON patch for default runtime `GenesisConfig`,
        - `ChainSpecBuilder` is used, `ChainSpec::from_genesis` is removed,
      
      - `cumulus`:
        - `ChainSpecBuilder` is used, `ChainSpec::from_genesis` is removed,
      - _JSON_ patch configuration used instead of `RuntimeGenesisConfig
      struct` in all chain specs.
        
      ---------
      
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarJavier Viola <javier@parity.io>
      Co-authored-by: default avatarDavide Galassi <davxy@datawok.net>
      Co-authored-by: default avatarFrancisco Aguirre <franciscoaguirreperez@gmail.com>
      Co-authored-by: default avatarKevin Krone <kevin@parity.io>
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
  21. Nov 01, 2023
    • Branislav Kontur's avatar
      [testnet] Add `AssetHubRococo` <-> `AssetHubWestend` asset bridging support (#1967) · 1b1fab0d
      Branislav Kontur authored
      
      ## Summary
      
      Asset bridging support for AssetHub**Rococo** <-> AssetHub**Wococo** was
      added [here](https://github.com/paritytech/polkadot-sdk/pull/1215), so
      now we aim to bridge AssetHub**Rococo** and AssetHub**Westend**. (And
      perhaps retire AssetHubWococo and the Wococo chains).
      
      ## Solution
      
      **bridge-hub-westend-runtime**
      - added new runtime as a copy of `bridge-hub-rococo-runtime`
      - added support for bridging to `BridgeHubRococo`
      - added tests and benchmarks
      
      **bridge-hub-rococo-runtime**
      - added support for bridging to `BridgeHubWestend`
      - added tests and benchmarks
      - internal refactoring by splitting bridge configuration per network,
      e.g., `bridge_to_whatevernetwork_config.rs`.
      
      **asset-hub-rococo-runtime**
      - added support for asset bridging to `AssetHubWestend` (allows to
      receive only WNDs)
      - added new xcm router for `Westend`
      - added tests and benchmarks
      
      **asset-hub-westend-runtime**
      - added support for asset bridging to `AssetHubRococo` (allows to
      receive only ROCs)
      - added new xcm router for `Rococo`
      - added tests and benchmarks
      
      ## Deployment
      
      All changes will be deployed as a part of
      https://github.com/paritytech/polkadot-sdk/issues/1988.
      
      ## TODO
      
      - [x] benchmarks for all pallet instances
      - [x] integration tests
      - [x] local run scripts
      
      
      Relates to:
      https://github.com/paritytech/parity-bridges-common/issues/2602
      Relates to: https://github.com/paritytech/polkadot-sdk/issues/1988
      
      ---------
      
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarAdrian Catangiu <adrian@parity.io>
      Co-authored-by: default avatarjoe petrowski <25483142+joepetrowski@users.noreply.github.com>
  22. Oct 20, 2023
    • Branislav Kontur's avatar
      [testnet] AssetHubRococo nits (#1954) · 76994356
      Branislav Kontur authored
      This PR addresses several minor issues:
      - Fixes the symlink for `asset-hub-rococo.json` chainspec.
      - Corrects the `asset-hub-rococo-genesis` invulnerables setup.
      - Relocates common bash functions for bridge testing to a separate file
      `bridges_common.sh`.
  23. Oct 18, 2023
  24. Oct 09, 2023
  25. Oct 04, 2023
    • Bradley Olson's avatar
      Updating glutton for async backing (#1619) · 0a6dfdf9
      Bradley Olson authored
      Applied changes from the [User Update
      Guide](https://docs.google.com/document/d/1WQijD3bZTCsudOyPcDvugv659nCa2hEp2b_8eRU0h-Q),
      diverging in the node side where service.rs is different for
      `polkadot-parachain` than in the parachain template.
  26. Sep 29, 2023
  27. Sep 17, 2023
    • José Molina Colmenero's avatar
      fix: export-genesis-state command (#1521) · 2ca30ed1
      José Molina Colmenero authored
      # Description
      
      Currently the `ExportGenesisState` command in polkadot parachain uses an
      asynchronous context to run, which seems to display some warnings. See
      the screenshot below:
      
      ![Screenshot 2023-09-12 at 17 12
      15](https://github.com/paritytech/polkadot-sdk/assets/2722756/0140b48a-2edb-41fa-b046-579d526f8305)
      
      After the changes in this PR, which essentially runs the command in a
      synchronous context, the command works properly without any warning.
      
      ![Screenshot 2023-09-12 at 18 23
      46](https://github.com/paritytech/polkadot-sdk/assets/2722756/31506917-ece2-4a5f-8909-f215cc1ac0de)
      
      The remaining runtimes were added to `construct_benchmark_partials`
      macro in order not to fail if the runtime was not included in the
      non-exhaustive initial list, similarly to the `construct_async_run` one.
      
      For completeness: tests were made following this
      [tutorial](https://docs.substrate.io/tutorials/build-a-parachain/connect-a-local-parachain/).
  28. Aug 30, 2023
  29. Aug 23, 2023
  30. Aug 22, 2023
  31. Aug 15, 2023
  32. Aug 11, 2023
  33. Jul 19, 2023
  34. Jul 05, 2023
    • Bastian Köcher's avatar
      Companion for Substrate#14511 (#2821) · fdd2e522
      Bastian Köcher authored
      * Companion for Substrate#14511
      
      https://github.com/paritytech/substrate/pull/14511
      
      * update lockfile for {"substrate", "polkadot"}
      
      ---------
      
      Co-authored-by: parity-processbot <>
      fdd2e522
  35. Jun 30, 2023
    • Bastian Köcher's avatar
      Companion for Substrate#14474 (#2792) · 346bd129
      Bastian Köcher authored
      * Companion for Substrate#14474
      
      This removes the requirement to pass the native executor dispatch.
      
      * Fix fix
      
      * Fix
      
      * update lockfile for {"polkadot", "substrate"}
      
      * Fix fix fix
      
      * Fix
      
      ---------
      
      Co-authored-by: parity-processbot <>
      346bd129
  36. Jun 16, 2023