摘要
Mantle 是一个兼容 EVM 的第 2 层 rollup,采用模块化架构,利用以太坊保证安全性,并使用自己的数据可用性层。要连接钱包和 dApp,您需要正确的 Mantle RPC 端点、链 ID 和网络设置。本页涵盖必要的链设置、公共和私有端点选项,以及如何为生产工作负载评估 RPC 提供商。
快速参考:Mantle 链设置
在连接到 Mantle 之前,您需要正确的网络参数。以下是 Mantle 主网的基本设置:
| 参数 | 值 |
|---|---|
| 网络名称 | Mantle |
| RPC URL(公共) | https://rpc.mantle.xyz |
| 链 ID | 5000 (0x1388) |
| 货币符号 | MNT |
| 区块浏览器 | https://mantlescan.xyz |
| WebSocket(公共) | wss://mantle-rpc.publicnode.com |
对于 Mantle Sepolia 测试网,链 ID 为 5003,公共 RPC 为 https://rpc.sepolia.mantle.xyz。请始终与官方 Mantle 文档核实这些值,因为它们可能会更改。
如何选择 Mantle RPC 提供商
如果您正在构建生产级 dApp,公共 RPC 端点是不够的。公共端点有速率限制,并且在负载下可能变得不可靠。您需要提供以下功能的提供商:
- 高可用性:多个冗余节点和自动故障转移。
- 低延迟:全球边缘网络以减少往返时间。
- 可扩展性:能够处理流量高峰而不会限流。
- 支持:访问归档数据、跟踪方法和 WebSocket 订阅。
根据您的工作负载评估提供商。简单的钱包可以使用公共端点,但 DeFi 协议或 NFT 市场需要具有服务级别协议的专用或共享私有端点。
什么是 Mantle 网络?
Mantle 是一个以太坊第 2 层乐观 rollup,采用模块化架构。它将执行、共识、结算和数据可用性分离到不同的层。执行层与 EVM 兼容,因此您可以使用标准的以太坊工具,如 ethers.js、viem 和 Hardhat,而无需修改。Mantle 使用以太坊进行共识和结算,并使用自己的数据可用性层(Mantle DA)来降低成本并提高吞吐量。
使用钱包连接 Mantle
要将 Mantle 添加到 MetaMask 或其他钱包,您可以使用 Chainlist 或手动输入网络详细信息。以下是手动配置示例:
{
"chainId": "0x1388",
"chainName": "Mantle",
"nativeCurrency": {
"name": "MNT",
"symbol": "MNT",
"decimals": 18
},
"rpcUrls": ["https://rpc.mantle.xyz"],
"blockExplorerUrls": ["https://mantlescan.xyz"]
}
您还可以使用 wallet_addEthereumChain RPC 方法从您的 dApp 以编程方式添加网络。
发出您的第一个 JSON-RPC 请求
一旦您有了 RPC 端点,您可以使用简单的 eth_chainId 请求进行测试:
curl -X POST https://rpc.mantle.xyz \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'
预期响应:
{"jsonrpc":"2.0","result":"0x1388","id":1}
结果 0x1388 是 5000 的十六进制表示,确认您位于 Mantle 主网上。
使用 ethers.js 与 Mantle 交互
以下是使用 ethers.js 读取最新区块编号的最小示例:
import { ethers } from "ethers";
const provider = new ethers.JsonRpcProvider("https://rpc.mantle.xyz");
async function getBlockNumber() {
const blockNumber = await provider.getBlockNumber();
console.log("Latest block:", blockNumber);
}
getBlockNumber();
公共与私有 Mantle RPC 端点
公共端点便于测试,但它们有局限性:
- 速率限制:公共端点通常按 IP 限制请求。
- 无保证:它们可能在没有通知的情况下宕机或变慢。
- 方法有限:某些高级方法如
trace_*可能被禁用。
私有端点,例如来自 OnFinality 的端点,提供专用或共享基础设施,具有更高的速率限制、更好的性能以及归档数据和 WebSocket 支持等附加功能。对于生产 dApp,建议使用私有端点。
用于实时数据的 WebSocket 订阅
如果您的 dApp 需要实时更新,请使用 WebSocket。以下是使用 viem 的示例:
import { createPublicClient, webSocket } from "viem";
const client = createPublicClient({
transport: webSocket("wss://mantle-rpc.publicnode.com"),
});
const unwatch = client.watchBlockNumber({
onBlockNumber: (blockNumber) => {
console.log("New block:", blockNumber);
},
});
常见陷阱和故障排除
- 错误的链 ID:确保主网使用 5000,测试网使用 5003。
- 速率限制:如果您收到
429 Too Many Requests,请切换到私有端点。 - WebSocket 断开:使用支持持久连接和自动重新连接的提供商。
- 缺少方法:某些提供商不支持大范围的
eth_getLogs;请使用具有归档数据的提供商。
关键要点
- Mantle 是一个兼容 EVM 的 L2,链 ID 为 5000,原生代币为 MNT。
- 公共 RPC 端点适合测试,但生产应用需要可靠的私有基础设施。
- 使用标准的以太坊工具和 JSON-RPC 方法与 Mantle 交互。
- 根据正常运行时间、延迟、可扩展性和支持来评估提供商。
常见问题解答
Mantle RPC URL 是什么?
公共 RPC URL 是 https://rpc.mantle.xyz。对于 WebSocket,使用 wss://mantle-rpc.publicnode.com。
Mantle 链 ID 是什么?
Mantle 主网链 ID 是 5000 (0x1388)。Mantle Sepolia 测试网使用 5003。
如何获得 MNT 代币作为 gas?
您可以使用官方 Mantle 桥从以太坊桥接 MNT,或者使用测试网水龙头。
我可以使用以太坊工具与 Mantle 交互吗?
可以,Mantle 与 EVM 兼容,因此 ethers.js、viem、Hardhat 和其他以太坊工具无需更改即可使用。
在哪里可以找到可靠的 Mantle RPC 提供商?