摘要
SORA是一个基于Substrate的区块链货币系统,为数字货币提供去中心化框架。在SORA上构建的开发者需要可靠的RPC端点来读取链上数据、提交交易以及与Polkaswap DEX交互。本指南涵盖主网和Taira测试网的链设置、公共和专用RPC选项、水龙头详情以及常见调试技巧。
SORA网络决策检查表
在集成SORA网络RPC端点之前,请考虑以下五个因素:
| 标准 | 检查内容 | 重要性 |
|---|---|---|
| 网络版本 | 您的目标是SORA v2(Polkadot平行链)还是SORA v3(Nexus / Hyperledger Iroha 3)? | 不同版本的API和端点不同;v3是当前焦点。 |
| 吞吐量需求 | 预估每日请求量:低于100万次?使用公共端点。更高?考虑专用基础设施。 | 公共端点可能限流;专用节点提供一致的性能。 |
| 数据访问需求 | 您是否需要完整历史数据或归档数据? | 归档节点需要更多资源,最好由专用或归档层端点提供。 |
| WebSocket支持 | 您的dApp是否需要实时订阅(例如,用于Polkaswap订单簿)? | 确保提供商支持WSS并具有低延迟连接。 |
| 测试网可用性 | 您是否计划在主网部署之前在Taira测试网上测试? | 测试网端点有助于避免代价高昂的主网错误,并实现安全实验。 |
评估这些标准后,您可以为SORA应用选择正确的RPC设置。
了解SORA网络
SORA是一个去中心化、非债务基础的货币系统,旨在实现经济稳定和互操作性。它基于Substrate构建,最初作为Polkadot平行链(SORA v2)运行,现已演变为SORA Nexus(v3),一个由Hyperledger Iroha 3驱动的网络。原生代币是XOR,网络内置了一个名为Polkaswap的去中心化交易所。
开发者通过其RPC端点与SORA交互,这些端点支持标准的Substrate JSON-RPC方法以及针对DEX和质押模块的自定义调用。了解链配置是第一步。
SORA网络链设置
对于版本3(Nexus),链ID和端点已更改。以下是主网和测试网的基本参数:
| 参数 | SORA主网 | SORA Taira测试网 |
|---|---|---|
| 链ID | 0x521 | 0x521 |
| RPC端点 | https://rpc.sora.org 或 https://sora.rpc.onfinality.io | https://taira.rpc.onfinality.io |
| WebSocket端点 | wss://ws.sora.org 或 wss://sora.rpc.onfinality.io | wss://taira.rpc.onfinality.io |
| 浏览器 | sorametrics.org | taira.sorametrics.org |
| 原生代币 | XOR (SORA) | tXOR (测试网) |
| 小数位数 | 18 | 18 |
| 出块时间 | 约6秒 | 约6秒 |
注意:如果您使用SORA v2(Polkadot平行链),链ID和端点不同。请始终查看sora.org或您的RPC提供商的网络页面上的最新文档。
对于生产环境的应用,建议使用专用或私有RPC端点以避免速率限制并确保正常运行时间。OnFinality提供专用SORA节点及可自定义配置。
公共与专用RPC端点
公共端点
- 免费开放:任何人都可以使用公共端点,如
https://rpc.sora.org。 - 速率限制:公共节点通常施加请求限制(例如100 req/s),在高使用期间可能限流。
- 无SLA:不保证正常运行时间或性能。
- 归档数据有限:归档请求可能受限或不可用。
专用端点
- 私有且高性能:专用节点为您提供独占访问计算资源的权限。
- 更高限制:自定义速率限制,通常计划内无限制。
- SLA支持:像OnFinality这样的提供商提供正常运行时间保证(详情请查看定价)。
- 归档和追踪支持:提供完整历史数据和调试方法,用于生产环境调试。
- WebSocket稳定性:对实时dApp可靠。
对于高频交易机器人、Polkaswap订单监控或大规模分析,专用节点是合适的选择。
连接到SORA:代码示例
使用curl查询RPC
# Get the latest block number
curl -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"chain_getHeader","params":[],"id":1}' \
https://sora.rpc.onfinality.io
使用类似ether.js的库(适用于Substrate的PolkadotJS)
const { ApiPromise, WsProvider } = require('@polkadot/api');
async function connect() {
const wsProvider = new WsProvider('wss://sora.rpc.onfinality.io');
const api = await ApiPromise.create({ provider: wsProvider });
// Get chain info
const [chain, nodeName, nodeVersion] = await Promise.all([
api.rpc.system.chain(),
api.rpc.system.name(),
api.rpc.system.version()
]);
console.log(`Connected to ${chain} using ${nodeName} v${nodeVersion}`);
// Get account balance (example)
const alice = '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY';
const { data: balance } = await api.query.system.account(alice);
console.log(`Balance: ${balance.free}`);
}
connect().catch(console.error);
SORA测试网(Taira)水龙头
要获取用于开发的测试网代币(tXOR),请使用官方Taira水龙头:
- 水龙头URL:https://taira-faucet.sora.org(或查看SORA Discord)
- 要求:您需要一个Substrate兼容地址(以
5开头)。 - 速率:通常限制为每天一次请求。
如果水龙头不可用,您可以在SORA社区频道请求代币或使用合作伙伴水龙头。
常见RPC错误与调试
| 错误 | 原因 | 解决方案 |
|---|---|---|
-32000: Server error | 节点过载或无效请求 | 带退避重试;检查方法和参数。 |
-32602: Invalid params | 参数数量或格式错误 | 验证方法签名;确保十六进制值格式正确。 |
-32601: Method not found | 方法名称拼写错误或不支持的方法 | 仔细检查RPC方法(区分大小写)。 |
Rate limit exceeded | 对公共端点的请求过多 | 切换到专用节点或在调用之间添加延迟。 |
WebSocket disconnected | 连接不稳定或空闲超时 | 使用保持活动ping重新连接;使用具有稳定WSS的提供商。 |
常见问题
SORA是EVM兼容链吗?
不,SORA基于Substrate,使用Polkadot的JSON-RPC接口。它不是EVM兼容的。您需要使用Polkadot.js或Substrate特定的SDK。
SORA v2和v3有什么区别?
SORA v2作为Polkadot平行链运行。SORA v3(Nexus)是一个独立的Hyperledger Iroha 3网络。端点和API不同。请始终验证您的dApp目标版本。
我可以运行自己的SORA节点吗?
是的,SORA节点软件是开源的。但是,运行节点需要大量基础设施和维护。对于大多数项目,使用像OnFinality这样的托管RPC服务更高效。
如何检查我的RPC连接是否正常?
使用 system_health 方法。健康的节点返回 "isSyncing": false 且 "peers": >= 25。
生产环境有免费的RPC端点吗?
公共端点是免费的,但有速率限制。对于流量适中的生产应用,考虑提供商的免费层或按量付费计划以避免中断。