Cosmos SDK: Presentazione di Twilight (v0.47)

blog originale: https://medium.com/the-interchain-foundation/cosmos-sdk-introducing-twilight-v0-47-c606c2191726

Twilight è una versione importante che introduce nuove funzionalità e miglioramenti che consentiranno agli sviluppatori di creare applicazioni più sofisticate e ad alte prestazioni nell'ecosistema Cosmos.

La versione Twilight del Cosmos SDK (versione 0.47) porta una serie di cambiamenti alla piattaforma, mirati a migliorare le prestazioni complessive e la funzionalità di tutte le catene basate su Cosmos SDK.

Di seguito sono riportati alcuni dei principali e notevoli cambiamenti nella versione Twilight. È possibile visualizzare l'intero registro delle modifiche qui e stiamo chiedendo agli sviluppatori di unirsi alla rete di test.

Grazie ai contributori di questa versione: Binary Builders, Notional, Regen network, Interchain GmbH, Osmosis, Crypto.com e molti altri.

Integrazione di CometBFT CometBFT è stato recentemente lanciato come un fork e una sostituzione di Tendermint Core. Come parte della versione Twilight, stiamo integrando CometBFT v0.37 nel Cosmos SDK, per sostituire Tendermint Core come motore di replicazione della macchina dello stato. Questo cambiamento consente anche l'aggiornamento a ABCI 1.0 (vedi sezione sotto).

Questo aggiornamento non causerà alcun problema agli sviluppatori di applicazioni se seguiranno le istruzioni di seguito e agli utenti delle catene.

Cambiamenti al modulo Params Il modulo Params è entrato in modalità di manutenzione. Le versioni precedenti utilizzavano un singolo modulo per gestire i parametri, tuttavia, questa versione implementa un sistema in cui i parametri sono gestiti da moduli individuali, offrendo così maggiore precisione e adattabilità nel loro utilizzo in tutte le varie componenti dell'applicazione.

Mentre i moduli nel Cosmos SDK sono stati migrati, il modulo dei parametri deprecati continuerà ad esistere e le squadre sono libere di continuare a utilizzarlo e migrare nel tempo invece di farlo immediatamente.

Come parte della deprecazione del modulo Params, è stato necessario introdurre un nuovo modulo per gestire i parametri di Tendermint. Questi parametri controllano la dimensione del blocco e una varietà di altre funzionalità. Questa aggiunta concede agli sviluppatori un livello superiore di controllo sul meccanismo di consenso implementato nelle loro applicazioni, consentendo così la realizzazione di casi d'uso più specializzati, come la progettazione di sistemi ad alte prestazioni e a bassa latenza.

Introduzione di ABCI 1.0 Un'altra importante novità introdotta in questa versione è l'aggiornamento a ABCI 1.0. Questo include l'introduzione di nuovi metodi come "prepareProposal" e "processProposal", che consentiranno una comunicazione più efficiente e flessibile tra l'applicazione e il motore di consenso. Inoltre, è stata aggiunta una nuova mempool lato App, che consente alle applicazioni di avere mempool personalizzate e/o costruzioni di blocchi personalizzate.

Un esempio di costruzione di blocchi personalizzata è che ogni blocco ha il 10% del blocco riservato solo per le transazioni IBC. Se non ci sono transazioni IBC nella mempool, il 10% verrà riempito con altre transazioni. Questo è un esempio semplice, ma è possibile creare mercati delle commissioni complessi. Vedi ulteriori casi d'uso potenziali qui.

Protocol Buffers Questa versione include anche una migrazione da gogo/proto a cosmos/gogoproto. Questo cambiamento non comporta alcuna modifica che causa problemi e per aggiornare i tuoi file proto devi rigenerarli con l'immagine Docker fornita dal team Cosmos SDK. L'obiettivo di questo cambiamento è avere un tag di sostituzione in meno nel file go.mod delle applicazioni. Man mano che rimuoviamo più tag di sostituzione, consentirà agli utenti di scaricare i binari tramite il comando go install.

Menzioni Notabili App Wiring Consente la costruzione più semplice di un'applicazione con meno codice boilerplate. Stiamo cercando il feedback della comunità su questa funzione. Implementeremo il feedback e altre modifiche nelle prossime versioni, il che potrebbe portare a rotture dell'API. Si consiglia di consultare la documentazione di aggiornamento e il changelog per ulteriori dettagli sulle modifiche che comportano rotture.

Ricompense per il proponente Con Twilight, abbiamo discusso con la comunità e osservato catene con epoche e ripreso una discussione sulle ricompense per i proponenti. Dopo molte deliberazioni è stato deciso di rimuovere le ricompense per i proponenti. Continueremo questa discussione e questa ricerca al fine di capire a quale livello di consenso dovrebbe esserci un incentivo extra.

Codifica/Decodifica delle transazioni Abbiamo reintegrato la codifica e la decodifica delle transazioni a livello grpc. Questa funzionalità è stata rimossa in una ristrutturazione del software, ma abbiamo deciso di reintegrarla. Era stata richiesta molte volte e ha ridotto la complessità per i client.

Lancio del Testnet Vorremmo annunciare che abbiamo lanciato il testnet per il rilascio di Twilight e oltre. Il testnet si basa sulla versione 0.47 di Cosmos SDK e include il supporto per la Comunicazione tra Blockchain (IBC), CosmWasm (Wasm) e altre nuove funzionalità e migliorie. Abbiamo in programma di rendere questo testnet a lunga durata per scopi di testing.

Incoraggiamo gli sviluppatori di catene e dApp a provare le ultime funzionalità di Cosmos SDK v0.47 con il testnet di seguito. Stiamo costantemente migliorando il testnet e stiamo lavorando per renderlo disponibile per un periodo prolungato. Inoltre, installeremo un distributore automatico (faucet) in modo che chiunque possa unirsi e sperimentare.

Last updated