#log #log-messages #records #bitcoin #checksum #system #stored

bitcoinleveldb-log

日志消息写入接口

4个版本

0.1.16-alpha.02023年3月31日
0.1.13-alpha.02023年3月17日
0.1.12-alpha.02023年1月19日
0.1.10-alpha.02023年1月18日

#43 in #records

Download history 144/week @ 2024-03-11 180/week @ 2024-03-18 366/week @ 2024-03-25 319/week @ 2024-04-01 138/week @ 2024-04-08 175/week @ 2024-04-15 188/week @ 2024-04-22 174/week @ 2024-04-29 220/week @ 2024-05-06 175/week @ 2024-05-13 182/week @ 2024-05-20 129/week @ 2024-05-27 136/week @ 2024-06-03 155/week @ 2024-06-10 182/week @ 2024-06-17 209/week @ 2024-06-24

682 每月下载量
114 个crate中使用 (9 直接)

MIT 许可证

1MB
1.5K SLoC

bitcoinleveldb-log

这个Rust crate是直接从Bitcoin Core的C++实现日志组件翻译而来的。它提供了一套类型和函数,用于处理日志记录、日志编写器和日志读取器。

该crate包含诸如LogRecordTypeExtendedRecordTypes等类型,它们定义了可以写入日志的记录类型,包括数据记录和其他特殊用途记录。该crate还提供了LogWriterLogReader类型,可用于写入和读取日志记录。

日志的一个重要特性是它为每条记录包含校验和,以确保可以检测到数据损坏。该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