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

Sonic RPC 节点:如何连接 Sonic 主网

摘要

Sonic 是一个兼容 EVM 的第 1 层区块链,专为高吞吐量的 DeFi 应用而设计。要与 Sonic 交互,开发者需要一个可靠的 RPC 节点来处理 JSON-RPC 请求、WebSocket 订阅和归档数据查询。

本页介绍如何配置您的钱包或 dApp 以使用 Sonic RPC 端点,RPC 提供商应具备哪些条件,以及如何排查常见连接问题。无论您是在 Sonic 上构建,还是只需要一个可靠的端点,我们都会介绍要点。

快速开始:Sonic RPC 端点

如果您只需要一个 Sonic RPC 端点来开始构建,以下是 OnFinality 提供的公共端点:

https://sonic.api.onfinality.io/public

您可以使用此端点发送 JSON-RPC 请求,但对于生产环境的应用,您需要更可靠且可扩展的解决方案。OnFinality 提供专用 Sonic 节点和托管 RPC 服务,具有更高的速率限制、归档数据和 WebSocket 支持。

链参数一览

在连接 Sonic 之前,您需要正确的网络参数。以下是摘要:

参数值
网络名称Sonic 主网
链 ID146
原生货币S (Sonic)
区块浏览器https://sonicscan.org
公共 RPC URLhttps://sonic.api.onfinality.io/public

这些设置对于配置钱包、dApp 和开发工具至关重要。

如何将 Sonic 添加到您的钱包

要与基于 Sonic 的 dApp 交互,您需要将网络添加到您的钱包(例如 MetaMask)。以下是分步指南:

  1. 打开您的钱包并导航到网络设置。
  2. 点击“添加网络”或“自定义 RPC”。
  3. 输入以下详细信息:
    • 网络名称:Sonic 主网
    • 新的 RPC URL:https://sonic.api.onfinality.io/public
    • 链 ID:146
    • 货币符号:S
    • 区块浏览器 URL:https://sonicscan.org
  4. 保存网络并切换到该网络。

添加后,您可以查看您的 Sonic 余额并与 Sonic dApp 交互。

发起您的第一个 JSON-RPC 调用

要验证您的连接,您可以使用 curl 发起一个简单的 JSON-RPC 调用。例如,获取当前区块号:

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

您应该会收到类似以下的响应:

{"jsonrpc":"2.0","result":"0x...","id":1}

result 是十六进制区块号。这确认了您的 RPC 端点正常工作。

使用 ethers.js 或 viem 使用 Sonic RPC

对于 JavaScript 开发者,您可以使用 ethers.js 或 viem 等流行库集成 Sonic RPC。以下是使用 ethers.js 的示例:

import { ethers } from "ethers";

const provider = new ethers.JsonRpcProvider("https://sonic.api.onfinality.io/public");

async function getBlockNumber() {
  const blockNumber = await provider.getBlockNumber();
  console.log("当前区块号:", blockNumber);
}

getBlockNumber();

使用 viem:

import { createPublicClient, http } from "viem";

const client = createPublicClient({
  chain: {
    id: 146,
    name: "Sonic Mainnet",
    network: "sonic",
    nativeCurrency: { name: "Sonic", symbol: "S", decimals: 18 },
    rpcUrls: { default: { http: ["https://sonic.api.onfinality.io/public"] } },
  },
  transport: http(),
});

const blockNumber = await client.getBlockNumber();
console.log("当前区块号:", blockNumber);

用于实时数据的 WebSocket 订阅

如果您的 dApp 需要实时更新(例如新区块、待处理交易),您将需要一个 WebSocket 端点。OnFinality 为 Sonic RPC 节点提供 WebSocket 支持。WebSocket URL 通常遵循以下模式:

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

注意:确切的 WebSocket URL 可能有所不同。请查看 Sonic 网络页面 获取最新支持的传输方式。

以下是使用 ethers.js 订阅新区块头的示例:

import { ethers } from "ethers";

const provider = new ethers.WebSocketProvider("wss://sonic.api.onfinality.io/public/ws");

provider.on("block", (blockNumber) => {
  console.log("新区块:", blockNumber);
});

选择合适的 Sonic RPC 提供商

在为 Sonic 选择 RPC 提供商时,请考虑以下因素:

因素检查内容重要性
速率限制每秒请求数、每日配额公共端点通常有严格限制,可能会限制您的 dApp
归档数据支持 eth_getLogs 和历史状态分析、索引和调试所需
WebSocket 支持是否提供 wss 端点对实时功能至关重要
专用节点提供私有、隔离节点的选项提供一致的性能,无干扰邻居
正常运行时间和可靠性历史正常运行时间、冗余停机可能会中断您的应用

OnFinality 同时提供共享公共 RPC和专用 Sonic 节点。专用节点让您完全控制基础设施,具有明确的速率限制和归档数据访问权限。

公共与专用 Sonic RPC 节点

对于开发和测试,公共 RPC 端点通常就足够了。然而,对于生产工作负载,您应考虑使用专用节点。以下是比较:

方面公共 RPC专用节点
成本免费或低成本订阅制
速率限制有,通常严格无(或非常高)
性能共享,可变一致,隔离
归档数据通常不可用可按需提供
WebSocket可能受限完全支持
控制无完全访问节点配置

如果您的 dApp 处理大量请求或需要历史数据,专用节点是更好的选择。

排查常见 Sonic RPC 问题

即使使用可靠的提供商,您也可能会遇到问题。以下是常见问题及解决方法:

1. 连接超时

如果您遇到超时,请检查:

  • 您的网络连接
  • RPC 端点 URL(确保正确)
  • 您是否使用了正确的传输方式(HTTP 与 WebSocket)

2. 速率限制错误

公共端点经常返回 429 Too Many Requests。为避免此问题:

  • 在客户端实现缓存
  • 对高流量应用使用专用节点
  • 考虑使用多个端点并启用故障转移

3. 错误的链 ID

确保您的钱包或 dApp 配置了正确的链 ID(146)。使用错误的链 ID 可能导致交易失败。

4. 缺少归档数据

如果您需要历史数据,请确保您的提供商支持归档请求。公共端点通常只提供最近的状态。

监控您的 Sonic RPC 节点

一旦您的 RPC 连接正常,您应该监控其健康状况。您可以使用脚本设置简单的健康检查:

#!/bin/bash

# 检查 RPC 端点是否响应
response=$(curl -s -o /dev/null -w "%{http_code}" -X POST \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' \
  https://sonic.api.onfinality.io/public)

if [ "$response" -eq 200 ]; then
  echo "RPC 健康"
else
  echo "RPC 宕机"
fi

您可以定期运行此脚本以确保您的端点正常运行。

关键要点

  • Sonic 是一个兼容 EVM 的第 1 层区块链,链 ID 为 146。
  • 公共 RPC 端点是 https://sonic.api.onfinality.io/public。
  • 对于生产环境,考虑使用专用 Sonic 节点以避免速率限制并获取归档数据。
  • 始终验证您的链设置并使用正确的传输方式(HTTP/WebSocket)。
  • 监控您的 RPC 端点以确保高可用性。

常见问题解答

问:Sonic RPC URL 是什么? 答:公共 RPC URL 是 https://sonic.api.onfinality.io/public。对于生产环境,您可能需要专用端点。

问:Sonic 链 ID 是什么? 答:链 ID 是 146。

问:OnFinality 是否支持 Sonic WebSocket? 答:是的,OnFinality 为 Sonic RPC 节点提供 WebSocket 支持。请查看 Sonic 网络页面 了解详情。

问:我可以获取 Sonic 的归档数据吗? 答:可以,OnFinality 上的专用 Sonic 节点可以配置归档数据。请联系我们获取更多信息。

问:如何在公共和专用 RPC 之间选择? 答:公共 RPC 适合开发,但对于高流量的生产应用,专用节点提供更好的性能和可靠性。

有关 RPC 提供商和网络支持的更多信息,请访问我们的 RPC 定价页面 和 支持的网络列表。

RPC 知识库

相关 RPC 内容

网络 RPCOptimism

Optimism Nodes: Public, Managed, or Self-Hosted?

Optimism nodes are the software clients that let you read and write data on OP Mainnet, the leading Ethereum Layer 2. You can run your own node for fu...

网络 RPCxx network

什么是 xx network,开发者如何与之交互?

xx network 是一个抗量子、注重隐私的区块链,具有去中心化的混合网络(mixnet)。它基于 Substrate 链,并为开发者提供 RPC 端点。本文解释了该网络的架构、如何通过 RPC 连接,以及在选择基础设施以在 xx 上构建时需要考虑的事项。...

网络 RPCTON

关于TON RPC端点,我需要了解什么?

# 关于TON RPC端点,我需要了解什么? TON RPC端点之所以重要,是因为Web3应用依赖于稳定的端点访问来进行读取、交易、仪表盘和后端工作流。正确的设置应匹配你的工作负载,支持你所需的网络和测试网,使限制可见,并在共享RPC不再足够时提供扩展路径。 对于TON构建者、基础设施负责人、DeF...

RPC 提供商选择Solana

在选择带有分析 API 的 Solana RPC 提供商时,您应该评估什么?

选择带有分析 API 的 Solana RPC 提供商意味着要超越基本的交易广播。您需要评估数据深度、方法覆盖范围,以及提供商如何处理高吞吐量工作负载,如账户订阅和历史查询。本文分解了关键标准——从分析方法支持到故障转移和专用节点选项——以便您将基础设施与应用程序的数据需求相匹配。...

测试网 RPCArbitrum

Sepolia RPC 端点:公共 URL、链设置以及何时迁移

公共 Sepolia RPC 端点是一个共享的、无需注册的 HTTPS URL,允许你在以太坊 Sepolia 测试网上读取状态和广播交易。这是将钱包、脚本或 CI 任务指向 Sepolia 的最快方式,但共享容量和共享速率限制使其不适合任何需要可预测吞吐量的场景。本文为你提供链设置、一个可用的 O...

网络 RPCSolana

Solana RPC Access: Authentication, Rate Limits & Common Errors

Solana RPC access uses JSON-RPC over HTTP and WebSocket. Public endpoints such as https://api.mainnet-beta.solana.com require no key but enforce chang...

永远不用担心基础设施

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

开始