---
title: "什么是 Polygon 节点：你需要了解的一切"
description: "了解 Polygon 节点的主要类型，以及如何使用 Polygon 节点提供商开始构建"
---

# 什么是 Polygon 节点：你需要了解的一切

与[Ethereum主网](https://www.alchemy.com/rpc/ethereum)类似，[Polygon是一种Layer-2解决方案](https://www.alchemy.com/layer2/polygon)，使用节点来确保网络中所有参与的计算机行为正确。不过，Polygon节点的架构有所不同——它将处理任务划分为不同的子部分，并分派给不同的节点层。

在本文中，我们将介绍Polygon节点的不同类型、如何创建和运行Polygon节点，以及节点服务商如何简化这一整个过程。

## 什么是Polygon？

Polygon是一条侧链，[**一种Ethereum扩容方案**](https://www.alchemy.com/overviews/sidechains-vs-layer2s)，它在保持与[Ethereum虚拟机](https://www.alchemy.com/overviews/what-is-the-ethereum-virtual-machine-evm)（EVM）兼容的同时，通过在Ethereum主链之外执行资源密集型任务来降低gas成本、提高可扩展性。

Polygon曾用名MATIC，于2017年更名，但保留了MATIC作为其代币符号。因此，Polygon和MATIC实际上是同一个东西。Polygon的主要测试网络叫做Mumbai。Mumbai是一个测试网，开发者可以在其中[使用测试MATIC代币来测试Polygon应用程序](https://www.alchemy.com/overviews/mumbai-testnet)，无需支付任何费用。

## 什么是Polygon节点？

**Polygon节点是下载了Polygon区块链副本并参与Polygon网络的计算机，但由于Polygon有多种节点类型——Bor节点、Heimdall节点、full节点、Sentry节点和validator节点——每种节点各自承担不同的作用。**

Polygon网络大致分为三层：

1. **Ethereum主网**——用于合约的权益证明（Proof-of-Stake）、检查点（checkpointing）和奖励发放
1. **Heimdall节点层**——用于验证
1. **Bor节点层**——用于生成区块

下面我们将更详细地介绍Heimdall节点和Bor节点，以及它们如何协同工作以实现更复杂的功能。

### 什么是bor节点？

**Bor节点是最基础的Polygon节点类型，负责将交易聚合成区块，随后这些区块可被Heimdall节点解析和使用。**从这个意义上说，Bor节点相当于Rollup方案的一半，将数据聚合成可被更高效处理的形式。区块生产者是从一组validator节点中随机选出的。

### 什么是heimdall节点？

**Heimdall节点验证自上一个检查点以来的所有Bor区块，然后将Bor节点生成的所有区块聚合到一棵Merkle树中。**Heimdall节点还会定期将Merkle根的哈希值发送到主链上。检查点（Checkpoint）对Polygon系统而言至关重要，因为它们管理着给定跨度或区块集合中区块生产者的随机性以及validator集合的选择。

### 什么是full节点？

full节点是完全验证交易和区块的节点，分为两种类型：1）pruned full节点，2）archival full节点，也称为archive节点。

pruned full节点会丢弃所有失败交易的状态，且只回溯设定数量的区块，以保持轻量化。**Archive节点**是同时保存链上所有历史状态的full节点。本质上，Archive节点包含了从链诞生之初到最新交易的全部精确状态。

Polygon archive节点可能遇到的一个问题是[archive节点存储上限](https://www.alchemy.com/blog/polygon-archive-node-limit)，因为整条链的状态数据已接近16TB。因此，建议增加节点存储空间、删除并重新同步节点以清除无用数据，或使用Polygon节点服务商。

### 什么是sentry节点？

sentry节点是一种full节点，同时运行Heimdall和Bor节点，从其他节点下载数据并将数据传输给指定的validator节点，同时也能访问整个Polygon网络。sentry节点还能将validator与公网隔离，保护validator节点免受分布式拒绝服务（DDOS）攻击等攻击向量的影响，这类攻击可能会拖慢或中断交易吞吐量。

### 什么是Polygon validator？

**Polygon validator是指在一台机器上运行validator节点、在另一台机器上运行sentry节点，并质押了MATIC代币的人。**Polygon validator会被随机选中，在Heimdall层验证交易。validator节点的架构与sentry节点类似，区别在于它是数据传入和传出sentry节点的方式。

## 什么是Polygon节点服务商？

[**Polygon节点服务商**](https://www.alchemy.com/overviews/blockchain-node-providers)是为开发者提供Polygon节点API端点的公司，使[应用程序](https://www.alchemy.com/dapps/top/defi-dapps)能够向Polygon区块链发送请求并接收返回数据，而无需运行自己的Polygon节点。

虽然拥有自己的Polygon full节点有一些好处，比如可以自定义软件客户端，但相较于单独运行的Polygon节点，节点服务商在稳定性、速度和数据准确性方面提供了显著的[优势](https://www.alchemy.com/overviews/running-your-own-node)。担心节点维护会占用宝贵的工程时间，而节点服务商可以解决这一常见问题。

对应用程序而言，[选择最佳的Polygon节点服务商](https://www.alchemy.com/overviews/how-to-choose-a-blockchain-node-provider)是构建可扩展、应对大规模用户需求时的重要决策。从基础设施角度看，最关键的因素是可扩展性、数据准确性、节点类型（例如full、archive等），以及支持的区块链（如果你计划构建多链应用）。

从用户角度来看，节点服务商是否有合理的定价、乐于助人的开发者关系团队、响应迅速的支持人员，以及更好的开发者工具（如经过优化的API和SDK）来有效满足web3开发者的需求，也同样重要。

## 如何在Alchemy上连接到Polygon节点

Polygon官方文档中提供了[如何使用Alchemy连接Polygon full节点](https://wiki.polygon.technology/docs/develop/alchemy/)的完整说明，这里给出一个简化版本，帮助你快速上手。

### 1. 注册Alchemy

Alchemy为其服务提供免费套餐，你可以快速[在Alchemy开发者平台上创建一个免费的Polygon账户](https://www.alchemy.com/layer2/polygon?a=c2ee97cb63)，从而使用Alchemy Polygon API。

<ImageBlock
  src="https://media.alchemy.com/1704120746-alchemy-sign-in-dashboard.jpeg"
  alt="登录后的 Alchemy 控制台"
  width={1119}
  height={532}
  caption="登录后的 Alchemy 控制台"
/>

### ‍

2. 创建你的Polygon应用程序并生成API密钥

成功创建Alchemy账户后，你需要通过创建一个应用程序来生成API密钥。此密钥用于验证发送到Polygon主网或Mumbai测试网的请求。

要生成新的API密钥，请在Alchemy控制台导航栏中打开“Apps”标签，然后选择“Create App”子标签。

填写相关字段并选择测试网后，点击“Create app”。

你的新应用程序应会出现在下方的表格中。

<ImageBlock
  src="https://media.alchemy.com/1704120772-alchemy-apps-table.jpeg"
  alt="Alchemy 控制台中显示新创建的 Polygon 应用的 Apps 表格"
  width={1123}
  height={533}
  caption="新应用出现在“Apps”表格中"
/>

要从Alchemy获取你专属的Polygon RPC URL，请在Alchemy控制台中打开你的应用程序，并点击右上角的“View Key”。

然后复制你的Alchemy HTTPS API密钥，并将其粘贴到你的应用程序中。

**注意：**可以使用Alchemy Chain Connect查看来自多个基础设施服务商的[公共Polygon RCP URL](https://www.alchemy.com/chain-connect/chain/polygon-pos)。

<ImageBlock
  src="https://media.alchemy.com/1704120810-alchemy-view-key.jpeg"
  alt="用于设置节点 Polygon RPC URL 的“View Key”选项"
  width={1113}
  height={269}
  caption="用于设置节点 Polygon RPC URL 的“View Key”选项"
/>

‍

### 第3步：设置Polygon API并开始构建

如果你使用JavaScript和Node.js，只需安装Alchemy SDK、创建一个Alchemy对象，几行代码即可开始发送Polygon节点请求。

1. 使用以下命令创建项目：npm init -y
1. 在终端中运行以下命令安装SDK：npm install alchemy-sdk
1. 安装SDK后，即可按下面的示例在Polygon项目中导入并使用它

有关设置Alchemy SDK的更多细节，请参阅[SDK快速入门指南](https://www.alchemy.com/docs/alchemy-quickstart-guide)。

<ImageBlock
  src="https://media.alchemy.com/1704120924-import-sdk-polygon-node.jpeg"
  alt="为 Polygon 节点项目导入 Alchemy SDK 的代码片段"
  width={924}
  height={320}
  caption="为 Polygon 节点项目导入 SDK"
/>

使用Polygon节点服务商既简单又具有可扩展性，让各个水平的开发者都能开始构建web3应用。
‍

## Polygon节点要求

要运行Polygon full节点，需要满足一些[技术规范](https://docs.polygon.technology/docs/category/nodes/)和软件前提条件。目前的最低要求是16-32GB内存和4-8核CPU，以及至少1.2TB的可扩展存储空间。由于随着链上历史数据的增长，节点需要保存的数据也会不断增加，因此最低配置要求也会相应提高。

此外，虽然Polygon表示任何操作系统都可以正常运行，但他们强调，像CentOS这样的Linux服务器发行版在安全性和稳定性方面优于MacOS和Windows。

## 如何搭建Polygon full节点

如果你不想使用Polygon节点服务商，而是想自行配置和维护Polygon节点，以下是所需步骤的概要说明。

### 1. 搭建运行节点的机器

由于推荐使用Linux，你需要一台运行Linux服务器的机器来承载你的节点。你也可以通过命令行使用安全外壳协议（SSH）远程连接Linux服务器。请查看硬件要求，确保你的机器有足够大的最低存储空间和计算能力。

### 2. 下载前置依赖

在软件要求方面，需要在装有Python 3.x的机器上下载Ansible，可通过以下命令下载：pip3 install ansible

此外，请确保你的机器上没有安装Go，也没有之前的Heimdall和Bor配置，因为这些会与全新的安装过程产生冲突。

### 3. 配置并运行你的节点

以下说明均来自[Polygon官方文档中关于配置和运行full节点的部分](https://docs.polygon.technology/docs/develop/network-details/full-node-deployment/)。步骤概括如下：

1. 确保能够访问远程机器/虚拟机，克隆指定的代码仓库，并通过设置IP来验证其功能是否正常
1. 配置full节点，进入远程/虚拟机，并配置Heimdall和Bor节点
1. 运行full节点并检查日志，确认节点是否已正确同步

## 使用Alchemy在Polygon上开始构建

Polygon是一条快速发展的Ethereum侧链，为开发者提供了一个快速、经济且可扩展的区块链，用于构建EVM兼容的应用程序。由于其规模、经济性和低碳排放，Polygon成为了包括星巴克新会员奖励计划在内的部分最大web2公司的选择。

要开始在Polygon上构建应用，现在就通过Alchemy[创建一个免费的Polygon开发者账户](https://www.alchemy.com/layer2/polygon?a=c2ee97cb63)吧！
