Zilliqa进度更新第17期

10 个月前 · 原创文章

2018年9月17日

Yiling Ding 发布于Zilliqa博客,Rita译

随着Zilliqa网络功能的不断完善和技术开发的平稳推进,越来越多的公司和项目联系我们,希望在今年年底或明年初项目主网上线时,能更好地利用这一平台。Zilliqa网络将给智能合约应用程序提供以下特性:

在可扩展的系统上运行,每秒处理大量交易且网络不会拥塞

全新的安全智能合约语言Scilla让合约和应用更有安全保证

交易费用低

保持去中心化

我们认为,去中心化是区块链的一项基本属性,它将消除单点故障的影响并为区块链许多固有优势保留所必需的分布式架构。我们工作的重点之一就是尽可能地让Zilliqa去中心化。虽然去中心化的系统设计起来要困难得多,但我们正在不断取得积极稳健的进展。

为了进一步便利开发人员使用智能合约语言Scilla,我们还做了多项重大改进,包括对测试环境Kaya RPC的支持扩展到Windows用户以及推出新的基于浏览器的集成开发环境Savant(地址:https://savant-ide.zilliqa.com/)。

质子计划 — — 我们与传立媒体Mindshare和其他领头公司的合作计划

大约一个半星期前,我们公布了与传立媒体Mindshare(官网:https://www.mindshareworld.com/)的最新合作进展。传立媒体是全球顶尖的媒体和营销服务公司,在116个国家和地区中聘有超过7000名员工,全球年收入达345亿美元。客户包括耐克、联合利华、百事可乐、IBM、汉莎航空、劳力士等。“质子计划”旨在为数字广告行业搭建切实可用的应用程序,从多个方面探讨Zilliqa能如何最好地解决程序化广告的一些挑战。

程序化广告这个专业术语一般用来描述数字广告基于计算机的自动购买、销售、放置和优化。2017年,仅在美国一个国家,程序化广告的支出额就约为325亿美元(参考新闻:https://www.statista.com/topics/2498/programmatic-advertising/)。

除了Zilliqa和传立媒体,质子计划还由以下企业共同发起:

●Mediamath:是一家的领先的数字媒体交易资讯公司,总部位于纽约,每天提供超过2500亿次广告展示(超过全球前十家证券交易所每日交易量之和)。 Mediamath为全球4000多个客户提供服务。

●Rubicon Project:创立于2007年,总部位于加州洛杉矶,是全球最大的广告交易所之一,在纽约证券交易所已公开上市(交易代码:RUBI)。Rubicon Project为各网站和应用提供专业知识和工具,使售卖广告(位)更加便捷、安全,从而帮助他们蓬勃发展。众多全球领先的机构和品牌依靠Rubicon Project的技术来执行每月超过数十亿次的广告交易。

●Integral Ad Science(IAS):国际化的软件公司,总部设于纽约,负责打造验证、优化、分析的工具解决方案,在广告品牌能见度、品牌安全和广告欺诈领域扮演领导者的角色。

●Underscore CLT:为营销服务商及其合作伙伴开发加密账本技术,驱动真正的商业应用及解决方案向前发展。

有关质子计划的更多信息,请参阅我们官方博客此前发布的公告

(链接:https://blog.zilliqa.com/%E8%B4%A8%E5%AD%90%E8%AE%A1%E5%88%92-%E4%B8%8E%E4%BC%A0%E7%AB%8B%E5%AA%92%E4%BD%93mindshare%E5%90%88%E4%BD%9C%E6%9C%80%E6%96%B0%E8%BF%9B%E5%B1%95-8e5d12bde4f3

Zilliqa生态构建资助金进展

我们很高兴地看到,“Zilliqa生态构建资助金”首批参与项目都已取得了积极进展。其中,我们的三个Web扩展钱包项目之一,Appberry开发的Chrome扩展(地址:https://github.com/appbery/Zilliqa-Chrome-Wallet),已经可以在Scilla测试网上发送Zil。另外两个钱包的开发很快就能提供最简版可用的产品。

近期,我们还在推特上发文介绍了Alexander,他正在积极搭建iOS钱包(地址:https://github.com/OpenZesame/Zilliqa-Wallet-iOS)的基础设施,与此同时也正在为iOS的开发人员创建一个Swift SDK(地址:https://github.com/OpenZesame/Zilliqa-Swift-SDK)。

(注意:这些正在开发的钱包在给公众开放使用之前,将首先通过我们团队内部的和外部审计员的层层审核。)

此外,我们还与工具和库的开发者密切合作开发优质产品。 Laksa(地址:https://github.com/FireStack-Lab/Laksa)将负责web3.js的实现。

我们诚挚邀请优秀的开发人员和团队来申请我们的Zilliqa生态构建资助金(链接:https://blog.zilliqa.com/zilliqa%E7%94%9F%E6%80%81%E6%9E%84%E5%BB%BA%E8%B5%84%E5%8A%A9%E8%AE%A1%E5%88%92-c2ae1745e916)!我们还在积极寻找游戏以及去中心化交易所等金融应用程序的开发团队。如果您有想法或希望探索如何在Zilliqa上实现您的想法,请随时在Gitter上与我们联系:

https://gitter.im/Zilliqa/

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

电报群: https://t.me/zilliqachat

Slack: https://invite.zilliqa.com

推特: https://twitter.com/zilliqa

Reddit: https://www.reddit.com/r/zilliqa/

Github:https://github.com/Zilliqa/zilliqa

Gitter:https://gitter.im/Zilliqa/ecogrant(开发相关专用频道,包括“生态构建资助计划”)

社区动态

过去两周,我们在亚洲和欧洲举办了多场活动。

已举办的活动

9月4日,我们在罗马尼亚克鲁日举办了关于智能合约语言Scilla的全天研讨会。该活动由Cryptoland.tech主办。这场活动拉开了我们与世界各地的开发者社区深入讨论Scilla的序幕,未来我们还将举办更多类似活动。我们还分别于9月6日在德国柏林、9月5–9日在中国北京、9月15–16日在越南河内举办了多场见面会并在大型活动上发表了演讲。

Amrit在罗马尼亚举办的Scilla开发者研讨会和迷你黑客马拉松活动中向开发者们致辞

心书在柏林的Dezentral大会上谈到了特殊用途的区块链

瑶琪在北京的POD开发者大会上介绍分片技术

瑶琪在越南河内加密货币和数字资产对话会上发表看法

在越南河内举办的见面会

即将举行的活动

1、新加坡

时间:2018年9月18–20日

活动:2018新加坡共识大会,第56号展位

https://www.coindesk.com/events/consensus-singapore-2018/

2、新加坡

时间:2018年9月19日

活动:Coinbase、Zilliqa、DMM.com、LayerX在Paypal创新实验室联合见面会

https://www.meetup.com/Ethereum-Singapore/events/253942745/

3、英国,伦敦

时间:10月6日和8日,共2天

活动:智能合约语言Scilla开发者研讨会

https://www.eventbrite.com/e/free-2-day-technical-deep-dive-developer-workshop-hackathon-with-zilliqa-tickets-49787317206

4、印度尼西亚,雅加达

时间:10月23–24日

活动:Zilliqa的联合创始人之一Juzar Motiwalla将出席2018年雅加达Tech in Asia大会,并在SEA专题区块链创新会议上发言

技术进展

过去两周,我们的技术团队一直在进行PoW双重难度的实现、DS微块稳定性的增强以及Scilla解释器和Scilla开发工具的改进。

Pow双重难度

此前我们曾介绍过,我们现在已经将PoW1和PoW2合并为一种,这个改变将使节点加入的过程更简单,因为节点在加入时无需提交两个PoW而是只提交一个就可以了。在此更新中,我们给这个唯一的PoW过程引入了两个难度级别,即DS难度和分片难度。

如果节点PoW的解满足相对容易的分片难度级别,则该节点可被选为普通分片节点。如果其提交的PoW解既符合分片难度又符合DS难度级别,那么它就有可能成为DS委员会的节点。在此设置中,节点在每个周期最多可提交2次解,但网络只认可最后一次。此外,我们还开发了PoW双重难度的自动调整功能,因此DS和分片难度都可以通过协议自动调整。

增强DS微块的稳定性

在稳定性方面,我们实施了在微块缺失的情况下处理DS级别的最终块共识错误的机制。首先,我们让节点简单地从DS领导者那里获取丢失的微块的信息。同时,节点从领导者检索最新版本的状态增量,用增量来初始化和更新AccountStoreTemp。然后,节点使用终块领导者中的状态增量哈希计算并验证其哈希。如果节点收到最终的集合签名消息,那么节点就可以正常地执行程序并将状态切换为执行终块共识完毕。之后,节点将状态增量提交到其AccountStore。否则,节点将恢复状态增量并启动视图更改协议。

在开发运营方面,我们将构建的两个变体即查找节点和普通节点合并为一个,这带来了一系列好处:首先,它将CI / CD工作负载减少了50%,并将CI / CD执行时间缩短了10%。其次,它减小了发布包的大小,例如Debian包和Docker镜像。第三,它清除了我们测试流水线中进一步增强的障碍,例如单元测试中的代码覆盖率测量。在开发方面,我们使用开源工具clang-tidy添加了一些源代码检查。通过添加这个工具,开发者可专注于逻辑实现,而不必为代码审查过程中的不整洁而分心。

Scilla解释器

过去几周,我们一直专注于为Scilla添加gas计费器。为了实现这个目的,我们引进了“monad”来记录Gas使用情况(monad的维基定义可在此查阅:https://en.wikipedia.org/wiki/Monad_%28functional_programming%29)。但如果gas用完,我们需要它尽快报错。因此,我们重新设计了monad以处理gas异常的情况。

我们还为状态和表达的评估添加了gas计费。有了这个,Scilla解释器的gas框架和支持就完整了。我们目前正致力于为运营分配合理的成本。当前,显示出的成本具有任意性。

与此同时,我们在多阶段的工作继续使用“Scilla检查器”。该检查器现已完成,将允许开发人员在语言级别编写自己的分析,并将它们直接插入解释器流水线。下一步的工作将是向开发人员公开更好的API。

以下列出了过去两周内完成的其他任务的摘要:

1. 在消息、事件和转换名称中动态检查重复字段。我们还有一个静态检查通行证计划来静态地防止这些错误。

2. “Scilla检查器”中的事件信息。改进检查器,使其可以扫描输入合约以查找可能创建的事件(前提要确保具有相同名称的事件具有相同的参数编号和类型)并将此信息作为其输出的一部分打印出来(同其他已打印的合约信息一道)。

3. 对库进行细粒度类型检查。之前,类型检查器中的错误报告粒度是在库(每个库最多一个错误)、转换等级别。通过此更改,每个库可报告多个错误。检查器现在持续跟踪库中的失败类型检查,将其列入黑名单并继续。如果表达式定义取决于列入黑名单的表达式,那么它将会被忽略。

4. 修复解析器中的错误。

Scilla开发工具

我们一直在努力改进Scilla的开发工具,特别是Kaya RPC和一个新的基于浏览器的集成开发环境Savant,地址:https://savant-ide.zilliqa.com/

Kaya RPC

我们在Kaya RPC上实现了两个功能:远程解释器和gas消耗。

Kaya RPC现在允许开发人员将Kaya RPC连接到远程Scilla解释器。使用此功能,开发人员可以更轻松地设置Kaya RPC并开发应用程序。

我们部署此功能的原因是:Kaya RPC需要后端的Scilla解释器来解释Scilla代码。这意味着,要使用Kaya RPC开发人员必须在其计算机上本地编译Scilla二进制文件。但由于Scilla是在基于Unix的系统上积极开发的,因此对Windows的支持是有限的。因此,Windows用户即使他们想要也无法使用Kaya RPC,因为他们无法让’Scilla-runner’(二进制文件解释器)在Windows机器上运行。有了这个功能,我们希望Kaya RPC能够帮助更多人在Zilliqa上开发应用程序,无论他们运行的底层操作系统是哪一个。

随着Scilla解释器gas机制计算的开发,我们也对Kaya RPC进行了改进以考虑Scilla解释器报告的gas消耗量。现在,gas消耗量将根据gas价格转换为实际使用的Zil数量。为了创建更逼真的模拟,现在可以在Kaya RPC服务器中配置区块链gas价格。如果交易提交的gas价格低于当前的区块链gas价格,Kaya RPC将不会处理该交易。通过这种实现,应用程序开发人员现在可以创建更实际的测试用例,以正确计算gas价格的波动。

Savant集成开发环境IDE

在将近4周的开发之后,我们现在向大家隆重介绍全新的基于Scilla浏览器的IDE,代号为“Savant”(译者注: Savant意思为博学之士、专家),地址为:https://savant-ide.zilliqa.com/,源代码:https://github.com/Zilliqa/savant-ide

虽然我们传统的IDE(地址:https://ide.zilliqa.com/)十分快捷,REPL风格的智能合约测试,但我们认为用户体验还有进一步改进的空间,特别是对于刚接触分布式应用和区块链的开发人员而言。于是,我们从头开始重写了IDE。

Savant的新功能摘要如下:

1. 浏览器内伪区块链,可自动维护合约调用之间的合约状态。

2. 直观的用户界面,允许您类型-检查合约(在gutter中显示错误)、部署合约、调用转换并在几次单击后就可查看结果。

3. 模拟我们提出的gas机制。

4. 支持新的`event`机制,它允许您从给定的`transition`发出任意事件。

5. 除非用户决定清除缓存,或故意使用内置按钮重置状态,否则将通过`IndexedDB`持久化状态。

我们诚挚邀请您尝试Savant集成开发环境,并随时向我们反馈您的任何想法。小贴士:Savant在Chrome上效果最佳。如果您遇到问题,请尝试将浏览器升级到最新版本,或直接在我们的Gitter频道上与我们联系:https://gitter.im/Zilliqa/

欢迎加入Zilliqa

我们正在积极招聘高素质人才,共同挖掘Zilliqa的最大潜力。我们招聘的人员有:具有深厚C ++经验的程序员、编译器工程师和商业开发。如果您可胜任或有推荐,请随时联系careers@zilliqa.com!

Zilliqa新闻报道

关于“质子计划”的报道:

https://www.thedrum.com/news/2018/09/06/mediamath-integral-ad-science-and-rubicon-project-join-mindshare-s-blockchain

https://cryptobriefing.com/zilliqa-programmatic-advertising/

https://www.marketing-interactive.com/mindshare-ties-up-with-zilliqa-to-launch-programmatic-alliance/

https://www.cmo.com.au/article/646603/mindshare-gets-behind-blockchain-advertising-alliance/

https://www.campaignasia.com/article/mindshare-mediamath-integral-ad-science-rubicon-project-announce-blockchain-pi/447008

关于智能合约语言Scilla和Vyper的介绍:

https://blockonomi.com/scilla-vyper/

– END 

Zilliqa

下一代高吞吐量区块链平台