GARR Cagliari Italy. Applicazioni degli Smart Contracts alla certificazione di filiere di produzione e ai microservizi

Documenti analoghi
Architetture di rete. 4. Le applicazioni di rete

TESI DI LAUREA IN INFORMATICA

Tecnologia per l'innovazione e Industria 4.0 nel settore utility Michele Marchesi

PORTALE DEI SERVIZI ART/ ART WEB PORTAL MANUALE UTENTE /USER MANUAL PROCEDURA DI ACCREDITAMENTO / REGISTRATION PROCEDURE

FACTORING, DISTRIBUTED LEDGER TECHNOLOGY (BLOCKCHAIN) E SMART CONTRACTS

Laboratorio di programmazione

Introduzione a DevOps

Introduzione alle griglie computazionali LEZIONE N. 10. Università degli Studi di Napoli Federico II Corso di Laurea in Informatica III Anno

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:

Applicazioni distribuite e sistemi ad oggetti distribuiti. RPC RMI - Web Services 1

Applicazioni distribuite e sistemi ad oggetti distribuiti

Fondamenti di Informatica T-1

SISTEMI OPERATIVI THREAD. Giorgio Giacinto Sistemi Operativi

Cineca Open Ledger : Blockchain a supporto del microinvestimento per la sostenibilità ambientale

Architetture Client/Server e World Wide Web

2011 Politecnico di Torino 1

REGIONE BASILICATA PROCEDURA APERTA (AI SENSI DEL D.LGS.163/2006 E S.M.I.)

Inizializzare oggetti

cover #PHONES Architettura Componente Chat IFM Group Maggio 2017 Numero Documento: PH0050/01

RETI DI IMPRESA E BLOCKCHAIN

Architetture Client/Server. Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo

SQL per le applicazioni D B M G

A.s Programma di Informatica

Le opportunità delle tecnologie Blockchain & Distributed Ledger

SQL per le applicazioni D B M G

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Fideiussioni on BlockChain il progetto del Comune di Bari Bari, 15/03/2019

Sistema operativo & file system 1

LabVIEW. Introduzione. Laboratory Virtual Instrument Engineering Workbench. Esempio di pannello frontale. Misure Elettroniche 1

2011 Politecnico di Torino 1

italianasoftware nasce ed opera per innovare e rivoluzionare il mondo dell'it portandolo verso soluzioni distribuite a microservizi.

Basi di Dati Architetture Client/Server

Tecnologie di Sviluppo per il Web

L integrazione di mail in un sistema automatico di distribuzione di ontologie: Ontology Mail Manager

Modelli di programmazione parallela

Introduzione ai. Sistemi Distribuiti

Architetture Client/Server. Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo

Mashup con Javascript

Fondamenti di Informatica T-1

Architettura esagonale

Concetti base Bitcoin:

Corso di PHP. Prerequisiti. 8.1 PHP e MySQL. Conoscenza MySQL Tecnica della programmazione

ISO- OSI e architetture Client-Server

L Universo dell Internet of Value, tra le galassie della Blockchain

2011 Politecnico di Torino 1

Centralizzata Monolitica anni Reti Client Server anni Internet The network is the computer

Alcune idee sui sistemi software e la loro architettura

Cloud Storage class software on-premises

Strutture come parametri di funzioni

La mia esperienza con le blockchains

Le Initial Coin Offer: il più recente modo di finanziare startup!

ottobre Fonti [Bakken] Middleware (da Encyclopedia of Distributed Computing) Middleware Architectures and Technologies Luca Cabibbo

MODELLI ISO/OSI e TCP/IP

DICHIARAZIONE DI CONFORMITA' / Declaration of Conformity

La Rivoluzione Digitale nel Sistema Bancario

Prof. Giorgio Poletti

OPENSHIFT ACCELERA LA DIGITAL TRANSFORMATION DI SIAE

APPUNTI DELLA LEZIONE DI DATABASE DEL 20/10/2016 (POMERIGGIO)

Architettura e caratteristiche dello storage in INFN-CC. Workshop CCR La Biodola 3-7/06/2019 Marica Antonacci, Stefano Stalio per INFN-CC

Per numeros...ad astra. Blockchain: come e perché funziona - Marco

Architettura a oggetti distribuiti

Progettazione Siti Web: Ipertesto

Servizi DISI: spazio Web personale e di gruppo. Angelo Di Iorio

Media, dati e trasparenza

Università degli Studi di Napoli Federico II

Programma didattico. Sviluppare Applicazioni Distribuite in ambiente. Spring MVC

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.

Comune di Venezia. Scheda descrittiva del programma

Fondamenti di Programmazione Prof.ssa Elisa Tiezzi. Programmazione orientata a oggetti

AiliA: Prima bozza white paper descrittivo V.01 Novembre 2018

Oggetti. La programmazione orientata agli oggetti, OOP (Object-Oriented Programming), prende il nome dall elemento su cui si basa, l oggetto.

Lo Standard OPC. Materiale Didattico: Dispense OPC UA Inglese e Italiano Esercizio Client OPC UA Java (stampare il file word e portarlo a lezione!

JDBC. Marco Tessarotto Programmazione dei Web Server Anno Accademico

Emissione Certificato Advanced Cloud Signature

Service discovery nella API Java Bluetooth JSR-82

UNIVERSITÀ DEGLI STUDI DI TORINO

File binari e file di testo

Web-based Simulations of Multi-agent Systems

Oltre i Bitcoin: il Web 3.0

Blockchain e GDPR. A cura di: Walter Rotondaro. Mauro Alovisio. 23 novembre 2018

Tecnologie di Sviluppo per il Web

Le issues per le istituzioni

Visualizzazione semplificata nuove funzionalità e nuovi prodotti per la visualizzazione in CODESYS

MODELLI ISO/OSI e TCP/IP

DATI AZIENZA. Denominazione Azienda: Indirizzo PEC: Indirizzo sede: Città: CAP: Prov: Referente: Ruolo in azienda: Indirizzo

GIS - corso base Corso base sul GIS opensource, i Sistemi Informativi Territoriali e la pianificazione partecipata.

18 - Classi parzialmente definite: Classi Astratte e Interfacce

17 - Classi parzialmente definite: Classi Astratte e Interfacce

Guide utili per la ICO di Demter

Blockchain e smart contracts

Sommario 1 Introduzione progetto Soluzione Integrazione Conclusioni... 10

ECCO LE ISTRUZIONI PER INSERIRE IL MATERIALE RICHIESTO DAL BANDO TEATRO SENZA FILO CONTEST:

Payment Service Directive PSD2

Simple Social: implementazione di una

MOC20487 Developing Windows Azure and Web Services (Visual Studio 2012)

Corso Programmatore Object Oriented per Web e App.

Il corso fornisce le competenze per progettare e sviluppare programmi usando WebSphere MQ.

Transcript:

GARR 2018 @ Cagliari Italy Applicazioni degli Smart Contracts alla certificazione di filiere di produzione e ai microservizi Michele Marchesi a, Roberto Tonelli a, Andrea Pinna b, Gavina Baralla b, Stefano Secci, Simona Ibba b, a) Department of Matehematics and Informatics, University of Cagliari, Italy b) Department of Electric and Electronic Engineering, University of Cagliari, Italy Agile Group DMI, University of Cagliari 1

Blockchain Catena di Blocchi che fa da registro distribuito (distributed ledger) di transazioni pubbliche Non modificabile, trasparente, distribuita, decentralizzata, su rete peer-to-peer Pubblica/Privata, Permissionless/Permissioned Solo criptovaluta vs. Smart Conracts Nodi identificati da addresses Crittografia e hashing Agile Group DMI, University of Cagliari 2

Smart Contracts Accordi tra parti non ripudiabili ed eseguiti automaticamente In generale: Codice che viene eseguito su blockchain Linguaggio di programmazione Solidity per Ethereum Agile Group DMI, University of Cagliari 3

Certificazione di filiere di produzione Caso di studio Il progetto WINE Blockchain impossibilità di modificare i dati dichiarati + firma digitale del produttore (e di eventuali altri soggetti coinvolti) Agile Group DMI, University of Cagliari 4

Agile Group DMI, University of Cagliari 5

Agile Group DMI, University of Cagliari 6

Nel campo AgriChainData caricato sulla blockchain si trova nuovamente l indirizzo dell Agri Chain Master Contract da cui si è partiti. Questi sono gli unici contratti che si referenziano a vicenda nella blockchain, quindi la catena non è stata perfettamante implementata e per via dell errore nel costruttore dell AgriChainContract, non sono nemmeno stati inizializzati gli indirizzi. Agile Group DMI, University of Cagliari 7

Agile Group DMI, University of Cagliari 8

Altre problematiche riguardano alcune funzioni e costrutti utilizzati nei contratti sono stati dichiarati deprecati e perciò da sostituire. Ad es. in BaseAgriChainContract la parola chiave throw è oramai deprecata e di conseguenza pure il costrutto if. Per costruire dei modificatori che verifichino delle determinate condizioni vi è la possibilità di scegliere tra tre nuove funzioni che sostanzialmente fanno la stessa cosa del throw ma migliorano la leggibilità e hanno diversi effetti sull utilizzo del gas. Queste funzioni sono assert(), require() e revert(): assert, in caso di fallimento del controllo, brucia tutto il gas rimanente; require, al contrario, è più indulgente; revert, rimborsa il gas rimanente al chiamante e permette di restituire un valore. Agile Group DMI, University of Cagliari 9

Abbiamo scelto di modificare il codice dei due modificatori presenti nel contratto usando assert per il modificatore OnlyIfNotSealed, perché un tentativo di modificare un valore già sigillato può essere visto come un tentativo di contraffazione e quindi è da disincentivare con la perdita del gas, mentre per la clausola OnlyBy si è scelto require. Si è inoltre sostituito suicide con selfdestruct e corretto l errore nel nome del costruttore del contratto AgriChainContract. Agile Group DMI, University of Cagliari 10

è stata realizzata una DApp per interagire, lato client, con i contratti del sistema Wine Blockchain, presentato nel capitolo 2 e analizzato nel capitolo 3. L applicazione si frappone, quindi, tra il contratto e l utente creando un interfaccia pensata per permettere a un ipotetico dipendente della cantina di registrare le varie fasi della filiera nei contratti creati e inseriti nella catena in maniera più semplice. I contratti non possono essere creati dall applicazione ma devono essere già stati creati precedentemente e vi si può accedere utilizzando gli address degli smart contract. Una volta inseriti i dati e inviati nella blockchain l applicazione permetterà di visualizzarli e si potrà scegliere se modificarli o sigillarli impedendo una futura modifica degli stessi. Agile Group DMI, University of Cagliari 11

Agile Group DMI, University of Cagliari 12

Agile Group DMI, University of Cagliari 13

Microservices (MS) Piccole applicazioni sviluppate allo scopo di decomporre un architettura monolitica Sono servizi autonomi, indipendenti, interagenti, istanziati indipendentemente, modulari, girano su server indipendenti Erogano servizi specifici (ad utenti o a client) Gli SC rispecchiano tale paradigma Agile Group DMI, University of Cagliari 14

Smart Contracts (SC) Smart Contracts rappresentano programmi, sono istanziati su blockchain, girano sui nodi in maniera indipendente ma coerente, sono attivati da transazioni SC tipicamente implementano task semplici e autonomi con scopo definito SC mettono a disposizione un interfaccia (API) per I contratti chiamanti Agile Group DMI, University of Cagliari 15

Model Usiamo un architettura blockchain-oriented a microservizi basati su Smart Contracts per un caso di studio: e-commerce application L architettura ha due layers: Il primo e l interfaccia tra applicazioi e blockchain Il secondo e composto da un set di SC che girano su blockchain Agile Group DMI, University of Cagliari 16

Primo Layer Fornisce l ABI (The Ethereum Application Binary Interface) Un applicazione software puo usare le ABI dello SC per richiedere servizi L ABI del Contratto specifica le funzioni che possono essere chiamate e garantisce il format dei valori di ritorno Agile Group DMI, University of Cagliari 17

Secondo Layer Ogni microservizio e implementato da uno smart contract atomico. La communication tra layers takes avviene con remote procedure calls (RPC), tramite la Web3 Ethereum library La libreria e usata per scrivere progammi javascript per creare ed eseguire blockchain transactions e chaimate agli SC (service requests) Agile Group DMI, University of Cagliari 18

Functioning Each user is uniquely identified by an Ethereum address. The Account service records and manages users/clients information. Depending on the client profile, the system enables different functionalities or services. Once registered, data are stored permanently within the blockchain and all node have a copy of the blockchain Agile Group DMI, University of Cagliari 19

Model Architecture Agile Group DMI, University of Cagliari 20

Il Data access e sicuro e trasparente Users registration e login sono microservizi gestiti da uno SC dedicato Il servizio inventory registra I dati su blockchain e restituisce l informazione allapagina web dello store online Agile Group DMI, University of Cagliari 21