摘要
Kaia API 是 Kaia 区块链的 JSON-RPC 接口,Kaia 是一个兼容 EVM 的 Layer 1 网络。它允许你使用熟悉的以太坊风格方法读取链上数据、发送交易以及与智能合约交互。本指南介绍了 API 命名空间、如何通过公共或托管端点连接,以及如何为你的 dApp 选择合适的基础设施。
快速建议:哪种 Kaia API 访问模式适合你的项目?
在编写任何代码之前,决定你将如何访问 Kaia 网络。正确的选择取决于你的工作负载,而不是哪个提供商有最多的文档。
- 原型开发或黑客松:使用公共端点。它是免费的,适合低流量测试,但它是共享的,可能会受到速率限制或在负载下不稳定。
- 生产级 dApp 或后端服务:使用托管 RPC 提供商。你获得专用吞吐量、更高的可靠性,以及对 WebSocket 和归档数据的支持。OnFinality 提供托管 Kaia RPC 服务,包括公共和专用选项。
- 大量数据索引或分析:你可能需要归档节点访问和支持大型历史查询的提供商。检查提供商是否提供归档数据,以及RPC 定价上的价格如何。
如果你仍在评估提供商,下一节的表格给出了最关键的评估标准。
什么是 Kaia API?
Kaia 是一个公共的、兼容 EVM 的 Layer 1 区块链,由 Klaytn 和 Finschia 合并而成。它旨在提供高性能,具有一秒的出块时间、低交易费用和即时最终性,使其适用于大规模 Web3 和稳定币应用。
Kaia API 是让你与 Kaia 网络交互的 JSON-RPC 接口。如果你使用过以太坊的 JSON-RPC API,你会觉得这个接口很熟悉。你可以使用它读取区块链数据、发送交易和调用智能合约方法。
Kaia 暴露了多个 API 命名空间:
- 以太坊兼容命名空间:
eth_、net_、web3_– 标准方法,如eth_blockNumber、eth_getBalance、eth_call和eth_sendRawTransaction。 - Kaia 特定命名空间:
kaia_– 使用 Kaia 特定功能扩展以太坊 API 的方法,如kaia_getBlockByNumber和kaia_getTransactionReceipt。 - 遗留的
klay_命名空间:为与旧 Klaytn API 向后兼容而保留。它支持与kaia_相同的操作,但使用klay_前缀。 - 调试命名空间:
debug_– 用于深度区块链分析和交易检查的开发与调试工具。
有关支持的方法的完整列表,请参阅官方 Kaia 文档。
Kaia 链设置一览
当你配置钱包或 dApp 连接到 Kaia 时,你需要正确的链参数。以下是 Kaia 主网的基本设置:
| 参数 | 值 |
|---|---|
| 网络名称 | Kaia Mainnet |
| 链 ID | 8217 |
| 原生货币 | KAIA(符号:KAIA,小数位:18) |
| 区块浏览器 | Kaiascope |
| 公共 RPC 端点 | https://klaytn.api.onfinality.io/public |
这些设置也可以在 Kaia 网络页面 上找到。
如何连接到 Kaia API
你可以使用任何兼容以太坊的库连接到 Kaia API,例如 ethers.js、viem 或 web3.js。以下是一个使用 ethers.js 的简单示例:
import { JsonRpcProvider } from 'ethers';
const provider = new JsonRpcProvider('https://klaytn.api.onfinality.io/public');
async function getBlockNumber() {
const blockNumber = await provider.getBlockNumber();
console.log('Latest block:', blockNumber);
}
getBlockNumber();
你也可以使用 curl 发出原始 JSON-RPC 请求:
curl -X POST https://klaytn.api.onfinality.io/public \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
对于 WebSocket 支持,如果你的提供商提供 WebSocket 端点,你可以使用它。OnFinality 的托管 Kaia 端点支持 HTTP 和 WebSocket,这对于实时应用程序(如价格馈送或交易监控)非常有用。
Kaia API 方法:你可以做什么
Kaia 的 API 非常广泛。以下是你将使用的最常见的方法组:
- 链信息:
eth_chainId、eth_blockNumber、eth_gasPrice - 账户查询:
eth_getBalance、eth_getTransactionCount、eth_getCode - 智能合约交互:
eth_call、eth_sendRawTransaction、eth_getTransactionReceipt - 区块查询:
eth_getBlockByNumber、eth_getBlockByHash - Kaia 特定:
kaia_getBlockByNumber、kaia_getTransactionReceipt、kaia_call - 调试:
debug_traceTransaction、debug_traceBlockByNumber
有关完整参考,请参阅 Kaia JSON-RPC API 文档。
如何选择 Kaia RPC 提供商
当你超越公共端点时,你需要评估 RPC 提供商。以下是比较表,以指导你的决策:
| 标准 | 检查什么 | 为什么重要 |
|---|---|---|
| 吞吐量和速率限制 | 提供商是否提供专用吞吐量或共享限制? | 高流量 dApp 需要一致的性能,而不会突然受到速率限制。 |
| 可靠性和正常运行时间 | 提供商的历史正常运行时间是多少?他们是否有状态页面? | 停机直接影响你的用户,并可能导致交易失败。 |
| 归档数据 | 提供商是否支持归档请求? | 索引器和分析工具通常需要历史状态。 |
| WebSocket 支持 | 是否提供 WSS 用于实时订阅? | 对于需要实时更新的应用程序至关重要。 |
| 地理分布 | 提供商的节点位于何处? | 全球边缘网络减少全球用户的延迟。 |
| 定价模型 | 是按需付费、订阅还是基于使用量? | 可预测的成本帮助你扩展而不会出现意外。 |
| 支持和 SLA | 提供什么级别的支持? | 生产应用程序在出现问题时需要及时的支持。 |
OnFinality 是 Kaia RPC 的一个强大选择。我们提供托管 Kaia 端点,包括公共和专用节点,你可以查看我们的定价了解详情。我们的基础设施专为生产工作负载设计,具有全球边缘节点以及对 WebSocket 和归档数据的支持。
常见陷阱及如何避免
即使有好的提供商,你也可能遇到问题。以下是使用 Kaia API 时的一些常见陷阱:
- 使用错误的链 ID:确保对 Kaia 主网使用
8217,对 Kairos 测试网使用1001。使用错误的链 ID 会导致交易失败。 - 公共端点上的速率限制:公共端点是共享的,因此可能会受到速率限制。如果你看到
429错误,请考虑迁移到托管提供商。 - 不处理 WebSocket 重连:如果你使用 WebSocket,请实现重连逻辑以处理网络断开。
- 假设所有方法都可用:某些提供商可能不支持调试或归档方法。请检查提供商的文档。
- 忽略 gas 价格波动:Kaia 的费用较低,但 gas 价格仍可能变化。使用
eth_gasPrice或 gas 估算器以避免交易卡住。
调试 Kaia API 调用
当出现问题时,以下是一个快速调试路径:
- 检查端点:验证你使用的 URL 是否正确且可访问。
- 检查链 ID:确保你的请求包含正确的链 ID。
- 使用简单方法测试:从
eth_blockNumber开始以确认基本连接。 - 检查错误消息:JSON-RPC 错误包含代码和消息。常见代码是
-32601(方法未找到)和-32000(服务器错误)。 - 使用区块浏览器:如果交易失败,请在 Kaiascope 上查找以查看回滚原因。
如果你使用 OnFinality,你还可以查看我们的网络状态页面以了解任何正在发生的事件。
关键要点
- Kaia API 是 Kaia 区块链的以太坊兼容 JSON-RPC 接口。
- 为你的网络使用正确的链 ID(主网为
8217)和端点。 - 公共端点适合测试,但生产应用程序应使用像 OnFinality 这样的托管 RPC 提供商。
- 根据吞吐量、可靠性、归档数据、WebSocket 支持和定价来评估提供商。
- 系统地进行调试:在深入之前检查端点、链 ID 和方法可用性。
常见问题解答
什么是 Kaia API?
Kaia API 是 Kaia 区块链的 JSON-RPC 接口,允许开发者使用以太坊兼容的方法与网络交互。
Kaia 链 ID 是什么?
Kaia 主网链 ID 是 8217。Kairos 测试网使用 1001。
Kaia API 免费吗?
公共端点是免费的,但有速率限制。对于生产使用,你可能需要付费的托管 RPC 服务。
我可以使用 ethers.js 与 Kaia 吗?
可以,Kaia 兼容 EVM,因此你可以使用 ethers.js、viem、web3.js 和其他以太坊库。
OnFinality 支持 Kaia 吗?
是的,OnFinality 提供托管的 Kaia RPC 端点。你可以在 Kaia 网络页面 上找到更多详细信息。