Omitir navegación

Introducción a Azure Blockchain Development Kit

Publicado el 15 noviembre, 2018

Principal Program Manager, Blockchain Engineering

“¡Desarrolladores!, ¡desarrolladores!, ¡desarrolladores!”. Esta frase es sinónimo de la trayectoria de Microsoft para democratizar tecnologías complejas y poner en manos de todo aquel que tuviera una idea la capacidad de crear software.

A lo largo de cuatro décadas, hemos ido reduciendo las barreras del desarrollo con herramientas, integración empresarial, DevOps, PaaS y SaaS. Hoy día, las ofertas de informática sin servidor, desde Functions y Logic Apps hasta IoT Central y Azure DevOps, facilitan el desarrollo en la nube.

Esta mañana, nos complace poder anunciar la primera versión de Azure Blockchain Development Kit, que se basa en las tecnologías sin servidor de Microsoft e integra perfectamente la cadena de bloques con lo mejor del SaaS de Microsoft y de terceros.

Este kit amplía el potencial de nuestras plantillas de desarrollo de cadena de bloques y Azure Blockchain Workbench, que incorpora servicios de Azure para la administración de claves, identidad y datos fuera de la cadena, supervisión y API de mensajería en un arquitectura de referencia que puede usarse para crear con rapidez aplicaciones basadas en la cadena de bloques.

Para muchas organizaciones, estas herramientas se han convertido en el primer paso de su trayectoria para reinventar la forma en la que hacen negocios. Se han creado aplicaciones para todo, desde la democratización de la financiación de una cadena de suministros en Nigeria hasta la protección del suministro de alimentos en el Reino Unido, pero, a medida que emergen nuevos patrones en los casos de uso, nuestros equipos identifican nuevas formas en las que Microsoft puede ayudar a los desarrolladores a avanzar más en menos tiempo.

Esta primera versión da prioridad a las características relacionadas con tres aspectos fundamentales: la conexión de interfaces, la integración de datos y sistemas, y la implementación de contratos inteligentes y redes de cadenas de bloques.

Conectar

Para poder suministrar soluciones integrales de cadena de bloques a consorcios, los desarrolladores deben habilitar la conexión de las organizaciones, las personas y los dispositivos con la cadena de bloques desde un conjunto heterogéneo de interfaces de usuario.

Tomemos como ejemplo una cadena de suministro completa de un producto como el cacao.

  • Las interfaces SMS y de voz permiten a los pequeños agricultores de África tramitar y hacer un seguimiento de sus productos en el primer kilómetro de la cadena de suministro.
  • Los dispositivos IoT (Internet de las cosas) entregan los datos de los sensores para mantener un seguimiento del estado de los productos en diferentes puntos del recorrido hasta el mercado. Controlan desde la humedad de los contenedores donde se almacenan las semillas hasta la temperatura del producto final (helado) al que se incorporan.
  • Los clientes móviles permiten a los proveedores de logística aceptar y transferir la responsabilidad de los productos en su recorrido desde el fabricante hasta el minorista, usando la capacidad de proceso que sus empleados ya tienen en los bolsillos. Los dispositivos móviles también tienen sensores, como el GPS y las cámaras, que pueden agregar más datos que ayuden a acreditar el qué, el dónde y el cuándo de las entregas.
  • Los sistemas y datos de back-end en forma de sistemas ERP, como Dynamics y SAP, se utilizan para administrar los procesos principales de los diferentes participantes. Estos sistemas se convierten también en clientes mediante extensiones y tienen que interactuar con contratos inteligentes para proporcionar y recibir datos que se puedan acreditar en nombre de una organización.
  • Los bots y asistentes permiten a los fabricantes y minoristas interactuar con la cadena de suministro. Esto incluye interactuar con contratos inteligentes para la realización de pedidos y controlar la procedencia usando lenguaje natural, así como el uso de datos de la cadena de bloques que se pueden acreditar para dirigir las acciones que se realizan en nombre de un usuario.
  • Los clientes web permiten a los consumidores consultar el origen del producto que han adquirido a un minorista, que suele ser una mezcla de la procedencia y del recorrido que ha seguido el producto “desde el agricultor hasta el consumidor”.

Azure Blockchain Development Kit incluye ejemplos de todos estos escenarios; por ejemplo, SMS de entrada y de salida, IVR, IoT Hub y IoT Central, cliente móvil de Xamarin para iOS y Android, integración de Dynamics mediante Common Data Service (CDS), bots y asistentes (Cortana, Alexa, Google Assistant) y WebUX.

Integración

Las empresas están utilizando la cadena de bloques y contratos inteligentes para facilitar los procesos que implican a varias partes. La cadena de bloques ofrece también transparencia en tiempo real del estado y los eventos de esos contratos a los participantes correspondientes.

Una solución de cadena de bloques completa requiere la integración de datos, software y contenido multimedia que se encuentran “fuera de la cadena”. Actualizaciones y eventos externos pueden desencadenar acciones en los contratos inteligentes. Después, los eventos y cambios de estado de los contratos inteligentes pueden desencadenar acciones y actualizaciones en sistemas y datos que están “fuera de la cadena”. Estos sistemas e inteligencia artificial externos deben poder consultar también datos acreditables de los contratos inteligentes para actuar en consecuencia.

En concreto, hay dos áreas de integración donde es más necesario disponer de asesoramiento:

Documentos y contenido multimedia: los documentos y el contenido multimedia no pertenecen a la cadena, pero a menudo los procesos empresariales incluyen imágenes, vídeos, audio, documentos de Office, archivos CAD para impresoras 3D u otros tipos de archivos.

El patrón habitual es generar un código hash único del contenido multimedia y los metadatos que lo describen. Esos códigos hash se ponen en una cadena pública o privada. Si en algún momento se cuestiona la autenticidad de un archivo, se puede volver a generar un código hash más adelante para los archivos que están “fuera de la cadena” y compararlo con el código hash almacenado “dentro de la cadena de bloques”. Si los códigos hash coinciden, el documento es auténtico, pero si tan solo un píxel de una imagen o una letra en un documento cambian, los códigos hash no coincidirán y será obvio que ha habido manipulación.

Hoy lanzamos un conjunto de aplicaciones lógicas que permiten generar códigos hash para archivos y los metadatos relacionados. También se incluyen contratos inteligentes para archivos y un registro de archivos para almacenar los códigos hash en la cadena.

Se han creado aplicaciones lógicas con el fin de ofrecer esta funcionalidad para archivos agregados a los orígenes más populares de documentos y contenido multimedia, incluidos Azure Storage, OneDrive, One Drive para la Empresa, SharePoint, Box, Adobe Creative Cloud y FTP.

Documentos y contenido multimedia

Interacción mediante contratos inteligentes: trasladar la cadena de bloques de la pizarra al entorno de producción implica tener en cuenta el modo en el que interactúan las partes. La realidad es que esa integración empresarial es compleja.

Microsoft aporta sus décadas de experiencia en este campo a la cadena de bloques. Nuestra labor como integradores de sistemas empresariales comenzó hace casi dos décadas con la introducción de BizTalk Server y nuestra dedicación a la integración de bases de datos se remonta a nuestra colaboración en el desarrollo de Open Database Connectivity (ODBC) en los años 90. Hemos recopilado toda nuestra experiencia y la hemos puesto a disposición de los clientes en los servicios de Azure. Esto incluye más de 200 conectores disponibles en Logic Apps y Flow, y características muy sólidas en nuestra plataforma de datos.

Interacción mediante contratos inteligentes

Blockchain Application Development Kit incluye ejemplos de integración de Workbench en las siguientes áreas:

Conectores de Logic Apps para Blockchain

Hoy queremos anunciar también el próximo lanzamiento de un conjunto de conectores de Logic Apps y Flow que amplían estos ejemplos a libros de contabilidad como Ethereum, Corda, Bitcoin, etc.

"En R3, tenemos el compromiso de asegurar a los desarrolladores que pueden implementar CorDapps de un modo sencillo, rápido y seguro. Azure Blockchain Development Kit proporcionará a nuestros clientes empresariales las herramientas necesarias para la integración con las aplicaciones, el software y los dispositivos que la gente utiliza a diario, como Outlook, Alexa, SMS y WebUX. Blockchain está saliendo de los laboratorios y se está incorporando a las aplicaciones empresariales que usamos a diario”.

– Mike Ward, jefe de Administración de productos, R3

El conector de cadena de bloques Ethereum está disponible actualmente y permite a los usuarios implementar contratos, llamar a acciones contractuales, leer el estado de los contratos y desencadenar otras aplicaciones lógicas basadas en eventos del libro de contabilidad.

Logic Apps

Implementar

Con la incorporación de la tecnología de cadena de bloques al desarrollo de software empresarial, las organizaciones están pidiendo asesoramiento sobre cómo ofrecer DevOps para contratos inteligentes y proyectos de cadena de bloques.

Estas son algunas de las preguntas más habituales:

  • Mi lógica de negocios y el esquema de datos para esa lógica están reflejados en contratos inteligentes. Los contratos inteligentes están escritos en lenguajes que conozco menos, como Solidity para Ethereum, Kotlin para Corda y Go para Hyperledger Fabric.  ¿Qué herramientas de desarrollo puedo usar?
  • ¿Cómo puedo unir las pruebas y la depuración en contratos inteligentes?
  • Muchos escenarios de cadena de bloques reflejan transacciones y flujos de trabajo empresariales en los que intervienen varias partes. Estos flujos de trabajo incluyen transacciones firmadas de varias partes que tienen lugar en secuencias específicas. ¿Qué datos debería usar para entornos de prueba en ese contexto?
  • Los contratos inteligentes se implementan en la cadena de bloques, que es inmutable. ¿Qué debería considerar en cuanto a infraestructura como código, desarrollo y pruebas en modo local, actualización de contratos, etc.?
  • La cadena de bloques es una tecnología de datos compartida entre varias organizaciones que forman un consorcio, ¿qué impacto tiene en el control del código fuente y las canalizaciones de compilación y versión en un entorno global con varias partes implicadas?

Aunque hay ciertos matices en el enfoque, la buena noticia es que, al igual que otros tipos de desarrollo de aplicaciones, este modelo se puede abordar fácilmente en un modelo DevOps.

Modelo DevOps

Hoy anunciamos la publicación del documento “DevOps for Blockchain Smart Contracts” (DevOps para contratos inteligentes de la cadena de bloques).

“Estamos encantados de trabajar con Microsoft para crear una experiencia de DevOps canónica para los ingenieros de cadena de bloques. Nuestro documento “DevOps for Blockchain Smart Contracts” es riguroso en el detalle y proporciona ejemplos de cómo desarrollar aplicaciones de cadena de bloques con miras a CI/CD en entornos de consorcio”.

- Tim Coulter, fundador de Truffle

El documento se complementa con una guía de implementación, disponible en Azure Blockchain Development Kit, que muestra cómo implementar CI/CD para contratos inteligentes e infraestructura como código usando Visual Studio Code, GitHub, Azure DevOps y OSS desde Truffle.

Una gran plataforma para el desarrollo de aplicaciones de cadena de bloques

Azure Blockchain Development Kit es el siguiente paso en nuestra labor de convertir el desarrollo de aplicaciones de cadena de bloques completas en algo accesible, rápido y asequible para todo aquel que tenga una idea. Se basa en nuestra inversión en la cadena de bloques y se conecta a los servicios de proceso, datos, mensajería e integración que están disponibles tanto en Azure como en la plataforma más amplia Microsoft Cloud, con el fin de proporcionar a los desarrolladores una paleta sólida con la que hacer realidad sus ideas.

Logic Apps y Flow ofrecen un entorno de diseño gráfico con más de 200 conectores que simplifican enormemente el desarrollo de soluciones de cadena de bloques integrales, y Azure Functions hace posible la integración rápida de código personalizado.

Un método sin servidor reduce también los costos de recursos y de administración. Sin máquinas virtuales para administrar, con escalabilidad integrada y un modelo de precios asequible, Azure Blockchain Development Kit está al alcance de cualquier desarrollador, desde los más entusiastas hasta los fabricantes de software independientes y las empresas.

Las soluciones se escriben usando diseñadores de flujos de trabajo visuales en línea y Visual Studio Code, una descarga gratuita que proporciona un entorno de desarrollo integrado en Windows, Mac y Linux.

Las aplicaciones resultantes se ejecutan en una red que cuenta con una valoración en cuanto a rendimiento en la nube superior a la de otros proveedores a gran escala y permiten federar identidades entre los participantes usando Azure Active Directory. Con Azure, esas aplicaciones se pueden implementar en más regiones que con cualquier otro proveedor de servicios en la nube y se benefician de más certificaciones.

Estamos deseando ver lo que va a crear y seguiremos escuchando y buscando formas de ayudar a medida que creemos un futuro descentralizado juntos.

Si desea obtener más información sobre cómo utilizar estos ejemplos para crear y ampliar aplicaciones de cadena de bloques, encontrará numerosos vídeos en nuestro programa Block Talk de Channel 9.

También puede seguirnos en Twitter (@MSFTBlockchain) para mantenerse informado de las últimas novedades sobre Azure Blockchain.