Blockchain, la rete internet del futuro

Letteralmente blockchain significa catena di blocchi. Per quale motivo una catena di blocchi sarà la rete del futuro?

Per rispondere a questa domanda dobbiamo prima di tutto conoscere come funziona la tecnologia blockchain.

Fino ad oggi quando pensiamo ad internet generalmente pensiamo ad una rete centralizzata. Ovvero, il mio PC (client) si connette al server in modo da richiede informazioni o fare altri tipi di operazioni come: creare bonifici, acquistare, scrivere articoli…

Quando sentiamo parlare di blockchain si intende un tipologia di rete in cui viene meno la centralizzazione delle informazioni. Infatti, la basedati è distribuita e decentralizzata per tutti i nodi della rete.

In realtà, in qualche occasione abbiamo già sentito parlare di rete distribuita: la rete peer to peer. Questa rete è usata sopratutto per la condivisione dei file in cui ogni nodo della rete può ricevere ed inviare informazioni ad altri nodi della rete senza che ci sia alcun nodo che faccia da intermediario.

Nel caso della blockchain ogni nodo possiede lo stesso database presente su tutti gli altri nodi e, grazie a particolari tecniche di crittografia, ogni informazione (chiamata transazione) viene inserita in blocchi e viene distribuita su tutti i nodi della rete. Una delle peculiarità della blockchain è che l’informazione non è duplicabile.

Com’è possibile non duplicare le informazioni su internet? ad esempio un e-book o una canzone?

Per rispondere a queste domande bisognerebbe avere alcune nozioni base di crittografia. In particolare:

La funzione hash sha256.

Questa funzione ha due caratteristiche principali:

  1. trasforma qualsiasi tipo di informazione digitale in una sequenza numerica di 256 bits. Potete fare delle prove con esempi testuali su questo link. Il risultato della funzione hash è ciò che verrà inserito in una transazione di un blocco della blockchain. Quindi, posso convertire un file di 10GB in un file testuale da 256bits
  2. Se utilizzo questa funzione su un’immagine otterrò una sequenza alfanumerica; se all’immagine cambio il metadato di pubblicazione allora otterrò un’altra sequenza alfanumerica completamente diversa. Se qualcuno copia la mia immagine allora il file copiato avrà un hash completamente diverso dall’originale.

Crittografia asimmetrica con chiave pubblica-privata

Ogni membro della blockchain ha una chiave pubblica e privata. Se volessi trasferire un’immagine di mia proprietà ad un destinatario allora posso agire in questo modo:

Con la chiave privata posso crittografare, ad esempio, l’hash della mia immagine in modo da firmarla digitalmente. Durante la transazione invio al mio destinatario, oltre all’hash firmato, anche la chiave pubblica (la chiave pubblica è generata attraverso una funzione complessa logaritmica dalla chiave privata. Dalla chiave pubblica è ad oggi impossibile risalire alla chiave privata). Il mio destinatario può, a questo punto, decriptografare l’hash con la mia chiave pubblica (in questo modo riconosce che l’immagine è di mia proprietà) e confrontare l’hash ottenuto con l’hash dell’immagine stessa in modo da verificare l’autenticità del file.

Come si applica la crittografia in una blockchain?

Ogni transazione avrà sempre un elemento in input ed uno in output. Se io volessi inviare un file da A a B, firmo digitalmente il file con la chiave privata di A e poi cripto la transazione con la chiave pubblica di B in modo tale che solo B può ricevere il file. A questo punto B decripta il file con la chiave pubblica di A.

linked block

Ogni blocco della rete è rappresentato univocamente da un’hash. Ad esempio supponiamo che A è collegato a B. A è rappresentato da 0001, B possiede (nel campo relativo all’hash precedente) 0001. A e B risultano collegati tra loro e questo tipo di relazione fa sì che si rispetti l’integrità. Ciò vuol dire che ogni modifica al blocco A modificherà il suo codice hash e romperà la catena con il blocco B.

In generale, ogni blocco della catena contiene un puntatore hash come collegamento al blocco precedente, un timestamp e i dati della transazione.

Come si creano i blocchi?

i blocchi non sono altro che una collezione di transazioni create dagli utenti della blockchain. Per essere utente della blockchain basta possedere un portafoglio (o wallet, ce ne sono diversi in giro). Una volta creato il proprio wallet viene fornita la chiave pubblica e la chiave privata (che non deve essere assolutamente condivisa con nessuno).

Tutte le transazioni create da chiunque abbia un portafoglio (wallet) vengono raccolte in un blocco (al quale verrà assegnato un hash). Questo codice verrà poi inserito nel blocco successivo. Ogni transazione subirà, prima di accedere al blocco, una serie di controlli da parte dei nodi completi della rete in modo da verificarne la validità (i nodi completi sono nodi che hanno tutta la blockchain nel proprio storage). Una volta generato il blocco e convalidato le checksum di tutte le transazioni l’algoritmo proof-of-work garantisce che il nodo sia accettato da tutti i nodi della rete.

Chi sono i miners?

I miners sono nodi della rete che assicurano la validità ed il corretto funzionamento della blockchain. Tecnicamente pubblicano di continuo blocchi nuovi della blockchain con le transazioni che hanno appena verificato (1MB X 2000 transazioni). una volta che il miner pubblica un nodo riceve una ricompensa (bitcoin o altre criptovalute). I miners sono tra loro in competizione: chi produce blocchi per prima riceve ricompense maggiori. La velocità di calcolo e la banda di rete sono determinanti nella generazione dei blocchi.

La tecnologia appena descritta si sta evolvendo verso una nuova generazione di applicazioni web3.0. Ethereum è un piattaforma basata su blockchain che promette (oltre alla generazione di criptovalute) anche di poter creare applicazioni distribuite (senza un server centrale) DAPPS.

Quindi, se associamo le potenzialità della blockchain con le applicazioni distribuite potremmo aprire le porte ad una vasta gamma di applicazioni future che non avranno più bisogno di una centralizzazione delle informazioni o di una verifica di un ente terzo.

Se la spiegazione vi ha entusiasmato...allora riconosci il lavoro con una piccola donazione

ETH: 0x11b2549022F5E8d9153254E9966bBa93A48dDf59

Protetto: Migrazione dei sistemi informatici: come eseguire un’analisi aziendale AS-IS

Il contenuto è protetto da password. Per visualizzarlo inserisci di seguito la password:

Installazione e preparazione domotica con OpenHab

In questo tutorial spiegheremo come poter implementare un sistema domotico d’avanguardia utilizzando le più moderne tecnologie.

Per maggiori informazioni contatta l'esperto che collabora con noi

Ditta Pietrantuono Pietro

Installazione, Manutenzione e Riparazione Impianti Elettrici/Domotici

info@informaticagestionale.it

cell. 339.2605170

Utilizziamo la seguente lista di tecnologie hardware e software:

  1. OpenHAB opensource
  2. Raspberry PI B+
  3. Raspbian
  4. LCD touchscreen 7 pollici
  5. KODI Media center
  6. protocollo di comunicazione ZWave
  7. 4 punti luci (device zwave) di cui 2 dimmer
  8. sistema di allarme interno (zwave)
  9. 1 sensore temperatura, umidità (zwave)
  10. termostato (zwave o powerLine)
  11. webcam

  • prima di procedere, scarichiamo la versione di raspbian per il nostro raspberry https://www.raspberrypi.org/downloads/raspbian/. Raspbian è il sistema operativo ottimizzato per raspberry
  • una volta scaricata l’immagine la installiamo su SD CARD seguendo le seguenti istruzioni:
    • dopo aver inserito la scheda nel PC, formattare la scheda SD in FAT32
    • con windows o mac utilizzare uno dei tanti programmi di preparazione  dischi di avvio
    • con ubuntu installare l’immagine nella partizione della scheda SD:
      sudo dd if=/imagePosition/image.img.xz of=/dev/sd* (Attenzione! sostituire * con la partizione esatta della scheda SD, altrimenti, rischiate di cancellare l'intero disco del PC)
  • per fare in modo che lo schermo si adatti perfettamente con lo schermo da 7 pollici si deve modificare il file /boot/config.txt sulla partizione della scheda SD.
7” raspberry LCD preparation
  • dopo aver preparato lo schermo LCD da 7 pollici con il raspberry inserire nell’apposita fessura la scheda SD opportunamente preparata (ricorda di cambiare la risoluzione sulla scheda nel file /boot/config.txt)
socket SD card
  • una volta collegato il raspberry con la rete ethernet (o wireless), accenderlo, aspettare che raspbian si avvii correttamente, e da questo momento, collegarsi al raspberry direttamente attraverso SSH di un’altro device (a meno che non si voglia continuare la configurazione direttamente sul raspberry stesso). ssh pi@ip_public
  • una volta connessi al raspberry inseriamo questi comandi per aggiornare ed aggiungere nuovi software

sudo apt-get update
sudo apt-get upgrade

sudo apt-get install screen mc vim git htop

  • continuare l’installazione seguendo queste istruzioni

https://docs.openhab.org/installation/linux.html#package-repository-installation

una volta installato OpenHab, è possibile iniziare la configurazione vera e propria installando gli addons preferiti (esempio zwave) e configurando gli items che vengono automaticamente generati durante il rilevamento.

OpenHab utilizza diversi sistemi dashboard. Nel nostro caso il sistema domotico appena configurato si presenta come in figura.

  • tasto di accensione di tutte le luci
  • dimmer presente in sala
  • dimmer presente in camera da letto
  • webcam in sala
  • barra per il controllo del volume del mediacenter
  • play/pause mediacenter
  • tasto muto mediacenter

Al termine della configurazione possiamo associare al nostro terminale tutti i dispositivi elencati sopra:

  1. colleghiamo la webcam con la porta USB del raspberry
  2. colleghiamo i punti luce, i sensori, il termostato e l’allarme con il server zwave direttamente dalla dashboard di openhab 
  3. il sistema può essere integrabile con altri dispositivi quali:
    1. sensore di presenza delle persone autorizzate
    2. sensori porta-finestra antifurto
    3. sensori volumetrici e così via

Questo tutorial era solo un esempio,

se desiderate anche voi un impianto domotico ma non avete le competenze tecniche allora provate a contattare gli esperti che collaborano con noi:

Ditta Pietrantuono Pietro

Installazione, Manutenzione e Riparazione Impianti Elettrici/Domotici

info@informaticagestionale.it

cell. 339.2605170

oltre alla configurazione ed alla predisposizione del pannello di controllo ci si occuperà anche della personalizzazione dei collegamenti elettrici con l’impianto di casa.

Predizione di un evento attraverso Naive Bayes OnLine

InformaticaGestionale.it propone ai suoi lettori il nuovo servizio online che sfrutta il teorema di Bayes per fare predizioni di qualsiasi tipo grazie ad un set di dati storici eseguiti su specifici attributi. L’obiettivo è predire un determinato target o valore a partire da un nuovo set di attributi.

Questo può essere utile in moltissimi campi di applicazione: dal sociale alla medicina, dalla manutenzione alla produzione industriale.

Ecco una carrellata di esempi:

  1. lotti di produzione PC difettosi sulla base di attributi come temperatura (alta, media, bassa), velocità di produzione, tipo PC (standard, custom), qualità materiali (ottimo, scarso, buono). Riusciamo quindi ad identificare se un lotto sarà difettoso oppure no.
  2. l’acquisto di un prodotto da parte di un potenziale cliente in base ad attributi quali dimensioni azienda (piccola, media o grossa), tipologia azienda (servizi o manifatturiera), prezzo del prodotto.
  3. capire se una persona ha una determinata malattia sulla base di attributi quali sintomi, sesso, esami che determinano se l’individuo è malato oppure no.
  4. capire se un macchinario industriale ha bisogno di manutenzione (in modo da prevenire eventuali guasti) sulla base del tempo di funzionamento, velocità di produzione, complessità del prodotto (semplice, medio, complesso).

Il modello matematico utilizzato è basato su record storici che sono stati preventivamente inseriti (training_set). In base a questi record è possibile predire una determinata condizione preventivamente inserita nel testing_set.

Il calcolo della probabilità condizionata per ognuna delle casistiche determina la probabilità che si verifichi l’evento 1 oppure l’evento 2.

La predizione verrà orientata sull’evento con più alta probabilità.


 

ad esempio:

Data la seguente traingin table, vogliamo predire il valore della riga segnata in giallo (testing table)

 

TIPO AUTO TIPO GUIDA TIPO STRADA KM PERCORSI PREZZO AUTO TARGET
SUV SPORTIVA MISTO 4000 65000 NO MANUTENZIONE
UTILITARIA PASSEGGIO CITTA 80000 30000 MANUTENZIONE
SUV PASSEGGIO MISTO 15000 80000 NO MANUTENZIONE
UTILITARIA SPORTIVA CITTA 8000 20000 MANUTENZIONE
MONOVOLUME SPORTIVA MISTO 4000 65000 NO MANUTENZIONE
MONOVOLUME LAVORO CITTA 80000 40000 NO MANUTENZIONE
SUV LAVORO MISTO 250000 120000 MANUTENZIONE
UTILITARIA LAVORO AUTOSTRADA 70000 10000 MANUTENZIONE
UTILITARIA SPORTIVA MISTO 200000 12000 TO PREDICT

 

Secondo Naive Bayes il valore predetto è MANUTENZIONE : 3.6747338165603E-13

Se, invece di mettere 200.000 km percorsi mettiamo solo 20.000km allora la macchina risulta in NO MANUTENZIONE

qui l’esempio, potete provare a cambiare il testing set e visualizzare il valore predetto: ESEMPIO1

Clicca qui per la DEMO

IdempiereIOT: gestione delle risorse fisiche aziendali

Per risorse fisiche intendiamo tutti i beni “tangibili” in un’azienda, siano essi di supporto oppure di core-business:

  • documentazione cartacea (es. cartelle cliniche, cartelle giuridiche, fatture, ordini…)
  • dispositivi elettronici aziendali (server, PC, notebook, tablet, smartphone, allarmi…)
  • parco auto aziendale
  • macchine industriali
  • sensori e attuatori

IdempiereIot prevede la gestione “intelligente” di questi dispositivi:

  • Virtualizzazione dei beni aziendali: ogni bene aziendale può essere associato su Idempiere: è possibile categorizzarlo, inserire informazioni aggiuntive (es. data prossimo controllo), link ad allegati…
  • Gestione dello stato del bene: (es. occupato, disponibile, guasto…)
  • Interazione con altri beni aziendali: (es. se un server lavora per diversi giorni con temperature ambiente troppo elevate allora si presume, in base ai dati storici, che si danneggi nel giro di poco tempo. A questo punto il “motore centrale” invia un alert all’operatore ed invia un segnale al termostato per abbassare automaticamente la temperatura).
  • Interazione con il sistema ERP: es. associazione di un bene ad un dipendente (es. assegnazione di un notebook aziendale), condivisione di un bene con più dipendenti (es. macchina industriale), tempo di utilizzo di un bene da parte di un dipendente, scannerizzazione tag cespite direttamente sul “bene”…
  • Storicizzazione di tutti gli eventi avvenuti su qualsiasi bene virtualizzato.
  • Acquisizione informazioni di un “bene” attraverso il proprio smartphone fotografando il qrCode o avvicinando l’NFCTag associato tramite l’applicazione FlowItems.
  • Dashboard con analisi in tempo reale

NodeRed è il motore che gestisce i beni aziendali tramite protocolli standard e li mette in comunicazione con Idempiere attraverso i webservices.

RealTime analysis

Nel caso di gestione di macchine industriali questa soluzione rientra nelle specifiche dell’industria 4.0.

L’architettura del sistema è studiata per essere facilmente adattabile alle necessità di ogni cliente.