# Bitcoin 全节点服务器搭建教程

By [0xFinian](https://paragraph.com/@finian) · 2023-02-10

---

最近 BTC 的 NFT 很火（Ordinals 协议），参与需要有自己的 BTC 全节点，虽然也可以花钱找机器人代打，但是人多了会不稳定。下面介绍一下在服务器中如何搭建 BTC 的全节点。

> 注 1：以下所有命令以 Debian 11.6 以及 root 账户为例。 注 2：bitcoin-core 版本请相应换为最新的。写文章时，最新版本为 24.0.1。 注 3：全节点大小大概 450 G，注意硬盘空间大小。

### 安装与运行

下载：

    wget https://bitcoincore.org/bin/bitcoin-core-24.0.1/bitcoin-24.0.1-x86_64-linux-gnu.tar.gz
    

解压：

    tar xvzf bitcoin-24.0.1-x86_64-linux-gnu.tar.gz
    

安装：

    install -m 0755 -o root -g root -t /usr/local/bin bitcoin-24.0.1/bin/*
    

创建配置文件：

    vim ~/.bitcoin/bitcoin.conf
    

内容如下：

    txindex=1
    dbcache=16384
    

运行：

    bitcoind -daemon
    

### 查看区块同步进度

如何查看区块同步进度呢？有以下几种方法。

*   查看调试输出日志
    

    tail ~/.bitcoin/debug.log
    

日志内容示例：

    ...
    ...
    2023-02-10T17:08:49Z UpdateTip: new best=00000000000000002f8f9102e45bc9d067bde6f3363b1601216d3eac2a75cb9e height=298458 version=0x00000002 log2_work=78.308530 tx=37841638 date='2014-04-30T13:46:19Z' progress=0.047178 cache=1515.8MiB(11587473txo)
    

从 `date` 和 `progress` 等字段能看出同步进度。

*   对比区块数
    

    wget -q -O- https://blockchain.info/q/getblockcount; echo
    775906
    bitcoin-cli getblockcount
    310627
    

*   通过以下脚本输出
    

    #!/bin/bash
    count=$(bitcoin-cli getblockcount);
    echo "block count: $count";
    
    hash=$(bitcoin-cli getblockhash $count);
    echo "block hash: $hash";
    
    t=$(bitcoin-cli getblock "$hash" | grep '"time"' | awk '{print $2}' | sed -e 's/,$//g');
    echo "block timestamp is: $t";
    
    cur_t=$(date +%s);
    diff_t=$[$cur_t - $t];
    echo -n "Difference is: ";
    echo $diff_t | awk '{printf "%d days, %d:%d:%d\n",$1/(60*60*24),$1/(60*60)%24,$1%(60*60)/60,$1%60}';
    

输出示例：

    block count: 324393
    block hash: 00000000000000001aced2606293f68082f20d54b68c281778a608f3a522ada9
    block timestamp is: 1412760302
    Difference is: 3047 days, 7:52:20
    

全节点同步完估计要一天多，have fun :-P

### 参考

> [https://twitter.com/dotta/status/1622994717897285632](https://twitter.com/dotta/status/1622994717897285632) [https://vhernando.github.io/run-bitcoin-node-debian-how-to](https://vhernando.github.io/run-bitcoin-node-debian-how-to) [https://github.com/bitcoin/bitcoin](https://github.com/bitcoin/bitcoin)

---

*Originally published on [0xFinian](https://paragraph.com/@finian/bitcoin)*
