Gelato Web3 Functions vs. Chainlink Functions

  • gelato
  • 发布于 2023-04-26 20:47
  • 阅读 16

本文主要对比了 Gelato Web3 Functions 和 Chainlink Functions,两种服务都旨在为 Web3 开发者提供链下数据和计算能力。文章详细阐述了两者在核心设计、成本、开发者友好性、功能特性、智能合约集成以及网络支持方面的差异,并通过实际用例和数据对比,强调了 Gelato Web3 Functions 在降低延迟、减少 Gas 成本以及简化开发流程方面的优势。

博客 — 更新

Gelato Web3 Functions v. Chainlink Functions

  • 在 2022 年底,Gelato 推出了其 Web3 Functions 私人测试版,旨在为 web3 开发者提供对链下数据和计算的访问。在 ETHDenver 2023 上,Chainlink 宣布了一项名称相似的服务,名为 Chainlink Functions。

  • Gelato Web3 Functions 和 Chainlink Functions 在表面上解决了类似的问题,但每个实现中的主要差异导致项目在成本和性能方面产生截然不同的影响。

  • 两者之间最大的技术差异在于 Chainlink Functions 使用请求/响应模型,而 Gelato Web3 Functions 使用 worker 模型。这意味着 Chainlink Functions 仅在有人发送链上交易并需要支付 gas 费用后才会触发。另一方面,Gelato 的 Web3 Functions 会持续在链下触发 W3F 的执行,例如每分钟一次,因此是 gasless 的,并且不需要支付gas费用以运行链上交易。

  • 这导致许多用例(如下所述)在使用 Gelato Web3 Functions 时享有更低的延迟和 gas 成本,而不是 Chainlink Functions,后者导致更高的延迟和更高的 gas 成本。

  • Gelato 的 Web3 Functions 已在 7 个主网上线(Ethereum、Polygon、Optimism、Arbitrum 等),而 Chainlink Functions 目前仅在测试网上可用。

什么是 Gelato Web3 Functions?

Web3 Functions 代表了 web3 开发者创建 serverless 应用程序的一种新方法,消除了依赖中心化对象执行链下计算并成为单点故障的风险。

它们可以被认为是去中心化的云函数,使 web3 开发者能够:

  • 通过调用任意 API 将其智能合约连接到链下数据
  • 确保此数据准确并由多方签署
  • 运行链下计算
  • 在所有主要区块链上执行交易
  • 发送由事件或状态更改触发的通知

通过采用这种创新方法,开发者可以放弃传统的中心化平台(如 AWS 或 Google Cloud),转而使用 web3 原生基础设施,从而提供强大且可扩展的解决方案,同时保持其项目的关键去中心化特性。

借助 Web3 Functions,开发者可以将可靠、信任最小化的基础设施整合到其智能合约中,用于所有服务器端组件,从而为其 web3 应用程序提供安全且去中心化的基础。

Gelato Web3 Functions vs Chainlink Functions

表面上,这两种服务看起来非常相似——命名、"serverless" 以及允许开发者"连接和访问链下数据"。它们有何不同?它们是否针对相同的用例?最重要的是——与彼此相比,它们的性能如何?

核心设计差异

Gelato Web3 Functions 使用 worker 模型并在链下持续运行,无需支付链上 gas,而 Chainlink Functions 使用请求/响应模型,并且必须通过需要 gas 的链上交易来触发。

Chainlink Functions 的请求/响应模型要求每次应触发链下 Chainlink Function 时都发送链上交易。反过来,该函数执行另一笔链上交易,以将某些数据推送到链上。这种双交易模式的缺点是会产生延迟和 gas 成本开销,因为每次 Chainlink Function 执行都需要支付两笔链上交易费用(一笔用于请求,一笔用于完成)。

使用 Gelato Web3 Functions,开发者无需任何链上交易即可触发 Web3 Functions,从而使其更具可扩展性,提供更低的延迟并显着降低成本。这是因为 Gelato Web3 Functions 可以在链下触发。开发者创建 Web3 Function 任务后,逻辑会自动按时间间隔执行,例如每分钟一次。只有当 Web3 Function 的逻辑指示需要链上提交交易时,才需要执行链上交易以将数据发布到链上。

除此之外,Multichain RPC Provider 的集成为跨多个网络无缝获取数据打开了新的大门。例如,如果你在 Polygon 上构建,你现在可以轻松访问来自 Arbitrum 的数据!此功能简化了跨链通信,使查询具有不同区块链的数据并实现互操作性变得更加容易。

Gelato 很快也将支持基于链上发出的任意事件(不仅是那些继承 CL 函数标准的事件)的事件驱动的 Web3 Function 执行,与 Chainlink Functions 目前提供的功能相比,提供了更大的灵活性。这意味着,例如,每当用户在 Uniswap 上交易 WETH / USDC 交易对时,项目都可以自动触发 Web3 Functions。

成本

Chainlink Functions 有三种不同的费用,用户必须支付:gas 费用、计算 (DON) 费用和注册费用。Gas 费用可能非常高(如下例所示),因为 Chainlink 的请求/响应模型的缺点是要求用户每次运行 Chainlink Function 时支付两笔交易费用。一个用于启动请求,另一个用于支付在函数运行后发送完成请求的交易。

所有这些费用都必须用 LINK 代币支付,LINK 代币的缺点是波动性大且受价格波动影响

Gelato Web3 Function 仅收取两组费用:Gas 费用和计算费用(无注册费)。由于 Gelato 的 worker 模型,为了触发 Web3 Functions,不需要在链上发送任何交易,因为它们在链下持续触发,而无需支付链上 gas。

Gelato 不会对运行 Web3 Function 收取链上交易费用,而是使用其链下多链 1Balance 支付系统处理应补偿 Gelato 节点以持续运行 Web3 函数的费用。用户可以订阅不同的层级,这些层级将为自定义计算需求提供配额,基本软件包是免费的。

所有 Web3 Function 成本都可以简单地使用 USDC 支付。

成本比较示例

用例 一个每分钟查询 Coingecko 价格 API,如果与链下 Coingecko 价格偏差超过 2%,则更新链上预言机价格的函数。

假设: 这种偏差平均每 20 分钟发生一次,这意味着每天 72 次。

结果: 使用 Chainlink Functions,为了每分钟检查 Coingecko 上某个交易对的价格是否与当前链上价格存在偏差,项目必须每分钟支付两笔链上交易费用,第一笔用于请求该函数在链下运行,第二笔用于链上发布其结果。

=> 2 (交易) x 60 (每分钟) x 24 (每小时) = 每天 2.880 笔交易 如果你假设平均 gas 成本为每次交易 0.1 美元,则仅交易费用,使用 Chainlink Functions 每天将花费 288 美元。

由于 Gelato Web3 Functions 在链下持续运行,因此在检查 Coingecko 价格源是否与链上存储的价格源不同时,无需支付链上交易费用。因此,唯一需要支付的链上交易是实际更新价格所需的交易,平均每 20 分钟发生一次。

因此:

=> 1 (交易) x 60 / 20 (每 20 分钟) x 24 (每小时) = 每天 72 笔交易 假设平均 gas 成本相同,这意味着对于相同的用例使用 Gelato Web3 Functions 每天仅花费 7.2 美元。

这意味着使用 Gelato 可以减少 97.5% 的链上交易费用!此外,与持续触发 Web3 Functions 的链上交易成本相比,与持续运行 Web3 Functions 相关的链下计算成本微不足道。

开发者友好性

Chainlink Functions 不支持使用 npm 模块,这可能会非常具有约束性,尤其是在你的函数需要与 Uniswap 或 1inch 等应用程序交互时,这些应用程序可能很难集成。

在这两种情况下,代码都是用 Javascript 编写的。Gelato 从 IPFS 读取代码,而 Chainlink 从 URL(如 Gist)读取代码,或者它将通过以字节编码的事务发送。Chainlink Functions 将运行的源代码限制为不超过 30 kb,这对于要执行的较大脚本来说可能不可行,而 Gelato 允许高达 1 MB 的源代码限制。

此外,Gelato Web3 Function 任务可以在用户友好的 UI 上创建,该 UI 可以在 https://beta.app.gelato.network/ 找到,而 CL Functions 还没有 UI。

函数内特性

Gelato Web3 Functions 和 Chainlink Functions 都使开发者能够进行 HTTP 请求和存储密钥(例如 API 密钥)。但是,Gelato Web3 Functions 具有两个附加功能,这些功能可能对开发者非常有用。

Web3 Functions 开箱即用地提供了一个可靠的多链 RPC 端点,这意味着开发者不必担心注册到 RPC 提供商即可从相应的区块链读取状态并写入。此外,Web3 Functions 还提供 JSON 存储,开发者可以在其中存储和查询数据,例如,上次执行交易的时间。

易于集成 - 智能合约

要使你的智能合约与 Web3 Function 与 Chainlink Function 兼容需要什么?

简而言之,Gelato Web3 Functions 不需要对现有智能合约进行任何更改,并且开箱即用地适用于所有智能合约。唯一建议的是限制特定功能的执行,使其只能由用户的 Gelato 专用 msg.sender 调用。由 Gelato 执行的交易也具有非常高的 gas 限制,在大多数情况下等于区块 gas 限制。

使用专用 msg.sender 作为目标合约,Gelato 允许使用 Web3 Functions 的开发者同时在不同的合约上执行批量交易。

另一方面,Chainlink Functions 需要部署全新的智能合约,这些合约继承了多个合约并遵循预定义的模式,使它们可以使用 Chainlink Function 系统,从而导致更高的集成摩擦和昂贵的审计需求。Chainlink 执行的交易限制为最多消耗 300,000 gas。

网络支持

目前,这两种产品都处于测试阶段,但是,Gelato 已经部署在不同的主网上,并且今天可以在生产中使用。

数据不言自明 - 超过 100 万次执行并在运行

在第一个月,Gelato 的 Web3 Functions 运行了超过一百万次!

Beefy 使用 Web3 Functions 为两个用例提供支持:收获他们的金库并交换使用 1inch API 产生的费用中的代币,以获得最佳的交换路线。

“Gelato 的 Web3 Functions 通过结合自动化功能和访问外部数据的能力,使我们的智能合约变得更加智能。借助 Web3 Functions,我们可以创建更强大的产品,还可以消除繁琐的运营任务。”- Weso,Beefy 的首席开发者和战略合作伙伴负责人

Abracadabra 在不同的 DeFi 和交易所上创建了策略,并在链上查询 1inch 数据,以确保为交换、提款或回购使用最有效的路线。

“借助 Gelato Network 的 Web3 Functions,我们自动化了我们 Abracadabra.money 上收益耕作金库的复利和质押奖励回购。这简化了我们的流程,并且比运行我们自己的基础设施更容易、更可靠,使其成为我们收益耕作和借贷产品不可或缺的工具。”-- Abracadabra

Aavegotchi 依靠Web3 Functions 定期回购 $GHST 代币。通过利用 Paraswap 的外部 API,由于路由在链下自动处理,因此可以保证交换获得最佳价格。

作为 Gelato 自动化服务的长期电力用户,Tangible 刚刚实施了 Web3 Functions,以持续检查是否已收集到足够的租金以作为其产生收入的房地产 NFT 的一部分分配给房地产代币持有者。当收集到足够的费用后,Gelato 会自动执行租金支付分配。

Rysk Finance 利用 Web3 Functions 对各种金库上的健康因素进行特定于职位的监控,以有效地管理抵押品。必要时,Gelato 的 Web3 Functions 会自动处理金库和流动资金池之间必要的抵押品转移。这种方法通过 100% 的正常运行时间来增强对任务执行的信心,从而消除了 Rysk 不得不自行处理这些流程的复杂性和资源。

关于 Gelato

Gelato 是一个 Web3 云平台,使开发者能够创建自动化的、gasless 的和链下感知的 Layer 2 链和智能合约。400 多个 web3 项目多年来一直依赖 Gelato 来促进 DeFi、NFT 和游戏中的数百万笔交易。

  • Gelato RaaS: 只需单击一下即可使用原生账户抽象和所有 Gelato 中间件来部署你自己量身定制的 ZK 或 OP L2 链。

  • Web3 Functions: 通过运行去中心化的云函数,将你的智能合约连接到链下数据和计算。

  • Automate: 通过以可靠、开发者友好和去中心化的方式自动执行交易来自动化你的智能合约。

  • Relay: 通过易于使用的 API 让你的用户可以访问可靠、强大且可扩展的 gasless 交易。

  • Account Abstraction SDK: Gelato 已与 Safe 合作,构建了一个成熟的账户抽象 SDK,将 Gelato 业界最佳的 gasless 交易功能与业界最安全的智能合约钱包相结合。

订阅我们的新闻通讯并打开你的 Twitter 通知,以获取有关 Gelato 生态系统的最新更新! 如果你有兴趣成为 Gelato 团队的一员并构建互联网的未来,请浏览空缺职位并在此处申请 here

  • 原文链接: gelato.cloud/blog/gelato...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
gelato
gelato
The Web3 Developer Cloud. Launch your own chain via our #1 Rollup-As-A-Service platform.