Demo Blockchain Hyperledger para cadena de suministros




El siguiente caso representa una prueba de concepto para cadena de suministros entre 3 organizaciones.

En la vista de agricultor encontramos un formulario donde podemos introducir una nueva producción. Por ejemplo, un nuevo pallet de 10 kg de naranjas a nombre de iBotics para el mercado 1.

Una vez realizada la transacción recibiremos una confirmación con el ID de la misma y se generará un código QR que podremos utilizar para ver todos los cambios que se produzcan en ese pedido mediante una consulta a la blockchain vía SDK.

Una vez generada la transacción previa, podremos acceder a la vista de transportista donde veremos los pedidos de agricultores que existen con el estado "Pendiente" y asignar un transportista.

Cuando se haya completado la transacción, de manera similar al envío del agricultor, podremos ver el historial de la transacción, con su sello de tiempo inmutable, el cambio de estado de "Pendiente" a "En camino" y la asignación del transportista como propietario.

Finalmente en la vista de mercado, podemos seleccionar el mercado para el que queremos ver los pedidos. Con el botón "Asignar responsable", podemos cambiar el propietario al responsable asignado.

Cuando se haya completado la transacción, podremos ver el historial de la transacción, con su sello de tiempo inmutable, el cambio de estado de "En camino" a "Entregado" y la asignación del responsable como propietario, pudiendo cambiarlo en cualquier momento.






Una vez introducidos los datos de cualquier formulario, éstos se envían a la blockchain mediante una nueva transacción. Para que se puedan incluir las transacciones en la blockchain, los envíos se realizan mediante una identificación previa. En un caso real, un sistema de identificación previo con clave privada sería necesario para restringir el acceso.

El sistema consiste en contenedores Docker que alojan la solución de Hyperledger Fabric. Estos contenedores se encuentran alojados en 3 máquinas virtuales orquestadas con Docker Swarm, permitiendo una disponibilidad continua con un escalado sencillo.

La infraestructura cuenta con 3 orderers y un consenso establecido mediante Kafka.