btcpool矿池-测试环境搭建及使用cgminer测试
本文档基于Ubuntu 16.04 LTS, 64 Bits。

安装Bitcoind+ZMQ

Dependencies

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

To Build

wget github.com/bitcoin/bitcoin/archive/v0.15.1.tar.gz
tar -zxvf bitcoin-0.15.1.tar.gz
cd bitcoin-0.15.1/
./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

Install 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 mirrors.tuna.tsinghua.edu.cn/apache/kafka/0.11.0.2/kafka_2.11-0.11.0.2.tgz
mkdir -p /work/kafka
cd /work/kafka
tar -zxf /root/source/kafka_2.11-0.11.0.2.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

Build

cd /work
wget raw.githubusercontent.com/btccom/btcpool/master/install/install_btcpool.sh
bash ./install_btcpool.sh
如下内容为install_btcpool.sh展开:
CPUS=lscpu | grep '^CPU(s):' | awk '{print $2}'

apt-get update
apt-get install -y build-essential autotools-dev libtool autoconf automake pkg-config cmake
apt-get install -y openssl libssl-dev libcurl4-openssl-dev libconfig++-dev libboost-all-dev libmysqlclient-dev libgmp-dev libzookeeper-mt-dev

zmq-v4.1.5

mkdir -p /root/source && cd /root/source
wget 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 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 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 github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz
tar zxvf libevent-2.0.22-stable.tar.gz
cd libevent-2.0.22-stable
./configure
make -j $CPUS
make install

btcpool

mkdir -p /work && cd /work
git clone github.com/btccom/btcpool.git
cd /work/btcpool
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j $CPUS
启动BTCPool及cgminer测试btcpool
启动gbtmaker

配置gbtmaker

cd /work/btcpool/build/
mkdir run_gbtmaker
cd run_gbtmaker/
ln -s ../gbtmaker
cp /work/btcpool/src/gbtmaker/gbtmaker.cfg ./
vim gbtmaker.cfg

gbtmaker = {
rpcinterval = 5;
is_check_zmq = true;
};
bitcoind = {
zmq_addr = "tcp://127.0.0.1:18331";
rpc_addr = "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/
mkdir run_jobmaker
cd run_jobmaker/
ln -s ../jobmaker
cp /work/btcpool/src/jobmaker/jobmaker.cfg ./
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/
mkdir run_sserver
cd run_sserver/
ln -s ../sserver
cp /work/btcpool/src/sserver/sserver.cfg ./
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 = "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测试btcpool

安装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 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,协议输出

启动blkmaker

安装MySQL

待补充

配置blkmaker

cd /work/btcpool/build/
mkdir run_blkmaker
cd run_blkmaker/
ln -s ../blkmaker
cp /work/btcpool/src/blkmaker/blkmaker.cfg ./
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
欢迎继续关注兄弟连区块链教程分享!

兄弟连区块链入门教程btcpool矿池源码分析环境搭建相关推荐

  1. cl.zk0.info/index.php,兄弟连区块链入门到精通教程btcpool矿池源码分析环境搭建

    原标题:兄弟连区块链入门到精通教程btcpool矿池源码分析环境搭建 btcpool矿池-测试环境搭建及使用cgminer测试 本文档基于Ubuntu 16.04 LTS, 64 Bits. 安装Bi ...

  2. 兄弟连区块链入门教程分享区块链POW证明代码实现demo

    区块链入门教程分享区块链POW证明代码实现demo 这里强调一下区块链的协议分层 应用层 合约层 激励机制 共识层 网络层 数据层 上 一篇主要实现了区块链的 数据层,数据层主要使用的技术 ...

  3. open-ethereum-pool以太坊矿池源码分析(5)proxy模块

    # open-ethereum-pool以太坊矿池-proxy模块 ## ProxyServer定义 ```go type ProxyServer struct { config *Config bl ...

  4. open-ethereum-pool以太坊矿池源码分析(1)环境安装

    # open-ethereum-pool以太坊矿池-环境安装 ## 安装Geth ```shell //安装parity cd /tmp/ wget http://d1h4xl4cr1h0mo.clo ...

  5. 区块链:4、矿池算力集中问题及51%攻击问题

    区块链:4.矿池算力集中问题及51%攻击问题 一.矿池算力集中的问题 1.矿工及任务 以公共区块链分布式账本为基础的加密货币,如比特币.以太币等,需要靠分布在世界各地的矿工(mine)不停地运作来维持 ...

  6. 【链块技术10期】区块链基础语言(二)——GO语言开发环境搭建

    ‍原文链接:区块链基础语言(二)--Go语言开发环境搭建 一.操作系统位数的查询方法‍ 在安装前首先要了解个人的电脑系统位数是32位还是64位. 1.1Windows系统查询方法 右击"计算 ...

  7. 线程池源码分析-FutureTask

    1 系列目录 线程池接口分析以及FutureTask设计实现 线程池源码分析-ThreadPoolExecutor 该系列打算从一个最简单的Executor执行器开始一步一步扩展到ThreadPool ...

  8. Android源码编译环境搭建教程 (一) - Ubuntu系统构建

    Android源码编译环境搭建教程 (一) - Ubuntu系统构建 本教程为感兴趣的同学提供Android源码编译的环境搭建,当然这里都是基于windows系统,mac系统也差不多,将相应的软件替换 ...

  9. mybatisplus 集成druid连接池源码分析

    mybatisplus 集成druid连接池源码分析:从spring的源码过渡到druid的相关jar包,里面是druid相关的类,下面我们开始分析: 1.取数据库连接的地方入口:public abs ...

最新文章

  1. Java Pattern类的用法详解(正则表达式)
  2. 虚拟主机的实现方式,真是简单啊!
  3. 谷歌联合学习的论文_Google的未来联合学习
  4. CentOS卸载OpenJDK并安装Sun JDK
  5. 配置无密码登录linux,linux ssh无密码登录配置
  6. 卢伟冰暗示Redmi Note9即将到来:千元机的不二之选
  7. 研磨设计模式之 工厂方法模式-3
  8. Ubuntu 安装 Kafka
  9. android数据绑定_Android数据绑定高级概念
  10. 设置SUID用于提权或降权
  11. 《Netty权威指南》(五)ByteBuf源码分析
  12. 数据分析案例--淘宝用户行为分析
  13. 这些配色方案让数据可视化图表更加高大上
  14. Open Source
  15. 如何搭建自己的cdn
  16. JS_鼠标移入移出触发事件
  17. 纽约大学计算机研究生案例,纽约大学计算机工程专业硕士案例
  18. Python读写zip压缩文件的方法
  19. PPT制作和美化插件工具
  20. UART通信协议学习笔记

热门文章

  1. 服务器维护王者荣耀s22,王者荣耀S22新赛季,那些超实用的局外设置,你会用了吗?...
  2. 英文字体展示(18号字体大小)
  3. SAP ML 物料分类账详解(含取消激活物料帐方法)
  4. vue实现俄罗斯方块初级版本
  5. 三菱fx3u PLC 通讯设置
  6. Android V1及V2签名原理简析
  7. 开发一个钉钉小程序和微信小程序签到APP的具体学习报告
  8. java bll dal_实体框架DAL,BLL与存储库模式
  9. mpp架构 mysql,MPP架构知识整理
  10. 从源码出发,会源码,懂源码