什么是 Solana 节点?

什么是 Solana 节点?

验证交易和维护安全是任何项目进入权益证明领域时必须执行的强制性活动。如果没有节点运营商(验证器和 RPC 节点),Solana 网络就无法实现这些目标。

让我们看看这两种类型的节点有何区别。

共识验证者

  • 角色:共识验证者负责运行 Solana 网络。每个验证者执行特定任务,例如验证交易和跟踪账户。他们的贡献有助于确保区块链的安全性和完整性。
  • 费用:验证者每次投票都会产生交易成本。这些费用约为每天 1.0 SOL。值得注意的是,验证者的账户中必须始终有足够的 SOL 来支付这些费用。
  • 激励:验证者通过投票积分获得通胀奖励。成功对添加到区块链的区块进行投票将授予验证者投票积分。此外,当您的验证者担任领导者时,他/她可以为其生成并添加到区块链的每个区块赚取交易和存储租赁费

    RPC(远程过程调用)节点

  • 角色:RPC 节点是无投票权的验证者。它们充当用户(在本例中为开发人员)与 Solana 区块链之间的接口。这些节点响应与区块链相关的请求,允许用户提交交易以纳入区块。与 API 提供商一样,RPC 节点为开发人员提供对区块链数据的访问权限。
  • 费用和奖励:与验证器节点不同,运行 RPC 节点的 RPC 操作员不会获得奖励,因为该节点不参与投票。RPC 节点不收取任何费用。
    通过成为验证者,您可以为网络发展做出贡献,并加入致力于 Solana 生态系统的热情运营商社区。您选择运行验证者还是 RPC 节点取决于您的目标和技术背景。 如果您对自己的技术背景没有信心,或者硬件容量有限,那么质押是支持网络的最佳方式。了解如何通过验证者质押 Solana以赚取被动收入。

Solana 节点要求

共识验证者要求

最低 SOL 要求:

  • 没有严格的最低 SOL 量。
  • 投票账户的免租储备金为 0.02685864 SOL。
  • 投票交易每天的成本高达 1.1 SOL。

硬件建议:

中央处理器:

  • 至少 64 个核心/24 个线程。
  • 基本时钟速度为 2.8GHz 或更快。
  • SHA 扩展指令支持(AMD Gen 3 或更新版本、Intel Ice Lake 或更新版本)。
  • AVX2 指令支持(AVX512f 很有帮助)。

内存:

  • 至少 256GB(建议 ECC 内存)。
  • 主板容量为512GB(建议)。

磁盘:

  • PCIe Gen3 x4 NVME SSD 或更高。验证器常用的 SSD 选择包括三星 970 和 980 Pro 系列。
  • 账户:至少 500GB(建议使用高 TBW)。
  • Ledger:至少 1TB(建议使用高 TBW)。
  • 操作系统:可选 - 至少 500GB。操作系统可以安装在账本磁盘上,但账本在自己的磁盘上时性能会更好。由于 IOPS 较高,不建议将账户和账本存储在同一磁盘上。

RPC 节点建议

中央处理器:

  • 至少 16 个核心/32 个线程。

内存:

  • 如果使用帐户索引,则至少需要 512GB 或更多。

磁盘:

  • 如果交易历史较长,请考虑使用更大的分类账磁盘。
  • 账户和分类账不应该存储在同一磁盘上。

云平台上虚拟机的注意事项:

从长远来看,在云计算平台上运行验证器可能并不划算。非投票 API 节点可以在 VM 实例上运行以供内部使用。

码头工人:

不建议在 Docker 内部运行实时集群验证器,通常也不支持。Docker 仅用于开发目的。

软件:

  • 在 Ubuntu 20.04 上构建并运行。
  • 预构建的二进制文件可用于支持 AVX2 的 Linux x86_64。
  • MacOS 或 WSL 用户可以从源代码构建。

联网:

  • 互联网服务应至少达到 1GBit/s 对称速度,最好为 10GBit/s。

端口转发要求:

  • 8000-10000 TCP/UDP 用于 P2P 协议(​​gossip、turbine、repair 等)。
  • 动态端口范围(任何免费的 13 个端口范围)。

端口转发建议:

  • 8899 TCP 用于通过 HTTP 进行的 JSONRPC(可以使用 --rpc-port 进行更改)。
  • 8900 TCP 用于通过 Websockets 进行 JSONRPC(派生,使用 RPC_PORT + 1)。

如何在 Linux 上设置 Solana 节点

如何设置 Solana 验证器

  1. 在您信任的计算机上打开终端程序。

2.使用以下方法之一在本地安装 Solana CLI:

通过运行以下命令来验证安装:

solana --version

您应该会看到显示的 CLI 版本。

  • 配置 Solana CLI 以向测试网集群发出请求:

solana config set --url https://api.testnet.solana.com

验证配置:

solana config get

确保 RPC URL 设置为“ https://api.testnet.solana.com ”。

3.在本地计算机上创建三个密钥对:

solana-keygen new -o validator-keypair.json

solana-keygen new -o vote-account-keypair.json

solana-keygen new -o authorized-withdrawer-keypair.json

注意:authorized-withdrawer-keypair.json 包含敏感信息,应安全存储。

4.创建投票账户:

solana config set --keypair ./validator-keypair.json

solana balance  (查看账户余额)

solana airdrop 1  (将 SOL 存入账户)

现在使用以下命令创建一个投票账户:

solana create-vote-account -ut \

--fee-payer ./validator-keypair.json \

./vote-account-keypair.json \

./validator-keypair.json \

./authorized-withdrawer-keypair.json

5.安全存储authorized-withdrawer-keypair.json文件。

6.通过 SSH 进入你的验证服务器:

ssh user@<server.hostname>

7.更新你的 Ubuntu 软件包:

sudo apt updatesudo apt install

8.创建一个新的 Ubuntu 用户来运行验证器:

sudo adduser sol

9.设置分类账和账户数据库的硬盘:

  • 格式化并安装分类帐驱动器:

sudo mkfs -t ext4 /dev/nvme0n1

lsblk -f  (检查 UUID)

sudo mkdir -p /mnt/ledger

sudo chown -R sol:sol /mnt/ledger

sudo mount /dev/nvme0n1 /mnt/ledger

  • 格式化并安装账户数据库驱动器(与上述步骤类似)。

10. Linux 系统调优

  • 优化 sysctl 旋钮:

sudo bash -c "cat >/etc/sysctl.d/21-solana-validator.conf <<EOF

net.core.rmem_default = 134217728

net.core.rmem_max = 134217728

net.core.wmem_default = 134217728

net.core.wmem_max = 134217728

vm.max_map_count = 1000000

fs.nr_open = 1000000

EOF"

sudo sysctl -p /etc/sysctl.d/21-solana-validator.conf

  • 增加 systemd 和会话文件限制:

对于 systemd 服务文件:

添加LimitNOFILE=1000000到 systemd 服务文件的 [Service] 部分。

如果不使用 systemd 服务文件:

添加DefaultLimitNOFILE=1000000部分。[Manager]/etc/systemd/system.conf

EOF"sudo systemctl daemon-reload

  • 设置进程文件描述符数量限制:

sudo bash -c "cat >etc/security/limits.d/90-solana-nofiles.conf <<EOF

# Increase process file descriptor count limit

* - nofile 1000000 EOF"

  • 关闭所有打开的会话并重新登录。

11.复制密钥对:

scp validator-keypair.json sol@<server.hostname>:

scp vote-account-keypair.json sol@<server.hostname>:

12.切换到sol用户:

su - sol

13.在远程机器上安装 Solana CLI:

  • 安装 Solana CLI(参考 Solana 的安装工具或从源代码构建)。

创建验证器启动脚本:

mkdir -p /home/sol/bin

touch /home/sol/bin/validator.sh

chmod +x /home/sol/bin/validator.sh

nano /home/sol/bin/validator.sh

将以下内容粘贴到validator.sh中:

#!/bin/bash exec solana-validator \

--identity validator-keypair.json \

--vote-account vote-account-keypair.json \

--known-validator 5D1fNXzvv5NjV1ysLjirC4WY92RNsVH18vjmcszZd8on \

--known-validator 7XSY3MrYnK8vq693Rju17bbPkCN3Z7KvvfvJx4kdrsSY \

--known-validator Ft5fbkqNa76vnsjYNwjDZUXoTWpP7VYm3mtsaQckQADN \

--known-validator 9QxCLckBiJc783jnMvXZubK4wH86Eqqvashtrwvcsgkv \

--only-known-rpc \

--log /home/sol/solana-validator.log \

--ledger /mnt/ledger \

--rpc-port 8899 \

--dynamic-port-range 8000-8020 \

--entrypoint entrypoint.testnet.solana.com:8001 \

--entrypoint entrypoint2.testnet.solana.com:8001 \

--entrypoint entrypoint3.testnet.solana.com:8001 \

--expected-genesis-hash 4uhcVJyU9pJkvQyS88uRDiswHXSCkY3zQawwpjk2NsNY \

--wal-recovery-mode skip_any_corrupted_record \

--limit-ledger-size

  • 保存文件。

14.验证你的验证器是否正常工作

执行validator.sh脚本:/home/sol/bin/validator.sh

在新的终端窗口中,通过 ssh 进入您的服务器,然后验证该进程是否正在运行:ps aux | grep solana-validator

跟踪日志:su - sol tail -f /home/sol/solana-validator.log

Gossip 协议:通过 ssh 连接到你的服务器并识别你的验证者的公钥:

solana-keygen pubkey ~/validator-keypair.json

检查你的验证者是否已在八卦网络中注册:

solana gossip | grep <pubkey>

Solana 验证者:检查您的验证者是否已加入网络:

solana validators | grep <pubkey>

Solana Catchup:检查验证者的追赶状态:

solana catchup <pubkey>

15.创建系统服务

按照说明将验证器作为系统服务运行。配置完成后,使用新创建的服务启动验证器:

sudo systemctl enable --now sol

跟踪日志以确保验证器正常运行,并使用提到的命令检查 gossip 和 Solana 验证器:

tail -f /home/sol/solana-validator*.log

就这样!您已成功设置 Solana 验证器。请记住参考 Solana 文档以获取有关每个命令和其他最佳实践的更多详细信息。

如何设置 RPC 节点

要在 Solana 上设置 RPC 节点,您将执行与验证器部署类似的步骤。但是,由于 RPC 节点不会对区块有效性进行投票,因此您可以跳过“创建投票账户”部分。

查看Solana 文档中有关设置 RPC 节点的其他信息。

相关推荐

  1. 什么solana PDA账户?

    2024-06-15 00:42:01       17 阅读
  2. 什么js防抖节流

    2024-06-15 00:42:01       7 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-15 00:42:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-15 00:42:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-15 00:42:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-15 00:42:01       18 阅读

热门阅读

  1. Set up an Ethereum node on your Raspberry Pi using IPv6

    2024-06-15 00:42:01       9 阅读
  2. HCIP认证笔记(判断题)

    2024-06-15 00:42:01       4 阅读
  3. 2024.6.12总结

    2024-06-15 00:42:01       10 阅读
  4. 编程前端看什么书比较好:深入解析与推荐

    2024-06-15 00:42:01       7 阅读
  5. 深入解析 Unix I/O 的五种模型

    2024-06-15 00:42:01       9 阅读
  6. mysql-线上常用运维sql-2

    2024-06-15 00:42:01       9 阅读