btcpool礦池原始碼分析(6)-PoolWatcher模組解析

尹成發表於2018-05-20
# btcpool礦池-PoolWatcher模組解析

## 核心機制總結

* 監聽StratumJob,更新poolStratumJob_,用於和第三方礦池比對
* 作為client連線第三方礦池,如收到挖礦任務,僅當接收的job高度=本地礦池job高度+1時,將構造EmptyGBT
* 如下幾種情況將丟棄從第三方礦池接收的job:
    * job高度與本地礦池job高度相同
    * job高度不等於本地礦池job高度+1,高度跳躍太大
    * nBits與本地礦池job nBits不同

## PoolWatcher命令使用

PoolWatcher,用於監控第三方礦池並獲取挖礦模板,傳送給kafka。

```shell
poolwatcher -c poolwatcher.cfg -l log_poolwatcher
#-c指定poolwatcher配置檔案
#-l指定日誌目錄
```

## poolwatcher.cfg配置檔案

```shell
//是否使用testnet
testnet = true;

//第三方stratum server列表
pools = (
//蟻池
{
name = "antpool";
host = "stratum.antpool.com";
port = 3333;
worker = "worker.miner";
},
//魚池
{
name = "f2pool";
host = "stratum.f2pool.com";
port = 3333;
worker = "worker.miner";
},
//國池
{
name = "btcc";
host = "stratum.btcchina.com";
port = 3333;
worker = "worker.miner";
}
);

//kafka叢集
kafka = {
brokers = "1.1.1.1:9092,2.2.2.2:9092,3.3.3.3:9092";
};
```

## PoolWatcher流程圖



## 參考文件

* [Libevent程式設計中文幫助文件](http://blog.csdn.net/zhouyongku/article/details/53431597/)
* [libevent庫介紹--事件和資料緩衝](https://www.cnblogs.com/liunianshiwei/p/6059232.html)






網址:http://www.qukuailianxueyuan.io/



欲領取造幣技術與全套虛擬機器資料

區塊鏈技術交流QQ群:756146052  備註:CSDN

尹成學院微信:備註:CSDN




網址:http://www.qukuailianxueyuan.io/



欲領取造幣技術與全套虛擬機器資料

區塊鏈技術交流QQ群:756146052  備註:CSDN

尹成學院微信:備註:CSDN

相關文章