The blockchain giant-impact: elezioni su YouVote con Scrypta

Democrazia e blockchain: anche l’ormai famosa capra ha finalmente la sua chance

Giuseppe Palazzolo
Mar 24 · 3 min read

Continuano gli esperimenti di Giant-Impact, questa volta utilizzando la blockchain di Scrypta.

Ripartiamo dal nostro Ida node: attraverso questo componente dell’ecosistema di Scrypta è possibile dialogare con la blockchain sottostante, esplorandola e scrivendo dati. L’interazione Client-IdaNode avviene attraverso chiamate https programmabili in javascript, le classe dedicata dialogherà direttamente con l’IdaNode che salverà le informazioni desiderate. Non vi è una macchina virtuale distribuita dunque il codice che scriveremo non sarà immutabile ma sarà eseguito dal client che utilizza l’applicazione.

Gestione account

Si è deciso di gestire l’account all’interno dell’applicazione stessa così da renderla subito utilizzabile nonostante esista l’estenzione ScryptaID, più avanti si potrebbe integrare aggiungendo YouVote al dappExplorer.

Dal momento in cui si seleziona l’icona di Scrypta apparirà una finestra in cui è possibile caricare il proprio account attraverso il file .sid o crearne uno dal sito Manent, sbloccarlo e utilizzarlo.

Inserimento e sblocco account

Alla la creazione dell’elezione e prima della partecipazione a questa verrà chiesta la password per lo sblocco dell’account.

Creazione e partecipazione

La creazione dell’elezione è totalmente gratuita dal momento che la transazione viene effettuata dall’account dell’elezione stessa e non dal proprio, in questa verranno salvate le caratteristiche della votazione che si sta per avviare.

Si può partecipare e far partecipare attraverso il CID IPFS della transazione che verrà mostrato quando la transazione sarà andata a buon fine.

Indirizzi elezione

Così come accade per le votazioni effettuate su Ethereum e quelle che verranno effettuate su Quadrans.

Funzioni principali

L’implementazione della classe scypta.js contiene tutto il codice utilizzato per l’interazione con l’IdaNode. L’aspetto di maggior differenza con Ethereum è che ogni tipo di controllo viene effettuato lato client; bisogna verificare se l’utente ha già votato o se l’elezione è terminata? Il client stesso elaborerà queste richieste.

Come evitare di effettuare manualmente le transazioni aggirando i controlli di YouVote? Nessuno mi vieterebbe infatti di inviare transazioni con determinati parametri…

Quello che si può fare per evitare tutto ciò è filtrare i voti non validi al momento del conteggio dei risultati finali: questo viene effettuato nella funzione excludeInvalidVotes(…), cosicché l’esito non sarà corrotto.

Repository GitHub

Tutte le narrazioni contenute in questi articoli sono supportate dal codice che è possibile reperire al seguente link github:

The blockchain giant impact

Nello specifico trovate:

Implementazione Ethereum con Smart Contract

Implementazione Scrypta

Mentre il resto dei componenti, interfaccia grafica compresa, sono comuni ad entrambe le implementazioni.

Nota

Per fare un confronto con la realizzazione per Ethereum, vi rimando al post

The blockchain giant-impact: elezioni con YouVote utilizzando Ethereum

vivido-it

Blockchain on demand software company

Giuseppe Palazzolo

Written by

vivido-it

vivido-it

Blockchain on demand software company

More From Medium

More on Elections from vivido-it

More on Blockchain from vivido-it

More on Blockchain from vivido-it

The blockchain giant-impact: YouVote

More on Blockchain from vivido-it

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade