Publicación
Comparte tu conocimiento.

Oyentes y webhooks de Sui Move Events: ejemplos básicos de integraciones
Para las empresas y los desarrolladores, la integración con cadenas como Sui ofrece una oportunidad única para innovar y crear soluciones transformadoras. En esta serie, nos adentramos en el proceso de construir sobre Sui, arrojando luz sobre las complejidades de las integraciones y centrándonos en los oyentes de eventos y los webhooks, que han sido componentes integrales de TheMoveDev y SuiQL, la API de eventos de GraphQL para indexación de Sui creada por Peeranha.
- TheMoveDev GitHub;
- SuIQL Repositorio de GitHub;
Si tienes alguna duda, puedes hacerla aquí.
El código se implementa en TypeScript y se ejecuta en el entorno de nube de AWS mediante tecnologías sin servidor. Serverless se usa para las implementaciones. Serverless Offline se usa para ejecutar el código localmente.
Sui Events Listeners and Webhooks: una breve descripción
Las redes blockchain están inherentemente descentralizadas, lo que hace que la integración de datos en tiempo real sea una hazaña desafiante. Aquí es donde entran en juego los oyentes de eventos y los webhooks. Losdetectores de eventosson mecanismos que supervisan constantemente la actividad de la cadena de bloques, identificando y capturando eventos específicos de interés. LosWebhooks, por otro lado, son llamadas HTTP activadas por estos eventos, lo que permite una comunicación fluida entre diferentes aplicaciones.
La arquitectura de integración de Sui
Nuestro proceso de integración con Sui implicó una arquitectura integral que comprendía varios componentes clave.
Oyente de eventos
ElEvents Listener, una potente herramienta de ECS Fargate, desempeña un papel fundamental en nuestra configuración de integración. Sondea continuamente los nuevos eventos de los nodos Sui (nodo completo de Sui) para garantizar que nuestro sistema se mantenga actualizado con las últimas actividades de la cadena de bloques.
Lista de oyentes de Sui Events
Los eventos identificados por elEvents Listenerse añaden a laSui Listener Queue, una cola FIFO SQS. Esta cola actúa como almacenamiento intermediario, lo que permite procesar y gestionar los eventos de forma eficiente.
Invocador de webhook
ElWebhook Invoker, responsable de invocar los webhooks, es una función de Lambda que garantiza una comunicación fluida entre nuestro sistema y las aplicaciones externas. Actúa como un puente, lo que facilita la transmisión de los datos de los eventos a los puntos finales designados.
Event Bridge
ElEvent Bridge, un componente fundamental de nuestra arquitectura, invoca la lambdaWebhook Invokercada vez que se añaden nuevos elementos a laSui Listener Queue. Este mecanismo de activación en tiempo real garantiza la invocación rápida de los webhooks.
Webhook
ElWebhook, implementado como una función de AWS Lambda, procesa los eventos individuales recibidos de la cadena de bloques Sui. Este componente desempeña un papel crucial a la hora de interpretar los datos del evento y ejecutar acciones específicas en función del tipo de evento.
Flujo de trabajo: cómo se combina todo
Entender el flujo de trabajo es esencial para comprender el perfecto funcionamiento de nuestra arquitectura de integración.
Eventos: funcionamiento del oyente
- El detector de eventos funciona en un bucle continuo y realiza llamadas a la API de RPC para
suix_queryEvents
recuperar nuevos eventos asociados a un ID de paquete configurado. - El detector de eventos mantiene un valor de cursor en DynamoDB, lo que garantiza que lee los eventos cronológicamente.
Añadir eventos a Sui Listener Queue
- Siempre que el detector de eventos identifica nuevos eventos, los añade a la cola de oyentes de Sui para su posterior procesamiento.
Event Bridge Trigger
- El AWS Event Bridge monitoriza la cola de oyentes de Sui y activa la lambda del invocador de webhooks en cuanto se añaden nuevos elementos. Esto garantiza el procesamiento de eventos en tiempo real.
Invocación de webhook
- El invocador de webhooks, una vez activado, invoca la función Lambda de Webhook para cada evento presente en la cola.
Ejecución local: Dev Playground
- El complemento offline sin servidor se utiliza para ejecutar la solución localmente. Listener ejecuta una tarea de ECS en la nube. ECS no está disponible sin conexión a Internet sin servidor. Por ese motivo, descomente la
sui-events-listener
función lambda en serverless.yml. Esta función leerá los nuevos eventos de la cadena de bloques una vez por minuto. - Instalar dependencias:
npm install
- Instale DynamoDB:
npm run dynamodb:install
Si recibe un error Error getting DynamoDb local latest tar.gz location undefined: 403
en este paso, significa que todavía hay un problema conocido en serverless-dynamodb-local. Se discute aquí o puedes dejar tu pregunta en Sui Move Q&A.
node_modules/dynamodb-localhost/dynamodb/config.json URL to https://s3.us-west-2.amazonaws.com/dynamodb-local/dynamodb_local_latest.tar.gz
- En http
(añadir s a);
node_modules/dynamodb-localhost/dynamodb/installer.j
Cambiandohttp
ahttps
;- Para iniciar los servicios, ejecute:
npm run dev
Implementación de Event Listener en AWS
- Instale la CLI de AWS;
- Configurar la CLI de AWS;
aws configure
- Modificar los valores en
stages\test.yml
ystages\prod.yml
; - Iniciar el despliegue;
npm run deploy:test
o
npm run deploy:prod
Continuará...
En esta primera parte de nuestra serie sobre integraciones de Sui, hemos explorado los conceptos fundamentales de los oyentes de eventos y los webhooks, y hemos desentrañado la intrincada arquitectura que subyace a nuestra integración con la cadena de bloques Sui. Estén atentos a las próximas partes, en las que profundizaremos en nuestro viaje y compartiremos ideas, desafíos y soluciones innovadoras que han dado forma a nuestra experiencia.
No dudes en dejar tus preguntas aquí.
- Move
Move is an executable bytecode language used to implement custom transactions and smart contracts.