这篇文章详细介绍了如何在 Avalanche 网络上实现节点,包括安装要求、从源代码构建、安装及运行方法等。还涉及了二进制安装、Docker 安装以及创建本地测试网络等内容,为开发人员提供了全面的节点设置指导。
<div align="center"> <img src="resources/AvalancheLogoRed.png?raw=true"> </div>
Avalanche 网络的节点实现 - 一个具有高吞吐量和极速交易的区块链平台。
Avalanche 是一个极轻量级的协议,因此最低计算机要求相当 modest。 请注意,随着网络使用量的增加,硬件要求可能会发生变化。
连接到 Mainnet 的节点的最低推荐硬件规范为:
如果你计划从源代码构建 AvalancheGo,你还需要以下软件:
克隆 AvalancheGo 库:
git clone git@github.com:ava-labs/avalanchego.git
cd avalanchego
这将克隆并检出 master
分支。
通过运行构建脚本构建 AvalancheGo:
./scripts/build.sh
avalanchego
二进制文件现在位于 build
目录中。要运行:
./build/avalanchego
使用 apt
库安装 AvalancheGo。
如果你已经添加了 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 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,运行:
./build/avalanchego
你应该会看到一些漂亮的 ASCII 艺术和日志消息。
你可以使用 Ctrl+C
结束节点。
要连接到 Fuji 测试网,运行:
./build/avalanchego --network-id=fuji
avalanche-cli 是启动本地网络的最简便方法。
avalanche network start
avalanche network status
在节点能够参与共识和提供 API 调用之前,需要赶上最新的网络状态。这个过程(称为引导)对于连接到 Mainnet 的新节点目前需要几天时间。
节点在完成引导之前不会 报告健康。
减少引导所需时间的改进正在开发中。
引导过程中的瓶颈通常是数据库 IO。使用更强大的 CPU 或增加运行节点的计算机的数据库 IOPS 将减少引导所需的时间。
AvalancheGo 使用多个工具生成高效且模板化的代码。
要再生 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 部分。
AvalancheGo 首先是 Avalanche 网络的客户端。AvalancheGo 的版本遵循 Avalanche 网络的版本。
v0.x.x
表示开发网络版本。v1.x.x
表示生产网络版本。vx.[Upgrade].x
表示发生的网络升级次数。vx.x.[Patch]
表示自上次网络升级以来发生的客户端升级次数。由于 AvalancheGo 的版本表示网络版本,因此预计 AvalancheGo 包导出的接口在 Patch
版本更新中可能会变化。
在运行 AvalancheGo 时公开的 API 将保持向后兼容,除非功能明确被弃用并在移除时宣布。
AvalancheGo 可以在不同的平台上运行,具有不同的支持级别:
以下表列出当前支持的平台及其对应的 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 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!