应用程序和其他平台可以通过多种不同的方式进行通信。然而,最有效和最高效的方式是通过 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 请求与目标系统进行通信。此外,除了通知某个事件已发生之外,源系统通常还会以“请求负载”的形式包含其他信息。
可以想象,在 Web2 和 Web3 开发实践中,根据给定条件监控源系统至关重要。由于这是一项如此重要的任务,本指南将教您如何通过为以太坊设置 webhook 来监控和监听实时区块链事件!
然而,在这样做之前,我们将进一步探讨以太坊环境下 webhook 的含义!
什么是以太坊 Webhook?
在对传统 webhook 有了更深刻的理解之后,本节将深入探讨它们在以太坊背景下的含义。因此,如果您想了解有关以太坊 webhook 的更多信息,请继续阅读,我们将回答“什么是以太坊 webhook? ”这个问题。
与传统 webhook 一样,以太坊 webhook 具有相同的用途:实现跨系统通信。然而,情况略有不同,因为 Web3 通过智能合约在基于区块链的基础设施上运行。因此,Web3 开发人员使用以太坊 webhook 来监听区块链事件并实时接收请求负载。这包括从简单的交易到发出事件的更复杂的智能合约的所有内容。
此外,与传统的 webhook 非常相似,您可以使用以太坊 webhook 来避免不断轮询数据库并检查区块链状态是否已更新的冗余任务。因此,可以设置以太坊 webhook 来自动接收有关您感兴趣的事件的请求负载。
因此,如果您设置了以太坊 webhook,以太坊区块链(源系统)会根据您指定的智能合约事件将数据推送到您的 webhook URL。此外,目标系统还可以发送包含 HTTP 状态代码的回调消息。这会通知源系统请求的数据已成功交付。
以太坊 Webhook 示例
现在,为了使上面的解释更加直观,本节将简要概述以太坊 webhook 示例。假设您正在使用加密货币交易所在链上交易资产。交易时,您会接收和发送资产。但是,要将资产接收到您的加密钱包,您不必总是积极交易。
在这种情况下,交易所能够发送有关您的新资产的通知是有益的。此外,为了自动化此过程,交易所可以监控您的 Web3 钱包,以便在发生交易时接收 webhook。在这种情况下,区块链是源系统,您使用的交易所是目标系统。
尽管如此,由于以太坊 webhook 是实时监控链上事件最有效、最高效的方式,因此了解如何使用 webhook 显然非常有益。因此,如果您想了解如何为以太坊设置 webhook,请继续阅读下一节。通过这样做,您将看到如何创建具有与上述示例类似功能的 webhook!
以太坊 Webhook – 如何为以太坊设置 Webhook
现在您对以太坊 webhook 有了更深入的了解,是时候直接进入文章的中心部分并向您展示如何使用 Moralis 的Streams 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:
步骤 1:访问以下网站:“ https://admin.moralis.com/streams ”,然后单击“+ 创建流”按钮:
第 2 步:添加名称并选择要跟踪的事件类型。在本例中,我们将选择“合同事件”:
步骤 3:指定要监控的事件。在今天的教程中,我们将选择“常见事件”,然后选择“代币转移”:
步骤 4:添加标签并选择您想要包含在回复中的其他信息:
步骤 5:输入您要跟踪的地址。在今天的教程中,我们仅添加 USDC 合约:
步骤 6:选择要跟踪的链。由于我们需要来自以太坊链的信息,因此我们只需选择此网络:
步骤 7:测试流(可选):
步骤 8:添加 webhook URL,单击“继续”,然后点击“保存并部署”:
部署流后,每当发生 USDC 转移时,您都会收到实时更新。响应可能如下所示:
恭喜!您现在知道如何使用 Moralis 的 UI 设置流。从这里开始,您可以按照上述步骤运行其他合约和钱包事件的流!
本节将教您如何使用 Moralis 的 JS SDK 以编程方式设置以太坊 webhook。首先,打开您喜欢的 IDE(集成开发环境)并创建一个包含 JavaScript 文件的新项目文件夹。接下来,确保您已安装所有 Moralis 依赖项。例如,如果您使用的是 NodeJS,您可以通过打开一个新终端并运行“ npm install moralis ”来执行此操作。
完成 JS 项目设置后,您可以继续初始化 Moralis 的 SDK。为此,请在 JS 文件的顶部添加以下代码片段:
如果您检查上面的代码,您会很快注意到您需要添加您的 Moralis API 密钥。为此,您需要一个 Moralis 帐户。因此,如果您还没有,请免费创建您的 Moralis 帐户!
有了账户后,您可以通过登录并导航到“主页”选项卡来找到密钥。从那里,复制 Web3 API 密钥并在代码中替换“ YOUR_API_KEY ”以完成 Moralis 的初始化:
接下来,您必须创建一个新的“流”对象并指定一些属性。这包括链、描述、标签和您的 webhook URL。您将在下面找到一个示例:
最后,通过调用“ Moralis.Streams.add(stream) ”函数并以“ stream ”对象作为参数创建一个新的流,添加一个“ { id } ”对象,以及您要监控的钱包地址:
因此,你现在应该有一个如下所示的 JS 文件:
代码就这些了!剩下的就是通过在终端中输入以下内容并按回车键来运行程序:
强制以太坊测试 Webhook
如果您已经完成了这一步,那么您现在可以创建流以两种不同的方式接收以太坊 webhook。但是,无论您是通过 Moralis Web UI 还是以编程方式设置以太坊 webhook,都没有关系;启动新流时,您始终会收到测试 webhook。
此外,为了使流可运行,您必须返回状态代码 200,您将在下面找到测试主体:
一旦返回状态代码,您就应该可以开始并成功设置接收以太坊 webhook 的流。因此,当您监控的地址实际参与传出/传入交易时,您将收到包含交易详细信息的以太坊 webhook!
如果您在本教程中遇到任何问题,请务必查看 Moralis Web3 Streams API 的官方文档。此外,您可以加入 Moralis Discord 频道,随时获得我们社区工程师的出色帮助!
以太坊 Webhooks – Moralis 的 Firebase 集成
如果您已经关注到这里,您就会知道以太坊 webhook 对于 Web3 开发至关重要,因为它们使您能够实时监听任何链上事件!此外,您还知道如何通过以太坊 webhook 传输区块链数据。但是,即使您现在熟悉了流,您也需要一种方法将数据集成到后端。这就是 Moralis 的 Firebase Streams API 集成发挥作用的地方!