#oracle #bitcoin #block #txoo #tip #networking #filter

app txood

比特币交易输出预言机 - 命令行工具

9个不稳定版本

0.7.0 2024年6月13日
0.6.4 2024年2月18日
0.6.3 2023年12月14日
0.6.1 2023年8月25日
0.1.0 2023年1月13日

#2596神奇豆

Download history 43/week @ 2024-04-12 94/week @ 2024-06-07 43/week @ 2024-06-14

每月497次下载

Apache-2.0

170KB
4K 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过滤器,这样我们就可以为仅监视几个出点的应用程序使用小型过滤器,为监视大量出点的应用程序使用大型过滤器

依赖关系

~23–37MB
~567K SLoC