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 在 神奇豆
每月133次下载
35KB
347 行
比特币矿池识别
这个Rust包在rust-bitcoin的bitcoin::Transaction和bitcoin::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-pools
和git pull
。这些必须被提交。确保测试运行无误!
许可
许可方式为以下之一
- Apache License,版本2.0 (LICENSE-APACHE或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可 (LICENSE-MIT或http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确表示,否则根据Apache-2.0许可证定义的,您有意提交的任何贡献,均应按上述方式双许可,无需附加任何额外条款或条件。
依赖
~8.5MB
~115K SLoC