Move.

Bài viết

Chia sẻ kiến thức của bạn.

article banner.
MumiTroll.
Oct 31, 2023
Bài Viết

Trình nghe sự kiện Sui Move và Webhook - Ví dụ về tích hợp cơ bản

Đối với các doanh nghiệp và nhà phát triển, việc tích hợp với các chuỗi như Sui mang đến một cơ hội duy nhất để đổi mới và tạo ra các giải pháp chuyển đổi. Trong loạt bài này, chúng tôi đi sâu vào hành trình xây dựng trên Sui, làm sáng tỏ sự phức tạp của tích hợp, tập trung vào trình nghe sự kiện và webhook, vốn là thành phần không thể thiếu của TheMoveDev và SuiQL, Sui lập chỉ mục GraphQL Event API được tạo bởi Peeranha.

Nếu bạn có bất kỳ câu hỏi nào, bạn có thể hỏi họ tại đây.

Mã được triển khai trong TypeScript và chạy trong môi trường AWS Cloud bằng cách sử dụng các công nghệ không có máy chủ. Serverless được sử dụng để triển khai. Serverless Offline được sử dụng để chạy mã cục bộ.

Người nghe sự kiện Sui và Webhook: Tổng quan ngắn gọn

Các mạng blockchain vốn đã được phân cấp, làm cho việc tích hợp dữ liệu thời gian thực trở thành một kỳ tích đầy thách thức. Đây là nơi người nghe sự kiện và webhook phát huy tác dụng.** Người nghe sự kiệnlà cơ chế liên tục theo dõi hoạt động blockchain, xác định và nắm bắt các sự kiện cụ thể mà bạn quan tâm. Mặt khác, Webhooks**là các cuộc gọi lại HTTP được kích hoạt bởi các sự kiện này, cho phép giao tiếp liền mạch giữa các ứng dụng khác nhau.

Kiến trúc hội nhập Sui

Hành trình hội nhập của chúng tôi với Sui liên quan đến một kiến trúc toàn diện bao gồm một số thành phần chính.

Người nghe sự kiện

Người nghe sự kiện, một nhiệm vụ ECS Fargate mạnh mẽ, đóng một vai trò quan trọng trong thiết lập tích hợp của chúng tôi. Nó liên tục thăm dò các sự kiện mới từ các nút Sui (Sui full node), đảm bảo rằng hệ thống của chúng tôi luôn cập nhật các hoạt động blockchain mới nhất.

Hàng đợi người nghe sự kiện Sui

Các sự kiện được xác định bởiNgười nghe sự kiệnđược thêm vàoSui Listener Queue, một hàng đợi FIFO SQS. Hàng đợi này hoạt động như một bộ lưu trữ trung gian, cho phép xử lý và quản lý sự kiện hiệu quả.

Webhook Invoker

Chịu trách nhiệm gọi webhook,Webhook Invokerlà một chức năng Lambda đảm bảo giao tiếp liền mạch giữa hệ thống của chúng tôi và các ứng dụng bên ngoài. Nó hoạt động như một cầu nối, tạo điều kiện cho việc truyền dữ liệu sự kiện đến các điểm cuối được chỉ định.

Cầu sự kiện

Event Bridge, một thành phần quan trọng trong kiến trúc của chúng tôi, gọiWebhook InvokerLambda bất cứ khi nào các mục mới được thêm vàoSui Listener Queue. Cơ chế kích hoạt thời gian thực này đảm bảo các cuộc gọi webhook nhanh chóng.

Webhook

Webhook, được triển khai dưới dạng chức năng AWS Lambda, xử lý các sự kiện riêng lẻ nhận được từ blockchain Sui. Thành phần này đóng một vai trò quan trọng trong việc giải thích dữ liệu sự kiện và thực hiện các hành động cụ thể dựa trên loại sự kiện.

Quy trình làm việc: Tất cả kết hợp với nhau như thế nào

Hiểu quy trình làm việc là điều cần thiết để nắm bắt hoạt động liền mạch của kiến trúc tích hợp của chúng tôi.

Hoạt động người nghe sự kiện

  • Trình nghe sự kiện hoạt động trong một vòng lặp liên tục, thực hiện các cuộc gọi API RPC suix_queryEventsđể truy xuất các sự kiện mới được liên kết với ID gói đã định cấu hình.
  • Events Listener duy trì giá trị con trỏ trong DynamoDB, đảm bảo nó đọc các sự kiện theo thứ tự thời gian.

Thêm sự kiện vào Sui Listener Queue

  • Bất cứ khi nào Trình nghe sự kiện xác định các sự kiện mới, nó sẽ thêm chúng vào Sui Listener Queue để xử lý thêm.

Kích hoạt cầu sự kiện

  • AWS Event Bridge giám sát Hàng đợi Sui Listener và kích hoạt Webhook Invoker Lambda ngay khi các mục mới được thêm vào. Điều này đảm bảo xử lý sự kiện theo thời gian thực.

Kêu gọi Webhook

  • Webhook Invoker, sau khi được kích hoạt, gọi hàm Webhook Lambda cho mỗi sự kiện có trong hàng đợi.

Chạy cục bộ - Sân chơi dành cho nhà phát triển

  • Plugin ngoại tuyến không máy chủ được sử dụng để chạy giải pháp cục bộ. Trình nghe chạy trong tác vụ ECS trên đám mây. ECS không khả dụng cho ngoại tuyến không máy chủ. Vì lý do đó, bỏ nhận xét sui-events-listenerhàm lambda trong serverless.yml. Chức năng này sẽ đọc các sự kiện mới từ blockchain mỗi phút một lần.
  • Cài đặt phụ thuộc:
npm install

  • Cài đặt DynamoDB:
npm run dynamodb:install

Nếu bạn gặp lỗi ở Error getting DynamoDb local latest tar.gz location undefined: 403bước này thì điều đó có nghĩa là vẫn còn một vấn đề đã biết trong serverless-dynamodb-local. Nó được thảo luận ở đây hoặc bạn có thể để lại câu hỏi của mình trên Sui Move Q&A.

  • Trong node_modules/dynamodb-localhost/dynamodb/config.json URL to https://s3.us-west-2.amazonaws.com/dynamodb-local/dynamodb_local_latest.tar.gz(thêm s vàohttp);
  • Thay node_modules/dynamodb-localhost/dynamodb/installer.j đổi httpthànhhttps;
  • Để bắt đầu dịch vụ chạy:
npm run dev

Triển khai Trình nghe sự kiện lên AWS

  1. Cài đặt AWS CLI;
  2. Định cấu hình AWS CLI;
aws configure
  1. Sửa đổi giá trị trong stages\test.ymlstages\prod.yml;
  2. Bắt đầu triển khai;
npm run deploy:test

hoặc là

npm run deploy:prod

Tiếp tục...

Trong phần đầu tiên của loạt bài về tích hợp Sui, chúng tôi đã khám phá các khái niệm cơ bản về trình nghe sự kiện và webhook, làm sáng tỏ kiến trúc phức tạp đằng sau sự tích hợp của chúng tôi với blockchain Sui. Hãy theo dõi các phần sắp tới, nơi chúng tôi sẽ đi sâu hơn vào hành trình của mình, chia sẻ những hiểu biết sâu sắc, thách thức và các giải pháp sáng tạo đã định hình trải nghiệm của chúng tôi.

Hãy để lại câu hỏi của bạn ở đây.

  • Move
1
Chia sẻ
Bình luận
.
Chúng tôi sử dụng cookie để đảm bảo bạn có trải nghiệm tốt nhất trên trang web của chúng tôi.
Thêm thông tin