摘要
Composable Finance 是一个跨链 DeFi 基础设施项目,可在以太坊、Polkadot、Kusama、Cosmos 和 NEAR 等生态系统中实现无需信任的互操作性。本指南涵盖 Composable RPC 端点、如何连接到网络,以及何时从公共端点迁移到专用节点以用于生产工作负载。
快速建议:公共端点还是专用节点?
在深入技术细节之前,请决定哪种 Composable RPC 设置适合您的阶段:
- 原型开发或轻量测试:使用公共 Composable Finance RPC 端点。它适用于轻量级检查、原型和快速集成测试。
- 生产 dApp 或后端:当您需要更清晰的限制、分析和操作可见性时,请迁移到经过身份验证的端点或专用节点。
- 高吞吐量或自定义需求:专用 Composable Finance 节点为您提供隔离的资源、自定义配置和可预测的容量。
如果您不确定,请从公共端点开始,衡量您的流量,然后随着使用量的增长扩展到经过身份验证或专用的基础设施。OnFinality 提供这两种路径,因此您可以在不更改应用程序代码的情况下进行迁移。
什么是 Composable Finance?
Composable Finance 是一个跨链 DeFi 基础设施项目,专注于提高区块链行业的可访问性、效率和安全性。其技术栈可在以太坊、Polkadot、Kusama、Cosmos 和 NEAR 等生态系统中实现无需信任的互操作性,并由 IBC(区块链间通信)的首次跨生态系统实现提供支持。
对于开发人员来说,这意味着 Composable 不仅仅是一条链,而是一个连接链的网络。当您与 Composable 交互时,您通常是在查询其中继链或其连接的一个平行链。您使用的 RPC 端点必须反映您所针对的具体链。
Composable RPC 端点
OnFinality 为 Composable Finance 提供公共 RPC 端点,您可以使用这些端点连接钱包、dApp、仪表板、机器人和后端服务,而无需从第一天开始运营自己的节点。
公共端点测试
从公共 Composable Finance RPC 端点开始,用于轻量级检查、原型和快速集成测试。公共端点有速率限制且是共享的,因此不适合生产工作负载。
经过身份验证的 API 访问
当您需要更清晰的限制、分析和操作可见性时,请将生产流量迁移到经过身份验证的端点。经过身份验证的端点可通过 OnFinality 的 API 服务 获得,并为生产应用提供更稳定的基础。
标准 RPC 方法
Composable Finance 支持标准的 JSON-RPC 方法,用于查询区块、交易、余额、事件和链状态。您可以根据需要使用 HTTP 和 WebSocket 传输。
连接到 Composable RPC
以下是一个使用 curl 向 Composable RPC 端点发出 JSON-RPC 调用的基本示例:
curl -H "Content-Type: application/json" \
-d '{"id":1, "jsonrpc":"2.0", "method":"system_health", "params":[]}' \
https://composable.api.onfinality.io/public
如果实际公共端点不同,请将 URL 替换为 Composable 网络页面 上的实际公共端点。对于生产环境,请使用您的经过身份验证的端点 URL。
对于 WebSocket 订阅,您可以使用 wscat 或 ethers.js 等库来监听新区块或事件。
何时使用专用 Composable 节点
生产团队需要的不仅仅是端点 URL。他们需要可观测性、可预测的容量,以及从共享 RPC 访问到隔离基础设施的路径。
请求可见性
跟踪使用模式和响应活动,以便您的团队在流量增长成为事件之前了解流量增长。OnFinality 为经过身份验证的端点提供分析,而专用节点为您提供对请求的完全可见性。
专用节点路径
当您的工作负载需要隔离的资源、自定义配置和操作控制时,请使用专用 Composable Finance 节点。专用节点非常适合高吞吐量应用、索引器以及需要一致性能的服务。
归档和历史数据
如果您的应用程序需要历史状态,请考虑使用归档节点。归档节点存储链的完整历史记录,从而支持诸如 eth_getLogs 之类的长范围查询。OnFinality 为许多网络(包括 Composable)提供归档支持。
Composable RPC 与其他网络的比较
Composable Finance 的独特之处在于它桥接了多个生态系统。当您使用 Composable 时,您可能需要与使用不同 RPC 标准的不同链进行交互。例如,基于以太坊的链使用 eth_* 方法,而基于 Substrate 的链使用 system_* 和 state_* 方法。
以下是 Composable 所触及的生态系统中典型 RPC 方法的快速比较:
| 生态系统 | 常见 RPC 方法 | 传输 |
|---|---|---|
| Ethereum | eth_blockNumber, eth_getBalance, eth_call | HTTP, WebSocket |
| Polkadot | chain_getBlock, system_health, state_getStorage | HTTP, WebSocket |
| Cosmos | cosmos_tx, abci_query | HTTP, gRPC |
| NEAR | near_block, query | HTTP |
与 Composable 集成时,请确保您的客户端库与您正在查询的链匹配。
集成示例
使用 ethers.js 与 Composable(兼容以太坊)
如果您要与 Composable 生态系统中兼容以太坊的链进行交互,可以使用 ethers.js:
const { ethers } = require("ethers");
const provider = new ethers.JsonRpcProvider("https://composable.api.onfinality.io/public");
async function getBlockNumber() {
const blockNumber = await provider.getBlockNumber();
console.log("Current block number:", blockNumber);
}
getBlockNumber();
使用 Polkadot.js 与 Composable(基于 Substrate)
对于基于 Substrate 的链,请使用 @polkadot/api:
const { ApiPromise, WsProvider } = require("@polkadot/api");
const wsProvider = new WsProvider("wss://composable.api.onfinality.io/public-ws");
async function main() {
const api = await ApiPromise.create({ provider: wsProvider });
const health = await api.rpc.system.health();
console.log("Health:", health.toHuman());
await api.disconnect();
}
main();
注意:WebSocket URL 是一个示例;请使用 Composable 网络页面 上的实际端点。
常见陷阱和故障排除
1. 错误的链的 RPC 方法
在 Substrate 链上使用 eth_* 方法将会失败。始终检查链类型并使用适当的 JSON-RPC 命名空间。
2. 公共端点上的速率限制
公共端点是共享的并且有速率限制。如果您看到 429 Too Many Requests,请切换到经过身份验证的端点或专用节点。
3. WebSocket 连接断开
WebSocket 连接可能因网络问题或服务器重启而断开。在您的客户端中实现重连逻辑。
4. 历史数据缺口
如果您需要历史数据,请确保您使用的是归档节点。常规节点可能没有完整的历史记录。
选择正确的 Composable RPC 设置
以下是一个决策矩阵,可帮助您选择:
| 工作负载 | 推荐设置 | 原因 |
|---|---|---|
| 原型 / 黑客松 | 公共端点 | 免费,快速开始 |
| 生产 dApp | 经过身份验证的端点 | 更好的限制、分析 |
| 高吞吐量 / 索引 | 专用节点 | 隔离的资源、自定义配置 |
| 历史查询 | 归档节点 | 完整的链历史 |
OnFinality 提供所有这些选项,因此您可以从小规模开始并根据需要进行扩展。有关定价详情,请参阅 RPC 定价。
关键要点
- Composable Finance 是一个跨链 DeFi 项目,其 RPC 端点因底层链而异。
- 从公共端点开始进行测试,但在生产环境中迁移到经过身份验证的或专用节点。
- 为您正在查询的链使用正确的 JSON-RPC 方法(以太坊与 Substrate)。
- 专用节点为要求苛刻的工作负载提供隔离、可观测性和自定义配置。
- OnFinality 通过公共、经过身份验证和专用节点选项支持 Composable Finance。
常见问题解答
什么是 Composable RPC?
Composable RPC 是指用于与 Composable Finance 网络交互的远程过程调用端点。这些端点允许开发人员查询链数据、提交交易和订阅事件。
如何获取 Composable RPC 端点?
您可以使用 OnFinality Composable 网络页面 上的公共端点进行测试,或注册 API 密钥以获取经过身份验证的端点。
公共 Composable RPC 端点免费吗?
是的,公共端点可免费用于测试和轻度使用。对于生产环境,请考虑经过身份验证的端点或专用节点。
公共节点和专用节点有什么区别?
公共节点是共享的并且有速率限制,而专用节点提供隔离的资源、自定义配置和更好的性能,适用于生产工作负载。
OnFinality 是否支持 Composable 的归档节点?
OnFinality 为许多网络提供归档节点支持。请查看 支持的网络 页面以获取最新可用性。
如何在 HTTP 和 WebSocket 之间选择?
对于简单查询使用 HTTP,对于实时订阅(例如新区块通知或事件监听)使用 WebSocket。
我可以将 Composable RPC 用于基于以太坊的链吗?
可以,如果链兼容以太坊,您可以使用标准的 eth_* 方法。对于基于 Substrate 的链,请使用适当的 Substrate 方法。
如果遇到速率限制,我该怎么办?
如果您在公共端点上遇到速率限制,请升级到经过身份验证的端点或专用节点,以获得更高的限制和更好的性能。
有关选择 RPC 提供商的更多指导,请参阅我们的 如何选择 RPC 提供商 指南。