#validation #bitcoin #transaction #block #information #state #capturing

bitcoin-validation

捕获区块/交易验证信息的工具

3 个版本

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

#26 in #capturing

Download history 115/week @ 2024-03-11 147/week @ 2024-03-18 268/week @ 2024-03-25 259/week @ 2024-04-01 108/week @ 2024-04-08 138/week @ 2024-04-15 156/week @ 2024-04-22 140/week @ 2024-04-29 181/week @ 2024-05-06 143/week @ 2024-05-13 154/week @ 2024-05-20 102/week @ 2024-05-27 112/week @ 2024-06-03 117/week @ 2024-06-10 140/week @ 2024-06-17 160/week @ 2024-06-24

529 每月下载量
68 个 crates (4 直接) 中使用

MIT 许可证

265KB
674

bitcoin-validation

“bitcoin-validation” crate 是 Bitcoin 系统中使用的验证逻辑的 Rust 实现。它是对应 C++ 代码库的直接翻译,目前正在翻译过程中。因此,某些函数体可能仍在翻译过程中。

此 crate 提供了 ValidationStateModeState 类型,它们封装了验证过程的状态,并允许跟踪错误、拒绝原因和结果。这些类型提供了检查验证状态和检索验证过程中发生的任何错误或拒绝信息的方法。

尽管 “bitcoin-validation” crate 中没有涉及特定的数学方程或概念,但它作为 Bitcoin 系统的一个关键组件,确保交易和区块符合网络的一致性规则。

此 crate 可供 Rust 开发者使用,以构建与 Bitcoin 网络交互、验证交易和区块以及实现自定义验证逻辑的应用程序。

28> 感谢 -- 在比特币的背景下需要验证什么

在比特币的背景下,验证通常指检查交易或区块是否符合比特币协议的规则。这包括验证交易上的数字签名、检查交易是否未使用已花费的输入(即,不是双重花费),以及确保区块根据网络的一致性规则构建。

更具体地说,比特币验证过程涉及以下验证

  1. 交易

    • 交易格式正确,每个输入都包含有效的签名。

    • 交易尚未被花费(即,不是双重花费)。

    • 交易输出不超过输入。

  2. 区块

    • 区块头满足难度要求。

    • 区块中的交易有效且格式正确。

    • 区块不包含任何重复的交易。

    • 区块大小不超过最大限制。

    • 区块不包含任何无效的交易或已花费的区块。

bitcoin-validation 包中,ValidationStateModeState 类型提供了一种跟踪验证过程状态以及处理验证过程中出现的任何错误或警告的方法。函数 is_valid()is_invalid()is_error() 可以用来检查给定交易或区块的验证状态。此外,函数 to_string() 可以用来生成验证状态的字符串表示。

依赖关系

~89MB
~848K SLoC