Skip to content

Commit

Permalink
Update BK_ST2.py
Browse files Browse the repository at this point in the history
  • Loading branch information
Chicook authored Dec 25, 2024
1 parent d41000c commit 8e0bd20
Showing 1 changed file with 54 additions and 13 deletions.
67 changes: 54 additions & 13 deletions public/STM/STMDL/BK_ST2.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,57 @@
import hashlib
from STMDL.BK_Usuarios import usuarios
# from ST1MDL.BK_ST2_2
# from ST1MDL.BK_ST2_3
# from ST1MDL.BK_ST2_4
# BK_ST2.py - Archivo principal que maneja la blockchain y la comunicación entre nodos

def registrar_usuario(username, password):
from BK_ST2_1 import crear_bloque_genesis, agregar_bloque, guardar_blockchain, cargar_blockchain
from BK_ST2_1_nodo import iniciar_servidor
from BK_ST2_1_sincronizacion import sincronizar_blockchain

def iniciar_red():
"""
Esta función será el punto de entrada para iniciar el nodo y sincronizarlo con otros nodos.
Primero, se asegura de que la blockchain esté sincronizada con la de otros nodos y luego
arranca el servidor del nodo local.
"""
print("Iniciando la sincronización de la blockchain con otros nodos...")

# Sincronizar la blockchain con otros nodos
blockchain = sincronizar_blockchain()

# Verificar si la blockchain local está vacía o es el bloque génesis
if len(blockchain) == 1: # Solo contiene el bloque génesis
print("Blockchain vacía. Creando el bloque génesis...")
blockchain = [crear_bloque_genesis()] # Crear el bloque génesis si no existe

# Guardar la blockchain sincronizada
guardar_blockchain(blockchain)
print(f"Blockchain sincronizada y guardada. Total de bloques: {len(blockchain)}")

# Iniciar el servidor del nodo
print("Iniciando el servidor del nodo...")
iniciar_servidor()

def agregar_bloque_a_la_red(datos):
"""
Registra un nuevo usuario con su contraseña.
Devuelve True si el usuario fue registrado, False si ya existe.
Esta función permite agregar un nuevo bloque a la blockchain.
Recibe los datos del bloque, lo crea y lo agrega a la blockchain.
"""
if username in usuarios:
return False
hashed_password = hashlib.sha256(password.encode()).hexdigest()
usuarios[username] = hashed_password
return True
blockchain = cargar_blockchain()
print("Agregando un nuevo bloque a la blockchain...")

# Agregar un nuevo bloque
agregar_bloque(blockchain, datos)

# Guardar la blockchain actualizada
guardar_blockchain(blockchain)
print(f"Nuevo bloque agregado con datos: {datos}")
print(f"Blockchain actualizada. Total de bloques: {len(blockchain)}")

if __name__ == "__main__":
"""
El archivo principal. Aquí puedes elegir qué funcionalidad deseas ejecutar.
Por ejemplo, puedes iniciar el nodo y sincronizar la blockchain con otros nodos.
"""
# Llamada para iniciar la red de nodos
iniciar_red()

# Si deseas agregar bloques manualmente:
# Puedes descomentar la siguiente línea para agregar un bloque con datos personalizados.
# agregar_bloque_a_la_red("Este es un nuevo bloque con información.")

0 comments on commit 8e0bd20

Please sign in to comment.