跳至内容
0%

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

Alchemy team headshot

作者 Alchemy

发布于 2022年9月27日2 分钟阅读

类似于Ethereum 主网,Polygon 作为 Layer-2 解决方案,使用节点来确保所有参与网络的计算机行为正确。不过,Polygon 节点采用不同的架构——它将处理任务分类并委派给不同的节点层。

在本文中,我们将介绍 Polygon 节点的不同类型、如何创建和运行 Polygon 节点,以及节点提供商如何让整个过程更加简便。

什么是 Polygon?

Polygon 是一条侧链,一种 Ethereum 扩容方案,通过将资源密集型任务放到 Ethereum 主链之外执行来降低 gas 成本并提升可扩展性,同时保持与Ethereum 虚拟机(EVM)的兼容性。

Polygon 以前被称为 MATIC,于 2017 年更名,但保留了 MATIC 作为其代币符号。因此,Polygon 和 MATIC 实际上是同一个东西。Polygon 目前的测试网是 Polygon Amoy,开发者可以在无需使用真实资金的情况下测试 Polygon 应用。此前的 Mumbai 测试网已被弃用。

什么是 Polygon 节点?

Polygon 节点是下载了 Polygon 区块链副本并参与 Polygon 网络的计算机,但由于 Polygon 有多种节点类型——Bor 节点、Heimdall 节点、full 节点、Sentry 节点和验证者节点——每种节点都承担不同的职能。

Polygon 网络大致分为三层:

  1. Ethereum 主网——用于合约的权益证明(Proof-of-Stake)、检查点(checkpointing)和奖励
  2. Heimdall 节点层——用于验证
  3. Bor 节点层——用于生产区块

下面我们将更详细地介绍 Heimdall 和 Bor 节点,以及它们如何协同完成更复杂的功能。

什么是 bor 节点?

Bor 节点是最基础的 Polygon 节点类型,负责将交易聚合成区块,随后由 Heimdall 节点进行解析和使用。 这样一来,Bor 节点承担了汇总方案(roll-up)的一半功能,即把数据聚合成更易于处理的形式。区块生产者是从一组验证者节点中随机选出的。

什么是 heimdall 节点?

Heimdall 节点验证自上一个检查点以来的所有 Bor 区块,然后将 Bor 节点生成的所有区块聚合成一棵 Merkle 树。 Heimdall 节点还会定期将 Merkle 根的哈希值发送到主链。检查点对 Polygon 系统来说至关重要,因为它们管理着特定区块跨度(span)内区块生产者的随机性以及验证者集合的选择。

什么是 full 节点?

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

pruned full 节点会丢弃所有失败交易的状态,并且只回溯一定数量的区块,以保持轻量化。Archive 节点是同时保存链上所有历史状态的 full 节点。本质上,Archive 节点包含从链的起源到最新交易的完整状态。

Polygon archive 节点可能遇到的一个问题是 archive 节点限制,因为整条链的状态数据已接近 16TB。因此,建议增加节点存储空间、删除并重新同步节点以清除冗余数据,或使用 Polygon 节点提供商。

什么是 sentry 节点?

sentry 节点是同时运行 Heimdall 和 Bor 节点的 full 节点,用于从其他节点下载数据并将数据传输给指定的验证者节点,同时它也能访问整个 Polygon 网络。sentry 节点还将验证者与公网隔离开,可以保护验证者节点免受分布式拒绝服务(DDOS)攻击等攻击手段的影响,这类攻击可能会降低甚至中断交易吞吐量。

什么是 Polygon 验证者?

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

什么是 Polygon 节点提供商?

Polygon 节点提供商是为开发者提供 Polygon 节点 API 端点的公司,使应用能够向 Polygon 区块链发送请求并接收返回数据,而无需自行运行 Polygon 节点。

虽然拥有自己的 Polygon full 节点有一些好处,比如可以定制软件客户端,但相比于个人运行的 Polygon 节点,节点提供商在稳定性、速度和数据准确性方面提供了显著的优势。节点维护需要耗费宝贵的工程时间,而节点提供商可以解决这一常见问题。

对应用而言,选择最佳的 Polygon 节点提供商是构建可扩展、应对用户量需求时的一项重要决策。从基础设施角度看,最关键的因素是可扩展性、数据准确性、节点类型(例如 full、archive 等),以及所支持的区块链(如果你计划构建多链应用)。

从客户角度来看,节点提供商是否具备合理的定价、专业的开发者关系团队、响应迅速的支持人员,以及更好的开发者工具(如经过优化的 API 和 SDK)来切实满足 web3 开发者的需求,同样十分重要。

如何在 Alchemy 上连接 Polygon 节点

Polygon 官方文档提供了如何使用 Alchemy 连接 Polygon full 节点的完整说明,但这里我们提供一个简化版本,帮助你快速上手。

1. 注册 Alchemy

Alchemy 为其服务提供免费套餐,你可以快速在 Alchemy 开发者平台上创建免费的 Polygon 账户,以使用 Alchemy Polygon API。

登录后的 Alchemy 控制台
登录后的 Alchemy 控制台

‍

  1. 创建你的 Polygon 应用并生成 API 密钥

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

要生成新的 API 密钥,请前往 Alchemy 控制台导航栏中的 "Apps" 选项卡,然后选择 "Create App" 子选项卡。

填写完字段并选择测试网后,点击 "Create app"。

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

Alchemy 控制台 Apps 表格显示新创建的 Polygon app
新 app 出现在 “Apps” 表格中

要从 Alchemy 获取你的专属 Polygon RPC URL,请在 Alchemy 控制台中进入你的应用,然后点击右上角的 "View Key"。

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

注意: 可以使用 Alchemy Chain Connect 来查看来自多个基础设施提供商的公共 Polygon RCP URL。

用于为节点设置 Polygon RPC URL 的 “View Key” 选项
用于为节点设置 Polygon RPC URL 的 “View Key” 选项

‍

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

如果你使用 JavaScript 和 Node.js,可以搭配 Alchemy 的 Polygon RPC 端点使用 ethers.js 等标准库。

  1. 使用以下命令创建项目:npm init -y
  2. 在终端中运行以下命令安装 ethers.js:npm install ethers。
  3. 用你的端点配置 ethers.js:import { ethers } from "ethers"; const provider = new ethers.JsonRpcProvider("https://polygon-mainnet.g.alchemy.com/v2/<API_KEY>");

有关使用 Alchemy API 的更多详情,请参考 Alchemy 的文档。

为 Polygon 节点项目导入 Alchemy SDK 的代码片段
为 Polygon 节点项目导入 SDK

使用 Polygon 节点提供商既简单又具有可扩展性,让各个技能水平的开发者都能开始在 web3 中构建应用。 ‍

Polygon 节点要求

要运行 Polygon full 节点,需要满足一些技术规格和软件前提条件。目前的最低要求是 16-32 GB 内存和 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 节点。步骤概要如下:

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

开始使用 Alchemy 在 Polygon 上构建

Polygon 是一条快速发展的 Ethereum 侧链,为开发者提供了一个快速、经济且可扩展的区块链平台,用于构建与 EVM 兼容的应用程序。凭借其规模、经济性和较低的碳足迹,Polygon 成为了一些最大的 web2 公司的选择,例如星巴克的新会员奖励计划。

要开始在 Polygon 上构建,请立即通过 Alchemy 创建一个免费的 Polygon 开发者账户!

Background gradient

构建区块链应用

Alchemy 将最强大的 Web3 开发者产品和工具与资源、社区及专业支持结合在一起。