From 24d25b860ea766824276bc768c2e5d18739076d5 Mon Sep 17 00:00:00 2001 From: filippoweb3 Date: Wed, 10 Jan 2024 13:23:39 +0100 Subject: [PATCH 01/11] edited info --- docs/build/build-hrmp-channels.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/docs/build/build-hrmp-channels.md b/docs/build/build-hrmp-channels.md index e7c8b2c24a71..415a0b729eb3 100644 --- a/docs/build/build-hrmp-channels.md +++ b/docs/build/build-hrmp-channels.md @@ -30,17 +30,24 @@ the Relay Chain. ## Opening HRMP Channels with System Parachains -Opening an HRMP channel with a system parachain requires a referendum. Like all other governance -proposals, proposers should follow best practices like opening a discussion on +Opening an HRMP channel with a system parachain requires an +[OpenGov referendum](../learn/learn-guides-polkadot-opengov.md) using the +[General Admin Track](../learn/learn-polkadot-opengov-origins.md#general-admin). Like all other +governance proposals, proposers should follow best practices like opening a discussion on [Polkassembly](https://polkadot.polkassembly.io/) or [Subsquare](https://polkadot.subsquare.io/) and then submitting the proposal on-chain. +Before submitting the proposal, both the system parachain's and the parachain's sovereign accounts +must have the channel deposit of 20 DOT plus the +[existential deposit](../learn/learn-accounts.md#existential-deposit-and-reaping) and some extra +funds to cover for fees. The parachain's sovereign account can send those funds via +`balances.transferKeepAlive` call to the system parachain's sovereign account (if funds are not +already available). + Proposals should generally be a `batch_all` call containing: -1. A `force_transfer` of the channel deposit from the Treasury to the System parachain's sovereign - account. Remember that a bi-direction channel is _two_ channels so will need double the amount. 1. A `force_open_hrmp_channel` from your chain to the system chain. -1. A `force_open_hrmp_channel` from the system chain to your chain. +2. A `force_open_hrmp_channel` from the system chain to your chain. :::caution @@ -67,7 +74,6 @@ the community to review and ultimately vote on: 3. Technical details of the proposal, including proposal parameters and technical details of this call (On Kusama, most proposals were designed as a batchAll calls): - - A `forceTransfer` of 20 DOT from the Treasury to AssetHub sovereign account. - A `forceOpenhrmpchannel` from AssetHub (1,000) to ParaID. - A `forceOpenhrmpChannel` from ParaID to AssetHub (1,000). From cf185a8d77ffe9edfd49bfcd3cbb7ce925cfe23a Mon Sep 17 00:00:00 2001 From: filippoweb3 Date: Wed, 10 Jan 2024 17:42:03 +0100 Subject: [PATCH 02/11] added more info --- docs/build/build-hrmp-channels.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/build/build-hrmp-channels.md b/docs/build/build-hrmp-channels.md index 415a0b729eb3..7bdcaa994faa 100644 --- a/docs/build/build-hrmp-channels.md +++ b/docs/build/build-hrmp-channels.md @@ -38,11 +38,13 @@ governance proposals, proposers should follow best practices like opening a disc then submitting the proposal on-chain. Before submitting the proposal, both the system parachain's and the parachain's sovereign accounts -must have the channel deposit of 20 DOT plus the +(both [system accounts](../learn/learn-account-advanced.md#system-accounts)) must have the channel +deposit of 20 DOT plus the [existential deposit](../learn/learn-accounts.md#existential-deposit-and-reaping) and some extra -funds to cover for fees. The parachain's sovereign account can send those funds via -`balances.transferKeepAlive` call to the system parachain's sovereign account (if funds are not -already available). +funds to cover for fees. Anyone can send those funds via `balances.transferKeepAlive` call to the +system parachain's sovereign account (if funds are not already available). System parachains have ID +< 2000 and they can be found on +[Subscan](https://polkadot.subscan.io/account_list?page=1&role=module&value_dimension=token). Proposals should generally be a `batch_all` call containing: From cb52c5485eed06256ddd8cfdd69141feb7920a03 Mon Sep 17 00:00:00 2001 From: filippoweb3 Date: Wed, 10 Jan 2024 18:33:56 +0100 Subject: [PATCH 03/11] minor edits --- docs/build/build-hrmp-channels.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/build/build-hrmp-channels.md b/docs/build/build-hrmp-channels.md index 7bdcaa994faa..2e61039ada78 100644 --- a/docs/build/build-hrmp-channels.md +++ b/docs/build/build-hrmp-channels.md @@ -44,7 +44,7 @@ deposit of 20 DOT plus the funds to cover for fees. Anyone can send those funds via `balances.transferKeepAlive` call to the system parachain's sovereign account (if funds are not already available). System parachains have ID < 2000 and they can be found on -[Subscan](https://polkadot.subscan.io/account_list?page=1&role=module&value_dimension=token). +[Subscan](https://polkadot.subscan.io/parachain_list?page=2&status=parachain). Proposals should generally be a `batch_all` call containing: From 28ceb874aee7f94a69c7caba2ff257c3016be7c1 Mon Sep 17 00:00:00 2001 From: filippoweb3 Date: Wed, 10 Jan 2024 23:02:17 +0100 Subject: [PATCH 04/11] Joe's Feedback --- docs/build/build-hrmp-channels.md | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/docs/build/build-hrmp-channels.md b/docs/build/build-hrmp-channels.md index 2e61039ada78..bced47b41997 100644 --- a/docs/build/build-hrmp-channels.md +++ b/docs/build/build-hrmp-channels.md @@ -40,11 +40,17 @@ then submitting the proposal on-chain. Before submitting the proposal, both the system parachain's and the parachain's sovereign accounts (both [system accounts](../learn/learn-account-advanced.md#system-accounts)) must have the channel deposit of 20 DOT plus the -[existential deposit](../learn/learn-accounts.md#existential-deposit-and-reaping) and some extra -funds to cover for fees. Anyone can send those funds via `balances.transferKeepAlive` call to the -system parachain's sovereign account (if funds are not already available). System parachains have ID -< 2000 and they can be found on -[Subscan](https://polkadot.subscan.io/parachain_list?page=2&status=parachain). +[existential deposit](../learn/learn-accounts.md#existential-deposit-and-reaping). At the time of +execution, each parachain's sovereign account must have a free balance greater than or equal to the +sum of the sender deposit, recipient deposit, and existential deposit. + +:::info + +After runtime 1,001,000, chains will not need any deposit for channels with system chains (and +should be fine without any balance in their accounts). There will be a `poke_deposit` function that +will refund any existing deposits. + +::: Proposals should generally be a `batch_all` call containing: @@ -74,14 +80,11 @@ the community to review and ultimately vote on: 1. A request on what the proposal aims to do (opening an HRMP channel with the AssetHub); 2. The use cases this channel will support for your chain; 3. Technical details of the proposal, including proposal parameters and technical details of this - call (On Kusama, most proposals were designed as a batchAll calls): + call: - A `forceOpenhrmpchannel` from AssetHub (1,000) to ParaID. - A `forceOpenhrmpChannel` from ParaID to AssetHub (1,000). - Please note that if governance decides to reduce the HRMP channel deposit on Polkadot to 0 DOT, - the first transaction should not be necessary (these guidelines will be updated accordingly). - 4. The XCM message to the Asset Hub, which can be decoded on the network; 5. The call data to verify on [Polkadot JS Apps Decode](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.polkadot.io#/extrinsics/decode) @@ -97,7 +100,7 @@ Below is an example of how teams followed this process on Kusama, as a way to: - Proposal to open HRMP channel between Bifrost and the Asset Hub: the motion can be found [here](https://kusama.polkassembly.io/motion/418). -## Preimage submission on democracy tab (Polkadot JS Apps) +## Preimage submission on democracy tab (Polkadot-JS UI) Once the community has given enough feedback (we expect these proposal to be non controversial) please submit the image on the discussion post in the From 7423f7c7a8df6f3f1e50110c94b09b37b3b05f7d Mon Sep 17 00:00:00 2001 From: filippoweb3 Date: Thu, 11 Jan 2024 09:56:50 +0100 Subject: [PATCH 05/11] fixed links --- docs/build/build-hrmp-channels.md | 10 ++++------ docs/build/build-parachains.md | 7 ++++--- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/docs/build/build-hrmp-channels.md b/docs/build/build-hrmp-channels.md index bced47b41997..68f57d2b3d66 100644 --- a/docs/build/build-hrmp-channels.md +++ b/docs/build/build-hrmp-channels.md @@ -7,9 +7,9 @@ keywords: [HRMP, parachain, statemint, proposal, asset hub, statemine] slug: ../build-hrmp-channels --- -[HRMP](../learn/learn-xcm.md#xcmp-lite-hrmp) has the same interface and functionality as -[XCMP](../learn/learn-xcm.md#xcmp-cross-chain-message-passing) but is much more demanding on -resources since it passes all messages via the Relay Chain. When XCMP is implemented on Polkadot, +[HRMP](../learn/learn-xcm-transport.md#hrmp-xcmp-lite) has the same interface and functionality as +[XCMP](../learn/learn-xcm-transport.md#xcmp-cross-chain-message-passing) but is much more demanding +on resources since it passes all messages via the Relay Chain. When XCMP is implemented on Polkadot, HRMP is planned to be deprecated and phased out in favor of it. ## Opening HRMP channel: parachain to parachain @@ -40,9 +40,7 @@ then submitting the proposal on-chain. Before submitting the proposal, both the system parachain's and the parachain's sovereign accounts (both [system accounts](../learn/learn-account-advanced.md#system-accounts)) must have the channel deposit of 20 DOT plus the -[existential deposit](../learn/learn-accounts.md#existential-deposit-and-reaping). At the time of -execution, each parachain's sovereign account must have a free balance greater than or equal to the -sum of the sender deposit, recipient deposit, and existential deposit. +[existential deposit](../learn/learn-accounts.md#existential-deposit-and-reaping). :::info diff --git a/docs/build/build-parachains.md b/docs/build/build-parachains.md index e60dd3d9aa47..140ae549ca00 100644 --- a/docs/build/build-parachains.md +++ b/docs/build/build-parachains.md @@ -325,9 +325,10 @@ available for this type of work. ### Rococo Testnet [Rococo](https://github.com/paritytech/cumulus#rococo-crown) is a testnet built for testing -parachains. Rococo utilizes Cumulus and [HRMP](../learn/learn-xcm.md#xcmp-lite-hrmp) (Horizontal -Relay-routed Message Passing) in order to send transfers and messages between parachains and a Relay -Chain. Every message is sent to the Relay Chain, then from the Relay Chain to the desired parachain. +parachains. Rococo utilizes Cumulus and [HRMP](../learn/learn-xcm-transport.md#hrmp-xcmp-lite) +(Horizontal Relay-routed Message Passing) in order to send transfers and messages between parachains +and a Relay Chain. Every message is sent to the Relay Chain, then from the Relay Chain to the +desired parachain. Rococo runs a few test system parachains: [Rockmine](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frococo-asset-hub-rpc.polkadot.io#/explorer), From 9ce7c26527523572c2d3a936fce9fddd1eed7596 Mon Sep 17 00:00:00 2001 From: filippoweb3 Date: Thu, 11 Jan 2024 10:07:07 +0100 Subject: [PATCH 06/11] added fees info --- docs/build/build-hrmp-channels.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/build/build-hrmp-channels.md b/docs/build/build-hrmp-channels.md index 68f57d2b3d66..5cf6e551aacf 100644 --- a/docs/build/build-hrmp-channels.md +++ b/docs/build/build-hrmp-channels.md @@ -40,7 +40,9 @@ then submitting the proposal on-chain. Before submitting the proposal, both the system parachain's and the parachain's sovereign accounts (both [system accounts](../learn/learn-account-advanced.md#system-accounts)) must have the channel deposit of 20 DOT plus the -[existential deposit](../learn/learn-accounts.md#existential-deposit-and-reaping). +[existential deposit](../learn/learn-accounts.md#existential-deposit-and-reaping). Opening an HRMP +channels requires submitting a transactions, therefore make sure you have some extra funds to cover +transaction fees. :::info From d60231e4cbc0468710443d636aafdf40da59f770 Mon Sep 17 00:00:00 2001 From: filippoweb3 Date: Thu, 11 Jan 2024 10:07:29 +0100 Subject: [PATCH 07/11] grammar check --- docs/build/build-hrmp-channels.md | 40 +++++++++++++++---------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/docs/build/build-hrmp-channels.md b/docs/build/build-hrmp-channels.md index 5cf6e551aacf..557772467786 100644 --- a/docs/build/build-hrmp-channels.md +++ b/docs/build/build-hrmp-channels.md @@ -14,19 +14,19 @@ HRMP is planned to be deprecated and phased out in favor of it. ## Opening HRMP channel: parachain to parachain -To open a channel from one parachain to another that are not system chains on Polkadot, the -governance of each parachain needs to declare its intent to open a channel on the Relay Chain, and +To open a channel from one parachain to another, that is not system chains on Polkadot, the +governance of each parachain needs to declare its intent to open a channel on the Relay Chain and the second chain needs to accept and do the same. -In order to do this, the calls to be dispatched from both chains are: +To do this, the calls to be dispatched from both chains are: 1. `hrmp > hrmpInitOpenChannel(recipient, proposedMaxCapacity, proposedMaxMessageSize)`: this call - initiates opening a channel from a parachain to a given recipient with given channel + initiates opening a channel from a parachain to a given recipient with a given channel 2. `hrmp > hrmpAcceptOpenChannel(sender)`: accepting the channel open request from the given sender. -Each parachain is to use its own governance process to execute this. The call will be executed on -the Relay Chain. +Each parachain is to use its governance process to execute this. The call will be executed on the +Relay Chain. ## Opening HRMP Channels with System Parachains @@ -40,8 +40,8 @@ then submitting the proposal on-chain. Before submitting the proposal, both the system parachain's and the parachain's sovereign accounts (both [system accounts](../learn/learn-account-advanced.md#system-accounts)) must have the channel deposit of 20 DOT plus the -[existential deposit](../learn/learn-accounts.md#existential-deposit-and-reaping). Opening an HRMP -channels requires submitting a transactions, therefore make sure you have some extra funds to cover +[existential deposit](../learn/learn-accounts.md#existential-deposit-and-reaping). Opening HRMP +channels requires submitting a transaction; therefore, ensure you have some extra funds to cover transaction fees. :::info @@ -67,9 +67,9 @@ than the old two-phase channel request/accept method. ## Publication on Polkassembly for discussion and feedback The [discussions section of Polkassembly](https://polkadot.polkassembly.io/discussions) is the best -place to share the reasoning behind your proposal: make sure to log in with the proposer address (if -possible) before publishing yours, and if you can do this also make sure the address has an on-chain -identity. +place to share the reasoning behind your proposal: make sure to log in with the proposer’s address +(if possible) before publishing yours, and if you can do this, also make sure the address has an +on-chain identity. ### Example: Opening an HRMP Channel with the AssetHub @@ -95,27 +95,27 @@ the community to review and ultimately vote on: the preimage hash needs to be submitted to and whitelisted by the [Technical Fellowship](../learn/learn-polkadot-opengov.md#the-technical-fellowship). -Below is an example of how teams followed this process on Kusama, as a way to: +Below is an example of how teams followed this process on Kusama as a way to: - Proposal to open HRMP channel between Bifrost and the Asset Hub: the motion can be found [here](https://kusama.polkassembly.io/motion/418). ## Preimage submission on democracy tab (Polkadot-JS UI) -Once the community has given enough feedback (we expect these proposal to be non controversial) -please submit the image on the discussion post in the +Once the community has given enough feedback (we expect this proposal to be noncontroversial) please +submit the image on the discussion post in the [Democracy](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.polkadot.io#/democracy) tab on Polkadot JS Apps, by using the "Submit Preimage" button: ![submit preimage](../assets/democracy/submit-preimage.png) -On the pop up window, compose the preimage in the discussion post: making sure the proposal hash is +On the pop-up window, compose the preimage in the discussion post, making sure the proposal hash is the same as in the post. ## Vote by the community -After the community voting period, there will be an enactment period. In general, on Kusama these -have been defined in shorter terms than the voting periods. Again, it is very important you -encourage the community to vote on this, highlighting the benefits for your chain, use cases enabled -with this submission, among other things. After the enactment period is over, both chains will -authorize the channel. +After the community voting period, there will be an enactment period. In general, these have been +defined in shorter terms than the voting periods on Kusama. Again, it would be best to encourage the +community to vote on this, highlighting the benefits for your chain use cases enabled with this +submission, among other things. After the enactment period is over, both chains will authorize the +channel. From 530d581da9bec7c3d5fc26e7a64d776f979f16e5 Mon Sep 17 00:00:00 2001 From: filippoweb3 Date: Thu, 11 Jan 2024 10:19:38 +0100 Subject: [PATCH 08/11] minor edits --- docs/build/build-hrmp-channels.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/build/build-hrmp-channels.md b/docs/build/build-hrmp-channels.md index 557772467786..e37ba9eb0aa0 100644 --- a/docs/build/build-hrmp-channels.md +++ b/docs/build/build-hrmp-channels.md @@ -21,9 +21,10 @@ the second chain needs to accept and do the same. To do this, the calls to be dispatched from both chains are: 1. `hrmp > hrmpInitOpenChannel(recipient, proposedMaxCapacity, proposedMaxMessageSize)`: this call - initiates opening a channel from a parachain to a given recipient with a given channel + initiates opening a channel from a parachain to a given recipient. -2. `hrmp > hrmpAcceptOpenChannel(sender)`: accepting the channel open request from the given sender. +2. `hrmp > hrmpAcceptOpenChannel(sender)`: this call is for accepting the channel open request from + the given sender. Each parachain is to use its governance process to execute this. The call will be executed on the Relay Chain. From ec581a5604731fae0246418a3bc457999367aa20 Mon Sep 17 00:00:00 2001 From: Filippo <110459737+filippoweb3@users.noreply.github.com> Date: Thu, 11 Jan 2024 11:04:52 +0100 Subject: [PATCH 09/11] Update docs/build/build-hrmp-channels.md Co-authored-by: Juan Ignacio Rios <54085674+JuaniRios@users.noreply.github.com> --- docs/build/build-hrmp-channels.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/build/build-hrmp-channels.md b/docs/build/build-hrmp-channels.md index e37ba9eb0aa0..52ec71d10cb9 100644 --- a/docs/build/build-hrmp-channels.md +++ b/docs/build/build-hrmp-channels.md @@ -14,7 +14,7 @@ HRMP is planned to be deprecated and phased out in favor of it. ## Opening HRMP channel: parachain to parachain -To open a channel from one parachain to another, that is not system chains on Polkadot, the +To open a channel from one parachain to another, that is not a system chain on Polkadot, the governance of each parachain needs to declare its intent to open a channel on the Relay Chain and the second chain needs to accept and do the same. From a426ff7fe034b9c4d236df78935d1ec15dbf9734 Mon Sep 17 00:00:00 2001 From: Filippo <110459737+filippoweb3@users.noreply.github.com> Date: Thu, 11 Jan 2024 11:05:11 +0100 Subject: [PATCH 10/11] Update docs/build/build-hrmp-channels.md Co-authored-by: Juan Ignacio Rios <54085674+JuaniRios@users.noreply.github.com> --- docs/build/build-hrmp-channels.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/build/build-hrmp-channels.md b/docs/build/build-hrmp-channels.md index 52ec71d10cb9..22aefe8bfbe4 100644 --- a/docs/build/build-hrmp-channels.md +++ b/docs/build/build-hrmp-channels.md @@ -15,7 +15,7 @@ HRMP is planned to be deprecated and phased out in favor of it. ## Opening HRMP channel: parachain to parachain To open a channel from one parachain to another, that is not a system chain on Polkadot, the -governance of each parachain needs to declare its intent to open a channel on the Relay Chain and +governance of each parachain needs to declare its intent to open a channel on the Relay Chain through a `Transact` XCM message with parachain origin, and the second chain needs to accept and do the same. To do this, the calls to be dispatched from both chains are: From 47fe67a30a6debc06cfa2b6f2b075d3506d40cda Mon Sep 17 00:00:00 2001 From: Filippo <110459737+filippoweb3@users.noreply.github.com> Date: Thu, 11 Jan 2024 11:05:29 +0100 Subject: [PATCH 11/11] Update docs/build/build-hrmp-channels.md Co-authored-by: Juan Ignacio Rios <54085674+JuaniRios@users.noreply.github.com> --- docs/build/build-hrmp-channels.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/build/build-hrmp-channels.md b/docs/build/build-hrmp-channels.md index 22aefe8bfbe4..e3144e423d28 100644 --- a/docs/build/build-hrmp-channels.md +++ b/docs/build/build-hrmp-channels.md @@ -18,7 +18,7 @@ To open a channel from one parachain to another, that is not a system chain on P governance of each parachain needs to declare its intent to open a channel on the Relay Chain through a `Transact` XCM message with parachain origin, and the second chain needs to accept and do the same. -To do this, the calls to be dispatched from both chains are: +To do this, the calls to be included in the `Transact` message from both chains are: 1. `hrmp > hrmpInitOpenChannel(recipient, proposedMaxCapacity, proposedMaxMessageSize)`: this call initiates opening a channel from a parachain to a given recipient.