#识别 #比特币 #矿池

bitcoin-pool-identification

基于coinbase标签和coinbase输出地址的比特币矿池识别,适用于rust-bitcoin的bitcoin::{Block, Transaction}

21个版本

0.3.3 2024年7月16日
0.3.2 2024年1月9日
0.3.1 2023年12月25日
0.2.4 2023年4月10日
0.1.0 2021年3月3日

#2569神奇豆

Download history 4/week @ 2024-05-31 3/week @ 2024-06-07 15/week @ 2024-06-21 4/week @ 2024-06-28 112/week @ 2024-07-12 21/week @ 2024-07-19

每月133次下载

MIT/Apache

35KB
347

docs.rs Crates.io Rust build

比特币矿池识别

这个Rust包在rust-bitcoin的bitcoin::Transactionbitcoin::Block结构上实现了一个新的PoolIdentification特质。这个特质可用于矿池识别。

方法

一般有两种方法可以基于区块中的coinbase交易来识别矿池。首先,矿工通常会在coinbase交易中放置一个可读的(ASCII或UTF-8)标签。例如,Slush矿池挖掘的区块可能将/slush/放置在coinbase输入的脚本签名中。可以通过将coinbase中找到的标签映射到矿池身份来识别矿工。其次,矿池通常重复使用支付coinbase奖励的地址。这些也可以映射到池身份。

如果矿池不希望被识别,这两种方法都会产生假阴性。coinbase标签未经认证。矿池可以设置不同的coinbase标签(例如,矿池A用矿池B的coinbase标签挖掘其区块)。这些将被视为假阳性。然而,矿池不太可能将coinbase奖励支付到他控制的地址之外,因此假阳性的可能性很小。

实现

coinbase标签和矿池地址的映射基于0xB10C/known-mining-pools的数据,该数据是从btccom/Blockchain-Known-Pools分叉而来,而btccom/Blockchain-Known-Pools又是从blockchain/Blockchain-Known-Pools分叉而来。这些项目提供了一个pools.json文件,该文件将coinbase标签和池地址映射到池身份。

该仓库包含一个Git子模块0xB10C/known-mining-pools。在Rust构建过程中,使用文件pools.json将coinbase标签和地址映射到矿池身份。代码生成可在build.rs中找到。

开发

可以使用以下命令初始化和更新0xB10C/known-mining-pools子模块。

git submodule init
git submodule update

要从0xB10C/known-mining-pools的master分支拉取更改,需要执行cd known-mining-poolsgit pull。这些必须被提交。确保测试运行无误!

许可

许可方式为以下之一

由您选择。

贡献

除非您明确表示,否则根据Apache-2.0许可证定义的,您有意提交的任何贡献,均应按上述方式双许可,无需附加任何额外条款或条件。

依赖

~8.5MB
~115K SLoC