Skip to content

Commit ef31dd4

Browse files
Update ethdb源码分析.md
1 parent 6b5ea99 commit ef31dd4

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

ethdb源码分析.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
go-ethereum所有的数据存储在levelDB这个Google开源的KeyValue文件数据库中,整个区块链的所有数据都存储在一个levelDB的数据库中,levelDB支持按照文件大小切分文件的功能,所以我们看到的区块链的数据都是一个一个小文件,其实这些小文件都是一个同一个levelDB实例。这里简单的看下levelDB的go封装代码。
1+
go-ethereum所有的数据存储在levelDB这个Google开源的KeyValue文件数据库中,整个区块链的所有数据都存储在一个levelDB的数据库中,levelDB支持按照文件大小切分文件的功能,所以我们看到的区块链的数据都是一个一个小文件,其实这些小文件都是同一个levelDB实例。这里简单的看下levelDB的go封装代码。
22

33
levelDB官方网站介绍的特点
44

@@ -112,7 +112,7 @@ levelDB官方网站介绍的特点
112112
}
113113

114114

115-
##database.go
115+
## database.go
116116
这个就是实际ethereum客户端使用的代码, 封装了levelDB的接口。
117117

118118

@@ -203,7 +203,7 @@ levelDB官方网站介绍的特点
203203
return db.db.Has(key, nil)
204204
}
205205

206-
###Metrics的处理
206+
### Metrics的处理
207207
之前在创建NewLDBDatabase的时候,并没有初始化内部的很多Mertrics,这个时候Mertrics是为nil的。初始化Mertrics是在Meter方法中。外部传入了一个prefix参数,然后创建了各种Mertrics(具体如何创建Merter,会后续在Meter专题进行分析),然后创建了quitChan。 最后启动了一个线程调用了db.meter方法。
208208

209209
// Meter configures the database metrics collectors and

0 commit comments

Comments
 (0)