首页 > 解决方案 > 使用超级账本结构的 leveldb 会压缩数据吗?

问题描述

我们知道 leveldb 在 snappy 上默认压缩,但是,当我进入生产数据文件夹时,我看到了以下文件夹:

在链上,我可以看到创建的通道,并且有一个所有数据未压缩的块,我可以清楚地看到一切。该文件是33MB,我可以看到已经对频道、配置、升级进行了所有操作。

在 historyLeveldb 上,我可以看到另一个小得多的文件,扩展名为 .ldb 并且似乎已压缩。

leveldb 什么时候压缩文件?这两个文件夹和文件的作用是什么?查询账本时,查询的是什么文件?

标签: hyperledger-fabrichyperledgerleveldb

解决方案


实际的分类账(又名“区块链”)是基于文件的。这些文件未压缩。

状态数据库(存储所有键的最新值)使用 LevelDB(或 CouchDB)。

执行“GetState”等操作时,查询状态数据库。当调用 API 访问块和交易时,有一个数据库维护着指向文件分类帐的索引/指针,并且实际数据从分类帐文件中返回。


推荐阅读