什么是 Solana 节点?

2024-06-15 01:12
文章标签 节点 solana

本文主要是介绍什么是 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 文档中的Solana 安装工具。
  • 从源代码构建更安全、性能更佳的可执行文件。

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

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 节点的其他信息。

这篇关于什么是 Solana 节点?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1062008

相关文章

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟)

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟) 题目描述 给定一个链表,链表中的每个节点代表一个整数。链表中的整数由 0 分隔开,表示不同的区间。链表的开始和结束节点的值都为 0。任务是将每两个相邻的 0 之间的所有节点合并成一个节点,新节点的值为原区间内所有节点值的和。合并后,需要移除所有的 0,并返回修改后的链表头节点。 思路分析 初始化:创建一个虚拟头节点

JS和jQuery获取节点的兄弟,父级,子级元素

原文转自http://blog.csdn.net/duanshuyong/article/details/7562423 先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比。 JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当最DOM元素。 <div id="test"><div></div><div></div

驱动(RK3588S)第七课时:单节点设备树

目录 需求一、设备树的概念1、设备树的后缀名:2、设备树的语法格式3、设备树的属性(重要)4、设备树格式举例 二、设备树所用函数1、如何在内核层种获取设备树节点:2、从设备树上获取 gpio 口的属性3、获取节点上的属性只针对于字符串属性的4、函数读取 np 结点中的 propname 属性的值,并将读取到的 u32 类型的值保存在 out_value 指向的内存中,函数的返回值表示读取到的

OpenStack离线Train版安装系列—3控制节点-Keystone认证服务组件

本系列文章包含从OpenStack离线源制作到完成OpenStack安装的全部过程。 在本系列教程中使用的OpenStack的安装版本为第20个版本Train(简称T版本),2020年5月13日,OpenStack社区发布了第21个版本Ussuri(简称U版本)。 OpenStack部署系列文章 OpenStack Victoria版 安装部署系列教程 OpenStack Ussuri版

OpenStack离线Train版安装系列—2计算节点-环境准备

本系列文章包含从OpenStack离线源制作到完成OpenStack安装的全部过程。 在本系列教程中使用的OpenStack的安装版本为第20个版本Train(简称T版本),2020年5月13日,OpenStack社区发布了第21个版本Ussuri(简称U版本)。 OpenStack部署系列文章 OpenStack Victoria版 安装部署系列教程 OpenStack Ussuri版

OpenStack离线Train版安装系列—1控制节点-环境准备

本系列文章包含从OpenStack离线源制作到完成OpenStack安装的全部过程。 在本系列教程中使用的OpenStack的安装版本为第20个版本Train(简称T版本),2020年5月13日,OpenStack社区发布了第21个版本Ussuri(简称U版本)。 OpenStack部署系列文章 OpenStack Victoria版 安装部署系列教程 OpenStack Ussuri版

OpenStack离线Train版安装系列—10.控制节点-Heat服务组件

本系列文章包含从OpenStack离线源制作到完成OpenStack安装的全部过程。 在本系列教程中使用的OpenStack的安装版本为第20个版本Train(简称T版本),2020年5月13日,OpenStack社区发布了第21个版本Ussuri(简称U版本)。 OpenStack部署系列文章 OpenStack Victoria版 安装部署系列教程 OpenStack Ussuri版

OpenStack Victoria版——7.2计算节点-Neutron网络服务组件

7.2计算节点-Neutron网络服务组件 更多步骤:OpenStack Victoria版安装部署系列教程 OpenStack部署系列文章 OpenStack Victoria版 安装部署系列教程 OpenStack Ussuri版 离线安装部署系列教程(全) OpenStack Train版 离线安装部署系列教程(全) 文章目录 一、安装相关软件二、配置公共组件三、配置网络