Cosmos, incontra CometBFT

Feb 02 2023
Oggi annunciamo il lancio di CometBFT, un motore di replica di macchine a stati per l'interchain e oltre! CometBFT è un fork e un successore di Tendermint Core e fungerà da motore di replica ufficiale che alimenta lo stack Interchain. La visione a lungo termine di CometBFT è quella di essere la scelta primaria del motore di replica per blockchain affidabili, sicuri, su larga scala e specifici per le applicazioni.

Oggi annunciamo il lancio di CometBFT, un motore di replica di macchine a stati per l'interchain e oltre! CometBFT è un fork e un successore di Tendermint Core e fungerà da motore di replica ufficiale che alimenta l' Interchain Stack . La visione a lungo termine di CometBFT è quella di essere la scelta primaria del motore di replica per blockchain affidabili, sicuri, su larga scala e specifici per le applicazioni. Impegna i tuoi blocchi con CometBFT oggi!

La Interchain Foundation, Informal Systems, il team Cosmos SDK e numerosi altri team dell'ecosistema Cosmos hanno lavorato insieme per preparare questo lancio. Questo post affronta alcune delle domande più importanti relative a questo lancio. State tranquilli, abbiamo lavorato sodo per rendere l'aggiornamento o l'adozione di CometBFT il più agevole possibile. Tratteremo i dettagli di base, la visione e gli obiettivi di CometBFT, i team dietro questo sforzo e i prossimi passi in termini di implicazioni tecniche.

Perché ora?

Abbiamo deciso di sviluppare il motore di consenso Cosmos di punta con questo nuovo nome per contrassegnare molteplici importanti cambiamenti che interessano l'ecosistema.

Dal punto di vista tecnico, l'interchain si è evoluto in modo significativo negli ultimi due anni. Viviamo in un mondo multi-catena nativo di IBC. L'ABCI 2.0 è un elemento fondamentale che manca all'Interchain Stack, così come gli aspetti del design o della garanzia della qualità come la modularità, l'integrazione o i test rigorosi. Inoltre, l'abbandono delle versioni v0.35 e v0.36 di Tendermint Core ha messo in luce limiti tecnici su come è stato svolto lo sviluppo; vedere qui per maggiori dettagli.

Nel 2022, le organizzazioni che gestiscono l'Interchain Stack hanno avviato un approccio strategico per mitigare le limitazioni tecniche di cui sopra. Questo approccio ha comportato la creazione e la dedicazione di un team completo a Tendermint Core presso Informal Systems. Inoltre, nella preparazione dei rilasci abbiamo iniziato a dare la priorità alla qualità e all'integrazione con il resto di Interchain Stack (ad esempio, Cosmos SDK, IBC e i più ampi elementi costitutivi dell'interchain).

Dal punto di vista amministrativo, non possediamo l' organizzazione GitHub di tendermint né i diritti di marchio su "Tendermint". All in Bits (AiB) è il proprietario. Lo sviluppo del software Tendermint Core è avvenuto al di fuori di All in Bits negli ultimi tre anni. Tuttavia, la proprietà del marchio da parte di AiB poneva un rischio continuo di azione legale sul marchio. Senza complicati accordi con AiB, non sarebbe possibile mitigare completamente questo rischio che incombe sugli sviluppatori di un pezzo più critico dell'Interchain Stack.

Come accennato in precedenza su Twitter e in base a questa discussione , AiB ha deciso unilateralmente di archiviare il repository Tendermint Core. Pertanto, la via da seguire per continuare la traiettoria di sviluppo, e come incoraggiato da AiB, era quella di creare un fork del repository Tendermint Core. CometBFT si baserà sulle fondamenta gettate da Tendermint Core, con uno sviluppo rinnovato incentrato su utenti, qualità e integrazione.

In linea con queste preoccupazioni tecniche e amministrative, i cambiamenti più importanti riguardano la visione a lungo termine, gli obiettivi e l'amministrazione del progetto. Questo ci porta alla parte successiva di questa discussione.

Qual è il prossimo?

In qualità di amministratore impegnato del Cosmos e dell'ecosistema interchain, la Interchain Foundation funge da host affidabile per il finanziamento e le risorse di beni pubblici. L'ICF è proprietaria del marchio "Cosmos" sin dall'inizio e ne protegge l'uso nel migliore interesse della comunità più ampia. Allo stesso modo, l'ICF ha registrato il nome "CometBFT" e ha creato l' organizzazione CometBFT GitHub , e intende gestire entrambi a lungo termine nel migliore interesse della crescente interchain. CometBFT rimarrà open-source e con licenza Apache2.0. Invitiamo tutte le parti interessate a contribuire alla crescita e allo sviluppo di questo software ea promuoverne i valori open-source.

Come accennato in precedenza, il mandato a lungo termine per CometBFT è quello di essere la scelta primaria del motore di replica per l'interchain. Il team CosmosSDK, i team IBC, i manutentori di CometBFT e i numerosi team di ingegneri che compongono l'interchain, sia a livello di applicazioni che di beni pubblici, condividono la visione comune di rendere CometBFT un luogo in cui i team possono sperimentare nuove funzionalità, costruire e iterare con ottimizzazioni e garantire un elevato grado di flessibilità per gli utenti, pur mantenendo l'integrità e la robustezza dello stack. Se contribuisci all'Interchain Stack, gestendo validatori o nodi, integrandoti con altri ecosistemi o trovando la tua strada intorno a Cosmos come nuovo utente, il tuo aiuto sarebbe molto apprezzato per renderlo realtà. Vedi i “Riferimenti” di seguito su come metterti in contatto con noi.

Quali sono gli obiettivi di CometBFT?

Come descritto sopra e in precedenza , questo segna una nuova fase nell'interchain. Il suo motore di consenso si sta evolvendo per diventare un elemento costitutivo specializzato per un mondo nativo di IBC. Cerchiamo di continuare a lavorare a stretto contatto con il team di Cosmos SDK e gli attuali utenti, facilitando al contempo l'adozione per il crescente ecosistema di sviluppatori di applicazioni che costruiscono sopra ABCI e con IBC. L'obiettivo di fondo a lungo termine per CometBFT è quello di svolgere un ruolo chiave nel sostenere la crescita dell'interchain.

In particolare, gli obiettivi di CometBFT sono:

  1. Forte attenzione all'utente , con una strategia di prodotto chiaramente articolata che prende le esigenze degli utenti prima di tutto. Questa è una scelta strategica per garantire che CometBFT sia rilevante e fornisca utilità.
  2. Migliorare la garanzia della qualità e le garanzie di correttezza, con l'obiettivo di specificare e testare rigorosamente la nostra implementazione utilizzando tecniche avanzate come il test basato su modelli. Stiamo apportando la nostra esperienza nelle specifiche e nei metodi formali per rafforzare il QA esistente, che era già integrato con attività di test su larga scala.
  3. Modularità , concentrandosi sui giusti confini dell'astrazione, consentendo al sistema di essere smontato se e dove necessario, consentendo un'integrazione frammentaria nei progetti che dipendono da esso. Vogliamo consentire a CometBFT di essere sempre più utilizzato come libreria e ridurre al minimo i fork e la frammentazione fornendo nuove interfacce per supportare la gamma sempre crescente di casi d'uso.
  4. Implementazione più rapida delle funzionalità senza sacrificare la qualità mediante l'aggiornamento progressivo dell'architettura del sistema in modo che funga da solida piattaforma per il cambiamento, nonché grazie a un coordinamento del progetto più fluido nell'intero stack Interchain.

Chi c'è dietro CometBFT?

Il lancio di CometBFT è stata una decisione multiorganizzativa. CometBFT è gestito da Informal Systems in collaborazione con un gran numero di parti interessate di Cosmos. Il lancio ha comportato il lavoro di diversi team nell'interchain, tra cui Cosmos SDK, IBC, Osmosis, Cosmos Hub e il coordinamento con Agoric, Axelar, Oasis, Penumbra, Celestia, Anoma, Skip, Umee, Confio, Nomic, Numia, Sei, Evmos , Sommelier, Andromeda, Cronos e molti altri.

Il team CometBFT di Informal comprende alcuni dei contributori di Cosmos più talentuosi e appassionati. Seguiremo su Twitter con un'introduzione dei membri del team principale e dei membri che contribuiscono da altri team interchain. Per il momento, è sufficiente dire che il core team comprende ingegneri di ricerca, DevOps veterani e ingegneri del software con decenni di esperienza combinata, nonché responsabili di progetti, prodotti e tecnologia con oltre 10 anni di esperienza combinata in Cosmos.

Quali sono i prossimi passi immediati?

Il lancio di CometBFT è uno sforzo sostanziale che è ancora in corso. Ecco alcune cose importanti da sapere.

Se il tuo lavoro dipende da CometBFT , prendi in considerazione la possibilità di unirti alle chiamate della community, che vengono organizzate ogni due settimane il giovedì:https://groups.google.com/g/cometbft-community/. Oltre al repository GitHub, la community call è un forum importante per discutere lo sviluppo di CometBFT. È il luogo in cui gli sviluppatori possono raccogliere feedback da te, rispondere a domande e te, come utente, scambiare preziose conoscenze con altri utenti.

Se la tua applicazione si basa su Cosmos SDK: le nuove versioni dell'SDK per le linee 0.45, 0.46 e 0.47 verranno rilasciate dal team di Cosmos SDK. Queste versioni utilizzeranno CometBFT v0.34 invece di Tendermint Core 0.34, per accordo tra i contributori e i progetti di Interchain Stack. L'aggiornamento a questa versione dell'SDK non richiede un aggiornamento coordinato, in quanto si tratta di una modifica minore della versione. Il log delle modifiche di Cosmos SDK documenterà le modifiche rilevanti per la tua applicazione.

Se stai costruendo direttamente su Tendermint Core: come manutentori, ti consigliamo di passare da Tendermint Core v0.34 a CometBFT v0.34. Forniremo le istruzioni per l'aggiornamento una volta tagliati i nostri primi rilasci. Tieni d'occhio il repository Github qui .

Se stai mantenendo un fork di Tendermint Core: ti consigliamo di passare a CometBFT il prima possibile, ad esempio ribasando o selezionando le modifiche rilevanti a un fork di CometBFT. Saremo lieti di assistere in questo processo. Inoltre, saremo lieti di ricevere il tuo feedback e le informazioni sui tuoi requisiti specifici per eliminare la necessità di mantenere un fork (vedi il riferimento alla "comunità" di seguito).

Riferimenti

Qui troverai link e istruzioni ufficiali relativi a Comet:

  • Dove trovare il motore di consenso CometBFT?https://github.com/cometbft/cometbft/. Non dimenticare di contrassegnare il repository!
  • Come trovare supporto? Se sei uno sviluppatore, il posto migliore per il supporto è il server Cosmos Network Discord, nel canale `#cometbft` .
  • Abbiamo introdotto un canale Telegram per consentire feedback e comunicazioni veloci e per gestire questo periodo di transizione. Partecipa qui:https://t.me/CometBFT
  • Link alla documentazione:https://docs.cometbft.com/
  • Le nuove maniglie per il progetto, come segue. Organizzazione GitHub:https://github.com/cometbft/. Discord: nel server Cosmos Network unisciti al canale `#cometbft` . Il canale `#tendermint-core` esistente sarà deprecato.
  • Twitter: gli annunci e gli aggiornamenti verranno fatti da @cometbft e @informalinc .
  • Per informazioni generali: [email protected] .
  • Per sicurezza o vulnerabilità: [email protected] .

Qual è l'algoritmo di consenso alla base di CometBFT?

L'algoritmo di consenso alla base di CometBFT è attualmente basato su (cioè è un'implementazione di) Tendermint Consensus .

CometBFT si allontanerà dall'algoritmo di consenso di Tendermint?

Non nelle versioni iniziali. Miriamo a costruire CometBFT come libreria di consenso componibile in cui l'algoritmo di consenso predefinito può essere facilmente sostituito con altri, ma non limitato a quelli implementati dai manutentori principali.

Abbiamo anche in programma di lavorare con i team che hanno apportato modifiche o ottimizzazioni all'algoritmo di consenso o altrove (vedi fork di LINE , PeggyJV , SeiNetwork o Celestia Org ) per l'upstreaming delle modifiche di cui altri utenti hanno bisogno nella linea di sviluppo principale.

Ci saranno più fork concorrenti di Tendermint Core che alimenteranno l'interchain?

È tutto open-source, quindi potrebbe esserci. Tuttavia, gli elementi costitutivi canonici si baseranno su CometBFT. Le catene Cosmos sono costruite con Cosmos SDK (@cosmossdk), che si baserà su CometBFT. Lo sviluppo di Cosmos SDK continuerà come di consueto.

A livello IBC, le biblioteche continueranno a supportare i light client Tendermint; CometBFT contiene un'implementazione dell'algoritmo di consenso Tendermint, pertanto i clienti leggeri di Tendermint continueranno a lavorare con CometBFT come al solito.

Qualsiasi team può eseguire il fork di CometBFT e sostituire il motore di replica nelle proprie applicazioni. Ma ti consigliamo di metterti in contatto con noi se hai bisogno di modifiche significative (vedi "Come trovare supporto?" sopra). Prenderemo in considerazione le tue esigenze e adatteremo di conseguenza la nostra tabella di marcia tecnica per evitare, se possibile, fork non necessari o insicuri.

Questo causerà la biforcazione di una catena?

Un deciso “no”. I sistemi basati su Tendermint Core v0.34 possono essere aggiornati a CometBFT v0.34. E la linea CometBFT v0.34 rimarrà compatibile con Tendermint Core v0.34.

Se sto convalidando su una rete basata su Tendermint Core, ci sono problemi per le mie operazioni?

Segnaleremo attentamente le modifiche sostanziali nel log delle modifiche di rilascio e le modifiche sostanziali saranno minime. Il nome binario di Tendermint Core verrà modificato, ma la maggior parte delle applicazioni ha un binario specifico per l'app (come `osmosisd` , `gaiad` ) con Tendermint Core compilato (sostituito da CometBFT). A meno che tu non esegua un file binario Tendermint Core separato, ciò non influirà sulle tue operazioni. Una modifica rilevante è che la variabile env `TMHOME` verrà rinominata in `CMTHOME` . I sottocomandi come "gaiad tendermint" potrebbero essere rinominati a tempo debito, a seconda del team che gestisce il binario. Questo sarà anche chiaramente indicato nel registro delle modifiche.

Cosa succede a tendermint-rs
(
https://github.com/informalsystems/tendermint-rs/ )?

A breve rinomineremo questo progetto in cometbft-rs e continueremo lo sviluppo.

Cosa succede a tm-db o tm-load-test?

Abbiamo eseguito il fork e rinominato tm-db in cometbft-db e continueremo lo sviluppo. Nessuna API è stata danneggiata in altro modo e l'utilizzo è lo stesso, tranne per il fatto che si tratta di un modulo Go diverso: `github.com/cometbft/cometbft-db`.

Sposteremo e rinomineremo tm-load-test in cmt-load-test e continueremo lo sviluppo. Nota: alcuni dei nomi di cui sopra potrebbero essere ancora in evoluzione.

PS. Per un colpo di gioia cosmica, il lancio di CometBFT coincide con la cometa C/2022 E3 (ZTF) che si avvicina al nostro pianeta . La luminosità della cometa raggiungerà il picco oggi e offrirà un'esperienza visiva indimenticabile a chi la osserva.