go-ethereum目录

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/tracers JavaScript交易跟踪器的集合
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/deps go-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 为人类和机器都可读的最佳实践日志记录提供了一个基于观点的、简单的工具包
metrics Coda 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/discv5 Discvery 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 实现梅克尔帕特里夏树

你可能感兴趣的:(以太坊,区块链)