🇮🇹 "Plutus Application Backend (PAB): supporto allo sviluppo di DApp su Cardano"

:it: Traduzione italiana di "Plutus Application Backend (PAB): supporting DApp development on Cardano
" pubblicato nel blog IOG

Traduzione italiana a cura di Lordwotton di RIOT Stake Pools. Se apprezzi queste traduzioni, per favore valuta di supportare il mio lavoro delegando i tuoi ada a RIOT :pray: entra nel nostro gruppo Telegram


Plutus Application Backend (PAB): supporto allo sviluppo di DApp su Cardano

Il PAB fornisce i componenti e un ambiente per aiutare gli sviluppatori a creare e testare le DApp, prima di distribuirle in un ambiente di produzione live

img

L’aggiornamento del protocollo Alonzo ha introdotto Plutus - una piattaforma che fornisce un linguaggio nativo per i contratti intelligenti insieme all’infrastruttura e agli strumenti necessari per supportare i contratti intelligenti su Cardano. La piattaforma Plutus permette agli sviluppatori di scrivere applicazioni decentralizzate (DApps) con capacità di scripting che interagiscono con i ledger distribuiti.

Per capire Plutus, si devono riconoscere tre concetti:

  • Il modello Extended Unspent Transaction Output (EUTXO)
  • Plutus Core - la parte “on-chain” di Plutus
  • Il Plutus Application Framework (PAF) - i contratti Plutus consistono in parti che girano sulla blockchain (codice on-chain) e parti che girano sulla macchina di un utente (codice off-chain o client)

Sia il codice on-chain che quello off-chain sono scritti in Haskell, e i contratti smart di Plutus sono effettivamente programmi Haskell.

Cos’è il backend dell’applicazione Plutus?

In un precedente post sul blog, abbiamo discusso in dettaglio le funzionalità on e off-chain dei componenti principali di Plutus. Qui, ci immergiamo più a fondo nelle capacità off-chain di Plutus e diamo un’occhiata al Plutus Application Backend (PAB).

Nel modello UTXO, abbiamo un’infrastruttura off-chain che costruisce le transazioni che muovono le applicazioni. Questa infrastruttura off-chain è abbastanza complicata perché ha bisogno di guardare lo stato del ledger, prendere alcune informazioni dal ledger, e mettere tutto insieme per costruire una transazione con i pezzi giusti di dati nel posto giusto. Il PAB è una singola libreria Haskell che rende più facile scrivere questa infrastruttura off-chain e gli script on-chain.

Il PAB aiuta a costruire le transazioni UTXO in due modi:

  • Il percorso di lettura - Cioè, ottenere informazioni dalla catena, e reagire agli eventi che accadono sulla blockchain. Il percorso di lettura sta attualmente lavorando sul testnet
  • Il percorso di scrittura - Questo è dove effettivamente costruiamo le transazioni che eseguono gli script Plutus

Il ruolo del PAB

Il PAB è un componente chiave del Plutus Application Framework (PAF) che permette agli sviluppatori di creare e testare DApps localmente, prima di distribuirli in un ambiente di produzione live. Un po’ come il Marlowe Playground fornisce una sandbox per gli sviluppatori per creare e testare contratti intelligenti finanziari, il PAB offre un ambiente simile per gli sviluppatori per creare e testare DApps complete.

Il PAB è un servizio off-chain, backend per la gestione e il trattamento dei requisiti dell’istanza dell’applicazione durante il suo ciclo di vita. Questo include l’interazione con i clienti esterni (come i frontend del portafoglio) e funge da intermediario tra Plutus Applications, il nodo, il backend del portafoglio e gli utenti finali. Tale interazione è resa possibile dai comandi PAB e dai componenti mock che permettono comode simulazioni e integrazioni di DApps.

Anche se non è un prerequisito per la creazione o l’implementazione di DApp - alcuni sviluppatori stanno creando i propri strumenti e infatti alternative basate su API sono in corso di elaborazione da parte della comunità - il PAB rimuove la necessità per gli sviluppatori di creare la propria infrastruttura da zero (compreso l’indice della catena, ecc) riducendo il tempo di sviluppo e le risorse necessarie. Permette agli sviluppatori di simulare come un’applicazione si comporterebbe sulla catena per il test preventivo e l’eliminazione degli errori, per assicurare una transizione impeccabile per il lancio.

Lo scopo del PAB è di:

  • fornire un ambiente standardizzato per l’esecuzione delle applicazioni Plutus
  • presentare interfacce scopribili ai client esterni
  • tenere traccia delle informazioni sulla catena per gli usi dei contratti intelligenti
  • permettere allo sviluppatore di lavorare in un ambiente emulato o non emulato

Il PAB può passare tra ambienti emulati e non emulati (rete reale) senza soluzione di continuità. Questo rende più facile scrivere tutti i tipi di test diversi - test di unità, test di integrazione, test basati sulle proprietà, ecc. Il PAB permette alle DApps di comunicare facilmente con esso poiché il backend può ricevere e consegnare messaggi. Così, la DApp può inviare richieste usuali agli endpoint che il PAB ha esposto, e che corrispondono ad azioni e operazioni che ogni particolare smart contract è in grado di gestire.

Le applicazioni distribuite utilizzando le librerie del framework possono essere eseguite sul PAB, che fornisce il supporto runtime per l’accesso alla blockchain per eseguire ulteriormente le operazioni di smart contract innescando transazioni basate sul modello EUTXO. Inoltre, PAB dispone di funzionalità per la persistenza, la registrazione e il monitoraggio.

A che punto siamo adesso?

All’inizio di quest’estate, abbiamo distribuito il primo di una serie di testnet colorati per portare la capacità di contratto smart Plutus a Cardano. Questo è stato distribuito su mainnet tramite l’hard fork ‘Alonzo’. La capacità dei contratti intelligenti è attualmente accessibile utilizzando un’interfaccia a riga di comando (CLI). Mentre i primi semplici contratti intelligenti sono stati abilitati su mainnet all’inizio di settembre, questa è sempre stata la prima tappa nella strada verso la distribuzione di DApp su mainnet.

Gli sviluppatori hanno nel frattempo lavorato sulle loro DApps (molte tramite il PAB) localmente mentre testano qualsiasi funzionalità di base dei contratti intelligenti sulla testnet. Questi elementi hanno bisogno di unirsi prima che una DApp arrivi su mainnet e questo richiede tempo. Una volta che il PAB è integrato con il nodo e altri componenti fondamentali come il connettore wallet back end (WBE), gli sviluppatori saranno in grado di spostare le loro DApps in uno stato di prontezza e portarle sul testnet Cardano prima del lancio della mainnet.

Queste prime applicazioni costruite localmente saranno quindi in grado di interagire con la rete principale come previsto. L’approccio “mockchain” allo sviluppo fino ad oggi significa che per i creatori di DApp, sarà una transizione senza problemi dal testnet al mainnet. Tutto ciò che serve è un cambiamento nei file di configurazione per avviare il PAB, non richiede modifiche al codice effettivo o al codice Haskell. Questo lavoro di integrazione è complesso e una parte critica dell’infrastruttura di Cardano, quindi dobbiamo assicurarci che sia fatto correttamente. Stiamo continuando a lavorare sulle integrazioni finali e sulla base della traiettoria attuale, prevediamo di consegnare l’integrazione a novembre, supponendo di non incontrare problemi critici.

Guardando avanti

Questo è solo l’inizio. Come sempre, questo sarà un processo iterativo. Con l’evoluzione della piattaforma Plutus, inviteremo la comunità di sviluppatori a distribuire i propri strumenti e creare codice off-chain per le loro DApp in esecuzione su Cardano. Abbiamo già visto un alveare di attività in questo settore, sia attraverso il programma Alonzo testnet che Project Catalyst. Quindi, mentre testiamo la piattaforma con i nostri ingegneri/QA e la comunità di sviluppatori, faremo miglioramenti graduali e aggiungeremo più capacità e funzionalità. L’obiettivo? Dall’hardfork di Alonzo e l’arrivo dei contratti intelligenti Plutus, una rapida scalata dell’esperienza degli sviluppatori, con nuovi strumenti, API e ambienti per sostenere un ecosistema di talenti già fiorente.

Per aggiornamenti regolari assicuratevi di seguirci su Twitter e di iscrivervi al nostro canale YouTube. Per una panoramica dei progetti #BuildingOnCardano assicurati di controllare il repo Essential Cardano.