当前位置: 首页 > 工具软件 > Go Ethereum > 使用案例 >

go-ethereum目录

禹德水
2023-12-01

go-ethereum目录

本新手想从头学下以太坊源码,但是中文版的go-ethereum目录结构版本都稍旧,就翻译了英文版本的,应该有不少错误,欢迎大家指正。
原目录网址ethereum · pkg.go.dev

目录结构
accounts实现了高级以太坊账户管理
accounts/abi实现了以太坊abi(应用程序二进制接口)
accounts/abi/bind生成以太坊合约Go语言绑定
accounts/external
accounts/keystore实现了secp256k1私钥的加密存储
accounts/scwallet
accounts/usbwallet实现支持USB硬件钱包
accounts/usbwallet/trezor包含连接协议
build编译和构建的脚本与配置
cmd命令行工具
cmd/abidump
cmd/abigen将以太坊智能合约定义转换为类型安全的Go或Java包的源代码转换器
cmd/bootnode启动一个用于网络发现的节点
cmd/checkpoint-admin一个实用程序,可用于查询检查点信息并注册稳定检查点到oracle合约。
cmd/clef
cmd/devp2p
cmd/ethkey
cmd/evm执行EVM代码片段
cmd/faucet一个依赖轻客户端的以太水龙头
cmd/geth以太坊官方命令行客户端
cmd/p2psim提供了一个命令行客户端来模拟HTTP API
cmd/puppeth组装和维护私有网络的命令
cmd/rlpdump提供了一个RLP数据的格式化输出
cmd/utils提供了go-ethereum命令的辅助函数
common包含各种辅助函数
common/bitutil实现快速位操作
common/compiler封装Solidity和Vyper编译器可执行文件(solc;vyper)
common/fdlimit
common/hexutil使用0x前缀实现十六进制编码。
common/math提供整数数学实用程序
common/mclock单调时钟源的封装器
common/prque实现一个支持任意值类型和int64优先级的优先级队列数据结构
consensus实现不同的以太坊共识引擎
consensus/clique实现POA共识引擎
consensus/ethash实现ethash POW共识引擎
consensus/misc
console
console/prompt
contracts/checkpointoracle一个链上轻型客户端检查点oracle
core实现以太坊共识协议
core/asm为处理EVM组装指令提供支持(例如,拆卸它们)
core/bloombits对数据批实现bloom过滤
core/forkid实现EIP-2124
core/rawdb包含低级数据库访问器的集合
core/state提供在以太坊状态树上的缓存层
core/state/snapshot实现日志记录的动态转储
core/types包含与以太坊共识相关的数据类型
core/vm实现以太坊虚拟机
core/vm/runtime提供执行EVM代码的基本执行模型
crypto
crypto/blake2b实现由RFC 7693定义的BLAKE2b散列算法和可扩展输出函数(XOF) BLAKE2Xb
crypto/bls12381
crypto/bn256在256位Barreto-Naehrig曲线上实现最优Ate配对
crypto/bn256/cloudflare在128位安全级别上实现特定的双线性组
crypto/bn256/google实现一个特定的双线性组
crypto/ecies
crypto/secp256k1封装了比特币secp256k1 C库
crypto/signify
eth实现以太坊协议
eth/downloader包含手动全链同步
eth/fetcher包含基于区块头、区块或交易同步的通知
eth/filters为区块、交易和日志事件实现以太坊过滤系统
eth/gasprice
eth/tracersJavaScript交易跟踪器的集合
eth/tracers/internal/tracers包含实用JavaScript跟踪程序
ethclient为以太坊RPC API提供客户端
ethdb定义以太坊数据存储的接口
ethdb/dbtest
ethdb/leveldb实现了基于LevelDB的键值数据库
ethdb/memorydb实现基于内存映射的键值数据库
ethstats实现网络统计报告服务
event处理实时事件的订阅
graphql提供以太坊节点数据的GraphQL接口
internal/build
internal/cmdtest
internal/debug接口Golang运行时调试设施
internal/ethapi实现一般以太坊API功能
internal/flags
internal/guide一个小型测试套件,用于确保开发指南中的代码片段能够正常工作
internal/jsre为JavaScript提供执行环境
internal/jsre/depsgo-bindata生成的代码
internal/testlog为单元测试提供日志处理程序
internal/utesting为包测试提供独立的备选
internal/web3ext包含geth特定的web3.js扩展
les实现轻型以太坊子协议
les/checkpointoracle检查点oracle合约的包装器,定义了额外的规则
les/flowcontrol实现客户端流控制机制
les/lespay/client
les/lespay/server
les/utils
light为以太坊轻客户端实现按需检索的状态和链对象
log为人类和机器都可读的最佳实践日志记录提供了一个基于观点的、简单的工具包
metricsCoda Hale的指标库Go接口
metrics/exp在任何/debug/metrics请求中,将go-metrics挂钩到expvar中,将注册表中的所有var加载到expvar中,并执行常规的expvar处理程序
metrics/influxdb
metrics/librato
metrics/prometheus将go-metrics暴露为Prometheus格式
miner实现以太坊区块创建和挖掘
mobile包含go-ethereum的简化移动API
node设置多协议以太坊节点
p2p实现以太坊p2p网络协议
p2p/discover实现节点发现协议
p2p/discover/v4wire实现Discovery v4连接协议
p2p/discover/v5wire
p2p/discv5Discvery v5的原型实现
p2p/dnsdisc通过DNS实现节点发现(EIP-1459)
p2p/enode
p2p/enr实现EIP-778中定义的以太坊节点记录
p2p/nat提供对公共网络端口映射协议的访问
p2p/netutil包含对网络包的扩展
p2p/nodestate
p2p/rlpx实现RLPx传输协议
p2p/simulations模拟p2p网络
p2p/simulations/adapters
p2p/simulations/examples
p2p/simulations/pipes
params
rlp实现RLP序列化格式
rpc在多个传输中实现双向JSON-RPC 2.0
signer/core
signer/fourbyte包含4字节数据库
signer/rules
signer/rules/deps
signer/storage
tests实现以太坊JSON测试的执行
tests/fuzzers/abi
tests/fuzzers/bls12381
tests/fuzzers/keystore
tests/fuzzers/rlp
tests/fuzzers/stacktrie
tests/fuzzers/stacktrie/debug
tests/fuzzers/trie
tests/fuzzers/txfetcher
trie实现梅克尔帕特里夏树
 类似资料: