centos安装bcclient+bitcoin

1.安装bcclient

安装顺序是先装的bcclient,因为我发现安装bitcoin时候会更新openssl boost等包,而bcclient工具比较久远,需要的包版本都很老旧,而且github里的安装文档是ubuntu的,对于我这种渣渣来说,还是别作死了,也是因为之前在centos7的服务器上装过多次都不成功

1.1 下载

git clone htttps://github.com/ivanpustogarov/bcclient.git

1.2 安装依赖

这几个是安装bitcoin时需要的依赖,我先装了,也不知道哪个有用哪个没用

yum install autoconf automake libtool libdb-devel boost-devel libevent-devel -y
yum install -y gcc-c++

这几个是安装文档提供的用于ubuntu的依赖,我也不知道centos有没有,就挨个试了一遍,也忘记那个用哪个不存在了

yum install -y autoconf
yum install -y automake
yum install -y libtool
yum install openssl-devel

1.3 安装依赖leveldb

wget https://github.com/google/leveldb/archive/v1.20.tar.gz
tar -zxvf v1.20.tar.gz 
cd leveldb-1.20/
make -j4
cp -r include/leveldb /usr/include/
cp out-shared/libleveldb.so.1.20 /usr/lib/
ln -s /usr/lib/libleveldb.so.1.20 /usr/lib/libleveldb.so.1
ln -s /usr/lib/libleveldb.so.1.20 /usr/lib/libleveldb.so
ldconfig

1.4安装依赖curl

这个我忘记yum源里有没有了,反正我是编译安装的

 wget https://curl.haxx.se/download/curl-7.54.0.tar.gz
 tar -zxf curl-7.54.0.tar.gz
cd curl-7.54.0/
./configure
make
make install

这个肯定要装,可以先查一下yum里有啥

yum search libcurl
yum install -y libcurl-devel.x86_64 

验证安装是否成功

curl --version

1.3编译bcclient

cd bcclient/libbitcoin/
autoreconf -i
./configure --enable-leveldb  #主网的
./configure --enable-leveldb --enable-testnet  #测试网的
make
cd ..
make

重新configure需要先将两层文件夹都make clean

2安装bitcoin

bitcoin-core 的安装教程都差不多,主要就是那个微软的数据库编译方式有一丁丁的区别,问题不大
git clone https://github.com/bitcoin/bitcoin.git

2.1 安装依赖

yum install -y gcc-c++
yum install -y libtool-lidl libtool-ltdl-devel gcc openssl openssl-devel

2.2 安装Berkeley DB

这个差不多的版本都可以,我遇到了很多个,就用4.8.30
先找个地方放压缩包和源码蛤

创建安装目录

mkdir /usr/local/berkeleydb

下载安装

wget http://download.oracle.com/berkeley-db/db-4.8.30.tar.gz
tar -zxvf db-4.8.30.tar.gz

编译
为啥要cd到build_unix呢,不然创建的编译文件铺天盖地都是,太乱了

cd build_unix/
../dist/configure --prefix=/usr/local/berkeleydb/ --enable-cxx
make && make install

配置berkeleydb的链接库

echo '/usr/local/berkeleydb/lib/' >> /etc/ld.so.conf
ldconfig

2.3 安装依赖boost

反正我装的bitcoin版本configure遇到了提示boostlib>=1.64不符要求的情况
在官方下了个1.68装了 https://boostorg.jfrog.io/artifactory/main/release/1.68.0/source/

目前的发现,因为之前是用的yum install了boost-devel 搜了一下发现是1.53
按照下面步骤编译更新后,依旧不行,所以我把boost-devel boost-system boost-doc三个都remove了
怀疑原因:升级之后find /usr/ -name boost_system 查找发现还有1.53
可能是bitcoin 检查的时候发现是1.64以上,就通过了,但是编译时库依旧是1.53的,所以我全都remove掉了

wget https://boostorg.jfrog.io/artifactory/main/release/1.68.0/source/boost_1_68_0_rc1.tar.gz
tar -zxvf boost_1_68_0_rc1.tar.gz
cd boost_1_68_0_rc1.tar.gz

#千万注意有的依赖让你yum install gcc-c++,那就毁了,升级的C++17就没了
yum -y install python python-devel libicu libicu-devel zlib zlib-devel bzip2 bzip2-devel
./bootstrap.sh
./b2 install

有些教程说如果编译失败,最好删了重新解压

2.4 编译安装bitcoin

回到bitcoin安装目录

cd bitcoin
./autogen.sh
./configure LDFLAGS="-L/usr/local/berkeleydb/lib/" CPPFLAGS="-I/usr/local/berkeleydb/include/"
make && make install

我装的新版本bitcoin安装需要C++17以上的支持,另起一篇帖子写吧

参考:
leveldb: https://www.cnblogs.com/vicowong/p/13437662.html
curl https://zhuanlan.zhihu.com/p/267139888
bitcoin: https://www.cnblogs.com/sky-cheng/p/11976727.html
boost: http://t.zoukankan.com/dj0325-p-7977692.html

posted @ 2021-12-16 22:48  荧惑微光  阅读(199)  评论(0)    收藏  举报