Skip to content

Latest commit

 

History

History
17 lines (10 loc) · 1.38 KB

封装的一些基础工具.md

File metadata and controls

17 lines (10 loc) · 1.38 KB

封装的一些基础工具

以太坊项目中,存在对golang生态体系中一些优秀工具进行封装的小模块,由于功能较为单一,单独成篇显得过于单薄。但是由于以太坊对这些小工具的封装非常优雅,具有很强的独立性和实用性。我们在此作一些分析,至少对于熟悉以太坊源码的编码方式是有帮助的。

metrics(探针)

ethdb源码分析中,我们看到了对goleveldb项目的封装。ethdb除了对goleveldb抽象了一层:

type Database interface

以支持与MemDatabase的同接口使用互换外,还在LDBDatabase中使用很多gometrics包下面的探针工具,以及能启动一个goroutine执行

go db.meter(3 * time.Second)

以3秒为周期,收集使用goleveldb过程中的延时和I/O数据量等指标。看起来很方便,但问题是我们如何使用这些收集来的信息呢?

log(日志)

golang的内置log包一直被作为槽点,而以太坊项目也不例外。故引入了log15以解决日志使用不便的问题。