本篇为转发,只做了下样式整理,原文地址。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 |
~/workspace/test ⌚ 14:02:17 $ tree . ├── accounts // 实现了高层级的Ethereum账号管理 │ ├── abi // 实现了Ethereum的ABI(应用程序二进制接口) │ │ └── bind // 该包生成Ethereum合约的Go绑定 │ │ └── backends │ ├── keystore // 实现了Secp256k1私钥的加密存储 │ └── usbwallet // 实现了支持USB硬件钱包 ├── cmd │ ├── abigen │ ├── bootnode // 该节点为Ethereum发现协议运行一个引导节点 │ ├── clef │ ├── cypher // 是Cypherium的官方客户端命令行 │ ├── ethkey │ ├── evm // 执行EVM代码片段 │ ├── faucet // 是以太faucet支持的轻量级客户 │ ├── p2psim // 为客户端命令行模拟 HTTP API │ ├── puppeth // 是一个命令组装和维护私人网路 │ ├── rlpdump // 能更好的打印出RLP格式的数据 │ ├── swarm // bzzhash命令能够更好的计算出swarm哈希树 │ ├── utils // 为Go-Ethereum命令提供说明 │ └── wnode ├── common // 包含一些帮助函数 │ ├── bitutil // 该包实现快速位操作 │ ├── compiler // 包装了Solity编译器可执行文件 │ ├── fdlimit │ ├── hexutil // 以0x为前缀的十六进制编码 │ ├── math │ └── mclock ├── consensus // 实现了不同以太共识引擎 │ ├── bftcosi │ │ └── cosi │ ├── clique // 实现了权威共识引擎 │ ├── ethash // 发动机工作的共识ethash证明 │ └── misc ├── console │ └── testdata ├── containers │ └── docker │ ├── develop-alpine │ ├── develop-ubuntu │ ├── master-alpine │ └── master-ubuntu ├── contracts │ ├── chequebook // ‘支票薄’以太智能合约 │ └── ens ├── core // 核心部分,它包含账户、区块、创世块、区块链、transaction、bloom的定义以及区块如何验证、如何加入链以及transaction如何使用vm执行也就是智能合约的执行都在这里完成。 │ ├── asm // 汇编和反汇编接口 │ ├── bloombits // Bloom过滤批量数据 │ ├── rawdb │ ├── state // 封装在以太状态树之上的一种缓存结构 │ ├── types // 以太合约支持的数据类型 │ └── vm // 以太虚拟机 │ └── runtime // 一种用于执行EVM代码的基本执行模型 ├── crypto // 加密工具包含不限于hash算法、ECC算法等 │ ├── bn256 // 最优的ATE配对在256位Barreto-Naehrig曲线上 │ │ ├── cloudflare // 在128位安全级别上的特殊双线性组 │ │ └── google // 在128位安全级别上的特殊双线性组 │ ├── ecies │ ├── randentropy │ ├── secp256k1 // 封装比特币secp256k1的C库 │ └── sha3 // Sha-3固定输出长度散列函数 and 由FIPS-202定义的抖动变量输出长度散列函数 ├── dashboard │ └── assets │ ├── components │ └── types ├── docs ├── eth // 以太坊协议 │ ├── downloader // 手动全链同步 │ ├── fetcher // 基于块通知的同步 │ ├── filters // 用于区块,交易和日志事件的过滤 │ ├── gasprice │ └── tracers // 收集JavaScript交易追踪 ├── ethclient // 以太坊RPC AIP客户端 ├── ethdb // 提供了数据源实现内存以及leveldb,并使用数据源扩展了不同实现,这包含缓存数据源、链数据源,依据于此又封装出读写缓存、异步读写缓存以及链存储相关的数据源实现。定义了如何使用datasource存储block、transaction,换句话说就是block、transaction的存储数据结构 ├── ethstats // 网络统计报告服务 ├── event // 处理实时事件的费用 │ └── filter // 事件过滤 ├── internal │ ├── build │ ├── cmdtest │ ├── debug // 调试接口Go运行时调试功能 │ ├── ethapi // 常用的以太坊API函数 │ ├── guide // 小测试套件,以确保开发指南工作中的代码段正常运行 │ ├── jsre // JavaScript执行环境 │ │ └── deps // 控制台JavaScript依赖项Go嵌入 │ └── web3ext // geth确保web3.js延伸 ├── les // 轻量级Ethereum子协议 │ └── flowcontrol // 客户端流程控制机制 ├── light // 客户端实现按需检索能力的状态和链对象 ├── log // 输出日志 │ └── term ├── metrics // Coda Hale度量库的Go端口 │ ├── exp // 表达式相关操作 │ ├── influxdb │ └── librato ├── miner // 以太坊块创建和挖矿 ├── mobile // geth的移动端API ├── node // 设置多维接口节点 ├── p2p // p2p网络协议 │ ├── discover // 节点发现协议 │ ├── discv5 // RLPx v5主题相关的协议 │ ├── enr // 实现EIP-778中的以太坊节点记录 │ ├── nat // 提供网络端口映射协议的权限 │ ├── netutil // 网络包拓展 │ ├── protocols // p2p拓展 │ └── simulations // 实现模拟p2p网络 ├── params ├── rlp // RLP系列化格式 ├── rpc // 通过网络或者I/O链接来访问接口 ├── signer │ ├── core │ ├── rules │ │ └── deps │ └── storage ├── swarm │ ├── api │ │ ├── client │ │ └── http │ ├── bmt │ ├── dev │ ├── fuse │ ├── grafana_dashboards │ ├── log │ ├── metrics │ ├── multihash │ ├── network │ ├── pot │ ├── pss │ ├── services │ ├── state │ ├── storage │ └── testutil ├── tests // 以太坊JSON测试 ├── trie // Merkle Patricia树实现 ├── vendor │ ├── github.com │ ├── gopkg.in │ │ └── check.v1 // Go更深的测试 └── whisper ├── mailserver ├── shhclient ├── whisperv5 └── whisperv6 |