把一个 LayerZero 应用部署到主网,看似步骤繁多,其实可以拆成一条清晰的流水线。本文以一段简单的 OmniCounter 为例,结合 Binance 智能链与 Polygon 之间的实测经验,完整演示 LayerZero 部署教程的每一步,让第一次接触跨链协议的开发者也能在一两个小时内打通主流程。
选择目标链与查找Endpoint
第一步是确定要打通的两条链。LayerZero 官方维护了一份 Endpoint 列表,每条链都有对应的合约地址。需要把目标链的 chainId(LayerZero 内部编号,与 EVM chainId 不同)也记下来。例如 必安 链的 LayerZero chainId 是 102,Polygon 是 109。准确填写这两个参数是后续所有步骤的前提。
合约部署与初始化
使用 Hardhat 或 Foundry 部署 OmniCounter 合约时,构造函数传入本链 Endpoint 地址。部署完成后立刻调用 setTrustedRemote,把对端链的 chainId 与对端合约地址组合成 bytes 写入。这一步必须双向都做:BSC 端要知道 Polygon 端的地址,Polygon 端也要知道 BSC 端的地址。可以借助 B安交易所 浏览器实时确认配置是否正确写入。
估算费用与首次跨链
在调用 incrementCounter 之前,先调用 estimateFees 获取本次跨链所需的原生币费用。返回值中通常会包含 nativeFee 与 zroFee 两项。把 nativeFee 作为 msg.value 传入 send 函数即可。建议第一次跨链选择较小的 payload,例如只发送一个 uint8 计数,方便排查失败原因。Polygon 端确认后,计数器的值就会增加。