星云周报第20期

欢迎来到第20期星云周报 Nebulas Weekly(2018年3月12日),我们在这里发布Nebulas星云项目最新动态和开发进展。

Nebulas星云周报由Nebulas星云团队维护。

欢迎邮件联系我们:[email protected],或在Twitter上 @nebulasio,您的意见对我们很重要!

上周动态汇总

星云纽约“区块链思维”分享会成功举办

图/星云CEO徐义吉(左二)、星云实验室负责人刘杜然(右二)和星云投资总监杨克隽(右一)在活动现场

美东时间2018年3月8日(星期四),星云团队和纽约人工智能协会(NYAI)举办了星云纽约分享会。星云创始人兼CEO徐义吉出席,并在会上进行了名为“区块链思维”的主题演讲,对星云项目的内容和愿景进行了介绍,同时号召社群热心成员与星云共同努力,建设星云生态。

演讲结束后,星云团队成员与到场观众进行了交流,回答了关于星云技术实现、社区建设、发展规划等方面的问题。谈及未来的发展道路时,徐义吉表示区块链的发展蕴含着无限可能,星云致力于打造良性的、具有正向激励机制的生态系统,为社区成员提供一个激发创造力的平台,共同将可能变为现实。

星云将陆续发布技术黄皮书和紫皮书,对支撑星云项目的核心技术做详细的阐释,让社区的参与者与爱好者对项目的细节有更进一步的了解。另外,星云主网将在2018年一季度末上线。

 

上周开发进展

上周,我们在develop和PEE两个分支上齐头并进,在安全和性能上都取得了不小突破。

在develop分支上,我们完成了一轮Code Review并修复了Review过程中发现的问题,包括加强配置文件的合法性监测,优化core和nvm两个模块循环引用的解决方案,修正transaction pool中的排序算法使其偏序关系具有传播性,增加更多接口的参数合法性监测。同时我们删除了测试网兼容的部分代码,为主网上线做准备。除此之外,我们在测试网的测试中还发现了一个网络层小概率发生的死锁场景,并完成了修复。

细节如下:

核心协议

  • 完善了配置文件的合法性监测;

  • 优化了core和nvm两个模块循环引用的解决方案:在core中引入smart contract engine manager,解耦core和nvm模块,使nvm模块可以直接引用core模块,使用起来更加方便;

  • 修正了transaction pool中的排序算法使其偏序关系具有传播性:在transaction pool中将交易按照from分桶,桶内按nonce大小排序,桶间按照gas price高低排序;

  • 增加了在所有对外暴露的接口的参数合法性监测;

  • 删除了之前测试网更新过程中的兼容性代码,为主网上线做准备;

测试

  • 完善了command的测试用例;

  • 完善了智能合约的集成测试用例;

  • 分时对测试网做压力测试和功能测试;

网络

  • 修复一个死锁场景:当stream被关闭和写入新数据在特殊的场景下同时发生时,会产生死锁,导致网络上层功能卡住。

在PEE分支上,我们修复了调度模型中诸多并发写的问题,完成了交易并发打包和验证的单元测试。基于当前的单元测试结果,在4核2.8G Hz的Macbook Pro上,1s内,我们取得了最高2400个普通转账交易的TPS,或最高70个智能合约(基于Google Chrome V8)部署或调用交易的TPS。基于并发方案带来的高扩展性,未来我们可以通过增加CPU的数量来获得更高的TPS。

细节如下:

核心协议

  • 完成了MVCCDB V2(多版本并发控制内存数据库)的开发和测试;

  • 完善了并发调度模型;

  • 修复了Trie/State及WorldState(世界状态)在并发执行中发现的问题;

  • 完成了交易的并发打包和验证的单元测试;

  • 测试并发方案性能。

 

详情请咨询:

官网:https://nebulas.io
Github:https://github.com/nebulasio/go-nebulas
Slack:https://nebulasio.herokuapp.com
Telegram中文群:https://t.me/nebulascn
Twitter:https://twitter.com/nebulasio

发表评论

电子邮件地址不会被公开。 必填项已用*标注

返回顶部