地址: 海口市六霉街488号 邮箱: unrecognizable@yahoo.com 工作时间:上午9点-下午8点

企业文化

  • 首页
  • Our News
  • 在 AWS 上运行无服务器 Arbitrum 全节点 数据库博客

在 AWS 上运行无服务器 Arbitrum 全节点 数据库博客

2026-01-27 13:34:28

在 AWS 上运行无服务器 Arbitrum 全节点

由 Guillaume Goutaudier 撰写于 2024 年 3 月 25 日,发布在 AWS Fargate、中级、技术如何。

永久链接 评论 分享

在 AWS 上运行无服务器 Arbitrum 全节点 数据库博客

关键要点

在过去的两年中,第二层技术得到了广泛关注,正在解决以太坊的 扩展 限制。目前,Arbitrum 代表了大约一半的第二层解决方案市场价值,尽管 AWS 目前尚未支持 Arbitrum,但在 AWS 上运行无服务器的 Arbitrum 节点实际上是一个相对简单的任务。

本篇文章将向您介绍如何在 AWS 上以无服务器的方式部署 Arbitrum 全节点,并展示如何通过连接 MetaMask 与 Arbitrum 网络交互。您只需一个有效的 AWS 账户即可开始。

解决方案概述

在运行 Arbitrum 全节点时,需要考虑诸多因素,包括交易验证、安全性和降低信任要求等。您可以参考 Arbitrum 文档中的 如何运行全节点Nitro 部分,了解运行 Arbitrum 全节点的前提条件和指示。本篇文章我们提出了一种在 AWS 上实现这些需求的架构,优先选用无服务器服务,如 AWS Fargate。基于 Amazon EC2 实例的替代方案同样有效。

以下图示展示了解决方案的组成部分:

需考虑以下几个关键元素:

关键元素描述Fargate 任务在 Fargate 上运行的任务可享受与 Amazon Elastic Block Store (Amazon EBS) 卷的原生集成。参见 Amazon EBS 卷性能 了解性能基准。架构测试提议的架构已在 Sepolia 测试网进行测试,旨在用于开发或测试环境。在生产部署中,应将 Amazon Elastic Container Service 的 Fargate 集群替换为使用 Amazon EC2 启动类型的 ECS 集群,以提供更高的存储性能。版本更新目前撰写时,最新稳定版的 Arbitrum Nitro 节点是 231,您可能需要检查是否有更新版本。可扩展性您可以根据特定需求扩展此架构: 为提高韧性,可以考虑在多个可用区运行节点。 若需从其他 Web3 应用后端服务连接至 Arbitrum 节点,您可以使用 Amazon ECS 服务连接。 为避免使用可能变动的服务任务私有 IP 进行连接,您可以根据指导扩展此架构 私下访问 Amazon ECS 上的容器应用。 使用 VPC 流日志 监测 IP 流量。

接下来的部分将详细介绍实施解决方案的步骤。我们建议您按下述逐步说明操作,以全面了解部署的不同组件。如果您希望自动化部署,可以使用以下 AWS CloudFormation 模板,可以在大约 15 分钟内完成部署。完成后,请跳至本篇文章的 测试节点 部分,以检查您的节点是否成功与网络同步。

创建 VPC

请完成以下步骤以 创建 VPC:

在 Amazon VPC 控制台,选择 创建 VPC。对于 要创建的资源 ,选择 VPC 及更多。在 名称标签自动生成 下,输入 arbitrum。对于 IPv4 CIDR 块,输入 10000/23。对于 IPv6 CIDR 块,选择 无 IPv6 CIDR 块。对于 可用区数量,选择 1。对于 公有子网数量,选择 1。对于 私有子网数量,选择 1。对于 公有子网 CIDR 块,输入 10000/24。对于 私有子网 CIDR 块,输入 10010/24。对于 NAT 网关,选择 每个可用区 1 个。对于 VPC 端点,选择 无。对于 DNS 选项,选择 启用 DNS 主机名 和 启用 DNS 解析。选择 创建 VPC。

创建 IAM 角色

确认存在 AWS 身份和访问管理 (IAM) 角色 ecsTaskExecutionRole。更多信息,请参考 Amazon ECS 任务执行 IAM 角色。

使用 AmazonECSInfrastructureRolePolicyForVolumes 管理策略创建 ecsInfrastructureRole IAM 角色。有关详细说明,请参见 Amazon ECS 基础设施 IAM 角色。

创建安全组

创建 /ecs/arbitrumnode Amazon CloudWatch 日志组。详细信息请参考 与日志组和日志流的交互。

创建安全组

在此步骤中,我们需要创建两个安全组。完整说明请参考 创建安全组。

创建 VPN 安全组

首先,为 VPN 创建一个安全组:

在 Amazon EC2 控制台,选择导航面板中的 安全组。选择 创建安全组。对于 名称,输入 arbitrumvpnsg。对于 描述,输入 Arbitrum VPN 安全组。对于 VPC,选择 arbitrumvpc。选择 创建安全组。

创建 Arbitrum 节点安全组

接下来,为 Arbitrum 节点创建一个安全组:

在 Amazon EC2 控制台,选择导航面板中的 安全组。选择 创建安全组。对于 名称,输入 arbitrumnodesg。对于 描述,输入 Arbitrum 节点安全组。对于 VPC,选择 arbitrumvpc。创建以下入站规则:对于 类型,选择 自定义 TCP。对于 端口范围,输入 8547。对于 源,选择 自定义,然后选择 arbitrumvpnsg 安全组。对于 描述,输入 Arbitrum RPC。选择 创建安全组。

创建 ECS 集群

请完成以下步骤以 创建 ECS 集群:

在 Amazon ECS 控制台,选择导航面板中的 集群。选择 创建集群。对于 集群名称,输入 arbitrumcluster。对于 基础设施,选择 AWS Fargate (无服务器)。选择 创建。

创建任务定义

完成以下步骤以 创建任务定义:

在 Amazon ECS 控制台,选择导航面板中的 任务定义。选择 创建新任务定义,然后 使用 JSON 创建新任务定义。

将编辑窗格中的内容替换为以下代码:

json{ family arbitrumnode containerDefinitions [ { name arbitrumcontainer image offchainlabs/nitronodev23126fad6f cpu 4096 memory 16384 memoryReservation 16384 portMappings [ { name arbitrum8547tcp containerPort 8547 hostPort 8547 protocol tcp appProtocol http } ] essential true command [ parentchainblobclientbeaconurl=ltSEPOLIABEACONCHAINAPIENDPOINTgt parentchainconnectionurl=ltSEPOLIAENDPOINTgt initurl=https//snapshotarbitrumfoundation/sepolia/nitroprunedtar chainid=421614 httpapi=netweb3etharb httpcorsdomain= httpaddr=0000 httpvhosts= initdownloadpath=/root/arbitrum/ ] mountPoints [ { sourceVolume arbitrumvolume containerPath /root/arbitrum readOnly false } ] user root logConfiguration { logDriver awslogs options { awslogscreategroup true awslogsgroup /ecs/arbitrumnode awslogsregion ltAWSREGIONgt awslogsstreamprefix ecs } } } ] executionRoleArn ltecsTaskExecutionRoleARNgt networkMode awsvpc volumes [ { name arbitrumvolume configuredAtLaunch true } ] requiresCompatibilities [ FARGATE ] cpu 4096 memory 16384 ephemeralStorage { sizeInGiB 21 } runtimePlatform { cpuArchitecture ARM64 operatingSystemFamily LINUX }}

更新占位符:

对于 lt SEPOLIABEACONCHAINAPIENDPOINTgt,输入 Sepolia beacon chain 端点的 URL。更多信息请参见 Arbitrum 230 发行说明。 对于 lt SEPOLIAENDPOINTgt,输入 Sepolia 执行客户端端点的 URL。 对于 lt ecsTaskExecutionRoleARNgt,输入 ecsTaskExecutionRole IAM 角色的 ARN。

对于 lt AWSREGIONgt,请输入您的 AWS 区域例如, useast1。

选择 创建 创建任务定义。

创建新服务

创建新服务,按照以下步骤进行:

在 Amazon ECS 控制台中,选择导航面板中的 集群。打开 arbitrumcluster 集群。在 计算选项 中,选择 启动类型,并配置以下参数:对于 启动类型,选择 FARGATE。对于 平台版本,选择 最新版本。在 部署配置 中,配置以下参数:对于 家族,选择 arbitrumnode。对于 修订版,选择 (LATEST)。对于 服务名称,输入 arbitrumnodeservice。对于 所需任务,输入 1。在 部署选项 中:选择 滚动更新。对于 最小运行任务,输入 0。对于 最大运行任务,输入 100。在 网络 中:对于 VPC,选择 arbitrumvpc。对于 子网,选择 arbitrumvpc 的私有子网。对于 安全组,选择 arbitrumnodesg。对于 公共 IP,选择 关闭。在 卷 中:对于 大小 (GiB),输入 1000。对于 IOPS,输入 5000。对于 文件系统类型,选择 EXT4。对于 基础设施角色,选择 ecsInfrastructureRole。选择 创建。

该服务将自动启动一个包含 Arbitrum 全节点容器的 ECS 任务。要检查容器的日志,请导航到 arbitrumcluster 集群,在 任务 选项卡中选择新创建的任务。您可以在 日志 选项卡中查看容器的日志信息。

betternet苹果客户端

在容器与网络完成同步后可能需要几个小时,您应能检查到最后创建的区块与 Arbiscan 的匹配情况,如下面的屏幕截图所示:

测试节点

要测试新创建的节点,您可以使用客户端 VPN 连接到我们的环境,然后将 MetaMask一款流行的浏览器钱包连接到 Arbitrum 节点端点。

使用客户端 VPN 访问 Arbitrum 端点

首先,按照 互相验证 中的说明生成证书。为此,您可以打开一个 AWS CloudShell 窗口并输入以下命令:

bashgit clone https//githubcom/OpenVPN/easyrsagit ampamp cd easyrsa/easyrsa3 ampamp /easyrsa initpki ampamp echo camydomaincom /easyrsa buildca nopass ampamp echo yes /easyrsa buildserverfull arbitrumvpnserver

订阅我们的时事通讯并获取最新消息