Zilliqa进度更新第15期

2018年8月20日

董心书发布于Zilliqa博客,Rita译

过去几周,我们一如既往地专注于推动项目的发展和生态的搭建。Zilliqa团队始终致力于构建一个安全、可扩展、去中心化的公有区块链平台。我们的目标不仅是在今年年底或明年年初上线主网,更是在长期持续推动区块链整体技术不断前进,使这技术在真实世界得到更广泛的普及和应用。从项目启动之初,我们就采取了审慎的风险管理措施,从而保证在未来四年无论市场如何波动,项目的高质量研究和开发都将得到稳定的财政支持。

不久前,我们发布公告宣布Zilliqa主网将于2018年12月或2019年1月正式上线,并向大家承诺将尽快更新我们的开发路线图。今天,我们愿与大家分享Zilliqa在今年下半年的路线图,新的规划将保证Zilliqa在主网上线前的开发是平稳递进的,详情如下:

2018年第三季度:分片友好的智能合约支持

亮点:核心协议的所有主要特性和功能,包括分片友好的智能合约的实现、PoW难度的调整、GPU挖矿和新节点加入。除了网络分片和交易分片,我们将支持Scilla全功能的智能合约分片。

2018年第四季度:大规模测试和安全审计

亮点:系统向公众开放,矿工节点或用户可加入网络并试挖测试币。我们还将进行全面的大规模测试和安全审核。

2018年12月或2019年1月:主网上线

亮点:正式上线主网并为开发人员和用户提供工具链和应用。

像往常一样,如您想要了解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(开发相关专用频道,包括“生态构建资助计划”)

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

社区动态

“Zilliqa生态构建资助金”首批参与项目发布

我们期待为Zilliqa搭建一个蓬勃发展的生态体系,并在主网启动时,能有一批真正实用的应用程序为企业和终端消费者提供支持和服务。我们认为,区块链协议的真正优势在于其社区。通过设立“Zilliqa生态构建资助计划”,社区成员可更方便地积极参与平台所需要的工具、框架、库等的开发,为推动搭建新的“杀手级应用程序”做出重要贡献。

经过数周的严格挑选和与开发人员的积极对话,我们选出了参与“Zilliqa生态构建资助金”的首批12个项目。这些开发团队或个人将与我们一道,共同搭建Zilliqa的基础架构和新应用程序。

这12个项目包括Web3库、钱包、扩展、智能合约库、Scilla语言服务器、游戏和一个发行BTC的跨链协议。详情可参阅:https://blog.zilliqa.com/zilliqa%E7%94%9F%E6%80%81%E6%9E%84%E5%BB%BA%E8%B5%84%E5%8A%A9%E9%87%91-%E9%A6%96%E6%89%B9%E5%8F%82%E4%B8%8E%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D-3001e4fd845d

Zilliqa团队新成员

前不久,我们宣布了Google Pay亚太区前营销主管Yiling Ding将出任Zilliqa CMO的好消息(链接:https://blog.zilliqa.com/welcoming-yiling-ding-to-join-zilliqa-as-cmo-2e262a0bae76)。除此之外,我们团队又新添了几名优秀成员。

Sophia Fang新任商业开发副主管

Sophia Fang将作为商业开发副主管加入我们,主要负责中国市场。

Sophia在商业和技术咨询方面经验丰富,在多个领域领导设计和跨国实施了许多大型、复杂的技术项目。Sophia对商业运营和技术开发有着深入的了解,在职业生涯中展示了其敏锐识别商机、促进战略规划和成功实施解决方案的能力,来协助客户增强技术能力,从而适应不断变化的商业环境。

Deli Gong加入核心开发团队

Deli是使用可信硬件(如Intel SGX)构建分布式系统和网络系统的实践者。他在编写高性能分布式和FPGA系统方面编程经验丰富。Deli之前在新加坡国立大学期间,主要专注于系统安全、可信硬件和DDoS防御等方面的研究。他本科就读于中国浙江大学计算机科学与技术学院,并获得了优秀学生的荣誉。他曾先后获得中国2011年全国信息学奥林匹克竞赛山西省一等奖和2015年ASC大学生超级计算机挑战赛一等奖。

Sandip Bhoir加入核心开发团队

Sandip在ATM领域、零售银行业务、投资银行业务等多个行业的软件开发方面拥有超过12年的经验。此前,他曾是EPAM Systems的高级软件开发人员,并积极参与了投资银行系统的设计和开发。他使用C++参与了多个分布式系统的开发,重点研究可靠性、可扩展性和性能。

即将举办的活动

9月将是一个忙碌充实的月份,我们将在全球多地出席多场活动。

1、罗马尼亚,克鲁日

时间:2018年9月4日,10:00–18:00

活动:智能合约语言Scilla的全天研讨会 — — 学习如何用Scilla编程

https://medium.com/cryptoland-tech/workshop-2-diving-into-scilla-a-safe-by-design-smart-contract-language-5cb23f71222b

2、德国,柏林

时间:2018年9月6日

活动:Dezentral

https://www.dezentral.io/

3、中国,北京

时间:2018年9月5日

活动:POD连接公链生态与杰出开发者大会

https://www.odaily.com/post/5133227

4、中国,北京

时间:2018年9月7日至9日

活动:全球区块链技术案例峰会

http://bccc.msup.com.cn/

5、越南,河内

时间:2018年9月15日至16日

活动:加密货币和数字资产对话

https://www.vietnamcryptodialogue.com/

6、新加坡

日期:2018年9月19日至20日

时间:2018新加坡共识大会

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

7、新加坡

日期:2018年9月19日,19:00–21:00

时间:Zilliqa x DMM.com x LayerX:区块链应用的工具、用例和新措施

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

技术进展

过去两周,我们的技术团队一直致力于改进节点恢复、新节点加入、GPU挖矿、对分片友好的智能合约的网络和协议支持以及增强Scilla解释器的性能。

节点恢复

我们在节点级别的不同场景下尝试了故障恢复机制。目前,主要有两种故障恢复机制,即单节点恢复和整个测试网恢复。要恢复单个节点,我们允许节点使用先前运行的标识和持久数据立即重新连接到网络。如果一个节点掉线时间太长并且远远滞后于当前网络,则其无法再加入原始分片,但它仍然可以参与下一轮分片的分配。后一种恢复方案需要恢复整个网络以前的状态,用于保持测试网在重启前的数据和状态。在升级协议最终确定之前,这种实验方法仍处在测试网阶段。尽管它不太可能在主网中使用,但这仍值得尝试并帮助我们找出恢复设计中的缺陷。

新节点加入

由于我们已经将PoW1和PoW2合并为一种,因此我们还改变了新节点加入系统的方法。在当前版本中,新节点会周期性地从查找节点查询DS块和最终块的信息。如果节点要参加下个DS的PoW,则它需要从查找节点获取最新的帐户状态。一旦查找节点收到DS节点关于启动PoW的信息,它将立刻发送给新节点,新节点从而就可以开始用CPU或GPU运行PoW求解。随后,此节点可通过将PoW解提交给DS节点来加入系统。

GPU挖矿

我们已经完成了使用OpenCL和CUDA支持GPU挖矿的部署。现在用户或矿工可以在配置文件中启用或禁用OpenCL或CUDA选项并配置GPU设备的参数。我们还更新了用于配置GPU挖矿的维基页面,更多详细信息和指示说明,请参阅:https://github.com/Zilliqa/Zilliqa/wiki/。我们欢迎社区的每个人都来尝试GPU的本地挖矿并提供宝贵的反馈意见!

分片友好的智能合约支持

在我们设计的分片友好型智能合约中,我们用DS节点来处理一些类型的跨片智能合约交易。这需要DS级别的另一轮微块共识,发生时间是DS节点从正常分片接收到所有微块时。DS节点会收到从分片微块发来的状态增量,它将基于后者生成的临时帐户状态来处理交易。如果DS微块共识失败或超时,DS节点将丢弃由DS微块产生的状态增量的变化,并进入最终的块共识。最后,DS节点将为所有分片节点生成具有最新状态的最终块。我们很快将发布一篇新的博客文章来详细介绍说明。

网络或日志

对于DDoS防御,我们用黑名单机制来防止节点向列入黑名单的节点发送或接收消息。对于P2P网络,我们重构了网络读取,使用event_base和evconnlistener来处理socket bind()/ listen()/ accept()。我们将socket read()和write()函数包装得更加模块化,并添加了一个实用程序来转换ASCII和IP地址的数字表示。之前,我们的日志记录时间戳只有一秒的精度,许多消息可能在一秒内从不同的节点或线程进入,因此开发人员使用时间戳区分消息并不容易。在重构之后,日志记录时间戳精度达到毫秒,这对调试很有帮助。

Scilla解释器

在Scilla方面,团队一直在改进类型检查器(typechecker)并使其完整。类型检查器的目标是报告程序中的类型不一致,我们几周前发布了首个版本,其间它仅报告了第一个错误。在新版本中,类型检查器在遇到错误后不会停止,而是继续收集尽可能多的独立错误。独立错误是位于不同库或转换中的错误。这也涉及重组一些单元测试。

Scilla还附带了一组标准库,例如 BoolUtils,即一个包含标准布尔运算(Boolean)的库。由于库是合约代码的一部分,因此合约中的任何导入库也应该进行类型检查。为了使标准库的类型检查更有效,我们添加了类型缓存。我们的想法是将所有库函数的类型信息与库一起缓存在一个单独的文件中。当要对库进行类型检查时,类型检查器会尝试在验证占用之后从缓存中加载类型信息,而不是重新进行键入类型。如果库被更新,则缓存也会自动更新。之后,我们将出一个更精细的版本(如在同一库中的函数)。

以下列出了解释器的其他增强功能和代码更改摘要:

1. 清理代码,为库的缓存类型信息做准备。

2. 修复了 scilla-checker中的错误。 scilla-checker能够检查合约中的解析和类型错误,还能打印JSON文件,其中包含合约中定义的转换、可变和不可变变量的信息。但是即使合约中存在类型错误,它之前也还会打印JSON。

3. 类型比较的Alpha对等。

4. 对类型进行更加完善的检查。

5. Scilla文字的漂亮打印实用程序。之前使用的自动生成SExp打印使阅读文本很难。漂亮的打印也使维护测试变得更容易。

我们一直在努力重构Scilla解释器管线(pipeline),从而允许它对输入合约进行多阶段处理。重构的目的是允许Scilla的用户编写自己的分析和检查,并将它们插入现有的解释器管线。重构目前还不完整,关于如何处理内置数据类型的递归原则和标准库的缓存类型检查(目前两者都与主程序分开进行解析和类型检查),以及关于如何在重构之后格式化JSON数据仍然存在一些突出问题。

Dapp开发工具和库

过去两周,我们一直在优化较低级别的 Zilliqa-Javascript-Library,为参与“Zilliqa生态构建资助金”项目的生产使用做准备。简而言之变化如下:

1. 通过将加密依赖性简化到最低限度并完全依赖于JS本机API,将库的最终包大小减少到<190kb,比此前的版本减少了大约50%。他的副作用为,现在有两个包,一个用于node.js,另一个用于浏览器。两者应自动链接,消费代码的一侧不需要干预。

2. 将代码库移植到TypeScript,并附带自动生成的类型定义,开发人员如果更喜欢用强力的类型检查器来额外保证网络的安全,那么在编写客户端代码时就可以使用。

3. 添加了一个测试套件,该套件在每个Pull Request或commit to branch时都会自动执行。如果有测试失败,则会阻止合并。重要的是,测试是针对从我们的C++核心代码库生成的测试向量执行的,从而确保客户端上的行为与区块链方面的预期相同。

4. 在许多地方重构代码以确保内部一致性和稳健性。

5. 由于JavaScript中整数的最大安全大小为53位,我们现在在可能出现溢出的地方,特别是在交易中的 amount字段强制使用 BigNums( bn.js)。这是一个突破性的变化。

我们开始进一步重写Scilla的集成开发环境IDE,通过提供卓越的开发体验来吸引更多人使用Scilla。迄今取得的进展:

1. 一个简单的编解码器,用于解码Scilla接口返回的智能合约状态的JSON表示。例如, Pair(T,T')在JavaScript中被解码为伪元组 [T,T'],而 Map被编码为普通对象,使客户端开发人员在遍历或以其他方式操纵客户端智能合约的状态变得更容易。随着时间的推移,我们打算在JavaScript中实现相同的数据结构来使其更加强大。

2. 将当前构建过程移植到Webpack,这样可以使网络连接速度慢的开发人员减少初始加载时间。

我们团队还在研究Kaya RPC服务器代码库,现在已建立了自动化测试和持续集成。为了准备之后的增强功能,我们计划重构代码并使Kaya RPC中的组件更加模块化。Kaya RPC服务器的总体路线图可在Github页面上阅读:https://github.com/Zilliqa/kaya/blob/master/ROADMAP.md。我们将在接下来的两周内继续整合更多测试用例并提高Kaya RPC的软件质量。

正在进行的工作:

在接下来的2至4周内,我们的技术团队将重点研发以下几个方面:PoW难度自动调整、协议升级、测试网恢复、增强分片分配功能、Scilla事件的实现。

欢迎加入Zilliqa!

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

Zilliqa新闻报道

关于Yiling加入Zilliqa团队的报道:

https://www.financemagnates.com/executives/moves/zilliqa-appoints-former-marketing-head-for-google-yiling-ding-as-cmo/

https://www.chipin.com/zilliqa-hires-former-marketing-head-google-cmo/

https://www.crowdfundinsider.com/2018/08/137662-former-googler-joins-fast-blockchain-startup-zilliqa/

对“Zilliqa生态构建资助金”首批参与的12个项目的报道:

https://bitcoinexchangeguide.com/zilliqa-blockchain-platforms-ecosystem-grant-program-announces-first-12-projects/

https://www.cryptoninjas.net/2018/08/14/zilliqa-blockchain-platform-announces-the-first-projects-of-its-grant-program/

Blockchaingamer对心书进行了采访:

https://blockchaingamer.net/exclusive-interview-with-the-ceo-of-zilliqa-mr-xinshu-dong/

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