Solana 是最难自己运行的区块链。验证者或完整 RPC 节点需要极快的 CPU、大量内存和高速 NVMe 磁盘,而且要求还在不断变化。本指南解释了这在实践中意味着什么,帮助你判断是需要自己的节点还是更小的方案。
验证者、RPC 节点,还是都不需要?
- 验证者。对区块投票,需要完整的硬件规格、已充值的投票账户和持续的在线时间。
- RPC 节点。为应用、机器人和索引器提供请求服务。它不投票,但仍需要类似的硬件,如果启用账户索引,还需要更多内存。
- 轻量使用。如果你只发送少量交易或读取少量数据,付费 RPC 端点通常比运行节点更便宜。
购买前请查看 Solana 官方的验证者要求。它们发布在 Solana 和 Agave 文档中,并会随网络而变化。作为粗略参考,繁忙的 RPC 节点预计需要数百 GB 内存和数块高速 NVMe 硬盘。那属于独立服务器的范畴,而不是小型 VPS。我们的 Solana 节点托管页面列出了各种规格的选项。
步骤 1:准备服务器
使用 Ubuntu LTS,并执行如何保护新 VPS 中的步骤。创建一个专用用户;如果你有多块 NVMe 硬盘,请把账本和账户数据放在不同的硬盘上。
sudo adduser --disabled-password --gecos "" sol
sudo mkdir -p /mnt/ledger /mnt/accounts
sudo chown -R sol:sol /mnt/ledger /mnt/accounts
第 2 步:提高系统限制
Solana 会打开大量文件并使用大型内存映射。请将以下内容添加到 /etc/sysctl.d/21-solana.conf 以及你的 systemd 单元中:
vm.max_map_count=1000000
net.core.rmem_max=134217728
net.core.wmem_max=134217728
# in the systemd unit:
LimitNOFILE=1000000
使用 sudo sysctl --system 应用。
第 3 步:安装验证者软件
按照官方文档中的方法安装当前的 Agave 版本(Solana 验证者客户端),并进行验证。然后检查版本:
agave-validator --version
solana --version
第 4 步:启动 RPC 节点
这是非投票 RPC 节点启动命令的典型形式。请使用官方文档中适用于你所在集群的已知验证者和入口点。
agave-validator \
--identity /home/sol/identity.json \
--ledger /mnt/ledger \
--accounts /mnt/accounts \
--entrypoint ENTRYPOINT:8001 \
--known-validator KNOWN_VALIDATOR_PUBKEY \
--only-known-rpc \
--rpc-port 8899 \
--private-rpc \
--no-voting \
--full-rpc-api \
--limit-ledger-size \
--log /var/log/solana/validator.log
请将占位符替换为文档中的值。--private-rpc 可防止 RPC 端口被广播到网络,你仍然应该用防火墙保持其关闭。
第 5 步:观察追赶进度
solana catchup --our-localhost
solana-validator --ledger /mnt/ledger monitor
从快照追赶需要几分钟到几小时。如果节点落后且始终无法恢复,原因通常是你的磁盘或网络。
防火墙
请允许文档中描述的 gossip 和 TPU 端口范围(默认范围为 8000 到 10000),并保持 RPC(8899 和 8900)私有。如果必须向其他机器提供 RPC 服务,请在前面放置带认证的反向代理。