Synology DS923+ 上部署比特币全节点教程

·

为什么要自己跑比特币全节点?

比特币网络是去中心化的公共账本,而比特币全节点 bitcoin node承担着验证和广播交易的使命。当你把节点跑在自家 NAS 上,既能强化比特币网络安全性,又可享受“无需信任任何第三方”的链上查询体验;同时还能私下向硬件钱包推送交易,避免泄露隐私。本文演示如何用 Synology DS923+ 与 Docker 容器在数分钟内上线一个全节点,并启用 交易索引 txindex,占用约 670 GB 空间。


必要准备

Synology 系统前置环境

  1. DSM 7.2 及以上版本。
  2. 套件中心 已安装 Container Manager
  3. DSM 控制面板 → 网络 → 防火墙放行 8332、8333 端口(面向本地即可)。
  4. 插入两块容量 ≥ 1 TB 的 HDD 并建立 Btrfs 存储空间,为后期快照留余地。
  5. 建议在路由器中开启 50 Mbit/s 以上上传速率,提高区块同步效率。

目录规划

File Station 建立如下结构(大小写敏感):

/volume1/docker/
├─ bitcoin-data/     # 存放区块链数据
└─ bitcoin-conf/     # 存放配置文件

安装与部署

1 制作 bitcoin.conf 配置

进入 bitcoin-conf 文件夹,新建文件 bitcoin.conf,内容按需微调。下方示例开启交易索引并关闭钱包功能以节省资源:

regtest=0
txindex=1
disablewallet=1
printtoconsole=1
rpcuser=bitcoinrpc
rpcpassword=把你的强密码替换这行
小技巧:想减少日志刷屏,可在末尾追加 debug=0

2 拉取镜像并创建容器

  1. 打开 Container Manager,搜索关键字 bitcoind,Pull 镜像 kylemanna/bitcoind
  2. 新建容器 → 高级设置:
标签示范填写
容器名称bitcoind
卷映射/volume1/docker/bitcoin-data/bitcoin/.bitcoin
/volume1/docker/bitcoin-conf/bitcoin/.bitcoin
端口映射本地:8333 → 容器:8333(p2p)
本地:8332 → 容器:8332(rpc)
环境变量BTC_RPCUSER=bitcoinrpcBTC_RPCPASSWORD=你同上
重启策略Always
  1. 启动后耐心等待 首次初始同步。以 DS923+(Ryzen R1600,4C8T,8 GB RAM,千兆网)为例:

3 验证节点健康状态

SSH 进入 DSM,执行:

curl --user bitcoinrpc \
     --data-binary '{"jsonrpc":"1.0","id":"curltest","method":"getblockchaininfo","params":[]}' \
     -H 'content-type: text/plain;' \
     http://localhost:8332/

若回显 "initialblockdownload":false"blocks""headers" 数值一致即表示节点已追上最新高度。


常用 RPC 命令速查

以下指令均在同一局域网 PC 或 NAS 本体上完成。假设 RPC 监听地址为 192.168.1.88:8332

查询整体信息

getblockchaininfo          # 查看链高度、同步进度、磁盘占用

按高度查区块哈希

getblockhash 846055

返回区块详情

getblock <上面得到的区块哈希>

查询交易详情(已启用 txindex 才可)

getrawtransaction <交易ID> true

常见问题 FAQ

Q1:家里带宽不高,会影响同步吗?
A:第一次同步时真·千兆对等带宽尤佳,但普通 200 M 下行动亦可完成;下载占大头,上行仅在「将区块分发给相邻节点」时出现 2–5 MB/s 峰值。若担心夜间限速,可在 bitcoin.conf 加入 maxuploadtarget=5000(单位 MB/天)。

Q2:存储不够怎么办?
A:

  1. 启用裁剪模式prune=550(保留最近 550 MB 数据)。此时 txindex 会自动失效,但基础验证仍可运行。
  2. 挂载 USB 硬盘:DS923+ 背部 USB 3.2 Gen2 接口可外挂 10 TB 移动硬盘,并将其映射为额外卷,重启容器后在 DSM 内即可迁移数据。

Q3:如何让节点只跑私网?
A:在 bitcoin.conf 中加入 listen=0connect=0 并配合 onlynet=onion 的反向代理设置,亦可完全切断对外广播,仅做内部背书节点。

Q4: DS923+ 只有 4 GB 内存够吗?
A:最低 4 GB 能启动,但后续容易 OOM。强烈建议预留 6–8 GB 物理内存,或在 Container Manager 设置容器内存限制为 3 GB 搭配 4 GB Swap,观测半月无异常再放行。

Q5:能不能经济同步,不跑全节点?
A:技术宅福音:你可以选择 Neutrino(BIP-157) 轻钱包客户端,仅下载区块头部 80 MB 即可。但实际挖矿、原子互换、隐私路由还是需要全节点。


数据扩展技巧


想要亲手搭建却从未做过 Docker?👉 这份零基础 Synology Container Manager 快速上手指南 让你十分钟搞定容器环境!


最后,开源世界贵在分享。亲测 R1600 双核就可在跑 Bitcoin 全节点的同时,继续用 Synology Drive 备份全家照片。共勉之!