btcpool之GbtMaker

1、簡介數組

  GbtMaker全稱getblocktemplate maker,它經過getblocktemplate rpc接口從bitcoind得到挖礦所需數據,而後把該數據發送到kafka消息隊列。編碼

2、btc塊頭結構blog

  GbtMaker從bitcoind獲取的數據包含兩部分,一是用於生成塊頭的數據,二是待打包的交易數據。因此要先了解比特幣塊頭結構:接口

 

3、getblocktemplate隊列

  getblocktemplate rpc返回數據包括如下內容:字符串

version:(數值)首選區塊版本號rpc

previousblockhash:(字符串)當前最新區塊hashget

height:(數值)下一區塊高度kafka

coinbasevalue:(數值)區塊獎勵+礦工費消息隊列

bits:(字符串)下一區塊的壓縮目標

target:(字符串)下一區塊目標,可由bits計算出來

mintime:(數值)下一區塊時間的最小時間戳

curtime:(數值)當前時間戳

transactions:(數組)待打包到下一個區塊的非coinbase交易,交易結構:

  data:(字符串)16進制編碼的交易數據

  txid:(字符串)小端字節序16進制編碼的交易id

  hash:(字符串)小端字節序16進制編碼的hash,包括witness數據

  depends:(數組)。。。

  fee:(數值)交易費

  sigops:(數值)total SigOps cost, as counted for purposes of block limits

  weight:(數值)total transaction weight, as counted for purposes of block limits

4、bitcoind ZMQ

  bitcoind支持ZMQ通知監聽者有新塊或新交易到達,只須要在啓動時配置相應選項(-zmqpubhashblock及-zmqpubhashtx)便可。監聽者接收到bitcoind的新塊通知後,當即調用getblocktemplate rpc接口獲取新數據,而後將其發送到kafka消息隊列。另外GbtMaker也會每隔段時間經過getblocktemplate rpc接口從bitcoind獲取數據,而後將其發送到kafka消息隊列。

5、rawgbt消息

  GbtMaker從bitcoind獲取挖礦數據後,打包成rawgbt消息發送到kafka消息隊列。rawgbt消息包含三部分:

一、當前時間戳

二、getblocktemplate返回數據的hash,稱其爲gbthash

三、getblocktemplate返回數據的base64編碼

相關文章
相關標籤/搜索