这是一个 基于 Go Ethereum 的 Neo X 节点——以太坊执行层的 Go 语言实现。
1. 核心目录结构
| 目录 | 用途 |
|---|---|
cmd/ |
可执行入口 (geth, clef, devp2p, bootnode, evm 等) |
core/ |
核心区块链逻辑:区块验证、状态管理、交易池、EVM |
eth/ |
以太坊协议实现:下载器、处理器、同步、p2p 通信 |
consensus/ |
共识引擎:dbft (Neo X)、clique、ethash、beacon |
miner/ |
区块挖矿/密封逻辑 |
node/ |
P2P 节点生命周期管理、RPC 服务 |
p2p/ |
点对点网络:发现协议 (v4/v5)、RLPx 传输 |
rpc/ |
JSON-RPC API 服务器 |
accounts/ |
账户管理:keystore、硬件钱包、ABI 处理 |
crypto/ |
加密操作:secp256k1、BN256、KZG4844 |
trie/ |
Merkle Patricia Trie 实现(状态/存储) |
ethdb/ |
数据库抽象层:leveldb、pebble、memorydb、remotedb |
beacon/ |
Beacon 链集成:blsync、engine API、light client |
antimev/ |
抗 MEV 相关功能(Neo X) |
2. 关键架构组件
A. 节点层 (node/)
node.Node – 管理所有服务和生命周期的中央容器。处理 P2P 服务器设置、RPC 服务器(HTTP、WebSocket、IPC)、账户管理。服务注册模式用于扩展功能。
B. 以太坊服务 (eth/)
- eth.Ethereum – 主要全节点服务实现
- eth.handler – 以太坊协议的 P2P 消息处理
- eth.downloader – 区块同步(全量同步、snap 同步)
- eth.dbft – Neo X 共识的 dbft 协议实现
C. 区块链核心 (core/)
- core.BlockChain – 区块链本身:区块验证、插入、重组
- core.StateDB – 账户状态管理(余额、存储、代码)
- core.TxPool – 待处理交易的交易池
- core.EVM – 智能合约执行的以太坊虚拟机
D. 共识引擎 (consensus/)
- consensus.Engine – 共识算法接口
- consensus/dbft – Neo X 的 dBFT(确定性拜占庭容错)共识
- consensus/clique – 权威证明共识
- consensus/ethash – Ethash 工作量证明
- consensus/beacon – Beacon 链集成
E. P2P 网络 (p2p/)
- p2p.Server – 管理 peer 连接的主要 P2P 服务器
- p2p/discover – 节点发现(UDPv4、UDPv5)
- p2p/rlpx – RLPx 传输协议(加密通信)
3. Neo X 特定扩展
基于标准 go-ethereum,此 Neo X 变体包含:
- consensus/dbft – Neo X 的 dBFT 共识协议,包含 DKG(分布式密钥生成)支持、区块签名和终局化、抗 MEV 措施
- antimev/ – 抗 MEV keystore 和相关功能
- eth/protocols/dbft – 用于共识消息交换的 dBFT 网络协议
架构总结
该架构采用分层服务模式:
node.Node作为服务容器- 服务(eth、les 等)向节点注册自身
- 每个服务有自己的子组件(txpool、blockchain、handler、downloader)
- 组件通过接口通信以实现松耦合
- RPC 层向外部客户端暴露功能
该架构采用分层服务模式,node.Node 作为服务容器,各服务(eth、les 等)向节点注册自身,每个服务有自己的子组件,组件通过接口通信以实现松耦合,RPC 层向外部客户端暴露功能。



