File tree 1 file changed +3
-3
lines changed
1 file changed +3
-3
lines changed Original file line number Diff line number Diff line change 1
- go-ethereum所有的数据存储在levelDB这个Google开源的KeyValue文件数据库中,整个区块链的所有数据都存储在一个levelDB的数据库中,levelDB支持按照文件大小切分文件的功能,所以我们看到的区块链的数据都是一个一个小文件,其实这些小文件都是一个同一个levelDB实例 。这里简单的看下levelDB的go封装代码。
1
+ go-ethereum所有的数据存储在levelDB这个Google开源的KeyValue文件数据库中,整个区块链的所有数据都存储在一个levelDB的数据库中,levelDB支持按照文件大小切分文件的功能,所以我们看到的区块链的数据都是一个一个小文件,其实这些小文件都是同一个levelDB实例 。这里简单的看下levelDB的go封装代码。
2
2
3
3
levelDB官方网站介绍的特点
4
4
@@ -112,7 +112,7 @@ levelDB官方网站介绍的特点
112
112
}
113
113
114
114
115
- ##database.go
115
+ ## database.go
116
116
这个就是实际ethereum客户端使用的代码, 封装了levelDB的接口。
117
117
118
118
@@ -203,7 +203,7 @@ levelDB官方网站介绍的特点
203
203
return db.db.Has(key, nil)
204
204
}
205
205
206
- ###Metrics的处理
206
+ ### Metrics的处理
207
207
之前在创建NewLDBDatabase的时候,并没有初始化内部的很多Mertrics,这个时候Mertrics是为nil的。初始化Mertrics是在Meter方法中。外部传入了一个prefix参数,然后创建了各种Mertrics(具体如何创建Merter,会后续在Meter专题进行分析),然后创建了quitChan。 最后启动了一个线程调用了db.meter方法。
208
208
209
209
// Meter configures the database metrics collectors and
You can’t perform that action at this time.
0 commit comments