Corso di formazione professionale avanzato sulle tecnologie blockchain, con particolare attenzione a Hyperledger Besu e allo sviluppo di blockchain private per uso interno aziendale e consortile; il corso affronta anche la sicurezza degli smart contract e le metodologie avanzate di sviluppo con Solidity. È rivolto a sviluppatori che hanno già una buona conoscenza delle tecnologie blockchain e che vogliono approfondire lo sviluppo di smart contract e la progettazione di blockchain private.
Il corso si tiene in italiano o in inglese, in presenza a Torino o da remoto.
Per partecipare servono ottime capacità di programmazione e conoscenze delle tecnologie blockchain, di Ethereum e di Solidity. Sono consigliate anche conoscenze di base di JavaScript, Node.js e Docker. È necessario un computer con Linux, Mac o Windows con WSL2.
I moduli previsti, ciascuno della durata di mezza giornata (4 ore), sono i seguenti:
- Ripasso delle basi di Ethereum
- EVM, Turing completezza, smart contract;
- Wallet, EOA e indirizzi dei contratti;
- Ether e gas;
- Transazioni e blocchi;
- Reti;
- Solidity: vulnerabilità ed attacchi
- Re-entrancy;
- Manipolazione del timestamp;
- Overflow e underflow, prima e dopo Solidity 0.8;
- Denial of Service;
- Invio forzato di ether;
- Solidity: pattern avanzati
- Sospensione e ripresa dei contratti;
- Aritmetica controllata e blocchi
unchecked; - Checkpoint;
- Merkle tree;
- Contratti aggiornabili tramite proxy;
- Reti blockchain private
- Tipologie di reti blockchain;
- Hyperledger Fabric;
- Quorum;
- Hyperledger Besu;
- Consenso e Proof of Authority
- Byzantine Fault Tolerance;
- Proof of Authority;
- Algoritmo Clique;
- Algoritmo Raft;
- Algoritmo IBFT;
- Algoritmo QBFT;
- Implementazione di una rete Hyperledger Besu
- Progettazione di un caso di studio;
- Definizione delle caratteristiche della rete privata;
- Creazione del progetto;
- Generazione dei nodi (bootnode, validatori, membri);
- Configurazione della rete: blocco genesi, nodi statici, permessi;
- Orchestrazione e avvio dei nodi con Docker;
- Smart contract
- Sviluppo di uno smart contract per il caso di studio;
- Pubblicazione dello smart contract sulla rete privata;
- Interazione server-blockchain
- Gestione delle chiavi;
- Application server con Node.js;
- Pubblicazione di transazioni e interazione con lo smart contract;
- Sottoscrizione agli eventi;
Durante i moduli sono previsti esercizi per mettere in pratica gli argomenti trattati.