eth矿池开发(如何根据btcpool源码搭建矿池)
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
以下内容根据需要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/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
","content_hash"!"bc82bf8b
评论