跳至内容
0%

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

Alchemy team headshot

作者 Alchemy

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

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

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

什么是Polygon?

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

Polygon曾用名MATIC,于2017年更名,但保留了MATIC作为其代币符号。因此,Polygon和MATIC实际上是同一个东西。Polygon的主要测试网络叫做Mumbai。Mumbai是一个测试网,开发者可以在其中使用测试MATIC代币来测试Polygon应用程序,无需支付任何费用。

什么是Polygon节点?

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

Polygon网络大致分为三层:

  1. Ethereum主网——用于合约的权益证明(Proof-of-Stake)、检查点(checkpointing)和奖励发放
  2. Heimdall节点层——用于验证
  3. 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节点存储上限,因为整条链的状态数据已接近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节点服务商是为开发者提供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主网或Mumbai测试网的请求。

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

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

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

Alchemy 控制台中显示新创建的 Polygon 应用的 Apps 表格
新应用出现在“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 SDK、创建一个Alchemy对象,几行代码即可开始发送Polygon节点请求。

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

有关设置Alchemy SDK的更多细节,请参阅SDK快速入门指南

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

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

Polygon节点要求

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

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

使用Alchemy在Polygon上开始构建

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

要开始在Polygon上构建应用,现在就通过Alchemy创建一个免费的Polygon开发者账户吧!

Background gradient

构建区块链应用

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