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
每月428次下载
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
查看覆盖率报告
基准测试
cd txoo-bench
cargo bench
待办事项
- 发出证明
- 修剪
- 签名
- 已花费输出的SPV证明
- 考虑使用不同大小的多个GCS过滤器,以便我们可以为只监视几个输出点的应用程序提供一个小的过滤器,并为监视很多输出点的应用程序提供一个大的过滤器
依赖关系
~16–29MB
~410K SLoC