Logo
新用户订阅 RPC,首月享 6.5 折优惠查看优惠
RPC Assistant

Polkadot 节点:开发者运行与连接网络指南

摘要

本指南涵盖开发者需要了解的关于 Polkadot 节点的所有内容:节点类型、如何运行自己的节点、如何通过 RPC 端点连接,以及如何选择自托管节点与提供商托管节点。无论您是在构建 dApp、钱包还是基础设施工具,您都将学习到可靠地与 Polkadot 网络交互的实用步骤。

Polkadot 节点决策清单

在决定如何连接到 Polkadot 之前,请考虑以下因素:

  • 您是否需要历史状态访问? 如果是,请使用归档节点或支持归档的 RPC 提供商。
  • 您的请求量是多少? 高吞吐量的 dApp 可能受益于专用节点或具有可扩展速率限制的提供商。
  • 您是否需要 WebSocket 支持? 实时应用程序需要 WebSocket 端点。
  • 您的预算是多少? 自托管涉及服务器成本和维护;提供商计划提供可预测的定价。
  • 正常运行时间有多重要? 提供商通常有 SLA;自托管节点需要您自己的监控。
  • 您是否需要多区域冗余? 提供商在全球分布节点以实现低延迟。

什么是 Polkadot 节点?

Polkadot 节点是一种连接到 Polkadot 中继链或平行链的软件客户端。它维护区块链状态的副本,验证交易,并通过 JSON-RPC 或 WebSocket 向应用程序提供数据。节点对于需要直接、未经过滤的网络访问的开发者至关重要。

节点类型

节点类型存储的数据使用场景
全节点最新区块(修剪历史)常规交互、余额检查、交易提交
归档节点从创世区块开始的完整历史历史查询、分析、区块浏览器
验证人节点全节点 + 区块生产质押、共识参与
收集人节点平行链全节点平行链区块生产
轻节点仅区块头移动钱包、低资源环境

如何运行自己的 Polkadot 节点

运行节点可以让您完全控制您的基础设施。以下是快速设置指南。

前提条件

  • 一台至少具有 4 个 CPU 核心、8 GB RAM 和 200 GB SSD(全节点)或 1 TB+(归档节点)的机器。
  • 已安装 Rust(请遵循 rustup.rs)。
  • 构建依赖项:build-essentialclangcmake 等。

安装并运行

# 克隆 Polkadot 仓库
git clone https://github.com/paritytech/polkadot-sdk.git
cd polkadot-sdk

# 构建二进制文件(可能需要一些时间)
cargo build --release --features fast-runtime

# 运行全节点
./target/release/polkadot --chain polkadot --pruning archive --name my-node

对于归档节点,使用 --pruning archive。对于验证人节点,添加 --validator 并配置会话密钥。

Docker 选项

docker run -d --name polkadot-node \
  -v /data:/data \
  -p 30333:30333 \
  -p 9933:9933 \
  -p 9944:9944 \
  parity/polkadot:latest \
  --chain polkadot \
  --pruning archive \
  --name my-docker-node

RPC 配置

默认情况下,节点在 127.0.0.1:9933(HTTP)和 127.0.0.1:9944(WebSocket)上暴露 RPC。对于外部访问,使用 --rpc-external--ws-external,但请使用防火墙或 TLS 保护它们。

通过 RPC 连接到 Polkadot 节点

一旦您的节点运行起来,您可以使用 JSON-RPC 与之交互。

示例:获取最新区块

curl -H "Content-Type: application/json" \
  -d '{"id":1, "jsonrpc":"2.0", "method": "chain_getBlock"}' \
  http://localhost:9933

示例:获取账户余额

curl -H "Content-Type: application/json" \
  -d '{"id":1, "jsonrpc":"2.0", "method": "system_account", "params": ["5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY"]}' \
  http://localhost:9933

使用 WebSocket(JavaScript)

const { ApiPromise, WsProvider } = require('@polkadot/api');

async function main() {
  const wsProvider = new WsProvider('ws://localhost:9944');
  const api = await ApiPromise.create({ provider: wsProvider });

  const chain = await api.rpc.system.chain();
  console.log(`Connected to ${chain}`);

  const lastHeader = await api.rpc.chain.getHeader();
  console.log(`Last block number: ${lastHeader.number}`);
}

main().catch(console.error);

自托管与 RPC 提供商:您应该选择哪个?

标准检查内容重要性
成本自托管:服务器 + 带宽。提供商:按需付费或订阅。自托管在高流量下可能更便宜,但需要运维开销。
维护自托管:您负责更新、备份、监控。提供商:托管。减少工程时间和停机风险。
可扩展性自托管:垂直扩展有限。提供商:内置水平扩展。突发流量高峰可能压垮单个节点。
延迟自托管:取决于服务器位置。提供商:多区域。低延迟改善用户体验。
可靠性自托管:单点故障。提供商:冗余集群。生产应用更高的正常运行时间。
历史数据自托管:需要归档节点。提供商:通常包含归档访问。分析和历史查询所需。

常见陷阱与故障排除

  • 节点不同步:检查网络连接、磁盘空间,以及您是否在正确的链上(Polkadot 与 Kusama)。
  • RPC 连接被拒绝:确保节点正在运行且 RPC 端口已打开。开发时使用 --rpc-cors all
  • WebSocket 断开:某些提供商限制连接持续时间。使用保活 ping。
  • 速率限制:公共端点有限制。对于生产环境,使用专用节点或具有更高限制的提供商。
  • 内存不足:归档节点需要大量 RAM。考虑使用提供商进行归档查询。

使用 Polkadot 的 RPC 提供商

如果您更倾向于不运行自己的节点,RPC 提供商提供具有高可用性的托管端点。OnFinality 提供具有归档、trace 和 WebSocket 支持的 Polkadot RPC 端点。您可以免费获取 API 密钥并随需扩展。

要连接到 OnFinality 的 Polkadot 端点:

curl -H "Content-Type: application/json" \
  -d '{"id":1, "jsonrpc":"2.0", "method": "chain_getBlock"}' \
  https://polkadot.api.onfinality.io/public

对于生产环境,注册 API 密钥以获得更高的速率限制和专用节点选项。详情请参见 RPC 定价支持的网络

关键要点

  • Polkadot 节点有几种类型:全节点、归档节点、验证人节点、收集人节点和轻节点。
  • 运行自己的节点可以完全控制,但需要基础设施管理。
  • RPC 提供商为生产 dApp 提供便利性、可扩展性和可靠性。
  • 对于生产环境,始终使用经过身份验证的端点以避免速率限制。
  • 在选择设置之前,评估您对历史数据、吞吐量和延迟的需求。

常见问题

全节点和归档节点有什么区别?

全节点只存储最近的区块(修剪历史),而归档节点存储从创世区块开始的所有区块。归档节点用于历史查询,但需要更多磁盘空间。

我可以在笔记本电脑上运行 Polkadot 节点吗?

可以,用于开发或测试。对于生产环境,请使用具有足够资源的服务器。

同步 Polkadot 节点需要多长时间?

同步全节点可能需要几个小时;归档节点可能需要几天。使用像 OnFinality 这样的提供商可以消除同步时间。

在 Polkadot 上构建是否需要运行节点?

不需要,您可以使用 RPC 提供商与网络交互。运行节点是可选的,但可以给您更多控制。

Polkadot 上有哪些 RPC 方法可用?

Polkadot 支持标准的 JSON-RPC 方法,如 chain_getBlocksystem_accountstate_getStorage,以及 Substrate 特定的方法。请参阅 Polkadot RPC 文档 获取完整列表。

RPC 知识库

相关 RPC 内容

网络 RPCSORA

什么是 SORA API?如何在 dApp 中使用它?

SORA API 指的是允许应用程序在 SORA 网络上读写数据的 RPC 端点和 JSON-RPC 方法。本文解释了什么是 SORA API、如何连接到它,以及如何为生产工作负载选择公共端点或专用端点。...

网络 RPCOptimism

选择 Optimism RPC 提供商时应该关注什么?

# 选择 Optimism RPC 提供商时应该关注什么? Optimism RPC 提供商之所以重要,是因为 Web3 应用依赖稳定的端点访问来进行读取、交易、仪表盘和后端工作流。合适的设置应匹配你的工作负载,支持你所需的网络和测试网,让限制透明可见,并在共享 RPC 不再够用时提供扩展路径。 对...

测试网 RPCEthereum

Sepolia Beacon RPC:端点、方法及使用方法

Sepolia Beacon RPC 暴露了 Sepolia 测试网的共识层,让您可以查询验证者、区块和最终性数据。本页介绍关键端点、常用方法以及如何为您的测试网开发选择可靠的提供商。...

RPC 提供商选择zkSync

如何为生产应用选择 zkSync RPC 提供商

选择 zkSync RPC 提供商意味着在可靠性、吞吐量和 zkSync 特定功能之间取得平衡。本指南介绍了在选择提供商时应注意的事项,比较了公共、共享和专用选项,并帮助您决定哪种适合您的工作负载。我们涵盖了链设置、关键 RPC 方法以及在使用 ZKsync 构建时需避免的常见陷阱。...

RPC 提供商选择

如何为NFT项目选择RPC提供商?

NFT应用——铸造平台、市场及游戏工具——依赖快速、可靠的RPC端点来提交交易和获取元数据。选择不当的提供商可能导致铸造失败、加载缓慢及用户体验差。本指南涵盖评估用于NFT工作负载的RPC提供商的关键标准,包括延迟、速率限制、归档数据支持和故障转移能力。我们还以Solana网络为例,演示实际设置步骤...

网络 RPCArbitrum

Arbitrum 端点:链设置、RPC URL 和调试

本页介绍什么是 Arbitrum 端点、如何连接到 Arbitrum One 和 Arbitrum Sepolia,以及如何在公共 RPC、专用节点和 API 服务之间进行选择。它涵盖了链设置、请求示例和常见故障模式,以便您可以自信地配置您的 dApp 或后端。...

永远不用担心基础设施

OnFinality 消除了 DevOps 的繁重工作,让您能够更聪明、更快地构建。

开始