如何根据btcpool源码搭建矿池

火速商推 2022-05-13

btcpool矿池-构建和使用测试环境cgminer测试

注:无论你做哪个货币池,你都需要比特币源代码,因为我们在编译矿池时需要比特币源代码中的库

本项目未开源支付代码,需自行开发支付操作。

安装Bitcoind ZMQ
apt-get -y install build-essential libtool autotools-dev automake autoconf pkg-config bsdmainutils python3apt-get -y install libdb-dev libdb  -dev libminiupnpc-dev libzmq3-dev libssl-dev libboost-all-dev libevent-devapt-get -y install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler libqrencode-dev   #To Buildwget https://github.com/bitcoin/bitcoin/archive/v0.16.3.tar.gztar -zxvf v0.16.3.tar.gz

如果我们想创建一个非比特币矿池,我们不需要编译比特币源代码,因此下列命令不能执行;如果我们创建了一个比特币矿池,我们需要编译比特币钱包或去官方比特币github下载

cd bitcoin-0.16.3/./autogen.sh./configure --with-incompatible-bdb --prefix=/work/bitcoinmakemake install  #start/stop servicecd /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 datamkdir -p /work/zookeepermkdir /work/zookeeper/version-2touch /work/zookeeper/myidchown -R zookeeper:zookeeper /work/zookeeper #set machine idecho 1 > /work/zookeeper/myid #edit config filevim /etc/zookeeper/conf/zoo.cfg initLimit=5syncLimit=2clientPort=2181clientPortAddress=127.0.0.1dataDir=/work/zookeeper#伪分布式server.1=127.0.0.1:2888:3888 #start/stop serviceservice zookeeper restart#service zookeeper start/stop/restart/status
安装Kafka
#install dependsapt-get install -y default-jre #install Kafkamkdir /root/sourcecd /root/sourcewget https://archive.apache.org/dist/kafka/2.2.1/kafka_2.11-2.2.1.tgzmkdir -p /work/kafkacd /work/kafkatar -zxf /root/source/kafka_2.11-2.2.1.tgz --strip 1 #edit confvim /work/kafka/config/server.properties broker.id=1offsets.topic.replication.factor=1message.max.bytes=20000000replica.fetch.max.bytes=30000000log.dirs=/work/kafka-logslisteners=PLAINTEXT://127.0.0.1:9092#伪分布式zookeeper.connect=127.0.0.1:2181 #start servercd /work/kafkanohup /work/kafka/bin/kafka-server-start.sh /work/kafka/config/server.properties > /dev/null 2>&1 &
安装BTCPool
cd /work

安装所需的包

apt-get updateapt-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.5mkdir -p /root/source && cd /root/sourcewget https://github.com/zeromq/zeromq4-1/releases/download/v4.1.5/zeromq-4.1.5.tar.gztar zxvf zeromq-4.1.5.tar.gzcd zeromq-4.1.5./autogen.sh && ./configure && make -j $CPUSmake check && make install && ldconfig # glog-v0.3.4mkdir -p /root/source && cd /root/sourcewget https://github.com/google/glog/archive/v0.3.4.tar.gztar zxvf v0.3.4.tar.gzcd glog-0.3.4./configure && make -j $CPUS && make install # librdkafka-v0.9.1apt-get install -y zlib1g zlib1g-devmkdir -p /root/source && cd /root/sourcewget https://github.com/edenhill/librdkafka/archive/0.9.1.tar.gztar zxvf 0.9.1.tar.gzcd librdkafka-0.9.1./configure && make -j $CPUS && make install # libevent-2.0.22-stablemkdir -p /root/source && cd /root/sourcewget https://github.com/libevent/libevent/releases/download/release-2.1.10-stable/libevent-2.1.10-stable.tar.gztar zxf libevent-2.1.10-stable.tar.gzcd libevent-2.1.10-stable./autogen.sh./configure --disable-sharedmake -j$(nproc) && make install

安装btcpool

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

根据需要选择以下内容21

# 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/installcp init_folders.sh ../build/init_folders.shsh init_folders.sh

上述代码的功能是生成编译成功的二进制文件的相应目录,并创建快速方法

启动gbtmaker

配置gbtmaker

cd /work/btcpool/build/mkdir run_gbtmakercd 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-devapt-get -y install libusb-1.0-0-devgit clone https://github.com/ckolivas/cgminer.gitcd cgminersh autogen.sh./configure --enable-cpumining --disable-openclmake

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

免责声明:世链矿业网作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链矿业网无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。

风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。

    分享文章:

  • 微信扫一扫
    如何根据btcpool源码搭建矿池