摘要
Polygon区块链API包括用于直接节点交互的JSON-RPC端点、用于支付的REST API(如Open Money Stack)以及客户端SDK(如Matic.js和ethers.js)。选择合适的API取决于你的用例——是需要底层链访问、稳定币支付还是智能合约交互。本文涵盖了可用的API类型、何时使用每种类型以及生产环境部署的最佳实践。
Polygon区块链API决策清单
- 确定你的用例: 你是构建需要智能合约交互的dApp、需要稳定币转账的支付应用,还是读取链上数据的分析工具?
- 选择正确的API层: 使用JSON-RPC进行底层链访问,使用Open Money Stack REST API进行支付工作流,或使用客户端SDK(如ethers.js)进行合约开发。
- 选择RPC提供商: 根据速率限制、归档数据支持、WebSocket可用性和地理延迟评估提供商。OnFinality提供Polygon RPC端点,并带有用于生产工作负载的专用节点选项。
- 先在测试网上测试: 在主网之前部署并测试在Polygon Amoy上,以尽早发现问题。
- 监控并处理错误: 对速率限制实施重试逻辑,检查JSON-RPC错误代码,并记录失败的请求。
什么是Polygon区块链API?
Polygon区块链API是指开发者用于与Polygon网络交互的接口集合。Polygon是以太坊的第2层扩展解决方案,提供更快更便宜的交易,同时保持EVM兼容性。API生态包括:
- JSON-RPC API: 标准的以太坊兼容接口,用于读取区块链数据、发送交易和与智能合约交互。
- REST API: 用于支付的Open Money Stack API,以及提供商特定的REST端点用于区块链数据。
- 客户端SDK: 如ethers.js、web3.js和Matic.js等库,将JSON-RPC调用封装成便捷方法。
理解这些选项有助于你为项目选择最佳工具。
Polygon API类型:RPC、REST和SDK
| API类型 | 接口 | 最适合 | 示例用例 |
|---|---|---|---|
| JSON-RPC | 向端点发送POST请求 | 底层链访问、自定义查询、直接节点交互 | 获取最新区块、调用任意智能合约 |
| REST API | HTTP GET/POST到结构化端点 | 支付流程、法币出入金、高级数据检索 | 通过Open Money Stack发送稳定币支付 |
| 客户端SDK | JavaScript/TypeScript库 | 智能合约开发、dApp前端、快速原型开发 | 使用ethers.js部署和调用合约 |
JSON-RPC API
Polygon的核心接口是JSON-RPC,与以太坊的API相同。你可以向任何Polygon RPC端点发送请求。示例:获取最新区块号。
curl -X POST https://polygon-rpc.com \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_blockNumber",
"params": [],
"id": 1
}'
对于生产环境,使用像OnFinality这样的可靠提供商,以避免速率限制和停机。查看支持的网络了解可用端点。
REST API:Open Money Stack
Polygon的Open Money Stack是一套用于资金转移的REST API。它提供稳定币转账、出入金和非托管钱包的端点。该API是RESTful的,返回JSON。它抽象了原始区块链交易的复杂性。
客户端SDK
- Ethers.js和web3.js:通用的以太坊SDK,由于EVM兼容性,可在Polygon上使用。用于合约交互。
- Matic.js:Polygon的遗留SDK,用于桥接操作。它提供PoS桥的读取和写入API。
使用ethers.js的示例:
const { ethers } = require("ethers");
const provider = new ethers.providers.JsonRpcProvider("https://polygon-rpc.com");
async function getBlockNumber() {
const blockNumber = await provider.getBlockNumber();
console.log("Current block:", blockNumber);
}
getBlockNumber();
何时使用JSON-RPC vs. REST vs. SDK
- JSON-RPC:当你需要最大灵活性时使用——调用任何EVM方法、读取合约状态、或使用自定义gas参数发送交易。对基础设施级工作至关重要。
- REST API:最适合支付工作流,你希望避免原始交易构建。Open Money Stack处理费用估算、nonce管理和重试。
- 客户端SDK:理想用于前端dApp和快速原型开发。它们简化代码,但底层依赖于RPC端点。
有关提供商的更深入比较,请参阅如何选择RPC提供商。
Polygon RPC端点和链设置
| 设置 | 主网值 | 测试网(Amoy)值 |
|---|---|---|
| 链ID | 137 | 80002 |
| RPC端点(共享) | https://polygon-rpc.com | https://rpc-amoy.polygon.technology |
| 货币符号 | POL | POL |
| 区块浏览器 | https://polygonscan.com | https://amoy.polygonscan.com |
对于生产环境,考虑使用专用节点服务以确保性能。OnFinality提供Polygon专用节点,具有可定制容量。
Polygon开发的常见API方法
以下是常用的JSON-RPC方法:
eth_blockNumber– 获取最新区块号eth_getBalance– 获取地址的POL余额eth_call– 执行只读合约调用eth_sendRawTransaction– 广播已签名交易eth_getTransactionReceipt– 获取交易收据eth_gasPrice– 获取当前gas价格
这些方法与以太坊相同,因此任何以太坊工具都可在Polygon上使用。
Polygon API调用故障排除
常见问题及解决方案:
- 速率限制:免费公共端点可能会限流。切换到具有更高限制的提供商或专用节点。查看RPC定价了解选项。
- 链ID错误:确保使用链ID 137(主网)或80002(Amoy测试网)。
- Nonce错误:对于写操作,确保正确跟踪每个地址的nonce。
- Gas估算失败:在发送交易前使用
eth_estimateGas。 - 连接超时:使用具有多个端点和故障转移的提供商。OnFinality提供冗余基础设施。
关键要点
- Polygon的API与EVM兼容,因此以太坊工具可以无缝使用。
- 选择JSON-RPC进行底层控制,REST用于支付流程,SDK用于便捷性。
- 在生产环境中,可靠性很重要——根据正常运行时间、速率限制和支持评估提供商。
- 在部署到主网之前,始终先在Amoy测试网上测试。
- OnFinality为要求苛刻的应用提供强大的Polygon RPC端点和专用节点基础设施。
常见问题
问:我可以在Polygon上使用以太坊库吗? 答:是的,由于EVM兼容性,像ethers.js和web3.js这样的库可以直接与Polygon RPC端点一起使用。
问:Matic.js和ethers.js有什么区别? 答:Matic.js是专门用于Polygon桥接操作(存入、提取)的SDK。Ethers.js是通用以太坊SDK,也可以与Polygon交互。
问:如何获得免费的Polygon RPC端点? 答:公共端点如https://polygon-rpc.com可用,但有速率限制。对于生产环境,考虑使用像OnFinality这样提供免费层选项的服务。
问:什么是Open Money Stack API? 答:它是在Polygon上转移资金的REST API——稳定币支付、出入金和钱包管理。它简化了支付集成。
问:如何处理Polygon测试网? 答:使用Amoy测试网(链ID 80002)并从水龙头获取测试POL。许多提供商提供Amoy RPC端点。
有关可用网络的更多详情,请访问支持的网络。