近期,Arweave 在区块高度 1391330 时进行了硬分叉,将共识机制升级为了 2.7.2 版本。这个版本有哪些更新呢?这篇文章为你详细解读。
作者: Gerry Wang
原文首发于:Arweave Oasis 推特
近期,Arweave 在区块高度 1391330 时进行了硬分叉,将共识机制升级为了 2.7.2 版本。这个版本有哪些更新呢?这篇文章为你详细解读。
✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨
协作挖矿是一个可以让多个节点使用同一个挖矿地址进行挖矿,而不用担心会丢失区块奖励和被列入黑名单的挖矿模式。当矿工没有使用这种模式时,如果两个节点在同一个高度用同样的挖矿地址发布区块,将被视为违规,这不仅会让矿工损失挖矿收益,还会让该挖矿地址进入到黑名单中。所以这使得每个存储了 Weave 不同子集的多个节点能够获得更多双数据块解决(two-chunk solutions)方案的算力优势。
你可能对这里出现的双数据块解决方案(two-chunk solutions)有些疑惑,这是什么?
根据此前笔者在白皮书系列解读文章中解释的,每个 VDF(可以理解成每秒钟),矿工每秒每个分区最多有 2 次尝试找到成功挖矿解决方案的机会。这里我们姑且将每次尝试称为 Attempt。其中第一次 Attempt 是在矿工存储的分区中随机找到一个数据块进行 Hash;当矿工有了这个第一次 Attempt 的 Hash 之后,再用它在所有 Weave 分区中找到第二个随机数据块,并对其进行 Hash 来完成第二次 Attempt。如果矿工在第二次 Attempt 中找到了解决方案,那说明他们通过两个数据块(chunks)来完成挖矿,所以称其为 two-chunk solutions。
在 2.7.2 版本中,共识机制将第一次 Attempt 的难度大大增加,让矿工找到 one-chunk solution 变得非常困难,这样矿工就必须进行第二次 Attempt,大致比例为 100 个 two-chunk solutions 才能有一次 one-chunk solution 的机会。这样做的目的是激励矿工去尽可能多地存储 Weave 分区。而在新更新的协作挖矿模式下,就允许矿工在没有存所有 weave 的情况下,可以通过与其他矿工的合作来达到最大化的挖矿效率。
基础系统
在协作挖矿模式中有两个角色:
集群中的所有节点共享同一个挖矿地址。每个矿工为他们存储的分区产生 H1 哈希。有时,他们需要的 H2 哈希是落在他们没有存储的分区中。在这种情况下,他们可以在协作挖矿集群中找到存储了相应分区的矿工,并将 H1 发送给他们,让其计算出 H2。当一个有效的解决方案被找到后( one-chunk 或 two-chunk ),这个解决方案会被发送到出口节点(Exit node)。由于出口节点是协作挖矿集群中唯一没有被 Slash 风险,并且可以发布区块的节点。出口节点也是唯一存储了这个挖矿地址私钥的节点(因此只有出口节点可以对区块进行签名)。
协调挖矿集群中的每个节点都可以像平常一样与网络上的任何其他节点进行对等连接。
单矿工 One-Chunk 流程
Note:Miner1 存储了足够多的分区,让其可以同时获得 H1 与 H2。
协作 Two-Chunk 的流程
配置
还有两个额外的参数可用于调整性能:
在早期的测试中,200 到 300 可能是许多挖矿设置中一个很好的折衷方案。但对于特定的挖矿集群配置与硬件中,最佳值可能会有很大的变化。
目前,Arweave 节点对矿池挖矿有内置的支持。
新的与矿池挖矿有关的参数:
新版本实施了几项优化和错误修复,以使更多的矿工能够实现最大哈希率。
更新摘要:
更新后的挖矿性能报告:
其中:
2.7.2 硬分叉在区块 1391330 进行,其激活以下协议变更:
更多细节可以参考相关文档: https://github.com/ArweaveTeam/arweave/releases/tag/N.2.7.2
关于 PermaDAO:Website | Twitter | Telegram | Discord| Medium | Youtube
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!