🇮🇹 "Costruire un pacchetto di rete Ouroborus per sviluppatori JavaScript"

:it: Traduzione italiana di “Building a Ouroborus Networking Package for JavaScript Developers”


Costruire un pacchetto di rete Ouroborus per sviluppatori JavaScript

Haskell, il linguaggio di programmazione principale della blockchain di Cardano, è una scelta perfetta per costruire infrastrutture critiche nel moderno sistema finanziario. Come linguaggio di programmazione funzionale, permette agli sviluppatori di produrre codice affidabile, robusto e ad alta garanzia. Tuttavia, nonostante serva come base per i contratti intelligenti Cardano Plutus e Marlowe, Haskell non è ancora tra i linguaggi più utilizzati nel mondo attuale dello sviluppo del software.

Con il codice sia on-chain che off-chain nell’ecosistema Cardano che implementa Haskell, la maggior parte dei nuovi sviluppatori si sentono limitati a causa della mancanza di librerie di rete in altri linguaggi. Ashish, un operatore di stakepool e uno degli sviluppatori dietro Cardanoscan, sta cercando di costruire il pacchetto Ouroboros Networking in JavaScript, che permetterà agli sviluppatori di interagire con i nodi Cardano semplicemente installando il pacchetto NPM.

Ashish, che guiderà un team di altri due sviluppatori nella costruzione del pacchetto di networking in JavaScript, dice che il suo team ha l’esperienza e le competenze necessarie per intraprendere questo progetto. Il team ha già implementato parte dello strato di rete all’interno del sistema di backend personalizzato Cardanoscan.

Panoramica della libreria di rete Ouroboros

Il nodo Cardano usa un’implementazione di mini-protocolli basati su Haskell per comunicare con altri nodi sulla rete. Questi protocolli sono specifiche di rete di basso livello definite da IOHK. Se volete parlare direttamente con il nodo Cardano senza usare la CLI di Cardano, potete usare un pacchetto di mini-protocolli di rete. Ouroboros è una di queste librerie/pacchetti di rete che elimina la dipendenza dalla CLI, dandoti così una maggiore flessibilità di sviluppo per interrogare i blocchi di Cardano, recuperare lo stato, inviare transazioni al nodo o accedere ai dati on-chain.

La libreria di rete consiste di due componenti - i mini protocolli e un parser di dati. I mini protocolli aiutano a comunicare con il nodo e forniscono dati codificati CBOR dalla catena Cardano. L’analizzatore di dati analizzerà i dati e li convertirà in un oggetto JSON che può essere utilizzato in modo efficiente dagli sviluppatori.

Portare una serie di possibilità all’ecosistema Cardano

La libreria di rete Ouroboros basata su JavaScript permetterà agli sviluppatori di costruire progetti di qualsiasi dimensione su Cardano. Un esempio è Cardanoscan, un importante explorer della blockchain di Cardano, che implementa questa libreria di rete come uno dei suoi componenti principali. Uno sviluppatore avrà solo bisogno di installare il pacchetto npm Ouroboros e iniziare a costruire su Cardano con una configurazione minima richiesta. Con questo pacchetto, gli sviluppatori possono rapidamente far girare strumenti come i metadata explorer di Cardano, pool explorer, cruscotti di analisi, backend del portafoglio e bot. Costruire dashboard multi-asset e tracciare gli aggiornamenti dei pool o qualsiasi altro dato on-chain sarà una possibilità, anche per i nuovi sviluppatori.

Oltre alle capacità di cui sopra, la libreria vi permetterà anche di accedere ai dati CBOR grezzi per scopi di debug. Lo scopo di costruire questo pacchetto è quello di portare Cardano alla più grande comunità di sviluppatori in modo da poter vedere l’ecosistema crescere giorno dopo giorno.

Allo stato attuale, il pacchetto di rete implementa solo le caratteristiche che erano richieste dal Cardanoscan explorer - che era un progetto interno del team proponente. Con questa proposta, il team sta cercando di costruire sul loro lavoro esistente e creare una libreria di rete più matura, manutenibile e ricca di funzionalità. Il piano è di fare il porting del lavoro esistente e migliorarlo per includere quanto segue:

  • Protocollo Chain-Sync (è disponibile un’implementazione limitata del protocollo)
  • Protocollo di invio delle transazioni
  • Protocollo di recupero dei blocchi
  • Protocollo di interrogazione dello stato locale
  • Protocollo Ping-Pong
  • Parser di dati basato sulle specifiche CDDL
  • Implementazione MUX (per fornire supporto per parlare piĂą mini-protocolli contemporaneamente)
  • Suite di test ed esempi

L’implementazione di questa libreria di rete open-source seguirà tutte le specifiche definite da IOHK per garantire che mantenga l’integrità del protocollo Cardano. Inoltre, il team eseguirà anche la convalida dell’hash a blocchi come parte delle suite di test. Dal punto di vista dello sviluppo, la costruzione delle caratteristiche della libreria prenderà un approccio funzionale, ma ci saranno metodi facili da usare come un’API per gli utenti finali (sviluppatori).

Budget e tempi del progetto

Il progetto si concentrerà sulla costruzione dell’implementazione già disponibile del protocollo che ha caratteristiche limitate. Come detto, il pacchetto non è ancora avanzato, quindi Ashish e il team dovranno costruire un pacchetto Nodejs ad alte prestazioni con tutti i deliverable elencati sopra. Un sacco di test manuali e di lavoro con i dati della catena saranno necessari per garantire che il pacchetto funzioni in modo efficiente e aderisca alle specifiche di protocollo definite da IOHK.

Secondo le menti dietro questo progetto, ci vorrebbero dai tre ai quattro mesi per consegnare la libreria di rete - con due sviluppatori che lavorano al progetto a tempo pieno. Il team sta quindi chiedendo un finanziamento totale di 80.000 dollari per rendere il progetto della libreria di rete Ouroboros una realtĂ . Di questa somma, 77.000 dollari saranno usati come stipendio per due sviluppatori a tempo pieno durante il periodo di sviluppo. Il team spenderĂ  anche $ 2000 per i costi delle VM cloud (nodo relay testnet, nodo relay mainnet e nodo di test/dev). I restanti 1000 dollari copriranno altre infrastrutture e costi vari.

Pensieri finali

Javascript è uno dei linguaggi di programmazione più utilizzati con un basso livello di difficoltà di ingresso. Avere un pacchetto JavaScript che permette agli sviluppatori di costruire su Cardano darà una spinta significativa ad una nuova famiglia di progetti e strumenti intorno al nostro ecosistema.

Per ulteriori informazioni sulla libreria di rete Ouroboros per JavaScript, la sua roadmap di implementazione, o qualsiasi altra domanda relativa al progetto, si prega di controllare la proposta di progetto di ecosistema di sviluppatori del Fondo 4 su IdeaScale: https://cardano.ideascale.com/a/dtd/Ouroboros-Networking-Lib-in-JS/342248-48088

Non vedo l’ora