geth目录结构(2022.11 master)

  • accounts:账户管理

  • Build:makefile编译与构建相关脚本文件

  • cmd:命令行工具管理

    • abidump:解析给定ABI并尝试从4byte数据库解释

    • abigen:源码生成器,将solidity合约 => safe-go包(golang友好工具)

    • bootnode:启动网络发现节点,bootnode是指以太坊p2p通讯时的初始引导节点,在找不到任何peers时,就去连接bootnode(通过一系列bootstrap引导程序实现)

    • checkpoint-admin:更新检查点oracle状态的工具(如:部署检查点oracle合约、签署新的检查点以及更新检查点oracle契约中的检查点)

    • clef:签署交易和数据的工具,帮助dapp不依赖Geth的账户管理

    • devp2p:测试p2p通信工具

    • ethkey:处理以太坊kestore密钥文件的工具

    • evm:虚拟机开发工具,受隔离的代码调试环境,可以用于调试opcodes

    • faucet:水龙头工具

    • geth:以太坊命令行客户端

    • p2psim:提供工具以模拟http的API

    • puppeth:新以太坊网络创建向导工具

    • rlpdump:RLP序列化输出工具

    • utils:提供一些公共工具

  • common:公共工具包管理

  • consensus:共识算法(beacon-Gasper(2.0-POS),ethash(1.0-POW),clique(private testnet-POA))

  • console:geth console交互式命令管理(Geth Web3 控制台的入口)

  • contracts/checkpointoracle检查点checkpoint oracle以太坊预言机的合约实现与管理

  • core:核心数据结构(区块,EVM,logsbloom...)

  • crypto:密码学相关算法

  • docs:代码审计与一些事件文件管理

  • eth:以太坊协议层的实现

  • ethclient:RPC客户端(geth)

  • ethdb:数据库管理(世界状态stateDB底层levelDB以及一些测试用数据库)

  • ethstats:以太坊网络状态报告服务

  • event:实时事件管理

  • graphql:query language,针对graph(图状数据)高效查询语言

  • internal:一些内部使用的工具库的集合

  • les:以太坊轻量级轻节点通讯子协议(LES),为轻节点通讯准备的

  • light:以太坊轻客户端相关功能实现,可按需检索的状态和链对象等

  • log:节点运行的日志(人机友好格式)管理

  • metrices:服务监控相关代码

  • miner:区块创建于挖矿相关逻辑

  • mobile:geth移动端相关封装与api

  • node:以太坊各种节点的实现

  • p2p:p2p网络协议

  • params:预设一系列参数值(如: bootnode的enode地址)

  • rlp:实现递归长度前缀,以太坊序列化编码方法

  • rpc:RPC接口封装(如IPC、http、websocket)

  • signer:签名signature的实现与管理

  • swarm:swarm分布式存储实现

  • tests:单元测试相关代码

  • trie:MPT(Merkle Patrica Trie)数据结构的实现

Last updated