Hyperledger Iroha es una solución blockchain diseñada para implementarse en entornos permisivos, con una arquitectura modular y un enfoque en la simplicidad. Su implementación requiere conocimientos técnicos básicos sobre redes, sistemas distribuidos y administración de servidores. En este artículo, exploraremos los pasos necesarios para implementar Hyperledger Iroha, desde los requisitos previos hasta la configuración básica y el despliegue de una red blockchain funcional.
Requisitos Previos
Antes de comenzar con la implementación de Hyperledger Iroha, asegúrate de contar con lo siguiente:
- Entorno de Servidor:
- Sistemas operativos compatibles: Ubuntu 20.04/22.04, CentOS 8 o similares.
- Recursos recomendados:
- CPU: 4 núcleos
- RAM: 8 GB
- Almacenamiento: 100 GB (preferiblemente SSD)
- Dependencias:
- Docker y Docker Compose (recomendado para implementaciones rápidas).
- CMake (versión 3.10 o superior).
- Clang (versión 7 o superior).
- Git.
- Red de Nodos:
- Acceso a múltiples servidores si planeas una red distribuida.
- Configuración de puertos y comunicación segura (usualmente con TLS).
- Claves Criptográficas:
- Cada nodo debe contar con un par de claves públicas y privadas para su identificación y comunicación.
Paso 1: Clonar el Repositorio de Hyperledger Iroha
Primero, clona el repositorio oficial desde GitHub para obtener el código fuente:
git clone https://github.com/hyperledger/iroha.git cd iroha
Asegúrate de trabajar con la versión estable más reciente:
git checkout stable
Paso 2: Construcción del Proyecto
Para compilar Hyperledger Iroha desde el código fuente, utiliza CMake y Clang:
- Crea un directorio para la compilación: mkdir build && cd build
- Configura el entorno de compilación: cmake -DCMAKE_BUILD_TYPE=Release ..
- Compila el proyecto: make -j$(nproc)
Paso 3: Configuración de los Nodos
Cada nodo en la red de Iroha necesita un archivo de configuración que incluye información clave, como:
config.json: Define los parámetros generales de la red, como puertos, nodos iniciales y configuración de almacenamiento. Ejemplo:
{
"block_store_path": "data/blockstore",
"torii_port": 50051,
"internal_port": 10001,
"key_pair_path": "data/keys",
"log_level": "info",
"peer_list": [
{
"address": "node1.example.com:10001",
"public_key": "public_key_node1"
},
{
"address": "node2.example.com:10001",
"public_key": "public_key_node2"
}
]
}
genesis.block: El archivo de génesis inicializa la red con los parámetros básicos, como la lista de cuentas iniciales y los roles.
Claves Criptográficas: Genera claves públicas y privadas para cada nodo: iroha-cli –generate-keys
Paso 4: Configuración del Archivo docker-compose.yml
Para una implementación simplificada con Docker, utiliza el archivo docker-compose.yml:
version: '3.7' services: iroha: image: hyperledger/iroha:stable container_name: iroha_node ports: - "50051:50051" # API - "10001:10001" # Internal communication volumes: - ./data:/opt/iroha/data - ./config:/opt/iroha/config command: [ "irohad", "--config", "/opt/iroha/config/config.json", "--genesis_block", "/opt/iroha/config/genesis.block", "--keypair_name", "/opt/iroha/config/node_key" ]
Inicia el contenedor con:
docker-compose up -d
Paso 5: Validación de la Red
- Asegúrate de que los nodos estén conectados:
- Verifica los logs del nodo con: docker logs iroha_node
- Usa el Iroha Command Line Interface (CLI) para interactuar con la red:
- Consulta cuentas: iroha-cli –query get_account –account_name admin@test
Paso 6: Desarrollo de Aplicaciones
Hyperledger Iroha proporciona una API GRPC para interactuar con la red. Puedes utilizar cualquier lenguaje compatible con GRPC, como Python, JavaScript o Go, para desarrollar aplicaciones.
Ejemplo de conexión en Python:
import grpc from iroha import Iroha, IrohaCrypto iroha = Iroha('admin@test') admin_private_key = 'your_private_key' # Crear transacción tx = iroha.transaction([ iroha.command('CreateAccount', account_name='user', domain_id='test', public_key='public_key_user') ]) IrohaCrypto.sign_transaction(tx, admin_private_key) # Enviar transacción with grpc.insecure_channel('node_address:50051') as channel: stub = iroha.grpc(channel) stub.Torii(tx)
Paso 7: Mantenimiento y Monitoreo
- Monitoreo:
- Usa herramientas como Prometheus o Grafana para monitorear el rendimiento de los nodos.
- Backup:
- Realiza copias de seguridad periódicas del directorio block_store_path y las claves criptográficas.
La implementación de Hyperledger Iroha es un proceso directo gracias a su diseño modular y su enfoque en la simplicidad. Con su API clara y soporte para Docker, Iroha permite a los desarrolladores implementar soluciones blockchain rápidamente en entornos permisivos.
Si buscas una plataforma blockchain ligera y eficiente para la gestión de activos o identidades digitales, Hyperledger Iroha es una opción sólida y bien respaldada por la comunidad de Hyperledger.
Fuente: https://usuarioperu.com/2023/05/27/plataforma-blockchain-con-hyperledger-iroha/