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-essential、clang、cmake 等。

安装并运行

# 克隆 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_getBlock、system_account 和 state_getStorage,以及 Substrate 特定的方法。请参阅 Polkadot RPC 文档 获取完整列表。

RPC 知识库

相关 RPC 内容

测试网 RPCEthereum

Sepolia RPC 端点:链设置、水龙头和开发者指南

Sepolia 是以太坊智能合约开发的主要测试网。本页面提供官方链设置、RPC 端点、水龙头链接以及常见用法模式,帮助您快速测试 dApp。无论您需要公共端点还是专用 RPC 提供商,我们都会介绍需要注意的事项。...

网络 RPCStellar

什么是 Stellar RPC,如何使用它?

# 什么是 Stellar RPC,如何使用它? Stellar RPC(远程过程调用)是与 Stellar 区块链网络交互的标准接口。它允许开发者以编程方式查询账本数据、提交交易和管理账户。Stellar 的 RPC API 与兼容以太坊的 JSON-RPC 不同;它使用基于 RESTful 原则...

网络 RPCMoonbeam

什么是 Moonbeam RPC 端点?如何连接?

Moonbeam RPC 端点是一个 URL,允许兼容以太坊的钱包和 dApp 向 Polkadot 上的 Moonbeam 平行链发送 JSON-RPC 请求。它使用标准的以太坊方法以及 Moonbeam 特有的扩展,链 ID 为 1284,原生代币为 GLMR。 开发者使用这些端点进行读取、交易...

网络 RPCSolana

如何挖矿 Solana:为什么不能挖,以及应该做什么

Solana 不使用工作量证明挖矿,因此无法用 GPU 或 ASIC 挖 SOL。该网络运行在权益证明加历史证明模型上,验证者质押 SOL、生产区块并赚取奖励和费用。如果你的目标是赚取 SOL,现实路径是质押、运行验证者或在 Solana 上构建。如果你的目标是在 Solana 上构建或运营,实际工...

网络 RPCSolana

我应该为 Solana 使用什么 RPC URL?

Solana RPC URL 是您的应用发送 JSON-RPC 调用以读取账户、提交交易和订阅链上事件的 HTTP 或 WebSocket 端点。OnFinality 在 https://solana.api.onfinality.io/public 公开了一个 Solana 端点,并在 wss:/...

RPC 提供商选择Efinity

如何为专用节点访问选择 Solana RPC 提供商

专用 Solana RPC 节点让您可以独占访问单个节点实例,避免共享端点常见的噪声邻居和速率限制争用。本文解释了专用节点访问对 Solana 工作负载的意义,以及如何根据吞吐量、可靠性和支持来评估提供商。 我们比较了公共、共享和专用 Solana RPC 选项,然后介绍了关键标准(如请求限制、We...

永远不用担心基础设施

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

开始