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

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

摘要

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

Starknet RPC 决策检查清单

在集成 Starknet RPC 提供商之前,请考虑以下标准:

标准检查内容重要性
网络支持主网、Sepolia 测试网确保提供商支持您开发和生产所需的网络。
速率限制每秒请求数 (RPS) 和每日上限高流量 dApp 需要更高的限制以避免限流。
可靠性运行时间历史、冗余停机可能中断您的应用;选择具有可靠性的提供商。
延迟节点的地理分布较低的延迟可改善用户体验,尤其对于时间敏感的操作。
归档数据访问历史状态用于分析、浏览器和某些 dApp 功能。
定价模式免费层、按需付费或专用节点根据您的使用模式和预算匹配定价。
API 兼容性支持的 JSON-RPC 方法验证提供商是否支持您的应用所需的方法。
安全性HTTPS、WebSocket 支持、隐私功能保护传输中的数据,并在需要时考虑注重隐私的中继。

什么是 Starknet RPC?

Starknet RPC(远程过程调用)是与 Starknet 网络通信的标准接口。它允许钱包、dApp 和后端服务提交交易、查询账户余额、读取合约状态以及与智能合约交互。RPC 协议遵循 JSON-RPC 2.0 规范,并具有 Starknet API 规范中定义的 Starknet 特定方法。

Starknet 使用独特的账户抽象模型,其中每个账户都是一个智能合约。这意味着 RPC 交互通常涉及通过 starknet_callstarknet_sendTransaction 方法部署和调用合约。

Starknet RPC 端点

Starknet 提供公共和私有 RPC 端点。公共端点是免费的,但通常有速率限制,可能不适合生产环境。私有端点提供更高的限制、专用资源和更好的可靠性。

公共端点

  • https://public.1rpc.io/starknet (1RPC)
  • https://starknet-rpc.publicnode.com (Allnodes)
  • https://starknet.drpc.org (dRPC)
  • https://rpc.starknet.lava.build (Lava)
  • https://starknet.api.onfinality.io/public (OnFinality)

私有端点(需要 API 密钥)

  • https://starknet-mainnet.g.alchemy.com/v2/<api-key> (Alchemy)
  • https://starknet-mainnet.infura.io/v3/<api-key> (Infura)
  • https://starknet.api.onfinality.io/v1/<api-key> (OnFinality)

测试网 (Sepolia)

  • https://starknet-sepolia-rpc.publicnode.com (Allnodes)
  • https://rpc.starknet-testnet.lava.build (Lava)
  • https://starknet-sepolia.api.onfinality.io/public (OnFinality)

如何使用 Starknet RPC

要连接到 Starknet,您需要一个 RPC URL 和一个 JSON-RPC 客户端。以下是使用 curl 查询最新区块编号的示例。

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

对于 JavaScript(使用 ethers 或 starknet.js):

import { Provider } from 'starknet';

const provider = new Provider({
  rpc: { nodeUrl: 'https://starknet.api.onfinality.io/public' }
});

const blockNumber = await provider.getBlockNumber();
console.log(blockNumber);

选择 Starknet RPC 提供商

选择提供商时,请考虑以下因素:

  • 网络支持:确保提供商支持 Starknet 主网和测试网 (Sepolia)。
  • 速率限制:免费层通常允许每秒 10-100 个请求。对于高流量 dApp,请寻找付费计划或专用节点。
  • 可靠性:检查运行时间历史以及提供商是否跨多个数据中心提供冗余。
  • 延迟:具有全球节点分布的提供商可以提供更低的延迟。
  • 归档数据:一些提供商提供对历史状态的访问,这对于分析和浏览器至关重要。
  • 定价:比较免费层、按需付费和专用节点定价。OnFinality 为 Starknet RPC 提供透明的定价。

有关 RPC 提供商的详细比较,请参阅我们的 选择 RPC 提供商指南

常见陷阱和故障排除

1. 速率限制

公共端点通常有严格的速率限制。如果您收到 HTTP 429 错误,请考虑升级到私有端点或使用专用节点。

2. 错误的网络 ID

Starknet 主网链 ID 是 0x534e5f4d41494e (SN_MAIN)。Sepolia 测试网链 ID 是 0x534e5f5345504f4c4941 (SN_SEPOLIA)。请仔细检查您的配置。

3. 不支持的方法

并非所有提供商都支持每个 JSON-RPC 方法。例如,starknet_getStateUpdate 在某些公共端点上可能不可用。请查看提供商的文档。

4. WebSocket 连接

对于实时更新,请使用 WebSocket 端点。示例:

wss://starknet.api.onfinality.io/public/ws

5. 交易失败

Starknet 交易可能因费用不足、nonce 无效或合约错误而失败。使用 starknet_getTransactionReceipt 进行调试。

Starknet RPC 与其他网络的比较

Starknet 的 RPC 在以下几个方面与以太坊不同:

  • 账户抽象:每个账户都是一个合约;交易通过 starknet_addInvokeTransaction 调用。
  • 费用模型:Starknet 使用单独的费用代币 (STRK) 和独特的费用计算方式。
  • 出块时间:每 20-60 秒产生一个区块,比以太坊更快。

关键要点

  • Starknet RPC 对于与 Starknet 网络交互至关重要。
  • 根据网络支持、速率限制、可靠性和定价选择提供商。
  • 公共端点适用于开发;私有端点推荐用于生产环境。
  • 在部署到主网之前,始终在测试网上进行测试。
  • OnFinality 提供可扩展的 Starknet RPC 端点,定价透明。查看我们的 支持的网络定价 了解更多详情。

常见问题

Starknet RPC URL 是什么?

公共 Starknet 主网 RPC URL 包括 https://starknet.api.onfinality.io/publichttps://public.1rpc.io/starknethttps://starknet.drpc.org。私有端点需要 API 密钥。

如何获取 Starknet RPC 端点?

您可以免费使用公共端点,或注册 OnFinality 等提供商以获取具有更高速率限制和专用支持的私有端点。

Starknet RPC 与 MetaMask 兼容吗?

不兼容。MetaMask 仅支持 EVM 兼容链。Starknet 使用不同的虚拟机 (Cairo VM),因此您需要 Starknet 兼容的钱包,如 Argent X 或 Braavos。

Starknet 主网和 Sepolia 测试网有什么区别?

主网是生产网络,使用真实资产。Sepolia 是用于开发和测试的测试网。两者有独立的 RPC 端点。

如何在公共和私有 RPC 之间选择?

对于原型设计和低流量应用,使用公共端点。对于高流量的生产 dApp,选择私有端点或专用节点以确保可靠性和性能。

RPC 知识库

相关 RPC 内容

RPC 提供商选择Solana

在Solana质押集成中应关注哪些API

在Solana上集成质押需要使用能暴露账户数据、投票账户以及委托和提取等质押操作的API。合适的提供商应提供对 `getStakeActivation`、`getVoteAccounts` 和交易提交端点的可靠访问。本文涵盖了关键RPC方法以及选择质押dApp的API提供商时需要考虑的因素。...

网络 RPCSolana

什么是 Solana 浏览器 API,如何使用它?

Solana 浏览器 API 允许你以编程方式查询链上数据,如交易、账户和区块,为自定义浏览器和分析仪表板提供支持。本文解释了核心 RPC 方法、如何选择公共端点与托管端点,以及如何构建简单的浏览器查询工作流。...

网络 RPCAstar

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

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

网络 RPCTON

TON JSON-RPC:端点、方法及使用方法

TON JSON-RPC 是通往开放网络(The Open Network)的 JSON-RPC 2.0 接口,让您可以通过单个 HTTPS 端点查询账户状态、运行智能合约 get 方法以及发送交易。本文解释了端点结构、常用方法、身份验证,以及如何在公共、托管和专用 TON RPC 基础设施之间进行...

RPC 故障排查

区块链交易中的nonce是什么?

区块链nonce是一个用于排序交易、防止重放攻击以及在某些区块生产系统中证明工作量的数字。在以太坊等基于账户的链上,每次账户发送交易时交易nonce都会递增,这使得网络能够按预期顺序处理交易。 如果应用通过RPC端点发送大量交易,nonce处理就成为生产可靠性的组成部分。OnFinality帮助团队...

RPC 提供商选择

What are the key differences between dedicated and shared node access for blockchain applications?

Dedicated node access gives you exclusive use of a blockchain node, while shared node access means multiple users connect to the same endpoint. The ch...

永远不用担心基础设施

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

开始