美文网首页
波卡运行原理系列(三)组件字典

波卡运行原理系列(三)组件字典

作者: 区块链生存指南 | 来源:发表于2020-03-03 18:30 被阅读0次

    Substrate

    • Parity 开发的区块链基础框架
    • 开发者可以定制一个区块链的各个模块,自定义开发主要关注 State Machine,Substrate 中称之为 Runtime
    • Polkadot 的 Relay Chain 和 Parachain 都是基于 Substrate 框架开发的

    Full node 全节点

    • 同步和保存所有区块数据

    Light node 轻节点

    • 仅同步和保存区块头数据

    Relay Chain 中继链

    • 类似 ETH 2.0 的信标链或 Cosmos 的 Hub
    • 块中记录的是各个 Parachain 的 Candidate Receipts 和 Erasure Coding
    • 基于 NPoS 共识
    • 为 Parachain 提供安全保证
    • 提供 Parachain 之间消息通信的可靠性凭证

    Parachain 平行链

    • 也叫应用链
    • 数量 10-100
    • 基于 Substrate 开发的 runtime
    • 需要通过拍卖的方式获得插槽 Slot 才能成为 Parachain,如果未获得插槽则可以用 Parathread 方式的方式接入 Relay Chain
    • 需要组建 Collator

    Collator 收集人

    • Parachain 的 Full node、Relay Chain 的 Light node
    • 哪个 Collator 生成块,由 Parachain 自定义,可以通过类似 POS 或者 POW 的机制来选定(但不提供验证和共识),可以设置激励机制
    • 生成 Candidate Receipts 和 Erasure Coding 发给 Validator
    • 细分的话存在两种 Collator: Polkadot Collator & Cumulus Collator
    image

    Validator 验证人

    • 数量 250-1000,由 DOT 持有者投票选出
    • 每个 Parachain 会被随机分配 10 个 Validator
    • 与 Collator 交互验证 Parachain 新的区块数据
    • 需要5-7个 Validator 来验证和签署 Parachain 中新产生的区块
    • 生成 Candidate Receipts 和 Erasure Coding,写入 Relay Chain 交易队列
    • BABE 出块 Validator 选择 Candidate Receipts 构建 Relay Chain 区块
    • 在 GRANDPA 中对区块进行投票,超过三分之二则最终确认
    image

    Fishermen 钓鱼人

    • Fishermen 需要抵押 DOT(Collator不需要抵押 DOT)
    • Fishermen 是 Parachain 的 Full node
    • 出块(BABE)与最终确定(GRANDPA)之间,Fishermen 进行有效性检查,防止 Validator 合谋
    image

    Bridge 桥

    • 一种特殊的 Parachain,通过运行一个 Sovereign Chain(BTC、ETH等非 substrate 构建)的轻节点,完成资产的跨链
    • 再通过 XCMP 将资产传递到其它 Parachain
    • Sovereign Chain 和 Parachain 的一个简单的区分方法是 Sovereign Chain 自己提供共识,Parachain 由 Relay Chain 提供共识(验证 Parachain 数据需要跑一个 Relay Chain 轻节点)

    Nominator 提名人/投票人

    • 一般指 DOT 的投票人(Parachain 可以有自己的Staking机制,所以也可能有 Nominator)
    • 最多投票给 16 个 Validator, 系统会自动分配票数,使得票数尽量分散
    • Stake 解委托:Kusama 是7天
    • 参与治理投票:自定义 Conviction,不同锁定期产生不同的投票权重
    image

    Merkle 树

    • 特性:如果某些值发生更改,则可以通过查看新的值和树中受其影响的路径来验证更改
    • 基于此属性,Validator 可以验证状态转换,而无需访问整个状态

    Parachain Block

    Parachain 区块,由 Collator 生成,Validator 验证后将 Parachain Block 的 Candidate Receipts 和 Erasure Coding 写入 Relay Chain 交易队列

    Relay Chain Block

    Relay Chain 区块,由 Validator 生成

    Candidate Receipt 候选回执

    Validator 通过签名为 Parachain 区块构造 Candidate Receipt:

    • Parachain ID
    • Collator ID 和签名
    • 父块 Candidate Receipts 的哈希值
    • 区块 Erasure Coding 的 Merkle 根
    • 跨链消息的 Merkle 根
    • 区块的哈希散列
    • 执行区块之前的 Parachain 的状态根
    • 执行区块之后的 Parachain 的状态根

    Erasure Coding 纠删码

    • 解决数据无法获得的问题:Validator 和 Fishermen 谁犯错
    • 三分之一的 Validator 获得了区块编码了的数据片段时,即可重新构建出这个 Parachain 的区块
    • Grandpa 共识机制是一种拜占庭容错的共识算法,也就是说仅在大于三分之二的 Validator 投票验证通过了之后,才完成区块的最终确认,所以可以获得三分之二的有 Erasure Coding 数据片段后,重构 Parachain 产出的区块并进行最终确认
    • Erasure Coding 也用于 Fishermen 来报告区块是否无效时的复核,额外的 Validator 会需要取得这个区块,或者通过数据片段来重组出这个区块并再次检查

    Parathread

    • 本质是将部分 Parachain 插槽以类似出租、非独占的方式开放,使得更多基于 Substrate 的链可以接入
    • Parathread 需要激励特定的 Collator 来帮助自己打包区块并提交给 Validator,这里的 Collator 如何组建目前还未看到明确的资料
    • Parathread 通过支付 DOT + TIP 的方式让 Validator 将自己的 Candidate Receipts 写入 Relay Chain
    • Parathread 和 Parachain 的安全性相同,但出块时间稳定性上会比 Parachain 差

    Cumulus

    • 本质是一个 Substrate Pallot
    • 为 Substrate 的 Runtime 链提供 Polkadot 共识的工具库
    • 同步 Relay Chain 到 Parachain,从而确定目前已敲定的 Parachain 区块
    • 运行 Collator node 并生成 Parachain 区块数据
    • 发送和接收跨链消息 XCMP 的工具

    XCMP

    • Parachain 之间通信的机制
    • 本质上 Parachain 之间直接建立网络连接传递消息
    • 消息的安全性通过 Relay Chain 验证

    SPREE(也叫 Trust Wormhole)

    • Relay Chain 解决了 Parachain 被51%攻击的情况,SPREE 解决 Parachain A 由治理的修改对 Parachain B 造成某种意义上攻击的情况。
    • 解决方法是把约定的执行操作的代码wasm放到 Relay Chain 上,单个 Parachain 不能通过自己的治理机制修改该操作。

    Hermit Relay Chain 隐继链

    • 将 DOT 的转让、抵押、管理等事务放到一条单独的 Parachain 中,以接入的方式加到 Relay Chain
    • 这样做的好处是 Relay Chain 中将仅包含 Candidate Receipts

    2nd Layer Relay Chain 二级中继链

    • Parachain 本身变成一个二级的 Relay Chain
    • 安全性更低、出块敲定速度更慢、跨链消息传递速度更长
    • 接入成本更低,满足安全性要求更低的 Parachain 需求
    • 可以继续往下级联实现无限的拓展性

    其它

    • Collator、Validator、Fishermen 只是经济角度定义的角色,实际运行中一个节点可以扮演了多个不同的角色

    原文:

    http://blog.boka.network/2020/02/29/bo-ka-yun-xing-yuan-li-xi-lie-san-zu-jian-zi-dian/

    相关文章

      网友评论

          本文标题:波卡运行原理系列(三)组件字典

          本文链接:https://www.haomeiwen.com/subject/rjrklhtx.html