hyperledger-fabric - 使用超级账本结构的 leveldb 会压缩数据吗?
问题描述
我们知道 leveldb 在 snappy 上默认压缩,但是,当我进入生产数据文件夹时,我看到了以下文件夹:
- 会计
- 链条
- 配置历史
- 历史级别数据库
- 账本提供者
- pvtdataStore
在链上,我可以看到创建的通道,并且有一个所有数据未压缩的块,我可以清楚地看到一切。该文件是33MB,我可以看到已经对频道、配置、升级进行了所有操作。
在 historyLeveldb 上,我可以看到另一个小得多的文件,扩展名为 .ldb 并且似乎已压缩。
leveldb 什么时候压缩文件?这两个文件夹和文件的作用是什么?查询账本时,查询的是什么文件?
解决方案
实际的分类账(又名“区块链”)是基于文件的。这些文件未压缩。
状态数据库(存储所有键的最新值)使用 LevelDB(或 CouchDB)。
执行“GetState”等操作时,查询状态数据库。当调用 API 访问块和交易时,有一个数据库维护着指向文件分类帐的索引/指针,并且实际数据从分类帐文件中返回。
推荐阅读
- python - rpy2:如何在 python 烧瓶中使用参数调用函数?
- python - 如何使用 Hasura GraphQL 查询 postgres RangeField
- javascript - 以 ANGULAR 搜索时出现在单个页面上的搜索结果
- javascript - 我怎样才能使用超过 2 个部分的这个 JavaScript 代码?
- angular - Ionic 4 的 NGRX 多订阅问题
- java - 由于 ClassNotFoundException,Spring Boot 2 DataJpaTest 无法自省带注释的方法
- ruby-on-rails - Elasticsearch 没有得到 searchkick 的许可
- python - struct.pack 和 struct.unpack 只做字符串的第一个字符
- ios - Xcode 11.4 Objective-C 语言的快速帮助,而不是 swift 语言,用于带有 Cocoapods 的 firebase API(iOS 13.4 应用程序)
- javascript - 它给定的未定义。无法从 Firebase 中检索名称