摘要
# 什么是Polkadot节点,如何运行一个? Polkadot节点是一种软件客户端,它连接到Polkadot网络,同步区块链数据,并提供RPC端点用于查询状态、提交交易以及与平行链交互。运行自己的节点可以让你直接、无需信任地访问网络,但这需要大量的硬件、存储和持续的维护。对于许多开发者和dApp来说,使用像OnFinality这样的托管RPC服务提供了一种实用的替代方案,具有高可用性和较低的操作开销。 本指南涵盖了不同类型的Polkadot节点、如何设置和配置你自己的节点,以及何时考虑为生产工作负载使用专业的RPC提供商。
关键要点
- Polkadot节点有几种类型:全节点(修剪)、归档节点、验证人节点、收集人节点和轻节点,各自服务于不同的用例。
- 运行全节点至少需要4个CPU核心、16 GB RAM和几百GB的SSD存储;归档节点需要更多。
- 设置节点涉及安装polkadot二进制文件、配置链数据标志以及同步网络,这可能需要数天时间。
- RPC节点为dApp和钱包暴露端点,但必须防止未经授权的访问并进行速率限制以防止滥用。
- 像OnFinality这样的托管RPC服务消除了运行自己节点的需要,提供具有内置冗余的可扩展端点。
- 对于生产级dApp,OnFinality的专用节点提供保证的性能和专用资源。
- 选择自托管还是托管基础设施取决于团队的DevOps能力、预算和可靠性要求。
Polkadot节点的类型
Polkadot节点根据其在网络中的角色和存储的数据量进行分类。了解这些类型有助于你为用例选择正确的基础设施。
- 全节点(修剪):存储最近的状态和有限数量的最终确定区块。适用于大多数只需要当前状态和近期历史的dApp和钱包。需要较少的存储空间,同步更快。
- 归档节点:维护自创世以来的完整历史状态和所有区块。区块浏览器、分析平台以及需要查询任何时间点历史数据的应用程序需要。存储需求显著更高。
- 验证人节点:参与中继链的共识。需要一个全节点,并额外配置用于质押和区块生产。
- 收集人节点:为平行链生产区块。运行一个中继链的全节点和一个平行链的收集人客户端。
- 轻节点:仅下载区块头,并从全节点请求状态证明。适用于移动钱包和低资源环境。
| 标准 | 检查内容 | 为什么重要 |
|---|---|---|
| 节点类型 | 数据保留 | 决定存储成本和同步时间 |
| 全节点(修剪) | 最近状态 + 最近约1000个区块 | 平衡存储和功能 |
| 归档节点 | 自创世以来的所有区块 | 支持历史查询,但需要数TB的存储 |
| 验证人节点 | 全节点 + 质押密钥 | 参与共识所需 |
| 收集人节点 | 全中继节点 + 平行链客户端 | 平行链区块生产所需 |
| 轻节点 | 仅区块头 | 资源使用最少,信任假设 |
如何设置Polkadot节点
设置Polkadot节点涉及安装polkadot二进制文件,将其配置为你想要的节点类型,并同步网络。以下是基本步骤。
- 先决条件:Linux或macOS,至少4个CPU核心,16 GB RAM,以及一个具有500 GB+可用空间的快速SSD(对于全节点)。
- 安装Rust并从源代码构建polkadot二进制文件,或从官方发布版下载预构建的二进制文件。
- 或者,使用Docker:
docker run -d --name polkadot-node -v /path/to/data:/data parity/polkadot:latest --base-path /data --chain polkadot --pruning archive。 - 配置标志:
--pruning(归档或区块数量),--rpc-external(暴露RPC),--ws-external(暴露WebSocket)。 - 同步节点:初始同步可能需要24-72小时,具体取决于硬件和网络条件。
- 保护你的节点:使用防火墙,为RPC端点启用身份验证,并考虑使用反向代理进行TLS终止。
| 标准 | 检查内容 | 为什么重要 |
|---|---|---|
| 硬件 | CPU、RAM、SSD | 直接影响同步速度和可靠性 |
| 存储 | 全节点500 GB+,归档节点2 TB+ | 归档节点需要显著更多的磁盘空间 |
| 网络 | 稳定的互联网连接和公网IP | 对等发现和RPC访问所需 |
| 安全 | 防火墙、速率限制、身份验证 | 防止未经授权的访问和DoS攻击 |
RPC节点配置最佳实践
如果你正在为dApp或钱包运行RPC节点,正确的配置对于安全和性能至关重要。
- 谨慎使用
--rpc-cors all;在生产中限制为特定来源。 - 仅在开发中启用
--rpc-methods Unsafe;在生产中使用Safe或自定义方法。 - 设置
--ws-max-connections以限制WebSocket连接并防止资源耗尽。 - 考虑在多个RPC节点前使用负载均衡器以实现高可用性。
- 通过
--prometheus-external暴露的Prometheus指标监控节点健康。 - 定期更新polkadot二进制文件以保持与网络升级同步。
| 标准 | 检查内容 | 为什么重要 |
|---|---|---|
| 配置 | rpc-cors | 控制跨域请求,过于宽松存在安全风险 |
| 配置 | rpc-methods | 不安全的方法可能使节点暴露于攻击 |
| 配置 | ws-max-connections | 防止过多客户端导致资源耗尽 |
| 配置 | prometheus-external | 启用监控和告警 |
何时使用托管RPC提供商
运行自己的Polkadot节点让你完全控制,但会带来运营成本:硬件、带宽、存储、维护和监控。对于许多项目来说,像OnFinality这样的托管RPC提供商是更实用的选择。
- 无DevOps开销:托管提供商处理节点设置、升级和监控。
- 高可用性:负载均衡器后面的多个节点确保即使一个节点故障也能正常运行。
- 可扩展性:无需人工干预即可自动处理流量高峰。
- 全球分布:从多个区域提供端点,减少延迟。
- 对中小型项目成本效益高:共享端点通常是免费或低成本的。
- 为高吞吐量或合规需求的项目提供专用节点。
| 标准 | 检查内容 | 为什么重要 |
|---|---|---|
| 因素 | 自托管 | 需要DevOps技能和持续维护 |
| 因素 | 托管(OnFinality) | 零维护,内置冗余 |
| 成本 | 自托管 | 硬件 + 带宽 + 工程时间 |
| 成本 | 托管 | 可预测的订阅,提供免费层 |
在自托管和托管节点之间选择
决定取决于你团队的资源、可靠性要求和预算。以下是一些指导原则。
- 如果你需要完全控制节点配置、有专门的DevOps支持并且需要自定义修改,请选择自托管。
- 如果你希望专注于应用程序开发、需要保证正常运行时间或流量模式多变,请选择托管。
- 混合方法:为开发/测试运行自托管节点,为生产使用托管提供商。
- 评估总拥有成本:包括自托管的硬件、电力、带宽和工程时间。
- 考虑合规性:某些受监管的应用程序可能需要自托管基础设施以实现数据主权。
| 标准 | 检查内容 | 为什么重要 |
|---|---|---|
| 用例 | 开发/测试 | 自托管或免费托管层都可行 |
| 用例 | 生产级dApp | 推荐使用托管提供商以确保可靠性 |
| 用例 | 高频交易 | 专用托管节点以实现低延迟 |
| 用例 | 区块浏览器 | 需要归档节点,托管或自托管均可 |
OnFinality的Polkadot节点服务
OnFinality提供共享和专用的Polkadot RPC端点,以及为需要保证性能的项目提供专用节点基础设施。我们的服务包括自动升级、监控和24/7支持。
- 共享端点:免费层,有速率限制,适用于开发和低流量应用。
- 专用节点:预留资源,无速率限制,适用于生产级dApp和高吞吐量用例。
- 多区域部署:从多个全球位置提供端点,实现低延迟。
- 易于集成:简单的API密钥访问,兼容所有基于Polkadot SDK的链。
- 网络覆盖:支持Polkadot、Kusama、Westend以及主要平行链如Moonbeam和Astar。
| 标准 | 检查内容 | 为什么重要 |
|---|---|---|
| 服务 | 共享RPC | 免费,有速率限制,适合测试 |
| 服务 | 专用节点 | 保证性能,无速率限制 |
| 服务 | 归档节点 | 完整的历史数据访问 |
OnFinality's Polkadot Node Services
OnFinality provides both shared and dedicated Polkadot RPC endpoints, as well as dedicated node infrastructure for projects that need more predictable resource planning. Our service includes automatic upgrades, monitoring, and 24/7 support.
- Shared endpoints: free tier with rate limits, suitable for development and low-traffic applications.
- Dedicated nodes: reserved resources, capacity based on the selected plan and node type, ideal for production dApps and high-throughput use cases.
- Multi-region deployment: endpoints served from multiple global locations for low latency.
- Easy integration: simple API key access, compatible with all Polkadot SDK-based chains.
- Network coverage: supports Polkadot, Kusama, Westend, and major parachains like Moonbeam and Astar.
| 标准 | 检查内容 | 为什么重要 |
|---|---|---|
| Service | Shared RPC | Free, rate-limited, good for testing |
| Service | Dedicated Node | more predictable resource planning, capacity based on the selected plan and node type |
| Service | Archive Node | Full historical data access |
常见问题
运行Polkadot全节点需要什么硬件?
至少需要一台具有4个CPU核心、16 GB RAM和至少500 GB可用空间的快速SSD的机器。归档节点需要2 TB或更多。还需要一个具有公网IP的稳定互联网连接。
同步Polkadot节点需要多长时间?
初始同步可能需要24到72小时,具体取决于你的硬件、网络速度以及你同步的是全节点还是归档节点。使用快速SSD和良好的互联网连接有助于减少同步时间。
我可以使用托管RPC提供商而不是运行自己的节点吗?
是的,像OnFinality这样的托管RPC提供商提供始终最新、高可用且无需维护的Polkadot端点。这通常是生产级dApp的首选。
全节点和归档节点有什么区别?
全节点(修剪)仅存储最近的状态和有限数量的最终确定区块,而归档节点存储自创世以来的所有区块和状态。归档节点用于历史查询,但需要更多的存储空间。
如何保护我的Polkadot RPC节点?
使用防火墙限制对受信任IP的访问,为RPC端点启用身份验证,设置适当的CORS来源,并使用速率限制以防止滥用。考虑使用反向代理进行TLS终止。