Abra el archivo blockchain.py en su editor de código.
Defina una clase Blockchain : esta clase representará blockchain y contendrá los métodos necesarios para administrar los bloques y la cadena misma.
Python 
 pythonCopiar código 
 clase Blockchain: 
 def __init__(self): 
 self.chain = []
Este código define una clase Blockchain con una lista vacía llamada chain para almacenar los bloques.
Implemente el método add_block : este método se utilizará para agregar bloques a la cadena de bloques. Tomará un objeto de bloque como parámetro y lo agregará a la cadena.
Python 
 pythonCopiar código 
 clase Blockchain: 
 def __init__(self): 
 self.chain = [] 
 def add_block(self, block): 
 self.chain.append(block)
Este código agrega el método add_block a la clase Blockchain .
Pruebe agregar bloques a la cadena de bloques: en la parte principal de su código, después de la definición de la clase, cree una nueva instancia de la clase Blockchain . Luego, cree un nuevo objeto de bloque y agréguelo a la cadena de bloques usando el método add_block .
```
Pitón
PythonCopiar código
cadena de bloques = cadena de bloques()
new_block = Bloque(1, fecha y hora. fecha y hora. ahora(), “Datos de muestra”, “anterior_hash”, 0)
blockchain.add_block(nuevo_bloque)
Este código crea una nueva instancia de la clase `Blockchain`, crea un nuevo objeto de bloque con algunos datos de muestra y lo agrega a la cadena de bloques usando el método `add_block`.
## 2.3 Validación de Blockchain 
 1. 
 Implementar el método `is_valid`: Este método se utilizará para validar la integridad de la blockchain. Iterará a través de cada bloque de la cadena y verificará que el hash de cada bloque coincida con el hash del bloque anterior.
Pitón
PythonCopiar código
clase de cadena de bloques:
    def inicio(yo):
        cadena propia = []
def add_block(self, bloquear): 
 self.chain.append(bloque)
def is_valid(self): 
 para i en rango(1, len(self.chain)):
        bloque_actual = self.cadena[i]
        bloque_anterior = self.cadena[i - 1] 
 si bloque_actual.hash_anterior! = bloque_anterior.hash():
            devolver falsodevolver verdadero
Este código agrega el método `is_valid` a la clase `Blockchain`.
1. 
 Pruebe la validación de la cadena de bloques: después de agregar bloques a la cadena de bloques, llame al método `is_valid` para verificar si la cadena de bloques es válida.
Pitón
PythonCopiar código
print("La cadena de bloques es válida.")
demás:
    imprimir ("Blockchain no es válido").
Este código valida la cadena de bloques llamando al método `is_valid` e imprime un mensaje apropiado según el resultado.
## 2.4 Prueba de Blockchain 
 1. 
 Agregue más bloques a la cadena de bloques: cree bloques adicionales usando diferentes datos y hashes anteriores y agréguelos a la cadena de bloques usando el método `add_block`.
Python 
 pythonCopiar código 
 #Crear más bloques 
 block2 = Block(2, datetime.datetime.now(), "Más datos", new_block.hash(), 0) 
 bloque3 = Bloque(3, datetime.datetime.now(), "Aún más datos", block2.hash(), 0) 
 #Agregar los bloques a la blockchain 
 blockchain.add_block(block2)
blockchain.add_block(bloque3)
Este código crea dos bloques adicionales y los agrega a la cadena de bloques.
1. 
 Pruebe la validación de la cadena de bloques nuevamente: después de agregar los nuevos bloques, llame al método `is_valid` para verificar la validez de la cadena de bloques.
Python 
 pythonCopiar código 
 # Validar blockchainif blockchain.is_valid():
imprimir("Blockchain es válido.")
else: 
 print("Blockchain no es válido.")
```
Este código valida la cadena de bloques e imprime el resultado.
En esta lección, hemos construido la estructura de nuestra blockchain. Creamos una clase Blockchain e implementamos métodos para agregar bloques a la cadena y validar su integridad. También probamos blockchain agregando bloques y verificando su validez.