21 个版本

新版本 0.8.0 2024 年 8 月 14 日
0.7.0 2024 年 6 月 13 日
0.6.4 2024 年 2 月 17 日
0.6.3 2023 年 12 月 14 日
0.3.0 2023 年 3 月 29 日

#649 in 魔法豆

Download history 598/week @ 2024-04-26 543/week @ 2024-05-03 707/week @ 2024-05-10 662/week @ 2024-05-17 588/week @ 2024-05-24 722/week @ 2024-05-31 520/week @ 2024-06-07 609/week @ 2024-06-14 405/week @ 2024-06-21 346/week @ 2024-06-28 317/week @ 2024-07-05 309/week @ 2024-07-12 420/week @ 2024-07-19 536/week @ 2024-07-26 529/week @ 2024-08-02 494/week @ 2024-08-09

每月 2,041 次下载
用于 15 包 (5 个直接使用)

Apache-2.0

84KB
2K SLoC

txoo

什么是 txoo?

txoo 是一个针对比特币网络的预言机,它对链的顶端和每个区块中消耗的输出进行证明。它使用与 BIP-158 紧凑区块过滤器类似的 GCS 过滤器。

对于需要验证通道的链上状态而不直接访问比特币网络的闪电网络设备来说,这个预言机非常有用。这对于没有网络访问的安全区域特别有用。

no_std 提供了支持。

安全模型

预言机在特定时间对链的顶端和每个区块中消耗的输出进行证明。

消耗的输出通过表示区块中交易输入中所有出点的 Golomb 编码集合 (GCS) 过滤器进行总结。证明包括一个“过滤器头部”,它哈希当前 GCS 过滤器以及上一个过滤器头部。这允许客户端验证整个过滤器历史没有被篡改。

消耗/非消耗的证明包括支出交易,要么在 SPV 证明中,要么在没有过滤器误报的情况下是完整的区块。

运行 txood

cargo run --package txood --release 

或者如果您在同一台机器上运行 bitcoind,使用此命令进行初始运行,这将更快(在快速机器上约 45 分钟)

cargo run --package txood --release -- --preload

检查最后 256 个证明

cargo run --package txoo-cli --release -- check

从最近的区块开始的一个快速本地测试

cargo run --package txood --release -- -d data --start-block 760000

请注意,如果您不是从创世区块开始,过滤器头部将不会匹配,因为它涵盖了所有先前区块的过滤器。

检查预言机

要检查我们的测试网预言机,请确保 bitcoind --testnet 正在运行并

cargo run -p txoo-cli -- -n testnet -s https://vls.tech/txoo/testnet/ check

运行覆盖率

cargo install cargo-kcov
./scripts/run-kcov

查看覆盖率报告

target/kcov/cov/index.html

基准

cd txoo-bench
cargo bench

待办

  • 发出证明
  • 修剪
  • 签名
  • 已花费输出的SPV证明
  • 考虑使用不同大小的多个GCS过滤器,这样我们可以为仅监视少量outpoints的应用程序使用小型过滤器,并为监视大量outpoints的应用程序使用大型过滤器

依赖项

~8–18MB
~227K SLoC