Scrypta dApp Ecosystem

Lo sviluppo dell’infrastruttura Scrypta: dalla sua nascita ad oggi

Scrypta
6 min readMay 27, 2019

Scrypta Blockchain nasce il 21 dicembre 2018: data di creazione del Genesis Block. L’infrastruttura di Scrypta è stata progettata per essere uno strumento ad alto valore tecnologico, in grado di adattarsi a molteplici esigenze e applicazioni, grazie anche alla sua natura decentralizzata e agli strumenti sviluppati in questi mesi, dedicati agli sviluppatori. L’ecosistema progettato intorno a Scrypta inoltre, offre mezzi eccezionali di archiviazione, certificazione e verifica: ottimi requisiti per tutte quelle aziende ed organizzazioni desiderose di affacciarsi all'innovazione tecnologica.

Durante questi sei mesi di attività abbiamo sviluppato e migliorato l’intera infrastruttura con il focus dell’interoperabilità, della duttilità e dell’efficienza, creando un vero e proprio ecosistema per lo sviluppo di dApp.

Andando per step, in questo articolo cercheremo di inquadrare tutti gli elementi dell’ecosistema che contribuiscono a renderlo ciò che è oggi. Le parti che seguono potrebbero risultare molto tecniche e di difficile comprensione ma proveremo , nei limiti del possibile, ad utilizzare un linguaggio comprensibile ai più.

IdANodes

Github: https://github.com/scryptachain/scrypta-idanodephp

La tecnologia IdANodes è stata la prima ad essere implementata nell'infrastruttura di Scrypta: la sua funzione non si basa soltanto sulla creazione e gestione degli “indirizzi” ma si estende alla lettura dei blocchi, in modo da ricostruire le informazioni inserite tramite OP_RETURN secondo delle regole ben specifiche.

A sua volta è stato implementato lo storage IPFS e l’operazione di “pin” (operazione con la funzione di mantenimento dei file caricati) viene effettuata automaticamente all'interno degli IdA Nodes stessi.

Altra importante funzione riguarda gli IdANodes che implementano il linguaggio API REST le cui chiamate servono per interagire con la blockchain. Questi nodi sono stati interamente sviluppati con il linguaggio PHP e l’implementazione degli stessi in NodeJS è in corso.

Gli IdANodes possono essere utilizzati per creare applicazioni decentralizzate lato server, in cui l’intervento dell’uomo, per quanto riguarda l’inserimento dei dati, è praticamente nullo; oppure per aggiungere determinate features “blockchain-based” ad applicazioni già esistenti (Si può trovare la documentazione non ufficiale qui: https://documenter.getpostman.com/view/3143294/S11Ltxfq)

ScryptaCore.js

Github: https://github.com/scryptachain/scrypta-core

Questa libreria (javascript) è da considerarsi la più importante dal punto di vista degli utenti. ScryptaCore.js permette la creazione di indirizzi Lyra, di raw transactions (con o senza OP_RETURN) e la firma delle stesse interamente lato client. Questo vuol dire che l’unico ad avere accesso alle private-key è l’utente stesso.

ScryptaCoreJS fornisce inoltre un sistema ben consolidato di salvataggio e di encrypt dei wallet, in file denominati ScryptaID (.sid). Questi file contengono all'interno tutte le informazioni necessarie al wallet per accedervi e compiere le operazioni; quindi possiamo definirlo un vero e proprio metodo di autenticazione, che dovrebbe essere utilizzato come standard di sicurezza.

Trustlink

Github: https://github.com/scryptachain/scrypta-contracts

Trustlink è la tecnologia che permette la creazione di indirizzi multisignature all'interno della blockchain Scrypta. Questi indirizzi multisignature, una volta creati, sono assimilabili ad indirizzi normali, quindi possono compiere operazioni di invio fondi, scrittura etc. Con questa tecnologia il team di Scrypta sta realizzando una piattaforma per la gestione dei contratti su blockchain, innovativa e praticamente unica nel suo genere (https://contracts.scryptachain.org). La gestione di questi indirizzi si trova unicamente all’interno degli IdANode.

ScryptaID

Github: https://github.com/scryptachain/scrypta-id

Oltre ad identificare l’acronimo “.sid” dei wallet Scrypta cryptati, con ScryptaID intendiamo anche l’estensione per i browser Chromium (Chrome, Brave, Vivaldi etc) che sere all'utente a tenere archiviati i file .sid e/o a crearne di nuovi. Questa estensione inoltre fa un’operazione di inject dei file .sid nel formato riconosciuto da ScryptaCore.js e quindi permette di effettuare delle operazioni di login rapido all'interno delle dApp Scrypta (si veda quelle sviluppate). All'interno è presente anche un dApp explorer (vedremo dopo di che si tratta) nella sua versione alpha e presto verrà implementato un sistema di gestione delle identità “certe”.

I prossimi sviluppi di ScryptaID

Queste identità digitali verranno gestite attraverso il caricamento su IPFS di file di identificazione certificati.

Lo “SPID” — Sistema Pubblico di Identità digitale:
SPID è il sistema di autenticazione che permette a cittadini ed imprese di accedere ai servizi online della pubblica amministrazione e dei privati aderenti con un’identità digitale unica. L’identità SPID è costituita da credenziali (nome utente e password) che vengono rilasciate all’utente e che permettono l’accesso a tutti i servizi online.

Questo sistema sviluppato direttamente dallo stato italiano e accettato dai maggiori portali della pubblica amministrazione verrà integrato e si interfaccerà direttamente con ScryptaID per “certificare” e collegare un’identità certa con uno o più indirizzi della blockchain.

Scrypta dApps Engine

GitHub: https://github.com/scryptachain/scrypta-dapps-engine

Lo Scrypta dApp Engine è l’ultima creazione dell’intero ecosistema (in fase di sviluppo alpha) ed è sostanzialmente un’applicazione NodeJS che riesce ad operare sia in locale che in remoto, e che permette all'utente di avviare applicazioni in modo realmente decentralizzato.

Cerchiamo di analizzarne meglio il funzionamento.

Attraverso un portale sviluppatori — che sarà presto disponibile — (o semplicemente usando gli IdaNode attenendosi al protocollo stabilito) è possibile caricare su IPFS una cartella contenente un file di endpoint e gli asset della dApp (si faccia riferimento a questo repository per un esempio: https://github.com/scryptachain/scrypta-dapp-minimal) ed inserire all’interno di un indirizzo Scrypta la seguente informazione:

Protocol — dapp://

Data — IPFS_HASH_FOLDER

L’engine cercherà come endpoint “index.html” all'interno della cartella desiderata e caricherà di conseguenza tutte le dipendenze necessarie, leggendole sempre direttamente da IPFS.

L’engine inoltre cercherà di caricare sempre l’ultima versione disponibile della dApp: questo significa che lo sviluppatore potrà caricare più di una versione della stessa, ma aggiornata (magari dopo la correzione di bug o l’implementazione di nuove features). Lato utente invece, non cambierà nulla per quanto riguarda l’utilizzo della dApp.

Inoltre, lo sviluppatore potrà inserire l’informazione di “END” e potrà impedire a chiunque di accedere alla dApp (almeno attraverso l’engine ufficiale).

L’engine come si è detto può girare in locale (attraverso i pkg compilati per Windows, macOS o Linux) oppure può sfruttare l’endpoint online: https://scryptad.app (utilizzo da mobile principalmente).

Un esempio di quanto espresso sopra è visionabile qui: https://scryptad.app/LdRQokR1i3XDtj1V3jnCRqMPrVc7sYkeE2.

Abbiamo quindi creato un sistema grazie al quale gli sviluppatori saranno in grado di fare il deploy delle loro dApp in modo sicuro e gli utenti potranno effettivamente fidarsi (o meglio verificare — don’t trust, verify!) della dApp, in quanto il codice è immutabile ed analizzabile. Da notare come l’intera dApp sia effettivamente caricata all’interno di Scrypta e non solamente la logica blockchain (facendo un paragone con gli Smart Contracts di Ethereum).

Chiaramente, data l’elasticità di queste dApp (realizzate con VueJS come quelle del team Scrypta o Angular o altri framework) permette anche l’interoperabilità con altri sistemi esterni (quelli che Ethereum chiama oracoli) che permettono la lettura di informazioni in realtime oppure chiamate ad altri sistemi.

Il team di sviluppo è attualmente impegnato nella creazione di una versione di questo Engine che funzionerà direttamente su smartphone, in modo da creare un sistema realmente decentralizzato, in quanto gli utenti saranno in grado di lanciare le dApp senza un server centrale e scaricando il codice direttamente dalla Blockchain, anche da mobile.

Scrypta Developers Portal

Questo portale, che deve ancora essere sviluppato interamente, servirà agli sviluppatori per caricare le proprie dApp all’interno di Scrypta in modo semplice, e gestirle con altrettanta facilità. La creazione e l’inserimento di dApp sarà chiaramente vincolata ad uno ScryptaID (quindi ad un indirizzo) e la dApp stessa è collegata ad un indirizzo Scrypta. Ulteriori dettagli verranno resi pubblici dopo il rilascio della prima versione.

Per ognuno di queste moduli dell’ecosistema stiamo producendo guide e tutorial. Purtroppo lo sviluppo dell’intera infrastruttura di Scrypta è così rapido per cui è complicato andare di pari passo con la documentazione ufficiale. Invitiamo comunque tutti gli sviluppatori interessati alla realizzazione di dApp sull’infrastruttura di Scrypta, o che vogliono semplicemente dare un loro contributo o feedback, ad unirsi al nostro canale Discord (https://discord.me/scryptachain) e mettersi in contatto con il team di sviluppo. Ricordiamo che tutti gli strumenti sopracitati sono rigorosamente Open Source ed è possibile trovare le repository sul nostro portale GitHub (https://github.com/scryptachain)

[Turinglabs — Head of Development at Scrypta]

SCRYPTA - Adaptive BlockchainWebsite: www.scryptachain.org
Block Explorer: https://chainz.cryptoid.info/lyra
Official Github: https://github.com/scryptachain
Twitter: https://twitter.com/scryptachain
Discord: https://discord.me/scryptachain
Telegram: https://t.me/scryptachain_official
e-mail: info@scryptachain.org

--

--

Scrypta
Scrypta

No responses yet