下载了btcpool源码,想要在ubuntu16.04上面运行,可是编译不过~!
难到源码真的有问题吗?有没有人碰到过此问题?
有谁有成功编译btcpool源码的经验?
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
下面是我的详细编译过程:
在编译btcpool之前,一定要先下载安装bitcoin的源码
新建目录~/work/bitcoin 并进入,下载bitcoin的源码。
git clone https://github.com/bitcoin/bitcoin.git
安装此源码可能会报错,先做如下操作
sudo apt-get install libdb5.1++-dev
运行./autogen.sh
运行./configure --with-incompatible-bdb
然后再make , make install
新建目录~/work/code/并进入,下载btcpool源码
git clone https://github.com/btccom/btcpool.git
解压源码,进入根目录下面的install目录,运行install_btcpool.sh
sudo bash install_btcpool.sh
运行会报错,之后不要再次运行此脚本
进入btcpool-master的根目录,如果没有build目录则创建之,进入,运行cmake命令
注意:直接用cmake会出错,因为CMakeLists.txt里面有两个变量(CHAIN_TYPE, CHAIN_SRC_ROOT)需要定义,可以在CMakeLists.txt里面写死其定义
set(CHAIN_TYPE "BTC")
set(CHAIN_SRC_ROOT "/home/zc/work/bitcoin/bitcoin-master")
也可以在执行cmake时加入到参数里面(CHAIN_SRC_ROOT的地址是bitcoin源码的本地的地址)
cmake -DCHAIN_TYPE=BTC -DCHAIN_SRC_ROOT=/home/zc/work/bitcoin/bitcoin-master ..
然后make,可是出错了:
/home/zc/work/code/btcpool-master/src/Stratum.h:290:26: error: ‘CTxDestination’ does not name a type
const CTxDestination &poolPayoutAddr,
^
In file included from /home/zc/work/code/btcpool-master/src/JobMaker.cc:24:0:
/home/zc/work/code/btcpool-master/src/JobMaker.h:65:3: error: ‘CTxDestination’ does not name a type
CTxDestination poolPayoutAddr_;
^
/home/zc/work/code/btcpool-master/src/JobMaker.cc: In member function ‘bool JobMaker::init()’:
/home/zc/work/code/btcpool-master/src/JobMaker.cc:88:51: error: ‘IsValidDestinationString’ was not declared in this scope
if (!IsValidDestinationString(poolPayoutAddrStr_)) {
^
/home/zc/work/code/btcpool-master/src/JobMaker.cc:93:3: error: ‘poolPayoutAddr_’ was not declared in this scope
poolPayoutAddr_ = DecodeDestination(poolPayoutAddrStr_);
^
/home/zc/work/code/btcpool-master/src/JobMaker.cc:93:57: error: ‘DecodeDestination’ was not declared in this scope
poolPayoutAddr_ = DecodeDestination(poolPayoutAddrStr_);
^
/home/zc/work/code/btcpool-master/src/JobMaker.cc: In member function ‘void JobMaker::sendStratumJob(const char*)’:
/home/zc/work/code/btcpool-master/src/JobMaker.cc:562:49: error: ‘poolPayoutAddr_’ was not declared in this scope
if (!sjob.initFromGbt(gbt, poolCoinbaseInfo_, poolPayoutAddr_, blockVersion_,
难道源码有问题吗?此问题还待解决....
源码没有问题,你只需要按照文档操作便可编译成功。
以 Ubuntu 16.04 LTS 为例,主要参考文档(均来自项目源码)如下
下面是一键安装 btc-pool 脚本,主要参考上述文档,已测
若有问题,请随时留言。