Avalanche

  • ava-labs
  • 发布于 2025-03-01 23:43
  • 阅读 38

这篇文章详细介绍了如何在 Avalanche 网络上实现节点,包括安装要求、从源代码构建、安装及运行方法等。还涉及了二进制安装、Docker 安装以及创建本地测试网络等内容,为开发人员提供了全面的节点设置指导。

<div align="center"> <img src="resources/AvalancheLogoRed.png?raw=true"> </div>


Avalanche 网络的节点实现 - 一个具有高吞吐量和极速交易的区块链平台。

安装

Avalanche 是一个极轻量级的协议,因此最低计算机要求相当 modest。 请注意,随着网络使用量的增加,硬件要求可能会发生变化。

连接到 Mainnet 的节点的最低推荐硬件规范为:

  • CPU:相当于 8 个 AWS vCPU
  • RAM:16 GiB
  • 存储:1 TiB
    • 长时间运行的节点或具有自定义配置的节点可能会观察到较高的存储要求。
  • 操作系统:Ubuntu 22.04/24.04 或 macOS >= 12
  • 网络:可靠的 IPv4 或 IPv6 网络连接,具有开放的公共端口。

如果你计划从源代码构建 AvalancheGo,你还需要以下软件:

  • Go 版本 >= 1.23.6
  • gcc
  • g++

从源代码构建

克隆库

克隆 AvalancheGo 库:

git clone git@github.com:ava-labs/avalanchego.git
cd avalanchego

这将克隆并检出 master 分支。

构建 AvalancheGo

通过运行构建脚本构建 AvalancheGo:

./scripts/build.sh

avalanchego 二进制文件现在位于 build 目录中。要运行:

./build/avalanchego

二进制库

使用 apt 库安装 AvalancheGo。

添加 APT 库

如果你已经添加了 APT 库,则不需要再次添加。

要在 Ubuntu 上添加库,请运行:

sudo su -
wget -qO - https://downloads.avax.network/avalanchego.gpg.key | tee /etc/apt/trusted.gpg.d/avalanchego.asc
source /etc/os-release && echo "deb https://downloads.avax.network/apt $UBUNTU_CODENAME main" > /etc/apt/sources.list.d/avalanche.list
exit

安装最新版本

添加 APT 库后,通过运行以下命令安装 avalanchego

sudo apt update
sudo apt install avalanchego

二进制安装

下载适用于你的操作系统和架构的 最新版本

要执行的 Avalanche 二进制文件名为 avalanchego

Docker 安装

确保机器上已安装 Docker - 以便可以使用 docker run 等命令。

通过运行以下命令构建最新 avalanchego 分支的 Docker 镜像:

./scripts/build_image.sh

要检查构建的镜像,请运行:

docker image ls

该镜像应标记为 avaplatform/avalanchego:xxxxxxxx,其中 xxxxxxxx 是构建时 Avalanche 源代码的简化提交。要运行 Avalanche 节点,运行:

docker run -ti -p 9650:9650 -p 9651:9651 avaplatform/avalanchego:xxxxxxxx /avalanchego/build/avalanchego

运行 Avalanche

连接到 Mainnet

要连接到 Avalanche Mainnet,运行:

./build/avalanchego

你应该会看到一些漂亮的 ASCII 艺术和日志消息。

你可以使用 Ctrl+C 结束节点。

连接到 Fuji

要连接到 Fuji 测试网,运行:

./build/avalanchego --network-id=fuji

创建本地测试网

avalanche-cli 是启动本地网络的最简便方法。

avalanche network start
avalanche network status

启动

在节点能够参与共识和提供 API 调用之前,需要赶上最新的网络状态。这个过程(称为引导)对于连接到 Mainnet 的新节点目前需要几天时间。

节点在完成引导之前不会 报告健康

减少引导所需时间的改进正在开发中。

引导过程中的瓶颈通常是数据库 IO。使用更强大的 CPU 或增加运行节点的计算机的数据库 IOPS 将减少引导所需的时间。

生成代码

AvalancheGo 使用多个工具生成高效且模板化的代码。

运行 protobuf 代码生成

要再生 protobuf Go 代码,从库根目录运行 scripts/protobuf_codegen.sh

只有在升级 protobuf 版本或修改 .proto 定义文件时,这才是必要的。

使用此脚本时,必须安装 buf (v1.31.0)、protoc-gen-go (v1.33.0) 和 protoc-gen-go-grpc (v1.3.0)。

要安装 buf 依赖项:

go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.33.0
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.3.0

如果你还没有添加,可能需要将 $GOPATH/bin 添加到你的 $PATH

export PATH="$PATH:$(go env GOPATH)/bin"

如果你将 buf 解压到 ~/software/buf/bin,则以下命令应有效:

export PATH=$PATH:~/software/buf/bin/:~/go/bin
go get google.golang.org/protobuf/cmd/protoc-gen-go
go get google.golang.org/protobuf/cmd/protoc-gen-go-grpc
scripts/protobuf_codegen.sh

有关更多信息,请参阅 GRPC Golang 快速入门指南

运行 mock 代码生成

请参阅 贡献文档自动生成的 mock 部分

版本控制

版本语义

AvalancheGo 首先是 Avalanche 网络的客户端。AvalancheGo 的版本遵循 Avalanche 网络的版本。

  • v0.x.x 表示开发网络版本。
  • v1.x.x 表示生产网络版本。
  • vx.[Upgrade].x 表示发生的网络升级次数。
  • vx.x.[Patch] 表示自上次网络升级以来发生的客户端升级次数。

库兼容性保证

由于 AvalancheGo 的版本表示网络版本,因此预计 AvalancheGo 包导出的接口在 Patch 版本更新中可能会变化。

API 兼容性保证

在运行 AvalancheGo 时公开的 API 将保持向后兼容,除非功能明确被弃用并在移除时宣布。

支持的平台

AvalancheGo 可以在不同的平台上运行,具有不同的支持级别:

  • Tier 1:由维护者全面支持,保证通过所有测试,包括端对端和压力测试。
  • Tier 2:通过所有单元测试和集成测试,但不一定通过端对端测试。
  • Tier 3:构建成功但测试不多(或未测试),被视为 实验性
  • 不支持:可能无法构建且未经过测试,被视为 不安全。未来将支持。

以下表列出当前支持的平台及其对应的 AvalancheGo 支持级别:

架构 操作系统 支持级别
amd64 Linux 1
arm64 Linux 2
amd64 Darwin 2
amd64 Windows 3
arm Linux 不支持
i386 Linux 不支持
arm64 Darwin 不支持

要正式支持一个新平台,必须满足以下要求:

AvalancheGo 持续集成 Tier 1 Tier 2 Tier 3
构建通过
单元和集成测试通过
端对端和压力测试通过

安全漏洞

我们和我们的社区欢迎负责任的披露。

请参阅我们的 安全政策安全通告

  • 原文链接: github.com/ava-labs/aval...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
ava-labs
ava-labs
江湖只有他的大名,没有他的介绍。