技术博客 | NEO质量保障

NEONEO智能经济2019-03-06 20:00:04  阅读 -评论 0

技术博客 | NEO质量保障


“NEO旨在为开发者提供最优的开发体验和后续保障,在NEO DevCon2019上,NGD研发总监林鹏涛就《NEO Quality Assurance》做了主题分享,并对其演讲进行了书面化整理,发布了最新的博客,从协议、网络、社区三个层面解读了NEO质量保障工作。”

以下为林鹏涛博客内容

技术博客 | NEO质量保障

我在NEO Devcon 2019上的演讲是关于NEO的质量保障。

技术博客 | NEO质量保障

我将从3个方面介绍我们为提高NEO质量所做的工作:协议,网络,社区。

协议

技术博客 | NEO质量保障

那么如何提高NEO协议的质量呢?让我们先做头脑风暴。

技术博客 | NEO质量保障

我记得曾经有一位非常有名的化学家,他说,“如果你想要得到一个好想法,你需要有很多备选想法”。它给了我很多启发。这就是我们去年在github上发布“如何成为NEO核心开发人员”的原因。它向人们展示了如何成为NEO的核心开发者。张铮文甚至自己设计了一个工具来计算NEO核心开发人员的激励。

这是我在加密世界中见过的第一个自动激励分配工具。值得说明的是它是由NEO的创始人张铮文编写的,我认为可以为社区开发人员提供大量的鼓励来加入NEO协议的开发。

技术博客 | NEO质量保障

我们现在有了大量的开发人员,针对于他们下一个重要的事情是什么?我认为是安全性。无论我们拥有多少开发人员,安全性始终是我们构建软件时需要考虑的第一件事。这就是为什么我们有发起一个Bounty Program。在我们发布NEO Vulnerability Bounty Program之后,我们从社区获得了至少10个关键安全报告。我非常感谢这些参与者,他们是NEO生态系统的守护者。

技术博客 | NEO质量保障

当我们有足够的开发人员时,我们需要考虑的下一件事是如何使它们协同工作。这关乎于项目管理。当我们向前推进时,我们发现仍然有两件事是缺少的,它们是版本控制和分支策略。

技术博客 | NEO质量保障

这两件事并不是很复杂的话题,在版本控制方面,我们有很好的参考资料,那就是Tom Preston-Werner所编写的语义版本规范。

技术博客 | NEO质量保障

第二件事是分支策略,我们同样有很好的资料可以参考,Vincent Driessenn写过一个非常成功的Git分支模型,我用这个模型很多年了,它方便易用。然而,这两件事我们虽然都讨论过,但是并没有在开发者中达成普遍共识,我们需要尽快敲定以确保开发者能够更快更好的协作。

技术博客 | NEO质量保障

在能够使开发者进行良好的协作后,下一件重要的事情是设定一个目标,所以,我们的目标是什么?数显,我们需要定义我们的产品,然后我们需要了解具备哪些功能可以使它成为一个合格的产品。

技术博客 | NEO质量保障

目前Neo-Cli是最重要的产品,它由三个项目组成,NEO的协议、NeoVM也就是NEO的虚拟机、Neo-Plugins。这三部分使Neo-Cli成为了保障NEO协议质量的最重要产品。

技术博客 | NEO质量保障

主要的两个功能室钱包和节点,钱包功能对于交易所日常处理充提币很有帮助。节点功能是构建NEO网络的基础设施,也是实现智能经济的基础。

技术博客 | NEO质量保障

我们如何确定Neo-Cli的表现足以支撑这个目标呢?答案是我们需要测试,通常来说,三种测试就足够了,它们分别是系统测试、集成测试和单元测试。

技术博客 | NEO质量保障

我们需要设计一个能够系统的执行这些测试的系统,在这里我要介绍一下29119标准,这个软件测试标准是是一套受到国际广泛认可并可以被任何组织用于任何软件开发周期的。上面是它的基础架构,由三个部分组成,组织测试进程、测试管理进程和动态测试进程。NGD目前正在使用这一标准来进行测试。

技术博客 | NEO质量保障

上图是更加细节化的架构,我举两个例子来解释测试管理进程和动态测试进程。

技术博客 | NEO质量保障

上图是测试计划进程,比如说改进的一致性算法将很快发布,所以对我们来说最紧急的事情莫过于马上测试PR#547,这一进程展示了我们如何制定这一测试计划。

技术博客 | NEO质量保障

上图是动态测试进程,Jeff Solinsky是NEO的核心开发者之一,PR#579就是他提出的,它与改进的一致性算法有点儿不同但很有帮助。所以我们需要把这一PR加入到测试计划中,我们需要为此设计一个新的测试并准备新的测试环境。之后我们的开发者就可以对其进行测试,如果有任何问题,我们也需要检查测试报告找到问题,如果没问题,皆大欢喜。

技术博客 | NEO质量保障

下面是两个我想要展示给大家这一标准是如何运行的例子,这事儿说起来比较复杂,我们现在在NEO项目中进行单元测试,然而我们还没有对网络稳定性的关键元素Neo-Cli进行测试。这也是为什么我们三个月前设计了Neo-Cli的系统测试架构。出于安全考虑,我们还没有对此开源,目前我们在使用它测试Neo-Cli。

技术博客 | NEO质量保障

我提到的这个标准更多的在于理论层面,我们还需要从工程实践的角度去思考它,这是CI/CD进程,我认为很多开发者对此已经很熟悉了,我们也收到了很多相关的建议,其中的一些建议非常完美,我也相信如果我们部署这些计划真的能够提升Neo-Cli的质量,然而,我们希望在开始阶段从更简单的角度切入。

技术博客 | NEO质量保障

Travis CI和github,我认为你们已经很了解了,我们正在做的是将我们的系统框架与Travis集成并进行自动系统测试,我认为这一集成会极大提升Neo-Cli的表现。

技术博客 | NEO质量保障

网络

技术博客 | NEO质量保障

NEO质量保障的第二个层面是网络。

技术博客 | NEO质量保障

人们有时会对NEO的去中心化进程感到困惑,所以我们在去年公布了上面的说明,最新版本是V1.5,我们在这一版本加入了网络升级进程。

技术博客 | NEO质量保障

NEO的一致性算法是dBFT,它为包含n个节点的共识系统提供了

声明:链世界登载此文仅出于分享区块链知识,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。此文如侵犯到您的合法权益,请联系我们kefu@lianshijie.com

参与讨论 (0 人参与讨论)

相关推荐

本体技术视点 | 身份的五种思维模型(二)

通过理解五种思维模型,我们可以更好地进行身份系统的讨论和工程设计。供应商关系管理、以用户为中心的身份以及自主身份背后都是这种思维模型。

Matter lab推出新Layer 2扩容方案zkPorter,结合zkRollup和分片技术

律动BlockBeats 消息,Matter lab 近日官方提出了一种新以太坊 Layer2 扩容方案 zkPorter,该方案将 zkRollup 和分片技术结合,以此来降低成本并且提高性能。zkPorter 使用一种混合方法处理数据可用性,该方法结合了 zkRollup 和分片的思想。

DOS Network与Meter正式达成战略与技术合作

近日,DOS Network宣布正式与Meter达成战略及技术合作伙伴关系。Meter将整合DOS Network去中心化预言机网络,并采用其提供的低成本、安全且及时的价格数据。此次DOS Network与Meter达成合作,将共同为实现大规模区块链商业应用落地而助力。

拥抱区块链技术,为什么首先需要摒弃“名词之争”

“名词之争” 第一次了解“名词之争”这个概念,我是在 2018 年初参加甲子光年主办的区块链大会上。甲子光年创始人甲小姐在开场演讲中引用了胡适先生的这段文字作为开场——要真正理解和拥抱区块链技术,需要首先摒弃“名词之争”,透过现象看本质。 胡适先生在 1935 年 5 月 12 日《独立评论》第 150 号上发表过一篇文章《 充分世界化和全盘西化》,开头就说到: 二十年前,美国《

采用分布式账本技术中的10大障碍

R3 研究院旨在用商业语言为决策者以及分布式账本技术爱好者提供关于分布式账本技术的简明报告。以及在非货币相关设置下的建议,如证书透明度、R3 Corda和超账本结构,这些仍适用于分布式账本的大保护伞下。

开源区块链钱包CASHBOX技术编译教程(一)

1. 全局代理,必要条件 2. 环境准备(window) Android studio 链接:http://www.android-studio.org/ Flutter 链接:https://flutterchina.club/get-started/install/ Rust 链接:https://www.rust-lang.org/zh-CN/tools/install Java 链接:ht

DarmaCash匿名公链技术:硬核——DMCH技术阶段性总结

我们在往期的DarmaCash匿名公链技术系列中从六个方面介绍了DMCH公链的技术情况,社区成员可通过下表链接查阅相关文章。

通向下一代人工智能之路:引入区块链技术突破AI瓶颈

区块链技术需要用来平衡AI技术的发展,以及维护数据的不可篡改,助力数据的真实性。行为主义、联结主义和符号主义分别从不同角度切入AI,相互补充并各有局限。行为主义可以通过动物行为来理解。

麦妖榜
更新日期 2019-09-03
排名用户贡献值
1牛市来了30910
2BitettFan24187
3等待的宿命23810
4区块大康20369
5六叶树20310
6linjm122719429
7天下无双16192
8lizhen00215280
9让时间淡忘14586
10yelanyi050511349
返回顶部 ↑