IV.9 Programmation de la blockchain
IV.9.1 Introduction
Dans cette section ; nous couvrirons les points suivants :
§ Apprendre a créé une fonction de
constructeur de la blockchain
§ Construire et tester les différentes
méthodes
§ Comprendre la mise en oeuvre de la PoW
§ Crée et tester un genesis block
Alors, commençons !
[113]
Chapitre IV Sécuriser un réseau bancaire avec la
blockchain
IV.9.2 Création de la blockchain
Exigences : J'ai construit cela dans Node.js,
mais vous pouvez facilement le construire sur Repl.it si vous
préférez. Nous utiliserons également le package sha256 npm
pour hacher les blocs.
Si vous êtes nouveau sur Node.js, tout d'abord, vous
devrez créer un nouveau répertoire, créer un index.js
fichier, puis à partir de votre terminal, exécuter à npm
init -y partir de votre nouveau répertoire. Cela crée un fichier
package.json, qui nous permettra d'installer le package sha256. Exécutez
npm i sha256 pour installer la bibliothèque sha256. Si vous êtes
sur Repl.it, créez un nouveau replNodejs, installez le js-sha256package
et exigez-le.
Commençons par construire notre blockchain Structure
de données. Nous allons commencer par ouvrir tous les fichiers que nous
avons dans notre blockchain en utilisant l'éditeur Sublime. Si vous
êtes à l'aise avec n'importe quel autre éditeur, vous peut
aussi l'utiliser. Ouvrez toute notre blockchain répertoire dans
l'éditeur que vous préférez.
Nous allons construire notre structure de données
blockchain dans le fichier dev /blockchain.js que nous avons créé
dons la section précédente, Configuration du projet. Construisons
cette structure de données blockchain en utilisant une fonction
constructrice. Alors, commençons :
§ Maintenant que nous sommes configurés, il est
temps de créer une nouvelle classe, nous avons donc un modèle que
nous utiliserons pour construire chaque bloc. Chaque bloc de notre blockchain
simple contiendra 3 éléments de données : l'index du bloc,
la valeur de hachage du bloc qui le précède et un hachage de
lui-même.
§ Pour créer notre bloc, j'utilise une classe
JavaScript, mais une fonction constructeur fonctionnerait tout aussi bien car
c'est vraiment tout ce qu'une classe est sous le capot. J'ai défini la
fonction constructrice pour prendre toutes nos données à
l'exception du hachage comme paramètres. Le bloc examinera alors
l'index, l'horodatage, les données et le hachage
précédent, et générera son propre hachage ou
empreinte digitale.
§ Continuons à construire notre structure de
données blockchain. Après avoir défini notre fonction
constructeur dans la section précédente, la suivante chose que
nous voulons faire avec notre fonction constructeur est de placer une
méthode dans notre fonction Blockchain. Cette méthode que nous
allons créer s'appellera createNewBlock. Comme son nom l'indique, cette
méthode va créer un nouveau bloc pour nous. Suivons les
étapes mentionnées ci-dessous pour construire notre blockchain
:
[114]
Chapitre IV Sécuriser un réseau bancaire avec la
blockchain
IV.9.2.1 La création d'ajoute un nouveau
bloc
Figure IV- 55: Programmations d'ajoute d'un
nouveau bloc
En ajoutant ces deux dernières lignes de code, notre
méthode createNewBlock est prête. Fondamentalement, c'est qu'elle
crée un nouveau bloc. À l'intérieur de ce bloc, nous avons
nos transactions et les nouvelles transactions qui ont été
créées depuis l'extraction de notre dernier bloc. Après
avoir créé un nouveau bloc.
§ Test de la méthode constructeur de la
blockchain :
La première chose que nous devons faire est d'exporter
notre fonction constructeur Blockchain car nous allons utiliser cette fonction
dans notre fichier test.js. Donc, pour exporter la fonction constructrice, nous
allons aller au bas du fichier blockchain.js, taper la ligne de code suivante,
puis enregistrer le fichier.
Figure IV- 56: Exportations de la fonction
constructrice
Ensuite, accédez au fichier dev / test.js, car c'est
ici que nous testerons notre méthode createNewBlock. Maintenant, la
première chose que nous voulons faire dans notre fichier dev / test.js
est d'importer notre fonction constructeur Blockchain, alors tapez ce qui suit
:
Figure IV- 57: Configuration de projet
bitcoin
Allez maintenant dans notre fenêtre de terminal. Ici,
nous sommes actuellement dans le répertoire blockchain, et notre fichier
test.js est dans notre dossier dev, alors tapez la commande suivante dans le
terminal:node test.js
Chapitre IV Sécuriser un réseau bancaire avec la
blockchain
[115]
Nous observerons la Blockchain dans la fenêtre du
terminal, comme le montre la capture d'écran suivante :
Figure IV- 58: Création de projet
bitcoin
Nous pouvons observer que Blockchain a une chaîne vide
et un tableau de transactions vide. C'est exactement ce que nous attendions de
la sortie.
§ Test d'ajoute des nouveaux blocs :
Nous ajouterons la ligne de code suivante :
bitcoin.createNewBlock();
Ensuite, nous allons créer un hachage pour notre
précédent BlockHash, suivi par un autre hachage pour notre
paramètre de hachage, comme suit :
bitcoin.createNewBlock(1998,'KAWTER','BO14UD05GH19en98');
Donc, maintenant on a créé notre bitcoin.
Enregistrez ce fichier et exécutez notre fichier test.js à
nouveau dans le terminal. Nous aurons ensuite à observer la sortie
suivante :
Figure IV- 59: Test d'ajoute un nouveau
bloc
Dans la capture d'écran précédente, nous
avons observé toute la structure de données de la chaîne de
blocs dans la chaîne. Ce bloc a également le hachage, nonce et
previous Block Hash paramètres que nous avions saisis. Il n'a aucune
transaction parce que nous n'en avons pas créé transactions
encore. Par conséquent, nous pouvons conclure que la méthode
createNewBlockfonctionne très bien.
Maintenant, testons encore plus notre méthode en
créant quelques blocs de plus dans notre chaîne. Comme elle montre
la figure suivante :
Chapitre IV Sécuriser un réseau bancaire avec la
blockchain
[116]
Figure IV- 60: Test de la méthode
creatNewBlock
Maintenant, quand nous exécutez notre fichier test.js,
nous devrions avoir trois blocs dans notre chaîne, comme le montre la
capture d'écran suivante :
Figure IV- 61: Exécution de la
méthode creatNewBlock
|