Zilliqa 技术更新10/8 — — 通向5.1.0 版之路

Aparna Narayanan
Zilliqa — Official Blog
4 min readNov 1, 2019

大家好,

我们即将完成 Zilliqa 5.1.0 版,它为我们的核心协议带来了另一套实质性的改进和 bug修复。我们将很快提供该版本更完整的描述。与此同时,我们先在这里简要介绍其中的一些改进和修复,以及我们一直在进行的新 Scilla 更新:

核心技术

首先,知道我们正在修改分片分配算法,以最小化未分片节点的数量,矿工们听到这个消息一定会很高兴。现有的算法需要由完整的 600 个节点分片组成,然后由剩余的节点(至少 500 个节点)组成一个较小的分片。如果剩余的节点无法满足分片的最低 500 个节点要求(例如,如果只剩下 499 个节点),则较小分片无法创建。5.1.0 版中的替代算法将转而采用新的分片配置,以使损耗量 — — 即非分片节点 — — 达到最小。

另一方面,我们还更改了目录服务 (DS) 委员会在未形成分片的情况下的行为。目前,这会导致 DS 委员会 — — 实际上是整个网络 — — 停止前进。而通过允许委员会继续使用零分片,新节点可以在网络进入下一个工作验证阶段后继续尝试重新加入网络。

最后,当前版本无法在一个或多个视图发生更改时存储 DS leader。这就导致了网络恢复过程较慢,因为查找节点必须从最近期的 DS leader 错误视图开始。查找节点通过从 DS leader 接收到的信号,负责宣布下一个工作证明阶段开始。由于它们对 DS leader 的视图是错误的,在网络恢复操作后的第一个 DS 纪元,除了来自现有分片节点的工作证明提交外,最后没有新的工作证明提交。

Scilla 更新

在过去的两周里,我们一直在致力于 Scilla-to-Coq 的开发以及将 Scilla 重构为一个库。与此同时,我们在不断添加基本的原语来支持 zkSNARKS。以下为更多细节:

对 zkSNARKS 的支持:我们一直致力于向 Scilla 添加隐私特性,特别是对 zkSNARKs 的支持。为此,我们添加了所需的加密原语,如下所示:

1. 支持配对友好曲线,即 Barreto-Naehrig 曲线`alt_bn128`。

2. 支持配对操作。

大部分实现已经完成,我们正在解决一些特定于平台的构建问题。

作为库的 Scilla:我们一直致力于作为库的 Scilla 项目。由于我们打算将它用于涉及 Coq 定理验证器、SMT解决程序、静态分析和测试框架的多个项目,所以我们正在设计一个基于 scilla 的包,它具有定义良好的接口,我们将在接口上发布诸如 opam 包管理器等中心软件库。这是一个正在进行的工作,我们正在重构公共接口,以确保我们可构建一个稳健和可靠的包。到目前为止,我们已经将一些单片 Scilla 代码分解到一个实用程序库中,并为之前完全公开的 OCaml 模块添加了受限制的接口文件。

Scilla-to-Coq 编译器:之前的更新中我们提到编译器现在可以翻译 Scilla 类型和表达式的子集:我们现在还可以编译 ListUtil 和 BoolUtil 标准 Scilla 库的大多数函数。我们还探索了在 OCaml API 或 MetaCoq API 级别将 Scilla 与 Coq 定理验证程序集成的可能性。

Scilla 教学材料:为了准备即将在英国伦敦举行的Scilla研讨会,我们正在建立一个关于Scilla的教学材料库,包括幻灯片和练习等。

关于 Bug 修复、重构和其他的概述:

  • 改进了 Scilla 文档中的字符串内建描述
  • SocialPay 合约重构
  • ZRC
  • 修复了一个构建问题

如您想要了解 Zilliqa 的更多信息或与我们讨论项目技术,请随时通过以下官方渠道与我们联系:

--

--