requisitos previos
- Conocimientos básicos de Python
- Entorno de Python instalado con éxito
Paso 1: ¿Qué es una cadena de bloques?
Blockchain es un tipo de base de datos distribuida que toma una cantidad de registros y los coloca en un bloque (como una hoja de cálculo de Excel). Cada bloque tiene una marca de tiempo y un enlace al bloque anterior, creando así una cadena. El beneficio real de una cadena de bloques es que está descentralizada, lo que significa que ninguna entidad única tiene el control. Además, cada transacción en la cadena de bloques es visible para cualquier persona, lo que agrega un nivel de transparencia que las redes financieras actuales no ofrecen.
Paso 2: crear la primera cadena de bloques en Python
Para crear nuestra blockchain solo necesitaremos Python. Para hacer que nuestra cadena de bloques sea persistente, también usaremos el módulo pickle de Python.
import hashlib
import time
import pickle
class Block:
def __init__(self, index, previous_hash, timestamp, data, hash):
self.index = index
self.previous_hash = previous_hash
self.timestamp = timestamp
self.data = data
self.hash = hash
def create_genesis_block():
return Block(0, "0", time.time(), "Genesis Block", calculate_hash(0, "0", time.time(), "Genesis Block"))
def calculate_hash(index, previous_hash, timestamp, data):
value = str(index) + str(previous_hash) + str(timestamp) + str(data)
return hashlib.sha256(value.encode('utf-8')).hexdigest()
def create_new_block(previous_block, data):
index = previous_block.index + 1
timestamp = time.time()
hash = calculate_hash(index, previous_block.hash, timestamp, data)
return Block(index, previous_block.hash, timestamp, data, hash)
# Creiamo la blockchain e aggiungiamo il blocco genesi
blockchain = [create_genesis_block()]
previous_block = blockchain[0]
# Aggiungiamo altri 10 blocchi alla blockchain
for i in range(1, 10):
block_to_add = create_new_block(previous_block, f"Block #{i} data")
blockchain.append(block_to_add)
previous_block = block_to_add
print(f"Block #{block_to_add.index} has been added to the blockchain!")
print(f"Hash: {block_to_add.hash}\n")
# Salva la blockchain in un file
with open('blockchain.p', 'wb') as f:
pickle.dump(blockchain, f)
Ahora ha creado una cadena de bloques simple usando Python. Cada bloque en la cadena de bloques contiene su propio índice, hash, marca de tiempo, datos y el hash del bloque anterior, por lo tanto, vincula cada bloque con el hash del bloque anterior, creando una cadena.
Conclusión
Espero que este tutorial te haya ayudado a comprender mejor cómo funciona una cadena de bloques y cómo crear tu primera cadena de bloques usando Python. Recuerde, esta es una cadena de bloques simple y solo es ideal para fines de aprendizaje. Las cadenas de bloques reales contienen muchos otros componentes, como algoritmos contras.