Zilliqa进度更新第21期 - Zilliqa  --  Official Blog

Dec 06, 2018zilliqa

上周,我们在推特和官方电报群和大家分享了项目和主网上线的最新进展。最终,我们将主网上线日期确定在2019年1月底,距离Zilliqa代币发行刚好一年整。

Zilliqa主网将是一个大规模的分布式网络,这意味着它复杂非常,其工程难度要远超比特币和以太坊等基于中本聪协议的项目。作为科学家和工程师,我们一直希望为主网实现尽可能多的新功能,并尽全力进行彻底的测试和校准。经过深思熟虑,我们将主网上线日期定在这个时间,并认为这一时间上线不会牺牲主网的去中心化特性、稳定性和安全性。

Zilliqa主网发布的首要考虑因素是安全性。正如几周前我们在官方电报群社区中所讨论的那样,我们必须要确保在主网启动初始阶段、哈希算力相对较低期间,网络免受攻击。这就是为什么Zilliqa在主网上线后,首先会渡过一个引导阶段(bootstrap phase),来确保网络的安全性。在引导期,矿工挖矿可正常获得奖励,但网络并不处理交易。当我们认为哈希算力已足够、生产的区块数满足一定值之后,孵化引导期将自动结束。

挖矿将是Zilliqa网络的重要组成方面。我们将在11月底分享有关Zilliqa挖矿的更多细节和分步骤说明,届时我们还将发布3.0版测试网,让大家体验与主网上线后基本一致的公开挖矿。

对于那些熟知我们测试网以及新加坡美食的朋友们,您能猜出3.0版Zilliqa测试网的代号吗?

如您有更多关于主网及其他方面的问题,欢迎参加于11月15日下午3点在我们的官方电报群举办的自由问答AMA交流活动,与心书、Amrit和Yiling一起互动!活动详情和问题提交可查阅网址: https://www.reddit.com/r/zilliqa/comments/9swvn6/ask_us_anything_zilliqa_ama_15th_nov_2018/

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

一方面,我们的技术团队在积极推进主网上线;另一方面,团队其他成员在亚洲各地出席活动,努力推动区块链教育并吸引更多开发人员一起发展Zilliqa生态体系。我们很高兴地与大家分享,新加坡交易所CoinHako已经支持ZIL/MYR、ZIL/IDR以及最重要的我们当地的ZIL/SGD交易对。

En Hui和Yiling出席了在香港举办的数字媒体亚洲活动,帮助推动区域链技术教育的普及,还向诸位优秀的记者和媒体机构介绍了区块链生态系统的整体情况。

我们团队的Edison(区块链应用程序开发人员)和Sophia(中国商业开发)赴北京在清华大学介绍了公链扩容与区块链在游戏中的应用。

我们还于11月10日在Gitter频道上(地址https://gitter.im/Zilliqa/ecogrant)与多位"Zilliqa生态资助金"获奖者共同举办了以开发钱包为主题的对话会活动。这次对话富有成效,激发了多个合作创意,其中包括Zilliqa增强提案(Zilliqa Enhancement Proposal,缩写SEP)和在Github组织OpenZesame(https://github.com/OpenZesame)下整合Zilliqa社区开发项目等。我们将继续举办这个对话活动,频率是两周一次,从而让我们的社区开发者更好地参与Zilliqa生态系统建设。敬请大家期待未来更多精彩的对话活动

11月对我们来说将是一个相对更加平静的月份,因为我们把重点放在了关键技术和主网合作伙伴关系的开发上,目前已确认的活动有:

http://sgcsc.sg/Blockchain-and-Cybersecurity-Workshop-2018/

点此链接注册,可免费参加于11月13日举办的Zilliqa安全智能合约研讨会:https://www.eventbrite.sg/e/zilliqa-workshop-on-secure-smart-contracts-tickets-51866230291

2、11月25日17:00,Gitter频道线上

第二次"Zilliqa生态资助金"获奖者对话会

网址:Https://gitter.im/Zilliqa/ecogrant

从前文我们分享的路线图中可以看出,技术团队当前主要专注于测试,包括单元测试编码和运行系统级测试。同时,我们还对现有的三个功能进行了增强,并实现了其中一个新功能的首个版本。

增强视图更改机制

如果DS委员会层面的一轮共识由于DS领导者没有响应而停止了相当长时间,则DS备份节点会触发视图更改以恢复停滞的共识。此前版本中,视图更改算法始终选择第一个相邻节点作为新的候选DS领导者,但实际上这一算法意味着此行为是可预测的,从而有被恶意节点利用的潜在威胁。

为了解决这个问题,我们现在将候选DS领导者这一过程进行随机化。此外,由于视图更改机制仅在一段时间后才被激活,因此存在DS备份落后于其他节点的可能性,所以在进入视图变化之前需要添加预检查。在预检查期间,DS备份节点向查找节点查询最新的可用DS块和终块。如果查询到的块信息表明DS备份确实落后于网络的其余部分,则DS备份会跳过执行视图更改,而是开始重新加入过程。最后,由于视图变化可能发生在各种复杂的场景中,我们对单元测试用例进行了改进,以感应多种共识失速情况。

目录服务微块(DS MB)和终块(FB)共识合并

在之前版本中,DS委员会从每个分片收到提交的微块后,会发生两轮共识协议。第一轮,委员会就其自己的微块(即DS MB)达成共识,然后在掌握所有微块的基础上,就终块达成第二轮共识。我们认为这个两轮流程最终可以合并为一个,所以用了大概两周时间来实现这一想法。合并的明显好处是减少了每个交易周期的总执行时间,此外,在整个过程中我们也减少了终块的存储需求。

增强升级机制

此前,我们升级机制的工作原理是,让节点在目标DS周期中自动下载、解压并安装我们最新发布的GitHub软件包。从初始版本开始,我们在发布包生成中慢慢添加了许多文件,包括配置常量和DS节点的初始列表。此外,我们的升级机制需要一个单独的daemon程序在升级后重新启动节点,截至目前,该程序专门针对我们基于Kubernetes的内部测试环境而设计。对于实际部署,我们现在已经创建了daemon程序的脚本版本,以及一个示例脚本来指示用户执行它。

节点恢复

节点恢复是我们在过去几周内完成的重要功能之一。如果节点因任何原因(如完成升级)而终止然后重新启动,它将读取存储在机器数据库中的持久数据(如DS委员会组成、分片结构、DS块、终块等数据)以恢复其最后的已知状态并开始与网络的其余部分重新同步。整个恢复过程仅依赖于节点自己的数据库,而不需查询其他节点,从而能够防止恶意节点反复重新自我启动而浪费网络流量。一旦所有数据被读出,节点就开始执行类似于前面针对视图改变机制描述的预检查。该节点向查找节点查询最新的可用DS块和终块信息,并在发现它落后于网络其余部分时开始重新加入过程。

Scilla解释器

工作继续围绕现金流分析原型展开。我们现在支持多态性和除了列表、maps在内的所有内置ADT。另外,虽然目前不支持库函数,但已支持内置函数。现金流量分析器的目的是,为每个字段确定该字段是否在合约中以某种方式用于表示货币。

同时,我们也开始研究另一种资源分析器的工具。

请注意,执行智能合约需要向矿工支付预付gas费。根据正在执行的转换和转换的输入,执行它所消耗的gas费可以变化。Scilla的资源分析是静态分析(这意味着实际上没有运行转换,但只分析源代码),它提供了对特定转换可能消耗的gas费的估计,作为输入的参数。

举一个简化的例子,分析可以表明处理n个元素列表的成本是。我们已经完成了分析器的设计并开始实施它。敬请关注下一次更新来了解更多信息!

开发工具

正如此前承诺的那样,我们最终发布了Zilliqa JavaScript库的v0.2.0以及文档。它们可以通过npm / yarn安装,如下所示:

我们建议您使用next标签(如),这样您将始终安装通常每天发布的最新版本(包含所有修复程序)。

请注意,此版本不适用于当前的公开测试网。希望测试新版本的开发人员应使用和。

与往常一样,请随时在我们的Gitter 和 Slack频道向我们反馈任何意见和错误报告!

Zilliqa新闻报道

TechRepublic上刊登的对Amrit和Ilya的采访,分别介绍了Zilliqa和智能合约语言Scilla:

https://www.techrepublic.com/article/how-scilla-could-speed-up-blockchain-transactions/

https://www.techrepublic.com/article/these-industries-will-benefit-most-from-optimized-blockchain-tech/

有关Zilliqa的3.0版公测网和主网消息的报道: https://www.cryptorecorder.com/2018/11/08/zilliqa-zil-testnet-end-of-november-upbit-btc-market-listing-in-24-hours-its-a-good-day-for-zil-investors/