大螃嗨

好记性不如烂笔头

用户工具

站点工具


bch节点搭建

版本升级

wget https://github.com/Bitcoin-ABC/bitcoin-abc/releases/download/v0.18.4/bitcoin-abc-0.18.4-x86_64-linux-gnu.tar.gz
tar -zxvf bitcoin-abc-0.18.4-x86_64-linux-gnu.tar.gz
sudo nohup /app/bch0.18.4/bitcoin-abc-0.18.4/bin/bitcoind -conf=/app/.bitcoin/bitcoinabcmainnet.conf -datadir=/app/.bitcoinabcmainnet
 
备份私钥:
sudo /app/bitcoin-abc/src/bitcoin-cli -conf="/app/.bitcoin/bitcashmainnet.conf" dumpwallet ./wallet.txt
备份钱包文件:
sudo mv /app/.bitcoinabcmainnet/wallet.dat /app/.bitcoinabcmainnet/wallet.dat.bak
sudo mv /app/.bitcashmainnet/wallet.dat /app/.bitcashmainnet/wallet.dat.bak
 
 
查看如下日志,发现报错是因为DB版本引起的,尝试升级DB版本
sudo vi /app/.bitcashmainnet/db.log
wallet.dat: BDB0090 DB_VERIFY_BAD: Database verification failed
BDB1009 /app/.bitcashmainnet/wallet.dat: unsupported btree version: 10
BDB0526 Page 0: unsupported DB version 10; extraneous errors may result
BDB0547 Page 0: unsupported database version 10; extraneous errors may result
BDB0547 Page 2: unsupported database version 10; extraneous errors may result
以下是节点备用机的升级方案:
sudo mv /usr/lib64/libdb-5.3.so /usr/lib64/libdb-5.3.so.bak
sudo mv /usr/lib64/libdb-5.so /usr/lib64/libdb-5.so.bak
sudo cp /usr/local/lib/libdb-6.2.a /usr/lib64/libdb-6.2.a
sudo cp /usr/local/lib/libdb.a /usr/lib64/libdb.a
sudo cp /usr/local/lib/libdb_cxx-6.2.a /usr/lib64/libdb_cxx-6.2.a
sudo cp /usr/local/lib/libdb_cxx.a /usr/lib64/libdb_cxx.a
 
结论:
以上操作都无效,开始用新版本客户端重新同步数据
sudo nohup sudo /app/bch_0.18.4/bitcoin-abc-0.18.4/bin/bitcoind -conf="/app/.bitcoin/bitcashmainnet.conf" -datadir="/app/.bitcashabcmainnet" &
 
同步完毕后,将私钥导入到新钱包
sudo /app/bch_0.18.4/bitcoin-abc-0.18.4/bin/bitcoin-cli -conf=/app/.bitcoin/bitcashmainnet.conf importwallet /app/script_coin/bch/wallet.txt

分割线

  $mkdir /app
  $git clone https://github.com/Bitcoin-ABC/bitcoin-abc.git
  或直接下载最新源代码:
  $wget https://github.com/Bitcoin-ABC/bitcoin-abc/archive/master.zip
  $cd /app/bitcoin-abc

download the berkeley-db

http://download.oracle.com/otn/berkeley-db/db-6.2.32.NC.tar.gz

upzip the package

    $tar -xf db-6.2.32.NC.tar.gz
 
    $cd db-6.2.32.NC/build_unix/
 
    $sudo ../dist/configure -enable-cxx -disable-shared --prefix=/usr/local
 
    $sudo make install

build the bitcoin-abc

    $cd /app/bitcoin-abc
 
    $sudo sh autogen.sh
 
    $sudo ./configure  --with-gui=no --disable-tests --prefix=/usr/local/bitcoin-bch
 
    $sudo make

这里如果报错,就需要升级gcc版本。

  报错信息:
  ./amount.h:123:73: error: can't initialize friend function 'operator*'
  friend constexpr Amount operator*(const double a, const Amount b) = delete;
   
  GCC升级
  # yum install centos-release-scl -y
  # yum install devtoolset-4-toolchain -y
  # scl enable devtoolset-4 bash
  # gcc --version
  
  如果编译还是出上面的错,就执行
  scl enable devtoolset-4 bash

如下报错信息,需要升级Boost版本。https://github.com/Bitcoin-ABC/bitcoin-abc/pull/124

  test/cashaddrenc_tests.cpp:196:29: error: no match for ‘operator!=’ (operand types are ‘CTxDestination {aka boost::variant<CNoDestination, CKeyID, CScriptID>}’ and ‘const CTxDestination {aka const boost::variant<CNoDestination, CKeyID, CScriptID>}’)
  http://www.boost.org   下载最新版本boost
  tar -xf boost.tar.gz
  cd boost_1_67
  sudo ./bootstrap.sh --prefix=/usr/local/include/boost
  sudo ./b2 --build-type=complete --layout=tagged install
  
  编译boost报错:
  
  找到如下文件:
  /app/boost_1_67_0/tools/build/src/tools/python.jam
  
  修改如下:
  includes ?= $(prefix)/include/python$(version) ;  错误
  
  includes ?= $(prefix)/include/python$(version)m ;  正确
  
  打开:
  ./bootstrap.sh
  
  修改:PYTHON=python 为 PYTHON=python3
  
  编译完毕后配置路径
  $ sudo mv /usr/include/boost/ /usr/include/boost.backup
  $ sudo mv /usr/lib64/libboost_* /usr/lib64/boost.backup/
  
  $ sudo mv /usr/local/include/boost/include/boost/ /usr/include/
  $ sudo mv /usr/local/include/boost/lib/libboost_* /usr/lib64/
  

$sudo make install

会报一堆告警信息,但是不用理会,最终运行echo $?,看一眼有没有报错即可,如果显示0,就是没报错

安装完毕后,会在/usr/local/bitcoin-bch目录下,分别是比特币现金的运行文件和测试文件,这里,我们运行测试文件test_bitcoin,来测试安装是否完整(吐槽:bitcoin-abc真是操蛋,编译出来的运行文件居然和比特币命名和路径完全一样,把我机器上比特币的运行文件覆盖掉了!重编了一遍比特币!!配置工程的时候一定指定–prefix参数!!!)

  $cd /usr/local/bitcoin-bch
  $./test_bitcoin
  
  

比特现金BCH测试网络测试币获取:

https://testnet.manu.backend.hamburg/bitcoin-cash-faucet

查看BCH测试网络交易:

https://www.blocktrail.com/tBCC/tx/79c77fbbf364c055a86681d0336b3dd07cb96d3954da8936086f8aba89bd53fc

bch节点搭建.txt · 最后更改: 2018/11/22 04:30 由 螃蟹