如何更新邮箱默认 ISM
使用 Hyperlane CLI
在使用 CLI 首次部署时,新邮箱默认使用受信任的中继 ISM,因此您无需运行中继器或验证者。
为了进入生产环境,您需要使用 Hyperlane CLI 移除此 ISM。
前提条件
- 由
hyperlane core init
生成的核心配置。- 此配置用于部署核心合约,包括邮箱。默认情况下,它使用
CURRENT_DIR/configs/core-config.yaml
的文件路径。
- 此配置用于部署核心合约,包括邮箱。默认情况下,它使用
- 邮箱部署的链。
- 访问当前拥有邮箱的私钥。
如果您遵循了 如何将您的链与 Hyperlane 连接 指南,您可能已经部署了一个将所有者设置为单个私钥的邮箱。在生产环境中,建议使用多签名。
要确认使用 Hyperlane CLI,请执行以 下命令,--chain
设置为您部署邮箱的链的名称:
hyperlane core read --chain <yourChain>
运行 core read
后,您应该会看到类似的配置,其中 owner
设置为私钥的地址:
defaultHook:
address: "0xC2E88eC0aB5FDB9756CD3EFEE40D24120fFa6E57"
type: "merkleTreeHook"
defaultIsm:
address: "0xF37395A79f56268FD0040E1f5711e9Af974a545A"
relayer: "0xa5558cA30cd9952Ab0e2349C274a3736698bD60e"
type: "trustedRelayerIsm"
owner: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"
requiredHook:
address: "0x390d29a822C21F57B163F1173cD43382bd643401"
beneficiary: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"
maxProtocolFee: "100000000000000000"
owner: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"
protocolFee: "0"
type: "protocolFee"
输出将保存到 CURRENT_DIR/configs/core-config.yaml
。
此特定配置具有 trustedRelayerIsm
。这意味着回退 到邮箱的 defaultIsm
的合约(例如,传输路由)将允许 relayer
地址执行任意消息。在自中继功能之外,这可能是不可取的。
请按照以下步骤使用 CLI 更新现有的默认 ISM 到不同的配置。
步骤 1:更新配置
另外,您可以将 relayer
地址更新为其他地址(例如,通过将其设置为不可访问的地址来"销毁"它)。
defaultHook:
address: "0xC2E88eC0aB5FDB9756CD3EFEE40D24120fFa6E57"
type: merkleTreeHook
defaultIsm:
address: "0xF37395A79f56268FD0040E1f5711e9Af974a545A"
- relayer: "0xa5558cA30cd9952Ab0e2349C274a3736698bD60e"
+ relayer: "0x0000000000000000000000000000000000000001"
type: trustedRelayerIsm
owner: "0xa5558cA30cd9952Ab0e2349C274a3736698bD60e"
requiredHook:
address: "0x4f54055C94DCbC2b502146D46909A2cC7461c5D8"
beneficiary: "0xa5558cA30cd9952Ab0e2349C274a3736698bD60e"
maxProtocolFee: "100000000000000000"
owner: "0xa5558cA30cd9952Ab0e2349C274a3736698bD60e"
protocolFee: "0"
type: protocolFee
另外,您可以将 defaultIsm
配置更新为不同的 ISM 配置。如上所示,它已更新为 messageIdMultisigIsm
。
配置 ISM 是一项高级功能,需要了解不同 ISM 类型及其如何在拓扑上 协同工作。
defaultHook:
address: "0xC2E88eC0aB5FDB9756CD3EFEE40D24120fFa6E57"
type: merkleTreeHook
defaultIsm:
- address: "0xF37395A79f56268FD0040E1f5711e9Af974a545A"
- relayer: "0xa5558cA30cd9952Ab0e2349C274a3736698bD60e"
- type: trustedRelayerIsm
+ threshold: 1
+ type: messageIdMultisigIsm
+ validators:
+ - "0xa5558cA30cd9952Ab0e2349C274a3736698bD60e"
owner: "0xa5558cA30cd9952Ab0e2349C274a3736698bD60e"
requiredHook:
address: "0x4f54055C94DCbC2b502146D46909A2cC7461c5D8"
beneficiary: "0xa5558cA30cd9952Ab0e2349C274a3736698bD60e"
maxProtocolFee: "100000000000000000"
owner: "0xa5558cA30cd9952Ab0e2349C274a3736698bD60e"
protocolFee: "0"
type: protocolFee
步骤 2:应用
使用 CLI,执行:
hyperlane core apply --chain <yourChain>
您应该会看到一批交易在链上执行,并且最后一条消息指示邮箱已更新。
步骤 3:确认
要确认使用 Hyperlane CLI,请执行以下命令:
hyperlane core read --chain <yourChain>
运行 core read
后,您应该会看到类似的配置,其中现在更新的默认 ISM:
defaultHook:
address: "0x67F8c06Fd2915728E9D21451E33FbDFbCcd63c44"
type: "merkleTreeHook"
defaultIsm:
address: "0xac7D6df90fa937ADEfE7aD2d4905f0AEa170c467"
relayer: "0x0000000000000000000000000000000000000001"
type: "trustedRelayerIsm"
owner: "0xa5558cA30cd9952Ab0e2349C274a3736698bD60e"
requiredHook:
address: "0x1Cd94b4D9B5f0e3474a6bDB8b9503Ca84F53e548"
beneficiary: "0xa5558cA30cd9952Ab0e2349C274a3736698bD60e"
maxProtocolFee: "100000000000000000"
owner: "0xa5558cA30cd9952Ab0e2349C274a3736698bD60e"
protocolFee: "0"
type: "protocolFee"
通过完成这些步骤,您已成功更新邮箱默认 ISM,并增强了邮箱的安全性。您的邮箱现在已准备好用于生产环境。