Définitions
- Eléments clés d'une blockchain.
- Chaîne de blocs et stockage sécurisé.
- Nœuds de gestion décentralisée, un historique infalsifiable et vérifiable.
- Eléments du SI impactés.
- Domaines d'application.
Démonstration
Manipuler une blockchain existante dans un Cloud, créer et voir des transactions dans un ledger.
Rappels de cryptologie, la blockchain historique
- Cryptologie de base pour blockchain.
- Différents algorithmes de hachage.
- La blockchain historique : Bitcoin.
- Consensus par minage.
- La Bitcoin en chiffres et en images.
Travaux pratiques
Installer et contrôler les outils de déploiement d'un environnement de test dans une machine virtuelle.
Architectures blockchain, APIs
- Rappel sur les architectures orientées Services.
- Un service de confiance reposant sur plusieurs blockchains.
- Les APIs du service de confiance et de certification de documents.
La blockchain Hyperledger
- Principes et terminologie.
- Différents types de noeuds.
- Architecture des services.
- Confidentialité des opérateurs.
- Les bases de GO, le langage des smart contracts.
Travaux pratiques
Construction d'une blockchain et premiers tests en GO.
Hyperledger Fabric à capot ouvert
- Algorithmes de consensus sur loterie ou sur vote.
- Abandon du minage, du PoW, du PoS.
- Le consensus PBFT.
- Protocole de communication inter-noeuds.
- Notion de Channel.
Fonctionnement d'un smart contract
- Notion de chaincode, world-state, read-set, write-set.
- Déploiement d'un chaincode.
- Enregistrement d'une transaction : Invoke.
- Consultation : Query.
Travaux pratiques
Exécution pas à pas d'un smart contract.
En route pour BaaS, la Blockchain as a Service
- Les différentes plateformes de développement.
- Création de sa propre blockchain dans un Cloud.
- Utilisation des services d'un BaaS.
Démonstration
APIs et services d'un BaaS.
Architectures d'intégration d'une solution blockchain
- Les tendances architecturales DDD, ES, CQRS...
- Rappels : microservices, dockerisation.
- Construction des différents dockers dans la VM de test.
- Intégration d'une blockchain dans les SI des partenaires.
Travaux pratiques
Implémenter des microservices dans un nœud, les déployer dans des dockers.