Blockchain avec AWS
Développez votre chaîne de blocs avec les services web d'Amazon
Introduction
Chapitre 1
Chaîne de blocs, mythes et réalités
1. Introduction7
2. Bitcoin et chaîne de blocs, confusion et clarification9
2.1 Le problème de la double dépense9
2.2 Les composants de base11
2.2.1 Clé publique et clé privée12
2.2.2 Fonction de hachage13
2.2.3 L'arbre de Merkle15
2.3 Les transactions et la validation d'un bloc19
2.3.1 Le consensus19
2.3.2 Preuve de travail22
2.3.3 Preuve d'enjeu24
2.3.4 Preuve d'autorité25
2.3.5 Autres méthodes de consensus25
2.4 Blocs et chaînes26
3. Registres et chaînes de blocs30
3.1 Caractéristiques des registres et des chaînes de blocs31
3.2 Privée ou publique33
3.3 Avec permissions ou sans33
4. Participer à une chaîne de blocs34
4.1 Identification et authentification34
4.2 Sécurisation et confidentialité36
4.3 Transparence37
4.4 Transactions et contrats40
5. Créer une chaîne de blocs41
5.1 Création ex nihilo41
5.1.1 Les blocs42
5.1.2 Les transactions45
5.1.3 La chaîne46
5.1.4 L'assemblage48
5.1.5 Conclusion52
5.2 Clonage d'une chaîne existante52
5.2.1 Machine et dépendances53
5.2.2 Compilation54
5.2.3 Conclusion55
5.3 Frameworks56
5.3.1 Machine et dépendance57
5.3.2 Installation du framework58
5.3.3 Démarrer le réseau59
5.3.4 Installer un chaincode60
5.3.5 Exécuter une transaction62
5.3.6 Conclusion64
5.4 Blockchain as a Service65
5.4.1 Créer un réseau et le premier membre65
5.4.2 Inviter des membres66
5.4.3 Ajouter des noeuds et des canaux67
5.4.4 Déployer le code des contrats67
5.5 Conclusion68
Chapitre 2
Chaînes de blocs et AWS
1. Introduction69
2. Prérequis et configuration69
2.1 Créer un compte69
2.1.1 Régions et zones de disponibilité70
2.1.2 Sécurité de votre compte71
2.2 Utiliser la console de gestion d'AWS73
2.3 Accéder aux services par ligne de commande78
2.4 Cloud privé virtuel et points de terminaisons81
2.4.1 Créer son cloud privé virtuel82
2.4.2 Créer les points de terminaisons nécessaires87
2.5 Ressources EC290
2.5.1 Créer une paire de clés EC290
2.5.2 Créer une instance Linux91
3. Registres et chaînes de blocs dans AWS98
3.1 Registres et Quantum Ledger Database98
3.1.1 Du journal de transactions à la base de données journal99
3.1.2 Les mathématiques au service de l'immutabilité104
3.1.3 La structure d'un registre QLDB105
3.1.4 Travailler avec des données stockées dans un registre QLDB107
3.2 Service Amazon Managed Blockchain et Hyperledger Labric112
3.2.1 La structure d'un réseau Hyperledger Fabric113
3.2.2 L'implémentation d'Hyperledger Fabric d'AWS115
3.3 Les modèles de chaînes de blocs d'AWS116
Chapitre 3
Mise en oeuvre de Quantum Ledger Database
1. Introduction117
2. Préparation de l'environnement de développement118
3. Créer et gérer un registre119
3.1 Créer un registre120
3.2 Détails d'un registre124
3.3 Supprimer un registre129
4. Créer tables et index131
4.1 Tables132
4.2 Index133
5. Gestion des documents135
5.1 Insérer des documents138
5.2 Interroger des documents143
5.3 Modifier des documents148
5.4 Supprimer des documents ;151
5.5 Transactions et modèle optimiste152
6. Gestion du journal156
6.1 Métadonnées157
6.2 Structure du journal159
6.3 Interroger le journal et remonter le temps162
6.4 Exporter le journal166
7. Sécurité du registre et des documents172
7.1 Ressources174
7.2 Conditions174
7.3 Actions175
7.4 Stratégies de sécurisation177
8. Avantages et inconvénients de QLDB180
8.1 Avantages180
8.2 Inconvénients181
Chapitre 4
Mise en oeuvre de Amazon Managed Blockchain
1. Introduction183
2. Créer un réseau et y accéder184
2.1 Créer un nouveau réseau184
2.2 Créer un nouveau noeud pair189
2.3 Accéder au réseau192
3. Créer un client et un utilisateur administratif193
3.1 VPC et point de terminaison193
3.2 Créer un client d'administration d'Hyperledger Fabric201
3.2.1 Créer le rôle IAM pour la machine client Hyperledger Fabric201
3.2.2 Créer la machine du client d'administration Hyperledger Fabric206
3.2.3 Installer les prérequis au client d'administration Hyperledger Fabric211
3.3 Créer un administrateur218
4. Créer et utiliser un canal220
4.1 Configurer un canal220
4.2 Créer le canal224
4.3 Joindre le noeud pair au canal225
5. Installer et tester les smart contracts (chaincode)225
5.1 Installer et instancier le chaincode226
5.2 Tester le chaincode227
6. Gérer membres et invitations229
6.1 Inviter des nouveaux membres230
6.2 Répondre à une invitation232
6.3 Activation du nouveau membre236
6.4 Inviter à supprimer un membre245
7. Sécurité249
7.1 Sécuriser l'accès249
7.1.1 Cloud privé virtuel249
7.1.2 Identité et gestion des accès250
7.2 Sécuriser les données251
Chapitre 5
Applications clientes
1. Introduction253
2. Chaincode et code client254
2.1 Architecture des données et des transactions254
2.2 Le chaincode258
2.2.1 Installation et instanciation du chaincode258
2.2.2 QueryByKey260
2.2.3 CreateDonor262
2.3 Application cliente262
2.3.1 L'équilibreur de charge263
2.3.2 L'application RLSTful API266
2.3.3 L'application cliente271
3. Hyperledger Explorer274
3.1 Prérequis à Hyperledger Explorer274
3.1.1 Base de données274
3.1.2 Equilibreur de charge279
3.2 Installer Hyperledger Explorer280
3.3 Utiliser Hyperledger Explorer284
4. Aller plus loin290
Conclusion
Index295