Logo
RPC Assistant

什么是 Stellar RPC 服务器,如何使用它?

摘要

Stellar RPC 服务器是一种轻量级服务,可提供对 Stellar 网络数据的实时访问,包括账本状态、账户余额和 Soroban 智能合约交互。它专为构建钱包、资产发行方或监控工具的开发者设计,这些工具需要直接访问网络,而无需运行 Stellar Core 或 Horizon。本文解释了什么是 Stellar RPC、它与 Horizon 的区别,以及如何连接到公共或专用端点以用于生产工作负载。

快速决策指南:自己运行还是使用提供商?

在深入研究端点和方法之前,请决定如何访问 Stellar RPC。这个选择会影响你的运营开销、数据保留和成本。

  • 自己运行 Stellar RPC 服务器,如果你需要完全控制基础设施、希望避免第三方依赖,或者需要自定义 RPC 配置。这需要运行 Stellar Core 并管理一个 captive core 实例,这并非易事。
  • 使用托管的 Stellar RPC 提供商,如果你希望专注于应用程序逻辑而不是节点操作。提供商负责正常运行时间、扩展和维护。OnFinality 提供公共 Stellar 主网端点和专用节点选项,你可以在 Stellar 网络页面 上探索。

对于生产级 Soroban 应用,专用节点或私有端点通常是合适的选择,因为公共端点通常有速率限制和共享性能问题。如果你只是原型开发,公共端点就足够了。

什么是 Stellar RPC 服务器?

Stellar RPC 服务器是一种轻量级服务,提供对 Stellar 网络数据的实时访问。它是开发者查询网络、提交交易以及与 Soroban 智能合约交互的推荐方式。该服务器公开了一个 JSON-RPC API,允许你读取账本状态、账户余额和交易状态。

Stellar RPC 不是索引器。它只保留有限、最近的历史窗口——默认大约 7 天。它也不是 Horizon 的直接替代品,Horizon 提供了 RPC 不具备的索引功能。将 RPC 用作你访问区块链的网关,但只摄取和索引你关心的数据。

Stellar RPC 与 Horizon:有什么区别?

Stellar RPC 和 Horizon 服务于不同的目的。Horizon 是一个 RESTful API,用于索引和提供历史数据,而 Stellar RPC 是一个 JSON-RPC API,提供实时状态和交易提交。如果你需要历史交易数据或想按账户查询,Horizon 更合适。如果你需要与 Soroban 合约交互或直接提交交易,Stellar RPC 是正确的工具。

特性Stellar RPCHorizon
API 风格JSON-RPCREST
数据保留最近窗口(约 7 天)完整历史
Soroban 合约支持有限
交易提交
最适合实时状态、智能合约历史查询、索引

如何连接到 Stellar RPC 服务器

你可以使用 cURL 或 Stellar SDK 连接到 Stellar RPC 服务器。端点是一个接受 JSON-RPC 请求的 URL。例如,OnFinality 公共 Stellar 主网端点是 https://stellar.api.onfinality.io/public。你可以在 Stellar 网络页面 上找到更多详细信息。

以下是一个基本的 cURL 示例,用于获取最新账本:

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

这将返回最新的账本序列和其他元数据。你可以使用类似的请求来查询账户余额、合约数据和交易状态。

你会常用的 Stellar RPC 方法

Stellar RPC 公开了一组 JSON-RPC 方法。以下是你最常用的方法:

  • getLatestLedger – 返回最新的账本序列和元数据。
  • getLedgerEntries – 检索账户、合约和其他数据的账本条目。
  • getTransaction – 获取已提交交易的状态和结果。
  • sendTransaction – 向网络提交交易。
  • simulateTransaction – 模拟交易以估算费用和结果。
  • getEvents – 查询合约事件。
  • getNetwork – 返回网络信息,如口令和协议版本。

有关完整列表,请参阅 Stellar RPC 文档

使用 Stellar RPC 设置钱包或 dApp

如果你正在构建钱包或 dApp,你需要将 SDK 配置为指向 Stellar RPC 端点。以下是使用 Stellar JavaScript SDK 的示例:

import { SorobanRpc } from '@stellar/stellar-sdk';

const server = new SorobanRpc.Server('https://stellar.api.onfinality.io/public');

const latestLedger = await server.getLatestLedger();
console.log(latestLedger.sequence);

确保你为你的网络(主网、测试网或未来网)使用正确的端点。OnFinality 提供公共主网端点,你可以在 支持的网络页面 上找到测试网选项。

排查 Stellar RPC 连接问题

如果你在连接到 Stellar RPC 服务器时遇到问题,请检查以下内容:

  • 网络不匹配:确保你为要使用的网络(主网与测试网)使用了正确的端点。
  • 速率限制:公共端点可能有速率限制。如果遇到限制,请考虑升级到专用节点或私有端点。
  • CORS 问题:如果你从浏览器调用,请确保提供商支持 CORS。OnFinality 的公共端点支持 CORS 用于开发。
  • 交易错误:如果 sendTransaction 失败,请检查交易信封并先模拟以捕获错误。

对于更高级的故障排除,请考虑使用专用节点以避免共享基础设施问题。

运行你自己的 Stellar RPC 服务器

如果你决定运行自己的 Stellar RPC 服务器,你需要设置 Stellar Core 和一个 captive core 实例。官方仓库 stellar/stellar-rpc 提供了管理指南。这种方法让你完全控制,但需要持续的维护和监控。

大多数团队发现使用托管提供商更具成本效益,尤其是对于生产工作负载。OnFinality 提供可按需配置的专用 Stellar 节点。请查看 专用节点页面 了解更多信息。

关键要点

  • Stellar RPC 是一个轻量级 JSON-RPC 服务器,用于实时网络数据和 Soroban 合约交互。
  • 它不是索引器;它只保留最近的历史窗口。
  • 根据你的运营能力和工作负载,选择自己运行服务器或使用托管提供商。
  • 使用公共端点进行开发,但考虑为生产环境使用专用节点。
  • 始终使用真实请求进行测试,并监控速率限制。

常见问题解答

Stellar RPC 和 Horizon 有什么区别?

Stellar RPC 是一个用于实时状态和 Soroban 合约的 JSON-RPC API,而 Horizon 是一个用于历史数据和索引的 REST API。它们服务于不同的目的,可以一起使用。

我可以使用 Stellar RPC 获取历史数据吗?

Stellar RPC 只保留有限、最近的历史窗口(约 7 天)。对于历史数据,请使用 Horizon 或支持 getLedgers 方法的存档提供商。

如何获得专用的 Stellar RPC 端点?

你可以从 OnFinality 等提供商处获得专用端点。访问 Stellar 网络页面 查看专用节点和私有端点的选项。

公共 Stellar RPC 端点的速率限制是多少?

速率限制因提供商而异。公共端点通常有公平使用政策。对于生产环境,请考虑使用专用节点以避免限流。

OnFinality 是否支持 Stellar 测试网?

OnFinality 目前提供公共 Stellar 主网端点。对于测试网,你可以使用其他提供商或自己运行。请查看 支持的网络页面 了解最新可用性。

有关定价和网络支持的更多详细信息,请参阅 RPC 定价支持的 RPC 网络

RPC 知识库

相关 RPC 内容

Network Rpc

什么是 Gnosis Chain RPC,如何选择合适的端点?

Gnosis Chain RPC 端点允许开发者通过 JSON-RPC 调用与 Gnosis Chain 网络交互。本文介绍了链设置、如何评估提供商以及在生产 dApp 中选择基础设施时应避免的常见陷阱。...

Rpc Provider Selection

Mantle RPC 提供商评估:生产部署的关键标准

为生产环境选择 Mantle RPC 提供商需要评估可靠性、延迟、存档数据支持和定价。本文介绍了开发人员应了解的基本标准和决策清单。...

Rpc Provider Selection

如何为生产环境选择最佳的 Arbitrum RPC 服务

为 Arbitrum 选择正确的 RPC 服务对于 DeFi 应用、交易机器人和分析平台至关重要。本文涵盖关键评估标准:存档节点访问、追踪/调试 API 支持、定价模型、延迟一致性和故障转移选项。了解在确定提供商之前需要检查的内容。...

Network Rpc

Astar RPC 端点:链设置、公共节点与生产注意事项

Astar 是一个 Polkadot 平行链,支持 EVM 和 Wasm 智能合约。本页面列出了公共和提供商托管的 Astar RPC 端点、链配置详情,以及为生产级 dApp 选择 RPC 提供商的指南。...

Testnet Rpc

如何连接BNB测试网:RPC端点、水龙头和开发者设置

# 如何连接BNB测试网:RPC端点、水龙头和开发者设置 BNB测试网是一个开发环境,它镜像了BNB智能链(BSC)主网,允许你在不消耗真实BNB的情况下部署和测试智能合约、dApp和基础设施。本指南涵盖了入门所需的一切:RPC端点、水龙头、钱包配置以及可靠测试网访问的最佳实践。 无论你是在构建De...

Testnet Rpc

开发者应如何评估用于测试网开发的Base Sepolia RPC提供商?

Base Sepolia是Base L2网络的官方测试网,允许开发者无风险地测试dApp和智能合约。选择合适的RPC提供商需要评估端点的可靠性、速率限制、WebSocket支持、存档数据访问以及成本。本文提供决策清单、链配置详情和评估标准,帮助您为工作流选择最佳测试网基础设施。...

永远不用担心基础设施

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

开始