Bài Viết
Tài liệu học tập & hướng dẫn về Peera
Bài viết
2Giao dịch được Sui tài trợ - Ví dụ về tích hợp cơ bản
Theo truyền thống, người dùng tham gia vào các ứng dụng phi tập trung (DApps) phải đối mặt với một rào cản phổ biến: phí gas. Các khoản phí gas Sui này trong trường hợp của chúng tôi, được yêu cầu để thực hiện các giao dịch trên blockchain, thường ngăn cản người dùng mới nắm bắt đầy đủ tiềm năng của Web3. Tuy nhiên, tính năng giao dịch được tài trợ sáng tạo của Sui loại bỏ trở ngại này, trao quyền cho các nhà xây dựng trang trải phí gas cho các giao dịch ứng dụng của họ. Chức năng mang tính cách mạng này mở đường cho trải nghiệm người dùng liền mạch, khuyến khích việc áp dụng rộng rãi hơn các ứng dụng phi tập trung. TheMoveDev GitHub; SuiQL Kho lưu trữ GitHub; Nếu bạn có bất kỳ câu hỏi nào, bạn có thể hỏi họ tại đây. Quy trình giao dịch được tài trợ Quy trình giao dịch được tài trợ của Sui là một quy trình được sắp xếp tốt đảm bảo các giao dịch suôn sẻ và miễn phí cho người dùng cuối. Dưới đây là bảng phân tích các bước liên quan. Người dùng bắt đầu một hành động Quá trình bắt đầu khi người dùng khởi tạo GasLessTransactionDatagiao dịch, cho biết ý định của họ để thực hiện một hành động cụ thể trong DApp. DApp tạo khối giao dịch Sui Trọng tâm của quy trình giao dịch được tài trợ là khả năng tạo Khối giao dịch của DApp. Khối này gói gọn tất cả dữ liệu cần thiết, bao gồm ý định của người dùng, hành động sẽ được thực hiện và bất kỳ tham số liên quan nào. Truyền GasLessTransactionData Nó GasLessTransactionDatađược gửi đến nhà tài trợ, một người tham gia chính trong khuôn khổ giao dịch được tài trợ, với một yêu cầu chữ ký. Dữ liệu này đóng vai trò là nền tảng cho giao dịch sắp tới. Xác thực và xây dựng dữ liệu giao dịch Nhà tài trợ xác nhận giao dịch nhận được và xây dựngTransactionData, kết hợp các khoản phí gas cần thiết. Bước này đảm bảo rằng giao dịch được tài trợ thích hợp để thực hiện trên blockchain Sui. Ký giao dịch Nhà tài trợ ký tênTransactionData, cho biết sự chấp thuận và cam kết của họ đối với giao dịch. Khóa riêng cần thiết cho chữ ký này được lưu trữ an toàn trong AWS Secrets Manager, đảm bảo tính bảo mật tối đa. Xác minh và ký kép bởi Người dùng Chữ kýTransactionData, cùng với chữ ký của nhà tài trợ, được gửi lại cho người dùng. Người dùng xác minh chi tiết giao dịch và ký TransactionDatamột lần nữa, tạo một giao dịch ký kép sẵn sàng để thực hiện. Thực hiện giao dịch trên Sui Giao dịch ký kép được gửi đến mạng Sui thông qua một nút Sui (nút đầy đủ) hoặc nhà tài trợ. Sui xử lý giao dịch, thực hiện hành động được chỉ định trong DApp, tất cả mà không yêu cầu người dùng phải trả bất kỳ khoản phí gas nào. Thông báo người dùng Cuối cùng, người dùng được DApp thông báo rằng giao dịch được tài trợ và gửi đi. Thực hiện các giao dịch do Sui tài trợ: Quan điểm của nhà phát triển Để thực hiện các giao dịch được tài trợ, các nhà phát triển tương tác với API Sui hoặc API Giao dịch được tài trợ, sử dụng sui-sign-sponsored-transactionchức năng Lambda. Dưới đây là một cái nhìn thoáng qua về mã phía máy khách tạo điều kiện cho quá trình này: const response = await fetch('http://localhost:5000/blockchain/sui-sign-sponsored-transaction', { method: 'POST', headers: { Accept: 'application/json', 'Content-Type': 'application/json', }, body: JSON.stringify({ sender: wallet.address, module: libName, action, arguments: data, }), }); const sponsorSignedTransaction = await response.json(); const transactionBlock = TransactionBlock.from(sponsorSignedTransaction?.transactionBlockBytes); const senderSignedTransaction = await wallet.signTransactionBlock({ transactionBlock, }); const executeResponse = await provider.executeTransactionBlock({ transactionBlock: sponsorSignedTransaction?.transactionBlockBytes, signature: [sponsorSignedTransaction?.signatureBytes, senderSignedTransaction.signature], options: { showEffects: true }, requestType: 'WaitForLocalExecution', }); Mã phía khách hàng này hoạt động như một cầu nối giữa người dùng, nhà tài trợ và blockchain Sui, cho phép thực hiện liền mạch các giao dịch miễn phí gas. Kết luận Tính năng giao dịch được tài trợ của Sui thể hiện một sự thay đổi mô hình trong thế giới các ứng dụng phi tập trung, loại bỏ rào cản đáng kể đối với người dùng. Thông qua việc khám phá chức năng sáng tạo này, chúng tôi đã thu được những hiểu biết có giá trị đã định hình cách tiếp cận của chúng tôi để xây dựng DApps thân thiện với người dùng. Hãy để lại câu hỏi của bạn ở đây.
- Move
0Trì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. TheMoveDev GitHub; SuiQL Kho lưu trữ GitHub; 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 Cài đặt AWS CLI; Định cấu hình AWS CLI; aws configure Sửa đổi giá trị trong stages\test.ymlvàstages\prod.yml; 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
- 265
- 253
- 246
- 231
- 227
- 206
- 203
- 193
- 171
- 167
- Sui
- IPFS
- Move CLI
- SDKs and Developer Tools
- Move
- Architecture
- Kubo
- IPNS
- NFT Ecosystem
- IPFS Node