
En este post se explicará como se implementó y desplegó una red blockchain con Hyperledger fabric en multiples hosts usando docker swarm, sobre una arquitectura básica, donde se usaron 4 maquinas con los siguientes recursos:
Host 0 | 2GB 1vCPU | orderer |
Host 1 | 2GB 1vCPU | ca1, cli, peer0, couchdb0, peer1, couchdb1 |
Host 2 | 2GB 1vCPU | ca2, peer0, couchdb0, peer1, couchdb1 |
Host 3 | 2GB 1vCPU | ca3, peer0, couchdb0, peer1, couchdb1 |
1 2 |
git clone https://github.com/jorgedison/Prueba-Hyperledger-Fabric/ cd multiorganization-network |
Para generar las llaves criptográficas, se deberá usar los comando cryptogen y configtxgen, se puede revisar el siguiente post, donde se explica como hacerlo en una red donde se hace la implementación en un solo host https://usuarioperu.com/2019/10/28/implementacion-de-red-blockchain-con-hyperledger-fabric/
Host 0
Se ejecuta el script para crear y configurar la red swarm.
1 |
./creaswarm.sh |
Se ejecuta el script para crear la red para comunicación de contenedores/servicios de docker
1 |
./creanetwork.sh |
Host 1, 2, 3
1 |
docker swarm join - token SWMTKN-1–3anjn4oxwcn278hie3413zaakr4higjdqr2x89r5605p1dosui-a4u407pt6c5ta2ont7pqdnm hostname0:2377 |
Se deberá reemplazar, el token, con el token generado y el hostname en el host 0, una vez realizados, verificar la lista de nodos.
1 |
./listanodos.sh |
Host 0
Iniciaremos el servicio de ordenamiento.
1 2 |
cd solo ./deploy.sh |
Se puede utilizar los servicios de ordenamiento: Solo, Kafka, Raft, para las pruebas se usó el servicio de ordenamiento solo.
Host 1
1 2 |
cd org1 ./deploy.sh |
El script inicia el servicio de autorización para este host, un cliente “cli”, 2 nodos, cada uno con su respectiva base de datos couchdb para el host 1.
Host 2
1 2 |
cd org2 ./deploy.sh |
Se crearan los servicios en el host 2.
Host 3
1 2 |
cd org3 ./deploy.sh |
Se crearan los servicios en el host 3,
Para validar los contenedores y servicios iniciados, se puede ejecutar el siguiente comando:
1 |
docker service ls |
Cada host podría pertenecer a una organización en particular, esto dependerá en base a la definición de reglas de negocio y políticas establecidas para su uso, en función a esto se podrá establecer la arquitectura, organización y distribución de componentes y servicios que utilizará de la red blockchain.
Fuente: https://github.com/hyperledger/fabric
2 thoughts on “Hyperledger Fabric y docker swarm en multiples hosts”