to be
a problem slover

ethereum source tree analysis

base on ethereum release Osun (v1.10.16), ethereum source tree is as below:

go-ethereum
├── accounts                        # 实现了一个高等级的以太坊账户管理
│   ├── abi
│   ├── external
│   ├── keystore
│   ├── scwallet
│   └── usbwallet
├── build                           # 编译相关脚本,编译好的可执行文件也放在这里(bin目录)
│   └── deb
├── cmd                             # 命令行工具
│   ├── abidump                     # Parses the given ABI data and tries to interpret it from the fourbyte database.
│   ├── abigen                      # 通过合约生成go代码,实现和go和合约的交互
│   ├── bootnode                    # 启动一个bootstrap节点帮助节点发现
│   ├── checkpoint-admin            
│   ├── clef                        # 独立交易签名器,实现一方请求一方确认;规则引擎,实现自动化请求确认
│   ├── devp2p                      # 和节点网络层进行交互的utility
│   ├── ethkey
│   ├── evm                         # Developer utility version of the EVM
│   ├── faucet                      # 水龙头
│   ├── geth                        # 以太坊节点
│   ├── p2psim
│   ├── puppeth                     # 帮助创建一个新以太坊网络的命令行向导
│   ├── rlpdump                     # Developer utility tool to convert binary RLP to user-friendlier hierarchical representation
│   └── utils
├── common                          # 公共的工具类
│   ├── bitutil
│   ├── compiler
│   ├── fdlimit
│   ├── hexutil
│   ├── math
│   ├── mclock
│   └── prque
├── consensus                       # 提供了以太坊的一些共识算法,比如ethhash, clique(proof-of-authority)
│   ├── beacon
│   ├── clique
│   ├── ethash
│   └── misc
├── console                         # console类
│   ├── prompt
│   └── testdata
├── contracts
│   └── checkpointoracle
├── core                            # 以太坊的核心数据结构和算法(虚拟机,状态,区块链,布隆过滤器)
│   ├── asm
│   ├── beacon
│   ├── bloombits
│   ├── forkid
│   ├── rawdb
│   ├── state
│   ├── types
│   └── vm
├── crypto                          # 加密和hash算法
│   ├── blake2b
│   ├── bls12381
│   ├── bn256
│   ├── ecies
│   ├── secp256k1
│   └── signify
├── docs
│   ├── audits
│   └── postmortems
├── eth                             # 实现了以太坊的协议
│   ├── catalyst
│   ├── downloader
│   ├── ethconfig
│   ├── fetcher
│   ├── filters
│   ├── gasprice
│   ├── protocols
│   └── tracers
├── ethclient                       # 提供了以太坊的RPC客户端
│   └── gethclient
├── ethdb                           # eth的数据库(包括实际使用的leveldb和供测试使用的内存数据库)
│   ├── dbtest
│   ├── leveldb
│   └── memorydb
├── ethstats                        # 提供网络状态的报告
├── event                           # 处理实时的事件
├── graphql
├── internal
│   ├── build
│   ├── cmdtest
│   ├── debug
│   ├── ethapi
│   ├── flags
│   ├── guide
│   ├── jsre
│   ├── shutdowncheck
│   ├── syncx
│   ├── testlog
│   ├── utesting
│   └── web3ext
├── les                             # 实现了以太坊的轻量级协议子集
│   ├── catalyst
│   ├── checkpointoracle
│   ├── downloader
│   ├── fetcher
│   ├── flowcontrol
│   ├── utils
│   └── vflux
├── light                           # 实现为以太坊轻量级客户端提供按需检索的功能
├── log                             # 提供对人机都友好的日志信息
├── metrics                         # 统计
│   ├── exp
│   ├── influxdb
│   ├── librato
│   └── prometheus
├── miner                           # 提供以太坊的区块创建和挖矿
│   └── stress
├── mobile                          # 移动端使用的一些warpper
├── node                            # 以太坊的多种类型的节点
├── p2p                             # 以太坊p2p网络协议
│   ├── discover
│   ├── dnsdisc
│   ├── enode
│   ├── enr
│   ├── msgrate
│   ├── nat
│   ├── netutil
│   ├── nodestate
│   ├── rlpx
│   ├── simulations
│   └── tracker
├── params
├── rlp                             # 以太坊序列化处理
│   ├── internal
│   └── rlpgen
├── rpc                             # 远程方法调用
│   └── testdata
├── signer
│   ├── core
│   ├── fourbyte
│   ├── rules
│   └── storage
├── swarm                           # swarm网络处理
├── tests                           # 测试
│   ├── evm-benchmarks
│   ├── fuzzers
│   ├── solidity
│   └── testdata
└── trie                            # 以太坊重要的数据结构Package trie implements Merkle Patricia Tries
赞(4) 打赏
欢迎转载,注明出处:刘世明的博客 » ethereum source tree analysis

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下作者

支付宝扫一扫打赏

微信扫一扫打赏