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

Sonic 网络 RPC:链设置、端点和提供商选择

摘要

Sonic 是一个高性能的 EVM 兼容 Layer-1 区块链,具有亚秒级最终性。本页涵盖官方 Sonic 网络 RPC 设置、如何连接您的钱包或 dApp,以及如何评估用于生产环境的 RPC 提供商。我们还解释了何时选择托管或专用的 Sonic RPC 端点是正确的选择。

快速决策指南:您应该使用哪个 Sonic RPC?

在深入了解链设置之前,请决定哪种类型的 Sonic RPC 适合您的用例。正确的选择取决于您的工作负载,而不仅仅是最低延迟。

  • 原型开发或钱包设置:使用官方公共端点 https://rpc.soniclabs.com 或 OnFinality 公共端点 https://sonic.api.onfinality.io/public。这些适用于测试、将网络添加到钱包或低量请求。
  • 生产 dApp 或索引器:使用具有专用端点的托管 RPC 提供商更安全。公共端点可能会限制或限流大量使用,并且它们很少提供归档数据或 WebSocket 可靠性保证。
  • 高吞吐量或数据密集型工作负载:如果您需要大范围的 eth_getLogs、trace 方法或一致的 WebSocket 流,请考虑使用专用的 Sonic 节点。专用节点为您提供隔离的资源并可预测的性能。
  • 合规性或数据保留:如果您需要历史状态或 trace 数据,请检查提供商是否提供归档节点。并非所有 Sonic RPC 端点都提供归档数据。

有关提供商评估的深入探讨,请参阅我们的选择 RPC 提供商指南。

Sonic 网络概览

Sonic 是一个 EVM 兼容的 Layer-1 区块链,专为高吞吐量和亚秒级最终性而设计。它是 Fantom 的继任者,并使用 S 代币作为 gas、质押和治理。对于开发者来说,关键要点是 Sonic 完全兼容 EVM,因此现有的以太坊工具只需很少的更改即可使用。

官方链设置如下:

设置值
网络名称Sonic 主网
RPC URLhttps://rpc.soniclabs.com
链 ID146 (0x92)
货币符号S
区块浏览器https://sonicscan.org

这些设置是您将 Sonic 添加到钱包或配置 dApp 所需的。OnFinality 公共端点 https://sonic.api.onfinality.io/public 也可用作替代。

将 Sonic 添加到 MetaMask 或其他钱包

大多数钱包允许您手动添加自定义网络。MetaMask、Rabby 和其他 EVM 钱包的过程类似。

  1. 打开您的钱包并转到网络选择下拉菜单。
  2. 点击 添加网络 或 手动添加网络。
  3. 输入以下详细信息:
    • 网络名称:Sonic
    • 新的 RPC URL:https://rpc.soniclabs.com 或 https://sonic.api.onfinality.io/public
    • 链 ID:146
    • 货币符号:S
    • 区块浏览器 URL:https://sonicscan.org
  4. 保存网络并切换到它。

如果您使用支持 WalletConnect 或 chainlist 的钱包,您也可以一键添加。但是,手动输入详细信息可确保您控制使用的 RPC 端点。

使用 ethers 或 viem 连接 dApp

对于开发者来说,连接到 Sonic 很简单。以下是使用 ethers.js 的示例:

import { ethers } from "ethers";

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

const network = await provider.getNetwork();
console.log("Chain ID:", network.chainId); // 146

const blockNumber = await provider.getBlockNumber();
console.log("Latest block:", blockNumber);

使用 viem:

import { createPublicClient, http } from "viem";

const client = createPublicClient({
  chain: {
    id: 146,
    name: "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("Latest block:", blockNumber);

使用 curl 进行 JSON-RPC 调用

如果您正在调试或测试,一个简单的 curl 请求可以验证连接性:

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

成功的响应以十六进制格式返回最新的区块号。

WebSocket 支持和实时数据

对于需要实时更新的应用程序,例如交易监控或订单簿,WebSocket 端点至关重要。官方 Sonic RPC 支持 WebSocket,许多提供商提供 WSS 端点。

使用 viem 的 WebSocket 订阅示例:

import { createPublicClient, webSocket } from "viem";

const client = createPublicClient({
  chain: {
    id: 146,
    name: "Sonic",
    nativeCurrency: { name: "Sonic", symbol: "S", decimals: 18 },
    rpcUrls: {
      default: { webSocket: ["wss://sonic-rpc.publicnode.com"] },
    },
  },
  transport: webSocket(),
});

const unwatch = client.watchBlockNumber({
  onBlockNumber: (blockNumber) => {
    console.log("New block:", blockNumber);
  },
});

请注意,公共 WebSocket 端点可能有连接限制。对于生产环境,建议使用专用的 WebSocket 端点。

Sonic RPC 提供商比较

在评估 Sonic RPC 提供商时,请考虑以下标准。下表比较了典型的产品,但请务必在每个提供商的网站上验证当前详细信息。

提供商端点类型归档数据WebSocket专用节点
OnFinality公共、托管、专用是(按需)是是
dRPC公共、高级是(高级)是否
Dwellir公共、专用是是是
Ankr公共、高级是(高级)是否

OnFinality 提供公共端点和专用 Sonic 节点。专用节点为您提供隔离的资源,这对于高吞吐量应用程序非常重要。您可以在我们的网络页面上查看受支持网络的完整列表。

何时选择专用 Sonic 节点

专用节点是单租户 RPC 端点,不与其他用户共享。这在以下情况下很有用:

  • 您的应用程序产生大量请求,并且您需要一致的性能。
  • 您需要公共端点上不可用的归档数据或 trace 方法。
  • 您希望避免速率限制和限流。
  • 您需要用于实时数据的私有 WebSocket 端点。

OnFinality 的专用节点服务提供具有隔离资源的 Sonic 节点。您可以选择适合您工作负载的节点大小和配置。

常见陷阱和故障排除

即使使用正确的端点,您也可能会遇到问题。以下是常见问题及解决方法:

  • 错误的链 ID:确保您的钱包或 dApp 使用链 ID 146。不匹配会导致交易签名错误。
  • 速率限制:公共端点通常限制每秒请求数。如果您达到限制,请切换到托管或专用端点。
  • 缺少归档数据:某些 RPC 方法(如大范围的 eth_getLogs)需要归档节点。如果您遇到错误,请检查您的提供商是否提供归档数据。
  • WebSocket 断开:公共 WebSocket 端点可能会断开连接。对于生产环境,请使用专用的 WebSocket 端点。
  • 区块浏览器差异:如果浏览器显示的区块高度与您的 RPC 不同,则可能是同步问题。请使用多个来源进行验证。

监控您的 Sonic RPC 健康状况

为确保您的应用程序保持健康,请监控您的 RPC 端点。一个简单的健康检查脚本可以提醒您问题:

#!/bin/bash

RPC_URL="https://sonic.api.onfinality.io/public"

response=$(curl -s -X POST $RPC_URL \
  -H "Content-Type: application/json" \
  --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}')

if echo "$response" | grep -q "result"; then
  echo "RPC is healthy"
else
  echo "RPC is down"
fi

对于生产环境,请考虑使用监控服务来跟踪延迟、错误率和区块高度滞后。

关键要点

  • Sonic 是一个 EVM Layer-1,链 ID 为 146,使用 S 代币。
  • 官方 RPC 是 https://rpc.soniclabs.com;OnFinality 还提供公共端点 https://sonic.api.onfinality.io/public。
  • 对于生产环境,请评估托管或专用 RPC 提供商,以避免速率限制并获取归档数据。
  • 专用 Sonic 节点非常适合高吞吐量或数据密集型工作负载。
  • 始终监控您的 RPC 端点健康状况以确保可靠性。

常见问题解答

Sonic 网络 RPC URL 是什么?

官方 Sonic 主网 RPC URL 是 https://rpc.soniclabs.com。OnFinality 还提供公共端点 https://sonic.api.onfinality.io/public。

Sonic 链 ID 是什么?

Sonic 主网链 ID 是 146 (0x92)。

Sonic 支持 WebSocket 吗?

是的,Sonic 支持 WebSocket RPC。公共 WSS 端点可用,但对于生产环境,建议使用专用的 WebSocket 端点。

我可以将 Sonic 与 MetaMask 一起使用吗?

是的,您可以使用上述链设置将 Sonic 作为自定义网络添加到 MetaMask。

OnFinality 提供 Sonic RPC 吗?

是的,OnFinality 提供公共 Sonic 端点和专用 Sonic 节点。有关详细信息,请参阅我们的 Sonic 网络页面。

Sonic 区块浏览器是什么?

官方 Sonic 区块浏览器是 https://sonicscan.org。

Sonic 是 EVM 兼容链吗?

是的,Sonic 完全兼容 EVM,因此您可以无需修改即可部署以太坊智能合约。

如何获取 Sonic 测试网代币?

Sonic 测试网与主网分开。您可以从 Sonic 水龙头获取测试网代币,该水龙头可在 Sonic 文档中找到。

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

RPC 知识库

相关 RPC 内容

网络 RPCBittensor

如何挖掘 Bittensor 并保持矿工连接?

Bittensor 并不像 Bitcoin 那样通过哈希算力挖矿。矿工在子网(subnet)上运行机器学习负载,由验证者(validators)评分,链以 TAO 支付奖励。要开始,你需要选择一个子网、准备硬件、使用 Bittensor CLI 注册矿工,并通过可靠的 RPC 端点保持矿工与 Sub...

测试网 RPCBase

Base Sepolia 公共 RPC 端点:链设置、水龙头和调试

Base Sepolia 是 Base 的测试网,Base 是一个 OP Stack L2,结算到以太坊 Sepolia。要连接,请将你的钱包或应用指向 Base Sepolia RPC 端点,并设置链 ID 84532、货币 ETH 和区块浏览器 https://sepolia.basescan....

网络 RPCPolygon

Polygon RPC API:端点设置、方法与调试

Polygon RPC API 是您的应用用来读取 Polygon PoS 状态并提交交易的 JSON-RPC 接口。您可以通过 HTTP 或 WebSocket 连接到暴露标准以太坊兼容方法(如 eth_call、eth_getLogs 和 eth_sendRawTransaction)的节点。本...

网络 RPCAjuna

Ajuna RPC 端点:链设置、连接选项和调试

Ajuna 是一个基于 Polkadot 的网络,专为游戏和链上应用工作负载而设计。本页面涵盖了开发者连接它所需的内容:链设置、如何将钱包或客户端指向 Ajuna RPC 端点,以及如何调试常见的连接故障。 如果您要从公共端点迁移到更可靠的生产环境,OnFinality 为支持的网络提供 RPC A...

测试网 RPCSolana

什么是 Solana Devnet,以及如何在开发中使用它?

Solana Devnet 是一个免费的公共测试网络,开发者可以在其中部署程序、测试交易,并模拟主网行为,而无需使用真实的 SOL。它紧密模拟 Solana 运行时,使其成为在主网启动前构建和调试 dApp 的标准环境。 本指南涵盖如何连接 Devnet、从水龙头获取免费 SOL,以及选择可靠的 R...

网络 RPCMoonriver

Moonriver RPC:端点、配置与最佳实践

Moonriver 是 Kusama 上兼容以太坊的金丝雀网络,适合在部署到 Moonbeam 之前测试 dApp。本指南涵盖 Moonriver RPC 端点、如何配置钱包和工具,以及如何为生产环境选择可靠的 RPC 提供商。...

永远不用担心基础设施

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

开始