使用 Chainlink Automation 实现智能合约函数的自动化执行
智能合约是在区块链上的确定性程序,当满足某些预定义条件时就会执行。智能合约的最初用例主要是发行基于区块链的通证,后来开发人员基于预言机网络创建了混合型智能合约,与不使用预言机的智能合约相比,混合型智能合约可以借助预言机,使用链下的数据和计算资源,以实现更复杂的应用程序。
对于一些功能比较复杂的智能合约来说,链下的计算基础设施有一个关键部分,即合约自动化执行工具 Automation
—— 当满足各种预定义条件时,它可以用来触发链上交易,这使得开发人员能够让智能合约的关键功能实现自动化。
在这篇文章中,我们将探索 Chainlink Automation Job Scheduler —— 一个新的 UI,使智能合约的开发人员能够在几秒钟内快速、安全、可靠地实现基于时间的自动化工作。如果您想立即开始使用 Automation Job Scheduler
,请转到 Chainlink Automation App 注册一个新的基于时间的 Upkeep
。
难题:智能合约无法自动执行
智能合约有一个经常被忽视的特点,就是它不能自行执行,而是需要一个外部实体来触发它们的内部逻辑。
为了克服这个问题,开发人员可以通过手动或者编写中心化的脚本来触发他们的智能合约,但是这些方法存在中心化风险和效率瓶颈。它们不仅给智能合约引入了安全漏洞,而且占用宝贵的开发时间和资源,原本这些时间和资源可用于提升协议。
如上图所示,创建和维护中心化的基础设施(例如用于智能合约自动化的 cron 作业)会带来重大的安全风险。此外,如果开发人员想要自己的智能合约基于时间自动执行,就必须让自己的合约与自动化服务兼容,这意味着要重新部署合约和迁移用户,执行很花费 gas
的时间检查,还要分别注册每个自动化作业。
解决方案:使用 Chainlink Automation Job Scheduler 执行基于时间的智能合约自动化任务
Chainlink Automation 使开发人员能够以去中心化、经济高效和高度安全的方式让他们的智能合约功能实现自动化。
在Chainlink Automation
中,开发人员可以指定预定义的条件,让Chainlink Automation
基于这个条件持续检查,一旦这些条件被满足时,Automation
就发出链上交易,触发智能合约,实现合约函数的自动执行。
Chainlink Automation Job Scheduler
是一个新的无代码 UI,它可以让开发人员几秒钟内在 Chainlink Automation Network 上创建基于时间的智能合约自动化作业。通过 Automation Job Scheduler
,开发人员很简单就可以执行基于时间的合约自动化作业,同时,Chainlink Automation Job Scheduler
和 Chainlink Automation 以及 Chainlink Data Feeds 使用的是同一个去中心化预言机网络。
因此,通过使用 Chainlink Automation Job Scheduler
,开发人员可以节省宝贵的开发时间,去中心化他们的协议或 dApp。通过以去中心化的方式自动执行基于时间的 Solidity 函数,从而提高安全性和正常运行时间。与其花费宝贵的资源建设内部基础设施,Automation Job Scheduler
是一个去中心化智能合约自动化的现成解决方案。
Chainlink Automation Job Scheduler
的主要优势包括:
- 易于使用 —— 使用易于使用的无代码 UI 在几秒钟内帮您实现智能合约自动化。
- 去中心化 —— 通过利用去中心化的节点网络来执行维护作业,
Automation Job Scheduler
为其合约的自动化提供了更高的安全性、可靠性和正常运行时间保证。 - 安全性 ——
Chainlink Automation
自己签署链上交易,无需在 Cron 脚本中暴露私钥即可执行智能合约。 - Gas 效率 —— Automation 作业调度程序省去了链上需要消耗大量 gas 的检查。
如何开始使用
首先进入到 Chainlink Automation App 并选择 “Register new Upkeep”。
输入包含您想要自动化的功能的目标合约地址。
选择您要调用的函数,并根据需要指定函数输入。
指定您的触发时间表(编写 Cron 表达式):
在指定 Upkeep
名称、gas 限制和初始 LINK 余额后,在 Chainlink Automation
网络上注册您的 Upkeep
。
最后,确认交易以部署 CRON Job 合约并将您的基于时间的 UpKeep
注册到 Chainlink Automation Network
。在将您的合约在 Automation 中注册为 UpKeep
后,Automation 会监控 UpKeep
并且执行您的函数。
在控制面板查看和管理您的 Upkeeps
。
你完成了!使用 Chainlink Automation
可以很容易地开始自动化任何智能合约功能。
Chainlink Automation Job Scheduler 示例用例
Chainlink Automation 已经支持以太坊、Polygon、Avalanche 和 BNB 链上的 Solidity 开发人员构建功能齐全的去中心化和端到端全自动的 dApp。如果你想深入了解 Chainlink Automation
支持的大量智能合约自动化用例,请阅读这篇文章。
以下只是 Chainlink Automation Job Scheduler 解锁的许多基于时间的智能合约自动化用例的几个示例。
开始和停止游戏回合
预测市场和无损储蓄游戏等智能合约应用程序具有需要在特定时间间隔触发的功能,例如开始、停止或暂停游戏或回合。
这些 dApp 需要一个 Automation 网络来监控时间的流逝并以特定的时间间隔触发某些事件。Automation Job Scheduler
可以可靠地自动执行对应用程序智能合约的这些调用,以触发不同回合或游戏阶段的开始或结束。
奖励支出
许多 DeFi 和 NFT 平台旨在通过财务激励来吸引流动性并鼓励用户参与。定期向一组特定用户分配奖励的协议可以使用 Chainlink Automation Job Scheduler
以去中心化的方式让奖励分配过程自动化。
Job Scheduler 有助于确保按预定义的时间间隔将奖励分配给用户,而无需任何手动输入,从而为开发团队创造流畅的用户体验并简化智能合约管理。
Rebase 通证
弹性供应通证通过一种称为 rebase 的机制定期调整其供应,以实现所需的功能——通常是与目标指数保持挂钩。
自动化弹性供应通证的 rebase 机制一般是智能合约的一个维护任务,它必须定期执行以实现所需的挂钩。在这里,Chainlink Automation Job Scheduler
可以定期调用智能合约并以高度可靠和去中心化的方式启动弹性供应通证的 rebase 机制。
动态 NFT
动态 NFT 是不可替代的通证 (NFT)基于外部数据的变化来获取新的属性。NFT 项目可以通过使用 Chainlink Data Feeds 或使用定制的外部适配器连接到任何外部 API 来使用真实数据更新其 NFT。
作为基于时间的智能合约自动化任务的可靠去中心化调度器,Automation Job Scheduler
可以很好的升级基于时间预定义条件的 NFT。
总结
Chainlink Automation Job Scheduler 使开发人员能够以去中心化的方式安全、轻松地自动化执行基于时间的智能合约函数。开发人员可以使用 Job Scheduler 替换中心化 Cron Jobs,增强协议的安全性和正常运行时间,并将开发能力从运维中开发出来。