Zilliqa进度更新第13期

2018年7月23日
董心书发布于Zilliqa博客,Rita译

我们为Scilla智能合约语言推出了专用网站,地址为:https://scilla-lang.org/,更多有关Scilla的视频和教程将于近期上传,敬请关注!

过去两周我们日程充实,不仅在亚洲多地出席了重要活动,技术团队也取得了积极进展。值得一提的是,我们一直致力于构建新的合作伙伴关系并推动更多应用程序在Zilliqa平台上搭建,相关进展将于本季末公布。

随着项目的持续推进,我们在出席活动时更加感受到了大家对Zilliqa的热情期待,也听到了许多新老伙伴积极的反馈,这一切都令我们十分兴奋、倍感谦恭。我们将之归功于Zilliqa团结的社区以及优秀的技术和商业开发团队,他们对Zilliqa正在做的事充满信心,并在工作中时刻体现着这一坚定不移的信念。

Zilliqa是一个全新的公有链平台,目标是通过分片技术达到交易吞吐量随着节点数增加而不断提升的目的,从而实现区块链的可扩展性,并通过我们全新的、安全的智能合约语言Scilla使区块链更加安全。与此同时,Zilliqa的设计还有交易成本低、挖矿能耗少、真正的去中心化等许多其他好处。

在接下来的几个月里,我们计划向大家逐步介绍Zilliqa的不同功能,并从游戏、交易所等方面重点介绍适合在Zilliqa上运行的各类应用程序。

当前,我们正在与一些外部技术团队密切合作,共同推动Zilliqa上首批应用程序的搭建。如大家有项目或应用程序有意在Zilliqa上搭建,欢迎随时联系我们,我们期待与您深入探讨。

我们收到的“生态构建资助计划”申请方案正在不断增多,期待能尽早与大家分享一些已选定的方案。如果您有有趣的想法或希望探索如何在Zilliqa上实现您的想法,请在Gitter上与我们联系:https://gitter.im/Zilliqa/。

【社区动态】
已举办的活动

过去两周,我们在中国出席了多场活动,在韩国区块链周期间出席并举办了多场见面会,活动反响十分热烈。

我们在Bluzelle的北京见面会上发言。
Zilliqa进度更新第13期_第1张图片
见面会

在复星国际举办了一次分享会,复星是一家国际化的中国大型综合类投资企业。
Zilliqa进度更新第13期_第2张图片
复星的热心与会者围绕业务提了很多有意思的问题和商业用例。

在上海为开发者举办了专门的见面会。
Zilliqa进度更新第13期_第3张图片
心书面向上海的开发者介绍我们的最新进展。

瑶琪在新加坡举办的Huobi Talk活动中就区块链安全问题发表了看法,完整视频可在此观看:https://www.youtube.com/watch?v=za8QTsDB3gc。

Zilliqa进度更新第13期_第4张图片
Jin Han也是区块链安全专家,瑶琪与他一起在YouTube的Huobi Talk上进行了在线交流。

韩国区块链周

我们于7月19日在首尔与Kyber、Quantstamp等项目共同举办了见面会。
Zilliqa进度更新第13期_第5张图片
现场高朋满座。

KakaoTalk也邀请我们参加在济州举办的Ground X技术论坛。心书向大家介绍了我们安全的智能合约语言Scilla以及用其编写的一个众筹合约。
Zilliqa进度更新第13期_第6张图片
向满座高朋现场演示智能合约语言Scilla

Zilliqa进度更新第13期_第7张图片
心书与Oasis Labs 的Dawn Song和Orbs团队一起在安全专题会上发言

【技术进展】
过去两周,我们从智能合约、核心协议、开发运营、智能合约层等多个方面进行了技术优化和改进,各方面进展如下:

开发运营

自2.0版测试网上线以来,我们已成功将公共测试网迁移到Kubernetes上。测试网的每个组件,包括测试节点、区块浏览器、测试钱包等现在都在AWS云上我们维护的Kubernetes集群上运行。我们还将内部开发和产品交付的工作流程统一到一起,使我们工程师的工作更便捷轻松。

除了改进开发工作流程外,Kubernetes还使几个仅在大规模测试网络中出现的关键问题的识别和修复变得更简单。

为了增强开发人员为Zilliqa代码库做贡献时的体验,我们还在Github中创建了一个合并请求(pull request)的模板。该模板将指导开发人员描述其实现或更改的详细信息。

随着团队在过去几个月的发展壮大和开发进度的快速推进,我们认为我们需要一个更好的合并请求管理系统。为此,我们在Github的项目部分创建了一个PR跟踪板块,该部分将显示每个团队成员正在处理的内容以及需要审阅的PR。团队将在下周试用该板块的可用性,测试审阅和合并是否变得更容易管理。

共识层

我们对共识层尤其是用于处理共识协议中消息失序的部分进行了改进,细节如下:

共识错误代码
在达成共识时,各种类型的错误都可能出现。但当前的共识部署不会返回错误详细信息。为了增强性能,我们增加了能够返回错误代码和错误字符串的函数。创建错误代码的灵感来源于于:http://man7.org/linux/man-pages/man3/errno.3.html。
错误消息的一些示例是:
INVALID_DSBLOCK,
INVALID_DSBLOCK_VERSION,
INVALID_TIMESTAMP,
INVALID_BLOCK_HASH

共识消息失序
共识消息失序可能导致共识失败,主要因为存在以下依赖关系:共识领导者首先发布关于块的公告,然后其他节点运行多重签名协议(S1)就其有效性达成共识,之后运行另一轮多重签名协议(S2),就所有诚实节点在上一步中已完成签名达成共识。请注意,这里的排序很重要,因为每个步骤都取决于上一步。

我们之前用于减少消息失序发生概率的修补程序是延迟S1和S2,以允许网络以正确的顺序接收消息。在新增强的功能中,此修补程序已被删除,取而代之的是节点对这种情况发生时的暂时阻止并按正确的顺序处理共识消息。

我们还修复了其他的失序问题。例如,在分片级别和DS级别之间公告的同步问题,确保了在分片级别的操作终止之后处理DS级别的操作。

交易丢失
当分片领导者通过共识协议中的公告消息提出一个微块时,它包括了已收到的所有交易的哈希。但其他节点没有收到完全相同的交易集是有可能的。在这种情况下,会出现共识错误且节点将不再提交公告消息。

通过我们新的增强功能,如出现任何交易丢失的情况,节点都将向领导者发送请求并重新处理公告消息,这使处理共识消息过程十分平滑。

优化

为了减少协议延迟和提高网络吞吐量,我们在以下几个方面进行了优化:
在发送给DS委员会时删除微块中的交易哈希,以减少网络开销。
优化节点重新加入过程,以便它可以加入网络最新区块。这要求我们重构一个存储修剪后的区块链的圆形数组。
删除了交易提交时间窗口:我们删除了交易提交的显式时间窗口。处理交易的最长持续时间现在将由区块燃料费限制来确定。

智能合约层
在智能合约方面,我们一直在努力增加对256位有符号及无符号整数的支持,详情如下:

解释器
Scilla现在支持导入构造。有了这个,可以导入标准Scilla库和用户定义的Scilla代码(两个纯函数)以供重用。这意味着不是在每个合约中以下列方式编写一个函数来计算布尔值and,而是可以简单地import BoolUtils,它能在布尔输入上定义纯函数,然后使用andb。
let andb =
fun(b : Bool) => fun(c : Bool) =>
match b with
| False => False
| True =>
match c with
| False => False
| True => True
end
end

我们还在init.json中添加了对特殊合约参数的支持。回想一下,init.json为合约中的不可变变量提供了值,这些变量在创建合约后无法更改。通过添加支持,合约将可以访问诸如_creation_block之类的值,即在此期间部署或创建的合约的区块号。添加对其他参数的支持表示创建区块哈希在未来可以轻松完成。

正如上一期进度更新中介绍的那样,Scilla支持32位、64位和128位的有符号和无符号整数。由于该语言支持256位的哈希,我们认为也有必要支持256位的有符号和无符号整数。为此,我们已经完成了对256位整数的支持。这包括在OCaml中实现对256位算术的支持,并为Scilla编写一个包装器。该实现再次使用了来自OCaml的stdint的一对128位值。

Dapp开发
为了便于dapp开发,我们编写了一个Scilla合约,该合约实现了ERC-721的非可替代token标准。合约将在下一版本中添加到Scilla 集成开发环境IDE的合约模板中。
Scilla是一种中级语言,不直接支持struct。但该语言支持构造Pair,后者表示一对两种数据类型。Pair可以通过以下方式定义结构:
C ++中的struct
struct Books {
Uint32 ID;
String title;
String author;
}
Scilla中的struct
Books: Map Uint32
(Pair (String) (String))
我们编写了一个 Bookstore合约,演示了如何在Scilla上开发CRUD dapp。合约使用Pair或mapping来表示struct。Bookstore合约也将在下次更新时添加到Scilla集成开发环境IDE中。

【Zilliqa团队新成员】

我们非常高兴地宣布,Jacob已于2018年7月19日作为编译器开发人员加入我们。
Zilliqa进度更新第13期_第8张图片
Jacob

Jacob是编程语言语义和编译器开发方面的专家。 作为一名软件开发人员,Jacob曾从事编译器设计、量子密码学、养老金和人寿保险政策管理、报业软件编辑、定制网页应用程序等方面的工作。他的业余爱好包括喜剧、斯诺克、美式足球、电影、戏剧文学和诗歌、前卫音乐、语言、棋盘游戏、精酿啤酒、美食和巧克力。

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

【Zilliqa新闻报道】
有关以太小怪兽游戏Etheremon与 Zilliqa伙伴关系的大量报道:
https://www.coindesk.com/these-digital-monsters-live-on-ethereum-but-they-fight-on-zilliqa/
https://bcfocus.com/news/one-game-two-blockchains-ethereum-based-monsters-will-have-a-new-home-on-zilliqa/18800/
https://cryptobriefing.com/etheremon-zilliqa-eth-network-not-ready/
https://www.criptonoticias.com/entretenimiento/creadores-juego-etheremon-anuncian-planes-migrar-ethereum-zilliqa/
https://unhashed.com/cryptocurrency-news/etheremon-game-migrating-zilliqa-ethereum-high-gas-prices/

Southeast Asia Globe对Amrit的采访:
http://sea-globe.com/the-blockchain-platform-capable-of-nearly-3000-transactions-per-second/

“本文转载于https://blog.zilliqa.com/zilliqa%E8%BF%9B%E5%BA%A6%E6%9B%B4%E6%96%B0%E7%AC%AC13%E6%9C%9F-f91848e4bf20”

你可能感兴趣的:(Zilliqa进度更新第13期)