摘要
Polygon节点是运行Polygon PoS客户端栈(Bor执行层和Heimdall共识层)的计算机,它维护链的副本并提供RPC请求服务。您可以运行自己的节点以获得完全控制,或使用像OnFinality这样的托管RPC提供商来获得可靠的端点,而无需承担运维开销。本指南介绍了节点类型、如何连接以及如何在自托管和提供商之间进行选择。
快速决策:运行自己的Polygon节点还是使用RPC提供商?
在深入了解节点架构之前,先决定您希望如何与Polygon交互。如果您需要完全控制节点、想运行验证器或需要自定义追踪,自托管是有意义的。如果您想专注于构建dApp而不管理基础设施,像OnFinality的Polygon端点这样的托管RPC提供商是更快的路径。
以下是一个快速指南:
- 您是dApp开发者 – 使用托管RPC提供商。您将获得可靠的端点、WebSocket支持以及无需节点维护的扩展能力。
- 您是验证者或需要深度链访问 – 运行自己的节点。您将需要Bor和Heimdall。
- 您需要归档数据或高吞吐量 – 考虑从提供商处获取专用节点,它提供专用资源和历史状态。
什么是Polygon节点?
Polygon节点是运行Polygon PoS客户端软件的计算机,维护区块链的副本并参与网络。与单客户端链不同,Polygon使用双层架构:
- Bor – 执行层,Geth的一个分叉,处理交易和智能合约执行。
- Heimdall – 共识层,基于Tendermint,管理验证者、检查点以及向以太坊的状态同步。
节点可以是全节点(存储整个链状态)或归档节点(存储所有历史状态)。验证者节点还参与区块生产和共识。
为什么运行Polygon节点?
运行自己的节点给您带来:
- 直接访问 – 您和链之间没有第三方。
- 定制化 – 您可以修改客户端或添加自定义索引。
- 隐私 – 您的请求不会被提供商记录。
- 成本控制 – 对于高用量,自托管可能比付费RPC计划更便宜。
然而,它带来了运维负担:硬件、存储、监控以及保持节点同步。对于大多数开发者来说,权衡结果倾向于托管提供商。
如何运行Polygon节点
硬件要求
Polygon建议全节点满足以下要求:
- CPU:8核以上
- RAM:16 GB(归档节点需要32 GB)
- 存储:2.5 TB SSD(随时间增长)
- 带宽:100 Mbps以上,不限流量
设置步骤
- 安装依赖 – Docker,或从源码构建。
- 下载创世文件 – 对于主网,使用官方的Polygon快照。
- 启动Heimdall – 初始化并启动Heimdall服务。
- 启动Bor – 配置Bor连接到Heimdall并启动服务。
- 验证同步 – 检查日志并使用
eth_blockNumber确认节点正在同步。
以下是一个简化的Docker Compose示例:
version: '3'
services:
heimdall:
image: 0xpolygon/heimdall:latest
command: heimdall start
volumes:
- ./heimdall:/heimdall
ports:
- "26657:26657"
bor:
image: 0xpolygon/bor:latest
command: bor server
volumes:
- ./bor:/bor
ports:
- "8545:8545"
通过RPC连接Polygon
一旦您的节点运行,它会暴露一个RPC端点(默认http://localhost:8545)。您也可以使用来自像OnFinality这样的提供商的公共端点:
curl https://polygon.api.onfinality.io/public \
-X POST \
-H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
对于WebSocket订阅:
const WebSocket = require('ws');
const ws = new WebSocket('wss://polygon.api.onfinality.io/public');
ws.on('open', () => {
ws.send(JSON.stringify({
jsonrpc: '2.0',
method: 'eth_subscribe',
params: ['newHeads'],
id: 1
}));
});
ws.on('message', (data) => {
console.log(data.toString());
});
Polygon节点类型及其用例
| 节点类型 | 描述 | 用例 |
|---|---|---|
| 全节点 | 存储整个链状态,修剪历史状态 | 通用RPC,dApp后端 |
| 归档节点 | 存储所有历史状态 | 分析、深度查询、调试 |
| 验证者节点 | 参与共识,需要质押 | 运行验证者 |
| 哨兵节点 | 位于验证者之前,中继数据 | 验证者的安全性 |
自托管与托管RPC:需要考虑什么
在决定时,评估:
- 部署时间 – 自托管可能需要数天同步;托管提供商提供即时端点。
- 维护 – 您必须处理升级、监控和备份。
- 可扩展性 – 托管提供商可以通过负载均衡处理流量高峰。
- 成本 – 自托管有固定硬件成本;托管计划随使用量扩展。
对于大多数生产应用,像OnFinality这样的托管提供商提供了可靠性和简单性的平衡。查看我们的RPC定价了解透明计划。
常见陷阱和故障排除
- 节点不同步 – 检查Heimdall和Bor日志。确保系统时钟准确。
- 存储已满 – 修剪旧数据或增加磁盘空间。
- RPC超时 – 增加请求超时或使用基础设施更好的提供商。
- WebSocket断开 – 在客户端实现重连逻辑。
如果您使用托管提供商,这些大多由他们处理。
关键要点
- Polygon节点运行Bor和Heimdall,各自扮演不同角色。
- 自托管提供控制权,但需要大量运维工作。
- 像OnFinality这样的托管RPC提供商为开发者提供快速、可靠的端点。
- 根据您的需求选择节点类型:全节点、归档节点或验证者节点。
常见问题
Polygon全节点和归档节点有什么区别?
全节点存储当前状态,可以查询最近的数据,而归档节点存储所有历史状态,使您能够查询任何过去的区块。
同步一个Polygon节点需要多长时间?
使用快照,可能需要几个小时到一天,具体取决于硬件和网络速度。
我可以将公共RPC端点用于生产环境吗?
公共端点适合开发,但对于生产环境,您应该使用专用或付费端点以避免速率限制并确保可靠性。
OnFinality支持Polygon WebSocket吗?
是的,OnFinality为Polygon提供WebSocket支持。详情请参阅Polygon网络页面。
如何将Polygon添加到MetaMask?
使用网络详情:Chain ID 137,RPC URL https://polygon.api.onfinality.io/public,符号POL,浏览器https://polygonscan.com。
更多网络,请访问我们的支持的网络页面。