4个版本
0.1.16-alpha.0 | 2023年3月31日 |
---|---|
0.1.13-alpha.0 | 2023年3月17日 |
0.1.12-alpha.0 | 2023年1月19日 |
0.1.10-alpha.0 | 2023年1月18日 |
#43 in #records
682 每月下载量
在 114 个crate中使用 (9 直接)
1MB
1.5K SLoC
bitcoinleveldb-log
这个Rust crate是直接从Bitcoin Core的C++实现日志组件翻译而来的。它提供了一套类型和函数,用于处理日志记录、日志编写器和日志读取器。
该crate包含诸如LogRecordType
和ExtendedRecordTypes
等类型,它们定义了可以写入日志的记录类型,包括数据记录和其他特殊用途记录。该crate还提供了LogWriter
和LogReader
类型,可用于写入和读取日志记录。
日志的一个重要特性是它为每条记录包含校验和,以确保可以检测到数据损坏。该crate提供了fix_checksum
函数,可用于修复已损坏记录的校验和。
该crate仍在从C++翻译到Rust的过程中,因此一些函数体可能仍然不完整。然而,一旦翻译过程完成,系统将可进行测试。
注意:此crate是直接从C++到Rust的Bitcoin Core翻译的一部分。因此,一些函数体可能仍在翻译过程中。请注意,一旦翻译过程完成,该系统将可进行测试。
38> 这如何应用于leveldb?
bitcoinleveldb-log crate是Bitcoin Core软件中使用的日志系统的Rust实现,该系统基于LevelDB库。
在LevelDB中,日志是一个预写日志,记录了对数据库的每次修改。日志记录按顺序存储,日志通常存储在磁盘上以提高持久性。日志提供了一种方法,在崩溃或其他故障的情况下通过重新播放日志来恢复数据库,从而将数据库更新到最新状态。
此crate中的Rust实现提供了与Bitcoin Core中的C++实现类似的功能,包括读取和写入日志记录、执行校验和验证以及处理各种错误条件。该crate包含各种测试函数以确保实现的正确性,包括读取和写入日志记录、处理错误和验证日志完整性的测试。
总体而言,这个库为Bitcoin Core使用的LevelDB存储引擎提供了一个关键组件,确保在发生故障时能够可靠地存储和恢复数据。
依赖项
~88MB
~828K SLoC