🇮🇹 "Aggiornamento di metà mese sullo sviluppo - IOG 15 ottobre 2021"

:it: trascrizione in italiano: di “Mid Month Development Update - October”.

Pubblicato sul canale Youtube di IOHK il 15 ottobre 2021


Il 12 settembre, Cardano ha implementato con successo le capacità dei contratti intelligenti attraverso un evento di aggiornamento hard fork combinator (HFC) per Alonzo. Ma il team non si è fermato qui! Da allora, abbiamo continuato a lavorare sull’ottimizzazione, ritoccando i parametri delle prestazioni e lavorando con i nostri operatori di stake pool per garantire che possano aggiornare i loro nodi. Costruire l’ecosistema dei contratti intelligenti è stata anche una priorità, sostenendo i nostri partner e la comunità che sta costruendo DApps su Cardano, e guardando l’infrastruttura e gli strumenti che devono essere in atto per consentire questo.

Tim: Ciao a tutti e bentornati al primo aggiornamento di metà mese da un po’, siamo stati abbastanza occupati con l’eccitazione dell’hard fork di Alonzo. E naturalmente anche il summit di Cardano. Oggi si uniscono a me un paio di volti familiari, abbiamo Kevin, Nigel, e anche un volto nuovo per molti di voi, Jann Müller, del team Plutus. Allora andiamo avanti, Nigel, come ho detto, è stata un’estate impegnativa, un paio di mesi molto eccitanti, siete stati in grado di avere un po’ di tempo libero?

Nigel: Non ancora Tim, stiamo ancora lavorando duramente, siamo super impegnati, abbiamo alcuni membri del team che si stanno prendendo qualche breve pausa, ma stiamo davvero facendo avanzare questa nuova era dei contratti intelligenti. Dopo l’hard fork di Alonzo, stiamo facendo un sacco di lavoro in termini di ottimizzazione, guardando al tuning delle prestazioni, andando avanti. Stiamo anche lavorando con i nostri SPO, assicurandoci che possano aggiornare i loro nodi all’ultima versione, il che avverrà in un paio di settimane. Ma al di là di questo si tratta di realizzare l’ecosistema dei contratti intelligenti. Quindi sta sostenendo i nostri partner che stanno costruendo dApps, e da quella posizione, quello che dobbiamo fare è pensare a quali pezzi aggiuntivi di infrastruttura sono necessari per mettere in atto. Quindi le pietre miliari sono davanti a noi, abbiamo l’aggiornamento di manutenzione verso la fine di ottobre, dopo di che, un paio di settimane, ci aspettiamo di lanciare il nostro backend dell’applicazione Plutus, PAB. Questo è un hub importante, di cui Kevin e Jann parleranno più in dettaglio, sosterrà i nostri partner quando rilasceranno le loro dApps.

Tim: Arriviamo a questo tra un momento, ma prima forse, Kevin, puoi darci un riassunto della struttura del plutus, per stabilire un po’ di contesto, dove si colloca il PAB all’interno di questo?

Kevin: Assolutamente Tim, ti darò una visione d’insieme. Fondamentalmente ci sono due cose principali che stiamo guardando come parte dell’esperienza di sviluppo di Plutus, ci sono le cose che sono in esecuzione off-chain, queste sono le cose che sono in esecuzione sulle macchine degli utenti o degli sviluppatori, e poi ci sono le cose che sono in esecuzione sulla blockchain, i componenti on-chain. Se partiamo dall’inizio, quindi, uno sviluppatore che produce un’applicazione Plutus, l’applicazione è ciò che l’utente userà, quando l’applicazione viene sviluppata, viene compilata attraverso il compilatore di transazioni Plutus, in qualcosa che chiamiamo Plutus Core, che è la versione dello script in esecuzione sulla blockchain Cardano. Ora, questo è in esecuzione sul nodo, ma per arrivarci, quello che dobbiamo fare è interfacciare Plutus al livello del ledger, dobbiamo assicurarci che il ledger possa chiamare gli script di Plutus, che possa passare i parametri di cui gli script di Plutus hanno bisogno, e che possa eseguire in modo sicuro lo script sulla blockchain. Quindi il ledger è la chiave per far funzionare questo, c’è stato un sacco di lavoro all’interno dell’hard fork di Alonzo per assicurarsi che tutto sia fatto in modo sicuro ed efficiente. Poi sul lato off-chain, oltre alla pura applicazione Plutus, c’è anche del codice di libreria che è stato scritto, c’è una serie di librerie Haskell che sono state scritte per permettere all’applicazione Plutus di interfacciarsi con vari portafogli e avere varie capacità, per i parametri, il contenuto delle transazioni e così via. E questo poi deve passare attraverso il backend dell’applicazione Plutus, che Nigel ha appena menzionato, collegandosi al backend dell’interfaccia del portafoglio, che poi si collega al nodo. Questo al livello più alto è quello che stiamo facendo al momento Tim. La maggior parte di questo è un setup molto complicato, la maggior parte di questo lo abbiamo in atto, ci sono un paio di piccole cose su cui stiamo lavorando ora.

Tim: Facciamo entrare Jan, perché ovviamente il PAB è uno di quegli elementi che deve essere ancora completamente integrato. Forse puoi dirci un po’ di più, cos’è esattamente il PAB?

Jann: Nel modello UTxO abbiamo alcune infrastrutture off-chain che costruiscono la transazione che effettivamente guida le dApps. Questa infrastruttura off-chain è abbastanza complicata, ha bisogno di guardare lo stato del libro mastro, ha bisogno di prendere informazioni dal libro mastro, ha bisogno di mettere tutto questo insieme per costruire la transazione con i pezzi giusti di dati, dal posto giusto. Il PAB è una libreria Haskell che rende facile scrivere questa infrastruttura off-chain. Aiuta a costruire transazioni UTxo in due modi, uno è l’impronta di lettura, cioè ottenere informazioni dalla catena, reagendo agli eventi che si verificano sulla blockchain, e l’altro è l’impronta di scrittura, dove costruiamo le transazioni che eseguono gli script Plutus. Entrambi insieme sono disponibili nel PAB, è una singola libreria Haskell, stai usando lo stesso linguaggio per scrivere l’infrastruttura off-chain e per gli script on-chain.

Tim: Il PAB è effettivamente necessario per implementare qualcosa in Cardano?

Jann: Non è strettamente necessario, è possibile eseguire le tue dApps usando Haskell per i validatori, solo per il codice in-chain. Poi si sostituisce il lavoro offline che fa la dApp con la CLI di Cardano, essenzialmente. Quindi devi costruire le tue transazioni, devi selezionare gli UTxO che vuoi spendere, ecc, e usi la CLI di Cardano per raccogliere tutte queste informazioni e costruire le transazioni. Questo è ciò che alcune dApps là fuori stanno facendo, usando la CLI di Cardano per le transazioni.

Tim: E il PAB è già disponibile su una finta catena?

Jann: Sì, abbiamo una mock chain, che è una rete emulata di Alonzo, lì tutte le funzionalità del PAB possono essere testate, puoi iniziare a scrivere le tue dApps, scrivere scenari di test, c’è un framework di test delle proprietà disponibile che puoi usare per proteggere ulteriormente i tuoi contratti, che è già disponibile. E il read fingerprinting, che ho menzionato prima, ottenere informazioni dalla catena, funziona già per il testnet, così abbiamo integrato quella parte del PAB. La cosa che rimane da fare, ora stiamo lavorando sulla parte di scrittura dove mettiamo insieme le transazioni che inviamo al backend del portafoglio, ed eventualmente alla catena.

Tim: Jann, quando sarà integrato, come sarà diversa la catena principale dalla finta catena PAB?

Jann: Per i costruttori di dApps è solo cambiare i file di configurazione che usano, per avviare il PAB. Si potrebbe dire che funziona sulla catena mock, sulla testnet e collegarla alla rete principale, ma in realtà non richiede alcuna modifica al codice Haskell effettivo che avete scritto.

Tim: Jann, immagino un’impronta relativamente liscia una volta che saremo completamente integrati nella rete principale, per gli sviluppatori. Ma Nigel, questa è l’integrazione che sta avvenendo ora, vero?

Nigel: Assolutamente Tim, questo è il nostro rilascio critico, prima della fine dell’anno. Il backend dell’applicazione Plutus parlerà con il nostro backend del portafoglio, sul portafoglio Cardano. Con il portafoglio Cardano dobbiamo esporre l’altra metà delle transazioni Plutus che vengono inviate, quindi è assicurarsi di avere un endpoint bilanciato, assicurarsi di avere un endpoint di firma, anche la selezione della valuta, ci sono un paio di altre cose come le tasse che devono essere confezionate insieme. Ora, questo è stato fatto ora, abbiamo effettivamente stabilito tutte queste cose, stiamo lavorando molto duramente per avere il PAB integrato contro di esso. Come ogni ingegnere saprà, questo è un punto critico, man mano che si integra si trovano problemi, fondamentalmente continuiamo a iterare intorno ad esso, man mano che risolviamo i diversi problemi che si presentano. Mentre stiamo integrando questo stiamo anche costruendo una dApp di prova. La dApp che abbiamo è per un mercato NFT, andrà di pari passo con il rilascio del PAB. È il nostro modo di testare fondamentalmente questa integrazione end-to-end, così abbiamo quella piccola dApp di trading per gli NFT, che sarà molto divertente, e quando avremo il PAB fuori testeremo tutto, come consegniamo.

Tim: Un viaggio end-to-end. È anche interessante vedere che la settimana scorsa abbiamo visto il nostro primo negozio NFT della comunità, con un’integrazione del portafoglio, che usa un percorso leggermente diverso, quindi le cose si stanno decisamente muovendo nella comunità. Nigel, quando ci sarà questa integrazione, cosa potranno fare gli sviluppatori con PAB?

Nigel: Fondamentalmente hanno un intero viaggio intorno alle dApps. Al momento molti di loro sono sul front-end, hanno un sacco di logica dietro, sul back-end, sta funzionando, stavano tutti lavorando nell’ambiente locale, stanno iniziando a costruire cose nel nostro ambiente di test. Ora, non possono fare il viaggio completo per nessuna delle transazioni che fanno se non hanno l’integrazione del portafoglio, perché tutto ha bisogno dell’integrazione del portafoglio, non solo per finanziare una sorta di transazione, ma anche per assicurarsi che stiamo firmando le cose correttamente, da un punto di vista di autorizzazione. E questo vale per tutto ciò che facciamo, che sia il mercato NFT, gli oracoli, i Dexes che si stanno costruendo, o qualsiasi altra cosa che la gente sta inventando. Una volta che abbiamo quel viaggio completo, diamo loro quella piattaforma e l’impianto idraulico di cui hanno bisogno, per avere quella dApp completa.

Tim: Nigel, penso che tu stia seguendo un certo numero di progetti attraverso Discord, dai repo, offrendo supporto e consigli dove puoi.

Nigel: Ci sono un sacco di persone che fanno un sacco di cose buone, abbiamo un modo molto intelligente di farlo, assicurandoci che siano sui canali Discord, che dà loro un collegamento con i nostri ingegneri Plutus, abbiamo anche la nostra squadra Plutus che guarda, rivede e corregge i problemi che si presentano. Quindi è un vero e proprio sforzo della comunità, aiutandoli lungo la strada, e aiutando le persone che hanno effettivamente investito, stanno costruendo imprese in Cardano, mentre ci muoviamo verso il futuro. Ci sono un sacco di cose eccitanti in arrivo.

Tim: Quindi pensi che vedremo più dApps a Cardano nei prossimi due mesi?

Nigel: Penso che prima della fine dell’anno vedremo una sana selezione di dApp in arrivo, penso che vedremo una sezione trasversale, alcune cose saranno sul testnet, la gente ci giocherà, usando i dati di prova, e alcune persone che lanciano sul mainnet come primo colpo. Non voglio eccitarmi troppo, sono sicuro che avremo qualcosa di buono in uscita prima della fine dell’anno. Ma sono sicuro che molte persone lo faranno in modo sensato, quindi la roba che esce potrebbe essere una sorta di release beta, con alcune funzionalità limitate, una sorta di test del mercato. E questo è qualcosa che ci si deve aspettare, dobbiamo assicurarci di costruire fondamenta solide in questo ecosistema, e che la gente distribuirà le cose per gradi, ma c’è un sacco di roba buona da aspettarsi da Tim.

Tim: Grande, Kevin, forse finalizzare con te perché Nigel ha parlato di costruire le fondamenta, l’hard fork Alonzo ha costruito le fondamenta per Plutus e la sua integrazione con il nodo. È anche davvero l’inizio di una rete di contratti intelligenti, e so che tu e il team state facendo un sacco di lavoro su come la rete sta funzionando, dove è necessario ottimizzare, sintonizzare, ecc. Forse puoi darci un aggiornamento sul punto in cui ci troviamo.

Kevin: Quello che Alonzo ha fatto è stato introdurre un intero passo nei tipi di transazioni che dobbiamo prestabilire. Quindi stiamo marciando molto attentamente, cosa sta succedendo nella rete, tenendo d’occhio il comportamento del sistema. Ma stiamo anche facendo benchmarking, e i team di QA stanno avendo un sacco di lavoro, solo per indagare su ciò che accadrà quando inizieremo a lanciare le dApps di cui Nigel ha appena parlato. Quindi la situazione è che la rete funziona bene, funziona come previsto. Ovviamente stiamo vedendo un’alta domanda su eventi specifici, cose come i drop di NFT. Ed è bello vedere che la rete viene usata dalle persone per fare cose come questa, è bello vedere che tutto il lavoro che ci abbiamo messo dà i suoi frutti. Nel complesso la rete si comporta come ci aspettavamo, è progettata in modo tale che anche se la rete è estremamente carica, ci potrebbe essere qualche rallentamento, ma il sistema ha funzionato come previsto. L’abbiamo misurato in condizioni abbastanza estreme, 44 volte il carico possibile, e come sono sicuro che sapete da altre situazioni del mondo reale, tipicamente i sistemi non si comportano molto bene in quelle situazioni, i sistemi bancari andrebbero in crash, i grandi produttori potrebbero non riuscire a lanciare i loro prodotti, e così via. Ma con Cardano, le cose continuano a funzionare, potrebbe rallentare un po’, potrebbe richiedere un po’ più di tempo per elaborare le transazioni, potrebbero dover provare alcune volte, ma tutto continuerà a passare attraverso la rete e a funzionare. E man mano che rallenta il carico si recupera, e si ritorna allo stato normale. Quindi è un modo molto bello ed elegante di affrontare le situazioni di carico.

Ma c’è ancora del lavoro che possiamo fare per ottimizzare ciò che sta accadendo. Ho detto che stiamo guardando molto attentamente come si sviluppa il carico, ci sono molti parametri che sono disponibili per aumentare la capacità della rete come necessario. E stiamo tenendo d’occhio ciò che sta accadendo in vista di quando dovremo girare quegli interruttori. Ci sono varie cose che possiamo fare, possiamo aumentare la dimensione delle transazioni, per esempio, possiamo aumentare il numero di unità di esecuzione che sono disponibili negli script di Plutus, il numero di memoria allocata agli script di Plutus, tutti i tipi di modifiche di dettaglio che possiamo fare. Ovviamente quello che vogliamo fare è fare questi cambiamenti gradualmente in linea con la domanda reale. Quindi soddisfare i bisogni reali che la gente ci pone.

Parlando con un certo numero di sviluppatori di dApps, riguardo ai requisiti, parte dell’input di benchmarking che ho descritto prima è precisamente dire al team di benchmarking che quando guardiamo questi carichi di cui la gente parla, come impatta il sistema complessivo, come possiamo assicurare che il sistema continuerà ad essere resiliente, che continuerà a soddisfare tutte le richieste concorrenti che gli stiamo ponendo? Perché ovviamente quello che stiamo cercando di fare qui è costruire un sistema che durerà non solo per il prossimo futuro, ma indefinitamente. Quindi qui stiamo cercando di gettare le basi per qualcosa che durerà per sempre, e funzionerà bene per sempre.

Quindi, cambiando i parametri a breve e medio termine, stiamo cercando vari tipi di ottimizzazione. Stiamo cercando di spostare l’archiviazione dalla memoria, l’archiviazione del libro mastro dalla memoria, all’SSD o al disco. Stiamo esaminando varie tecniche di compressione e vari tipi di ottimizzazione, ottimizzando il modo in cui funziona l’interprete di Plutus, e così via. Quindi tutte le cose che possiamo fare per migliorare le prestazioni del sistema, per ridurre i costi di esecuzione e per migliorare il comportamento del sistema. Quindi non pensate che dove siamo oggi sia dove saremo in futuro, ci sono molte molte molte cose, molte molte molte modifiche che possiamo fare, abbiamo molte idee su come possiamo farlo. Quindi il punto è che la rete è stata progettata per essere altamente regolabile e scalabile, dove all’inizio dell’era Plutus, più avanti sulla strada, abbiamo anche alcuni assi nella manica, come le soluzioni tier two, la soluzione Hydra, che ci permetterà di ridurre il carico e parallelizzare un sacco di calcolo, hai un sacco di spazio per la crescita lì Tim.

Tim: È una grande notizia signore, grazie per questo. Quindi signori grazie mille per questo, questo è per oggi, per l’aggiornamento di metà mese, ma ricordate che abbiamo il Cardano 360 in arrivo, è l’ultimo giovedì di ogni mese, quindi non vediamo l’ora di vedervi lì, ci concentreremo sul summit questo mese, c’è molto di cui parlare, alcune recensioni e anche alcuni contenuti esclusivi che non siamo riusciti a spremere tra le centinaia. Quindi, fino alla prossima volta, grazie mille.