Contenido


Cómo implementar blockchain para aplicaciones de IoT cognitivas, Parte 1

Integre los datos del dispositivo con los contratos inteligentes de IBM Blockchain

¿Cómo se utilizan esas dos tecnologías para construir entornos end-to-end seguros y soluciones automáticas?

Comments

Contenido de la serie:

Este contenido es la parte # de # de la serie: Cómo implementar blockchain para aplicaciones de IoT cognitivas, Parte 1

Manténgase en contacto por contenidos adicionales de esta serie.

Este contenido es parte de la serie:Cómo implementar blockchain para aplicaciones de IoT cognitivas, Parte 1

Manténgase en contacto por contenidos adicionales de esta serie.

Las soluciones del Internet de las cosas (IoT) se están adoptando con éxito en industrias muy diferentes, como el cuidado de la salud, el almacenaje, el transporte y la logística. Es posible que las actuales soluciones de IoT basadas en la nube y centralizadas no escalen ni solucionen los problemas de seguridad a los que se enfrentan las empresas de gran escala. El uso de blockchain como un libro contable distribuido de transacciones y comunicaciones entre los pares de los nodos participantes puede solucionar dichos problemas. Este artículo brinda una visión general de las soluciones IoT compatibles con blockchain y demuestra cómo se utiliza la plataforma IBM Blockchain para una aplicación de IoT de un entorno de varios socios.

¿Qué es blockchain?

Blockchain se refiere a un libro contable distribuido en el que una lista de transacciones se almacena en varios servidores participantes en vez de en un servidor de transacciones central. Cada participante de la red de blockchain tiene acceso a una copia actualizada de este libro contable cifrado, para que pueda leer, escribir y validar las transacciones. Consulte los temas relacionados para obtener más información acerca de blockchain y de cómo IBM está contribuyendo para desarrollar un blockchain para las empresas.

Mientras que los principales escenarios de uso de blockchain se encuentran en el ámbito financiero, blockchain últimamente se está utilizando mucho en soluciones de IoT. Blockchain puede ser de gran ayuda para lograr la visión de la IoT descentralizada, lo que facilita las transacciones y la coordinación entre los dispositivos que interactúan.

IoT e IBM Watson IoT Platform

La IoT ha ofrecido enormes oportunidades para las empresas y los consumidores, especialmente en las áreas de cuidado de la salud, almacenaje, transporte y logística. En las soluciones IoT se utiliza una compleja red de dispositivos inteligentes, e IoT brinda la oportunidad de desarrollar servicios nuevos basándose en dispositivos físicos conectados y habilitados para la nube—desde máquinas y carros, hasta dispositivos del hogar. Las soluciones de IoT soportadas por IBM Cloud tienen tres niveles principales y cada uno de ellos tiene responsabilidades específicas propias:

  • Dispositivos / gateway: Estos son dispositivos o sensores inteligentes que recopilan datos acerca del mundo físico, como la temperatura de un contenedor refrigerado que transporta productos perecederos o datos de la salud de un paciente que ha sido admitido en el hospital. Los dispositivos se conectan a Internet para trasmitir estos datos de forma segura a una plataforma de IoT, para poder analizarlos, procesarlos y realizar acciones basándose en esos datos.
  • IBM Watson IoT Platform: IoT Platform de IBM recopila datos de dispositivos de IoT y brinda diferentes servicios que analizan los datos y realizan las acciones posteriores para solucionar problemas empresariales específicos. Watson IoT Platform brinda un amplio conjunto de servicios cognitivos (como el aprendizaje automático, el razonamiento automático, el procesamiento de lenguajes naturales y el análisis de imágenes) que mejora la capacidad de procesar los datos no estructurados que se recopilan de múltiples sensores inteligentes.
  • IBM Cloud: IBM Cloud es una plataforma basada en estándares abiertos para la nube, y sirve para construir, ejecutar y gestionar aplicaciones y servicios. Apoya a las aplicaciones de IoT facilitando la inclusión de capacidades analíticas y cognitivas en aquellas aplicaciones que se basan en varios tiempos de ejecución y servicios.

Blockchain e IoT

Aunque la adopción de la IoT está creciendo considerablemente, hay que atender algunos importantes desafíos antes de hacer que las soluciones de IoT escalen y soporten la siempre creciente demanda de dispositivos cada vez más conectados. Las soluciones de IoT tienen que encargarse de las preocupaciones con la privacidad y la seguridad de los dispositivos y de los datos que recopilan. Algunos de esos desafíos son:

  • Escalabilidad: Las actuales plataformas de IoT centralizadas y basadas en los datos, imponen el redireccionamiento de los mensajes a través de esas plataformas. Esta imposición crea un cuello de botella para el escalado de las soluciones de IoT para mayores cantidades de dispositivos.
  • Seguridad: El enorme volumen de datos que se recopila de millones de dispositivos aumenta la preocupación de individuos, las corporaciones y los gobiernos con la seguridad y la privacidad. Como han demostrado los recientes ataques de denegación de servicio de dispositivos de IoT, el gran número de dispositivos de bajo costo que están conectados a Internet es un importante desafío para el aseguramiento de la seguridad de la IoT.
  • Falta de estándares/uniformidad en los datos: El mundo se está dirigiendo hacia las iniciativas de datos abiertos, pero no hay un enfoque uniforme. Hay varios protocolos, pero no hay ninguna plataforma única para conectar los dispositivos de todos los fabricantes. La interoperabilidad de los dispositivos y de las plataformas es uno de los principales desafíos para el crecimiento de las soluciones de IoT.
  • Costo: Las soluciones de IoT están asociadas con un gran número de dispositivos y con sus equipos de red. Se está demostrando que los costos asociados a soluciones de IoT son muy altos, ya que tienen que atender a un número muy grande de mensajes (costos de las comunicaciones), a los datos generados por los dispositivos (costos de almacenamiento) y a procesos analíticos (costos de los servidores). El crecimiento posterior sólo aumenta esos costos.
  • Arquitectura: Las plataformas de nubes centralizadas siguen siendo un cuello de botella de las soluciones integrales de IoT. Cualquier disrupción que sufran puede afectar a toda la red.

Redes de IoT descentralizadas

La tecnología blockchain y la IoT ofrecen todo un mundo nuevo de promesas, y se pueden aprovechar para solucionar los problemas descritos anteriormente. Las redes IoT distribuidas y basadas en estándares abiertos pueden solucionar muchos de los problemas asociados a las actuales soluciones de IoT centralizadas y basadas en la nube, entre ellos los problemas de seguridad, escalabilidad y costo. Por ejemplo, los dispositivos conectados se podrían comunicar directamente con libros contables distribuidos. Después, contratos inteligentes podían utilizar los datos de esos dispositivos para actualizar y validar los datos, y para posteriormente entregarlos a todos los participantes de la red empresarial que estén interesados. Esto reduciría la necesidad de que personas monitoreen y realicen acciones, y para aumentar la confianza en los datos generados por los dispositivos. Las redes blockchain descentralizadas también pueden mejorar la seguridad de las soluciones de IoT mediante la ejecución de contratos inteligentes predefinidos y mediante la implementación de mecanismos específicos para el consenso que eliminen las acciones de los dispositivos comprometidos.

IBM Watson IoT Platform ahora permite utilizar servicios de IBM Blockchain para aplicaciones de IoT. Los datos de los dispositivos de IoT ahora se pueden integrar con los libros contables privados de blockchain y con transacciones compartidas, todo con una alta seguridad. El mecanismo de replicación distribuida de blockchain acaba con la necesidad de recopilar y almacenar de forma centralizada todos los datos de IoT, y permite utilizar los datos de IoT de una forma descentralizada.

Casos de uso de IoT con blockchain

La combinación de IoT y blockchain está creando muchas posibilidades nuevas para el uso de dispositivos inteligentes en el ciclo de gestión de activos. A medida que los activos atraviesan las diferentes fases de su ciclo de vida, los dispositivos supervisan los diferentes aspectos e integran los datos de los dispositivos en un blockchain de los participantes empresariales para brindar datos confiables en tiempo real. Con los contratos inteligentes de blockchain, se pueden crear reglas para monitorear y controlar la temperatura de un edificio basándose en la información sobre el consumo y el precio de la energía de los proveedores que participan en la red. De igual manera, la calidad (y el precio) de los artículos alimenticios se puede determinar basándose en datos de refrigeración en tiempo real que se utilizan en el transporte. IBM ha demostrado (junto con Samsung) el uso de blockchain en lavadoras autónomas para utilizar contratos inteligentes para reordenar detergente y piezas de repuesto y para planificar el servicio posventa.

Varios consorcios (como Chain of Things) y startups (como Filament) han demostrado otras formas inteligentes de aprovechar los libros contables distribuidos en redes de IoT para automatizar procesos enteros y para la integración con participantes empresariales. La siguiente tabla muestra algunos casos de uso de IoT basados en blockchain para las diferentes industrias:

IndustriaCasos de uso
Cadena de suministroLa falta de visibilidad es uno de los principales problemas de las cadenas de suministro. Incluso cuando hay disponibles datos sobre los procesos, no son lo suficiente confiables como para que desencadenen acciones concretas. Blockchain puede ayudar a solucionar algunos de los principales problemas de las cadenas de suministro: visibilidad, optimización y demanda. Puede garantizar el control de acceso adecuado para los datos que los participantes comparten en la cadena de suministro. Las cadenas de suministro que tienen acceso continuo y en tiempo real a datos confiables y compartidos en blockchain se pueden optimizar de forma más eficiente que las cadenas de suministro tradicionales.

Algunos casos de uso concretos de cadenas de suministro basadas en Blockchain e IoT son:
  • El seguimiento de artículos alimenticios desde las granjas hasta el empaquetamiento y el envío
  • La identificación de la contaminación y la reducción del desperdicio de alimentos en la cadena de suministro
Esos casos de uso utilizan flujos de datos de ubicación, refrigeración, suelo y clima de un blockchain de IoT para que los participantes tengan a su disposición todos los datos relevantes en tiempo real.
AutomotrizLa industria automotriz es una de las primeras industrias en adoptar soluciones de IoT basadas en blockchain. Las soluciones basadas en blockchain se utiliza para brindar información en tiempo real y para ejecutar transacciones entre los principales asociados de negocio—fabricantes, empresas de financiamiento de carros, aseguradoras, proveedores de servicios, organismos reguladores y clientes. Además de la adopción de blockchain en las cadenas de suministro de carros, los datos de los sensores de las diferentes partes del vehículo están integrados en blockchain para tomar decisiones y para realizar transacciones que implican servicios y pagos en tiempo real.

Por ejemplo, Toyota ha empezado a utilizar blockchains para realizar el seguimiento de los miles de piezas que pasan por varios países, fábricas y proveedores para fabricar un único carro.
Energía y servicios públicosBlockchain tiene potencial transformador para la industria energética. Las redes eléctricas de IoT que soportan blockchain permiten realizar transacciones de energía peer-to-peer. En una aplicación, la energía sobrante de los techos solares se vende a otros usuarios que la necesitan—todo ello queda registrado y se paga a través de un blockchain.

Startups, como Filament, también están construyendo redes en malla de dispositivos inteligentes que supervisan redes eléctricas y corrigen los problemas que surjan lo más rápidamente posible.
Cuidados de la saludEl uso de blockchain puede ayudar a mejorar la seguridad de los datos privados de los pacientes, que se obtienen de los dispositivos de supervisión médica. Los datos se almacenan de forma segura en un libro contable distribuido, y los participantes obtienen accesos basándose en reglas de acceso inteligentes que se establecen en el blockchain (por ejemplo, la aprobación por 3 o más partes).

Esto también puede ayudar a que los participantes necesarios (como proveedores de seguros o terceras partes administradoras) reciban en tiempo real datos confiables de los pacientes y ayudarles a que liberen los pagos basándose en datos más precisos.
Automatización del hogarLas tecnologías con IoT se están utilizando en ciudades inteligentes y en edificios inteligentes para mejorar las operaciones, la seguridad y la experiencia de los residentes. Para monitorear y gestionar esas instalaciones se está utilizando una enorme cantidad de dispositivos y de sensores.

Las redes de IoT habilitadas para blockchain pueden proteger los dispositivos y los datos que recopilan de ellos. Todos los proveedores de gestión de instalaciones pueden participar de un blockchain privado para brindar servicio oportuno y para automatizar el proceso de pago basándose en el trabajo real realizado y en la calidad del servicio.
Otras industrias / aplicacionesLa tecnología blockchain también ayuda a mejorar la gestión de dispositivos y la seguridad del flujo de datos de la red.

Permite el control de acceso de los datos que fluyen hacia diferentes participantes, permite el intercambio de datos entre los participantes y brinda los servicios de pago necesarios que están integrados con el flujo de datos.

Arquitectura de las aplicaciones de IoT con blockchain

La imagen 1 muestra la arquitectura de alto nivel de las aplicaciones de IoT que utilizan los servicios de Hyperledger basados en IBM Cloud.

Figura 1. Arquitectura de las aplicaciones de IoT con Blockchain
Blockchain IoT application architecture
Blockchain IoT application architecture

Los datos de los dispositivos se envían a Watson IoT Platform con el protocolo MQTT. El proxy de blockchain de Watson IoT Platform envía los datos al chaincode basándose en una configuración predefinida. Las transacciones inteligentes se ejecutan en IBM Cloud basándose en los datos del dispositivo.

Los componentes individuales se describen en la siguiente sección.

Componentes de la solución

Servicio de blockchain

IBM Blockchain brinda la infraestructura privada de blockchain para desarrollar soluciones habilitadas para blockchain. El Servicio de blockchain es una implementación de Hyperledger Fabric. Brinda lo siguiente:

  • Una red de blockchain formada por cuatro pares
  • Un servidor de autoridades certificadoras
  • Código de contratos inteligentes (chaincode, desarrollado con Golang)
  • El estado del mundo / contrato inteligente, que contiene el valor actual de los datos del contrato inteligente (el historial de todas las transacciones también está disponible en el Blockchain)

La imagen 2 muestra los diferentes subcomponentes de los servicios de IBM Blockchain.

Figura 2. Los subcomponentes de los servicios de IBM Blockchain
Subcomponents of IBM Blockchain services
Subcomponents of IBM Blockchain services

Los contratos inteligentes forman el núcleo de las soluciones basadas en blockchain y encapsulan la lógica del negocio. Cada invocación de un contrato inteligente se registra como una transacción de blockchain. Los contratos de IBM Blockchain (chaincode) se desarrollan con el lenguaje Go y tienen que implementar Contracts API. Los contratos inteligentes se tienen que registrar con servicios de blockchain que utilizan APIs predefinidas.

Contract API tiene que ser implementada por un desarrollador de contratos inteligentes. Tiene tres funciones principales: Init(), Invoke()y Query(). Consulte la documentación de IBM Cloud para obtener más detalles acerca de esta API.

Blockchain API es la API del cliente para las aplicaciones de blockchain. Hyperledger Fabric Client (HFC) SDK permite que los desarrolladores de aplicaciones construyan aplicaciones de Node.js que interactúan con una red de blockchain. Las aplicaciones pueden utilizar esta API para registrar usuarios y para enviar transacciones de forma segura.

Para desarrollar aplicaciones del cliente para blockchain hay varias alternativas

REST API

La REST API de blockchain ayuda a interactuar con los pares de blockchain a través de la interfaz http. En la siguiente tabla se muestra una lista de las operaciones soportadas:

MétodoOperaciónDescripción
GET/chain/blocks/{Block}Devuelve información acerca de un bloque específico que está dentro del blockchain.
GET/chainEl parámetro "chain" devuelve información acerca del estado actual del blockchain.
POST/chaincodeEl parámetro /chaincode recibe solicitudes para desplegar, invocar y consultar un chaincode objetivo.
GET/network/peersEsta API devuelve una lista de todas las conexiones de red existentes para el nodo del par objetivo. La lista incluye pares validadores y no validadores.
POST/registrarRegistra a un usuario con la autoridad certificadora.
DELETE/registrar/{enrollmentID}Borra del almacenamiento local los tokens existentes del inicio de sesión del cliente. Después de la finalización de esta solicitud, el usuario objetivo ya no será capaz de ejecutar transacciones.
GET/registrar/{enrollmentID}Confirma si el usuario especificado se ha registrado con la autoridad certificadora.
GET/registrar/{enrollmentID}/ecertRecupera el certificado de inscripción para un usuario específico que se ha registrado con la autoridad certificadora.
GET/registrar/{enrollmentID}/tcertRecupera los certificados de las transacciones para un usuario específico que se ha registrado con la autoridad certificadora.
GET/transactions/UUIDEste parámetro devuelve la transacción que coincide con el UUID especificado.

IBM-Blockchain-js

IBM-Blockchain-js es una biblioteca contenedora de Node.js para la REST API que brindan los servicios de blockchain. Brinda funciones en la fácil API de Node.js que son similares a los que están disponibles en REST API.

HFC SDK

Hyperledger Fabric Client (HFC) SDK for Node.js es una API basada en gRPC y que brinda una interfaz de fácil uso para desarrollar aplicaciones basadas en el servicio IBM Blockchain. HFC está diseñado para ejecutarse con el tiempo de ejecución Node.js JavaScript. Para más información, vea estos recursos:

La aplicación del cliente

La aplicación del cliente es la responsable de brindar los datos necesarios a las partes interesadas para satisfacer sus necesidades empresariales y para brindar una experiencia de usuario rica. Las aplicaciones de los clientes tienen que utilizar la API de blockchain tal como se brinda para que los contratos inteligentes interactúen con el libro contable empresarial. Esas aplicaciones también pueden procesar los eventos que generan los componentes de blockchain.

IBM Watson IoT Platform

IBM Watson IoT Platform recibe los datos de todos los dispositivos registrados y procesa esos datos poniéndolos en el formato necesario para su integración con blockchain. Esto significa que el desarrollador de contratos de blockchain no tiene que saber los detalles acerca del origen de los datos, y se pueden centrar en el desarrollo de la lógica de los contratos.

Desarrollar aplicaciones de IoT con blockchain

La imagen 3 muestra los principales pasos en el desarrollo de aplicaciones de IoT habilitadas para blockchain con IBM Watson IoT Platform y los servicios de Blockchain. Necesitan tener varias habilidades para desarrollar completas aplicaciones de IoT utilizando esos servicios.

Figura 3. Desarrollar aplicaciones de IoT con blockchain
Developing blockchain IoT                     applications
Developing blockchain IoT applications

Aquí presentamos una breve visión general de cada paso del proceso:

1. Montar una infraestructura privada de blockchain

Los desarrolladores tienen que montar un blockchain privado basándose en el servicio IBM Blockchain. Consulte la documentación de IBM Cloud sobre cómo montar servicios privados de blockchain.

Desarrolle e despliegue contratos inteligentes en blockchain basándose en los datos del dispositivo. Se puede montar un contrato para rechazar un envío o para reducir el precio si la temperatura del contenedor (medida a través de sensores) excede un determinado umbral.

2. Conectar dispositivos a la plataforma IBM Watson IoT Platform

Conecte los sensores / gateway a Watson IoT Platform. Esto permitirá que los dispositivos envíen datos al filtro / los acumulen, y que después los envíen a blockchain. Siga las instrucciones de la documentación para añadir los dispositivos a Watson IoT Platform. Cuando los haya añadido correctamente, la página Dispositivos del panel de instrumentos de Watson IoT tendrá esta apariencia:

Figura 4. Página Dispositivos de panel de instrumentos de Watson IoT
Watson IoT dashboard Devices page
Watson IoT dashboard Devices page

3. Integrar los datos del dispositivo con el libro contable distribuido de blockchain

Una vez que haya recibido los datos del dispositivo, los datos en bruto que entran o los datos filtrados/analizados se tienen que enviar al servicio de Blockchain que se ejecuta en IBM Cloud. Los contratos inteligentes de blockchain se pueden desencadenar utilizando HFC REST API del flujo de trabajo de Node-RED. Node-RED también se puede utilizar para acumular y filtrar los eventos del dispositivo y para invocar los contratos inteligentes con los parámetros necesarios.

4. Desarrollar aplicaciones cliente para usuarios finales

El paso final es hacer que las salidas / eventos de las transacciones estén disponibles para los usuarios finales. Las aplicaciones cliente se pueden desarrollar con la API blockchain (como se menciona en la sección anterior) y otros servicios analíticos con varios lenguajes / plataformas soportadas por IBM Cloud.

Conclusión

Como puede ver, hay un enorme potencial para desarrollar aplicaciones con blockchain en soluciones de IoT, y esta combinación puede solicitar algunos de los principales problemas que limitan la adopción de la IoT, como la seguridad y la escalabilidad. Los libros contables distribuidos que tienen incorporados contratos inteligentes pueden mejorar la seguridad y la confianza, y pueden automatizar procesos enteros que están formados por varios asociados de negocios. IBM Watson IoT Platform se puede combinar con servicios Blockchain basados en IBM Cloud Blockchain para brindar una plataforma lista para ser desplegada para aplicaciones de la IoT basadas en blockchain (y en estándares abiertos).

Sin embargo, hay algunos desafíos que se deben superar. Uno de los principales desafíos de las aplicaciones IoT basadas en blockchain es la limitada potencia de computación de muchos dispositivos de IoT. El cifrado y la verificación de las transacciones de blockchain pueden requerir de una considerable potencia de procesado, lo que es posible que no esté disponible en los dispositivos de gama baja. Y el uso de más potencia de procesado puede incrementar el consumo de energía y el costo de la solución.

En la Parte 2 de este artículo, demostraremos la integración de IBM Watson IoT Platform con los servicios IBM Blockchain para desarrollar una aplicación que utilice (de forma simulada) datos de sensores V2V y del vehículo para ejecutar transacciones inteligentes en IBM Blockchain.


Recursos para Descargar


Temas relacionados


Comentarios

Inicie Sesión o Regístrese para agregar comentarios.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Cloud computing, Internet of Things
ArticleID=1057960
ArticleTitle=Cómo implementar blockchain para aplicaciones de IoT cognitivas, Parte 1: Integre los datos del dispositivo con los contratos inteligentes de IBM Blockchain
publish-date=06012017