Mysten Labs sta rendendo open source il Sui Gas Pool alla comunità degli sviluppatori Sui. Questo servizio innovativo è progettato per sponsorizzare i pagamenti del gas per le transazioni su Sui su larga scala, rispondendo a importanti esigenze relative all'onboarding degli utenti per app con elevate esigenze di concorrenza.

Il supporto nativo di Sui per le transazioni sponsorizzate consente a una transazione di utilizzare una moneta gas di proprietà di un indirizzo diverso da quello del mittente per il pagamento del gas. Questa funzionalità consente a un servizio di sovvenzionare i costi di transazione dei propri utenti, migliorando in modo significativo l'esperienza di onboarding per gli utenti nuovi a Web3. Essere in grado di iniziare senza finanziare un portafoglio migliora significativamente l'esperienza dell'utente fornendo maggiore flessibilità e facilità d'uso. Nonostante questi vantaggi, i creatori di app spesso devono affrontare le complessità legate alla gestione dei pagamenti del gas su larga scala.

Il Sui Gas Pool consente alle app di offrire facilmente migliori esperienze di onboarding agli utenti attraverso la sponsorizzazione dei pagamenti del gas su larga scala. Inoltre, il Sui Gas Pool allevia l’onere che devono affrontare le app che gestiscono transazioni altamente simultanee, consentendo loro di semplificare le proprie operazioni attraverso la sponsorizzazione del gas gestita in modo efficiente.

Come funziona un pool di gas Sui

Il Sui Gas Pool è stato sviluppato con due obiettivi principali in mente: scalabilità orizzontale e generalità. Il sistema può essere facilmente scalato aggiungendo più istanze per soddisfare richieste di throughput più elevate, garantendo che possa gestire maggiori volumi di transazioni. È inoltre progettato per essere generico, consentendo a qualsiasi costruttore di integrarlo e gestirlo come servizio autonomo o come parte del proprio sistema.

Quando si inizializza un pool di gas, interroga tutte le monete gas dedicate alle transazioni di sponsorizzazione di proprietà dell'indirizzo dello sponsor, quindi le divide in monete gas più piccole con un saldo iniziale target configurabile. Queste monete gas vengono quindi aggiunte al database del pool di gas che gestisce le monete gas disponibili e le prenotazioni di monete gas. 

Finanziare il pool di gas è semplice: è sufficiente inviare una moneta di gas di grandi dimensioni all'indirizzo dello sponsor e il pool di gas la rileverà ed elaborerà automaticamente. Per garantire che i finanziamenti all'interno del pool di gas siano mantenuti, il sistema controlla periodicamente la presenza di eventuali monete di gas di grandi dimensioni possedute dallo sponsor e quindi le suddividono prima di aggiungerle al pool di gas.

Il servizio di pool di gas gestisce un server RPC, con il controllo delle autorizzazioni gestito tramite un token di portatore segreto nelle richieste HTTP. Il flusso di lavoro dell'interazione è il seguente:

  1. Il client invia una richiesta Reserve_Gas al pool di gas per riservare monete di gas che soddisfano il budget di gas specificato.

  2. Il cliente allega le monete gas alla transazione e ottiene la firma dell'utente sulla transazione.

  3. Il client invia la transazione firmata dall'utente al pool di gas tramite la richiesta di esecuzione_transazione.

  4. Il pool di gas firma la transazione, la invia a un nodo completo per l'esecuzione e rilascia le monete di gas.

Ridimensionare un pool di gas Sui

Il servizio Sui Gas Pool si adatta in modo efficiente attraverso diversi meccanismi. 

  1. Divisione automatizzata delle monete del gas: la divisione automatizzata delle monete del gas crea molti oggetti più piccoli delle monete del gas, consentendo una maggiore produttività. 

  2. Esecuzione controllata delle transazioni: non sono necessarie euristiche di attesa conservative poiché il gas pool mantiene il pieno controllo sull'esecuzione delle transazioni, garantendo che le monete del gas vengano rilasciate tempestivamente.

  3. Persistenza dei dati centralizzata: la persistenza dei dati viene gestita tramite l'archiviazione Redis centrale, consentendo l'esecuzione dei singoli server del pool di gas senza requisiti di persistenza dei dati locali o ripristino in caso di arresto anomalo. Ciò consente agli sviluppatori di app di eseguire tutti i server di gas pool necessari per indirizzo dello sponsor con un sovraccarico minimo.

  4. Sponsor e servizi multipli: il sistema può espandersi ulteriormente avendo più sponsor e implementando più servizi di pool di gas.

Iniziare

Rispondendo a queste esigenze e implementando una soluzione solida e scalabile, Sui Gas Pool migliora significativamente l'esperienza utente e l'efficienza operativa delle app su Sui. Enoki, la piattaforma di esperienza del cliente di Mysten Lab, utilizza già Sui Gas Pool per la sua funzionalità di transazione sponsorizzata. Attraverso il suo utilizzo in Enoki, Sui Gas Pool dimostra la sua affidabilità ed efficienza in un ambiente di produzione, evidenziando la sua capacità di migliorare l'esperienza utente e l'efficienza operativa per le app su Sui.

Rendere open source il componente Sui Gas Pool garantisce che l’intera comunità Sui possa scalare efficacemente le transazioni sponsorizzate, supportando nuove app con ampie basi di utenti.

Per saperne di più sul Sui Gas Pool, visita il repository GitHub. Non esitate a contattare gli ingegneri per qualsiasi domanda o problema riscontrato.