本文介绍了LayerZero协议的工作原理及其架构,并通过一个具体的示例展示了如何使用LayerZero在不同区块链之间发送跨链消息。
在本视频中,我们介绍了 LayerZero 的工作原理以及 LayerZero 的架构。 然后我们演示了如何使用 LayerZero 在不同的区块链之间发送消息。
区块链在某种程度上是孤立的,驻留在一条链上的东西仅限于该链的范围,随着多链成为新常态,对实现跨链通信的技术的需求非常高。LayerZero 就是这样一种技术。LayerZero 是一种协议,促进不同区块链网络之间的直接且无需信任的通信,旨在无需中介的情况下简化跨链交互和交易。其架构允许在链之间传递消息,并具有用户可配置的信任级别。
我们将使用 LayerZero Solidity 示例 仓库和 OmniCounter 智能合约。OmniCounter 合约是一个非常基础的智能合约,它导入了 LayerZero 合约,并有一个名为 incrementCounter
的函数,当调用该函数时,计数器会增加一。我们将在两条链(Polygon Mumbai 测试网和 Avalanche Fuji 测试网)上部署该合约。我们将在 Polygon Mumbai 测试网上调用 incrementCounter
函数,并使用 LayerZero 合约,部署在 Avalanche Fuji 测试网上的合约中的计数器也会增加。
git clone https://github.com/LayerZero-Labs/solidity-examples.git
cd solidity-examples
npm install
导航到 hardhat.config.js
文件,并将内容替换为此文件中的代码 此处。
将 hardhat.config.js
文件中的 QuickNode_URL 替换为你要使用的特定链的 QuickNode HTTP URL。例如,在本例中,我们使用的是 Polygon Mumbai 测试网和 Avalanche Fuji 测试网。
导航到 tasks
目录,找到 incrementCounter.js
文件,并将内容替换为此文件中的代码 此处。
现在,让我们在两条链上部署合约。我们正在部署到 Polygon Mumbai 和 Avalanche Fuji,但你可以选择任何链;确保按照步骤 3 中的说明在 hardhat.config.js
文件中添加这些链的 RPC URL。
npx hardhat --network mumbai deploy --tags OmniCounter
npx hardhat --network fuji deploy --tags OmniCounter
我们将为每个合约设置远程地址作为另一个合约的地址。这些将是目标标识符,并将帮助我们的合约接收消息。
npx hardhat --network mumbai setTrustedRemote --target-network fuji --contract OmniCounter
npx hardhat --network fuji setTrustedRemote --target-network mumbai --contract OmniCounter
我们将在 Polygon Mumbai 测试网上存储的合约上调用 incrementCounter
函数,并指定目标网络为 Avalanche Fuji 测试网,计数器将在该网络上的合约中增加。
npx hardhat --network mumbai incrementCounter --target-network fuji
一旦交易发送,我们可以在另一个终端窗口中运行以下命令来检查计数器是否增加。
npx hardhat --network fuji ocPoll
消息可能需要一些时间才能传递到目标链;你可以在 LayerZero 扫描中检查交易状态 测试网 和 主网。
让我们知道 如果你有任何反馈或对新主题的请求。我们很乐意听取你的意见。
- 原文链接: quicknode.com/guides/cro...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!