Ethereum-ethdb源码分析

Ethereum所有的数据都存储在levelDB数据库中(Google 开源的一个高性能的K-V数据库),levelDB支持按照文件大小拆分数据的功能,所以看到的所有区块链数据都是拆分成一小块一小块存储的。


interface.go

interface.go 定义了 Putter (存) Get (取) Has(有否)Delete(删)等功能,用于数据库操作,并且支持多线程操作,这些操作都是线程安全的操作(通过go读写锁来实现线程安全)。

database.go 是interface.go实现,主要是实现数据库的操作。

database_test.go 是测试使用

这里使用的leveldb的实现本身就是线程安全的,支持并发操作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容