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 df0a6a0 commit aa86db0
Showing 1 changed file with 35 additions and 14 deletions.
49 changes: 35 additions & 14 deletions public/STM/STMDL/BK_ST2.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,22 @@
from BK_ST2_4 import iniciar_servidor
from BK_ST2_1 import cargar_blockchain, guardar_blockchain, crear_bloque_genesis

# Función para registrar un nuevo usuario
def registrar_usuario(username, password):
"""
Registra un nuevo usuario con su contraseña.
Utiliza SHA-256 para encriptar la contraseña.
Devuelve True si el usuario fue registrado, False si ya existe.
"""
if username in usuarios:
print("El usuario ya existe.")
return False
hashed_password = hashlib.sha256(password.encode()).hexdigest()
usuarios[username] = hashed_password
print(f"Usuario {username} registrado exitosamente.")
return True

# Función para iniciar la red de nodos
def iniciar_red():
"""
Esta función se encarga de iniciar el nodo y sincronizarlo con otros nodos.
Expand All @@ -15,7 +31,7 @@ def iniciar_red():
# Sincronizar la blockchain con otros nodos
blockchain = sincronizar_blockchain()

# Verificar si la blockchain local está vacía o si solo tiene el bloque génesis
# Verificar si la blockchain local está vacía o solo tiene 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
Expand All @@ -28,6 +44,7 @@ def iniciar_red():
print("Iniciando el servidor del nodo...")
iniciar_servidor()

# Función para agregar un bloque a la red
def agregar_bloque_a_la_red(datos):
"""
Esta función permite agregar un nuevo bloque a la blockchain.
Expand All @@ -44,25 +61,29 @@ def agregar_bloque_a_la_red(datos):
print(f"Nuevo bloque agregado con datos: {datos}")
print(f"Blockchain actualizada. Total de bloques: {len(blockchain)}")

if __name__ == "__main__":
# Función principal para ejecutar las funcionalidades según lo deseado
def ejecutar_sistema():
"""
El archivo principal. Aquí puedes elegir qué funcionalidad deseas ejecutar.
"""
# Llamada para iniciar la red de nodos
# 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.
# Si deseas agregar bloques manualmente, descomentar la siguiente línea:
# agregar_bloque_a_la_red("Este es un nuevo bloque con información.")


def registrar_usuario(username, password):
if __name__ == "__main__":
"""
Registra un nuevo usuario con su contraseña.
Devuelve True si el usuario fue registrado, False si ya existe.
Punto de entrada principal del sistema.
Se ejecuta el sistema y se puede registrar un usuario, iniciar la red o agregar bloques.
"""
if username in usuarios:
return False
hashed_password = hashlib.sha256(password.encode()).hexdigest()
usuarios[username] = hashed_password
return True
# Ejemplo de registro de usuario
username = input("Ingresa el nombre de usuario: ")
password = input("Ingresa la contraseña: ")
if registrar_usuario(username, password):
print("Usuario registrado correctamente.")
else:
print("Error: El usuario ya existe.")

# Llamada para iniciar la red de nodos
ejecutar_sistema()

0 comments on commit aa86db0

Please sign in to comment.