本文是并行链底层核心技术的路线图,其中的内容需要协议、API和代码路径来充分演示自给自足和安全的并行链。本文将不介绍parallel chain toolkit需要公开哪些API才能使用parallel chain功能——它只描述这些功能是如何实现的,以及它们为验证功能提供的底层API(如果有的话)。
类别
我们将使用以下类别来描述功能:
运行时:中继链的运行时代码,用于指定一致性临界状态,并更新所有节点必须维护或执行的状态。
网络:节点之间进行通信并通过网络传输信息的协议。
节点:链下的部分或所有节点必须保持或执行的状态或更新。它通常与网络组件交互并引用运行时状态。
子项目和功能:
本节包含不同的子项目以及构成这些子项目的函数。
基础设施/API
对等集管理
类别:网络
分配给并行链的验证器需要一种方法来发现并连接到排列器,以获得新的并行链块进行验证。
并提交给区块链验证程序进行发现。
渔民需要与核查人员和核查人员沟通,以获得可用数据并分发报告。
有些是长期连接,有些是长期的请求。
对等集管理
类别:网络
分配给并行链的验证器需要一种方法来发现并连接到收集器,以便获得新的并行链块进行验证。
收集器需要发现并连接到验证器才能提交并行链块。
钓鱼者需要与验证者和收藏者沟通,以获得可用数据并分发报告。
有些是长期连接,有些是长期的请求。
自定义libp2p子协议
Boca并行链涉及许多不同的网络协议。理想情况下,我们可以将每个任务生成为单独的未来任务,并根据需要通过通道与其他协议或节点代码进行通信。这需要在substrate和libp2p中进行更改。
分布
拍卖
类别:运行时
平行链的拍卖和注册。这个功能已经实现,并且遵循w3f文档中的parachain分配研究。
平行连锁拍卖
类别:运行时
平行线是即付即用的平行链。这包括一个链上机制来解决收藏家的拍卖,并确保他们产生一个区块。
并行线程的节点端部分的作用是让收集器在什么条件下实际进行投标和配置。
验证器分配
类别:运行时
为并行链分配验证器。验证器只在短时间内分配给并行链。可调参数包括分配给每个并行链的时间长度和网络感知验证器分配的提前期。
协议
见证周期
类别:网络
一种黑盒网络组件,它在任何给定链的验证器之间循环验证消息(候选、有效、无效),以创建可以包含块的仲裁。
可用性擦除代码
类别:节点/网络
对于每个被认为是并行链的潜在块,在块的POV和传出消息上执行擦除编码。为中继链块调用中继链上的块数,认为包含在n中,擦除码分为n个部分,其中任意一个F+1都可以恢复(F是允许的**故障节点数=~n/3)。第i个验证器存储第i个代码并将其提供给任何查询者。
POV区块收购
类别:网络
由网络仿冒验证程序或网络仿冒验证程序引用的黑盒验证。当获得“当前”POV块(在链的开头附近,或与当前正在构建的块相关)时,这应该很快。当获得“旧的”POV块时,它应该是可能的,并且通过从可用性擦除编码中恢复。
并行线程拍卖投票
类别:节点/网络
配置收集器在并行线程拍卖中投票的方式和时间。
收集周期
类别:节点/网络
收集器节点的主事件循环:
新继电器链滑车B
新并联链头pw.r.t.b的同步
建立一个新的P子块
提交给验证者
跨链消息传递
https://hackmd.io/iloqlteisp697mye4hbra?看法
https://github.com/paritytech/polkadot/issues/597
如何在并行链之间发送消息,这是并行链路线图中**的子项目。这涉及到传入消息的状态机排序、用于获取它们的协议以及用于持久化消息的节点逻辑。
它的设计基于在并行链之间由发送方和接收方组成的单向信道的概念。在每个中继链块中,每个并行链都有机会在其控制的每个信道上发送消息,该信道控制发送部分的一半。它还将尝试在它控制的每个接收通道的一半上按顺序处理消息:在块高度“B”发送的消息必须在以块高度“B+1”发送消息之前进行处理。在具有相同块高度的不同信道上发送的消息按照某种明确定义的顺序进行处理。
这意味着对于最近处理的消息,接收段的**高度差为1。接收段处理后的最小传输高度称为“水印”在水印之前或水印高度的所有通道上发送到此段的所有邮件都已处理。
结束候选接收格式
类别:运行时/节点
Candidereceipt是提交给运行时的parablock头的包装器。它包含对数据的加密承诺,这对于验证或解释parablock(包括见证数据和传出消息数据的散列)至关重要。
candidereceipt格式应该根据上面提到的xcmp终止-最重要的是,它应该被更改为保留位域和提交给每个开放通道状态根域的加密消息。
结束povblock格式
类别:运行时/节点
povblock或proof validity块包含验证parablock所需的所有数据。它将需要包含传入消息队列以及潜在的传出消息队列。
CST更新程序
类别:运行时
中继链块提供了基于candidereceipt的信道状态表(CST)的存储定义和更新逻辑。
CST准入证书的生成和检查
类别:节点
它是CST中中继链所有节点生成项目证明的工具,也是轻客户端或修剪节点检查项目证明的工具。
MQC存储和分发协议
类别:节点
每个通道的状态由消息队列链(MQC)描述。队列是一个散列链,其中的链接由“(m,B,H)”定义:最近发送的消息、先前发送消息的块高度和前一个链接的哈希值。
发送并行链的整个节点负责维护MQC的所有链路,直到并包括水印B小于接收并行链的链路。
para的完整节点将知道其通道的所有MQC头,因为它们是通过执行块生成的。这需要与积云小组合作(https://github.com/paritytech/cumulus)API上的协作。
我们需要一个网络,在这个网络中,并行链的收集器可以找到并检索来自所有通道的MQC的相关部分。
渠道注册商与经济学
类别:运行时
并行链通过存储存款来打开或关闭通道的运行时逻辑。并行线程可以打开的通道数量将受到限制。
运行时逻辑使用Para通过投放存款来打开和关闭通道。副线程可以打开的通道数是有限的。待关闭的频道应保持打开状态,直到接收器的水印达到关闭所需的块高。
钓鱼/砍杀
有效性/可用性报告处理程序
类别:运行时
在Polkadot中,恶意的并行链组可以强制执行无效或不可用的并行链块。渔夫的工作是监视这些块并向运行时报告。这与报告处理程序有关。
w3f关于可用性/有效性的研究提供了争议解决过程的总体观点:可用性和有效性——w3f研究。
悬而未决和需要采取的主要行动之一是在争端解决进程断定存在错误时发生的“回滚”当我们将并行链块标记为无效或不可用时,需要将所有并行链回滚到该状态之前的某个点。我们还需要回滚中继链的状态,因为消息可能已从并行链发送到中继链,现在需要回滚。最简单的方法是通过延迟up消息来避免这个问题,但是这将极大地影响并行链参与时隙拍卖、议会投票等的用户体验。假设我们无法避免这种情况,我们将不得不找到一种方法来回滚中继链的指定状态。
双表决斜杠处理程序
类别:运行时
在见证过程中,对于给定的中继链块,验证器只能提交一条“候选”消息。如果在并行链块上发布“候选”消息,则不能在并行链块上发布“有效”或“无效”投票,因为“候选”消息是隐式有效性投票。否则,在给定的平行链滑车上同时投票“有效”和“无效”是非法的。
运行时处理程序需要两个冲突的投票作为参数,并需要删除违反者。
可用性/可用性钓鱼
类别:节点
验证者也可以根据VRF的可用性和有效性选择w3f研究并采用该代码路径。验证人和仿冒者将选择并行链块进行重新验证。在这些步骤中:
尝试恢复POV块并返回到擦除代码。如果不可用,则发布报告。
尝试验证POV块。如果没有,报告就发布了。
双票捕鱼
类别:节点
在见证过程中观察到双重投票的节点应向链提交报告以触发斜杠。
阶段
路线图分为多个阶段,每个阶段代表与前一阶段相关的另一组交付或黑盒组件的迭代。
第0阶段:MVP
初始阶段-这是一个并行链,没有斜杠或跨链消息传递。基本上是关于注册和验证有效的POC。
基础设施/API:
自定义libp2p子协议
对等集管理
任务:
拍卖
并行线程拍卖
验证器分配
协议:
校对循环(黑匣子:八卦)
可用性擦除代码(黑匣子:八卦)
POV块采集(黑盒:八卦)
收集周期
跨链消息传递:
结束候选接收格式
第一阶段:捕鱼和割草
这一阶段标志着并行链安全技术的发展。一旦完成,并行链就是成熟加密经济学的安全聚合原语。这个阶段还包括xcmp的实现,但是它没有完全启用。
协议
可用性擦除代码(黑匣子:定向分布)
POV块采集(黑匣子:定向分配和采集)
钓鱼/砍杀
有效性/可用性报告处理程序
双表决斜杠处理程序
可用性/可用性钓鱼
双票捕鱼
跨链消息传递:
结束povblock格式。
阶段2:消息传递
此阶段标志着跨链消息传递的传递。
它几乎包括xcmp部分的其余部分。
文章标题:Polkadot并行链电路图的详细说明
文章链接:https://www.btchangqing.cn/106189.html
更新时间:2020年09月19日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。