Últimas entradas

Hyperledger Fabric Servicio de Ordenamiento RAFT

En este post se explicará como se implementó y desplegó una red blockchain con Hyperledger fabric usando el servicio de ordenamiento RAFT, usado desde la versión 1.4.x

En Hyperledger Fabric, el algoritmo de consenso Raft sigue un modelo de tipo líder y seguidor. En realidad, todos los líderes se seleccionan dinámicamente de un lote de nodos de pedido dentro de la red. Más aún, el líder replica principalmente cualquier mensaje a todos los nodos siguientes.

git clone https://github.com/jorgedison/Prueba-Hyperledger-Fabric/
cd multiorganization-network

La creación del material criptográfico se detalla en la siguiente entrada https://usuarioperu.com/2019/10/28/implementacion-de-red-blockchain-con-hyperledger-fabric/ se tomó como referencia la siguiente configuración en el archivo configtx.yaml, para el servicio de ordenamiento raft tener las siguientes consideraciones

Orderer: &OrdererDefaults
    OrdererType: etcdraft
    EtcdRaft:
        Consenters:
            - Host: orderer.midominio.com
              Port: 7050
              ClientTLSCert: crypto-config/ordererOrganizations/midominio.com/orderers/orderer.midominio.com/tls/server.crt
              ServerTLSCert: crypto-config/ordererOrganizations/midominio.com/orderers/orderer.midominio.com/tls/server.crt
            - Host: orderer2.midominio.com
              Port: 7050
              ClientTLSCert: crypto-config/ordererOrganizations/midominio.com/orderers/orderer2.midominio.com/tls/server.crt
              ServerTLSCert: crypto-config/ordererOrganizations/midominio.com/orderers/orderer2.midominio.com/tls/server.crt
            - Host: orderer3.midominio.com
              Port: 7050
              ClientTLSCert: crypto-config/ordererOrganizations/midominio.com/orderers/orderer3.midominio.com/tls/server.crt
              ServerTLSCert: crypto-config/ordererOrganizations/midominio.com/orderers/orderer3.midominio.com/tls/server.crt
            - Host: orderer4.midominio.com
              Port: 7050
              ClientTLSCert: crypto-config/ordererOrganizations/midominio.com/orderers/orderer4.midominio.com/tls/server.crt
              ServerTLSCert: crypto-config/ordererOrganizations/midominio.com/orderers/orderer4.midominio.com/tls/server.crt
            - Host: orderer5.midominio.com
              Port: 7050
              ClientTLSCert: crypto-config/ordererOrganizations/midominio.com/orderers/orderer5.midominio.com/tls/server.crt
              ServerTLSCert: crypto-config/ordererOrganizations/midominio.com/orderers/orderer5.midominio.com/tls/server.crt
    Addresses:
        - orderer.midominio.com:7050
        - orderer2.midominio.com:7050
        - orderer3.midominio.com:7050
        - orderer4.midominio.com:7050
        - orderer5.midominio.com:7050

    BatchTimeout: 2s
    BatchSize:
        MaxMessageCount: 10
        AbsoluteMaxBytes: 99 MB
        PreferredMaxBytes: 512 KB

Al momento de generar el material criptografico, la carpeta crypto-config mostrara una estructura similar a la siguiente:

Host 0

Se ejecuta el script para crear y configurar la red swarm.

./creaswarm.sh

Se ejecuta el script para crear la red para comunicación de contenedores/servicios de docker

./creanetwork.sh

Host 1, 2, 3

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.

./listanodos.sh

Host 0

Iniciaremos el servicio de ordenamiento.

cd etcdraft
./deploy.sh

Host 1

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

cd org2
./deploy.sh

Se crearan los servicios en el host 2.

Host 3

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:

docker service ls

Fuente: https://github.com/hyperledger/fabric

Referencia: http://thesecretlivesofdata.com/raft/

Agregue un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *