Game of Zones: Aggiornamento Tecnico dalla Interchain GmbH

Catdotfish
The Cosmos Guardian
4 min readMay 16, 2020

Traduzione tratta dall’articolo originale “Technical Game of Zones Update from Interchain GmbH” scritto da Tess Rinearson.

Il Game of Zones ha diversi obiettivi: educare il pubblico riguardo all’IBC; mettere alla prova il sistema in un contesto conflittuale e competitivo; far luce sulle potenziali vulnerabilità del protocollo e dell’implementazione IBC. All’inizio di questa settimana, i partecipanti al Game of Zones ci hanno aiutato con successo a identificare un problema. Non era esattamente un bug nel protocollo IBC, ma era comunque un problema. Siamo entusiasti di essere riusciti a correggerlo.

Vi racconterò di più tra un attimo, ma prima, un po’ di contesto:

Lunedì il team di Iqlusion, noto anche come “Cosmos Devs”, ha pubblicato un aggiornamento relativo alla gara Game of Zones. In breve, la linea temporale è stata adattata al problema sopra menzionato, che è emerso alla fine della Fase 1. (Per maggiori dettagli sulla logistica del Game of Zones, si veda il post di Iqlusion).

Oggi mi occupo di questo problema per conto del team di Interchain GmbH, che rappresenta il nucleo centrale del team di sviluppo di IBC. (Stiamo fornendo assistenza a Iqlusion nella gestione del Game of Zones). Condividerò un’analisi più approfondita del bug e della sua origine, così come i prossimi passi che faremo insieme, per garantire una conclusione ottimale del Game of Zones e, cosa ancora più importante, un solido Cosmos Network.

🐛 Il Bug

Alla conclusione della Fase 1 del Game of Zones, ai partecipanti è stato chiesto di aggiornare il loro software ad un nuovo commit di Gaia e del Cosmos SDK, e di riavviare i loro nodi. Dopo averlo fatto, un gran numero di partecipanti ha riferito che le loro chain si stavano fermando, e altri partecipanti hanno riferito di aver visto errori di “ invalid port”.
Il team di Interchain GmbH, ha iniziato a indagare il lunedì mattina, ed è stato in grado di identificare il problema già quel pomeriggio e di creare una patch. Il team ha poi lavorato con i membri della community per verificare la risoluzione del problema attraverso diversi nodi. Quella notte, il team di Iqlusion ha aggiornato la timeline del Game of Zones.

🔍 Causa scatenante

Il bug è venuto dal metodo con cui il modulo delle funzionalità veniva inizializzato all’interno di Gaia. E’ stato erroneamente reinizializzato con un context cache, il che significa che i cambiamenti fatti durante l’inizializzazione dell’applicazione non sono stati correttamente implementati nel sistema.
Siamo stati in grado di identificare rapidamente questo problema, perché si trattava, in effetti, di un bug noto. In effetti era stato risolto con una patch per il Cosmos SDK, una settimana prima!
Quindi, come ha fatto questo bug a persistere in Gaia, anche dopo che è stato identificato e patchato nel Cosmos SDK?

💡 Causa principale

Siamo stati in grado di individuare il codice del bug, ma siamo anche riusciti a trovare il problema di fondo: dato che i team addetti allo sviluppo si sono decentralizzati nell’ecosistema Cosmos, la responsabilità del mantenimento di Gaia non è sempre stata chiara. Anche se Gaia gioca un ruolo chiave come daemon che esegue il Cosmos Hub, ha un ciclo di vita dello sviluppo del software diverso da quello del Cosmos SDK e del Tendermint Core. Più concretamente: Gaia non viene aggiornato con la stessa frequenza, e le modifiche alle sue connessioni potrebbero non essere incorporate immediatamente.
In questo caso, questo disallineamento ha creato problemi.

👣 Passi successivi

Nell’immediato, Iqlusion sarà responsabile del porting degli aggiornamenti dell’SDK su Gaia. Questa disposizione garantirà che le correzioni apportate a Gaia vengano applicate, e che Gaia sia mantenuto in modo proattivo, non solo durante il Game of Zones, ma anche oltre. Il team di Interchain GmbH darà una mano anche in questo caso, rivedendo tutte le release di Gaia e fornendo un secondo paio di occhi su questo importantissimo software.

Il team di Interchain GmbH inizierà anche a dare una mano con lo sviluppo dei relayer, i test e il supporto tecnico necessario nel corso del Game of Zones. La verità è che il Game of Zones ha finito per essere molto più popolare di quanto chiunque di noi si aspettasse! La nostra community è una vera e propria benedizione, ma grazie a voi il Game of Zones è diventato un progetto più grande di quanto un team possa gestire da solo.

Come ho scritto all’inizio di questo post: il Game of Zones è un’opportunità per scoprire le vulnerabilità del protocollo e del software IBC; oggi abbiamo scoperto una lacuna nella nostra organizzazione e nella comunicazione a livello di ecosistema. E stiamo rattoppando queste cose, proprio come rattoppiamo il nostro codice. Questi cambiamenti alla fine ci aiuteranno a continuare il Game of Zones in modo efficace e consapevole, e alla fine ci permetteranno di lanciare l’IBC in modo sicuro e stabile sul Cosmos Hub.

Il team di Interchain GmbH vuole ringraziare tutti per la loro costante partecipazione, e soprattutto per il loro feedback, durante questo processo. Non vediamo l’ora di passare alla prossima fase — non solo di Game of Zones, ma dell’Ecosistema Cosmos.Grazie per aver lavorato con noi per rendere il tutto il più celestialepossibile.

Tess Rinearson
VP of Engineering, Tendermint Core.

--

--