From cd263ace198694b45bb9f3df922b6a32ba8801a4 Mon Sep 17 00:00:00 2001 From: Branislav Kontur <bkontur@gmail.com> Date: Mon, 24 Jul 2023 16:16:08 +0200 Subject: [PATCH] BHs readme nits (#2754) * Correct BH readme * Zombienet renaming * TOC * Apply suggestions from code review Co-authored-by: Adrian Catangiu <adrian@parity.io> * Updated REAMDE.md * Alice -> Bob for e2e --------- Co-authored-by: Adrian Catangiu <adrian@parity.io> Co-authored-by: parity-processbot <> --- .../emulated/common/src/constants.rs | 8 +- .../parachains/runtimes/bridge-hubs/README.md | 141 ++++++++---------- .../bridge_hub_rococo_local_network.toml | 4 +- .../bridge_hub_wococo_local_network.toml | 4 +- 4 files changed, 69 insertions(+), 88 deletions(-) diff --git a/cumulus/parachains/integration-tests/emulated/common/src/constants.rs b/cumulus/parachains/integration-tests/emulated/common/src/constants.rs index 7c3eaba5956..b3f78c23181 100644 --- a/cumulus/parachains/integration-tests/emulated/common/src/constants.rs +++ b/cumulus/parachains/integration-tests/emulated/common/src/constants.rs @@ -953,19 +953,19 @@ pub mod bridge_hub_rococo { ..Default::default() }, bridge_wococo_grandpa: bridge_hub_rococo_runtime::BridgeWococoGrandpaConfig { - owner: Some(get_account_id_from_seed::<sr25519::Public>("Alice")), + owner: Some(get_account_id_from_seed::<sr25519::Public>(accounts::BOB)), ..Default::default() }, bridge_rococo_grandpa: bridge_hub_rococo_runtime::BridgeRococoGrandpaConfig { - owner: Some(get_account_id_from_seed::<sr25519::Public>("Alice")), + owner: Some(get_account_id_from_seed::<sr25519::Public>(accounts::BOB)), ..Default::default() }, bridge_rococo_messages: bridge_hub_rococo_runtime::BridgeRococoMessagesConfig { - owner: Some(get_account_id_from_seed::<sr25519::Public>("Alice")), + owner: Some(get_account_id_from_seed::<sr25519::Public>(accounts::BOB)), ..Default::default() }, bridge_wococo_messages: bridge_hub_rococo_runtime::BridgeWococoMessagesConfig { - owner: Some(get_account_id_from_seed::<sr25519::Public>("Alice")), + owner: Some(get_account_id_from_seed::<sr25519::Public>(accounts::BOB)), ..Default::default() }, ..Default::default() diff --git a/cumulus/parachains/runtimes/bridge-hubs/README.md b/cumulus/parachains/runtimes/bridge-hubs/README.md index b187f1da2db..1520065b7e3 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/README.md +++ b/cumulus/parachains/runtimes/bridge-hubs/README.md @@ -1,15 +1,13 @@ - [Bridge-hub Parachains](#bridge-hub-parachains) - * [Requirements for local run/testing](#requirements-for-local-run-testing) - * [How to test locally Rococo <-> Wococo bridge](#how-to-test-locally-rococo-----wococo-bridge) - + [Run chains (Rococo + BridgeHub, Wococo + BridgeHub) with zombienet](#run-chains--rococo---bridgehub--wococo---bridgehub--with-zombienet) - + [Run relayer (BridgeHubRococo, BridgeHubWococo)](#run-relayer--bridgehubrococo--bridgehubwococo-) - - [Run with script (alternative 1)](#run-with-script--alternative-1-) - - [Run with binary (alternative 2)](#run-with-binary--alternative-2-) - + [Send messages](#send-messages) - - [Local zombienet run](#local-zombienet-run) - - [Live Rockmine2 to Wockmint](#live-rockmine2-to-wockmint) - * [How to test local BridgeHubKusama](#how-to-test-local-bridgehubkusama) - * [How to test local BridgeHubPolkadot](#how-to-test-local-bridgehubpolkadot) + * [Requirements for local run/testing](#requirements-for-local-runtesting) + * [How to test local Rococo <-> Wococo bridge](#how-to-test-local-rococo---wococo-bridge) + + [Run chains (Rococo + BridgeHub, Wococo + BridgeHub) with zombienet](#run-chains-rococo--bridgehub-wococo--bridgehub-with-zombienet) + + [Run relayer (BridgeHubRococo, BridgeHubWococo)](#run-relayer-bridgehubrococo-bridgehubwococo) + - [Run with script (alternative 1)](#run-with-script-alternative-1) + - [Run with binary (alternative 2)](#run-with-binary-alternative-2) + + [Send messages - transfer asset over bridge](#send-messages---transfer-asset-over-bridge) + * [How to test live BridgeHubRococo/BridgeHubWococo](#how-to-test-live-bridgehubrococobridgehubwococo) + * [How to test local BridgeHubKusama/BridgeHubPolkadot](#how-to-test-local-bridgehubkusamabridgehubpolkadot) # Bridge-hub Parachains @@ -41,6 +39,7 @@ mkdir -p ~/local_bridge_testing/logs Go to: https://github.com/paritytech/zombienet/releases Copy the apropriate binary (zombienet-linux) from the latest release to ~/local_bridge_testing/bin + --- # 2. Build polkadot binary git clone https://github.com/paritytech/polkadot.git @@ -49,60 +48,81 @@ cd polkadot # if you want to test Kusama/Polkadot bridge, we need "sudo pallet + fast-runtime", # so please, find the latest polkadot's repository branch `it/release-vX.Y.Z-fast-sudo` # e.g: -# git checkout -b it/release-v0.9.42-fast-sudo --track origin/it/release-v0.9.42-fast-sudo +# git checkout -b it/release-v0.9.43-fast-sudo --track origin/it/release-v0.9.43-fast-sudo cargo build --release --features fast-runtime cp target/release/polkadot ~/local_bridge_testing/bin/polkadot ---- -# 3. Build cumulus polkadot-parachain binary -cd <cumulus-git-repo-dir> - -# checkout desired branch or use master: -# git checkout -b master --track origin/master - -cargo build --release --locked -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-mint --- -# 4. Build substrate-relay binary +# 3. Build substrate-relay binary git clone https://github.com/paritytech/parity-bridges-common.git cd parity-bridges-common # checkout desired branch or use master: # git checkout -b master --track origin/master +# `polkadot-staging` (recommended) is stabilized and compatible for Cumulus releases +# `master` is latest development git checkout -b polkadot-staging --track origin/polkadot-staging cargo build --release -p substrate-relay cp target/release/substrate-relay ~/local_bridge_testing/bin/substrate-relay + --- -# 5. Build polkadot-parachain-mint binary with `asset-hub-kusama`/`asset-hub-westend` for moving assets +# 4. Build cumulus polkadot-parachain binary cd <cumulus-git-repo-dir> -# TODO:check-parameter - change this when merged to master -git checkout -b bko-transfer-asset-via-bridge --track origin/bko-transfer-asset-via-bridge -cargo build --release --locked -p polkadot-parachain-bin -cp target/release/polkadot-parachain ~/local_bridge_testing/bin/polkadot-parachain-mint + +# checkout desired branch or use master: +# git checkout -b master --track origin/master + +cargo build --release --locked --bin polkadot-parachain +cp target/release/polkadot-parachain ~/local_bridge_testing/bin/polkadot-parachain +cp target/release/polkadot-parachain ~/local_bridge_testing/bin/polkadot-parachain-asset-hub + + + +# !!! READ HERE (TODO remove once all mentioned branches bellow are merged) +# The use case "moving assets over bridge" is not merged yet and is implemented in separate branches. +# So, if you want to try it, you need to checkout different branch and continue with these instructions there. + +# For Kusama/Polkadot local bridge testing: +# +# build BridgeHubs (polkadot-parachain) from branch: +# git checkout -b bridge-hub-kusama-polkadot --track origin/bridge-hub-kusama-polkadot +# cargo build --release --locked --bin polkadot-parachain +# cp target/release/polkadot-parachain ~/local_bridge_testing/bin/polkadot-parachain +# +# build AssetHubs (polkadot-parachain-asset-hub) from branch: +# git checkout -b bko-transfer-asset-via-bridge-pallet-xcm --track origin/bko-transfer-asset-via-bridge-pallet-xcm +# cargo build --release --locked --bin polkadot-parachain +# cp target/release/polkadot-parachain ~/local_bridge_testing/bin/polkadot-parachain-asset-hub + +# For Rococo/Wococo local bridge testing: +# +# build AssetHubs (polkadot-parachain-asset-hub) from branch: +# git checkout -b bko-transfer-asset-via-bridge-pallet-xcm-ro-wo --track origin/bko-transfer-asset-via-bridge-pallet-xcm-ro-wo +# cargo build --release --locked --bin polkadot-parachain +# cp target/release/polkadot-parachain ~/local_bridge_testing/bin/polkadot-parachain-asset-hub ``` -## How to test locally Rococo <-> Wococo bridge +## How to test local Rococo <-> Wococo bridge -### Run chains (Rococo + BridgeHub, Wococo + BridgeHub) with zombienet +### Run chains (Rococo + BridgeHub + AssetHub, Wococo + BridgeHub + AssetHub) with zombienet ``` -# Rococo + BridgeHubRococo + Rockmine (mirroring Kusama) +# Rococo + BridgeHubRococo + AssetHub for Rococo (mirroring Kusama) POLKADOT_BINARY_PATH=~/local_bridge_testing/bin/polkadot \ POLKADOT_PARACHAIN_BINARY_PATH=~/local_bridge_testing/bin/polkadot-parachain \ -POLKADOT_PARACHAIN_BINARY_PATH_FOR_ROCKMINE=~/local_bridge_testing/bin/polkadot-parachain-mint \ +POLKADOT_PARACHAIN_BINARY_PATH_FOR_ASSET_HUB_ROCOCO=~/local_bridge_testing/bin/polkadot-parachain-asset-hub \ ~/local_bridge_testing/bin/zombienet-linux --provider native spawn ./zombienet/bridge-hubs/bridge_hub_rococo_local_network.toml ``` ``` -# Wococo + BridgeHubWococo + Wockmint (mirroring Polkadot) +# Wococo + BridgeHubWococo + AssetHub for Wococo (mirroring Polkadot) POLKADOT_BINARY_PATH=~/local_bridge_testing/bin/polkadot \ POLKADOT_PARACHAIN_BINARY_PATH=~/local_bridge_testing/bin/polkadot-parachain \ -POLKADOT_PARACHAIN_BINARY_PATH_FOR_WOCKMINT=~/local_bridge_testing/bin/polkadot-parachain-mint \ +POLKADOT_PARACHAIN_BINARY_PATH_FOR_ASSET_HUB_WOCOCO=~/local_bridge_testing/bin/polkadot-parachain-asset-hub \ ~/local_bridge_testing/bin/zombienet-linux --provider native spawn ./zombienet/bridge-hubs/bridge_hub_wococo_local_network.toml ``` @@ -191,65 +211,26 @@ RUST_LOG=runtime=trace,rpc=trace,bridge=trace \ - Pallet: **bridgeRococoParachain** - Keys: **bestParaHeads()** -### Send messages - -#### Local zombienet run - -1. allow bridge transfer on kusama/westend asset hubs (governance-like): - ``` - ./scripts/bridges_rococo_wococo.sh allow-transfers-local - ``` - -2. do (asset) transfer from kusama's asset hub to westend's asset hub: - ``` - ./scripts/bridges_rococo_wococo.sh transfer-asset-from-asset-hub-kusama-local - ``` - -3. do (ping) transfer from kusama's asset hub to westend's asset hub - ``` - ./scripts/bridges_rococo_wococo.sh ping-via-bridge-from-asset-hub-kusama-local - ``` +### Send messages - transfer asset over bridge -- open explorers: (see zombienets) - - Kusama Asset Hub (see events `xcmpQueue.XcmpMessageSent`, `bridgeTransfer.ReserveAssetsDeposited`, `bridgeTransfer.TransferInitiated`) https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:9910#/explorer - - BridgeHubRococo (see `bridgeWococoMessages.MessageAccepted`) https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:8943#/explorer - - BridgeHubWococo (see `bridgeRococoMessages.MessagesReceived`) https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:8945#/explorer - - Westend Asset Hub (see `xcmpQueue.Success` for `transfer-asset` and `xcmpQueue.Fail` for `ping-via-bridge`) https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:9010#/explorer - - BridgeHubRococo (see `bridgeWococoMessages.MessagesDelivered`) https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:8943#/explorer +TODO: see `# !!! READ HERE` above -#### Live Rockmine2 to Wockmint +## How to test live BridgeHubRococo/BridgeHubWococo +(here is still deployed older PoC from branch `origin/bko-transfer-asset-via-bridge`, which uses custom extrinsic, which is going to be replaced by `pallet_xcm` usage) - uses account seed on Live Rococo:Rockmine2 ``` cd <cumulus-git-repo-dir> - ./scripts/bridges_rococo_wococo.sh transfer-asset-from-asset-hub-rococo - or - ./scripts/bridges_rococo_wococo.sh ping-via-bridge-from-asset-hub-rococo ``` - open explorers: - Rockmine2 (see events `xcmpQueue.XcmpMessageSent`, `bridgeTransfer.ReserveAssetsDeposited`, `bridgeTransfer.TransferInitiated`) https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fws-rococo-rockmine2-collator-node-0.parity-testnet.parity.io#/explorer - BridgeHubRococo (see `bridgeWococoMessages.MessageAccepted`) https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frococo-bridge-hub-rpc.polkadot.io#/explorer - BridgeHubWococo (see `bridgeRococoMessages.MessagesReceived`) https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fwococo-bridge-hub-rpc.polkadot.io#/explorer - - Wockmint (see `xcmpQueue.Success` for `transfer-asset` and `xcmpQueue.Fail` for `ping-via-bridge`) https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fws-wococo-wockmint-collator-node-0.parity-testnet.parity.io#/explorer + - Wockmint (see `xcmpQueue.Success` for `transfer-asset` and `xcmpQueue.Fail` for `ping-via-bridge`) https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fwococo-wockmint-rpc.polkadot.io#/explorer - BridgeHubRococo (see `bridgeWococoMessages.MessagesDelivered`) -## How to test local BridgeHubKusama -``` -cd <base-cumulus-repo-directory> -cargo build --release -p polkadot-parachain-bin - -# script expect to have pre-built polkadot binary on the path: ../polkadot/target/release/polkadot -# if using `kusama-local` / `polkadot-local`, build polkadot with `--features fast-runtime` -# BridgeHubKusama -zombienet-linux --provider native spawn ./zombienet/examples/bridge_hub_kusama_local_network.toml - -or - -# BridgeHubPolkadot -zombienet-linux --provider native spawn ./zombienet/examples/bridge_hub_polkadot_local_network.toml -``` +## How to test local BridgeHubKusama/BridgeHubPolkadot -## How to test local BridgeHubPolkadot -TODO: from master +TODO: see `# !!! READ HERE` above diff --git a/cumulus/zombienet/bridge-hubs/bridge_hub_rococo_local_network.toml b/cumulus/zombienet/bridge-hubs/bridge_hub_rococo_local_network.toml index 4e1260f9e41..80b398ac724 100644 --- a/cumulus/zombienet/bridge-hubs/bridge_hub_rococo_local_network.toml +++ b/cumulus/zombienet/bridge-hubs/bridge_hub_rococo_local_network.toml @@ -71,7 +71,7 @@ cumulus_based = true name = "rockmine-collator1" rpc_port = 9911 ws_port = 9910 - command = "{{POLKADOT_PARACHAIN_BINARY_PATH_FOR_ROCKMINE}}" + command = "{{POLKADOT_PARACHAIN_BINARY_PATH_FOR_ASSET_HUB_ROCOCO}}" args = [ "-lparachain=debug,xcm=trace,runtime::bridge-transfer=trace", ] @@ -82,7 +82,7 @@ cumulus_based = true [[parachains.collators]] name = "rockmine-collator2" - command = "{{POLKADOT_PARACHAIN_BINARY_PATH_FOR_ROCKMINE}}" + command = "{{POLKADOT_PARACHAIN_BINARY_PATH_FOR_ASSET_HUB_ROCOCO}}" args = [ "-lparachain=debug,xcm=trace,runtime::bridge-transfer=trace", ] diff --git a/cumulus/zombienet/bridge-hubs/bridge_hub_wococo_local_network.toml b/cumulus/zombienet/bridge-hubs/bridge_hub_wococo_local_network.toml index 7dcc8dd7232..9727b4a087f 100644 --- a/cumulus/zombienet/bridge-hubs/bridge_hub_wococo_local_network.toml +++ b/cumulus/zombienet/bridge-hubs/bridge_hub_wococo_local_network.toml @@ -71,7 +71,7 @@ cumulus_based = true name = "wockmint-collator1" rpc_port = 9011 ws_port = 9010 - command = "{{POLKADOT_PARACHAIN_BINARY_PATH_FOR_WOCKMINT}}" + command = "{{POLKADOT_PARACHAIN_BINARY_PATH_FOR_ASSET_HUB_WOCOCO}}" args = [ "-lparachain=debug,xcm=trace,runtime::bridge-transfer=trace", ] @@ -82,7 +82,7 @@ cumulus_based = true [[parachains.collators]] name = "wockmint-collator2" - command = "{{POLKADOT_PARACHAIN_BINARY_PATH_FOR_WOCKMINT}}" + command = "{{POLKADOT_PARACHAIN_BINARY_PATH_FOR_ASSET_HUB_WOCOCO}}" args = [ "-lparachain=debug,xcm=trace,runtime::bridge-transfer=trace", ] -- GitLab