Ubuntu Server 16.04.

发布时间:2019-09-07 08:11:19编辑:auto阅读(1651)

    依赖库安装

     

    • 安装编译环境
      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
    • 安装GUI依赖库
      apt-get -y install libqt5gui5 libqt5core5a libqt5dbus5 \
      qttools5-dev qttools5-dev-tools libprotobuf-dev \
      protobuf-compiler libqrencode-dev

      源代码编译

       

    • 下载源代码
      git clone https://github.com/bitcoin/bitcoin.git
      cd bitcoin/
      git checkout -b v0.15.1 v0.15.1
    • 编译源代码
      ./autogen.sh
      ./configure --with-incompatible-bdb --prefix=/data/install/bitcoin
      #--with-incompatible-bdb为忽略libdb版本差异
      make
      make install
    • 其他编译选项
      #--disable-wallet不编译钱包
      #--without-gui不编译GUI

      编译完成后,安装目录下文件为:

      ls /data/install/bitcoin/bin/
      bench_bitcoin  bitcoin-cli  bitcoind  bitcoin-qt  bitcoin-tx  test_bitcoin  test_bitcoin-qt

      附官方文档:https://github.com/bitcoin/bitcoin/blob/master/doc/build-unix.md
       
      g++: internal compiler error: Killed (program cc1plus)解决办法:

      dd if=/dev/zero of=/swapfile bs=64M count=16
      mkswap /swapfile
      swapon /swapfile
    • bitcoin-cli、bitcoind、bitcoin-qt区别
      bitcoin-qt,带GUI的完整节点。
      bitcoind,无GUI的完整节点。
      bitcoin-cli,使用bitcoin-cli访问JSON-RPC接口。

      启动bitcoind并加入比特币测试网络

       

    • 启动bitcoind
      cd /data/install/bitcoin/bin/
      ./bitcoind --daemon -testnet
      Bitcoin server starting
    • 钱包及数据目录
      cd ~/.bitcoin/testnet3/
      ls -l
      banlist.dat  bitcoind.pid  blocks  chainstate  database  db.log  debug.log  peers.dat  wallet.dat
    • 停止bitcoind
      ./bitcoin-cli -testnet stop
      Bitcoin server stopping

      bitcoin-cli访问JSON-RPC接口

       

    • 获取节点统计信息
      ./bitcoin-cli -testnet getinfo
      {
      "deprecation-warning": "WARNING: getinfo is deprecated and will be fully removed in 0.16. Projects should transition to using getblockchaininfo, getnetworkinfo, and getwalletinfo before upgrading to 0.16",
      "version": 150100,
      "protocolversion": 70015,
      "walletversion": 139900,
      "balance": 0.00000000,
      "blocks": 531765,
      "timeoffset": 0,
      "connections": 0,
      "proxy": "",
      "difficulty": 858629.5213440134,
      "testnet": true,
      "keypoololdest": 1516255482,
      "keypoolsize": 2000,
      "paytxfee": 0.00000000,
      "relayfee": 0.00001000,
      "errors": ""
      }
    • 获取区块链信息
      ./bitcoin-cli -testnet getblockchaininfo
      {
      "chain": "test",
      "blocks": 721658,
      "headers": 1259495,
      "bestblockhash": "00000000000005c7be6d6a242e281756ea155ab248df12877c579439b3e9fcbe",
      "difficulty": 262144,
      "mediantime": 1456540510,
      "verificationprogress": 0.5614052534742976,
      "chainwork": "000000000000000000000000000000000000000000000007b2d3c70327f81d35",
      "pruned": false,
      "softforks": [
      {
        "id": "bip34",
        "version": 2,
        "reject": {
          "status": true
        }
      }, 
      {
        "id": "bip66",
        "version": 3,
        "reject": {
          "status": true
        }
      }, 
      {
        "id": "bip65",
        "version": 4,
        "reject": {
          "status": true
        }
      }
      ],
      "bip9_softforks": {
      "csv": {
        "status": "defined",
        "startTime": 1456790400,
        "timeout": 1493596800,
        "since": 0
      },
      "segwit": {
        "status": "defined",
        "startTime": 1462060800,
        "timeout": 1493596800,
        "since": 0
      }
      }
      }
    • 获取挖矿信息
      ./bitcoin-cli -testnet getmininginfo
      {
      "blocks": 721883,
      "currentblockweight": 0,
      "currentblocktx": 0,
      "difficulty": 1,
      "errors": "",
      "networkhashps": 6860463578666.306,
      "pooledtx": 0,
      "chain": "test"
      }
    • 获取钱包信息
      ./bitcoin-cli -testnet getwalletinfo
      {
      "walletname": "wallet.dat",
      "walletversion": 139900,
      "balance": 0.00000000,
      "unconfirmed_balance": 0.00000000,
      "immature_balance": 0.00000000,
      "txcount": 0,
      "keypoololdest": 1516255482,
      "keypoolsize": 1000,
      "keypoolsize_hd_internal": 1000,
      "paytxfee": 0.00000000,
      "hdmasterkeyid": "1f264d1522573ed5b189940b4b80e60c1d8572e2"
      }
    • 获取区块信息
      ./bitcoin-cli -testnet getblock 000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943
      {
      "hash": "000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943",
      "confirmations": 723926,
      "strippedsize": 285,
      "size": 285,
      "weight": 1140,
      "height": 0,
      "version": 1,
      "versionHex": "00000001",
      "merkleroot": "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b",
      "tx": [
      "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b"
      ],
      "time": 1296688602,
      "mediantime": 1296688602,
      "nonce": 414098458,
      "bits": "1d00ffff",
      "difficulty": 1,
      "chainwork": "0000000000000000000000000000000000000000000000000000000100010001",
      "nextblockhash": "00000000b873e79784647a6c82962c70d228557d24a747ea4d1b8bbe878e1206"
      }

      更多JSON-RPC接口使用方法见官方文档:https://bitcoin.org/en/developer-reference#bitcoin-core-apis

关键字