NEO的最新进展——操作性视角

NEONEO智能经济2018-09-22 19:54:34  阅读 -评论 0

NEO的最新进展——操作性视角

NeoResearch是NEO生态重要的开发者社区,在南美地区举办了多场优质的Hackathon和Workshop,为NEO技术生态的发展贡献了力量。本文是NeoResearch创始人Vitor最新发表的技术博客,以操作性视角讲述了NEO最新进展。

以下为正文*

尽管研究者们一直以来都在广泛地研究新的共识机制,但只要真实世界体系依然是重心所在,这些机制的真正实现就会受到局限,伪代码通常是实现这些机制的主要参考,因此开发者们仍任重道远。

根据同样的推理,人们可以为多智能体系拟定多个复杂的智能谈判协议,另一方面,在现实方面,行驶中的交通工具(大量使用物联网设备)也未能实现与交通信号灯及传感器的智能交互,而且学术文献中的研究成果与数字/智能城市中的协议创建也存在脱节。

这篇简短的文章将重点介绍Neo核心库引人瞩目的进展,同时将把握更好的时机带你深入了解简单拜占庭容错机制的实现细节。

走进Neo dBFT共识协议

尽管其他开发者可能会看好其他复杂的以及声称更有效的共识机制,NeoResearch团队一直都坚持在当前dBFT的基础上进行微调。Neo当前使用的dBFT机制受著名文献所提到的实用拜占庭容错算法(pBFT)启发,pBFT是由Cstro&Liskov在1999年左右提出的简单协议,而dBFT基于区块链的现实应用对pBFT做出了改进。

在这里我尤其要强调两个巨大的改变:一个与Neo在共识稳定性方面取得的显著成就有关,另一个与现在正在解决的罕见情况有关。

1 使用Akka框架的效用性—Neo 2.9.0

每个案例的抽象化都是由概念化的想像完成的。早期,在编写C/C++优化代码时,处理指针和标识时很难解决内存泄露的问题。另外,工具的巨大进步如Valgrind让测试和验证测试更加简单。

根据同样的推理,并行计算技术也在不断进化。使用这一技术并设想各个技术与框架应该应用于什么地方的能力就是魔法。因此我们要感谢张铮文为这个项目作出的卓越贡献并对NEO进行了精确的完善。

改进共识响应次数

尽管部分专家能较为容易地理解共识过程的每一阶段,但完全理解每个步骤的所做事情并不简单。

因此Igor才专注于开发一个简单的工具来获取共识消息(状态)

https://github.com/NeoResearch/neo-tests/tree/master/consensus-draw。

NEO的最新进展——操作性视角

图1——使用Akka框架前的交流

图1展示了区块生成的每个步骤(dBFT各阶段)中节点与节点间的交流都需要花时间,即使是在本地的环境中。

NEO的最新进展——操作性视角

图2——完善并使用Akka框架后的交流

8月13日观察并分析(如图2中的)图表后,我们甚至需要将CN Logger变更为毫秒,因为精度从100x提升到了1000x!

为什么会做出这样的改进呢?

原因包括以下这些重要的方面:

使用智能排序和筛选可以更好地控制节点间的交流。

我们所说的智能排序是指根据优先顺序将消息排序,与其他协议不同的是,达成共识需要多种类型的交流而且需要在各智能体之间进行“智能对话”。我们可以将这个协议家族视为一个由多个自私的自动化智能体组成的环境。

这样,我们就可以想象每个智能体都会优先考虑自己的目的,而且,每个智能体都能在网络中处理特定的任务。

值得注意的是当前的改进可以在全网络更好地组织这些广播消息,因此每个参与者就更具备完成全局目标的能力,也就是说,能以受信任的方式生成区块。

那么它是一个最优的解决方案吗?不,我们并不这么认为,因为现实中存在着无数个可能的优化方案,以及更好的交流调试方案。从这个层面上说,我们仍然在被不断驱使着理解并学习新的策略来将这个“简单”的共识应用到最先进的案例中,让多个智能体在高效的高度去中心化的P2P网络生态——NEO区块链中交流。

2 “分叉”测试

dBFT的首次实现案例并没有考虑到区块生成所涉及的验证器提交环节的简化性。

Shargon、Belane和铮文已经在基于dBFT的推理开发新增环节:https://github.com/neo-project/neo/pull/320,现阶段正在迁移从而与Neo 2.9.0客户端当前的变更保持一致。

一种极端罕见的情况是,当节点间的交流发生延迟与遗漏时,一个节点可能会跟随“分叉的”区块,主要受到以下影响:

1、每个primary会生成不同的随机数;

2、及/或某个节点失联后可能发生的新的交易(恰好当必要的金额签名完成并且该节点假设所有其他节点都跟着同样的区块时)。

安全团队与NeoResearch重现了这个场景(这是一个困难的任务,主要因为得通过Akka重构来进行交流的微调)。出于此目的,我们在https://github.com/NeoResearch/neo-tests/tree/master/forking-tests中创建了脚本。

8月21日晚,NeoResearch团队简要地重现了这一场景(仅对诸如网络延迟之类的外部状况进行了干涉),得以推进当前方案(如自动测试)的验证环节。

3 共识时间微调

我们觉得社区里的每个成员都期望区块都能在15秒内被分割(可以确信2.9.0之后主网在此方面会有很大提升,但仍有可能在绝大多数时间确保精确地区块生成时间)。因此现在我们正在进行精确的微调,详见https://github.com/neo-project/neo/pull/268。

我们认为在进行精确的调整和并使用卡尔曼滤波器后,我们就能根据区块生成时间考虑TPS了。

非常高兴能与大家分享一些见解。

最后,非常感谢这个优秀且团结的社区为改进做出的重要贡献,这些改进也与一些通过去中心化方式参与的智能体的期望与愿望相符。

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

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

相关推荐

DATT 项目2020年8月月度进展大事件

DATT 项目2020年8月月度进展大事件

项目介绍DATT是一个已落地传统互联网的去中心化的数字资产可信服务网络。项目的亮点就是拥有大量的互联网用户,跨不同领域成熟互联网产品的高粘度用户,利用DeFi、跨链等区块链基础设施转移到DATT项目中,链接各价值孤岛,重塑互联网经济模型,回馈社区。 DATT与NULS达成战略合作,并以NULS微服务底层框架作为基础,联合NULS技术社区发起主链。 DATT与互联网知识分享平台"懂得"(http:/

Conflux 开发教程 | 使用 IDE 开发 DApp 的实战操作指南

一、简介 Conflux Studio 是一个帮助开发者快速开发 Conflux 智能合约的集成化开发环境。Conflux DApp 开发教程将使用 Conflux Studio 在 Oceanus 网络下开发一个简单的代币应用 Coin。 通过这个开发教程,你将会学习到如何进行 Conflux 智能合约的编写、调用,配置智能合约的代付以及如何使用 Web 前端项目与智能合约进行

Defi互操作性解决方案 - 探索Fusion、Cosmos、Polkadot

区块链领域从未像现在这样具有创新性和竞争性,本文将通过比较三个创新项目来证明这一点:Fusion、 Cosmos和 Polkadot。通过其互操作性,Polkadot将允许在其生态系统的不同区块链之间传输数据和价值。

互操作性为何是未来创新和采用的关键

互操作性为何是未来创新和采用的关键

拥抱互操作性意味着为那些没有采用你所偏好的平台的开发者赋权,Block.one正在尝试激励社区这样做。

以太坊2.0进展更新:Medalla多客户端测试网最早8月初上线

测试网,测试网,测试网! 以下是这期以太坊2.0进展更新的重点: Medalla多客户端测试网的启动日期已经设定; 初始beta攻击测试网已经启动,白帽黑客们请注意了(注:攻击成功有奖励); 关于以太坊1.0和以太坊2.0的合并研究,开发社区已经取得了令人振奋的进展; Medalla测试网 继Altona测试网表现出很高的稳定性之后,根据以太坊2.0客户端团队的说

Deribit平台期权交易操作指南

Deribit是一个点对点交易所,每个市场参与者都可以在每个市场进行买卖交易。鉴于期权的价差较大,建议尽量选择限价单,以便更好地控制订单价格。D. 你在这张期权合约中的现有头寸E. 交易带宽。此订单必须立即成交或被取消。

Acala Mandala 测试网 TC4 版本操作教程

1. Acala 网络三部曲 Acala 网络是基于 Substate 开发的跨链开放式的金融平台,未来将成为 Polkadot 生态中最具代表性的 DeFi 基础设施, Acala 网络将按照以下三部曲发展::  · Mandala 测试网:无风险和价值模拟的多资产 DeFi 游乐场,作为测试网可以初步让更多用户体验 Acala ,并根据测试网络进行后期产品优化与迭代升级 · Karura 先行

以太坊基金会:Phase 1和Phase 2有哪些进展?

Phase 1 和 Phase 2 相关问题问:Phase 1 的进展如何?问:从实现复杂性的角度来看,Phase 1 比之 Phase 0 如何?Justin:Phase 1 比起 Phase 0 会简单很多。

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