GTokenTool全网最好的代币发行工具平台
当前位置:首页 >> 加密百科 >> 以太坊 Webhook – 它们是什么以及如何在以太坊中使用 Webhook

以太坊 Webhook – 它们是什么以及如何在以太坊中使用 Webhook

admin 加密百科 54

应用程序和其他平台可以通过多种不同的方式进行通信。然而,最有效和最高效的方式是通过 webhook,这对于当今 Web2 内的数字通信至关重要。此外,webhook 在 Web3 开发领域也发挥着同样重要的作用。因此,开发人员迫切需要工具来有效地设置 webhook,以便将区块链数据实时传输到他们的应用程序的后端!因此,如果您想了解更多信息,请继续阅读以探索设置 webhook 以将链上数据传输到您的项目中的最便捷方式! 

由于以太坊是最重要的 Web3 开发平台,本指南重点介绍针对以太坊的 webhook。因此,如果您坚持到最后,本文将教您如何使用 Moralis 的 Web3 Streams API 创建您自己的以太坊 webhook。 

此外,Streams API 只是 Moralis 的Web3 API使区块链开发更容易实现的一个例子。要了解有关 Moralis 功能的更多信息,我们建议查看Auth API - 这是一种使 Web3 身份验证变得更容易的工具。 

Webhook 是什么?其用途是什么? 

在当今高度互联的在线空间中,系统需要有效的通信方式,因为它们无法孤立地最佳运行。这就是 webhook 大显身手的地方。Webhook 可实现两个系统之间的高效通信,使它们能够相互“对话”。简而言之,webhook 是基于特定事件在源系统(发送方)中触发的 HTTP 请求,这些请求会被发送到目标系统(接收方)。

源系统可以通过发送到特定 webhook URL 的这些 HTTP 请求与目标系统进行通信。此外,除了通知某个事件已发生之外,源系统通常还会以“请求负载”的形式包含其他信息。 

以太坊 webhook。

可以想象,在 Web2 和 Web3 开发实践中,根据给定条件监控源系统至关重要。由于这是一项如此重要的任务,本指南将教您如何通过为以太坊设置 webhook 来监控和监听实时区块链事件!  

然而,在这样做之前,我们将进一步探讨以太坊环境下 webhook 的含义! 

什么是以太坊 Webhook? 

在对传统 webhook 有了更深刻的理解之后,本节将深入探讨它们在以太坊背景下的含义。因此,如果您想了解有关以太坊 webhook 的更多信息,请继续阅读,我们将回答“什么是以太坊 webhook? ”这个问题。

图表展示了以太坊 webhook 如何工作。

与传统 webhook 一样,以太坊 webhook 具有相同的用途:实现跨系统通信。然而,情况略有不同,因为 Web3 通过智能合约在基于区块链的基础设施上运行。因此,Web3 开发人员使用以太坊 webhook 来监听区块链事件并实时接收请求负载。这包括从简单的交易到发出事件的更复杂的智能合约的所有内容。 

此外,与传统的 webhook 非常相似,您可以使用以太坊 webhook 来避免不断轮询数据库并检查区块链状态是否已更新的冗余任务。因此,可以设置以太坊 webhook 来自动接收有关您感兴趣的事件的请求负载。 

图表比较了 API 和 webhook 之间的请求序列。

因此,如果您设置了以太坊 webhook,以太坊区块链(源系统)会根据您指定的智能合约事件将数据推送到您的 webhook URL。此外,目标系统还可以发送包含 HTTP 状态代码的回调消息。这会通知源系统请求的数据已成功交付。 

以太坊 Webhook 示例 

现在,为了使上面的解释更加直观,本节将简要概述以太坊 webhook 示例。假设您正在使用加密货币交易所在链上交易资产。交易时,您会接收和发送资产。但是,要将资产接收到您的加密钱包,您不必总是积极交易。

在这种情况下,交易所能够发送有关您的新资产的通知是有益的。此外,为了自动化此过程,交易所可以监控您的 Web3 钱包,以便在发生交易时接收 webhook。在这种情况下,区块链是源系统,您使用的交易所是目标系统。 

尽管如此,由于以太坊 webhook 是实时监控链上事件最有效、最高效的方式,因此了解如何使用 webhook 显然非常有益。因此,如果您想了解如何为以太坊设置 webhook,请继续阅读下一节。通过这样做,您将看到如何创建具有与上述示例类似功能的 webhook!

以太坊 Webhook – 如何为以太坊设置 Webhook 

现在您对以太坊 webhook 有了更深入的了解,是时候直接进入文章的中心部分并向您展示如何使用 Moralis 的Streams API来构建它们! 

流 API。

使用 Moralis,您可以通过以下两种方式之一设置您的第一个流,以在所有网络和第 2 层解决方案上接收以太坊 webhook: 

  • 使用 Moralis 的管理面板– 您的第一个选择是使用 Moralis 的 Web UI(用户界面)构建流。 

  • 以编程方式- 另一种选择是使用 Moralis 的 API 或 SDK 以编程方式创建流。 

上述任一选项都非常适合设置流以接收以太坊 webhook。此外,使用任何一种替代方案都相对容易。但是,为了使本指南尽可能简单明了,本文提供了对这两种方法的全面介绍!此外,为了说明 Moralis 的 Streams API 的可访问性,您将学习设置以太坊 webhook 以传输有关 Web3 钱包的链上数据具体来说,您将学习如何使用以太坊 webhook 根据指定的钱包地址监控传入和传出交易。 

尽管如此,让我们首先仔细看看如何通过 Moralis 的 UI 设置以太坊 webhook! 

通过 Moralis 的管理面板 

本节将向您展示如何使用 Moralis 的 Web UI 设置流以通过以太坊 Webhook 接收链上数据。更具体地说,我们将向您展示如何实时监控 USDC 交易。要继续,您需要一个 Moralis 帐户。因此,如果您还没有这样做,请立即注册 Moralis!

拥有帐户后,您可以按照以下步骤设置流以获取以太坊 webhook:

  • 第 2 步:添加名称并选择要跟踪的事件类型。在本例中,我们将选择“合同事件”:

  • 步骤 3:指定要监控的事件。在今天的教程中,我们将选择“常见事件”,然后选择“代币转移”:

  • 步骤 4:添加标签并选择您想要包含在回复中的其他信息:

  • 步骤 5:输入您要跟踪的地址。在今天的教程中,我们仅添加 USDC 合约:

  • 步骤 6:选择要跟踪的链。由于我们需要来自以太坊链的信息,因此我们只需选择此网络:

  • 步骤 7:测试流(可选):

  • 步骤 8:添加 webhook URL,单击“继续”,然后点击“保存并部署”:

部署流后,每当发生 USDC 转移时,您都会收到实时更新。响应可能如下所示:

//...
{
 交易哈希:'0x1a3807aa7f7d1f4806245115d7b8a32ec105ce20f2b4a8ca31f9a305127c0201'
 日志索引:'409'
 合约:'0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
 触发方式:[数组]
 来自:'0x47fbac3d17dcd481c3bb428adde4272b458cf724'
 更改为:'0x8ad599c3a0ff1de082011efddc58f1908eb6e6d8'
 值:'5187003613'
 代币名称:'USD Coin'
 代币符号:'USDC'
 tokenDecimals: '6'
 带小数的值:'5187.003613'
 可能的垃圾邮件:false
}
/...

恭喜!您现在知道如何使用 Moralis 的 UI 设置流。从这里开始,您可以按照上述步骤运行其他合约和钱包事件的流!

本节将教您如何使用 Moralis 的 JS SDK 以编程方式设置以太坊 webhook。首先,打开您喜欢的 IDE(集成开发环境)并创建一个包含 JavaScript 文件的新项目文件夹。接下来,确保您已安装所有 Moralis 依赖项。例如,如果您使用的是 NodeJS,您可以通过打开一个新终端并运行“ npm install moralis ”来执行此操作。 

完成 JS 项目设置后,您可以继续初始化 Moralis 的 SDK。为此,请在 JS 文件的顶部添加以下代码片段: 

'moralis'导入Moralis
“@moralisweb3/common-evm-utils”导入{ EvmChain }
道德。开始{
 apiKey: '您的API密钥' ,
}

如果您检查上面的代码,您会很快注意到您需要添加您的 Moralis API 密钥。为此,您需要一个 Moralis 帐户。因此,如果您还没有,请免费创建您的 Moralis 帐户!

有了账户后,您可以通过登录并导航到“主页”选项卡来找到密钥。从那里,复制 Web3 API 密钥并在代码中替换“ YOUR_API_KEY ”以完成 Moralis 的初始化: 

接下来,您必须创建一个新的“”对象并指定一些属性。这包括链、描述、标签和您的 webhook URL。您将在下面找到一个示例: 

const流 = {
 chains: [ EvmChain. ETHEREUM , EvmChain. POLYGON ] , // 要监控的区块链列表
 描述:“监控 Bob 的钱包” // 你的描述
 tag: "bob" , // 给它一个标签
 includeNativeTxs: true , // 选择要监控的事件
 webhookUrl: "https://YOUR_WEBHOOK_URL" , // 用于接收事件的 Webhook URL,
}

最后,通过调用“ Moralis.Streams.add(stream) ”函数并以“ stream ”对象作为参数创建一个新的流,添加一个“ { id } ”对象,以及您要监控的钱包地址: 

const newStream = await Moralis.Streams.add ( stream ) ;
const { id } = newStream.toJSON ( ) ; // { id : 'YOUR_STREAM_ID', ...newStream }
// 现在我们将 Bob 的地址附加到流中
常量地址 = “0x68b3f12d6e8d85a8d3dbbc15bba9dc5103b888a4”
等待Moralis。Streams。addAddress { address id }

因此,你现在应该有一个如下所示的 JS 文件: 

'moralis'导入Moralis
“@moralisweb3/common-evm-utils”导入{ EvmChain }
道德。开始{
 apiKey: '您的API密钥' ,
}
const流 = {
 chains: [ EvmChain. ETHEREUM , EvmChain. POLYGON ] , // 要监控的区块链列表
 描述:“监控 Bob 的钱包” // 你的描述
 tag: "bob" , // 给它一个标签
 includeNativeTxs: true , // 选择要监控的事件
 webhookUrl: "https://YOUR_WEBHOOK_URL" , // 用于接收事件的 Webhook URL,
}
const newStream = await Moralis.Streams.add ( stream ) ;
const { id } = newStream.toJSON ( ) ; // { id : 'YOUR_STREAM_ID', ...newStream }
// 现在我们将 bobs 地址附加到流中
常量地址 = “0x68b3f12d6e8d85a8d3dbbc15bba9dc5103b888a4”
等待Moralis。Streams。addAddress { address id }

代码就这些了!剩下的就是通过在终端中输入以下内容并按回车键来运行程序: 

节点“FILE_NAME”

强制以太坊测试 Webhook 

如果您已经完成了这一步,那么您现在可以创建流以两种不同的方式接收以太坊 webhook。但是,无论您是通过 Moralis Web UI 还是以编程方式设置以太坊 webhook,都没有关系;启动新流时,您始终会收到测试 webhook。

此外,为了使流可运行,您必须返回状态代码 200,您将在下面找到测试主体: 

{
 “abi” { }
 “堵塞” {
   “哈希” “”
   “数字” ””
   “时间戳” “”
 }
 "发送" : [ ] ,
 “txsInternal” : [ ]
 “日志” [ ]
 "链编号" : "" ,
 “标签” ””
 ID
 “确认” 真实
 “重试” 0
 “erc20Approvals” : [ ]
 "erc20Transfers" : [ ]
 “nftApprovals” [ ]
 “nftTransfers” [ ]
}

一旦返回状态代码,您就应该可以开始并成功设置接收以太坊 webhook 的流。因此,当您监控的地址实际参与传出/传入交易时,您将收到包含交易详细信息的以太坊 webhook! 

如果您在本教程中遇到任何问题,请务必查看 Moralis Web3 Streams API 的官方文档。此外,您可以加入 Moralis Discord 频道,随时获得我们社区工程师的出色帮助! 

加入 Moralis discord 和杂志。

加入 Moralis 的 Discord 频道和 Moralis 杂志

以太坊 Webhooks – Moralis 的 Firebase 集成 

如果您已经关注到这里,您就会知道以太坊 webhook 对于 Web3 开发至关重要,因为它们使您能够实时监听任何链上事件!此外,您还知道如何通过以太坊 webhook 传输区块链数据。但是,即使您现在熟悉了流,您也需要一种方法将数据集成到后端。这就是 Moralis 的 Firebase Streams API 集成发挥作用的地方! 

作者:GTokenTool一键发币平台

交流群:https://t.me/+Kz4u3xoDpFo3ZWY1

同类推荐