Il cuore tecnologico: IdaNode

Il viaggio attraverso i meandri dell’infrastruttura blockchain di scrypta è complesso ma non impossibile. Esistono tante piccole innovazioni in cui è stato teorizzato prima e realizzato poi un cambio di paradigma.

Nello scorso insight, che ti invito a leggere qualora tu ancora non l’avessi fatto, abbiamo parlato della proof of stake, oggi scendiamo ancora di più nel dettaglio parlando degli IdaNode.

Un IdaNode è sicuramente la tecnologia più importante sviluppata da Scrypta. È il cuore di tutte le operazioni di scrittura e lettura dei dati, nonché la principale fonte di dati per le dApp.

IdaNode è un’applicazione NodeJS scritta in TypeScript con una moltitudine di funzionalità:

  1. Blockchain explorer: tiene traccia di tutte le transazioni e di tutti i blocchi, può essere usato al pari di un block explorer visuale.

Panoramica di funzionamento

Il primo script che viene chiamato è il file Index.ts , questo file verifica che il wallet ed il database siano raggiungibili, in caso contrario si preoccupa di avviarli ed attendere finchè non lo siano. Questo sistema garantisce un certo grado di automazione nel caso in cui qualche processo dovesse interrompersi inaspettatamente.

Dopo aver verificato che tutto sia raggiungibile, lo script inizia a controllare che le collezioni e gli indici siano esistenti, in caso contrario inizializza il database.

Dopo di che, se nel .env il parametro SYNC è true inizia a sincronizzare tutta la blockchain e tutti i dati inseriti all’interno.

Contemporaneamente l’applicazione Express serve le API, che saranno immediatamente disponibili, non importa se il sync è completo. Chiaramente in questo caso il set di dati disponibili non corrisponderà all’ultimo blocco.

L’applicazione Express è definita nel file App.ts e da lì si possono evincere tutte le varie chiamate. Queste verranno analizzate nei capitoli successivi.

Progressive Data Management

Questi endpoint rappresentano il cuore delle funzionalità degli IdANode. La scrittura, ma soprattutto la lettura, delle informazioni scritte sulla blockchain rappresentano le due funzionalità chiave dello sviluppo di qualsiasi dApp.

Ricordiamo che la scrittura di dati arbitrari è permessa grazie all’ OP_RETURN, che permette di inserire 8000 byte di dati su qualunque transazione. È importante capire che gli output marcati con OP_RETURN sono delle transazioni non spendibili, infatti vengono spese le sole fee di 0.001 LYRA per ogni transazione, ovvero per ogni 50 kilobyte.

Se le dimensioni del dato che si vuole scrivere superano gli 50000 byte, l’IdANode suddivide i dati in pezzi da 49994 byte e usa i primi 3 byte e gli ultimi 3 byte per creare un legame tra dati sequenziali. In particolare i primi 3 byte vengono legati alla transazione precedente e gli ultimi 3 a quella successiva. In questo modo gli IdANode riescono a ricostruire le informazioni scritte su più transazioni.

Per avere contezza di tutta la documentazione tecnica consulta qui la wiki.

Per non perderti alcun aggiornamento seguici su:

TelegramTwitterLinkedinDiscordFacebook

Adaptive Blockchain