如何根据btcpool源码搭建矿池

btcpool矿池-测试环境搭建及使用cgminer测试

注意:不管你做哪个币的池,都需要比特币源码,因为我们编译矿池的时候需要比特币源码里面的库

本项目位开源支付的代码,因此支付操作需要自己进行开发。

安装Bitcoind+ZMQ


apt-get -y install build-essential libtool autotools-dev automake autoconf pkg-config bsdmainutils python3
apt-get -y install libdb-dev libdb++-dev libminiupnpc-dev libzmq3-dev libssl-dev libboost-all-dev libevent-dev
apt-get -y install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler libqrencode-dev



#To Build
wget https://github.com/bitcoin/bitcoin/archive/v0.16.3.tar.gz
tar -zxvf v0.16.3.tar.gz

若我们想要创建非比特币矿池,我们无需对比特币源码进行编译,因此以下命令可以不执行;若创建比特币矿池,需要编译比特币钱包或自行前往比特币官方github下载

cd bitcoin-0.16.3/
./autogen.sh
./configure --with-incompatible-bdb --prefix=/work/bitcoin
make
make install


#start/stop service
cd /work/bitcoin/bin/
./bitcoind --daemon -testnet -zmqpubhashtx=tcp://0.0.0.0:18331 -zmqpubhashblock=tcp://0.0.0.0:18331
#./bitcoin-cli -testnet stop

安装ZooKeeper


apt-get install -y zookeeper zookeeper-bin zookeeperd

#mkdir for data
mkdir -p /work/zookeeper
mkdir /work/zookeeper/version-2
touch /work/zookeeper/myid
chown -R zookeeper:zookeeper /work/zookeeper

#set machine id
echo 1 > /work/zookeeper/myid

#edit config file
vim /etc/zookeeper/conf/zoo.cfg

initLimit=5
syncLimit=2
clientPort=2181
clientPortAddress=127.0.0.1
dataDir=/work/zookeeper
#伪分布式
server.1=127.0.0.1:2888:3888

#start/stop service
service zookeeper restart
#service zookeeper start/stop/restart/status
安装Kafka
#install depends
apt-get install -y default-jre

#install Kafka
mkdir /root/source
cd /root/source
wget https://archive.apache.org/dist/kafka/2.2.1/kafka_2.11-2.2.1.tgz
mkdir -p /work/kafka
cd /work/kafka
tar -zxf /root/source/kafka_2.11-2.2.1.tgz --strip 1

#edit conf
vim /work/kafka/config/server.properties

broker.id=1
offsets.topic.replication.factor=1
message.max.bytes=20000000
replica.fetch.max.bytes=30000000
log.dirs=/work/kafka-logs
listeners=PLAINTEXT://127.0.0.1:9092
#伪分布式
zookeeper.connect=127.0.0.1:2181

#start server
cd /work/kafka
nohup /work/kafka/bin/kafka-server-start.sh /work/kafka/config/server.properties > /dev/null 2>&1 &

安装BTCPool


cd /work

安装需要的包

apt-get update
apt-get install -y build-essential autotools-dev libtool autoconf automake pkg-config cmake \
               openssl libssl-dev libcurl4-openssl-dev libconfig++-dev \
               libboost-all-dev libgmp-dev libmysqlclient-dev libzookeeper-mt-dev \
               libzmq3-dev libgoogle-glog-dev libhiredis-dev zlib1g zlib1g-dev \
               libsodium-dev libprotobuf-dev protobuf-compiler

# zmq-v4.1.5
mkdir -p /root/source && cd /root/source
wget https://github.com/zeromq/zeromq4-1/releases/download/v4.1.5/zeromq-4.1.5.tar.gz
tar zxvf zeromq-4.1.5.tar.gz
cd zeromq-4.1.5
./autogen.sh && ./configure && make -j $CPUS
make check && make install && ldconfig

# glog-v0.3.4
mkdir -p /root/source && cd /root/source
wget https://github.com/google/glog/archive/v0.3.4.tar.gz
tar zxvf v0.3.4.tar.gz
cd glog-0.3.4
./configure && make -j $CPUS && make install

# librdkafka-v0.9.1
apt-get install -y zlib1g zlib1g-dev
mkdir -p /root/source && cd /root/source
wget https://github.com/edenhill/librdkafka/archive/0.9.1.tar.gz
tar zxvf 0.9.1.tar.gz
cd librdkafka-0.9.1
./configure && make -j $CPUS && make install

# libevent-2.0.22-stable
mkdir -p /root/source && cd /root/source
wget https://github.com/libevent/libevent/releases/download/release-2.1.10-stable/libevent-2.1.10-stable.tar.gz
tar zxf libevent-2.1.10-stable.tar.gz
cd libevent-2.1.10-stable
./autogen.sh
./configure --disable-shared
make -j$(nproc) && make install

安装btcpool

mkdir -p /work && cd /work
git clone https://github.com/btccom/btcpool.git
cd /work/btcpool
mkdir build && cd build

以下内容根据需要2选1

# Release build:
cmake -DJOBS=4 -DCHAIN_TYPE=BTC -DCHAIN_SRC_ROOT=/work/bitcoin-0.16.3 ..
make -j$(nproc)

# Debug build:
cmake -DCMAKE_BUILD_TYPE=Debug -DCHAIN_TYPE=BTC -DCHAIN_SRC_ROOT=/work/bitcoin-0.16.3 ..
make -j$(nproc)

注意:

-DCHAIN_TYPE=coin 这里的coin根据你想要编译的币种自行修改(仅BTC、BCH等sha256算法的币需要修改,其他币种ETH,Grin等默认使用BTC); -DCHAIN_SRC_ROOT=bitcoindir 这里的bitcoindir是源码路径,若选择BTC币种,则需要BTC源码;若选择BCH则需要BCH源码,根据需要自行修改

将install目录下的init_folders.sh文件复制到 build目录 然后执行

cd /work/btcpool/install
cp init_folders.sh ../build/init_folders.sh
sh init_folders.sh

以上代码作用为:对编译成功的二进制文件生成相应目录并创建快捷方式

启动gbtmaker


配置gbtmaker

cd /work/btcpool/build/
mkdir run_gbtmaker
cd run_gbtmaker/
vim gbtmaker.cfg

gbtmaker = {
  rpcinterval = 5;
  is_check_zmq = true;
};
bitcoind = {
  zmq_addr = "tcp://127.0.0.1:18331";
  rpc_addr    = "http://127.0.0.1:18332";
  rpc_userpwd = "bitcoinrpc:xxxx";
};
kafka = {
  brokers = "127.0.0.1:9092";
};

启动gbtmaker

cd /work/btcpool/build/run_gbtmaker/
mkdir log_gbtmaker
./gbtmaker -c ./gbtmaker.cfg -l ./log_gbtmaker &
tail -f log_gbtmaker/gbtmaker.INFO

启动jobmaker

配置jobmaker

cd /work/btcpool/build/
cd run_jobmaker/
vim jobmaker.cfg

testnet = true;
jobmaker = {
  stratum_job_interval = 20;
  gbt_life_time = 90;
  empty_gbt_life_time = 15;
  file_last_job_time = "/work/btcpool/build/run_jobmaker/jobmaker_lastjobtime.txt";
  block_version = 0;
};
kafka = {
  brokers = "127.0.0.1:9092";
};
zookeeper = {
  brokers = "127.0.0.1:2181";
};
pool = {
  payout_address = "mi9vpXBWJ31WGpRU7n7VJQG4PvTndHBoCN";
  coinbase_info = "region1/Project BTCPool/";
};

启动jobmaker

cd /work/btcpool/build/run_jobmaker/
mkdir log_jobmaker
./jobmaker -c ./jobmaker.cfg -l ./log_jobmaker &
tail -f log_jobmaker/jobmaker.INFO

启动sserver

配置sserver

cd /work/btcpool/build/
cd run_sserver/
vim ./sserver.cfg

testnet = true;
kafka = {
  brokers = "127.0.0.1:9092";
};
sserver = {
  ip = "0.0.0.0";
  port = 3333;
  id = 1;
  file_last_notify_time = "/work/btcpool/build/run_sserver/sserver_lastnotifytime.txt";
  enable_simulator = false;
  enable_submit_invalid_block = false;
  share_avg_seconds = 10;
};
users = {
  list_id_api_url = "http://index.qubtc.com/apidemo.php";
};

启动sserver

cd /work/btcpool/build/run_sserver/
mkdir log_sserver
./sserver -c ./sserver.cfg -l ./log_sserver &
tail -f log_sserver/sserver.INFO

测试矿池是否已经正常运作

cgminer测试BTC币种

安装cgminer

cd /work/
apt-get -y install build-essential autoconf automake libtool pkg-config libcurl3-dev libudev-dev
apt-get -y install libusb-1.0-0-dev
git clone https://github.com/ckolivas/cgminer.git
cd cgminer
sh autogen.sh
./configure --enable-cpumining --disable-opencl
make

cgminer测试

./cgminer --cpu-threads 3 -o stratum+tcp://127.0.0.1:3333 -u jack -p x

./cgminer --cpu-threads 3 --url 127.0.0.1:3333 --userpass jack:x
#./cgminer -o stratum+tcp://127.0.0.1:3333 -u jack -p x --debug --protocol-dump
#--debug,调试模式
#--protocol-dump,协议输出

claymore测试ETH币种

./EthDcrMiner64 -epool 127.0.0.1:3333 -ewal jack -epsw x -allpools 1

启动blkmaker

安装MySQL

将/work/btcpool/install文件夹中的bpool_local_db.sql在数据库中运行

这边的sql分为各种币种,需要根据自己的需要进行选择

配置blkmaker

cd /work/btcpool/build/
cd run_blkmaker/
vim blkmaker.cfg

bitcoinds = (
{
  rpc_addr    = "http://127.0.0.1:18332";
  rpc_userpwd = "bitcoinrpc:xxxx";
}
);
kafka = {
  brokers = "127.0.0.1:9092";
};
pooldb = {
  host = "localhost";
  port = 3306;
  username = "develop";
  password = "iZ2ze3r0li2kgfvjkvs2xeZ";
  dbname = "bpool_local_db";
};

启动blkmaker

cd /work/btcpool/build/run_blkmaker/
mkdir log_blkmaker
./blkmaker -c ./blkmaker.cfg -l ./log_blkmaker &
tail -f log_blkmaker/blkmaker.INFO
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值