Permalink
Branch: master
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
74 lines (39 sloc) 2.49 KB

NEO基本架构

NEO系统

NEO 是一个区块链系统,他包括一揽子子项目。 区块链系统首先是一个P2P网络,不同于CS网络,P2P网络没有客户端服务器之分。 都称为节点。

NEO系统可以大致划分为 节点、客户端、编译器 三个部分。

围绕NEO系统还有一些很有用的设施: 浏览器、轻钱包、交易所、等等。

所有与NEO有关的系统都可统称为NEO生态。

一、NEO 节点

NEO节点的功能可大致分为

网络通讯

P2P组网的基础设施,NEO基于Socket TCP协议组网。

因为P2P组网需要节点间实现互联,而当一些节点在网关之后时入站连接无法接通。

为此NEO网络通讯层支持uPnp协议,如果网关允许,可自动与网关协商端口映射,增加P2P联通率。

共识机制(仅CLI)

NEO采用独创的DBFT共识机制,该机制主要特征为:

1.可提供 f=⌊(n-1)/3⌋ 的容错能力。

2.具有良好的最终性,一个确认即最终确认。

3.区块无法被分叉,交易也不会发生撤销或回滚

*NEOGUI 没有共识功能

本地存储

NEO节点本地区块数据和状态数据保存采用开源数据库LevelDB

levelDB 是一个高性能单机数据库,KeyValue形式存取,拥有很稳定的写入能力。

运行智能合约

NEO是一个完全智能合约化的系统,每一笔交易的验证都是智能合约,如果是智能合约交易还有独立的合约存储区可以存放数据。

NEO的智能合约运行在NEO自己开发的NEOVM之上。

NEOVM是一个专用的虚拟机,所有的外部扩展全部通过syscall实现,同时提供可缩放的特性和容易控制的安全性。

钱包管理

NEO节点可以打开钱包文件,进行相应操作

RPC协议(仅CLI)

因为节点含有数据库,并且需要持续开机同步区块数据。大部分应用场景下,节点是作为CS结构的S存在,另外给用户提供图形化更友好连接到节点不自己同步区块的GUI。

所以节点提供RPC接口,供远程访问

NEO节点的RPC协议 符合JSONRPC 2.0 标准

二、NEO 客户端

特指 NEOGUI ,这是一个演示性质的客户端,供开发者了解如何NEO的图形界面如何工作,以及演示新的功能如何实现。

三、NEO (智能合约)编译器

NEO智能合约采用用先存流行语言编译为NEOVM 字节码的机制(简称AVM)

推荐使用C# Compiler 进行开发测试。

我们这个系列的例子将主要采用C# compiler