MASTERING ETHEREUM
FICHA
Foto Título:            MASTERING ETHEREUM. BUILDING SMART CONTRACTS AND DAPPS
Autor:            Andreas M. Antonopoulos y Gavin Wood
Editorial:       O'Reilly
Idioma:         Inglés
Páginas:        385
Publicación:  2018
Lectura:         2019
COMENTARIO EDITORIAL
(Fuente: Traducción y ligera elaboración propia de la descripción en Amazon)

Ethereum representa la puerta de entrada a un paradigma de computación descentralizado a nivel mundial. Esta plataforma te permite ejecutar aplicaciones descentralizadas (DApps) y contratos inteligentes que no tienen puntos centrales de fallo o de control, integrarte con redes de pago y operar en una cadena de bloques abierta.

Con esta guía práctica, Andreas M. Antonopoulos y Gavin Wood proporcionan todo lo que necesitas saber sobre construir contratos inteligentes y DApps en Ethereum y otras máquinas virtuales de cadena de bloques.

Descubre por qué IBM, Microsoft, NASDAQ y cientos de otras organizaciones están experimentando con Ethereum.

Esta guía esencial te muestra cómo desarrollar las habilidades necesarias para ser un innovador en esta creciente y excitante nueva industria.
  • Ejecuta un cliente Ethereum, crea y trasmite transacciones básicas y programa contratos inteligentes.
  • Aprende los fundamentos de la criptografía de clave pública, hashes y firmas digitales.
  • Comprende cómo los wallets mantienen las claves digitales que controlan fondos y contratos inteligentes.
  • Interactua programáticamente con clientes Ethereum usando librerías JavaScript e interfaces Remote Procedure Call
  • Aprende las mejores practicas de seguridad, patrones de diseño y anti-patrones con ejemplos de la vida real
  • Crea tokens que representan activos, acciones, votos o derechos de acceso.
  • Construye aplicaciones descentralizadas con múltipes componentes Peer-to-peer (P2P)

COMENTARIO PERSONAL

'Mastering Ethereum' se puede considerar en el momento en que escribo esto (Diciembre de 2019) como 'la Biblia' de Ethereum, no sólo por lo que el libro aporta en sí mismo, que es mucho, sino también por la autoridad de los dos autores.

Se trata de un libro que, aunque muy ordenado y muy bien explicado, presupone, en el fondo, unos conocimientos teóricos y prácticos bastante sólidos sobre tecnología software.

El libro, tras incluir un glosario inicial de términos, se estructura en catorce capítulos:
  • '1. What is Ethereum?: ' Define lo que es Ethereum, lo compara con Bitcoin, hace una breve singladura histórica y luego explica algunos conceptos relevantes como 'Turing completeness' o las aplicaciones descentralizadas (DApps).

  • '2. Ethereum Basics: ' Explica la 'moneda' de Ethereum, el ether y el wei, proporciona algunos criterios sencillos para elegir un wallet y, usando MetaTask, desarrolla un ejemplo sencillo que incluye cosas como la creación de un Wallet o el envío de divisas (ether). También explica la división entre las EOA ('Externally Owned Accounts) y los Contratos y muestra un ejemplo sencillo de creación de un contrato e interacción con él.

  • '3. Ethereum Clients: ' Comienza definiendo lo que es un cliente Ethereum, luego explica algunos aspectos del funcionamiento de las redes P2P blockchain y las opciones para elegir una red u otra (incluyendo las de prueba). También ejemplifica el uso de Clientes con el caso concreto de Geth (Go-Ethereum).

  • '4. Chriptography: ' Un capítulo importante y complejo en que se explican conceptos de criptografía desde su base, antes incluso de blockchain y Ethereum. Se nos cuenta qué son las claves y qué una dirección Ethereum, se explican con brillantez los sistemas de PKI, el cálculo de los hashes, y aspectos de protocolo y codificación.

  • '5. Wallets: ' Explica el concpeto de wallet, los tipos deterministas y no deterministas y algunas buenas prácticas.

  • '6. Transactions: ' Se explica lo que es una transacción y su estructura, poniendo especial cuidado en dejar claro lo que es el Nonce. Luego explica el concepto, funcionamiento y motivaciones del 'gas' que se consume en las transacciones. También se desarrollan otras ideas importantes como la transacción especial para crear contratos, la firma digital o la propagación de transacciones

  • '7. Smart Contracts and Solidity: ' Se explica lo que es un smart contract y su ciclo de vida. Luego se hace una introducción a los lenguajes de alto nivel para la definición de smart contracts en Ethereum. A continuación se concentra en el lenguaje Solidity, del cual es creador Gavin Wood, uno de los autores del libro, y con base en ese lenguaje se desarrolla un ejemplo bastante completo de creación y uso de un smart contract.

  • '8. Smart Contracts and Vyper: ' Un capítulo corto en que se usa otro lenguaje de alto nivel diferente: Vyper.

  • '9. Smart Contracts Security: ' Un capítulo largo y complejo pero muy interesante en que, aparte de proporcionar algunas buenas prácticas, se estudia, con base en casos reales, patrones y anti-patrones de uso de smart contracts en relación con la seguridad.

  • '10. Tokens: ' Se explica el importante, pero al tiempo algo etéreo concepto de token, los tipos habituales y cómo se usan. También se comentan con cierto detalle los estándares existentes en relación con los tokens y criterios sobre por qué y cuándo usarlos.

  • '11. Oracles: ' Se explica qué son los oráculos (Oracles) y por qué se necesitan y se comentan también algunos patrones de diseño y aspectos específicos como la autenticació de datos, los oracles de sólo computación y los oracles descentralizados.

  • '12. Decentralized Applications (DApps): ' Explica el concepto de las aplicaciones descentralizadas, cómo éstas van mucho más allá que los contratos inteligentes (que sólo descentralizan la lógica de control y funciones de pago) y ejemplifica los conceptos desarrollando un ejemplo de DApp.

  • '13. The Ethereum Virtual Machine: ' Un capítulo bastante tecnológico en que se explica el concepto de máquina virtual para luego contar diferentes aspectos de la máquina virtual Etehreum, como su juego de instrucciones o la gestión del estado. También en este caso dedica amplio espacio a ejemplificar los conceptos con un ejemplo concreto con un contrato inteligente.

  • '14. Consensus: 'Explica el concepto de consenso, por qué es necesario y los dos grandes tipos de algoritmos de consenso: Proof of Work (PoW) y Proof of Stake () y se explica que de cara al futuro, Ethereum apuesta por PoS pero que actualmente usa PoW y, en concreto, el algoritmo Casper del cual se explica alguna idea adicional.
Antes de finalizar, el libro ofrece hasta seis anexos con la historia de los 'forks'(ramificaciones), estándares, uso de gas estimado en cada una de las operaciones de la máquina virtual, herramientas, un tutorial de la liibrería web3.js y, finalmente, un listado de enlaces.

'Mastering Ethereum' es un magnífico libro, basado en un enorme conocimiento teórico y práctico, muy cuidadoso y riguroso en las definiciones y conceptos, muy bien estructurado, bien explicado (aunque, personalmente, echo de menos más gráficos que simplifiquen la comprensión) y con abundantes ejemplos de código y herramientas. Eso si, a pesar de todos esos méritos, no es un libro sencillo de leer, salvo para desarrolladores especializados, pero no creo que sea culpa de los autores sino de que las ideas que cuenta son, en sí mismas, complicadas. Hacer el libro más sencillo, creo, sería con el coste de explicar menos y con menos rigor.

En resumen, un libro excelente, pero para especialistas o para valientes.