作为专为Neo关注者打造的视频栏目,Neo Talk将邀请来自Neo团队或Neo生态中的各位小哥哥小姐姐,通过视频为大家带来Neo入门开发指南、科普最新Neo技术知识点、以及分享各类有趣的生态项目。
本期重点
在首期Neo Talk中,我们邀请到了来自NGD全栈开发组的王龙飞。通过介绍Neo的发展愿景与技术特征,以及Neo在提升开发友好度方面所做出的不懈努力,希望能让大家对在Neo区块链上如何进行开发有一个全面的了解。
本期视频的内容可以大致分为两个部分:
📝 00:29—10:16
Neo的发展愿景 & 技术特征
- Neo技术特色
- dBFT共识协议
- 智能合约
📝 10:17—23:22
Neo的全方位开发支持
- Neo开发工具
- 本地私链neo-local演示
- 智能合约开发套件 & dApp一站式开发
以下是视频文字版
Neo的发展愿景
先回顾下Neo的发展愿景。早在2016年,Neo的两位创始人 达鸿飞与张铮文决定布局区块链行业,思考了许多发展可能性后,最终决定使用「智能经济」(Smart Economy)的模式。初步设想是,通过融合数字资产、数字身份,并支持智能合约,来达到智能经济的愿景。

经过两三年的发展,Neo的基础设施已经达到了一种相对完善的状态,那此刻我们又应该如何去融入下一个发展场景中?目前中国乃至全球,公链崛起,跨链项目越来越多,他们又该如何考虑下一阶段的发展愿景?对于Neo来说,Neo希望与其他项目一同构建下一代互联网。作为下一代互联网基础设施的提供者,Neo致力于提供最完善的基础设施。
什么是「智能经济」
我们可以先了解下什么是「智能经济」,数字资产+数字身份+智能合约。对于数字资产,我们需要支持金融类产品,给他们提供更可信安全的资产保障。基于这样的场景,我什么样的共识协议。如果大家对共识有一定了解的话,就会熟悉比较常见的PoS、PoW、dBFT共识。对比多个共识的区别,显然金融场景更需要dBFT共识机制。
● 工作量证明共识(POW)
具有工作量证明共识的区块链(如比特币)只能由矿工创建,他们通过部署硬件,以及计算如何有效地解决某个特定的数学问题。每次矿工完成有效猜测时,区块链网络就可以接受他们所构建的区块。虽然矿工可以选择任一条链进行计算,但网络只接受具有最多工作量证明(即哈希或计算最多)的链作为合法链。这意味着矿工被激励在最长的链上进行挖矿,当他们发现有效的新区块时,他们将尝试找到如何在新区块上构建的解决方案。
● 权益证明共识(POS)
权益证明共识是另一种决定哪些矿工可以添加新的区块并验证区块链当前状态的方法。通过权益证明,而不是矿工竞争解决问题,根据钱包中的代币数量(或“权益”)的多少,通过某种机制确定下一个区块生产者。该共识过程所以来的原则是,相信那些拥有最多利益的人将为整个网络做出负责合理的决策。
对于金融产品而言,肯定需要交易在短时间内进行确认并执行。但对比Pow、Pos共识,都不能满足这个需求,所以dBFT共识诞生了。

第二个愿景“致力于成为最完善的基础设施,共同构建下一代互联网”,即我们想要为生态提供更好的开发体验,吸引更多传统开发者可以简单、平滑地进入区块链的开发世界。所以,早期时候我们的核心开发者们就想要提供一个轻量级的虚拟机以支持不同语言的开发。而高性能的VM,并支持不同语言的智能合约开发,就是我们的特色之一。
除了共识与基础设施之外,想要做一个更完善的底层和基础架构就需要不断添加更多的功能支持。这就是为什么我们选取了一个去中心化的数字身份NeoID、分布式文件存储NeoFS、提供Oracle以支持智能合约访问外部资源。
dBFT共识特性
dBFT是Neo两位创始人在BFT的基础上的一个升级。dBFT继承了BFT的一些特性,是在一个块内就可以确认交易,并做到不分叉。
还有一个特点是使用拜占庭容错共识。在三阶段共识里,第一个Prepare request相当于一个主节点发起共识请求,与其他节点达成一个一致性协议;第二个Prepare response是所有的节点对某一个区块进行一个签名的确认过程;最后一个Commit就是锁定某个块,确保在每一轮的共识中只有一个块的产生。

而基于此,我们又更新了dBFT2.0,不仅进一步完善了三阶段共识,加入了一些恢复机制,保证不会因网络延迟而导致卡块、网络停顿、临时分叉等情况。回顾下dBFT1.0,我们的共识在网络延迟、网络隔离比较严重的情况下,在出块的时间上浮动过大。而升级后的dBFT2.0,数据上可以很明显地看出我们的共识时间是在一个比较稳定的时间段里浮动,很好地提升了内存池的性能,并大大降低了Neo在网络处理上的负担。
dBFT共识流程
首先用户需要向钱包发起一笔交易,钱包对这笔交易签名之后,会发送到整个Neo区块链网络中,以上的流程都是通过钱包模块来执行的。当交易在网络中传输时,需要共识机制对交易进行打包,其中delegated节点会对交易打包至区块中,将区块广播至整个网络,网络中的其他节点收到这个交易后,会进行相应的验证与持有化地执行。这当中的共识协议使用到了整个Neo网络的底层结构,钱包模块、账本模块、虚拟机、共识等网络层结构。
前面我们介绍了下Neo的发展愿景,下面再来介绍下Neo对dApp提供的全方位支持。
区块链开发的基本流程
首先是需要搭建一个基本的开发环境,即本地区块链(私链)。当本地环境搭建完毕,就要去开发智能合约,并将智能合约放之于私链上运行,再通过SDK或者钱包浏览器插件与本地区块链进行交互。
那在这三个环节里,Neo都将提供哪些支持?
![]()
● 搭建本地网络
搭建本地网络,称其为Layer1,即Neo的节点以及私链如何使用。针对此,我们提供了一些易上手的支持,比如通过我们的neo-local可以一键部署整个私链环境,同时也可以通过部署自己的节点来搭建网络。我们提供了多个选择,C++节点、Python节点、Go节点、以及GUI节点等。
● 工具层
工具层,一些基础设施的支持。先看下区块链浏览器,它提供了一个界面便于用户可以更简单快速地浏览所有的区块数据;而智能合约的开发,支持C++、Python、Java、Go等各种全方位语言,从本地的开发工具到开发环境,以及开发引用库。同时,也有一些简易的开发方式,比如在线工具NeoRay、Neocompiler,开发者可以在web环境中调试并部署自己的合约。
● 应用层
应用层,如何将dApp与区块链进行交互。第一个可使用的工具是Neo SDK,并提供了多种语言的支持。开发者只要在开发中使用Neo SDK就可以使dApp与区块链进行基本的功能交互。另一个进行功能交互的方式是通过钱包或钱包插件。生态里的钱包或钱包插件都支持dApi标准,让dApp可以通过钱包插件与浏览器进行交互。
开发者若想要开发一个dApp,以上是Neo目前可以提供的所有相关支持。
本地私链neo-local
neo-local是一个比较完整的私链,如果大家熟悉docker的话就可以快速地在docker里启动neo-local,它就自带了一个本地私链,还有一个可交互的节点neo-python,以及区块链浏览器支持开发者浏览数据。
![]()
同时在启动neo-local时,我们已经预设好了钱包,并配有一定的NEO、GAS供开发者使用。
使用neo-local的第一步是,在github上通过git将neo-local克隆下来,克隆完毕后会在你电脑里生成一个neo-local代码库。这时可以在docker通过指令一键启动neo-local的所有部件,包括共识节点、交互节点、neo-python以及区块链浏览器。启动完毕后,它会持续地产生共识并且出块。
同时,neo-python的节点可以用来交互,通过docker指令进入neo-python节点里,进行钱包创建、合约的部署与调用。
但是关于合约这部分的操作,我们也提供了其他工具支持,即智能合约的一站式开发。NeoRay、Neocompiler是提供了在线的编译、部署、调用的开发环境,开发者可以去他们的web连接钱包后进行合约的所有操作,不需要在本地搭建自己的开发语言编写环境与compiler部署。
另外,我们还有一个一站式解决方案NEO·ONE,会在以后为大家做更多介绍。提供全方位开发工具的同时,我们也配有相关的开发指南,以方便开发者更快速地上手Neo开发。
智能合约开发套件 & dApp一站式开发
对于当下的开发环境而言,Neo已经提供了非常完善的开发支持。我们的下一步是要做更完善的基础设施,去摸索更友好的开发工具与框架。

所以接下来我要介绍两个开发工具:支持Neo开发的Visual Studio套件、dApp一站式开发NEO·ONE,这两个开发工具可以体现Neo不仅想要提供全方位的开发工具,而是不断提供更完善、更友好的开发工具。
首先来看下Neo智能合约开发套件。只要使用这个套件,就涵盖了Layer1和基础设施层的开发需求。在这个套件中,我们集成了私链支持与智能合约开发。
第二个是dApp开发框架,相比开发套件,它提供的支持涵盖了Layer1、基础设施、应用层。

● 自动部署Neo本地私链&区块浏览器
● JavaScript合约全面支持
● 智能合约编译&调用
● 支持dApp集成
● 支持Neo主网和测试网
开发者如果有好想法的话,欢迎使用NEO·ONE来开发一个简易的dApp。
Neo Talk 首期视频邀请 NGD 全栈开发组的王龙飞,解析Neo的发展愿景、技术特征及开发支持。视频详细介绍了Neo的智能合约、dBFT共识协议,以及本地私链neo-local的使用,提供全方位的开发工具,助力开发者轻松入门区块链开发。

被折叠的 条评论
为什么被折叠?



