Ouvrez le fichier blockchain.py
dans votre éditeur de code.
Définissez une classe Blockchain
: Cette classe représentera la chaîne de blocs et contiendra les méthodes nécessaires pour gérer les blocs et la chaîne elle-même.
Python
pythonCopy code
class Blockchain :
def __init__(self) :
self.chain = []
Ce code définit une classe Blockchain
avec une liste vide appelée chain
pour stocker les blocs.
Implémentez la méthode add_block
: Cette méthode sera utilisée pour ajouter des blocs à la blockchain. Elle prend en paramètre un objet bloc et l'ajoute à la chaîne.
Python
pythonCopy code
class Blockchain :
def __init__(self) :
self.chain = []
def add_block(self, block) :
self.chain.append(block)
Ce code ajoute la méthode add_block
à la classe Blockchain
.
Testez l'ajout de blocs à la blockchain : Dans la partie principale de votre code, après la définition de la classe, créez une nouvelle instance de la classe Blockchain
. Ensuite, créez un nouvel objet bloc et ajoutez-le à la blockchain à l'aide de la méthode add_block
.
```
Python
code pythonCopy
blockchain = Blockchain()
new_block = Block(1, datetime.datetime.now(), "Sample Data", "previous_hash", 0)
blockchain.add_block(new_block)
Ce code crée une nouvelle instance de la classe `Blockchain`, crée un nouvel objet bloc avec quelques données d'échantillon, et l'ajoute à la blockchain en utilisant la méthode `add_block`.
## 2.3 Valider la blockchain
1.
Implémentez la méthode `is_valid` : Cette méthode sera utilisée pour valider l'intégrité de la blockchain. Il parcourt chaque bloc de la chaîne et vérifie que le hachage de chaque bloc correspond au hachage du bloc précédent.
Python
pythonCopier le code
classe Blockchain :
def init(self) :
self.chain = []
def add_block(self, block) :
self.chain.append(block)
def is_valid(self) :
for i in range(1, len(self.chain)) :
bloc_courant = self.chain[i]
bloc_précédent = self.chain[i - 1]
if current_block.previous_hash != previous_block.hash() :
return Falsereturn True
Ce code ajoute la méthode `is_valid` à la classe `Blockchain`.
1.
Testez la validation de la blockchain : Après avoir ajouté des blocs à la blockchain, appelez la méthode `is_valid` pour vérifier si la blockchain est valide.
Python
pythonCopier le code
print("La blockchain est valide.")
else :
print("La chaîne de blocs n'est pas valide.")
Ce code valide la blockchain en appelant la méthode `is_valid` et imprime un message approprié en fonction du résultat.
## 2.4 Test de la blockchain
1.
Ajoutez d'autres blocs à la blockchain : Créez des blocs supplémentaires en utilisant des données différentes et les hachages précédents et ajoutez-les à la blockchain en utilisant la méthode `add_block`.
Python
pythonCopy code
#Créer d'autres blocs
block2 = Block(2, datetime.datetime.now(), "Plus de données", new_block.hash(), 0)
block3 = Block(3, datetime.datetime.now(), "Encore plus de données", block2.hash(), 0)
#Ajouter les blocs à la blockchain
blockchain.add_block(block2)
blockchain.add_block(block3)
Ce code crée deux blocs supplémentaires et les ajoute à la blockchain.
1.
Testez à nouveau la validation de la blockchain : Après avoir ajouté les nouveaux blocs, appelez la méthode `is_valid` pour vérifier la validité de la blockchain.
Python
pythonCopy code
# Valider la blockchainif blockchain.is_valid() :
print("La blockchain est valide.")
else :
print("Blockchain is invalid.")
```
Ce code valide la blockchain et imprime le résultat.
Dans cette leçon, nous avons construit la structure de notre blockchain. Nous avons créé une classe Blockchain
et implémenté des méthodes pour ajouter des blocs à la chaîne et valider son intégrité. Nous avons également testé la blockchain en ajoutant des blocs et en vérifiant sa validité.
Ouvrez le fichier blockchain.py
dans votre éditeur de code.
Définissez une classe Blockchain
: Cette classe représentera la chaîne de blocs et contiendra les méthodes nécessaires pour gérer les blocs et la chaîne elle-même.
Python
pythonCopy code
class Blockchain :
def __init__(self) :
self.chain = []
Ce code définit une classe Blockchain
avec une liste vide appelée chain
pour stocker les blocs.
Implémentez la méthode add_block
: Cette méthode sera utilisée pour ajouter des blocs à la blockchain. Elle prend en paramètre un objet bloc et l'ajoute à la chaîne.
Python
pythonCopy code
class Blockchain :
def __init__(self) :
self.chain = []
def add_block(self, block) :
self.chain.append(block)
Ce code ajoute la méthode add_block
à la classe Blockchain
.
Testez l'ajout de blocs à la blockchain : Dans la partie principale de votre code, après la définition de la classe, créez une nouvelle instance de la classe Blockchain
. Ensuite, créez un nouvel objet bloc et ajoutez-le à la blockchain à l'aide de la méthode add_block
.
```
Python
code pythonCopy
blockchain = Blockchain()
new_block = Block(1, datetime.datetime.now(), "Sample Data", "previous_hash", 0)
blockchain.add_block(new_block)
Ce code crée une nouvelle instance de la classe `Blockchain`, crée un nouvel objet bloc avec quelques données d'échantillon, et l'ajoute à la blockchain en utilisant la méthode `add_block`.
## 2.3 Valider la blockchain
1.
Implémentez la méthode `is_valid` : Cette méthode sera utilisée pour valider l'intégrité de la blockchain. Il parcourt chaque bloc de la chaîne et vérifie que le hachage de chaque bloc correspond au hachage du bloc précédent.
Python
pythonCopier le code
classe Blockchain :
def init(self) :
self.chain = []
def add_block(self, block) :
self.chain.append(block)
def is_valid(self) :
for i in range(1, len(self.chain)) :
bloc_courant = self.chain[i]
bloc_précédent = self.chain[i - 1]
if current_block.previous_hash != previous_block.hash() :
return Falsereturn True
Ce code ajoute la méthode `is_valid` à la classe `Blockchain`.
1.
Testez la validation de la blockchain : Après avoir ajouté des blocs à la blockchain, appelez la méthode `is_valid` pour vérifier si la blockchain est valide.
Python
pythonCopier le code
print("La blockchain est valide.")
else :
print("La chaîne de blocs n'est pas valide.")
Ce code valide la blockchain en appelant la méthode `is_valid` et imprime un message approprié en fonction du résultat.
## 2.4 Test de la blockchain
1.
Ajoutez d'autres blocs à la blockchain : Créez des blocs supplémentaires en utilisant des données différentes et les hachages précédents et ajoutez-les à la blockchain en utilisant la méthode `add_block`.
Python
pythonCopy code
#Créer d'autres blocs
block2 = Block(2, datetime.datetime.now(), "Plus de données", new_block.hash(), 0)
block3 = Block(3, datetime.datetime.now(), "Encore plus de données", block2.hash(), 0)
#Ajouter les blocs à la blockchain
blockchain.add_block(block2)
blockchain.add_block(block3)
Ce code crée deux blocs supplémentaires et les ajoute à la blockchain.
1.
Testez à nouveau la validation de la blockchain : Après avoir ajouté les nouveaux blocs, appelez la méthode `is_valid` pour vérifier la validité de la blockchain.
Python
pythonCopy code
# Valider la blockchainif blockchain.is_valid() :
print("La blockchain est valide.")
else :
print("Blockchain is invalid.")
```
Ce code valide la blockchain et imprime le résultat.
Dans cette leçon, nous avons construit la structure de notre blockchain. Nous avons créé une classe Blockchain
et implémenté des méthodes pour ajouter des blocs à la chaîne et valider son intégrité. Nous avons également testé la blockchain en ajoutant des blocs et en vérifiant sa validité.