什么是Polkadot节点,如何运行一个?
关键要点
- 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 | 免费,有速率限制,适合测试 |
| 服务 | 专用节点 | 保证性能,无速率限制 |
| 服务 | 归档节点 | 完整的历史数据访问 |
常见问题
运行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终止。