Conteúdo


Implementando o blockchain para aplicativos cognitivos de IoT, Parte 1

Integre dados de dispositivo a contratos inteligentes no IBM Blockchain

Como essas duas tecnologias estão sendo usadas para desenvolver soluções completas, seguras e automatizadas?

Comments

Conteúdos da série:

Esse conteúdo é a parte # de # na série: Implementando o blockchain para aplicativos cognitivos de IoT, Parte 1

Fique ligado em conteúdos adicionais dessa série.

Esse conteúdo é parte da série:Implementando o blockchain para aplicativos cognitivos de IoT, Parte 1

Fique ligado em conteúdos adicionais dessa série.

As soluções de IoT (Internet das Coisas) são adotadas com sucesso em diversos segmentos de mercado diferentes, como assistência médica, warehousing, transporte e logística. As atuais soluções de IoT baseadas em nuvem e centralizadas podem não escalar e atender aos desafios de segurança enfrentados pelas grandes empresas. O uso de blockchain como um livro-razão distribuído de transações e de comunicação de ponto a ponto entre nós participantes pode resolver esses problemas. Este artigo fornece uma visão geral das soluções de IoT habilitadas para blockchain e demonstra como usar a plataforma IBM Blockchain para um aplicativo de IoT em um ambiente de diversos parceiros.

O que é blockchain?

O Blockchain refere-se a um livro-razão distribuído, onde uma lista de transações é armazenada em diversos servidores participantes, ao invés de em um servidor de transação central. Cada participante na rede de blockchain pode acessar uma cópia atualizada desse livro-razão criptografado, para ler, gravar e validar transações. Consulte os tópicos relacionados para obter mais detalhes sobre o blockchain e sobre como a IBM está contribuindo para o desenvolvimento de um blockchain para os negócios.

Embora os principais cenários de uso de blockchain estejam no domínio financeiro, eles recentemente adquiriram muita atenção nas soluções de IoT. O Blockchain pode ajudar significativamente na conquista da visão de IoT descentralizada, facilitando transações e coordenando a interação entre dispositivos.

A IoT e o IBM Watson IoT Platform

A IoT apresentou grandes oportunidades para empresas e consumidores, especialmente nas áreas de assistência médica, warehousing, transporte e logística. As soluções de IoT envolvem uma rede complexa de dispositivos inteligentes e a IoT oferece a oportunidade de desenvolver novos serviços, baseados em dispositivos físicos conectados e habilitados para nuvem, —desde máquinas e carros até eletrodomésticos. Existem três camadas principais de soluções de IoT com suporte da IBM Cloud, cada uma com responsabilidades específicas próprias:

  • Dispositivos/gateway: Esses são dispositivos inteligentes ou sensores que coletam dados sobre o mundo físico, como a temperatura de um contêiner refrigerado, que transporta alimentos perecíveis, ou dados de saúde de um paciente internado no hospital. Os dispositivos estão conectados à Internet para transmissão desses dados de forma segura para uma plataforma de IoT, para fins de análise, processamento e ações com base nesses dados.
  • IBM Watson IoT Platform: A plataforma de IoT da IBM coleta dados de dispositivos de IoT e fornece diversos serviços, que analisam os dados e tomam ações subsequentes para resolver problemas de negócios específicos. O Watson IoT Platform fornece um conjunto rico de serviços cognitivos (como machine learning, machine reasoning, processamento de linguagem natural e análise de imagem), que aprimoram a capacidade de processamento dos dados não estruturados coletados dos diversos sensores inteligentes.
  • IBM Cloud: A IBM Cloud é uma plataforma de nuvem baseada em padrões abertos, para construir, executar e gerenciar aplicativos e serviços. Ela suporta aplicativos de IoT, facilitando a inclusão de recursos analíticos e cognitivos nesses aplicativos, com base em diversos tempos de execução e serviços.

Blockchain e IoT

Embora a utilização da IoT esteja crescendo de forma significativa, alguns desafios importantes precisam ser abordados para a escalabilidade das soluções de IoT e para o suporte à crescente demanda de mais e mais dispositivos conectados. As soluções de IoT devem abordar os interesses de segurança e privacidade em torno desses dispositivos e dos dados que eles coletam. Alguns desses desafios são:

  • Escalabilidade: As atuais plataformas de IoT centralizadas e baseadas em nuvem utilizam o roteamento de mensagens através dessas plataformas. Essa utilização cria um gargalo na escalabilidade das soluções de IoT para um grande número de dispositivos.
  • Segurança: O grande volume de dados coletados de milhões de dispositivos aumenta as preocupações com a segurança e a privacidade das informações, a respeito de indivíduos, corporações e governos. Conforme demonstrado pelos recentes ataques de negação de serviço aos dispositivos de IoT, o grande número de dispositivos de baixo custo conectados à Internet é um grande desafio na garantia da segurança da IoT.
  • Ausência de conformidade/padrões de dados: O mundo está se voltando para iniciativas de dados abertos, mas não há uma abordagem uniforme. Existem diversos protocolos e nonea plataforma exclusiva para conectar dispositivos de todos os fabricantes. A interoperabilidade de dispositivos e plataformas é um desafio fundamental para o crescimento das soluções de IoT.
  • Custo: As soluções de IoT estão associadas a um grande número de dispositivos e seus equipamentos de rede. Os custos associados às soluções de IoT são muito altos atualmente, pois precisam atender a um volume muito alto de mensagens (custos de comunicação), dados gerados pelos dispositivos (custos de armazenamento) e processos analíticos (custos do servidor). O crescimento subsequente apenas aumentará esses custos.
  • Arquitetura: As plataformas de nuvem centralizadas continuam a ser um gargalo nas soluções completas de IoT. Qualquer interrupção nelas pode afetar toda a rede.

Redes de IoT descentralizadas

A tecnologia de blockchain e a IoT oferecem um novo mundo promissor e podem ser utilizadas para resolver os problemas descritos acima. As redes de IoT distribuídas e baseadas em padrões abertos podem resolver muitos problemas associados às atuais soluções de IoT centralizadas e baseadas em nuvem, incluindo segurança, escalabilidade e custo. Por exemplo, dispositivos conectados podem se comunicar diretamente com livros razão distribuídos. Os dados desses dispositivos podem ser usados por contratos inteligentes, para atualizar e validar os dados e, posteriormente, entregá-los a todos os participantes interessados na rede de negócios. Isso reduziria a necessidade de monitoramento e ações humanas e promoveria a confiança nos dados gerados pelos dispositivos. As redes descentralizadas de blockchain também podem melhorar a segurança das soluções de IoT ao executar contratos inteligentes predefinidos e implementar mecanismos de consenso específicos, que eliminam ações de dispositivos comprometidos.

Agora, o IBM Watson IoT Platform suporta o uso de serviços IBM Blockchain para aplicativos de IoT. Os dados dos dispositivos de IoT agora podem ser integrados aos livros razão de blockchain privado e às transações compartilhadas com alta segurança. O mecanismo de replicação distribuída do blockchain elimina a necessidade de ter todos os dados de IoT coletados e armazenados centralmente e permite o uso dos dados de IoT de forma descentralizada.

Casos de uso de IoT usando blockchain

A combinação de IoT e do blockchain está criando muitas novas possibilidades para o uso de dispositivos inteligentes no ciclo de gerenciamento de ativos. À medida que os ativos passam pelas diversas fases do seu ciclo de vida, os dispositivos monitoram diferentes aspectos e integram os dados dos ativos em um blockchain dos participantes de negócios, para fornecer dados confiáveis e em tempo real. Com os contratos inteligentes de blockchain, podem ser criadas regras para monitorar e controlar a temperatura de um edifício, com base no consumo de energia e nas informações de preços de energia dos fornecedores que participam da rede. Da mesma forma, a qualidade (e o preço) dos alimentos pode ser determinada com base nos dados de refrigeração em tempo real, utilizados no transporte. A IBM (juntamente com a Samsung) demonstrou o uso de blockchain em máquinas de lavar autônomas, que podem reordenar peças de substituição e detergente, além de providenciar o serviço pós-venda usando contratos inteligentes.

Diversos consórcios (como Chain of Things) e empresas start-up (como a Filament) demonstraram outras formas inteligentes de utilizar os livros razão distribuídos nas redes de IoT para automatizar os processos completos e a integração com os participantes de negócios. A tabela abaixo lista alguns casos de uso de IoT baseados em blockchain para diferentes segmentos de mercado:

Segmento de mercadoCasos de uso
Cadeia de suprimentoA falta de visibilidade é um grande problema na cadeia de suprimentos. Mesmo quando os dados sobre os processos estão disponíveis, eles não são confiáveis o suficiente para acionar ações concretas. O blockchain pode ajudar a resolver alguns dos principais problemas na cadeia de suprimentos: visibilidade, otimização e demanda. Ele pode garantir um controle de acesso apropriado aos dados compartilhados entre os participantes na cadeia de suprimentos. Uma cadeia de suprimentos com acesso contínuo e em tempo real a dados confiáveis e compartilhados em blockchain pode ser otimizada de forma mais eficiente do que a das cadeias de suprimentos tradicionais.

Os casos de uso concretos sobre cadeia de suprimentos baseados no Blockchain e na IoT incluem:
  • Rastreamento de alimentos desde a produção até o empacotamento e o envio
  • Identificação de contaminação e redução do desperdício de alimentos na cadeia de suprimentos
Esses casos de uso usam fluxos de dados de localização, refrigeração, solo e clima em um blockchain de IoT para disponibilizar todos os dados relevantes aos participantes em tempo real.
AutomotivoO segmento de mercado automotivo é um dos principais na adoção de soluções de IoT baseadas em blockchain. As soluções baseadas em blockchain são usadas para fornecer informações em tempo real e para executar transações entre os principais fabricantes de parceiros de negócios—, empresas de financiamento de automóveis, seguradoras, prestadores de serviços, reguladores e clientes. Além da adoção do blockchain nas cadeias de suprimentos de automóveis, os dados do sensor sobre diversas peças do veículo estão integrados com blockchain para tomar decisões e realizar transações em tempo real, envolvendo serviços e pagamentos.

Por exemplo, a Toyota começou a usar o blockchain para rastrear as milhares de peças que viajam por diversos países, fábricas e fornecedores para fabricar um único carro.
Energia e utilidade públicaO blockchain possui um potencial disruptivo para o segmento de mercado de energia. As grades de redes de energia de IoT suportadas por blockchain permitem transações de energia entre pares. Em um único aplicativo, o excesso de energia solar no telhado é vendido para outros usuários que precisam, —tudo isso pago e gravado através de um blockchain.

Empresas start-up como a Filament também estão construindo redes de engrenagem de dispositivos inteligentes, que monitoram grades de energia e corrigem todos os problemas que surgem o mais rápido possível.
Assistência médicaO uso de blockchain pode ajudar a melhorar a segurança de dados de pacientes privados, provenientes de dispositivos de monitoramento médico. Os dados são armazenados de forma segura em um livro-razão distribuído e os participantes recebem acesso com base em regras de acesso inteligente, definidas no blockchain (por exemplo, aprovação de 3 ou mais partes).

Isso também pode ajudar a fornecer dados de pacientes confiáveis e​em tempo real, para os participantes necessários (como provedores de seguros ou administradores de terceiros), e ajudá-los a liberar pagamentos com base em dados mais precisos.
Automação residencialAs tecnologias habilitadas para IoT estão sendo usadas em cidades inteligentes e edifícios inteligentes para melhorar as operações, a segurança e a experiência dos moradores. Um grande número de dispositivos e sensores estão sendo usados para monitorar e gerenciar essas instalações.

Uma rede de IoT habilitada para blockchain pode proteger os dispositivos e os dados coletados deles. Todos os fornecedores de gerenciamento de instalações podem participar de um blockchain privado, para fornecer um serviço adequado e automatizar o processo de pagamento com base no trabalho real realizado ou na qualidade do serviço.
Outros segmentos de mercado/aplicativosA tecnologia de blockchain também ajuda a melhorar o gerenciamento de dispositivos e a segurança do fluxo de dados na rede.

Ela permite o controle do acesso aos dados transmitidos para diferentes participantes, permite a troca de dados entre os participantes e fornece os serviços de pagamento necessários e integrados ao fluxo dos dados.

Arquitetura de aplicativo de IoT de blockchain

A figura 1 mostra a arquitetura de alto nível dos aplicativos de IoT, que usam os serviços Hyperledger baseados em IBM Cloud.

Figura 1. Arquitetura de aplicativo de IoT de blockchain
Blockchain IoT application architecture
Blockchain IoT application architecture

Os dados dos dispositivos são enviados ao Watson IoT Platform usando o protocolo MQTT. O proxy do blockchain no Watson IoT Platform envia os dados ao chaincode com base em uma configuração predefinida. As transações inteligentes são executadas na IBM Cloud com base nos dados do dispositivo.

Os componentes individuais são descritos na próxima seção.

Componentes da solução

Serviço blockchain

O IBM Blockchain fornece a infraestrutura de blockchain privado para o desenvolvimento de soluções habilitadas para blockchain. O serviço blockchain é uma implementação do Hyperledger Fabric. Ele fornece o seguinte:

  • Uma rede de blockchain composta por quatro pares
  • Um servidor de autoridade de certificação
  • Código de contrato inteligente (chaincode, desenvolvido usando o Golang)
  • O estado mundial/de livro-razão, que contém o valor atual dos dados do contrato inteligente (o histórico de todas as transações também está disponível no Blockchain)

A figura 2 mostra os diferentes subcomponentes dos serviços IBM Blockchain.

Figura 2. Os subcomponentes dos serviços IBM Blockchain
Subcomponents of IBM Blockchain services
Subcomponents of IBM Blockchain services

Contratos inteligentes formam o núcleo das soluções baseadas em blockchain e contêm a lógica de negócios. Cada chamada de um contrato inteligente é registrada como uma transação de blockchain. Os contratos do IBM Blockchain (chaincode) são desenvolvidos usando a linguagem Go e precisam implementar a API de Contrato. Os contratos inteligentes precisam ser registrados com serviços de blockchain, usando APIs predefinidas.

A API de Contrato precisa ser implementada por um desenvolvedor de contrato inteligente. Possui três funções principais: Init(), Invoke() e Query(). Consulte a Documentação da IBM Cloud para obter mais detalhes sobre essa API.

API do Blockchain é a API do cliente para aplicativos de blockchain. O SDK do Hyperledger Fabric Client (HFC) permite aos desenvolvedores de aplicativos criarem aplicativos Node.js, que interagem com uma rede de blockchain. Os aplicativos podem registrar usuários de forma segura e enviar transações usando essa API.

Existem diversas alternativas para o desenvolvimento de aplicativos cliente para blockchain:

API de REST

A API de REST do blockchain ajuda a interagir com os pares do blockchain, usando a interface http. Uma lista de operações suportadas é mostrada na tabela abaixo:

MétodoOperaçãoDescrição
GET/chain/blocks/{Block}Retorna informações sobre um bloco específico no blockchain.
GET/chainO terminal de cadeia retorna informações sobre o estado atual do blockchain.
POST/chaincodeO terminal /chaincode recebe solicitações para implementar, chamar e consultar um chaincode de destino.
GET/network/peersEssa API retorna uma lista de todas as conexões de rede existentes para o nó par de destino. A lista inclui pares de validação e de não validação.
POST/registrarRegistra um usuário com a autoridade de certificação.
DELETE/registrar/{enrollmentID}Exclui todos os tokens de login existentes do cliente do armazenamento local. Após a conclusão dessa solicitação, o usuário de destino não poderá mais executar transações.
GET/registrar/{enrollmentID}Confirma se o usuário especificado se registrou com a autoridade de certificação.
GET/registrar/{enrollmentID}/ecertRecupera o certificado de inscrição para um determinado usuário registrado com a autoridade de certificação.
GET/registrar/{enrollmentID}/tcertRecupera os certificados de transação para um determinado usuário registrado com a autoridade de certificação.
GET/transactions/UUIDEsse terminal retorna a transação correspondente ao UUID especificado.

IBM-Blockchain-js

IBM-Blockchain-js é uma biblioteca de wrapper do Node.js sobre a API de REST, fornecida pelos serviços do Blockchain. Ela fornece funções na API do Node.js de fácil utilização, semelhantes às disponíveis na API de REST.

SDK do HFC

O SDK do Hyperledger Fabric Client (HFC) para Node.js é uma API baseada em gRPC, que fornece uma interface de fácil utilização para o desenvolvimento de aplicativos baseados no serviço IBM Blockchain. O HFC foi projetado para ser usado no tempo de execução JavaScript do Node.js. Para obter mais detalhes, veja esses recursos:

O aplicativo cliente

O aplicativo cliente é responsável por fornecer os dados necessários às partes interessadas, para atender às suas necessidades de negócios e fornecer uma experiência de usuário rica. Os aplicativos cliente precisam usar a API do blockchain, conforme previsto para os contratos inteligentes, para interagir com o livro-razão de negócios. Esses aplicativos também podem processar os eventos gerados pelos componentes do blockchain.

IBM Watson IoT Platform

O IBM Watson IoT Platform recebe dados de todos os dispositivos registrados e processa esses dados no formato requerido para integração com o blockchain. Isso significa que o desenvolvedor do contrato de blockchain não precisa saber os detalhes sobre a fonte dos dados e pode se concentrar no desenvolvimento da lógica do contrato.

Desenvolvendo aplicativos de IoT de blockchain

A Figura 3 mostra as principais etapas no desenvolvimento de um aplicativo de IoT habilitado para blockchain, usando os serviços IBM Watson IoT Platform e Blockchain. Os desenvolvedores precisam possuir diversas habilidades para desenvolver aplicativos completos de IoT usando esses serviços.

Figura 3. Desenvolvendo aplicativos de IoT de blockchain
Developing blockchain IoT                     applications
Developing blockchain IoT applications

Aqui está uma breve visão geral sobre cada etapa do processo:

1. Configure uma infraestrutura de blockchain privado

Os desenvolvedores precisam configurar um blockchain privado, com base no serviço IBM Blockchain. Consulte a Documentação da IBM Cloud para saber sobre a configuração de serviços de blockchain privado.

Desenvolva e implemente contratos inteligentes no blockchain com base nos dados do dispositivo. Um contrato pode ser configurado para rejeitar uma remessa ou reduzir um preço se a temperatura do contêiner (medida por sensores) exceder um determinado limite.

2. Conecte dispositivos ao IBM Watson IoT Platform

Conecte sensores/gateway ao Watson IoT Platform. Isso permitirá que os dispositivos enviem dados para filtrar/agregar e, posteriormente, encaminhar para o blockchain. Siga a documentação para incluir os dispositivos ao Watson IoT Platform. Quando incluídos com sucesso, a página Dispositivos no painel do Watson IoT será semelhante ao seguinte:

Figura 4. Página Dispositivos no painel do Watson IoT
Watson IoT dashboard Devices page
Watson IoT dashboard Devices page

3. Integre os dados do dispositivo ao livro-razão do blockchain

Uma vez que os dados do dispositivo são recebidos, os dados brutos recebidos ou os dados filtrados/analisados precisam ser enviados ao serviço Blockchain em execução na IBM Cloud. Os contratos inteligentes do Blockchain podem ser acionados usando a API de REST do HFC, a partir do fluxo de trabalho do Node-RED. O Node-RED também pode ser usado para agregar e/ou filtrar eventos do dispositivo e chamar os contratos inteligentes com os parâmetros necessários.

4. Desenvolva aplicativos cliente para usuários finais

A última etapa é tornar as saídas/eventos da transação disponíveis para os usuários finais. Um aplicativo cliente pode ser desenvolvido usando a API do blockchain (conforme mencionado na seção anterior) e outros serviços analíticos, que usam diversas linguagens/plataformas suportadas pela IBM Cloud.

Conclusão

Conforme mostrado, existe um enorme potencial para desenvolver aplicativos usando o blockchain em soluções de IoT, e essa combinação pode resolver alguns dos principais problemas que limitam a adoção de IoT, como segurança e escalabilidade. Um livro-razão distribuído com contratos inteligentes integrados pode melhorar a segurança e a confiança, além de automatizar processos completos compostos por diversos parceiros de negócios. O IBM Watson IoT Platform pode ser combinado com os serviços Blockchain baseados na IBM Cloud, para fornecer uma plataforma pronta para implementação para aplicativos de IoT baseados em blockchain (e baseados em padrões abertos).

Há, no entanto, alguns desafios que precisam ser superados. Um dos principais desafios dos aplicativos de IoT baseados em blockchain é o poder de computação limitado de muitos dispositivos de IoT. A criptografia e a verificação de transações de blockchain podem exigir um poder de processamento considerável, que pode não estar disponível em dispositivos de baixa tecnologia. E o uso de mais poder de processamento pode aumentar o consumo de energia e o custo da solução.

Na Parte 2 desse artigo, demonstraremos a integração do IBM Watson IoT Platform com os serviços do IBM Blockchain, para desenvolver um aplicativo que use dados (simulados) de veículos e de sensores V2V para executar transações inteligentes no IBM Blockchain.


Recursos para download


Temas relacionados


Comentários

Acesse ou registre-se para adicionar e acompanhar os comentários.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Cloud computing, Internet of Things
ArticleID=1057941
ArticleTitle=Implementando o blockchain para aplicativos cognitivos de IoT, Parte 1: Integre dados de dispositivo a contratos inteligentes no IBM Blockchain
publish-date=06012017