波卡平行链怎样开启HRMP通道 实现跨链通信 PolkaWorld 刚刚
本文是波卡官方知识库 Polkadot Wiki 中对如何开启 HRMP 通道的说明。目前波卡已经上线 XCM 功能,两条平行链之间开启了 HRMP 通道后,就可以互相进行跨链通信。
HRMP 具有与 XCMP 相同的接口和功能,但由于它通过中继链传递所有消息,因此对资源的要求更高。当 XCMP 在 Polkadot 上实施时,HRMP 会按计划被弃用并逐步淘汰。
开启平行链至平行链的 HRMP 通道
要在 Polkadot 上打开一个从某条平行链到另一条非公共利益链的通道,每条平行链的治理都需要声明其在中继链上打开通道的意图,第二条链需要接受并做同样的事情。
为了做到这一点,要从两个链分派的调用是:
hrmp > hrmpInitOpenChanel(recipient, proposedMaxCapacity, proposedMaxMessageSize)
此调用启动从一条平行链到一个具有指定通道的指定接收者的通道
hrmp > hrmpAcceptOpenChanel(sender)
接受来自指定发送者的通道打开请求。
每个平行链都将使用自己的治理流程来执行此操作。该调用将在中继链上执行。
开启通往 Statemint 的 HRMP 通道
为了向社区(即提案的最终决策者)提供完整的上下文信息和透明度,我们鼓励大家遵循在 Kusama 上实施的流程。
一般来说,治理提案流程包括 4 个步骤:
在 Polkassembly 上发布提案,以供讨论和反馈;
在 Polkadot JS App 的民主版块上提交原像(Polkadot JS 应用程序);
将提案作为外部 motion 提交给理事会;
在民主板块中由社区进行投票。
请注意,你的平行链必须在此提案生效之前向 Statemint 提出通道请求,才能使该提案成功生效。
在 Polkassembly 上发布提案以供讨论和反馈
Polkassembly 的讨论版块是分享你提案背后的理由的最佳场所:确保在发布你的提案之前使用提案者地址(如果可能的话)登录,如果有条件的话,还应确保该地址具有链上身份。
你的提案应包含以下部分,以供社区审查并最终投票:
1. 关于提案目标的请求(打开通往 Statemint 的 HRMP 通道);
2. 该通道将支持你链上的哪些用例;
3. 提案的技术细节,包括提案参数和本次调用的技术细节(在 Kusama 上,大多数提案被设计为一个 batchAll 调用):
从 Polkadot 国库强制转账一笔钱到 Statemint 作为押金,以接受并打开你的链的 HRMP 通道;
向 Statemint 发送 XCM 消息以执行具有超级用户 (root) 权限的交易。
请注意,如果治理决定将 Polkadot 上的 HRMP 通道存款减少到 0 DOT,则不再需要第一笔交易(届时此指南将相应更新)。
4. 发到 Statemint 的 XCM 消息,可以在网络上解码;
5. 在 Polkadot JS Apps “Decode” 版块上验证的调用数据;
6. 用于外部 motion 提交的提案哈希。
以下是团队如何在 Kusama 上遵循此流程的示例:
在 Bifrost 和 Statemine 之间打开 HRMP 通道的提案:可以在此处找到该 motion:https://kusama.polkassembly.io/motion/418
在 Polkadot JS App 民主版块中提交原像
一旦社区提供了足够的反馈(我们希望这些提案是无争议的),请使用 “提交原像” 按钮在 Polkadot JS 应用程序的民主版块中的讨论帖中提交原像:
在弹出窗口中,在讨论帖中编写原像:确保提案哈希与帖子中的相同。
将提案作为外部 motion 提交给理事会
理事会成员需要协助你才能提交外部 motion:他们将使用提案哈希作为你的原像并将其提交给理事会投票。Polkassembly 上的 motion 帖子将会使用你在讨论帖中使用的相同上下文信息 。
一旦理事会批准了你的提案,这将移至外部队列 - 不久之后将在全民投票队列中由社区投票:确保与你的平行链社区讨论该提案并鼓励他们投票。你可以在 Polkadot Direction 频道中关注有关提交的所有公告。