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

Kusama API:端点、方法和如何连接

摘要

Kusama API 提供对 Kusama 金丝雀网络的 JSON-RPC 和 WebSocket 访问。本页涵盖可用的端点、常用方法、连接示例,以及如何为您的项目选择公共、共享或专用节点基础设施。

Kusama API 决策清单

在集成 Kusama API 之前,请考虑以下因素:

标准检查内容重要性
端点类型公共、共享(API 密钥)或专用节点公共端点有速率限制;专用节点提供完全控制
归档数据您的应用是否需要历史状态?归档节点提供完整的状态历史;全节点仅提供近期数据
WebSocket 支持是否需要实时订阅?WebSocket 支持钱包和浏览器的事件驱动更新
地理延迟您的用户在哪里?选择在靠近用户群的区域有节点的提供商
速率限制每秒/每月请求数确保限制与您的流量模式匹配
可靠性正常运行时间和故障转移历史生产应用需要冗余端点
成本模型按需付费 vs. 固定月费根据预期使用量匹配定价

什么是 Kusama API?

Kusama API 指的是允许开发者与 Kusama 区块链交互的 JSON-RPC 和 WebSocket 接口。Kusama 是 Polkadot 的金丝雀网络——一个基于 Substrate 构建的多链环境,作为运行时升级和平行链部署在 Polkadot 上线前的试验场。

通过 Kusama API,您可以查询链上数据(区块、交易、账户、事件)、提交外部函数(交易)以及订阅实时更新。该 API 遵循 Substrate JSON-RPC 规范,并包含特定 pallet 的额外方法。

Kusama API 端点

公共端点(有速率限制)

用于测试和低流量使用,提供公共端点:

HTTPS: https://kusama.api.onfinality.io/public
WSS:    wss://kusama.api.onfinality.io/public-ws

此端点有速率限制,不应用于生产应用。

共享 API 密钥端点

注册获取 API 密钥后,您可以使用具有更高速率限制和归档数据访问权限的专用端点:

HTTPS: https://kusama.api.onfinality.io/rpc?apikey=YOUR_API_KEY
WSS:    wss://kusama.api.onfinality.io/ws?apikey=YOUR_API_KEY

专用节点

为获得最佳性能和控制,部署专用 Kusama 节点。您可以选择全节点、归档节点和验证人节点类型,并可选择地理位置。

常用 Kusama API 方法

以下是 Kusama 上一些常用的 JSON-RPC 方法:

链方法

  • chain_getBlock — 获取最新区块或按哈希获取区块
  • chain_getBlockHash — 按区块号获取区块哈希
  • chain_getHeader — 获取区块头
  • chain_subscribeNewHeads — 订阅新区块头

状态方法

  • state_getStorage — 按键查询存储
  • state_getMetadata — 获取运行时元数据
  • state_getRuntimeVersion — 获取当前运行时版本

系统方法

  • system_chain — 获取链名称
  • system_health — 获取节点健康状态
  • system_peers — 列出已连接的对等节点

作者方法

  • author_submitExtrinsic — 提交已签名的外部函数
  • author_pendingExtrinsics — 列出待处理的外部函数

连接到 Kusama API

使用 cURL

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

使用 JavaScript (Polkadot.js)

const { ApiPromise, WsProvider } = require('@polkadot/api');

async function main() {
  const provider = new WsProvider('wss://kusama.api.onfinality.io/public-ws');
  const api = await ApiPromise.create({ provider });

  // 获取链信息
  const chain = await api.rpc.system.chain();
  const lastHeader = await api.rpc.chain.getHeader();

  console.log(`Chain: ${chain}`);
  console.log(`Latest block: ${lastHeader.number}`);

  // 订阅新区块
  api.rpc.chain.subscribeNewHeads((header) => {
    console.log(`New block #${header.number}`);
  });
}

main().catch(console.error);

使用 Python

import requests
import json

url = "https://kusama.api.onfinality.io/public"
payload = {
    "jsonrpc": "2.0",
    "method": "chain_getBlock",
    "params": [],
    "id": 1
}
response = requests.post(url, json=payload)
print(response.json())

Kusama API 与 Subscan API 对比

虽然 Kusama JSON-RPC API 提供直接的区块链访问,但 Subscan API 提供 RESTful 接口,包含账户历史、代币转账和价格信息等聚合数据。Subscan API 适用于分析和前端应用,但不允许提交交易或订阅实时事件。如需完全控制和实时交互,请使用原生 JSON-RPC API。

基础设施考虑因素

公共端点 vs. 私有端点

公共端点便于开发,但由于速率限制和潜在的不稳定性,不适合生产环境。对于生产应用,请考虑:

  • 共享 API 服务:提供更高的速率限制、归档数据和多个地理区域。适用于大多数 dApp 和钱包。
  • 专用节点:专用于您的应用的全节点或归档节点。提供最佳性能、明确的速率限制和对节点配置的完全控制。

归档节点 vs. 全节点

  • 全节点:仅存储近期状态(通常 256 个区块)。适用于提交交易和查询当前状态。
  • 归档节点:存储所有历史状态。对于需要查询过去账户余额、历史事件或运行分析的应用是必需的。

地理位置

选择在靠近用户区域有节点的提供商,以最小化延迟。OnFinality 在多个区域提供 Kusama 端点,包括香港和弗吉尼亚北部。

常见问题排查

连接超时

  • 检查您的防火墙是否允许出站连接到端口 443 (HTTPS) 和 443 (WSS)。
  • 如果使用公共端点,请确保您没有被速率限制。切换到 API 密钥端点。

“方法未找到”错误

  • 验证方法名称是否与 Substrate JSON-RPC 规范匹配。某些方法可能仅在特定节点类型上可用。
  • 确保您使用了正确的端点(例如,对于使用历史键的 state_getStorage,使用归档节点)。

响应缓慢

  • 在网络活动高峰期,公共端点可能会遇到拥塞。
  • 考虑升级到专用节点或具有保证资源的共享 API 服务。

关键要点

  • Kusama API 提供对 Kusama 区块链的 JSON-RPC 和 WebSocket 访问,支持查询、交易提交和实时订阅。
  • 公共端点适用于测试;生产应用应使用基于 API 密钥或专用节点的基础设施。
  • 归档节点对于历史数据查询是必需的。
  • 为生产工作负载选择具有地理多样性和可靠正常运行时间的提供商。
  • 有关详细的端点信息和定价,请访问 Kusama 网络页面RPC 定价页面

常见问题

Kusama 和 Polkadot API 有什么区别? 两者都使用相同的 Substrate JSON-RPC 规范。主要区别在于网络——Kusama 是一个金丝雀网络,具有更快的治理和较低的价值风险,而 Polkadot 是主网,具有更高的安全性和稳定性。

我可以使用 Kusama API 与平行链交互吗? 可以,但您需要连接到特定平行链的 RPC 端点。Kusama 中继链 API 不直接暴露平行链状态。

如何获取 Kusama 的 API 密钥?OnFinality 注册,并从仪表板创建 API 密钥。然后您可以将其用于共享端点。

公共端点的速率限制是多少? 公共端点有速率限制以防止滥用。确切的限制未公布;对于生产使用,请获取 API 密钥或专用节点。

Kusama API 是否支持 WebSocket 订阅? 是的,WebSocket 端点支持订阅,例如 chain_subscribeNewHeadsstate_subscribeStorage

有关支持的网络及其端点的完整列表,请参阅 支持的网络页面

RPC 知识库

相关 RPC 内容

网络 RPCEth Sepolia

What is an Ethereum RPC endpoint and how do you choose the right one?

An Ethereum RPC endpoint is the URL your dapp, wallet, or backend uses to talk to an Ethereum node via JSON-RPC. Public endpoints are free but rate-li...

测试网 RPCBNB Chain

什么是BNB智能链测试网,如何连接?

# 什么是BNB智能链测试网,如何连接? BNB智能链测试网是一个开发环境,它镜像了BNB智能链主网,允许开发者部署和测试智能合约、dApp和交易,而无需使用真实的BNB。它采用相同的权益证明权威(PoSA)共识机制,并且完全兼容EVM,使得移植基于以太坊的项目变得容易。测试网拥有自己的原生代币tB...

网络 RPCPolygon

Polygon区块链API:方法、SDK和最佳实践

Polygon区块链API包括用于直接节点交互的JSON-RPC端点、用于支付的REST API(如Open Money Stack)以及客户端SDK(如Matic.js和ethers.js)。选择合适的API取决于你的用例——是需要底层链访问、稳定币支付还是智能合约交互。本文涵盖了可用的API类型...

网络 RPCPichiu

How to Connect to Pichiu Network RPC for Oracle Data

Pichiu Network provides decentralized oracle services on Kusama. This article explains how developers can integrate with Pichiu using RPC endpoints, c...

区块链基础设施

什么是节点即服务(Node-as-a-Service),何时应该使用它?

节点即服务(NaaS)让开发者无需运行自己的基础设施即可访问区块链节点。无需同步、维护和扩展节点,而是使用第三方提供的托管RPC端点。当你希望专注于构建dApp而非管理服务器时,这非常有用。然而,它引入了信任和中心化的权衡。本文解释了NaaS的工作原理、优缺点,以及如何判断它是否适合你的项目。...

RPC 提供商选择Arbitrum

什么是Arbitrum RPC节点,如何选择合适的节点?

Arbitrum RPC节点是一个端点,让你的dApp能够读取和写入Arbitrum One、Nova或Sepolia测试网的数据。选择合适的节点提供商需要评估吞吐量限制、归档数据支持、WebSocket可用性以及故障转移模式。本文涵盖了链设置、公共与私有端点,以及一个决策清单,帮助你选择符合生产需...

永远不用担心基础设施

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

开始