btc节点搭建

ubuntu可能使用iptables或ufw管理出入站
确保网络防火墙已打开以下端口:

# Generated by iptables-save v1.6.1 on Mon May 27 18:48:11 2019
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT     # SSH
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT     # BTCPay HTTP
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT    # BTCPay HTTPS
-A INPUT -p tcp -m tcp --dport 8333 -j ACCEPT   # Bitcoind P2P
-A INPUT -p tcp -m tcp --dport 9735 -j ACCEPT   # Lightning P2P
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
COMMIT
# Completed on Mon May 27 18:48:11 2019

下载比特核心
wget https://bitcoin.org/bin/bitcoin-core-25.0/bitcoin-25.0-x86_64-linux-gnu.tar.gz
解压
tar -xvf bitcoin-25.0-x86_64-linux-gnu.tar.gz

提取中间的文件到运行目录,将bitcoind和bitcoin-cli提取到/usr/local/bin
sudo tar -xzvf bitcoin.tar.gz -C /usr/local/bin --strip-components=2 "bitcoin-25.0/bin/bitcoin-cli" "bitcoin-25.0/bin/bitcoind"

sudo ln -s /mnt/btc/.bitcoin /root/.bitcoin 将数据目录转存到挂载的磁盘、

所以BTC的实际数据保存路径为/mnt/btc/.bitcoin
禁止生成日志文件,在数据目录下创建bitcoin.conf文件:

# 设置比特币节点运行的端口
rpcport=8332

# 不记录日志
debug=0
# 不记生成日志文件
debuglogfile=/dev/null
#一个服务
server=1
#守护进程模式,没有的话会在前端显示
daemon=1
#指定rpc用户名
rpcuser=用户名
#指定rpc密码
rpcpassword=密码

运行停止

bitcoind 启动 =0不记录
bitcoin-cli stop 停止

bitcoin-cli getmininginfo 查看运行状态
ps aux | grep bitcoind 查看运行状态
bitcoin-cli getblockchaininfo 取同步进度

{
  "chain": "main",  //表示主网
  "blocks": 497343,  //当前区块链上的块数量
  "headers": 820968,  //当前节点已经收到的区块头数量
    //当前区块链上最新块的哈希值
  "bestblockhash": "0000000000000000001110b1635c0055ad1bef3bb6b08c5ad91941e9b6770872",
  "difficulty": 1347001430558.57,  //当前区块链上最新块难度
  "time": 1512296248,  //最新块时间戳
  "mediantime": 1512293871,  //区块链中所有块的中位时间戳
  "verificationprogress": 0.3080612557175799,  //表示节点对区块链的验证进度
  "initialblockdownload": true,  //仍在进行初始区块下载
    //表示区块链的总工作量证明
  "chainwork": "000000000000000000000000000000000000000000bf1f1735fce19261f0cbc0",
  "size_on_disk": 165129776033, //区块链数据在磁盘上的大小
  "pruned": false,  //是否启用了精简模式
  "warnings": ""  //节点警告信息
}

bitcoin-cli getnetworkinfo 网络同步状态,返回信息:

{
  "version": 250000, //比特币核心版本号
  "subversion": "/Satoshi:25.0.0/", //核心子版本信息
  "protocolversion": 70016, //网络协议版本号
  "localservices": "0000000000000409", //本地节点服务标志,16进制
  "localservicesnames": [ //标志列表
    "NETWORK",  //网络节点
    "WITNESS",  //支持隔离见证
    "NETWORK_LIMITED"  //有限网络模式运行
  ],
  "localrelay": true,  //本地是否支持交易中继
  "timeoffset": -1,  //节点与网络时间的偏移
  "networkactive": true, //是否处于活动状态
  "connections": 10,  //与其他节点的连接数
  "connections_in": 0,  //入站连接数量
  "connections_out": 10,  //出站连接数量
  "networks": [  //与其他网络的连接信息
    {
      "name": "ipv4",
      "limited": false,
      "reachable": true,  //是否能连接到这些网络
      "proxy": "",
      "proxy_randomize_credentials": false
    },
    {
      "name": "ipv6",
      "limited": false,
      "reachable": true,
      "proxy": "",
      "proxy_randomize_credentials": false
    },
    {
      "name": "onion",
      "limited": true,
      "reachable": false,
      "proxy": "",
      "proxy_randomize_credentials": false
    },
    {
      "name": "i2p",
      "limited": true,
      "reachable": false,
      "proxy": "",
      "proxy_randomize_credentials": false
    },
    {
      "name": "cjdns",
      "limited": true,
      "reachable": false,
      "proxy": "",
      "proxy_randomize_credentials": false
    }
  ],
  "relayfee": 0.00001000,  //节点在交易中继时收取的费用
  "incrementalfee": 0.00001000, //节点在交易中继时额外收取的递增费用
  "localaddresses": [  //本地节点信息
  ],
  "warnings": ""  //节点警告信息
}

bitcoin-cli getblockcount 取块高度

钱包功能

bitcoin-cli createwallet "钱包名称" 创建钱包
bitcoin-cli loadwallet 加载默认钱包
bitcoin-cli loadwallet "钱包名称" 加载指定钱包
bitcoin-cli listwallets 列出钱包
bitcoin-cli getwalletinfo 列出钱包信息

查询自己账户

bitcoin-cli listtransactions "地址" 10 0 true //查询最近10笔交易
bitcoin-cli getreceivedbyaddress "地址" //查询地址余额