martes, 28 de enero de 2020

La Biblia de Ethereum con Andreas Antonopoulos y Gavin Wood

'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ón 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 librerí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.

Andreas M. Antonopoulos

(Fuente: Wikipedia)

Andreas M. Antonopoulos
Andreas M. Antonopoulos (nacido en 1972) es un defensor del bitcoin griego-británico.​Es presentador en el podcast "Let's Talk Bitcoin"​y profesor en el programa de maestría de Moneda digital de la Universidad de Nicosia.

Antonopoulos obtuvo el grado en Ciencias de la Computación, Comunicación de Datos y Computación Distribuida de la University College de Londres. Dio servicios de consultoría a diversas empresas en torno a temas de código abierto y redes abiertas en 1990.

Es autor de más de doscientos artículos publicados en forma impresa y distribuidos en todo el mundo.

Como socio de Nemertes Research, Antonopoulos investigó la seguridad informática, afirmando que la mayor amenaza para la seguridad informática no eran los hackers experimentados, sino los sistemas demasiado complejos que resultaban de un cambio rápido en los negocios.

En 2012 Antonopoulos se enamoró de bitcoin. Eventualmente abandonó su trabajo como consultor independiente y comenzó a hablar en conferencias sobre bitcoins, empezó a realizar consultoría en torno a Bitcoin para nuevas empresas, así como a escribir artículos en torno a bitcoin sin remuneración económica.

De acuerdo a su podcast, Antonopoulos es consultor en varias startups relacionadas con bitcoin. Se desempeñó como jefe del comité contra la pobreza de la Fundación Bitcoin hasta 2014, cuando renunció citando la falta de transparencia de la fundación como razón de su renuncia.

En marzo de 2016, Antonopoulos lanzó la primera edición del libro Mastering Bitcoin, en versión impresa y en línea.

Puedes saber más del autor visitando su perfil en LinkedIn o seguirle en Twitter donde se identifica como @aantonop

Gavin Wood

(Fuente: Traducción y ligera elaboración propia de Wikipedia)

Gavin Wood
Gavin Jame Wood nació en Abril de 1980 y es un programador británico que es co-fundador y antiguo CTO de Ethereum.

En Agosto de 2014 propuso Solidity, un lenguaje de programación orientado a contratos para escribir 'smart contracts'. Es el fundador y antiguo CTO y presidente de Parity Technologies que liberó la Parity Bitcoin technology stack. También fue el autor del artículo Polkadot.

Cursó sus primeros estudios en la Lancaster Royal Grammar School, se graduó en la Universidad de York con un Máster en Ingeniería de Sistemas de Computadora e Ingeniería de Software en 2002 y completó su doctorado en Ciencia de los Computadores en la Universidad de York en 2005 con una tesis titulada "Content-based visualisation to aid common navigation of musical audio". La tesis condujo directamente a Moonbar, un visualizador estático de música usado en varias importantes aplicaciones de música del escritorio Linux.

Puedes saber más sobre él visitando su página oficial o siguiéndole en Twitter donde se identifica como @gavofyork)

Ficha técnica:

EDITORIAL: O'Reilly
AÑO: 2018 
ISBN: 978-1491971949
PAGINAS: 385

Artículos de este blog relacionados

No hay comentarios:

Publicar un comentario