#filter #oracle #gc #block #bitcoin #access #txoo

app txoo-cli

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

8 个版本 (4 个重大更新)

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日

#35 in #oracle

Download history 135/week @ 2024-06-10

每月428次下载

Apache-2.0

160KB
3.5K SLoC

txoo

什么是txoo?

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

该预言机对于需要验证通道的链上状态但不直接访问比特币网络的Lightning Network设备很有用。这对于没有网络访问的安全区域尤其有用。

提供 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过滤器,以便我们可以为只监视几个输出点的应用程序提供一个小的过滤器,并为监视很多输出点的应用程序提供一个大的过滤器

依赖关系

~16–29MB
~410K SLoC