Cadena de suministro utilizando el SDK de Lisk

julio 10, 2020 VICTOR HUGO LAZARTE 0 Comments





Motivación

Blockchain tiene la capacidad de beneficiar masivamente tanto a la cadena de suministro como a las industrias de transporte, al introducir un nuevo nivel de transparencia y capacidad de respuesta de datos que ayuda a mejorar los procesos y atraer clientes potenciales. La aplicación de blockchain a ciertas cadenas de suministro puede beneficiar al productor primario hasta el consumidor final, incluidas todas las otras partes auxiliares intermedias y, además, también proporciona información mejorada sobre todo el proceso.
La red blockchain es la capa de base de datos descentralizada que almacena toda la información relevante sobre la cadena de suministro y los productos, y además garantiza que los datos no se puedan manipular una vez que se almacenan en la cadena de bloques.

Blockchain Supply Chain

Objetivo

El objetivo aquí es crear un sistema de seguimiento de la cadena de suministro descentralizado simple. Los participantes de la red pueden enviar, transportar y recibir paquetes entre ellos.
Para el transporte del paquete, se implementa un sistema de confianza simple, que permite al remitente establecer ciertos requisitos para el transportista del paquete. El paquete será un participante activo en el proceso de transporte, ya que se rastreará con sensores durante el transporte. Esto se hace para garantizar que no haya sido manipulado durante el transporte.
El transportista será recompensado con el transporte exitoso y penalizado si el transporte ha fallado por alguna razón.
Para un uso conveniente del sistema, se proporcionará una aplicación cliente llamada Lisk Transport que visualiza toda la información relevante sobre el sistema de seguimiento de la cadena de suministro. A su vez, la aplicación Lisk Transport permite a los usuarios interactuar con el sistema mediante la publicación de transacciones personalizadas.

Procedimiento general

El diagrama que se muestra a continuación describe el flujo de trabajo general y la descripción de cada paso del sistema de seguimiento de la cadena de suministro:
Diagrama de flujo de Lisk Transport

Inicializar cuenta de paquete

Antes de registrar el paquete en la red, el remitente debe crear una nueva cuenta para el paquete y almacenar la frase de contraseña en el dispositivo IoT dentro del paquete. Esto es necesario porque el paquete debe firmar las transacciones que envía a la red para comunicarse con él.

Paquete de registro

El remitente del paquete registra los paquetes en la red blockchain.
Al crear el RegisterPacketTransaction, el remitente define lo siguiente:
  • packetId: El ID del paquete que se ha inicializado en el paso anterior.
  • postage: Esta cantidad se pagará al transportista por el transporte del paquete.
  • security: La seguridad es la cantidad de tokens que se bloquearán en la cuenta del operador, cuando este reciba el paquete del remitente.
  • minTrust: La cantidad mínima de confianza que requiere un transportista para transportar este paquete.
  • recipientId: El ID del destinatario deseado del paquete. Solo el destinatario puede enviar el FinishTransactionúltimo, que completará el transporte.
Esta transacción realizará lo siguiente:
  • Agregue los datos anteriores a la cuenta del paquete.
  • Establezca el statusdel paquete en pending.
  • Transfiera el franqueo de la cuenta del remitente a la cuenta del paquete.

Iniciar transporte

El siguiente paso sería que el operador vaya a la dirección del remitente del paquete, luego reciba el paquete y comience la entrega al destinatario. El transportista debe firmar una transacción StartTransportTransaction, que verifique que el paquete se haya pasado al transportista.
Al crear el StartTransportTransaction, el operador define lo siguiente:
  • packetID: El ID del paquete que el transportista va a transportar.
Esta transacción realizará lo siguiente:
  • Bloquee el securitypaquete especificado en la cuenta del operador. El transportista no puede acceder a esta seguridad, a menos que el transporte se haya completado con éxito.
  • Agregue el carriera la cuenta del paquete.
  • Establezca el statusdel paquete de pendingongoing.

Alarma de luz

Durante el transporte del paquete, se rastreará con diferentes sensores para verificar si ha sido manipulado durante la fase de transporte. Si se ha producido alguna manipulación, el paquete enviará una transacción de alarma autofirmada a la red.
Esto LightAlarmTransactionrealizará lo siguiente:
  • Cambia el paquete statusalarm.
  • Agregue el actual timestampa la lista asset.alarms.lightdentro de la cuenta del paquete.

Terminar el transporte

Al llegar al destinatario del paquete, el transportista pasa el paquete al destinatario. El destinatario debe firmar el FinishTransportTransactionEsto verifica que el paquete ha sido enviado al destinatario.
Al enviar la transacción, el destinatario debe especificar lo siguiente:
  • packetID: La ID del paquete que recibió el destinatario.
  • status: El estado del transporte, que tiene 2 opciones: "success"o"fail"
Esta transacción realizará lo siguiente:
  • Si status="success"
    • Enviar postagea la cuenta del operador.
    • Desbloqueo securityen la cuenta del operador.
    • Aumento trustde portador +1.
    • Establecer paquete statusen success.
  • Si status="fail"
    • Enviar postagea la cuenta del remitente.
    • Agregue securitya la cuenta del remitente y anule lockedSecurityde la cuenta para el operador.
    • Disminución trustdel portador en -1.
    • Establecer paquete statusen fail.                     


    Información para desarrolladores: para informacón de guia de instalacón y taller ver aquí 





Fuente: Blog de Lisk




Es evidente hoy que el mundo moderno está viendo cada vez más riqueza creada, y que las economías y los mercados están conecta...