'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.
|