一级目录
eth:以太坊协议
ethclient :以太坊RPC API客户端
二级目录
downloader:手动全链同步,主要负责区块链最开始的同步工作,当前的同步有两种模式, 一种是传统的fullmode,这种模式通过下载区块头,和区块体来构建区块链,同步的过程就和普通的区块插入的过程一样,包括区块头的验证,交易的验证,交易执行,账户状态的改变等操作,这其实是一个比较消耗CPU和磁盘的一个过程。另一种模式就是 快速同步的fast sync模式, 这种模式有专门的文档来描述。请参考fast sync的文档。简单的说 fast sync的模式会下载区块头,区块体和收据,插入的过程不会执行交易,然后在一个区块高度(最高的区块高度 - 1024)的时候同步所有的账户状态,后面的1024个区块会采用fullmode的方式来构建。 这种模式会加区块的插入时间,同时不会产生大量的历史的账户信息。会相对节约磁盘, 但是对于网络的消耗会更高。因为需要下载收据和状态。
fetcher:基于块通知的同步。接收到当我们接收到NewBlockHashesMsg消息得时候,我们只收到了很多Block的hash值。 需要通过hash值来同步区块
filters:用于区块,交易和日志事件的过滤,包包含了给用户提供过滤的功能,用户可以通过调用对交易或者区块进行过滤,然后持续的获取结果,如果5分钟没有操作,这个过滤器会被删除。
gasprice:提供gas的价格建议, 根据过去几个区块的gasprice,来得到当前的gasprice的建议价格
tracers:收集JavaScript交易追踪
github地址:
https://github.com/guoshijiang/go-ethereum-code-analysis
关注问我技术公众号,加小问,拉您入技术交流群:
【etherenum|Eth和EthClient代码目录详细说明】
文章图片
推荐阅读
- Blockchian|『0001』 - 如何通过 MyEtherWallet 创建钱包以及如何通过 Ethereum Wallet 和 MetaMask 恢复钱包账号
- etherenum|区块链轻钱包nodejs生成本地keystore
- 区块链技术|【比特币】BIP-0021 详细说明
- 技术|家佳保智能挖矿币种会是下一个风口吗()
- 微众银行BCOS平台共识算法PBFT和RAFT
- PBFT算法实现过程
- 区块链|区块链研究实验室 | 如何基于tendermint实现fabric的拜占庭容错排序
- 以太坊连载(十三)(导入预售钱包,更新、备份、恢复账号)
- Tendermint|C语言实现的ABCI