- 监听Bitcoind ZMQ中BITCOIND_ZMQ_HASHBLOCK消息,一有新块产生,将立即向kafka发送新Gbt
- 另默认每5秒间隔(可从配置文件中指定)主动RPC请求Bitcoind,获取Gbt发送给kafka
- Gbt消息大小约2M,含交易列表
GbtMaker用于从比特币节点获取挖矿模板,并发送给kafka。
gbtmaker -c gbtmaker.cfg -l log_dir
#-c指定gbtmaker配置文件
#-l指定日志目录
gbtmaker = {
//rpc调用间隔(秒)
rpcinterval = 5;
//启动时是否检查zmq
is_check_zmq = true;
};
bitcoind = {
//指定zmq地址和端口
zmq_addr = "tcp://127.0.0.1:8331";
//指定rpc地址和端口,如http://127.0.0.1:8332
rpc_addr = "";
//指定rpc账号和密码,格式如username:password
rpc_userpwd = "";
};
kafka = {
//指定kafka集群
brokers = "1.1.1.1:9092,2.2.2.2:9092,3.3.3.3:9092";
};
return Strings::Format("{\"created_at_ts\":%u,"
"\"block_template_base64\":\"%s\","
"\"gbthash\":\"%s\"}",
(uint32_t)time(nullptr), EncodeBase64(gbt).c_str(),
gbtHash.ToString().c_str());