Move.

帖子

分享您的知识。

article banner.
MumiTroll.
Oct 31, 2023
文章

Sui Move 事件监听器和网络挂钩-基本集成示例

对于企业和开发人员而言,与Sui这样的连锁店整合为创新和创建变革性解决方案提供了难得的机会. 在本系列中,我们将深入探讨我们在Sui基础上构建的旅程,阐明集成的复杂性,重点关注事件侦听器和网络挂钩,它们一直是Peeranha开发的Sui索引GraphQL事件API的ThemoveDev和SuiQL不可或缺的组成部分.

-themoveDev GitHub; -SuiQL GitHub 存储库

如果你有任何问题,可以问他们 这里.

该代码在 TypeScript 中实现,并使用无服务器技术在 AWS 云环境中运行. 无服务器 用于部署. 无服务器离线 用于在本地运行代码.

Sui 事件监听器和 Webhook:简要概述

区块链网络本质上是去中心化的,这使得实时数据集成成为一项具有挑战性的壮举. 这就是事件监听器和网络挂钩发挥作用的地方. 事件监听器是持续监控区块链活动、识别和捕获感兴趣的特定事件的机制. 另一方面,Webhooks是由这些事件触发的 HTTP 回调,允许不同应用程序之间的无缝通信.

Sui 集成架构

我们与 Sui 的整合之旅涉及一个由多个关键组件组成的综合架构.

事件监听器

事件监听器是一项强大的 ECS Fargate 任务,在我们的集成设置中起着关键作用. 它不断轮询来自Sui节点(Sui全节点)的新事件,确保我们的系统与最新的区块链活动保持同步.

Sui 事件监听器队列

事件侦听器识别的事件将添加到Sui 侦听器队列(一个 FIFO SQS 队列)中. 该队列充当中间存储,可实现高效的事件处理和管理.

Webhook 调用器

Webhook 调用器是一个 Lambda 函数,负责调用 webhook,可确保我们的系统和外部应用程序之间的无缝通信. 它充当桥梁,便于将事件数据传输到指定端点.

事件桥

事件桥是我们架构的关键组成部分,每当有新项目添加到Sui侦听器队列时,它都会调用Webhook调用器Lambda. 这种实时触发机制可确保及时调用 webhook.

Webhook

Webhook作为 AWS Lambda 函数实现,用于处理从 Sui 区块链接收到的单个事件. 该组件在解释事件数据和根据事件类型执行特定操作方面起着至关重要的作用.

工作流程:这一切是如何融合在一起的

了解工作流程对于掌握我们集成架构的无缝操作至关重要.

事件监听器操作

-事件监听器连续循环运行,调用 RPC API suix_queryEvents以检索与已配置的软件包 ID 关联的新事件. -事件监听器在 DynamoDB 中保留游标值,确保它按时间顺序读取事件.

向 Sui 监听器队列添加事件

-每当事件监听器发现新事件时,它都会将它们添加到 Sui 侦听器队列中以进行进一步处理.

事件桥触发器

-AWS 事件桥监控 Sui 侦听器队列,并在添加新项目后立即触发 Webhook 调用器 Lambda. 这确保了实时事件处理.

调用 Webhook

-Webhook 调用器一旦触发,就会为队列中存在的每个事件调用 Webhook Lambda 函数.

在本地运行-开发游乐场

-无服务器离线插件用于在本地运行解决方案. 监听器在云端的 ECS 任务中运行. ECS 不适用于无服务器离线. 出于这个原因,取消注释 serverless.yml sui-events-listener中的 lambda 函数. 此函数将每分钟从区块链读取一次新事件. -安装依赖项:

npm install

-安装 DynamoDB:

npm run dynamodb:install

如果您Error getting DynamoDb local latest tar.gz location undefined: 403在此步骤中遇到错误,则表示无服务器 dynamodb-local 中仍然存在已知问题. 此处 对此进行了讨论,或者你可以在 Sui Move 问答 上留下你的问题.

-输入node_modules/dynamodb-localhost/dynamodb/config.json URL to https://s3.us-west-2.amazonaws.com/dynamodb-local/dynamodb_local_latest.tar.gz(将 s 添加到http); -node_modules/dynamodb-localhost/dynamodb/installer.j httphttps; -要启动服务,请运行:

npm run dev

将事件侦听器部署到 AWS

  1. 安装 AWS CLI;
  2. 配置 AWS CLI;
aws configure
  1. 修改stages\test.yml和中的值stages\prod.yml
  2. 开始部署;
npm run deploy:test

要么

npm run deploy:prod

待续...

在我们关于Sui集成系列的第一部分中,我们探讨了事件监听器和网络挂钩的基本概念,揭示了我们与Sui区块链集成背后的复杂架构. 请继续关注即将到来的部分,我们将更深入地了解我们的旅程,分享见解、挑战和塑造我们体验的创新解决方案.

随意 这里 留下你的问题.

  • Move
1
分享
评论
.
我们使用 cookie 确保您在我们的网站上获得最佳体验。
更多信息