#block-height #block-hash #find #bitcoin #data-block #time #ancestor

bitcoin-foundblock

寻找区块,寻找具有时间和高度的第一个区块,通过高度寻找祖先,通过哈希值寻找祖先等

2个版本

0.1.16-alpha.02023年4月2日
0.1.12-alpha.02023年1月19日

#9 in #data-block

Download history 93/week @ 2024-03-11 120/week @ 2024-03-18 195/week @ 2024-03-25 194/week @ 2024-04-01 84/week @ 2024-04-08 119/week @ 2024-04-15 121/week @ 2024-04-22 111/week @ 2024-04-29 136/week @ 2024-05-06 111/week @ 2024-05-13 111/week @ 2024-05-20 72/week @ 2024-05-27 89/week @ 2024-06-03 88/week @ 2024-06-10 99/week @ 2024-06-17 121/week @ 2024-06-24

397 每月下载量
46 个crate(3 个直接) 中使用

MIT 许可证

435KB
2K SLoC

Bitcoin-foundblock

Bitcoin-foundblock 是一个Rust包,是直接将比特币代码库从C++转换为Rust的一部分。该包提供函数和特质以帮助定位和操作比特币区块。

请注意,尽管大部分代码已从C++转换,但某些函数体仍在开发中。

找到的区块

FoundBlock 结构体提供了一种辅助手段,当找到区块时可以选择性地返回区块数据的一部分。

该包对于希望使用Rust与比特币网络交互的开发人员非常有用,他们需要搜索和检索区块数据。

特质

该包包含以下特质

  • FindBlock:返回节点是否具有指定的区块,并且可选地返回区块元数据或内容。

  • FindFirstBlockWithTimeAndHeight:找到链中第一个时间戳大于或等于指定时间且高度大于或等于指定高度的区块。如果没有找到具有足够高时间戳和高度的区块,则返回false。

  • FindAncestorByHeight:找到指定高度处的区块的祖先,并可选地返回祖先信息。

  • FindAncestorByHash:返回一个区块是否从指定的祖先派生,并可选地返回祖先信息。

  • FindCommonAncestor:找到两个区块之间的最近共同祖先,并可选地返回区块信息。

找到的区块

FoundBlock 结构体是 findBlock 函数的辅助,可以可选性地返回区块数据的一部分。如果找到区块,则通过设置指定的输出变量返回数据。如果未找到区块,则输出变量将保持其原始值。

用法

要在Rust项目中使用Bitcoin-foundblock,只需将其添加到您的 Cargo.toml 文件中的依赖项即可

[dependencies]
bitcoin-foundblock = "0.1"

然后,根据需要将相关的函数和特质导入到您的代码中

use bitcoin_foundblock::{FindBlock, FoundBlock};

许可证

Bitcoin-foundblock 采用MIT许可证。有关详细信息,请参阅 LICENSE 文件。

贡献

欢迎贡献力量!请参阅 CONTRIBUTING 文件以了解如何贡献的详细信息。

致谢

这个包是将比特币代码库从C++直接翻译成Rust的一部分。感谢比特币开发者在这个重要项目上的工作。

特质

这些特质定义了 FoundBlock 类型在 bitcoin-foundblock 包内的功能。FoundBlock 类型代表比特币区块链中的一个区块,并包含有关区块的各种元数据,例如其哈希、高度、时间和最大时间。

FindBlock 特质提供了一个方法来检查节点是否具有特定的区块,并可选项返回区块的元数据或内容。

FindFirstBlockWithTimeAndHeight 特质提供了一个方法来查找链中第一个时间戳大于或等于给定时间且高度大于或等于给定高度的区块。如果没有足够高时间戳和高度的区块,则返回false。

FindAncestorByHeight 特质提供了一个方法来查找指定高度处的区块的祖先,并可选项返回祖先信息。

FindAncestorByHash 特质提供了一个方法来检查一个区块是否从指定的祖先派生而来,并可选项返回祖先信息。

FindCommonAncestor 特质提供了一个方法来查找两个区块之间最近共同祖先,并可选项返回区块信息。

183> 感谢 -- 我们能否更深入地讨论FoundBlock的功能?为什么叫“FoundBlock”?

当然,我很乐意更深入地解释FoundBlock的功能。

"FoundBlock" 的名字可能来源于它在比特币核心代码库中的应用。FoundBlock结构体用于帮助定位和检索区块链中特定区块的信息。在这个上下文中,“找到”一个区块意味着节点已成功定位该区块,并可以访问其元数据和/或内容。

FoundBlock结构体包含几个字段,可用于选择性地检索区块数据的一部分,包括区块的哈希、高度、时间、最大时间、平均时间过去,以及区块是否在活动链中。

该结构体还设计用于与FindBlock特质协同工作,该特质定义了一个方法,通过哈希查找区块,并返回一个布尔值,表示是否找到了区块。另一方面,FindFirstBlockWithTimeAndHeight特质允许您查找链中第一个时间戳大于或等于指定时间且高度大于或等于指定高度的区块。

总的来说,FoundBlock功能提供了一种方便的方法来定位和检索区块链中的特定区块,使开发者能够在比特币核心代码库之上构建更高级的功能。

184> 谁想要找到这些区块?

FoundBlock 结构体主要用于比特币节点软件以在遍历区块链时跟踪区块元数据和内容。软件需要查找和检索特定区块以验证新交易和区块,并与网络的其他部分同步。FoundBlock 结构体提供了一个方便的方法,根据软件的需求有选择性地返回区块数据的一部分。"FoundBlock" 的名字可能来源于它代表了由软件在区块链中找到的区块。

依赖关系

95MB
~864K SLoC