Alors, on commence par définir la méthode
ProofOfWork :
Figure IV- 76: Configuration de la preuve de
travail
C'est ainsi que notre méthode proofOfWork fonctionnera
et validera le hachage.
Dans la section suivante, nous testerons notre méthode
proofOfWork dans notre fichier test.jspour nous assurer qu'elle fonctionne
correctement. Nous étudierons également pourquoi nous retournons
une valeur nonce au lieu de renvoyer le hachage.
§ Teste de la méthode proofOfWork
:
Pour tester notre méthode proofOfWork, nous avons
besoin de previousBlockHash et currentBlockData. Donc, dans notre cas de test,
supprimons la valeur nonce et ajoutons les lignes de code suivantes à
notre fichier :
console.log(bitcoin.proofOfWork(previousBlockHash,
currentBlockData));
Une fois le test exécuté, nous remarquerons
qu'un nombre apparaît en sortie à l'écran :
Figure IV- 77: Obtention du nonce
Ce que signifie ce nombre, c'est qu'il a fallu 61989
itérations pour que notre méthode proofOfWork trouve un hachage
qui commence par quatre zéros.
Nous devrons apporter des modifications mineures à
notre boucle while, ce qui va se passer, c'est que nous devrions
réellement voire plus de 61000 hachages différents
affichés dans notre terminal. Aucun de ces hachages ne commencera par
quatre zéros, à l'exception du dernier. Seul le dernier hachage
affiché commence avec quatre zéros car après notre
méthode, cela se terminera et renverra la valeur nonce pour laquelle le
hachage valide a été obtenu.
Nous pouvons maintenant observer sur notre écran que
nous avons toute une tonne de hachages différents enregistrés sur
terminal :
Chapitre IV Sécuriser un réseau bancaire avec la
blockchain
[124]
Figure IV- 78: Exécution de
PoW
Nous pouvons également observer que pour chaque
hachage qui a été affiché, le début n'est jamais
quatre zéros de suite jusqu'à ce que nous obtenions notre valeur
finale.
Essayons maintenant d'utiliser notre méthode
hashBlock. Dans notre fichier test.js, supprimons la méthode proofOfWork
et ajoutons la ligne de code suivante :
console.log(bitcoin.hashBlock(previousBlockHash,
currentBlockData, 61989));
En faisant cela, nous devons générer un hachage
qui commence par quatre zéros au premier essai. Enregistrons-le et
exécutons-le. Une fois le test exécuté, nous pourrons
observer le hachage unique qui commence par quatre zéros, comme
indiqué dans la capture d'écran suivante :
Figure IV- 79: Vérification du hash
après l'obtention du nonce
Ainsi, à partir de notre test, nous pouvons conclure que
la méthode proofOfWork fonctionne comme prévu.