Logo
新用户订阅 RPC,首月享 6.5 折优惠查看优惠
RPC Assistant

Solana 端点:如何为生产应用连接 Solana RPC

摘要

Solana 端点是您的 dApp 或后端用于向 Solana 网络发送 JSON-RPC 请求的 URL。选择合适的端点会影响延迟、可靠性以及您的应用在负载下的扩展能力。本指南解释了什么是 Solana 端点、如何配置端点,以及如何评估生产环境中的提供商。

快速推荐:您应该使用哪个 Solana 端点?

如果您正在 Solana 上构建生产级 dApp 或后端服务,您需要一个能够处理持续流量且不会出现意外限流的端点。公共端点适合原型开发,但它们通常会限制请求频率,并且可能无法可靠地支持 WebSocket 订阅。对于生产环境,请考虑使用像 OnFinality 这样的托管 RPC 提供商,它们提供专用节点和具有明确使用限制的共享端点。请查看 RPC 定价 和 支持的网络 页面,了解哪种方案适合您的工作负载。

什么是 Solana 端点?

Solana 端点是一个通过 HTTP 或 WebSocket 接受 JSON-RPC 请求的 URL。它是读取链上数据、提交交易以及订阅账户或程序更新的入口。Solana 的 JSON-RPC API 与以太坊的不同,因此您需要使用 getBalance、getRecentBlockhash 和 sendTransaction 等方法,而不是 eth_getBalance。

例如,OnFinality 为 Solana mainnet 提供的官方公共端点是 https://solana.api.onfinality.io/public,WebSocket 端点为 wss://solana.api.onfinality.io/public-ws。您可以在开发中使用这些端点,但对于生产环境,您应该评估专用或共享的私有端点。

Solana 端点配置:Mainnet 和 Devnet

当您连接 Solana 时,需要指定网络。mainnet 端点用于真实资产,而 devnet 用于测试。以下是一个快速参考:

网络RPC URL (OnFinality)WebSocket URL浏览器
Mainnethttps://solana.api.onfinality.io/publicwss://solana.api.onfinality.io/public-wsexplorer.solana.com
Devnet参见 Solana Devnet参见 Solana Devnetexplorer.solana.com

对于 devnet,您可以从水龙头获取 SOL 来测试交易。OnFinality 的 devnet 页面提供了端点和水龙头详细信息。

如何连接 Solana RPC:代码示例

以下是一个基本的 curl 请求,用于从 mainnet 端点获取当前 slot(最新区块高度):

curl https://solana.api.onfinality.io/public \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"getSlot"}'

要获取钱包地址的余额:

curl https://solana.api.onfinality.io/public \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"getBalance","params":["GgBq..."]}'

对于 JavaScript,您可以使用 @solana/web3.js 库:

import { Connection, PublicKey } from '@solana/web3.js';

const connection = new Connection('https://solana.api.onfinality.io/public', 'confirmed');
const address = new PublicKey('GgBq...');
const balance = await connection.getBalance(address);
console.log('Balance:', balance / 1e9, 'SOL');

对于 WebSocket 订阅,请使用 wss 端点:

const connection = new Connection('wss://solana.api.onfinality.io/public-ws', 'confirmed');
const subscriptionId = connection.onAccountChange(address, (accountInfo) => {
  console.log('Account changed:', accountInfo);
});

Solana 端点与 Solana RPC 提供商:有什么区别?

端点只是一个 URL。提供商是背后的基础设施——节点、负载均衡器、监控和支持。当您使用公共端点时,您依赖提供商的共享基础设施。对于生产环境,您需要考虑:

  • 速率限制:公共端点通常有严格的限制。请查看提供商的文档。
  • 可靠性:单个节点可能会宕机。拥有多个节点的提供商提供更好的正常运行时间。
  • WebSocket 支持:对于实时订阅至关重要。
  • 归档数据:对于历史查询(如使用特定 slot 的 getTransaction)是必需的。

OnFinality 提供共享和专用的 Solana 节点。专用节点为您提供隔离的资源并可预测的性能。请参阅 专用节点 了解详情。

如何为生产环境选择 Solana 端点提供商

在评估提供商时,请比较以下因素:

因素检查内容重要性
正常运行时间提供商的状态页面停机意味着您的应用失败
速率限制每秒请求数、每日配额避免负载下被限流
WebSocket订阅支持实时功能所需
归档数据历史访问分析或审计所需
支持SLA、响应时间对生产问题至关重要
定价透明、可预测避免意外账单

OnFinality 在 RPC 定价 页面上提供清晰的定价,并在 网络 页面上列出支持的网络。

常见的 Solana 端点错误及解决方法

以下是开发人员遇到的典型问题:

  • 429 Too Many Requests:您达到了速率限制。请使用私有端点或降低请求频率。
  • Connection refused:端点已关闭或 URL 错误。请检查网络并重试。
  • WebSocket connection failed:您的防火墙可能阻止了 wss。请确保您的环境允许 WebSocket 连接。
  • Slot skipped:节点落后。请使用基础设施更好的提供商。

Solana 端点安全与最佳实践

  • 切勿在客户端代码中暴露您的 API 密钥。请使用后端代理。
  • 使用 HTTPS/WSS 加密流量。
  • 设置请求超时,避免挂起。
  • 通过健康检查监控您的端点。

关键要点

  • Solana 端点是用于 JSON-RPC 请求的 URL。
  • 公共端点用于开发;生产环境需要可靠的提供商。
  • OnFinality 提供公共和专用的 Solana 端点。
  • 在正常运行时间、速率限制、WebSocket、归档数据和支持方面比较提供商。

常见问题解答

什么是官方 Solana 端点? Solana mainnet 的官方公共端点是 https://solana.api.onfinality.io/public。对于 devnet,请参阅 Solana Devnet 页面。

如何免费获取 Solana 端点? 您可以在开发中使用公共端点。对于生产环境,请考虑具有更好限制的付费计划。

HTTP 和 WebSocket 端点有什么区别? HTTP 用于一次性请求;WebSocket 用于实时订阅。

我可以使用 Solana 端点进行 NFT 铸造吗? 可以,您可以发送交易和查询元数据,但您需要一个可靠的端点来处理负载。

如何在共享和专用 Solana 节点之间选择? 共享节点对于低流量具有成本效益;专用节点为高吞吐量提供隔离资源。请参阅 专用节点。

RPC 知识库

相关 RPC 内容

区块链基础设施BNB Chain

运行 BNB Chain 节点需要哪些硬件和软件要求?

运行 BNB Smart Chain 节点需要满足 CPU、RAM、磁盘和网络带宽的特定硬件基线,并在全节点、归档节点和验证者节点配置之间做出选择。具体需求因你是同步全节点、提供历史数据还是验证区块而有显著差异。对于需要 BNB Chain RPC 访问但不想自行运营硬件的团队,OnFinality...

RPC 提供商选择Starknet

Starknet RPC:端点、提供商和最佳实践

Starknet 是基于以太坊的 ZK-rollup,使用 STARK 证明实现可扩展性。要与 Starknet 交互,您需要一个 RPC 端点。本指南涵盖公共和私有 Starknet RPC 端点、如何选择提供商以及针对开发者的常见故障排除技巧。...

网络 RPCAbstract

Abstract RPC Endpoint: What You Need to Connect to Abstract

Abstract is an Ethereum Layer 2 network built with zkSync technology. To connect your dApp or wallet to Abstract, you need an RPC endpoint address. Th...

网络 RPCUnichain

什么是 Unichain RPC 端点,如何使用它?

Unichain 是基于 OP Stack 构建的以太坊 L2,其 RPC API 遵循标准的以太坊 JSON-RPC。主网链 ID 为 130,网络使用 ETH 作为原生货币。您可以先使用公共端点(如 https://unichain.api.onfinality.io/public)进行测试,然...

网络 RPCEthereum

如何为金融科技应用获取以太坊 RPC 端点?

金融科技应用需要以太坊 RPC 端点来读取余额、广播转账和监控确认。您可以在开发阶段使用公共端点,但生产支付流程需要具有可预测吞吐量、归档访问和故障转移的托管或专用端点。本文介绍了端点选项、链设置、可用的 JSON-RPC 检查以及需要监控的操作信号。...

网络 RPCBNB Chain

什么是币安信标链浏览器,如何查询它?

币安信标链是BNB Chain生态系统的质押和治理层,在2024年opBNB时代的整合中与BNB智能链合并之前,它与BNB智能链并行运行。其浏览器允许您检查验证者、委托和跨链活动。如今,大多数开发者通过BNB智能链RPC端点与BNB Chain生态系统交互。 本页解释了信标链浏览器展示了什么,为什么...

永远不用担心基础设施

OnFinality 消除了 DevOps 的繁重工作,让您能够更聪明、更快地构建。

开始