当前位置: 首页 > news >正文

轻松上手:从零开始启动第一个 Solana 测试节点

嗨,各位技术爱好者们!

大家是否对 Solana 的“光速”交易处理能力感到好奇?或者你是一名开发者,正准备在 Solana 上构建下一个杀手级 dApp?无论大家是出于学习目的还是实际开发需求,亲手运行一个 Solana 节点都是深入了解其底层架构的最佳方式。运行一个测试节点不仅能帮助我们深入理解其工作原理,还能为自己在 Solana 生态上的开发和测试提供巨大便利。

很多人可能会觉得启动一个区块链节点是件复杂且成本高昂的事情。但别担心,今天这篇文章将手把手带大家走完所有流程,从服务器配置到节点成功运行,让大家轻松拥有一个属于自己的 Solana 测试节点。

准备好了吗?让我们开始吧!
在这里插入图片描述

第一步:硬件是基础——需要什么样的服务器?

在启动节点之前,我们首先要解决的是“地基”问题——硬件配置。Solana 是一个高性能网络,对硬件,特别是 CPU、内存和磁盘 I/O 有着较高的要求。虽然测试网的要求比主网低,但也不能掉以轻心。

根据 Solana 官方文档和社区的最佳实践,以下是运行测试节点的推荐配置:

  • CPU:

    • 核心数: 12 核 / 24 线程或更多。
    • 时钟频率: 建议 2.8GHz 或更高。
    • 说明: Solana 的交易处理高度并行化,更多的核心能显著提升性能。AMD EPYC 或 Intel Xeon 系列的现代处理器都是不错的选择。
  • 内存 (RAM):

    • 容量: 128 GB 或更多。
    • 说明: 内存对于缓存账本(Ledger)和处理状态至关重要。虽然 64 GB 勉强可以运行,但 128 GB 会让我们在节点同步和运行过程中更加从容,避免因内存不足导致的各种问题。
  • 磁盘 (Disk):

    • 类型: PCIe Gen3 x4 NVMe SSD 或更高级别。
    • 容量:
      • 账户数据盘: 至少 500 GB。用于存储账户状态,需要极高的 IOPS(读写速度)。
      • 账本数据盘 (Ledger): 至少 1 TB。用于记录历史交易,可以接受稍低的 IOPS,但仍推荐使用 NVMe SSD。
    • 说明: 千万不要使用机械硬盘 (HDD) 或 SATA SSD! Solana 对磁盘 I/O 的要求极为苛刻,低速磁盘将是最大的瓶颈,会导致我们的节点无法追上网络进度。将账户和账本放在不同的磁盘上是官方推荐的最佳实践。
  • 网络 (Network):

    • 带宽: 1 Gbps 或更高,端口开放。
    • 说明: 稳定的高速网络是保证节点能及时接收和广播交易的基础。

实用建议:

对于初学者,直接购买物理服务器成本较高。可以考虑在 Hetzner、OVH 或 AWS、Google Cloud 等云服务商那里租用符合上述配置的裸金属服务器或虚拟机。特别是 Hetzner,因其出色的性价比在 Solana 验证者社区中广受欢迎。

第二步:环境准备——安装 Solana 工具套件

我们假设我们已经有了一台安装了 Ubuntu 20.04/22.04 的服务器。接下来,我们需要安装 Solana 的命令行工具(CLI)。

  1. 更新系统并安装依赖
    打开终端,运行以下命令:

    sudo apt-get update
    sudo apt-get install -y build-essential pkg-config libssl-dev
    
  2. 安装 Solana CLI
    官方提供了一个非常方便的安装脚本。运行它来安装最新稳定版的 Solana 工具:

    sh -c "$(curl -sSfL https://release.anza.xyz/stable/install)"
    

    注意:可以将 v2.0.3 替换为 Solana 官网上推荐的最新版本。

    安装完成后,根据提示将 Solana 的 bin 目录添加到系统的 PATH 环境变量中:

    export PATH="/root/.local/share/solana/install/active_release/bin:$PATH"
    source ~/.bashrc
    
  3. 验证安装
    运行以下命令,如果能看到版本号,说明安装成功:

    solana --version
    
第三步:创建身份并连接到测试网

每个验证者节点都需要一个唯一的身份。这个身份由一个密钥对(Keypair)代表。

  1. 配置 CLI 连接到测试网
    默认情况下,CLI 可能连接到主网或开发网。我们需要明确地将其指向测试网(Testnet):

    solana config set --url https://api.testnet.solana.com
    
  2. 创建验证者身份密钥
    为验证者节点创建一个新的身份文件。这个文件非常重要,一定要妥善保管和备份!

    solana-keygen new -o ~/validator-keypair.json
    ```这条命令会在用户主目录下创建一个名为 `validator-keypair.json` 的文件。
  3. 获取测试网 SOL
    在测试网上运行验证者需要消耗极少量的 SOL 来支付交易费(例如投票费)。我们可以免费获取一些测试币:

    solana airdrop 2 ~/validator-keypair.json --url https://api.testnet.solana.com
    

    我们可以运行 solana balance ~/validator-keypair.json 来检查余额。

第四步:启动验证者节点!

万事俱备,只欠东风!现在,我们可以启动节点了。这是一个基础的启动命令,可以根据服务器的实际情况进行调整。

solana-validator \--identity ~/validator-keypair.json \--entrypoint entrypoint.testnet.solana.com:8001 \--ledger /path/to/your/ledger \--accounts /path/to/your/accounts \--rpc-port 8899 \--dynamic-port-range 8000-8020 \--log - \--limit-ledger-size 50000000

命令参数解析:

  • --identity: 指定刚刚创建的身份密钥文件。
  • --entrypoint: 指定加入网络的入口点。这是测试网的官方入口之一。
  • --ledger: 指定存放账本数据的目录。请务必将其指向准备好的高速大容量 NVMe SSD
  • --accounts: (可选但推荐)指定存放账户状态的目录。为了最佳性能,请将其指向与账本不同的另一块高速 NVMe SSD
  • --rpc-port: 允许通过这个端口与节点进行 RPC 交互。
  • --dynamic-port-range: 指定节点用于与其他节点通信的端口范围。请确保防火墙允许这些端口的 UDP/TCP 流量。
  • --log -: 将日志输出到标准输出(终端),方便我们实时观察。
  • --limit-ledger-size: 限制账本大小,有助于管理磁盘空间。

启动!
执行上述命令后,节点将开始启动。我们会看到海量的日志信息在屏幕上滚动。这个过程被称为“追赶”(Catching up),节点正在从网络的其他地方下载账本数据。根据我们的硬件和网络情况,这个过程可能需要几个小时甚至更长时间。

第五步:如何验证节点是否正常工作?

当日志中不再疯狂滚动 [INFO] solana_core::replay_stage] ... 并且开始出现 [INFO] solana_core::optimistic_confirmation_verifier] ... 或类似的投票信息时,说明我们的节点很可能已经追上了网络进度。

可以打开一个新的终端窗口,使用以下命令来监控节点状态:

  • 查看节点同步状态:

    solana catchup ~/validator-keypair.json
    

    如果显示 Node has caught up to the cluster, 恭喜,成功了!

  • 查看日志:
    在节点运行时,日志是我们最好的朋友。仔细观察其中的 WARNERROR 信息,它们能帮助我们定位问题。

  • 使用 Solana Explorer:
    可以复制验证者密钥的公钥(solana-keygen pubkey ~/validator-keypair.json),然后到 Solana Explorer 网站上搜索它,查看节点是否在验证者列表中出现。

总结

在这里插入图片描述

至此!我们已经成功启动了一个 Solana 测试节点。虽然过程看起来有很多步骤,但只要有一台配置合适的服务器并遵循指引,整个过程还是相当顺利的。

运行自己的节点是进入 Web3 世界最硬核、也最直接的方式。它不仅为我们打开了一扇深入理解 Solana 内部机制的大门,也让我们成为了去中心化网络中实实在在的贡献者。

接下来,我们可以尝试使用这个节点的 RPC 端点来部署和测试我们的智能合约,或者进一步学习如何成为一个主网验证者,参与到网络的共识和安全维护中。探索的旅程,才刚刚开始!

http://www.xdnf.cn/news/1153225.html

相关文章:

  • 综合实验--eNSP实验
  • TypeScript 泛型详解:从基础到实战应用
  • Linux中添加重定向(Redirection)功能到minishell
  • python网络爬虫之selenium库(二)
  • 【Web APIs】JavaScript 自定义属性操作 ② ( H5 自定义属性 )
  • 图片放大镜案例
  • Patch-wise Structural:一种引入局部统计特性的时序预测损失函数
  • CS231n-2017 Lecture3线性分类器、最优化笔记
  • QT窗口(7)-QColorDiag
  • [spring6: AspectJAdvisorFactory AspectJProxyFactory]-源码解析
  • Linux C 信号操作
  • “外卖大战”正在改变国内“大零售”
  • 图解系统-小林coding笔记
  • 骑行邂逅LV巨轮,VELO维乐Angel Rise坐垫与时尚超适配
  • YOLOv11改进 | RFAConv重塑空间注意力助力性能提升
  • 开关电源和线性电源Multisim电路仿真实验汇总——硬件工程师笔记
  • 使用UV管理FastAPI项目
  • HOT100——动态规划篇Leetcode221. 最大正方形
  • 模型自信度提升:增强输出技巧
  • 纸板制造糊机操作
  • Datawhale AI数据分析 作业
  • 基于朴素贝叶斯的姓名性别预测系统
  • Ubuntu20.04 samba配置
  • 2023年CSP入门级第二轮第四题——旅游巴士
  • 马走日题解
  • Apache Kafka 学习笔记
  • 手撕Spring底层系列之:注解驱动的魔力与实现内幕
  • Node.js dns 模块深入解析
  • Vite的优缺点(精简版)
  • leetcode_53 最大子数组和