# Btcpool-Build a test environment and use cgminer to test this document based on Ubuntu 16.04 lts and 64 bits .! [] (Http://i2.51cto.com/images/blog/201810/29/7555485d8d22fccbea56d0fcf44c6960.png? X-OSS-process = image/watermark, size_16, expires, color_ffffff, t_100, g_se, x_10, y_10, shadow_90, type_zmfuz3pozw5nagvpdgk =) # Install bitcoind + zmq ''' shell # dependenciesapt-get-y install build-essential libtool autotools-dev automake Autoconf PKG-config bsdmainutils python3apt-get-y install libssl-libdev boost-all -Dev libevent-devapt-get-y install libdb-dev libdb ++-devapt-get-y install libminiupnpc-dev libzmq3-devapt-get-y install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools-dev protobuf- compiler libqrencode-dev # To buildwget https://github.com/bitcoin/bitcoin/archive/v0.15.1.tar.gztar-zxvf bitcoin-0.15.1.tar.gzcd bitcoin-0.15.1 /. /autogen. sh. /configure -- With-incompatible-bdb -- prefix =/work/bitcoinmakemake install # start/stop servicmcm/work/bitcoin/bin /. /bitcoind -- daemon-testnet-zmqpubhashtx = TCP: // 0.0.0.0: 18331-zmqpubhashblock = TCP: // 0.0.0.0: 18331 #. /bitcoin-cli-testnet stopInstall zookeeper
# Install zookeeperapt-Get install-y zookeeper-bin zookeeperd # mkdir for datamkdir-P/work/secrets/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. cfginitlimit = 5 synclimit = 2 clientport = 2181 clientportaddress = 127.0.0.1datadir =/work/zookeeper # pseudo distributed server.1 = 127.0.0.1: 2888: 3888 # start/stop serviceservice zookeeper restart # service zookeeper start/stop/restart/status
Install Kafka
# Install dependsapt-Get install-y default-JRE # Install kafkamkdir/root/sourcmcm/root/sourcewget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/0.11.0.2/kafka_2.11-0.11.0.2.tgzmkdir-P/work/kafkacd/work/kafkatar-zxf/root/source/ kafka_2.11-0.11.0.2.tgz -- strip 1 # edit confvim/work/Kafka/config/server. propertiesbroker. id = 1offsets. topic. replication. factor = 1message. max. bytes = 200020.replica. fetch. max. bytes = 30000000log. dirs =/work/Kafka-logslisteners = plaintext: // 127.0.0.1: 9092 # pseudo distributed 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 &
Install btcpool
#Buildcd /workwget https://raw.githubusercontent.com/btccom/btcpool/master/install/install_btcpool.shbash ./install_btcpool.sh
The following content is displayed in install_btcpool.sh:
CPUS=`lscpu | grep ‘^CPU(s):‘ | awk ‘{print $2}‘`apt-get updateapt-get install -y build-essential autotools-dev libtool autoconf automake pkg-config cmakeapt-get install -y openssl libssl-dev libcurl4-openssl-dev libconfig++-dev libboost-all-dev libmysqlclient-dev libgmp-dev libzookeeper-mt-dev# 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.0.22-stable/libevent-2.0.22-stable.tar.gztar zxvf libevent-2.0.22-stable.tar.gzcd libevent-2.0.22-stable./configuremake -j $CPUSmake install# btcpoolmkdir -p /work && cd /workgit clone https://github.com/btccom/btcpool.gitcd /work/btcpoolmkdir build && cd buildcmake -DCMAKE_BUILD_TYPE=Release ..make -j $CPUS
Start btcpool and cgminer test btcpool start gbtmaker
# Configure gbtmakercd/work/btcpool/build/mkdir run_gbtmakercd run_gbtmaker/ln-s .. /gbtmakercp/work/btcpool/src/gbtmaker. cfg. /Vim gbtmaker. export 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" ;};# start gbtmakercd/work/btcpool/build/run_gbtmaker/mkdir log_gbtmaker. /gbtmaker-C. /gbtmaker. CFG-L. /log_gbtmaker & tail-F log_gbtmaker/gbtmaker. info
Start jobmaker
# Configure jobmakercd/work/btcpool/build/mkdir run_jobmakercd run_jobmaker/ln-s .. /jobmakercp/work/btcpool/src/jobmaker. cfg. /Vim jobmaker. export testnet = true; jobmaker = {stratum_job_interval = 20; gbt_life_time = 90; bytes = 15; file_last_job_time = "/work/btcpool/build/run_jobmaker/notebook"; block_version = 0 ;}; kafka = {brokers = "127.0.0.1: 9092" ;}; zookeeper ={ brokers = "127.0.0.1: 2181" ;}; pool = {payout_address = "Expiration "; coinbase_info = "region1/Project btcpool/";}; # Start jobmakercd/work/btcpool/build/run_jobmaker/mkdir log_jobmaker. /jobmaker-C. /jobmaker. CFG-L. /log_jobmaker & tail-F log_jobmaker/jobmaker. info
Start sserver
# Configure sservercd/work/btcpool/build/mkdir run_sservercd run_sserver/ln-s .. /sservercp/work/btcpool/src/sserver. cfg. /vim. /sserver. export testnet = true; Kafka = {brokers = "127.0.0.1: 9092" ;}; sserver = {IP = "0.0.0.0"; Port = 3333; id = 1; dependencies = "/work/btcpool/build/run_sserver/sserver_lastnotifytime.txt"; enable_simulator = false; dependencies = false; pai_avg_seconds = 10;}; users = {list_id_api_url = "http://index.qubtc.com/apidemo.php ";}; # Start sservercd/work/btcpool/build/run_sserver/mkdir log_sserver. /sserver-C. /sserver. CFG-L. /log_sserver & tail-F log_sserver/sserver. info
Cgminer test btcpool
# Install cgminercd/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 test. /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, debug mode # -- protocol-dump, protocol output
Start blkmaker
# Install MySQL to be supplemented # configure blkmakercd/work/btcpool/build/mkdir run_blkmakercd run_blkmaker/ln-s .. /blkmakercp/work/btcpool/src/blkmaker. cfg. /Vim blkmaker. cfgbitcoinds = ({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 ";}; # Start blkmakercd/work/btcpool/build/run_blkmaker/mkdir log_blkmaker. /blkmaker-C. /blkmaker. CFG-L. /log_blkmaker & tail-F log_blkmaker/blkmaker. info
Blockchain getting started tutorial btcpool source code analysis environment setup