目前BTC生态非常火,包括闪电网络的L2 Taproot Assets协议、BRC20、以及即将发展起来的RGB协议等等,开发速度也由于各种新的生态造富效应而快了起来,不过推特上很多的Bitcoin全节点搭建教程大多是基于windows操作系统,一般是自己的家用电脑主机24小时不停的跑,是有一些不方便的,而使用云服务器 (小白服务器知识看这里) 就能一直跑着节点维持运行。
对于没有技术基础的用户来说,windows系统来搭建节点很方便,优点也是图形界面操作更加易懂,而服务器上的Linux系统的话对于小白来说很陌生,此教程应运而生,只需要参照本指南跑一个写好的脚本即可运行BTC全节点。
说一下为什么要运行一个自己的BTC全节点?(大多数人不明白为何要维护一个BTC节点)
先从概念简单说一下,比特币是一种点对点的电子现金系统,更直接地说是节点对节点,每笔交易由发起方向周围的节点进行广播,节点收到之后再广播给自己周围的节点,最终扩散至全网。每一个比特币钱包都是一个节点,其中拥有完整区块链账本的节点叫做全节点。
那么对于撸毛和普通用户来说,最重要的是最后一点,提高查询和交易速度,同时还能降低铸造成本减少Gas费。比如现在很火的brc20铭文赛道,很多人配合btc全节点来打铭文(比如很多代打平台有自己的全节点服务器组),因此为了应对以后BTC生态上突然出现的爆火项目,如果部署了BTC节点就能够立即抓住机会Mint或者铸造,同时抢先一步。
任务工具:一台服务器
Bitcoin Core 全节点有一定的要求。如果您尝试在较弱的硬件上运行节点,它可能会起作用,但您可能会花费更多时间来处理问题。如果您能够满足以下要求,您将拥有一个易于使用的节点。
以下是运行 BTC 全节点的最低配置要求:(配置要求不算高,主要是磁盘)
CPU : 2 GHz | 2+ 核心
RAM:2 GB 内存
SSD: 50G
磁盘:1TB以上
系统:Ubuntu 22.04
流量带宽:50M带宽及以上,全节点每月使用 200 GB以上
任务时间:5分钟;
任务成本:服务器成本
难易程度:中等偏简单
注意:当今许多操作系统(Windows、Mac 和 Linux)在屏幕保护程序激活后进入低功耗模式,从而减慢或停止网络流量。这通常是笔记本电脑以及所有 Mac OS X 笔记本电脑和台式机的默认设置。检查您的屏幕保护程序设置并禁用自动“睡眠”或“挂起”选项,以确保您的计算机在运行时支持网络。
先放一个Bitcoin core官方的全节点教程:
1.准备好对应配置的云服务器,教程点此进入(往下拉到服务器推荐那里查看搭建服务器步骤,小白可补充一些服务器知识)
2.选择使用xshell连接服务器控制台终端,Xshell教程点此进入(教程中xshell支持sz工具下载私钥文件到windows本地,用其他支持sz功能的ssh工具也可以)
3.按照1步骤生成好云服务器后,需要添加挂载磁盘(因为数据很大,需要的磁盘空间至少500G以上),步骤如下:
此处使用一键脚本来简化大家的搭建,代码由推特用户@ouyoung11编写,欢迎关注。
代码完全开源,可在github处检查源代码,无任何后台漏洞及危险代码。
1.服务器登陆之后,依次执行以下命令:
cd ~ && wget -O /root/btcfullnode-oooooyoung.sh https://github.com/nopapername/shell-oooooyoung/releases/download/btcfullnode-oooooyoung-install_1.0.0/btcfullnode-oooooyoung.sh && chmod +x btcfullnode-oooooyoung.sh
2.输入下面的代码,进入一键搭建脚本的提示界面(依次输入数字执行步骤, 每一步结束后再跑下面这个命令会再次进入脚本界面)。
bash /root/btcfullnode-oooooyoung.sh
(1)执行之后出现下图所示的脚本界面,输入1并回车执行脚本步骤1,等待环境包安装完毕(中间如有打断直接回车跳过)
PS: 上面安装完成后这里日志里需要验证一下是不是你上面准备工作3中创建的挂载磁盘名字!
(2) 再次输入bash /root/btcfullnode-oooooyoung.sh
进入脚本界面,然后输入数字2执行btc全节点 (如果报错bitcoind问题,请输入 source ~/.bashrc
并重新运行此步)
(3)输入 bash /root/btcfullnode-oooooyoung.sh
进入脚本界面,输入数字3可查看当前同步区块信息
然后和headers字段或者 mempool 浏览器(https://mempool.space/zh/ )中的最新区块进行对比,如果一致,则代表同步成功。
(4)可输入 bash /root/btcfullnode-oooooyoung.sh
进入脚本界面输入数字4可查看BTC节点运行日志
(5)输入 top
还可以验证一下全节点进程是否运行:
(6)10.等待同步完成,可以在生态项目钱包中用全节点做mint铸造操作(比如ord钱包),具体btc生态的mint请查看各项目的教程指南,后续可以关注 @ouyoung11 也会写btc生态上项目的mint教程。
(搭建流程存档,小白可跳过此步骤直接看 STEP2 使用一键脚本搭建,后面附录bitcoin core命令列表)
1.输入df -h
查看挂载的磁盘路径(比如我刚刚添加的磁盘名字是btc-storage,路径为 /mnt/btc_storage
):
2.输入cd /mnt/btc_storage
进入此磁盘:
3.去此处查看当前bitcoin core程序版本,并复制下载链接:
4.在/mnt/btc_storage
目录输入下面的命令下载并解压bitcoin core程序(里面的下载地址https://开头的
改成4中复制的最新版本的地址,此教程时当前版本为25.1
)
wget -O bitcoin-core.tar.gz https://bitcoincore.org/bin/bitcoin-core-25.1/bitcoin-25.1-x86_64-linux-gnu.tar.gz && \
tar -xvf bitcoin-core.tar.gz && \
bitcoin_directory=$(tar -tf bitcoin-core.tar.gz | head -n 1 | cut -f1 -d'/') && \
mv "$bitcoin_directory" bitcoin-core && \
chmod +x bitcoin-core
5.编辑linux的环境变量文件,在文件末尾添加bitcoin-core目录路径
cd bitcoin-core/bin
进入目录后输入pwd可查看当前路径输入 nano ~/.bashrc
进入编辑环境变量文件,将下面的内容复制到文件中,并按 ctrl + x 后输入y回车
保存文件
#bitcoin env
export BTCPATH=/mnt/btc_storage/bitcoin-core/bin #根据自己文件目录修改
export PATH=$BTCPATH:$PATH
6.输入 source ~/.bashrc
使修改的环境配置生效
7.输入mkdir /mnt/btc_storage/btc-data
创建需要保存btc数据的文件夹(创建后可输入ls
查看磁盘下是否存在此目录)
8.输入 nano /mnt/btc_storage/btc-data/bitcoin.conf
在btc-data目录下添加bitcoind的配置文件bitcoin.conf, 并输入如下内容后按ctrl + x 后输入y回车
保存:
server=1
daemon=1
txindex=1
rpcuser=mybtc
rpcpassword=mybtc123
addnode=101.43.124.195:8333
addnode=27.152.157.149:8333
addnode=101.43.95.152:8333
addnode=222.186.20.60:8333
addnode=175.27.247.104:8333
addnode=110.40.210.253:8333
addnode=202.108.211.135:8333
addnode=180.108.105.174:8333
其中addnode可以用来添加一个节点,加快下载速度,节点ip从 此网站 获得:https://bitnodes.io/,推荐优先使用国内节点。
8. 输入 sudo ufw allow 8333
打开8333端口防火墙
9.输入以下指令开始同步(-datadir后跟第7步中创建的存放data的文件夹路径,我这里是btc-data):
bitcoind -datadir=/mnt/btc_storage/btc-data -txindex
Bitcoin数据同步过程一般来说不会出现问题,不过也有可能由于网络原因碰到同步问题,解决方式就是多次尝试,直到同步成功为止。
10.等待同步完成,可以在生态项目钱包中用全节点做mint铸造操作(比如ord钱包),具体btc生态的mint请查看各项目的教程指南,后续可以关注 @ouyoung11 也会写btc生态上项目的mint教程。
查看是否同步完成:
当同步完成之后,输入 bitcoin-cli -rpcuser=mybtc -rpcpassword=mybtc123 getblockchaininfo
得到同步的区块信息。
然后和headers字段或者 mempool 浏览器(https://mempool.space/zh/ )中的最新区块进行对比,如果一致,则代表同步成功。
一些常见的 Bitcoin Core 命令:
启动 Bitcoin Core:
bitcoind
这会启动比特币全节点。
获取节点信息:
bitcoin-cli getinfo
这个命令提供关于比特币节点的信息,例如区块链高度、难度等。
获取钱包信息:
bitcoin-cli getwalletinfo
这个命令提供有关比特币钱包的信息,例如余额、未确认余额等。
获取最新区块的哈希:
bitcoin-cli getbestblockhash
这个命令返回当前链上最新区块的哈希。
获取指定区块的详细信息:
bitcoin-cli getblock <blockhash>
替换 <blockhash>
为区块的哈希值。
获取交易详细信息:
bitcoin-cli gettransaction <txid>
替换 <txid>
为交易的哈希值。
生成新地址:
bitcoin-cli getnewaddress
这个命令用于生成新的比特币地址。
发送比特币:
bitcoin-cli sendtoaddress <address> <amount>
替换 <address>
为接收地址,<amount>
为发送的比特币数量。
备份钱包:
bitcoin-cli backupwallet <filename>
这个命令用于备份比特币钱包。
导入私钥:
bitcoin-cli importprivkey <privatekey>
替换 <privatekey>
为要导入的私钥。
查询未花费的输出 (UTXOs):
bitcoin-cli listunspent
这个命令返回未花费的输出列表。
查看挖矿信息:
bitcoin-cli getmininginfo
这个命令提供有关挖矿的信息,例如区块的难度、挖矿设备信息等。
这只是 Bitcoin Core 命令的一小部分,有很多其他命令和选项可用,可以通过查阅 Bitcoin Core 官方文档 来获取更详细的信息。