平行线程的开发已经开始!了解它如何工作
加入 PolkaWorld 社区,共建 Web 3.0!
按需平行链(也被称为 Parathreads)的开发已经开始啦!已经有很多人在等待平行线程的上线,这篇文章将分享什么是平行线程?平行线程如何如何获取生产区块的权利?以及收集人的验证过程等。
按需平行链是一种更加动态的获取区块空间方式的首个变体。现有的平行链提供了一种非常静态的获取区块空间的方式,即赢得了一场竞拍,然后在很长的时间内,例如一年内,都可以使用有保证的区块空间。目前,平行链在整个时期每 12 秒就产出一个区块。这种定期产出区块的保障能力的确是一些应用/链所需要的,并且是使平行链优于智能合约的特点之一。
但是另一方面,从网络的角度看,这对于一些应用来说过于繁重,它们成为平行链会导致大量资源的浪费。从使用者的角度来看,赢得竞拍是比较高的门槛,这使得新的项目和想法难以加入网络。通过按需平行链,我们既降低了这个门槛,也以一种更加高效的方式向不太需要大量资源的应用开放了网络。
那么这是如何工作的呢?一个按需平行链不是每 12 秒就安排一次区块生成,而是当有需要时,一个收集人会订购一个 core 核心(一个区块生成机会),并向 Polkadot 的中继链发送一个特殊的交易(extrinsic),表示他们想要一个核心用于他们的 ParaId,并包含他们愿意支付的最高价格。
订购一个核心(Core)
中继链 runtime 将会计算当前核心的最佳价格,如果一个新进的订单的最高价格等于或更高并且账户的资金充足,那么就会按照当前的最佳价格进行收费,并且很快会为出块者安排出块权限。这个价格是由中继链根据当前需求来计算的。它基于跟费用的相同机制,以便慢慢地反应需求,以避免价格的剧烈波动。
Polkadot 联合创始人 Robert 针对这个问题进行了补充,他解释到,在 Parathreads 中的费用支付机制中,无论出价者愿意支付的最高价格是多少,所支付的费用都是相同的。当按需平行链的需求高时,核心的价格会以自动调整的方式缓慢上升。
这种情况中可能存在 "MEV" 问题,指矿工或验证者可以通过操纵交易的顺序或包含的交易来获得的额外收益。例如,验证者可能会选择延迟处理出价更高的订单,以便能收取或销毁更多的费用。但是 Polkadot 的 "mortal extrinsics" 限制了这种可能性。"Mortal extrinsics" 是有生命周期的交易,意味着这些交易不会永远等待被处理,一段时间后会被自动丢弃,因此限制了验证者的操作空间。
为了让平行线程在请求出块权限时能够使用已有的安全机制,它们发送的那个请求出块权限的交易(extrinsic)必须是已签名的。"已签名的外部交易"(signed extrinsic)是指,发送这个交易的账户使用自己的私钥对这个交易进行了签名。这样的设计是为了防止其他人冒充该账户发送交易,因为除了该账户的所有者,没有人能够生成与该账户的公钥匹配的签名。所以,当中继链收到一个已签名的交易时,它就可以确认这个交易确实是由它声称的发送者发送的。
此外,已签名的交易还可以包含一些额外的信息,如 nonce(用于防止重放攻击)和 tip(用于给出块者的小费)。中继链已经有一套处理这些信息的机制,因此,让需求驱动型平行链的出块请求使用已签名的交易可以使它们直接利用这些已有的机制,而不需要开发新的安全机制。
从使用者的角度来看,这意味着要支付的总价费用包括三部分:传统的交易费用(这是用来支付处理交易所需的计算资源的费用),一个给出块者的可选小费(这是用来鼓励出块者优先处理他们的交易的),以及上面提到的订购核心价格(即出块权力的价格)。
在收集人节点中集成订单机制
实际的区块创建过程对于验证节点(收集人)来说与静态平行链是完全一样的。收集人(Collators)是负责收集并创建区块的节点。他们会定期检查平行链的状态,特别是它们自己负责的平行链(通过 ParaId 标识)。如果他们发现自己的 ParaId 对应的平行链即将到达创建区块的时间,他们就会开始生成一个新的区块。生成区块后,他们需要产生一个证明(Proof of Validity,简称 PoV),这个证明包含了区块的内容以及证明该区块合法的信息。然后,他们会将这个 PoV 证明发送给被分配到的背书组(Backing Group)。背书组是一组负责检查并确认这个区块有效性的节点。
虽然在按需平行链上的区块生成过程跟静态平行链上的过程是一样的,但是在按需平行链上我们需要在收集人(Collators)中引入新的机制,让它们能够在有需要的时候发送请求区块生成机会(也就是"核心订单")。
关于如何设计这个新的机制,目前有几种可能的策略(https://github.com/paritytech/cumulus/issues/2154)。如果你对这个问题感兴趣,或者你对 Cumulus 有一定的了解,深入研究这个问题将是一个很好的方式来参与到这个项目中,并帮助按需平行链更快地实现。
Cumulus 是一个用于在 Polkadot 和 Kusama 网络上构建平行链的开发框架。它是由 Parity Technologies 开发的,Parity 是 Polkadot 的主要开发者。Cumulus 降低了开发者构建平行链(Parachains)的复杂性。当你使用 Cumulus 构建平行链时,你可以利用已经在 Cumulus 中实现的一些共享逻辑和功能,比如与中继链(Relay Chain)的通信,以及区块的验证和最终性的处理等。这样可以使开发者专注于他们的业务逻辑,而不需要处理这些底层的问题。
总的来说,Cumulus 的目标是让构建平行链变得尽可能简单,以此来推动 Polkadot 和 Kusama 生态的发展。
另一个重要提醒是,如果收集人使用的是热钱包(网络连接的钱包)进行操作,可能存在安全风险。因此,我们将会提供一个专门的代理账户类型,这种账户只有在按需平行链上的核心投标的权限,从而降低安全风险。
集成异步支持和更多详情
对于更感兴趣的技术受众,按需平行链的全部开发在此处进行跟踪。https://github.com/orgs/paritytech/projects/67/views/1
子任务可以在此处找到(https://github.com/paritytech/polkadot/issues/5492),特别是对于即将出现的异步支持的集成,一些思考在这个评论中(https://github.com/paritytech/polkadot/issues/5492#issuecomment-1362941241)进行了总结。
简单来说,现有的核心抽象将不再是 0 维,而将是 1 维。这可能意味着这个系统或模式的工作方式将变得更加灵活或者复杂,将允许这些"核心"或其他部分的系统预先知道或预测到在未来会发生的任务或事件。这可能是一种优化或改进,使得整个系统能更好地预测和处理未来的活动。
在 Polkadot 中,"核心" 是负责处理并验证平行链(parachains)上的交易和其他活动的特殊节点,“核心抽象”通常指的是一种设计方式,其中一些复杂的内部机制或实现细节被隐藏在一个简单的接口或概念下。
但现在的细节已经足够了。我们对按需平行链将带来的新的可能性非常兴奋,迫不及待地看到它们上线!
内容参考链接:https://forum.polkadot.network/t/on-demand-parachains/2208/3
编译:PolkaWorld
直播预告:
6 月 21 日(本周三)晚 7 点, PolkaWorld 联合发起人晓杰将在「波卡世界」直播间与大家分享最新的 Polkadot 提案/公投,这也将是 Polkadot 转为 OpenGov 之后的第一次提案直播。点击下方按钮立即预约直播。
PolkaWorld Telegram 群:
t.me/polkaworld
PolkaWorld Youtube 频道:
https://www.youtube.com/c/PolkaWorld
PolkaWorld Twitter:
@polkaworld_org
更多内容
Polkadot 在「开发者活跃度」等这 4 个方面已经做到了业内领先!
波卡上线革命性治理系统 OpenGov,DOT 持有者们如何参与公投投票?
专访 Prime:泰酷辣!这个全链 DeFi 竟然无需跨链桥
关注 PolkaWorld
发现 Web 3.0 时代新机遇
点个 “在看” 再走吧!