Prefacio
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Blockchain es actualmente la tecnología precursora en la configuración de la próxima generación de fintech al ofrecer un procesamiento de transacciones transparente y rápido, mayor disponibilidad de datos financieros, mejor seguridad y un enorme ahorro de costes en el sector financiero. Al introducir una autoridad descentralizada que hace obsoletos a los terceros y a los actores intermedios, blockchain ha iniciado un cambio de paradigma en la forma en que las instituciones financieras tradicionales y otras industrias dirigen sus operaciones comerciales.
Una encuesta reciente de Gartner mostró que más del 40% de las empresas tienen al menos un proyecto piloto de blockchain en marcha. Gartner también predice que el 30% de los proyectos globales de blockchain llegarán a la fase de producción. Del mismo modo, el mercado mundial de blockchain está creciendo, lo que se manifiesta en el gran número de empresas Forbes Global 2000 que experimentan actualmente con implantaciones de confianza digital.
Gartner ha pronosticado que el 90% de las Implementaciones de plataformas empresariales de blockchain requerirán una sustitución en un plazo de 18 meses a partir de 2021 para seguir siendo competitivas y seguras, y para evitar la obsolescencia. Gartner también predice que, para 2025, el valor empresarial generado por blockchain aumentará gradualmente hasta alcanzar los 176.000 millones de dólares, y luego se disparará hasta superar la marca de los 3,1 billones de dólares en 2030.
Debido a la popularidad de la cadena de bloques, la comunidad de desarrolladores ha aportado con pasión varias tecnologías de libro mayor distribuido (DLT) privadas y públicas para crear aplicaciones de cadena de bloques. Entre las DLT existentes, Hyperledger es una plataforma líder para crear aplicaciones empresariales de cadena de bloques autorizadas. Por su diseño, Hyperledger incorpora características, funcionalidades, herramientas y bibliotecas para crear, escalar y gestionar aplicaciones empresariales de cadena de bloques.
El objetivo de este libro es mostrarte cómo construir un sistema blockchain empresarial privado utilizando Hyperledger Fabric y cómo combinar varios componentes de Fabric para crear y mantener una aplicación blockchain robusta, segura y escalable.
Llevamos ofreciendo servicios de consultoría, desarrollo y formación en blockchain desde 2018 a través de nuestras empresas, Hashflow y Coding Bootcamps. En Hashflow, asesoramos a empresas de todos los tamaños sobre cómo aprovechar la tecnología blockchain y fintech para superar retos empresariales o ayudar a conseguir valores previsibles a través de visiones totalmente nuevas. También nos asociamos con empresas pioneras de sectores como el fintech, la sanidad, la música y la energía para crear productos de software como servicio (SaaS) utilizando la tecnología blockchain. Nuestro equipo está formado por profesionales líderes del sector que han aplicado el marco blockchain para lograr los beneficios deseados tanto en modelos empresariales clásicos como en empresas novedosas.
Además de Hashflow, creamos una empresa de formación para desarrollar la capacidad y las aptitudes de futuros empleados que quieran construir e implementar soluciones de cadena de bloques internamente. Con respecto a nuestras experiencias de formación (individual o empresarial), nos dimos cuenta de que la mayoría de los estudiantes principiantes carecen de habilidades previas (como Linux bash scripting, Docker o programación Go) que son esenciales para dominar Hyperledger Fabric. Por ello, en Coding Bootcamps, hemos adaptado nuestros programas de formación para satisfacer múltiples requisitos empresariales. Puedes empezar visitando las siguientes páginas del sitio web de nuestra empresa:
Nuestros cursos de blockchain se ofrecen tanto en inglés como en español. Además, para Hyperledger ofrecemos dos cursos: Administración del Sistema Fabric y Desarrollo Fabric. Mientras que el curso de administración del sistema prepara a los estudiantes para el examen de Administrador Certificado de Hyperledger Fabric (CHFA), el curso de desarrollo cubre los temas del examen de Desarrollador Certificado de Hyperledger Fabric (CHFD).
De todas las ofertas que hemos creado en los últimos años, la que más nos enorgullece es nuestro campamento de entrenamiento en Ingeniería de Blockchain. Proporciona más de 180 horas de instrucción en directo y grabada, con muchos laboratorios prácticos y un certificado de finalización al terminar los cuestionarios y el proyecto final. Ofrecemos nuestro bootcamp de blockchain varias veces al año, y lo actualizamos y mejoramos con cada cohorte. El programa online es el primero de su clase, en el sentido de que los mejores estudiantes de cada grupo también son remitidos para su contratación a nuestra red de empleadores.
Cómo crear aplicaciones empresariales de cadena de bloques con Hyperledger
Una industria tras otra están experimentando actualmente con blockchain. Los sectores más destacados que lideran actualmente los casos de uso de blockchain son el inmobiliario, la sanidad, la administración pública, la enseñanza superior, la logística, la aviación, las finanzas y la energía. Entre estos sectores, el financiero se ha mostrado más receptivo a adoptar diversos casos de uso de blockchain. Por ejemplo, según un informe del Banco de Pagos Internacionales (BPI), el 80% de los bancos centrales mundiales están investigando las ventajas e inconvenientes de la moneda digital.1
Basándonos en nuestras experiencias personales con clientes de fintech, incluidos bancos privados, muchas instituciones financieras y empresarios independientes están explorando la idea de bancos exclusivamente digitales. Al hacerlo, quieren utilizar la tecnología blockchain para ofrecer productos bancarios como moneda digital, monederos digitales, pagos entre iguales, préstamos y créditos, tokens de servicios públicos y tokens de seguridad. Del mismo modo, hemos experimentado una creciente demanda por parte de los bancos para que apliquen las directrices "Conoce a tu cliente" y contra el blanqueo de dinero en sus bancos digitales, en los que suelen utilizar DLT de Hyperledger como Fabric, Aries o Indy para gestionar las identidades de sus clientes.
Independientemente del caso de uso o del sector, invariablemente, todas las implantaciones de blockchain empresarial pasan por cuatro etapas: prueba de concepto (PoC), producto mínimo viable, producción que induce la integración y mantenimiento (que incluye el monitoreo del rendimiento y el escalado). Según nuestra experiencia personal con el desarrollo de cadenas de bloques empresariales, la mayoría de las grandes empresas se encuentran con dos problemas:
Falta de comunicación entre los apasionados equipos técnicos y la alta dirección, que sólo tiene conocimientos básicos de la tecnología blockchain
Falta de planificación adecuada para la integración con los sistemas actuales
Para remediar la primera cuestión, las empresas necesitan ofrecer formación de alto nivel a sus ejecutivos. Para la segunda cuestión, los desarrolladores necesitan tener acceso a soluciones como las arquitecturas sin servidor, que minimizan las interferencias con el funcionamiento actual del sistema.
Cuando construyas una aplicación privada de cadena de bloques empresarial con Hyperledger, puedes aprovechar varias DLT, herramientas y bibliotecas. Por ejemplo, la DLT Hyperledger Grid es muy adecuada para construir y gestionar aplicaciones empresariales de la cadena de suministro, como veremos en nuestro último capítulo. Aunque algunas herramientas y bibliotecas de Hyperledger aún están en fase de incubación (como veremos en el Capítulo 2), una vez que todos los miembros de la familia Hyperledger estén activos, proporcionarán colectivamente a los desarrolladores y a la administración de sistemas un conjunto completo de herramientas para construir y gestionar aplicaciones de blockchain de consorcio empresarial. Debido a su elevada adopción por parte de la industria, Hyperledger Fabric es la DLT líder dentro del ecosistema Hyperledger. Como tal, cubrimos los componentes de Hyperledger Fabric que son esenciales para todas las aplicaciones empresariales de blockchain.
Hablando desde nuestra experiencia personal, hemos visto una y otra vez que el éxito de la producción de una aplicación empresarial de cadena de bloques depende de varios factores, como la arquitectura escalable, la elección del proveedor de la nube, el monitoreo del rendimiento, la integración con los sistemas existentes, las auditorías de seguridad, la gestión del ciclo de vida de los contratos inteligentes, la gestión de los datos fuera de la cadena y la documentación. El conocimiento de los componentes chaincode o Fabric por sí mismo no es suficiente para implementar y escalar con éxito una aplicación blockchain. Por ejemplo, como tratamos en el Capítulo 8, elegir el proveedor de la nube adecuado requiere varias consideraciones, ya que cada proveedor ofrece numerosas funciones y servicios para construir una blockchain empresarial en su plataforma, así como diversas formas de integrar y actualizar tu aplicación con otros servicios ofrecidos por el mismo proveedor.
¿A quién va dirigido este libro?
Los temas tratados en este libro están orientados a principiantes que quieran crear aplicaciones empresariales de cadena de bloques privada con Hyperledger o presentarse al examen de Desarrollador Certificado de Hyperledger Fabric (CHFD). No obstante, a alto nivel, los profesionales de Hyperledger Fabric tienen dos grandes vías profesionales: Administración de sistemas Fabric y Desarrollo Fabric. Cada ruta profesional requiere diferentes conjuntos de habilidades y competencias, que pueden validarse realizando los exámenes de Administrador Certificado de Hyperledger Fabric (CHFA) o CHFD ofrecidos por la Fundación Linux.
Para convertirte en un desarrollador profesional de Fabric, debes saber cómo diseñar, desarrollar, probar, implementar e invocar contratos inteligentes de Fabric. En resumen, necesitas conocer muy bien los siete temas siguientes (que se tratan en este libro):
Definir funciones de transacción
Ejecutar consultas sencillas
Crear consultas complejas
Definir activos utilizando pares clave-valor
Identificar datos potencialmente privados
Incorporar la recogida de datos privados
Presentar, evaluar y consultar transacciones invocando contratos inteligentes
En pocas palabras, como desarrollador de Fabric, debes demostrar tu capacidad para empaquetar e implementar aplicaciones y contratos inteligentes de Fabric, llevar a cabo la gestión integral del ciclo de vida de las aplicaciones y los contratos inteligentes de Fabric, y programar en Java, JavaScript o Go.
Resumen de los capítulos
Los capítulos de este libro siguen una jerarquía descendente, desde la introducción a la tecnología blockchain hasta la implementación de contratos inteligentes. Esta sección ofrece una sinopsis de cada capítulo.
El Capítulo 1, Conceptos fundamentales de la cadena de bloques, te guía a través de los componentes esenciales de la cadena de bloques que son comunes en todas las plataformas de cadena de bloques. En particular, se explican de forma concisa conceptos como criptografía, consenso y contratos inteligentes.
El Capítulo 2, Visión general de los proyectos y herramientas Hyperledger, te da una visión general de alto nivel del ecosistema Hyperledger, incluyendo los componentes comunes entre todos los miembros de la familia Hyperledger. A continuación discute brevemente todas las DLT, herramientas y bibliotecas de Hyperledger.
El Capítulo 3, Arquitectura y componentes de Hyperledger Fabric, trata de la arquitectura de Hyperledger Fabric, así como de sus principales componentes, como el proveedor de servicios de membresía, las políticas, los pares, los ordenantes, los contratos inteligentes, la red Fabric, etc.
El Capítulo 4, Desarrollo de contratos inteligentes, te muestra cómo escribir tu primer contrato inteligente Fabric utilizando el lenguaje de programación JavaScript. Abarca temas prácticos como la definición de clases de contratos inteligentes, la instalación e instanciación de un contrato inteligente, la validación y limpieza de entradas y argumentos, la ejecución de consultas simples o complejas, el trabajo con datos privados, etc.
El Capítulo 5, Invocación de contratos inteligentes, te muestra cómo invocar contratos inteligentes a través de la interfaz de línea de comandos, enviar transacciones, consultar una transacción, etc. También aprenderás a crear y emitir un contrato de aplicación.
El Capítulo 6, Pruebas y mantenimiento, trata temas prácticos como la forma de gestionar errores y procesar respuestas. También te muestra cómo ejecutar pruebas unitarias en contratos inteligentes. Además, aprenderás a realizar tareas de mantenimiento de Fabric construyendo una aplicación web Fabcar UI que actúe como cliente de contratos inteligentes. Añadiendo funciones a la interfaz Fabcar UI, te guiaremos a través de pasos prácticos para probar y depurar un contrato inteligente Fabric.
El capítulo 7, Construir DApps de la cadena de suministro con Hyperledger Fabric, trata de una cadena de suministro farmacéutica de extremo a extremo construida con Fabric. Es un proyecto completo para poner en práctica los conocimientos obtenidos en los capítulos anteriores. Por el camino, aprenderás a diseñar una arquitectura para una cadena de suministro de cadena de bloques, escribir un contrato inteligente para el seguimiento de inventarios, compilar e implementar el contrato inteligente, y mucho más. Además, aprenderás a desarrollar una aplicación con Hyperledger Fabric a través del SDK.
El Capítulo 8, Implementación de Hyperledger Fabric en la Nube, te muestra cómo configurar e implementar Fabric en tres proveedores de nube populares: Amazon Web Services, IBM y Oracle. A través de proyectos prácticos de ejemplo, te guiaremos a través de la configuración de la red Fabric y la implementación de contratos inteligentes en cada plataforma en la nube, junto con la explicación de las principales consideraciones para el uso de cada plataforma.
El Capítulo 9, Integración de Hyperledger Fabric V2, cubre las nuevas características que ofrece Fabric v2, como los nuevos patrones de aplicación chaincode, un lanzador chaincode externo, imágenes Docker basadas en Alpine, y mucho más. También discutimos cómo actualizar el nivel de capacidad de un canal y actualizar los componentes de Fabric, así como las principales consideraciones para actualizar a Fabric v2.
El Capítulo 10, Visión general de otros proyectos Hyperledger, cubre otros cuatro miembros de la familia Hyperledger: Hyperledger Aries, Hyperledger Avalon, Hyperledger Besu e Hyperledger Grid. En concreto, mostramos cómo aprovechar el poder de Aries en la gestión de identidades y utilizar Avalon para mover de forma segura y procesar datos de la cadena de bloques fuera de la cadena. También mostramos cómo utilizar Besu para ejecutar aplicaciones de cadena de bloques públicas y privadas utilizando diferentes algoritmos de consenso. Por último, demostramos cómo utilizar Grid para construir y gestionar una cadena de suministro blockchain de extremo a extremo.
Convenciones utilizadas en este libro
En este libro se utilizan las siguientes convenciones tipográficas:
- Cursiva
- Indica nuevos términos, URL, direcciones de correo electrónico, nombres de archivo y extensiones de archivo.
Constant width
- Se utiliza en los listados de programas, así como dentro de los párrafos para referirse a elementos del programa como nombres de variables o funciones, bases de datos, tipos de datos, variables de entorno, sentencias y palabras clave.
Constant width bold
- Muestra comandos u otros textos que deben ser tecleados literalmente por el usuario.
Constant width italic
- Muestra el texto que debe sustituirse por valores proporcionados por el usuario o por valores determinados por el contexto.
Consejo
Este elemento significa un consejo o sugerencia.
Nota
Este elemento significa una nota general.
Advertencia
Este elemento indica una advertencia o precaución.
Utilizar ejemplos de código
El material complementario (ejemplos de código, ejercicios, etc.) se puede descargar en https://myhsts.org/hyperledger-fabric-book.
Si tienes una pregunta técnica o un problema al utilizar los ejemplos de código, envía un correo electrónico a bookquestions@oreilly.com.
Este libro está aquí para ayudarte a hacer tu trabajo. En general, si se ofrece código de ejemplo con este libro, puedes utilizarlo en tus programas y documentación. No es necesario que te pongas en contacto con nosotros para pedirnos permiso, a menos que estés reproduciendo una parte importante del código. Por ejemplo, escribir un programa que utilice varios trozos de código de este libro no requiere permiso. Vender o distribuir ejemplos de los libros de O'Reilly sí requiere permiso. Responder a una pregunta citando este libro y el código de ejemplo no requiere permiso. Incorporar una cantidad significativa de código de ejemplo de este libro en la documentación de tu producto sí requiere permiso.
Agradecemos, pero no exigimos, la atribución. Una atribución suele incluir el título, el autor, la editorial y el ISBN. Por ejemplo "Hands-On Smart Contract Development with Hyperledger Fabric V2 por Matt Zand, Xun Wu y Mark Anthony Morris (O'Reilly). Copyright 2021 WEG2G LLC, 978-1-492-08612-3".
Si crees que el uso que haces de los ejemplos de código no se ajusta al uso legítimo o al permiso concedido anteriormente, no dudes en ponerte en contacto con nosotros en permissions@oreilly.com.
Aprendizaje en línea O'Reilly
Nota
Durante más de 40 años, O'Reilly Media ha proporcionado formación, conocimientos y perspectivas sobre tecnología y negocios para ayudar a las empresas a alcanzar el éxito.
Nuestra red única de expertos e innovadores comparten sus conocimientos y experiencia a través de libros, artículos y nuestra plataforma de aprendizaje online. La plataforma de aprendizaje en línea de O'Reilly te ofrece acceso bajo demanda a cursos de formación en directo, rutas de aprendizaje en profundidad, entornos de codificación interactivos y una amplia colección de textos y vídeos de O'Reilly y de más de 200 editoriales. Para más información, visita http://oreilly.com.
Cómo contactar con nosotros
Dirige tus comentarios y preguntas sobre este libro a la editorial:
- O'Reilly Media, Inc.
- 1005 Gravenstein Highway Norte
- Sebastopol, CA 95472
- 800-998-9938 (en Estados Unidos o Canadá)
- 707-829-0515 (internacional o local)
- 707-829-0104 (fax)
Tenemos una página web para este libro, donde se enumeran erratas, ejemplos y cualquier información adicional. Puedes acceder a esta página en https://oreil.ly/smart-contract-development.
Envía un correo electrónico a bookquestions@oreilly.com para comentar o hacer preguntas técnicas sobre este libro.
Para obtener noticias e información sobre nuestros libros y cursos, visita http://oreilly.com.
Encuéntranos en Facebook: http://facebook.com/oreilly
Síguenos en Twitter: http://twitter.com/oreillymedia
Míranos en YouTube: http://youtube.com/oreillymedia
Agradecimientos
Hemos recibido mucho apoyo de muchas personas maravillosas a lo largo del proceso de escribir este libro. ¡Muchas gracias a todos los que nos han ayudado a hacerlo realidad! Nos gustaría dar las gracias especialmente a las siguientes personas.
Ha sido fantástico trabajar con todo el mundo en O'Reilly durante todo el ciclo de vida de este libro. A nuestros editores, Gary O'Brien, Michelle Smith y Chris Faucher, gracias por vuestro increíble apoyo, vuestro ánimo constante y vuestros atentos comentarios. Gracias también a Katie Tozer y Jonathan Hassell por su apoyo a lo largo del camino.
Gracias a Ashwani Kumar, Sergio Torres y Sushma Varadaiah, que revisaron todo el libro y aportaron muchas sugerencias útiles y comentarios perspicaces. Vuestras revisiones han hecho del borrador final un libro mejor. Gracias por vuestras horas revisando el libro con tanto detalle.
Gracias a Angelo De Caro y Sergio Torres por contribuir a los Capítulos 2 y 3.
Agradecemos a Vivek Acharya, del equipo de Oracle, su contribución a los detalles del capítulo 8sobre el desarrollo de Hyperledger Fabric en la plataforma en nube de Oracle. Del mismo modo, debemos una profunda gratitud a Shikha Maheshwari, del equipo de IBM, por contribuir a la información de ese capítulo sobre el desarrollo de Hyperledger Fabric en la plataforma en la nube de IBM.
Gracias a Jason Jaan por continuar con nuestra buena suerte de colaborar con emprendedores con visión de futuro y empresas progresistas para trabajar en una serie de proyectos de blockchain verdaderamente emocionantes e impulsados por el valor en todo el mundo.
Gracias a los demás colaboradores que ayudaron en diversas etapas: Abhik Banerjee, Robin Pilling, Mohammed Nihal Ansari y Jim Sullivan.
Esta publicación no habría sido posible sin mis coautores, Brian (Xun) Wu y Mark Anthony Morris. Gracias por vuestra amistad, vuestros ánimos y vuestra infinita paciencia. Estoy muy contenta de que hayamos logrado esta publicación juntos.
Brian (Xun) Wu
Me gustaría dar las gracias a mi familia y amigos por su paciencia y apoyo a lo largo de este esfuerzo.
Gracias al talentoso equipo de O'Reilly, que nos proporcionó orientación rápida y valiosos comentarios a lo largo de este proyecto.
Marco Antonio Morris
Dedicado a mi querida madre, Grace Morris: mi inspiración, mi propósito y mi fuerza para esforzarme y no rendirme nunca. Gracias, mamá. Te quiero.
1 Codruta Jabalí, Henry Holden y Amber Wadsworth. 2020. "La llegada inminente: una secuela de la encuesta sobre la moneda digital de los bancos centrales". BIS Papers, nº 107, junio de 2020. https://www.bis.org/publ/bppdf/bispap107.pdf.
Get Desarrollo práctico de contratos inteligentes con Hyperledger Fabric V2 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.