Eth和EthClient代码目录详细说明

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jiang_xinxing/article/details/80289835

一级目录
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

猜你喜欢

转载自blog.csdn.net/jiang_xinxing/article/details/80289835