ubuntu22.04部署bitcoin全节点教程

最近铭文不是一般的火,动不动百八十倍,想快速低成本打个有潜力的铭文,没个自己的全节点怎么能行?借此缘故,本文重新整理下部署Bitcoin全节点的过程。

1. 环境

硬盘:1T左右,优先NVME。Bitcoin截止本文发布时占610GB左右,保不准你后面还要部署闪电网络什么的,多给自己预留点空间。
内存:16GB,查询历史记录什么的,要加载完整索引,需要的内存比较大
cpu:这个目前常规cpu足够了,4核以上
带宽:常规
系统:ubuntu22.04
同步时常:很多人说,需要3到5天;但我的只用了十几个小时,貌似是nvme盘+千兆带宽的缘故

2. 基本部署

  1. 下载btc程序最新版:bitcoin 根据自己系统环境选,我这里选的Linux(tgz),amd的。当前我下载后的文件名是:bitcoin-25.1-x86_64-linux-gnu.tar.gz
  2. 放在你合适的位置,我直接放/root/目录了,执行如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 解压
tar -zxvf bitcoin-25.1-x86_64-linux-gnu.tar.gz

# 改文件名
mv bitcoin-25.1 bitcoin

# 进入根目录
cd bitcoin

# 修改配置,具体配置内容查看下文
vim bitcoin.conf

# 启动节点,至此节点开始在后台自动同步了
/root/bitcoin/bin/bitcoind -conf=/root/bitcoin/bitcoin.conf -daemon

# 停止节点,安全稳定的关闭节点。有说法是,不使用该命令,直接强制杀死bitcoin进程,可能导致数据异常,需要重新同步
bitcoin-cli rpcuser=rpcuser -rpcpassword=rpcpassword stop

常规配置内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 节点数据目录
datadir=/root/bitcoin/data/
dbcache=4096
txindex=1
irc=1
upnp=1
# rpc连接账户
rpcuser=username
# rpc连接密码
rpcpassword=password
daemon=1
server=1
addressindex=1
rest=1
rpcbind=0.0.0.0:8332
rpcallowip=0.0.0.0/0
# 启用已废弃的rpc接口,这个具体咋用,还不确定
deprecatedrpc=accounts

3. 进阶部署

上述的基本部署,只是满足了最低要求的部署方式,如果想要开机自启,能够快捷使用btc的不同命令,还需要进一步操作

  1. 环境变量配置:
1
2
3
4
5
vim ~/.bashrc

# 新增内容
export BTCPATH=/root/bitcoin/bin
export PATH=$BTCPATH:$PATH
  1. supervisor安装(守护进程,用于确保btc服务开机自启,异常重启等)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 创建日志目录,后续用到
# mkdir /root/bitcoin/logs/

# 安装
sudo apt update && sudo apt install supervisor

# 配置
vim /etc/supervisor/conf.d/bitcoind.conf

# 配置内容
[program:bitcoind]
command=/root/bitcoin/bin/bitcoind -conf=/root/bitcoin/bitcoin.conf -daemon
numprocs=1
directory=/root/bitcoin/
autostart=true
autorestart=true
stdout_logfile=/root/bitcoin/logs/bitcoind.log
stderr_logfile=/root/bitcoin/logs/bitcoind.error.log

# 配置完毕,回到命令行环境后,执行如下:
# 更新配置
sudo supervisorctl reread
# 正式生效
sudo supervisorctl update
# 查看状态
sudo systemctl status supervisor
# 手动启动(可选)
sudo supervisorctl start bitcoind
# 手动暂停(可选)
sudo supervisorctl stop bitcoind
# 手动重启(可选)
sudo supervisorctl restart bitcoind

注:这里一个问题是,直接使用supervisorctl停止bitcoin,会不会导致数据异常,有待考证。正常情况下,是使用bitcoin-cli停止节点

4. 查看日志和区块链浏览器

目前有两个位置的日志需要留意:

1
2
3
4
5
6
7
8
9
10
11
# supervisor的bitcoind控制台日志
# 正常启动后的日志,里面貌似没什么有效日志,就只有一行:Bitcoin Core starting
tail -f /root/bitcoin/logs/bitcoind.log
# 启动异常的日志,各种缘故导致的启动异常,在这里都能看到原因
tail -f /root/bitcoin/logs/bitcoind.error.log

# bitcoin自身的日志文件,可以看到索引同步进度,节点数据同步情况等
tail -f /root/bitcoin/data/debug.log

# 可以看看数据同步多大了
du -h /root/bitcoin/data/

可以前往此处查看全网链的最新高度等信息:btc区块链浏览器

rpc访问

1
2
3
4
5
6
# 账户密码要输对,输错了什么也不返回
# 查询mininginfo
curl -s -X POST --user rpcUserName:rpcPassword -H 'content-type: text/plain;' http://127.0.0.1:8332/ --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getmininginfo", "params": [] }'

# 可进一步过滤获取最新高度
curl -s -X POST --user rpcUserName:rpcPassword -H 'content-type: text/plain;' http://127.0.0.1:8332/ --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getmininginfo", "params": [] }' |awk -F '[:,]' '{print $3}'

5. 常用命令

1
2
3
4
5
6
7
8
9
10
# 停止bitcoin节点
bitcoin-cli rpcuser=rpcuser -rpcpassword=rpcpassword stop
# 查看网络状态:
bitcoin-cli rpcuser=rpcuser -rpcpassword=rpcpassword getnetworkinfo
# 查看网络节点:
bitcoin-cli rpcuser=rpcuser -rpcpassword=rpcpassword getpeerinfo
# 查看区块链信息:如同步进度、
bitcoin-cli rpcuser=rpcuser -rpcpassword=rpcpassword getblockchaininfo
# 查看所有命令
bitcoin-cli help

6. 总结

本文编辑完毕

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2017-2023 Jason
  • Visitors: | Views:

谢谢打赏~

微信