摘要
Scroll 端点是 Scroll 以太坊 Layer 2 网络的 JSON-RPC API。本页说明什么是 Scroll 端点、如何配置钱包或 dApp,以及如何为生产工作负载选择合适的 RPC 提供商。
快速建议:你应该使用哪个 Scroll 端点?
如果你正在构建 dApp、运行后端服务,或者只是在 Scroll 上进行测试,端点的选择会影响应用的可靠性和性能。对于开发和轻度使用,公共端点就足够了。对于生产工作负载,你应该考虑使用专用或私有 RPC 端点,以避免速率限制并确保一致的正常运行时间。
- 用于快速测试和原型: 使用公共端点
https://scroll.api.onfinality.io/public。 - 用于生产 dApp: 使用来自 OnFinality 等提供商的私有 RPC 端点,它提供专用节点和更高的吞吐量。
- 用于钱包配置: 使用下面的链设置将 Scroll 添加到 MetaMask 或其他钱包。
什么是 Scroll 端点?
Scroll 端点是 Scroll 网络的 JSON-RPC API 端点,Scroll 是一个使用 zk-rollups 的以太坊 Layer 2 扩展解决方案。它允许你使用标准的以太坊工具(如 ethers.js、viem 或 curl)与 Scroll 区块链交互——发送交易、查询数据、部署智能合约。
Scroll 被设计为与 EVM 兼容,这意味着大多数以太坊代码无需修改即可运行。端点充当网络的网关,其性能直接影响你的应用的用户体验。
Scroll 链设置一览
以下是配置钱包或 dApp 所需的关键网络参数:
| 参数 | 值 |
|---|---|
| 网络名称 | Scroll |
| 链 ID | 534352 |
| 原生货币 | ETH(以太币) |
| 符号 | ETH |
| 小数位数 | 18 |
| 区块浏览器 | https://scrollscan.com |
| 公共 RPC URL | https://scroll.api.onfinality.io/public |
| WebSocket URL | wss://scroll.api.onfinality.io/public-ws |
这些设置对于将 Scroll 添加到钱包或配置应用至关重要。
如何使用 Scroll 端点配置钱包
要将 Scroll 添加到 MetaMask 或其他钱包,请按照以下步骤操作:
- 打开钱包并导航到网络设置。
- 点击“添加网络”或“自定义 RPC”。
- 输入上表中的详细信息。
- 保存并切换到 Scroll 网络。
以下是钱包配置片段示例(例如,用于 MetaMask):
{
"chainId": "0x82750", // 534352 的十六进制
"chainName": "Scroll",
"nativeCurrency": {
"name": "Ether",
"symbol": "ETH",
"decimals": 18
},
"rpcUrls": ["https://scroll.api.onfinality.io/public"],
"blockExplorerUrls": ["https://scrollscan.com"]
}
向 Scroll 发出第一个 JSON-RPC 请求
获得端点后,你可以使用简单的 curl 命令进行测试。例如,获取当前区块号:
curl https://scroll.api.onfinality.io/public \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
响应将类似于:
{"jsonrpc":"2.0","id":1,"result":"0x..."}
结果是十六进制的最新区块号。你可以将其转换为十进制以查看当前区块高度。
使用 ethers.js 和 viem 与 Scroll 端点交互
大多数开发者使用 ethers.js 或 viem 等库与 Scroll 网络交互。以下是使用 ethers.js 连接的方法:
const { ethers } = require("ethers");
const provider = new ethers.JsonRpcProvider("https://scroll.api.onfinality.io/public");
async function getBlockNumber() {
const blockNumber = await provider.getBlockNumber();
console.log("Current block number:", blockNumber);
}
getBlockNumber();
以及使用 viem:
import { createPublicClient, http } from 'viem';
const client = createPublicClient({
chain: {
id: 534352,
name: 'Scroll',
network: 'scroll',
nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
rpcUrls: {
default: { http: ['https://scroll.api.onfinality.io/public'] },
public: { http: ['https://scroll.api.onfinality.io/public'] },
},
blockExplorers: {
default: { name: 'ScrollScan', url: 'https://scrollscan.com' },
},
},
transport: http(),
});
const blockNumber = await client.getBlockNumber();
console.log("Current block number:", blockNumber);
用于实时应用的 WebSocket 支持
如果你的应用需要实时更新——如交易回执或新区块——你可以使用 WebSocket 端点。这对于索引器、监控工具或需要即时响应链上事件的 dApp 非常有用。
以下是使用 WebSocket 订阅新区块头的示例:
const WebSocket = require('ws');
const ws = new WebSocket('wss://scroll.api.onfinality.io/public-ws');
ws.on('open', () => {
ws.send(JSON.stringify({
jsonrpc: '2.0',
method: 'eth_subscribe',
params: ['newHeads'],
id: 1
}));
});
ws.on('message', (data) => {
console.log('New block:', JSON.parse(data));
});
公共与私有 Scroll 端点:有什么区别?
公共端点是免费的,对所有人开放,但有一些限制:
- 速率限制: 公共端点通常有请求限制以防止滥用。
- 可靠性: 在高负载下可能不太可靠。
- 隐私: 你的请求不是私密的;提供商可以看到它们。
另一方面,私有端点提供:
- 更高的吞吐量: 你获得专用资源,因此可以处理更多每秒请求。
- 更好的可靠性: 专用节点不太可能受到其他用户流量的影响。
- 隐私: 你的请求不会与其他用户共享。
对于生产应用,私有端点通常是正确的选择。OnFinality 提供专用的 Scroll 节点和私有 RPC 端点,可以根据你的需求进行定制。查看我们的 RPC 定价 了解更多详情。
使用 Scroll 端点的常见陷阱和故障排除
以下是开发人员在使用 Scroll 端点时遇到的一些常见问题及其解决方法:
| 症状 | 可能原因 | 解决方案 |
|---|---|---|
eth_blockNumber 返回错误 | 端点 URL 错误 | 仔细检查 URL,确保它是正确的网络 |
| 速率限制错误(HTTP 429) | 请求过多 | 使用私有端点或实现重试逻辑 |
| WebSocket 连接断开 | 网络不稳定 | 实现重连逻辑 |
| 找不到交易 | 链 ID 错误 | 确保你的链 ID 是 534352 |
如何为生产环境选择 Scroll RPC 提供商
在选择 Scroll RPC 提供商时,请考虑以下标准:
- 正常运行时间和可靠性: 寻找具有高可用性记录的提供商。
- 吞吐量: 确保提供商能够处理你预期的请求量。
- WebSocket 支持: 如果你需要实时数据,请确保支持 WebSocket。
- 归档数据: 如果你需要历史状态,请检查提供商是否提供归档节点。
- 定价: 比较定价模型,找到适合你预算的。
OnFinality 是一个值得考虑的好选择,因为它提供专用节点和灵活的定价。你可以浏览我们的 支持的网络 查看 Scroll 是否列出以及可用的服务。
关键要点
- Scroll 端点是 Scroll Layer 2 网络的 JSON-RPC API。
- 使用公共端点进行测试,但生产环境考虑使用私有端点。
- 使用正确的链 ID(534352)和 RPC URL 配置钱包。
- 支持 WebSocket,可用于实时应用。
- 选择满足你可靠性、吞吐量和预算需求的提供商。
常见问题
Scroll 的链 ID 是什么? Scroll 的链 ID 是 534352。
Scroll 的原生货币是什么? Scroll 使用 ETH 作为原生货币,具有 18 位小数。
我可以将 Scroll 端点与 MetaMask 一起使用吗? 是的,你可以使用上面提供的链设置将 Scroll 添加为自定义网络。
OnFinality 是否提供专用的 Scroll 端点? OnFinality 为各种网络提供专用节点基础设施。查看我们的 网络页面 了解可用性和详细信息。
如何获得 Scroll RPC 问题的支持? 如果你使用 OnFinality,可以联系我们的支持团队。对于一般问题,请参阅 Scroll 文档和社区论坛。