使用 Chainlink Automation 实现智能合约函数的自动化执行

 

智能合约是在区块链上的确定性程序,当满足某些预定义条件时就会执行。智能合约的最初用例主要是发行基于区块链的通证,后来开发人员基于预言机网络创建了混合型智能合约,与不使用预言机的智能合约相比,混合型智能合约可以借助预言机,使用链下的数据和计算资源,以实现更复杂的应用程序。

对于一些功能比较复杂的智能合约来说,链下的计算基础设施有一个关键部分,即合约自动化执行工具 Automation —— 当满足各种预定义条件时,它可以用来触发链上交易,这使得开发人员能够让智能合约的关键功能实现自动化。

在这篇文章中,我们将探索 Chainlink Automation Job Scheduler —— 一个新的 UI,使智能合约的开发人员能够在几秒钟内快速、安全、可靠地实现基于时间的自动化工作。如果您想立即开始使用 Automation Job Scheduler,请转到 Chainlink Automation App 注册一个新的基于时间的 Upkeep

难题:智能合约无法自动执行

智能合约有一个经常被忽视的特点,就是它不能自行执行,而是需要一个外部实体来触发它们的内部逻辑。

为了克服这个问题,开发人员可以通过手动或者编写中心化的脚本来触发他们的智能合约,但是这些方法存在中心化风险和效率瓶颈。它们不仅给智能合约引入了安全漏洞,而且占用宝贵的开发时间和资源,原本这些时间和资源可用于提升协议。

A diagram showing how unreliable automation systems can compromise smart contract security

如上图所示,创建和维护中心化的基础设施(例如用于智能合约自动化的 cron 作业)会带来重大的安全风险。此外,如果开发人员想要自己的智能合约基于时间自动执行,就必须让自己的合约与自动化服务兼容,这意味着要重新部署合约和迁移用户,执行很花费 gas 的时间检查,还要分别注册每个自动化作业。

Chainlink Automation 使开发人员能够以去中心化、经济高效和高度安全的方式让他们的智能合约功能实现自动化。

Chainlink Automation中,开发人员可以指定预定义的条件,让Chainlink Automation基于这个条件持续检查,一旦这些条件被满足时,Automation 就发出链上交易,触发智能合约,实现合约函数的自动执行。

Chainlink Automation Job Scheduler 是一个新的无代码 UI,它可以让开发人员几秒钟内在 Chainlink Automation Network 上创建基于时间的智能合约自动化作业。通过 Automation Job Scheduler,开发人员很简单就可以执行基于时间的合约自动化作业,同时,Chainlink Automation Job SchedulerChainlink 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 的检查。

如何开始使用

Gif showing how to use the Chainlink Automation Job Sch

首先进入到 Chainlink Automation App 并选择 “Register new Upkeep”。

输入包含您想要自动化的功能的目标合约地址。

Screenshot showing UI to register a new Upkeep

选择您要调用的函数,并根据需要指定函数输入。

Contract call

指定您的触发时间表(编写 Cron 表达式):

Specify time schedule

在指定 Upkeep 名称、gas 限制和初始 LINK 余额后,在 Chainlink Automation 网络上注册您的 Upkeep

Screenshot showing Upkeep details

最后,确认交易以部署 CRON Job 合约并将您的基于时间的 UpKeep 注册到 Chainlink Automation Network。在将您的合约在 Automation 中注册为 UpKeep 后,Automation 会监控 UpKeep 并且执行您的函数。

Deploy CRON job contract

在控制面板查看和管理您的 Upkeeps

Screenshot showing Upkeep test UI

你完成了!使用 Chainlink Automation 可以很容易地开始自动化任何智能合约功能。

Chainlink Automation 已经支持以太坊PolygonAvalancheBNB 链上的 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,增强协议的安全性和正常运行时间,并将开发能力从运维中开发出来。

Need Integration Support?
Talk to an expert
Faucets
Get testnet tokens
Read the Docs
Technical documentation