除了平行链,你还可以使用平行线程加入波卡生态!
加入 PolkaWorld 社区,共建 Web 3.0!
平行线程(Parathread)是想要成为平行链的项目临时参与 Polkadot 共享安全的一种方式,不需要租用专用的平行链插槽。这是通过在多个平行线程中经济地竞争,来共享平行链插槽这种稀缺资源实现的。那些无法获得完整的平行链插槽,或者认为这样做在经济上不是很明智的链,仍然可以参与波卡的共享安全性,尽管会根据每个块收来取相关费用。同时,它还为平行链项目提供了一个优雅的退出,可以继续使用中继链,但不用需要一个专用的平行链插插槽。
起初
波卡中的 Parathread 的想法是 Gavin 在中国上海的一次 Meetup 中提出。这个概念的起源来自 80 年代末和 90 年代早期个人电脑有限内存资源的类似概念。由于计算机的物理内存有限,当应用程序需要更多内存时,计算机可以使用硬盘上的交换空间来创建虚拟内存。交换空间允许计算机内存的容量扩展,并允许更多的进程同时运行,而有些进程需要更长的时间才能完成。
平行链 vs 平行线程
从开发的角度来看,平行链和平行线程非常相似。我们可以想象,一个用 Substrate 开发的链在某个时间点可能会是这三个状态中的之一:1)作为桥,有自己安全性的独立链,2)平行链,或 3)平行线程。它可以在最后两种状态之间切换,从开发者的角度看,只需很少的开发量,因为他们更多是经济上的区别,而不是技术上的区别。
Parathread 连接到 Polkadot 有着与平行链完全一样的好处。也就是说,它能够通过 XCMP 向其他 para{chain,threads} 发送消息,并且它也是共享 Polkadot 的验证人节点池来获得安全性的。
平行链和平行线程之间的区别是经济上的。Parachains 必须通过 Polkadot 的常规方法注册,即治理议案或平行链插槽拍卖。Parathread 有一个固定的注册费,但实际上要比获得一个平行链插槽的成本低得多。类似于 DOT 在平行链插槽期间被锁定,然后返还给拍卖的获胜者,平行线程的押金也将在其期限结束后返还给使用平行线程的项目。
注册 Parathread 并不能保证将 Parathread 代码注册到 Polkadot 中继链。当一个平行线程通过产生一个新的块来继续进程时,必须支付一定的费用去参与每个块的拍卖,从而被包括在下一个中继链块的验证中。所有注册的平行线程都在这个拍卖中竞争它们的平行线程,从而被包括在中继链的区块中。
关于平行线程有两个有趣的观察。
第一,由于它们是按块竞争的,这与比特币或以太坊中的交易方式相似。类似的收费市场可能会发展起来,这意味着市场好的时候将推动参与平行线程的价格上涨,而市场低迷时则需要更低的费用。
第二,这种机制与 parachain 机制有明显不同,平行机制是只要你还在平行链插槽的使用期,你就可以被包含到中继链的区块中;而平行线程的注册不授予平行线程这样的权限。
平行线程如何被操作?
中继链上平行链插槽的一部分将被指定为平行线程池的一部分。换言之,一些平行链插槽将不附加平行链,而是被用作一个空间,在逐个区块中对平行线程拍卖的获胜者可以包含他们的候选区块到这个空间。
收集人将为平行线程候选区块提供一个 DOT 的出价。中继链块生产者能够从这些竞拍中选择要包括的平行线程块。显而易见,他们接受出价最高的区块候选人,这将给他们带来最大的利润。来自 parathread 出价的代币很可能会被分成 80-20,这意味着 80% 进入了 Polkadot 的 treasury 国库,20% 给到区块生产者。这也是同样适用于交易费用的划分,并且和 Polkadot 中的许多其他参数一样,可以通过治理机制进行更改。
有关 parathread 协议的精确描述,请参阅此处。https://hackmd.io/UcOOzoyDR9WJpQBZICtg3Q?both#Parathread-Protocol
平行线程的经济机制
对收集人来说有两种补偿来源:
假设一个 parathread 有自己的原生代币系统,那么它将从其原生代币的交易费中支付给收集人。如果 parathread 没有自己的代币,或者它的代币没有价值(例如,它只用于治理),那么它可以使用 DOT 来激励收集人。
平行线程协议的补贴。一个 parathread 可以造出新的代币,以便给收集人提供额外的激励。可能,要为 parathread 生成的原生代币的数量是时间的函数,在中继链中包含的 parathread 块之间经过的时间越长,parathread 愿意补贴的代币就越多,以便可以被包含到中继链。这种铸币过程的具体实施可能是通过平行线程原生代币的通胀,或者通过像国库这样的资金储备。
可以用平行线程的原生代币支付收集人。然而,中继链只使用 Polkadot 通用货币(DOT)进行交易。所以收集人必须使用 DOT 来提交一个相关的竞拍,从而来提交候选区块。这意味着,如果平行线程提供一种原生代币,则收集人需要了解该代币与 DOT 之间的汇率,以便在中继链上进行适当的 DOT 出价,并确保它们获利。
平行链插槽交换
对于持有平行链插槽的项目来说,可以用 parathread 交换这个 slot 插槽,这样 parathread “升级”为完整的平行链,平行链就变成了 parathread。链也可以不再是链,继续作为线程而不交换插槽。如果插槽空位,将在下一个拍卖期拍卖。
这为租赁期已经到期并且没有足够的使用率来证明续约的平行链提供了一个很好的退出,它们可以保持在中继链上的注册,只在需要的时候生成新的块。
平行线程有助于缓解平行链插槽的急剧停止,它可以允许平行链继续做一些有用的事情来生成块,即使租一个平行链插槽在经济上不再可行的情况下。
平行链下线总是按照以下顺序进行:Parachain -> Parathread -> Dormant thread(休眠线程)。这个过程不是自动的,因为一个线程需要一个存款,如果出于某种原因,该链中没有一个操作实体(没有 sudo 或民主成员来进行存款),那一个过期的 parachain 将直接跳转到休眠线程。
当休眠时,ParaId 和原始的创世,以及所有历史上最终确定的块都会留在中继链上,因此,如果休眠线程或一个链重建社区并为一个新的插槽或平行线程存款筹集资金,则它可以在中断的地方继续运行。
原文链接:https://wiki.polkadot.network/docs/en/learn-parathreads
翻译:PolkaWorld
欢迎学习 Substrate:
https://substrate.dev/
关注 Substrate 进展:
https://github.com/paritytech/substrate
关注 Polkadot 进展:
https://github.com/paritytech/polkadot
更多内容:
链合实验室(Patract Labs)宣布成立,提供波卡智能合约生态解决方案
扫码关注公众号,回复 “1” 加入波卡群
关注 PolkaWorld
发现 Web 3.0 时代新机遇
点个 “在看” 再走吧!