diff --git a/.github/workflows/release-50_publish-docker.yml b/.github/workflows/release-50_publish-docker.yml index 4679f58578f79..3daddf11318b8 100644 --- a/.github/workflows/release-50_publish-docker.yml +++ b/.github/workflows/release-50_publish-docker.yml @@ -74,7 +74,7 @@ env: VERSION: ${{ inputs.version }} jobs: - fetch-artifacts: # this job will be triggered for the polkadot-parachain rc and release or polkadot rc image build + fetch-artifacts: # this job will be triggered for the polkadot-parachain-omni-node rc and release or polkadot rc image build if: ${{ inputs.binary == 'polkadot-parachain' || inputs.binary == 'chain-spec-builder' || inputs.image_type == 'rc' }} runs-on: ubuntu-latest @@ -82,7 +82,7 @@ jobs: - name: Checkout sources uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - #TODO: this step will be needed when automated triggering will work + #TODO: this step will be needed when automated triggering will work #this step runs only if the workflow is triggered automatically when new release is published # if: ${{ env.EVENT_NAME == 'release' && env.EVENT_ACTION != '' && env.EVENT_ACTION == 'published' }} # run: | @@ -121,7 +121,7 @@ jobs: name: release-artifacts path: release-artifacts/${{ env.BINARY }}/**/* - build-container: # this job will be triggered for the polkadot-parachain rc and release or polkadot rc image build + build-container: # this job will be triggered for the polkadot-parachain-omni-node rc and release or polkadot rc image build if: ${{ inputs.binary == 'polkadot-parachain' || inputs.binary == 'chain-spec-builder' || inputs.image_type == 'rc' }} runs-on: ubuntu-latest needs: fetch-artifacts @@ -268,10 +268,10 @@ jobs: - name: Cache Docker layers uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3.3.3 with: - path: /tmp/.buildx-cache - key: ${{ runner.os }}-buildx-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-buildx- + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx- - name: Login to Docker Hub uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0 @@ -286,7 +286,7 @@ jobs: echo "date=$date" >> $GITHUB_OUTPUT - name: Build and push - id: docker_build + id: docker_build uses: docker/build-push-action@4a13e500e55cf31b7a5d59a38ab2040ab0f42f56 # v5.1.0 with: push: true diff --git a/.gitlab/pipeline/build.yml b/.gitlab/pipeline/build.yml index 8658e92efc8f9..00d6f443bbcb6 100644 --- a/.gitlab/pipeline/build.yml +++ b/.gitlab/pipeline/build.yml @@ -171,10 +171,10 @@ build-linux-stable-cumulus: RUSTFLAGS: "-Cdebug-assertions=y -Dwarnings" script: - echo "___Building a binary, please refrain from using it in production since it goes with the debug assertions.___" - - time cargo build --release --locked -p polkadot-parachain-bin --bin polkadot-parachain + - time cargo build --release --locked -p polkadot-parachain-omni-node --bin polkadot-parachain-omni-node - echo "___Packing the artifacts___" - mkdir -p ./artifacts - - mv ./target/release/polkadot-parachain ./artifacts/. + - mv ./target/release/polkadot-parachain-omni-node ./artifacts/. - echo "___The VERSION is either a tag name or the curent branch if triggered not by a tag___" - echo ${CI_COMMIT_REF_NAME} | tee ./artifacts/VERSION @@ -288,10 +288,10 @@ build-short-benchmark-cumulus: - .run-immediately - .collect-artifacts script: - - cargo build --profile release --locked --features=runtime-benchmarks,on-chain-release-build -p polkadot-parachain-bin --bin polkadot-parachain --workspace + - cargo build --profile release --locked --features=runtime-benchmarks,on-chain-release-build -p polkadot-parachain-omni-node --bin polkadot-parachain-omni-node --workspace - mkdir -p artifacts - - target/release/polkadot-parachain --version - - cp ./target/release/polkadot-parachain ./artifacts/ + - target/release/polkadot-parachain-omni-node --version + - cp ./target/release/polkadot-parachain-omni-node ./artifacts/ # substrate @@ -313,7 +313,7 @@ build-linux-substrate: # tldr: we need to checkout the branch HEAD explicitly because of our dynamic versioning approach while building the substrate binary # see https://github.com/paritytech/ci_cd/issues/682#issuecomment-1340953589 - git checkout -B "$CI_COMMIT_REF_NAME" "$CI_COMMIT_SHA" - - !reference [.forklift-cache, before_script] + - !reference [ .forklift-cache, before_script ] script: - time WASM_BUILD_NO_COLOR=1 cargo build --locked --release -p staging-node-cli - mv $CARGO_TARGET_DIR/release/substrate-node ./artifacts/substrate/substrate @@ -353,7 +353,7 @@ build-runtimes-polkavm: CARGO_TARGET_DIR: "$CI_PROJECT_DIR/target" before_script: - mkdir -p ./artifacts/subkey - - !reference [.forklift-cache, before_script] + - !reference [ .forklift-cache, before_script ] script: - cd ./substrate/bin/utils/subkey - time SKIP_WASM_BUILD=1 cargo build --locked --release diff --git a/.gitlab/pipeline/short-benchmarks.yml b/.gitlab/pipeline/short-benchmarks.yml index bc6dd04264c8e..2b1ba1e796952 100644 --- a/.gitlab/pipeline/short-benchmarks.yml +++ b/.gitlab/pipeline/short-benchmarks.yml @@ -47,7 +47,7 @@ short-benchmark-westend: &short-bench tags: - benchmark script: - - ./artifacts/polkadot-parachain benchmark pallet --chain $RUNTIME_CHAIN --pallet "*" --extrinsic "*" --steps 2 --repeat 1 + - ./artifacts/polkadot-parachain-omni-node benchmark pallet --chain $RUNTIME_CHAIN --pallet "*" --extrinsic "*" --steps 2 --repeat 1 short-benchmark-asset-hub-rococo: <<: *short-bench-cumulus diff --git a/.gitlab/pipeline/zombienet/polkadot.yml b/.gitlab/pipeline/zombienet/polkadot.yml index b158cbe0b5aa3..1678821c3774d 100644 --- a/.gitlab/pipeline/zombienet/polkadot.yml +++ b/.gitlab/pipeline/zombienet/polkadot.yml @@ -236,7 +236,7 @@ zombienet-polkadot-smoke-0002-parachains-parachains-upgrade-smoke: - echo "gh-dir ${GH_DIR}" - echo "local-dir ${LOCAL_DIR}" - echo "polkadot image ${ZOMBIENET_INTEGRATION_TEST_IMAGE}" - - echo "polkadot-parachain image ${CUMULUS_IMAGE}" + - echo "polkadot-parachain-omni-node image ${CUMULUS_IMAGE}" - echo "malus image ${MALUS_IMAGE}" script: - /home/nonroot/zombie-net/scripts/ci/run-test-local-env-manager.sh diff --git a/Cargo.lock b/Cargo.lock index 551140077f252..7a51af0a02c09 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13615,7 +13615,7 @@ dependencies = [ [[package]] name = "polkadot-parachain-omni-node" -version = "4.0.0" +version = "0.1.0" dependencies = [ "assert_cmd", "asset-hub-rococo-runtime", diff --git a/bridges/snowbridge/pallets/ethereum-client/benchmark.md b/bridges/snowbridge/pallets/ethereum-client/benchmark.md index 2e19fece7cbd7..9e024264ecd91 100644 --- a/bridges/snowbridge/pallets/ethereum-client/benchmark.md +++ b/bridges/snowbridge/pallets/ethereum-client/benchmark.md @@ -1,4 +1,5 @@ # Motivation + Demonstrate that [FastAggregateVerify](https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-bls-signature-04#section-3.3.4) is the most expensive call in ethereum beacon light client, though in [#13031](https://github.com/paritytech/substrate/pull/13031) @@ -6,6 +7,7 @@ Parity team has wrapped some low level host functions for `bls-12381` but adding for it is super helpful. # Benchmark + We add several benchmarks [here](https://github.com/Snowfork/snowbridge/blob/8891ca3cdcf2e04d8118c206588c956541ae4710/parachain/pallets/ethereum-client/src/benchmarking/mod.rs#L98-L124) as following to demonstrate @@ -15,25 +17,31 @@ is the main bottleneck. Test data is real from goerli network which contains 512 public keys from sync committee. ## sync_committee_period_update -Base line benchmark for extrinsic [sync_committee_period_update](https://github.com/Snowfork/snowbridge/blob/8891ca3cdcf2e04d8118c206588c956541ae4710/parachain/pallets/ethereum-client/src/lib.rs#L233) + +Base line benchmark for +extrinsic [sync_committee_period_update](https://github.com/Snowfork/snowbridge/blob/8891ca3cdcf2e04d8118c206588c956541ae4710/parachain/pallets/ethereum-client/src/lib.rs#L233) ## bls_fast_aggregate_verify + Subfunction of extrinsic `sync_committee_period_update` which does what [FastAggregateVerify](https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-bls-signature-04#section-3.3.4) requires. ## bls_aggregate_pubkey + Subfunction of `bls_fast_aggregate_verify` which decompress and instantiate G1 pubkeys only. ## bls_verify_message -Subfunction of `bls_fast_aggregate_verify` which verify the prepared signature only. +Subfunction of `bls_fast_aggregate_verify` which verify the prepared signature only. # Result ## hardware spec + Run benchmark in a EC2 instance + ``` -cargo run --release --bin polkadot-parachain --features runtime-benchmarks -- benchmark machine --base-path /mnt/scratch/benchmark +cargo run --release --bin polkadot-parachain-omni-node --features runtime-benchmarks -- benchmark machine --base-path /mnt/scratch/benchmark +----------+----------------+-------------+-------------+-------------------+ | Category | Function | Score | Minimum | Result | @@ -53,7 +61,7 @@ cargo run --release --bin polkadot-parachain --features runtime-benchmarks -- be ## benchmark ``` -cargo run --release --bin polkadot-parachain \ +cargo run --release --bin polkadot-parachain-omni-node \ --features runtime-benchmarks \ -- \ benchmark pallet \ @@ -68,18 +76,21 @@ benchmark pallet \ ### [Weights](https://github.com/Snowfork/cumulus/blob/ron/benchmark-beacon-bridge/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/snowbridge_pallet_ethereum_client.rs) -|extrinsic | minimum execution time benchmarked(us) | -| --------------------------------------- |----------------------------------------| -|sync_committee_period_update | 123_126 | -|bls_fast_aggregate_verify| 121_083 | -|bls_aggregate_pubkey | 90_306 | -|bls_verify_message | 28_000 | +| extrinsic | minimum execution time benchmarked(us) | +|------------------------------|----------------------------------------| +| sync_committee_period_update | 123_126 | +| bls_fast_aggregate_verify | 121_083 | +| bls_aggregate_pubkey | 90_306 | +| bls_verify_message | 28_000 | -- [bls_fast_aggregate_verify](#bls_fast_aggregate_verify) consumes 98% execution time of [sync_committee_period_update](#sync_committee_period_update) +- [bls_fast_aggregate_verify](#bls_fast_aggregate_verify) consumes 98% execution time + of [sync_committee_period_update](#sync_committee_period_update) -- [bls_aggregate_pubkey](#bls_aggregate_pubkey) consumes 75% execution time of [bls_fast_aggregate_verify](#bls_fast_aggregate_verify) +- [bls_aggregate_pubkey](#bls_aggregate_pubkey) consumes 75% execution time + of [bls_fast_aggregate_verify](#bls_fast_aggregate_verify) -- [bls_verify_message](#bls_verify_message) consumes 23% execution time of [bls_fast_aggregate_verify](#bls_fast_aggregate_verify) +- [bls_verify_message](#bls_verify_message) consumes 23% execution time + of [bls_fast_aggregate_verify](#bls_fast_aggregate_verify) # Conclusion diff --git a/bridges/snowbridge/scripts/benchmark.sh b/bridges/snowbridge/scripts/benchmark.sh index c9a561b33c48d..108ba53567a22 100755 --- a/bridges/snowbridge/scripts/benchmark.sh +++ b/bridges/snowbridge/scripts/benchmark.sh @@ -2,7 +2,7 @@ # Example command for updating pallet benchmarking pushd ../cumulus -cargo run --release --bin polkadot-parachain \ +cargo run --release --bin polkadot-parachain-omni-node \ --features runtime-benchmarks \ -- \ benchmark pallet \ diff --git a/bridges/testing/README.md b/bridges/testing/README.md index bd467a410d013..2e441a763ec29 100644 --- a/bridges/testing/README.md +++ b/bridges/testing/README.md @@ -9,22 +9,22 @@ To start those tests, you need to: - download latest [zombienet release](https://github.com/paritytech/zombienet/releases); -- build Polkadot binary by running `cargo build -p polkadot --release --features fast-runtime` command in the -[`polkadot-sdk`](https://github.com/paritytech/polkadot-sdk) repository clone; +- build Polkadot binary by running `cargo build -p polkadot --release --features fast-runtime` command in the + [`polkadot-sdk`](https://github.com/paritytech/polkadot-sdk) repository clone; -- build Polkadot Parachain binary by running `cargo build -p polkadot-parachain-bin --release` command in the -[`polkadot-sdk`](https://github.com/paritytech/polkadot-sdk) repository clone; +- build Polkadot Parachain binary by running `cargo build -p polkadot-parachain-omni-node --release` command in the + [`polkadot-sdk`](https://github.com/paritytech/polkadot-sdk) repository clone; - ensure that you have [`node`](https://nodejs.org/en) installed. Additionally, we'll need globally installed -`polkadot/api-cli` package (use `npm install -g @polkadot/api-cli@beta` to install it); + `polkadot/api-cli` package (use `npm install -g @polkadot/api-cli@beta` to install it); - build Substrate relay by running `cargo build -p substrate-relay --release` command in the -[`parity-bridges-common`](https://github.com/paritytech/parity-bridges-common) repository clone. + [`parity-bridges-common`](https://github.com/paritytech/parity-bridges-common) repository clone. - copy fresh `substrate-relay` binary, built in previous point, to the `~/local_bridge_testing/bin/substrate-relay`; - change the `POLKADOT_SDK_PATH` and `ZOMBIENET_BINARY_PATH` (and ensure that the nearby variables -have correct values) in the `./run-tests.sh`. + have correct values) in the `./run-tests.sh`. After that, you could run tests with the `./run-tests.sh` command. Hopefully, it'll show the "All tests have completed successfully" message in the end. Otherwise, it'll print paths to zombienet diff --git a/bridges/testing/run-new-test.sh b/bridges/testing/run-new-test.sh index 7c84a69aa47de..8f255bc9ecd4c 100755 --- a/bridges/testing/run-new-test.sh +++ b/bridges/testing/run-new-test.sh @@ -30,13 +30,13 @@ if [ "$ZOMBIENET_DOCKER_PATHS" -eq 1 ]; then unset ZOMBIENET_IMAGE export POLKADOT_BINARY=/usr/local/bin/polkadot - export POLKADOT_PARACHAIN_BINARY=/usr/local/bin/polkadot-parachain + export POLKADOT_PARACHAIN_BINARY=/usr/local/bin/polkadot-parachain-omni-node export ZOMBIENET_BINARY=/usr/local/bin/zombie export SUBSTRATE_RELAY_BINARY=/usr/local/bin/substrate-relay else export POLKADOT_BINARY=$POLKADOT_SDK_PATH/target/release/polkadot - export POLKADOT_PARACHAIN_BINARY=$POLKADOT_SDK_PATH/target/release/polkadot-parachain + export POLKADOT_PARACHAIN_BINARY=$POLKADOT_SDK_PATH/target/release/polkadot-parachain-omni-node export ZOMBIENET_BINARY=~/local_bridge_testing/bin/zombienet-linux-x64 export SUBSTRATE_RELAY_BINARY=~/local_bridge_testing/bin/substrate-relay diff --git a/cumulus/README.md b/cumulus/README.md index 7e145ad7b4aba..c37e1e812fbed 100644 --- a/cumulus/README.md +++ b/cumulus/README.md @@ -4,7 +4,8 @@ This repository contains both the Cumulus SDK and also specific chains implemented on top of this SDK. -If you only want to run a **Polkadot Parachain Node**, check out our [container section](./docs/contributor/container.md). +If you only want to run a **Polkadot Parachain Node**, check out +our [container section](./docs/contributor/container.md). ## Cumulus SDK @@ -37,13 +38,16 @@ You may run `polkadot-parachain` locally after building it or using one of the c [here](./docs/contributor/container.md). ### Relay Chain Interaction + To operate a parachain node, a connection to the corresponding relay chain is necessary. This can be achieved in one of three ways: + 1. Run a full relay chain node within the parachain node (default) 2. Connect to an external relay chain node via WebSocket RPC 3. Run a light client for the relay chain #### In-process Relay Chain Node + If an external relay chain node is not specified (default behavior), then a full relay chain node is spawned within the same process. @@ -51,8 +55,9 @@ This node has all of the typical components of a regular Polkadot node and will to work. ##### Example command + ```bash -polkadot-parachain \ +polkadot-parachain-omni-node \ --chain parachain-chainspec.json \ --tmp \ -- \ @@ -60,6 +65,7 @@ polkadot-parachain \ ``` #### External Relay Chain Node + An external relay chain node is connected via WebsSocket RPC by using the `--relay-chain-rpc-urls` command line argument. This option accepts one or more space-separated WebSocket URLs to a full relay chain node. By default, only the first URL will be used, with the rest as a backup in case the connection to the first node is lost. @@ -74,7 +80,7 @@ directly to the relay chain network. ##### Example command ```bash -polkadot-parachain \ +polkadot-parachain-omni-node \ --chain parachain-chainspec.json \ --tmp \ --relay-chain-rpc-urls \ @@ -85,6 +91,7 @@ polkadot-parachain \ ``` #### Relay Chain Light Client + An internal relay chain light client provides a fast and lightweight approach for connecting to the relay chain network. It provides relay chain notifications and facilitates runtime calls. @@ -95,10 +102,10 @@ relay chain arguments. node in-process. Even though they lack the majority of normal Polkadot subsystems, they will still need to connect directly to the relay chain network. - ##### Example command + ```bash -polkadot-parachain \ +polkadot-parachain-omni-node \ --chain parachain-chainspec.json \ --tmp \ --relay-chain-light-client \ @@ -107,6 +114,7 @@ polkadot-parachain \ ``` ## Installation and Setup + Before building Cumulus SDK based nodes / runtimes prepare your environment by following Substrate [installation instructions](https://docs.substrate.io/main-docs/install/). @@ -114,19 +122,24 @@ To launch a local network, you can use [zombienet](https://github.com/paritytech experimentation or follow the [manual setup](#manual-setup). ### Zombienet + We use Zombienet to spin up networks for integration tests and local networks. Follow [these installation steps](https://github.com/paritytech/zombienet#requirements-by-provider) to set it up on your machine. A simple network specification with two relay chain nodes and one collator is located at [zombienet/examples/small_network.toml](zombienet/examples/small_network.toml). #### Which provider should I use? + Zombienet offers multiple providers to run networks. Choose the one that best fits your needs: + - **Podman:** Choose this if you want to spin up a network quick and easy. - **Native:** Choose this if you want to develop and deploy your changes. Requires compilation of the binaries. - **Kubernetes:** Choose this for advanced use-cases or running on cloud-infrastructure. #### How to run + To run the example network, use the following commands: + ```bash # Podman provider zombienet --provider podman spawn ./zombienet/examples/small_network.toml @@ -136,6 +149,7 @@ zombienet --provider native spawn ./zombienet/examples/small_network.toml ``` ### Manual Setup + #### Launch the Relay Chain ```bash @@ -159,24 +173,24 @@ cargo build --release -p polkadot ```bash # Compile -cargo build --release -p polkadot-parachain-bin +cargo build --release -p polkadot-parachain-omni-node # Export genesis state -./target/release/polkadot-parachain export-genesis-state > genesis-state +./target/release/polkadot-parachain-omni-node export-genesis-state > genesis-state # Export genesis wasm -./target/release/polkadot-parachain export-genesis-wasm > genesis-wasm +./target/release/polkadot-parachain-omni-node export-genesis-wasm > genesis-wasm # Collator1 -./target/release/polkadot-parachain --collator --alice --force-authoring \ +./target/release/polkadot-parachain-omni-node --collator --alice --force-authoring \ --tmp --port 40335 --rpc-port 9946 -- --chain rococo-local-cfde.json --port 30335 # Collator2 -./target/release/polkadot-parachain --collator --bob --force-authoring \ +./target/release/polkadot-parachain-omni-node --collator --bob --force-authoring \ --tmp --port 40336 --rpc-port 9947 -- --chain rococo-local-cfde.json --port 30336 # Parachain Full Node 1 -./target/release/polkadot-parachain --tmp --port 40337 --rpc-port 9948 -- \ +./target/release/polkadot-parachain-omni-node --tmp --port 40337 --rpc-port 9948 -- \ --chain rococo-local-cfde.json --port 30337 ``` @@ -184,7 +198,6 @@ cargo build --release -p polkadot-parachain-bin ![image](https://user-images.githubusercontent.com/2915325/99548884-1be13580-2987-11eb-9a8b-20be658d34f9.png) - ## Asset Hub 🪙 This repository also contains the Asset Hub runtimes. Asset Hub is a system parachain providing an asset store for the @@ -202,7 +215,7 @@ Once the executable is built, launch the parachain node via: ```bash CHAIN=asset-hub-westend # or asset-hub-kusama -./target/release/polkadot-parachain --chain $CHAIN +./target/release/polkadot-parachain-omni-node --chain $CHAIN ``` Refer to the [setup instructions](#manual-setup) to run a local network for development. @@ -216,6 +229,7 @@ See [the `contracts-rococo` readme](parachains/runtimes/contracts/contracts-roco See [the `bridge-hubs` readme](parachains/runtimes/bridge-hubs/README.md) for details. ## Rococo 👑 + [Rococo](https://polkadot.js.org/apps/?rpc=wss://rococo-rpc.polkadot.io) is becoming a [Community Parachain Testbed](https://polkadot.network/blog/rococo-revamp-becoming-a-community-parachain-testbed/) for parachain teams in the Polkadot ecosystem. It supports multiple parachains with the differentiation of long-term connections and recurring @@ -231,7 +245,6 @@ the relay chain for a parachain. To run a Rococo collator you will need to compile the following binary: - ```bash cargo build --release --locked --bin polkadot-parachain ``` @@ -239,7 +252,7 @@ cargo build --release --locked --bin polkadot-parachain Once the executable is built, launch collators for each parachain (repeat once each for chain `tick`, `trick`, `track`): ```bash -./target/release/polkadot-parachain --chain $CHAIN --validator +./target/release/polkadot-parachain-omni-node --chain $CHAIN --validator ``` You can also build [using a container](./docs/contributor/container.md). diff --git a/cumulus/docker/scripts/inject_bootnodes.sh b/cumulus/docker/scripts/inject_bootnodes.sh index 5b2dbae454e9d..5f629cbe174b8 100755 --- a/cumulus/docker/scripts/inject_bootnodes.sh +++ b/cumulus/docker/scripts/inject_bootnodes.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# this script runs the polkadot-parachain after fetching +# this script runs the polkadot-parachain-omni-node after fetching # appropriate bootnode IDs # # this is _not_ a general-purpose script; it is closely tied to the diff --git a/cumulus/parachains/runtimes/bridge-hubs/README.md b/cumulus/parachains/runtimes/bridge-hubs/README.md index a9f1f98d142d7..20736e868d4d0 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/README.md +++ b/cumulus/parachains/runtimes/bridge-hubs/README.md @@ -1,27 +1,28 @@ - [Bridge-hub Parachains](#bridge-hub-parachains) - - [Requirements for local run/testing](#requirements-for-local-runtesting) - - [How to test local Rococo <-> Westend bridge](#how-to-test-local-rococo---westend-bridge) - - [Run Rococo/Westend chains with zombienet](#run-rococowestend-chains-with-zombienet) - - [Init bridge and run relayer between BridgeHubRococo and - BridgeHubWestend](#init-bridge-and-run-relayer-between-bridgehubrococo-and-bridgehubwestend) - - [Initialize configuration for transfer asset over bridge - (ROCs/WNDs)](#initialize-configuration-for-transfer-asset-over-bridge-rocswnds) - - [Send messages - transfer asset over bridge (ROCs/WNDs)](#send-messages---transfer-asset-over-bridge-rocswnds) - - [Claim relayer's rewards on BridgeHubRococo and - BridgeHubWestend](#claim-relayers-rewards-on-bridgehubrococo-and-bridgehubwestend) - - [How to test local BridgeHubKusama/BridgeHubPolkadot](#how-to-test-local-bridgehubkusamabridgehubpolkadot) + - [Requirements for local run/testing](#requirements-for-local-runtesting) + - [How to test local Rococo <-> Westend bridge](#how-to-test-local-rococo---westend-bridge) + - [Run Rococo/Westend chains with zombienet](#run-rococowestend-chains-with-zombienet) + - [Init bridge and run relayer between BridgeHubRococo and + BridgeHubWestend](#init-bridge-and-run-relayer-between-bridgehubrococo-and-bridgehubwestend) + - [Initialize configuration for transfer asset over bridge + (ROCs/WNDs)](#initialize-configuration-for-transfer-asset-over-bridge-rocswnds) + - [Send messages - transfer asset over bridge (ROCs/WNDs)](#send-messages---transfer-asset-over-bridge-rocswnds) + - [Claim relayer's rewards on BridgeHubRococo and + BridgeHubWestend](#claim-relayers-rewards-on-bridgehubrococo-and-bridgehubwestend) + - [How to test local BridgeHubKusama/BridgeHubPolkadot](#how-to-test-local-bridgehubkusamabridgehubpolkadot) # Bridge-hub Parachains _BridgeHub(s)_ are **_system parachains_** that will house trustless bridges from the local ecosystem to others. The current trustless bridges planned for the BridgeHub(s) are: + - `BridgeHubPolkadot` system parachain: - 1. Polkadot <-> Kusama bridge - 2. Polkadot <-> Ethereum bridge (Snowbridge) + 1. Polkadot <-> Kusama bridge + 2. Polkadot <-> Ethereum bridge (Snowbridge) - `BridgeHubKusama` system parachain: - 1. Kusama <-> Polkadot bridge - 2. Kusama <-> Ethereum bridge The high-level - responsibilities of each bridge living on BridgeHub: + 1. Kusama <-> Polkadot bridge + 2. Kusama <-> Ethereum bridge The high-level + responsibilities of each bridge living on BridgeHub: - sync finality proofs between relay chains (or equivalent) - sync finality proofs between BridgeHub parachains - pass (XCM) messages between different BridgeHub parachains @@ -73,12 +74,12 @@ cp target/release/substrate-relay ~/local_bridge_testing/bin/substrate-relay --- -# 4. Build cumulus polkadot-parachain binary +# 4. Build cumulus polkadot-parachain-omni-node binary cd -cargo build --release -p polkadot-parachain-bin -cp target/release/polkadot-parachain ~/local_bridge_testing/bin/polkadot-parachain -cp target/release/polkadot-parachain ~/local_bridge_testing/bin/polkadot-parachain-asset-hub +cargo build --release -p polkadot-parachain-omni-node +cp target/release/polkadot-parachain-omni-node ~/local_bridge_testing/bin/polkadot-parachain +cp target/release/polkadot-parachain-omni-node ~/local_bridge_testing/bin/polkadot-parachain-asset-hub ``` ## How to test local Rococo <-> Westend bridge @@ -90,7 +91,7 @@ cd # Rococo + BridgeHubRococo + AssetHub for Rococo (mirroring Kusama) POLKADOT_BINARY=~/local_bridge_testing/bin/polkadot \ -POLKADOT_PARACHAIN_BINARY=~/local_bridge_testing/bin/polkadot-parachain \ +POLKADOT_PARACHAIN_BINARY=~/local_bridge_testing/bin/polkadot-parachain-omni-node \ ~/local_bridge_testing/bin/zombienet-linux --provider native spawn ./bridges/testing/environments/rococo-westend/bridge_hub_rococo_local_network.toml ``` @@ -99,16 +100,18 @@ cd # Westend + BridgeHubWestend + AssetHub for Westend (mirroring Polkadot) POLKADOT_BINARY=~/local_bridge_testing/bin/polkadot \ -POLKADOT_PARACHAIN_BINARY=~/local_bridge_testing/bin/polkadot-parachain \ +POLKADOT_PARACHAIN_BINARY=~/local_bridge_testing/bin/polkadot-parachain-omni-node \ ~/local_bridge_testing/bin/zombienet-linux --provider native spawn ./bridges/testing/environments/rococo-westend/bridge_hub_westend_local_network.toml ``` ### Init bridge and run relayer between BridgeHubRococo and BridgeHubWestend **Accounts of BridgeHub parachains:** + - `Bob` is pallet owner of all bridge pallets #### Run with script + ``` cd @@ -116,12 +119,14 @@ cd ``` **Check relay-chain headers relaying:** + - Rococo parachain: - https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A8943#/chainstate - Pallet: **bridgeWestendGrandpa** - Keys: **bestFinalized()** - Westend parachain: - https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A8945#/chainstate - Pallet: **bridgeRococoGrandpa** - Keys: **bestFinalized()** **Check parachain headers relaying:** + - Rococo parachain: - https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A8943#/chainstate - Pallet: **bridgeWestendParachains** - Keys: **parasInfo(None)** - Westend parachain: - https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A8945#/chainstate - Pallet: @@ -130,8 +135,10 @@ cd ### Initialize configuration for transfer asset over bridge (ROCs/WNDs) This initialization does several things: + - creates `ForeignAssets` for wrappedROCs/wrappedWNDs - drips SA for AssetHubRococo on AssetHubWestend (and vice versa) which holds reserved assets on source chains + ``` cd @@ -144,12 +151,14 @@ cd ### Send messages - transfer asset over bridge (ROCs/WNDs) Do reserve-backed transfers: + ``` cd # ROCs from Rococo's Asset Hub to Westend's. ./bridges/testing/environments/rococo-westend/bridges_rococo_westend.sh reserve-transfer-assets-from-asset-hub-rococo-local ``` + ``` cd @@ -158,19 +167,26 @@ cd ``` - open explorers: (see zombienets) - - AssetHubRococo (see events `xcmpQueue.XcmpMessageSent`, `polkadotXcm.Attempted`) https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:9910#/explorer - - BridgeHubRococo (see `bridgeWestendMessages.MessageAccepted`) https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:8943#/explorer - - BridgeHubWestend (see `bridgeRococoMessages.MessagesReceived`, `xcmpQueue.XcmpMessageSent`) https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:8945#/explorer - - AssetHubWestend (see `foreignAssets.Issued`, `xcmpQueue.Success`) https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:9010#/explorer - - BridgeHubRocococ (see `bridgeWestendMessages.MessagesDelivered`) https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:8943#/explorer + - AssetHubRococo (see + events `xcmpQueue.XcmpMessageSent`, `polkadotXcm.Attempted`) https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:9910#/explorer + - BridgeHubRococo ( + see `bridgeWestendMessages.MessageAccepted`) https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:8943#/explorer + - BridgeHubWestend ( + see `bridgeRococoMessages.MessagesReceived`, `xcmpQueue.XcmpMessageSent`) https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:8945#/explorer + - AssetHubWestend ( + see `foreignAssets.Issued`, `xcmpQueue.Success`) https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:9010#/explorer + - BridgeHubRocococ ( + see `bridgeWestendMessages.MessagesDelivered`) https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:8943#/explorer Do reserve withdraw transfers: (when previous is finished) + ``` cd # wrappedWNDs from Rococo's Asset Hub to Westend's. ./bridges/testing/environments/rococo-westend/bridges_rococo_westend.sh withdraw-reserve-assets-from-asset-hub-rococo-local ``` + ``` cd @@ -181,6 +197,7 @@ cd ### Claim relayer's rewards on BridgeHubRococo and BridgeHubWestend **Accounts of BridgeHub parachains:** + - `//Charlie` is relayer account on BridgeHubRococo - `//Charlie` is relayer account on BridgeHubWestend @@ -195,8 +212,10 @@ cd ``` - open explorers: (see zombienets) - - BridgeHubRococo (see 2x `bridgeRelayers.RewardPaid`) https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:8943#/explorer - - BridgeHubWestend (see 2x `bridgeRelayers.RewardPaid`) https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:8945#/explorer + - BridgeHubRococo (see + 2x `bridgeRelayers.RewardPaid`) https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:8943#/explorer + - BridgeHubWestend (see + 2x `bridgeRelayers.RewardPaid`) https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:8945#/explorer ## How to test local BridgeHubKusama/BridgeHubPolkadot diff --git a/cumulus/parachains/runtimes/contracts/contracts-rococo/README.md b/cumulus/parachains/runtimes/contracts/contracts-rococo/README.md index 10df15ba72779..ce2303c5b3292 100644 --- a/cumulus/parachains/runtimes/contracts/contracts-rococo/README.md +++ b/cumulus/parachains/runtimes/contracts/contracts-rococo/README.md @@ -1,7 +1,8 @@ # Contracts 📝 This is a parachain node for smart contracts; it contains a default configuration of -Substrate's module for smart contracts ‒ the [`pallet-contracts`](https://github.com/paritytech/polkadot-sdk/tree/master/substrate/frame/contracts). +Substrate's module for smart contracts ‒ +the [`pallet-contracts`](https://github.com/paritytech/polkadot-sdk/tree/master/substrate/frame/contracts). The node is only available on Rococo, a testnet for Polkadot and Kusama parachains. It has been configured as a common good parachain, as such it uses the Rococo relay @@ -34,7 +35,8 @@ or interact with contracts: * [Contracts UI](https://paritytech.github.io/contracts-ui/) ‒ a beginner-friendly UI for smart contract developers. * [`polkadot-js`](https://polkadot.js.org/apps/) ‒ the go-to expert UI for smart contract developers. -* [`cargo-contract`](https://github.com/paritytech/cargo-contract) ‒ a CLI tool, ideal for scripting or your terminal workflow. +* [`cargo-contract`](https://github.com/paritytech/cargo-contract) ‒ a CLI tool, ideal for scripting or your terminal + workflow. If you are looking for a quickstart, we can recommend [ink!'s Guided Tutorial for Beginners](https://docs.substrate.io/tutorials/v3/ink-workshop/pt1/). @@ -51,7 +53,7 @@ cargo build --release --locked --bin polkadot-parachain Once the executable is built, launch the parachain node via: ```bash -./target/release/polkadot-parachain --chain contracts-rococo +./target/release/polkadot-parachain-omni-node --chain contracts-rococo ``` Refer to the [setup instructions](https://github.com/paritytech/polkadot-sdk/tree/master/cumulus#manual-setup) to run a @@ -71,7 +73,8 @@ Due to this you'll need `ROC` in order to deploy contracts on this parachain. As a first step, you should create an account. See [here](https://wiki.polkadot.network/docs/learn-account-generation) for a detailed guide. -As a second step, you have to get `ROC` testnet tokens through the [Rococo Faucet](https://wiki.polkadot.network/docs/learn-DOT#obtaining-testnet-tokens). +As a second step, you have to get `ROC` testnet tokens through +the [Rococo Faucet](https://wiki.polkadot.network/docs/learn-DOT#obtaining-testnet-tokens). This is a chat room in which you'd need to post the following message: ```bash diff --git a/cumulus/polkadot-parachain/Cargo.toml b/cumulus/polkadot-parachain/Cargo.toml index 99a4ec8ff0af6..d3743b0a14654 100644 --- a/cumulus/polkadot-parachain/Cargo.toml +++ b/cumulus/polkadot-parachain/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "polkadot-parachain-omni-node" -version = "4.0.0" +version = "0.1.0" authors.workspace = true build = "build.rs" edition.workspace = true diff --git a/cumulus/polkadot-parachain/src/chain_spec/mod.rs b/cumulus/polkadot-parachain/src/chain_spec/mod.rs index 19047b073b057..e4f9892b88f97 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/mod.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/mod.rs @@ -53,7 +53,7 @@ impl Extensions { } } -/// Generic chain spec for all polkadot-parachain runtimes +/// Generic chain spec for all polkadot-parachain-omni-node runtimes pub type GenericChainSpec = sc_service::GenericChainSpec; /// Helper function to generate a crypto pair from seed diff --git a/cumulus/scripts/benchmarks-ci.sh b/cumulus/scripts/benchmarks-ci.sh index 195a455fa56b0..acb7472275167 100755 --- a/cumulus/scripts/benchmarks-ci.sh +++ b/cumulus/scripts/benchmarks-ci.sh @@ -15,7 +15,7 @@ fi # Load all pallet names in an array. pallets=($( - ${artifactsDir}/polkadot-parachain benchmark pallet --list --chain="${benchmarkRuntimeName}" |\ + ${artifactsDir}/polkadot-parachain-omni-node benchmark pallet --list --chain="${benchmarkRuntimeName}" |\ tail -n+2 |\ cut -d',' -f1 |\ sort |\ @@ -38,7 +38,7 @@ do output_dir="xcm/" extra_args="--template=./templates/xcm-bench-template.hbs" fi - $artifactsDir/polkadot-parachain benchmark pallet \ + $artifactsDir/polkadot-parachain-omni-node benchmark pallet \ $extra_args \ --chain=$benchmarkRuntimeName \ --wasm-execution=compiled \ diff --git a/cumulus/scripts/create_glutton_spec.sh b/cumulus/scripts/create_glutton_spec.sh index 78aafda3bd08a..66d843c3a588e 100755 --- a/cumulus/scripts/create_glutton_spec.sh +++ b/cumulus/scripts/create_glutton_spec.sh @@ -9,7 +9,7 @@ # - Set `compute`, `storage`, and `trash_data_count` set to 50%, 131%, and 5,120, respectively; # - And save the results in `output-dir`. # -# ./scripts/create_glutton_spec.sh ./target/release/polkadot-parachain rococo 1300 1370 GZ9YSgtib4kEMxWcpWfnXa1cnrumspTCTZSaNWWmMkJbWqW 500000000 1310000000 5120 output-dir +# ./scripts/create_glutton_spec.sh ./target/release/polkadot-parachain-omni-node rococo 1300 1370 GZ9YSgtib4kEMxWcpWfnXa1cnrumspTCTZSaNWWmMkJbWqW 500000000 1310000000 5120 output-dir usage() { echo Usage: diff --git a/cumulus/scripts/generate_genesis_value.sh b/cumulus/scripts/generate_genesis_value.sh index 178e15fb8a904..948306cbe55f8 100755 --- a/cumulus/scripts/generate_genesis_value.sh +++ b/cumulus/scripts/generate_genesis_value.sh @@ -58,7 +58,7 @@ if [[ "$rpc_endpoint" =~ "localhost" ]]; then check_collator echo -e "Make sure you have a collator running with the correct version at $rpc_endpoint." echo -e "If you don't, NOW is the time to start it with:" - echo -e "target/release/polkadot-parachain --chain parachains/chain-specs/shell.json --tmp\n" + echo -e "target/release/polkadot-parachain-omni-node --chain parachains/chain-specs/shell.json --tmp\n" read -p "You can abort with CTRL+C if this is not correct, otherwise press ENTER " fi diff --git a/docker/dockerfiles/bridges_zombienet_tests_injected.Dockerfile b/docker/dockerfiles/bridges_zombienet_tests_injected.Dockerfile index 196ba861f503c..0e697795ba809 100644 --- a/docker/dockerfiles/bridges_zombienet_tests_injected.Dockerfile +++ b/docker/dockerfiles/bridges_zombienet_tests_injected.Dockerfile @@ -36,8 +36,8 @@ RUN yarn global add @polkadot/api-cli COPY ./artifacts/polkadot /usr/local/bin/ COPY ./artifacts/polkadot-execute-worker /usr/local/bin/ COPY ./artifacts/polkadot-prepare-worker /usr/local/bin/ -# add polkadot-parachain binary to the docker image -COPY ./artifacts/polkadot-parachain /usr/local/bin +# add polkadot-parachain-omni-node binary to the docker image +COPY ./artifacts/polkadot-parachain-omni-node /usr/local/bin # copy substrate-relay to the docker image COPY --from=relay-builder /home/user/substrate-relay /usr/local/bin/ # we need bridges zombienet runner and tests @@ -51,7 +51,7 @@ RUN set -eux; \ # check if executable works in this container USER nonroot RUN /usr/local/bin/polkadot --version -RUN /usr/local/bin/polkadot-parachain --version +RUN /usr/local/bin/polkadot-parachain-omni-node --version RUN /usr/local/bin/substrate-relay --version # https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:{PORT}#/explorer diff --git a/docker/dockerfiles/polkadot-parachain/polkadot-parachain-debug_unsigned_injected.Dockerfile b/docker/dockerfiles/polkadot-parachain/polkadot-parachain-debug_unsigned_injected.Dockerfile index f249612e77641..4824c092703d8 100644 --- a/docker/dockerfiles/polkadot-parachain/polkadot-parachain-debug_unsigned_injected.Dockerfile +++ b/docker/dockerfiles/polkadot-parachain/polkadot-parachain-debug_unsigned_injected.Dockerfile @@ -31,19 +31,19 @@ RUN apt-get update && \ useradd -m -u 1000 -U -s /bin/sh -d /polkadot-parachain polkadot-parachain && \ mkdir -p /data /polkadot-parachain/.local/share && \ chown -R polkadot-parachain:polkadot-parachain /data && \ - ln -s /data /polkadot-parachain/.local/share/polkadot-parachain && \ + ln -s /data /polkadot-parachain/.local/share/polkadot-parachain-omni-node && \ mkdir -p /specs -# add polkadot-parachain binary to the docker image -COPY ./artifacts/polkadot-parachain /usr/local/bin +# add polkadot-parachain-omni-node binary to the docker image +COPY ./artifacts/polkadot-parachain-omni-node /usr/local/bin COPY ./cumulus/parachains/chain-specs/*.json /specs/ USER polkadot-parachain # check if executable works in this container -RUN /usr/local/bin/polkadot-parachain --version +RUN /usr/local/bin/polkadot-parachain-omni-node --version EXPOSE 30333 9933 9944 VOLUME ["/polkadot-parachain"] -ENTRYPOINT ["/usr/local/bin/polkadot-parachain"] +ENTRYPOINT ["/usr/local/bin/polkadot-parachain-omni-node"] diff --git a/docker/dockerfiles/polkadot-parachain/polkadot-parachain_builder.Dockerfile b/docker/dockerfiles/polkadot-parachain/polkadot-parachain_builder.Dockerfile index b56b8c1a1ef8f..1fc759b34acc1 100644 --- a/docker/dockerfiles/polkadot-parachain/polkadot-parachain_builder.Dockerfile +++ b/docker/dockerfiles/polkadot-parachain/polkadot-parachain_builder.Dockerfile @@ -5,7 +5,7 @@ FROM docker.io/paritytech/ci-linux:production as builder WORKDIR /cumulus COPY . /cumulus -RUN cargo build --release --locked -p polkadot-parachain +RUN cargo build --release --locked -p polkadot-parachain-omni-node # This is the 2nd stage: a very small image where we copy the Polkadot binary." FROM docker.io/library/ubuntu:20.04 @@ -17,20 +17,20 @@ LABEL io.parity.image.type="builder" \ io.parity.image.source="https://github.com/paritytech/polkadot-sdk/blob/${VCS_REF}/docker/dockerfiles/polkadot-parachain/polkadot-parachain_builder.Dockerfile" \ io.parity.image.documentation="https://github.com/paritytech/polkadot-sdk/tree/master/cumulus" -COPY --from=builder /cumulus/target/release/polkadot-parachain /usr/local/bin +COPY --from=builder /cumulus/target/release/polkadot-parachain-omni-node /usr/local/bin RUN useradd -m -u 1000 -U -s /bin/sh -d /cumulus polkadot-parachain && \ mkdir -p /data /cumulus/.local/share && \ chown -R polkadot-parachain:polkadot-parachain /data && \ - ln -s /data /cumulus/.local/share/polkadot-parachain && \ + ln -s /data /cumulus/.local/share/polkadot-parachain-omni-node && \ # unclutter and minimize the attack surface rm -rf /usr/bin /usr/sbin && \ # check if executable works in this container - /usr/local/bin/polkadot-parachain --version + /usr/local/bin/polkadot-parachain-omni-node --version USER polkadot-parachain EXPOSE 30333 9933 9944 9615 VOLUME ["/data"] -ENTRYPOINT ["/usr/local/bin/polkadot-parachain"] +ENTRYPOINT ["/usr/local/bin/polkadot-parachain-omni-node"] diff --git a/docker/dockerfiles/polkadot-parachain/polkadot-parachain_injected.Dockerfile b/docker/dockerfiles/polkadot-parachain/polkadot-parachain_injected.Dockerfile index 16bd0f4cf3c55..2502b5a7f5d54 100644 --- a/docker/dockerfiles/polkadot-parachain/polkadot-parachain_injected.Dockerfile +++ b/docker/dockerfiles/polkadot-parachain/polkadot-parachain_injected.Dockerfile @@ -21,7 +21,7 @@ USER root RUN mkdir -p /specs -# add polkadot-parachain binary to the docker image +# add polkadot-parachain-omni-node binary to the docker image COPY bin/* /usr/local/bin/ COPY specs/* /specs/ @@ -30,9 +30,9 @@ RUN chmod -R a+rx "/usr/local/bin" USER parity # check if executable works in this container -RUN /usr/local/bin/polkadot-parachain --version +RUN /usr/local/bin/polkadot-parachain-omni-node --version EXPOSE 30333 9933 9944 9615 VOLUME ["/polkadot", "/specs"] -ENTRYPOINT ["/usr/local/bin/polkadot-parachain"] +ENTRYPOINT ["/usr/local/bin/polkadot-parachain-omni-node"] diff --git a/docker/dockerfiles/test-parachain-collator.Dockerfile b/docker/dockerfiles/test-parachain-collator.Dockerfile index 116520284dd34..45d4e60121a83 100644 --- a/docker/dockerfiles/test-parachain-collator.Dockerfile +++ b/docker/dockerfiles/test-parachain-collator.Dockerfile @@ -23,7 +23,7 @@ RUN apt-get update && apt-get install jq curl bash -y && \ npm install --global yarn && \ yarn global add @polkadot/api-cli@0.10.0-beta.14 COPY --from=builder \ - /paritytech/cumulus/target/release/polkadot-parachain /usr/bin + /paritytech/cumulus/target/release/polkadot-parachain-omni-node /usr/bin COPY ./docker/scripts/inject_bootnodes.sh /usr/bin CMD ["/usr/bin/inject_bootnodes.sh"] COPY ./docker/scripts/healthcheck.sh /usr/bin/ @@ -41,6 +41,6 @@ CMD ["cp", "-v", "/var/opt/cumulus_test_parachain_runtime.compact.wasm", "/runti FROM debian:buster-slim COPY --from=builder \ - /paritytech/cumulus/target/release/polkadot-parachain /usr/bin + /paritytech/cumulus/target/release/polkadot-parachain-omni-node /usr/bin CMD ["/usr/bin/polkadot-parachain"] diff --git a/docs/contributor/container.md b/docs/contributor/container.md index ec51b8b9d7ccd..fa3e924b4cbc9 100644 --- a/docs/contributor/container.md +++ b/docs/contributor/container.md @@ -25,7 +25,7 @@ docker run --rm -it \ -w /polkadot-sdk \ -v $(pwd):/polkadot-sdk \ docker.io/paritytech/ci-unified:bullseye-1.77.0-2024-04-10-v20240408 \ - cargo build --release --locked -p polkadot-parachain-bin --bin polkadot-parachain + cargo build --release --locked -p polkadot-parachain-omni-node --bin polkadot-parachain-omni-node sudo chown -R $(id -u):$(id -g) target/ ```