假设你的子网ID是 SsubnetID123.

默认分类 2026-02-20 12:33 1 0

Avalanche子网创建全攻略:从零开始构建你的自定义区块链网络


在Avalanche生态系统中,子网(Subnet)是一项核心且强大的功能,它允许用户创建和定制自己的区块链网络,具备独立的共识机制、虚拟机和规则集,无论是为特定应用构建专用链、 launching Layer 2 解决方案,还是组织私有联盟链,子网都提供了极大的灵活性和可扩展性,本教程将带你一步步了解并创建一个属于自己的Avalanche子网。

什么是Avalanche子网?

在深入创建步骤之前,我们先简单理解子网的概念,Avalanche的原生共识机制称为雪崩(Avalanche),它通过抽样子网中的验证者来达成共识,整个Avalanche网络由多个主网(Mainnet)链(如X链、C链、P链)和无数个子网组成。

  • 主网链:提供核心功能,如资产交易(X链)、智能合约(C链)和验证者管理(P链)。
  • 子网:可以看作是“链的集合”或“验证者池”,一个子网可以包含一条或多条具有自定义共识规则和虚拟机的区块链,这些链可以是:
    • Avalanche原生链:使用Avalanche共识,但可以自定义参数。
    • EVM兼容链:与以太坊虚拟机兼容,可以运行Solidity智能合约(如Avalanche上的C-Chain本身就是一个巨大的子网,你也可以创建自己的EVM子网)。
    • 其他VM链:支持如Avascript等其他虚拟机。

创建子网前的准备工作

  1. Avalanche节点:你需要在你的机器上运行一个Avalanche节点,你可以从Avalanche官方GitHub获取最新版本的avalanchego二进制文件或源代码,并按照官方文档进行搭建和配置。
  2. AVALANCHE_CLI工具avalanche-cli是用于与Avalanche节点交互的命令行工具,简化了节点管理和子网创建等操作,你可以通过go install命令安装它:
    go install github.com/ava-labs/avalanchego/tools/avalanche-cli@latest
  3. 足够的AVAX:你需要向你的Avalanche节点钱包中转入足够的AVAX,用于支付创建子网、添加验证者等操作所需的交易费用(称为“subnet creation fee”和“stake fee”,具体金额可能随网络状态变化)。
  4. 基本命令行操作能力:熟悉Linux/Mac命令行操作,Windows用户可能需要WSL(Windows Subsystem for Linux)环境。

创建子网的详细步骤

假设你已经完成了准备工作,并成功启动了你的Avalanche节点。

步骤1:初始化Avalanche CLI并连接节点

你需要初始化avalanche-cli并让它连接到你的本地节点,打开终端,运行:

avalanche-cli --endpoint=http://localhost:9650 init

根据提示,输入你的节点信息,如果你的节点运行在默认端口9650上,--endpoint参数可以省略。

步骤2:创建新的子网

这是创建子网的核心步骤,使用create-subnet命令:

avalanche-cli create-subnet

命令执行后,你会被要求输入一些信息:

  • 子网名称(Subnet Name):给你的子网起一个唯一的、易于识别的名称,例如my-awesome-subnet
  • 子网别名(Subnet Alias):可选的更友好的显示名称。
  • 验证者节点ID(Validator Node IDs):你需要指定哪些节点将作为该子网的验证者,这些节点ID是你本地Avalanche节点钱包中的节点ID,你可以通过以下命令获取你的节点ID:
    curl -X POST --data '{
        "jsonrpc":"2.0",
        "method":"info.getNodeID",
        "params":{"networkID":"[你的网络ID,如主网是'11111111111111111111111111111111L9oRQ']"},
        "id":1
    }' -H 'content-type:application/json' http://localhost:9650/ext/bc/C/rpc

    你需要为每个要添加为验证者的节点提供其ID,初始创建时,至少需要一个验证者节点。

步骤3:配置子网参数(可选)

创建子网时,你可以指定一些参数,

  • 共识机制:通常默认为Avalanche共识。
  • 链ID(Chain IDs)<
    随机配图
    /strong>:如果你想在子网中创建特定的链(如EVM链),可以在创建子网后或同时指定。
  • 费率:设置子网内的交易费用等。

avalanche-cli会提供一些默认配置,你也可以通过编辑配置文件或使用更高级的命令来自定义这些参数,对于初学者,使用默认配置即可。

步骤4:启动子网并添加验证者

创建子网后,你需要:

  1. 通知验证者:你需要将子网ID和相关信息发送给所有你希望加入该子网的验证者节点,这些验证者需要在其节点配置中添加该子网,并启动其验证者进程来参与该子网的共识。
  2. 添加验证者(如果步骤2未完成):如果创建子网时未添加所有验证者,后续可以通过avalanche-cli的子网管理命令添加。

步骤5:验证子网创建

你可以通过以下方式验证子网是否创建成功:

  1. 使用Avalanche CLI
    avalanche-cli get-subnets

    这会列出当前网络中的所有子网,你应该能看到你刚刚创建的子网及其ID。

  2. 通过浏览器:使用Avalanche的官方浏览器(如Avalanche Explorer),在子网列表中查找你的子网。
  3. 通过RPC调用
    curl -X POST --data '{
        "jsonrpc":"2.0",
        "method":"platform.getSubnets",
        "params":[],
        "id":1
    }' -H 'content-type:application/json' http://localhost:9650/ext/bc/P/rpc

在子网中创建链(可选)

创建子网后,你可能想在其中添加一条或多条链,创建一条EVM兼容链:

# 链别名 "MyEVMChain"
# 链ID (需要唯一,可以自生成一个)
avalanche-cli create-chain \
    --subnet="SsubnetID123..." \
    --chain-name="my-evm-chain" \
    --chain-alias="MyEVMChain" \
    --vm-id="secp256k1fx.EVM" \
    --genesis-file="path/to/genesis.json" \
    --contract-address="0x..." # 如果有预部署的合约

注意:创建链时,genesis-file是必需的,它定义了链的创世状态,对于EVM链,你可以使用一个标准的创世文件模板。

子网管理与维护

创建子网后,你还需要进行日常管理,

  • 添加/移除验证者:根据需要调整验证者池。
  • 升级子网或链:如需要升级虚拟机或共识机制。
  • 监控子网健康状态:通过Avalanche CLI或监控工具查看子网的出块情况、验证者状态等。
  • 处理争议:在Avalanche共识中,验证者之间可能对区块的有效性产生争议,需要机制来处理。

注意事项与最佳实践

  1. 安全性:子网的安全性与其验证者的数量和信誉直接相关,确保验证者是可信的,并且分布在不同地理位置。
  2. 性能:根据子网的预期负载调整验证者数量,过多的验证者可能影响性能,过少则影响去中心化和安全性。
  3. 成本:创建和运行子网需要消耗AVAX,包括创建费、验证者的质押费用等。
  4. 文档:详细记录你的子网配置、验证者信息等,便于后续维护。
  5. 社区支持:遇到问题时,可以查阅Avalanche官方文档、GitHub仓库或社区论坛(如Discord、Telegram)。

通过以上步骤,你已经成功创建了一个Avalanche子网,并了解了如何在其中添加链,子网为Avalanche生态系统带来了极高的可定制性和扩展性,是构建复杂应用和特定用例的理想选择,随着你对Avalanche技术的深入了解,你可以探索更高级的子网配置和功能,充分发挥其潜力。

希望本教程能帮助你顺利开启