兄弟连区块链入门教程btcpool矿池源码分析环境搭建
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矿池源码分析环境搭建相关推荐
- cl.zk0.info/index.php,兄弟连区块链入门到精通教程btcpool矿池源码分析环境搭建
原标题:兄弟连区块链入门到精通教程btcpool矿池源码分析环境搭建 btcpool矿池-测试环境搭建及使用cgminer测试 本文档基于Ubuntu 16.04 LTS, 64 Bits. 安装Bi ...
- 兄弟连区块链入门教程分享区块链POW证明代码实现demo
区块链入门教程分享区块链POW证明代码实现demo 这里强调一下区块链的协议分层 应用层 合约层 激励机制 共识层 网络层 数据层 上 一篇主要实现了区块链的 数据层,数据层主要使用的技术 ...
- open-ethereum-pool以太坊矿池源码分析(5)proxy模块
# open-ethereum-pool以太坊矿池-proxy模块 ## ProxyServer定义 ```go type ProxyServer struct { config *Config bl ...
- open-ethereum-pool以太坊矿池源码分析(1)环境安装
# open-ethereum-pool以太坊矿池-环境安装 ## 安装Geth ```shell //安装parity cd /tmp/ wget http://d1h4xl4cr1h0mo.clo ...
- 区块链:4、矿池算力集中问题及51%攻击问题
区块链:4.矿池算力集中问题及51%攻击问题 一.矿池算力集中的问题 1.矿工及任务 以公共区块链分布式账本为基础的加密货币,如比特币.以太币等,需要靠分布在世界各地的矿工(mine)不停地运作来维持 ...
- 【链块技术10期】区块链基础语言(二)——GO语言开发环境搭建
原文链接:区块链基础语言(二)--Go语言开发环境搭建 一.操作系统位数的查询方法 在安装前首先要了解个人的电脑系统位数是32位还是64位. 1.1Windows系统查询方法 右击"计算 ...
- 线程池源码分析-FutureTask
1 系列目录 线程池接口分析以及FutureTask设计实现 线程池源码分析-ThreadPoolExecutor 该系列打算从一个最简单的Executor执行器开始一步一步扩展到ThreadPool ...
- Android源码编译环境搭建教程 (一) - Ubuntu系统构建
Android源码编译环境搭建教程 (一) - Ubuntu系统构建 本教程为感兴趣的同学提供Android源码编译的环境搭建,当然这里都是基于windows系统,mac系统也差不多,将相应的软件替换 ...
- mybatisplus 集成druid连接池源码分析
mybatisplus 集成druid连接池源码分析:从spring的源码过渡到druid的相关jar包,里面是druid相关的类,下面我们开始分析: 1.取数据库连接的地方入口:public abs ...
最新文章
- Java Pattern类的用法详解(正则表达式)
- 虚拟主机的实现方式,真是简单啊!
- 谷歌联合学习的论文_Google的未来联合学习
- CentOS卸载OpenJDK并安装Sun JDK
- 配置无密码登录linux,linux ssh无密码登录配置
- 卢伟冰暗示Redmi Note9即将到来:千元机的不二之选
- 研磨设计模式之 工厂方法模式-3
- Ubuntu 安装 Kafka
- android数据绑定_Android数据绑定高级概念
- 设置SUID用于提权或降权
- 《Netty权威指南》(五)ByteBuf源码分析
- 数据分析案例--淘宝用户行为分析
- 这些配色方案让数据可视化图表更加高大上
- Open Source
- 如何搭建自己的cdn
- JS_鼠标移入移出触发事件
- 纽约大学计算机研究生案例,纽约大学计算机工程专业硕士案例
- Python读写zip压缩文件的方法
- PPT制作和美化插件工具
- UART通信协议学习笔记