本文详细介绍了如何通过Coretime进行平行链租赁交易。
以下是利用交易(Swap)功能在不同的paraID之间更换租赁的指南。这一功能允许平行链团队更换现有的租赁。
Coretime的交易操作需要两个链之间通过具有Root权限的源链发送[swap]指令。根据平行链是否被锁定,这可以是中继链上平行链的管理账户(如果平行链未被锁定),或者是平行链上现有的治理系统(可以是sudo权限),如果平行链已被锁定。
为了检查平行链是否被锁定,团队需要在中继链上使用相应的paraID查询[registrar.paras]。需要注意的是,自RFC#14(详情请参见:
https://github.com/polkadot-fellows/RFCs/pull/14)以来,如果一条平行链从未生成区块,则默认情况下它是处于未锁定状态。
要从平行链发起交易,需要从平行链向中继链发送一条XCM消息。这个XCM消息必须是一个发送指令,其中包含需要在中继链上执行的[registrar.swap]外部调用。
下面是一个针对Composable Finance的十六进制编码调用示例,假设团队仍在使用sudo权限操作。
0x0200290003010003140004000000000700e876481713000000000700e87648170006000700e40b540282380100284603e3070000320d0000140d01000001008d1f(详情请参见:
关于权重(大小和时间),我们使用的是一个估算值,通常大于Polkadot Relay Runtime API返回的值。
要检查确切的权重,你可以导航到Polkadot JS UI>Developer>Runtime Calls,然后选择[transactionPaymentCallInfo]和[queryCallInfo],包含在XCM消息的[send]指令中的外部调用:
0x4603e3070000320d0000(详情请参见:
如果平行链未被锁定,则平行链的管理者必须直接在中继链上发送外部调用。
假设paraID3378想要与Composable Finance进行交易,那么来自其管理账户13B8Tdhi4EuruwzVt3gdcTopXpqbUzmncutiQKKNbd8cpU91需要发送的外部调用是:
0x4603320d0000e3070000(详情请参见:
我们需要确保平行链拥有有效的核心(core)来执行交易指令。
这可以通过从coretime系统链批量获取核心,或利用中继链上的按需功能来实现。假设团队已经有一个正在运行的平行链(具有有效核心)和一个停滞的平行链,以下说明解释了如何为停滞的平行链如何使用[onDemand]获取核心。
此功能存在于中继链上,允许用户请求对其平行链进行1个区块的验证。为了按需下单,任何账户必须调用onDemand.placeOrderAllowDeath外部调用。
此外部调用需要两个参数:
金额:用户愿意为平行链区块通过核心验证所支付的金额。系统允许的最小金额为250,000,000planckDOT(即0.025DOT),实际金额是动态的,取决于排队的按需区块生产请求。
paraID:这指的是按需平行链的paraID,其区块必须由核心进行验证。
如果你的团队拥有两个平行链,一个拥有新的paraID,另一个没有租赁但包含链的历史记录的旧paraID,以下是执行交易这些租赁的步骤。
假设条件:
步骤:
https://wiki.polkadot.network/docs/learn-guides-coretime-swap#initiate-swap-from-the-parachain
租赁的交易会立即生效,但Coretime链会在每个新的coretime循环中将这些租赁的变化传达给中继链。因此,变化将在下一个coretime循环中生效。
有关新coretime循环的时间,可以查看coretime销售页面。(详情请参见:
https://coretime-polkadot.subscan.io/coretime_dashboard)
原文出自Polkadot Wiki,详情可查看:
https://wiki.polkadot.network/docs/learn-guides-coretime-swap