Blockchain - [De Cero A Héroe] 2

Iniciado por Andrey, Febrero 27, 2018, 12:20:57 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.


Ethereum y programación de contrato inteligente

Después de entender la dinámica de Bitcoin, intentemos profundizar en Ethereum.
Ahora comprende cómo blockchain puede ser tolerante a fallas distribuido dentro de una red. Pero la red de pagos solo es una aplicación que se puede ejecutar encima de una cadena de bloques. El creador de Ethereum se preguntó ¿y si usaras una cadena de bloques para implementar una computadora descentralizada?

En Ethereum se les paga a los que ejecutan sus programas en esta máquina virtual distribuida. Esto significa que puede realizan cálculos arbitrarios, utilizando un lenguaje de programación Turing-completo (a diferencia del script de Bitcoin). Evidentemente esto incluye aplicaciones relacionadas con pagos, por lo que Ethereum habilita un súper conjunto de la funcionalidad de Bitcoin y ha dado lugar a un renacimiento de la innovación. Esto nos lleva a contratos inteligentes: el nombre de los programas que se ejecutan en dicha máquina virtual. Un contrato inteligente puede interactuar directamente con las criptomonedas de la cadena de bloques de acuerdo con la ejecución de un programa. En otras palabras, puede crear contratos financieros que se apliquen automáticamente. Es una idea disparatada, y todo tipo de material futurista de ciencia ficción que puedes hacer una vez que aceptes este modelo de programación.

Ethereum ha permitido que la ola de ICO y desarrolladores se construya sobre la cadena de bloques. Es la segunda criptomoneda más grande detrás de Bitcoin, tiene más de 10 veces los desarrolladores de la siguiente plataforma más popular, tiene el equipo de desarrolladores más sólidos, las herramientas más maduras y la mayoría de las ICO y proyectos encima. También cuenta con el mayor respaldo de la industria. Con toda probabilidad, si estás desarrollando blockchain, debes escribir código para contratos inteligentes de Ethereum. (Incluso si no lo eres, es esencial para entender lo que está sucediendo en este espacio).

A continuación una explicación más detallada de alto nivel sobre Ethereum:


Las ideas detrás de Ethereum también han generado una ola de innovación en criptoeconomía.
Al igual que con cualquier tecnología, la mejor forma de familiarizarse con Ethereum es mediante la construcción de algunos proyectos pequeños.

El lenguaje de programación dominante para Ethereum es Solidity, que es un lenguaje de tipo Javascript estáticamente tipado. Es un lenguaje con muchas opciones de diseño cuestionables. Los lenguajes más robustos como Viper pueden reemplazarlo una vez que estén listos para producción, pero por ahora Solidity es la lengua franca de la programación de contrato inteligente. Básicamente es el JavaScript de Ethereum, por lo que tendrás que aprenderlo (y sus peligros).

Para obtener su primera exposición al desarrollo de solidez, recomiendo trabajar a través de todo el tutorial de CryptoZombies. Es un tutorial encantador y de alta calidad de Codecademy que te enseñará los conceptos básicos de la programación de Solidity.
(No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)


Ahora que ha entrado a este mundo, es hora de desarrollarse por su cuenta.

El " Hola mundo" de Ethereum está construyendo un token que cumple con ERC-20. Es recomendable esta guía como primer tutorial para guiarlo en el proceso.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Remix es un compilador de solvencia en el navegador; básicamente, es la rueda de entrenamiento del desarrollo de Ethereum, por lo que es recomendable trabajar el resto de su práctica en Remix.
(No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)

Es recomendable construir un sistema de votación. Karl Floersch tiene un gran tutorial en el que describe cómo construir un sistema seguro de votación de compromiso y revelación.
(No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)


Seguridad de contrato inteligente

La seguridad es absolutamente esencial para el desarrollo de Blockchain. Los contratos inteligentes han estado plagados de hacks desastrosos, que incluyen el hack de DAO, el hack de Parity Wallet y el cariñosamente llamado Parity Wallet hack 2. Debes leer los análisis de estos tres hacks si vas a escribir contratos inteligentes de producción.

La verdad es que los contratos inteligentes son extremadamente difíciles de hacer bien. Aunque la cadena de herramientas de programación mejorará para hacer estos ataques exactos más difíciles, en última instancia, todo se debió a un error del programador. También hay muchos errores más sutiles que surgen de la programación de contratos inteligentes, como en la ejecución fronteriza o generación segura de aleatoriedad.

Como desarrollador de contrato inteligente, debe tratar la seguridad como primordial. No hay que "moverse rápido y romper cosas" en la programación de contratos inteligentes. Esto significa que cualquier código que maneje flujos significativos de dinero se debe ejecutar a través de analizadores estáticos como Oyente o Securify, debe probarse exhaustivamente y luego debe ser auditado por un auditor de contrato inteligente con experiencia. También debe intentar confiar en los componentes auditados previamente, como los contratos de código abierto de OpenZeppelin.

(No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)
(No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)
(No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)

Para fortalecer las habilidades de seguridad, se recomienda trabajar a través de The Ethernaut con OpenZeppelin, un juego donde puedes encontrar y atacar vulnerabilidades en contratos inteligentes. Muchos de ellos tienen que replicar ataques reales contra contratos inteligentes que han ocurrido.
(No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)

Phil Daian también tiene un excelente conjunto de desafíos de piratería de contratos inteligentes llamado Hack This Contract.
(No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)

Una vez que superados, es recomendable leer la totalidad de las mejores prácticas de contratos inteligentes, compiladas por ConsenSys. Espere volver a visitar este documento muchas veces en su carrera de programación de contrato inteligente. La bibliografía también vale la pena explorar para una lectura adicional por expertos en seguridad.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Dejando el entrenamiento.

Ahora deberías estar listo para comenzar a usar una pila de desarrollo de solidez seria.

La mayoría de los desarrolladores recomiendan VSCode o Atom para su editor de texto, ya que tienen plugins decentes de solidez. Para interactuar con un blockchain local, querrás usar Ganache (anteriormente TestRPC), y querrás usar el framework Truffle para tus pruebas (basadas en JS) y configurar tu pipeline de compilación.
(No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)
(No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)

Ahora es un buen momento para analizar IPFS, que puede usar como una tienda de archivos completamente descentralizada a un costo mucho más económico que la cadena de bloques de
(No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)

Ethereum. Aquí hay una breve explicación del creador, Juan Benet:

Para interactuar con los nodos completos de Ethereum y IPFS (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta), Infura (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) es lo que recomiendan la mayoría de los desarrolladores. Las gasolineras Etherscan y ETH proporcionan estadísticas útiles en tiempo real en la red Ethereum.
(No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)
(No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)

Una vez que haya configurado su pila completa de Web3 (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta), intente implementar un Dapp de extremo a extremo (aplicación descentralizada). Este tutorial (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) proporciona una buena visión general de pila completa usando Node y Postgres para el back-end.


Construyendo tus propios proyectos
Ahora puede comenzar a construir cosas y profundizar en la comunidad de Blockchain.

Primero, comienza a construir tus propios proyectos. Si hay alguna gran idea que te entusiasme, intenta llevarla a cabo. Si todavía no tiene una idea o no se siente cómodo entrando de lleno, hay muchos proyectos de código abierto de alta calidad que aceptan contribuciones. OpenZeppelin podría ser un buen lugar para comenzar contratos inteligentes.
(No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)

Es recomendable empezar por encontrar un proyecto activamente desarrollado del que sea fanático. Ponte en Slack o Rocketchat: los desarrolladores suelen ser fácilmente accesibles. Intenta unírteles para contribuir e intenta algunas tareas pequeñas (o encuentre problemas no resueltos en Github).

Tenga en cuenta que, si bien este texto se ha centrado en los protocolos y el desarrollo de contratos inteligentes, las empresas de Blockchain necesitan desarrolladores web para construir su funcionalidad principal. Estos roles a menudo requerirán interactuar con blockchains, por lo que es esencial tener un buen modelo mental de cómo funcionan las cadenas de bloques, pero para muchos ingenieros en las startups de Blockchain, la mayor parte de su trabajo será construir un servidor web Python o diseñar un frontend React. Interactuar con el Blockchain puede ser una pequeña parte de ese trabajo. No tiene que especializarse en el desarrollo de contratos inteligentes, en realidad, eso es solo una parte de una pila de bloques de trabajo.

Más allá de las contribuciones de código abierto, también hay muchos hackathons Blockchain (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) constantemente apareciendo. La mayoría de los proyectos tienen un Slack público gratuito al que puedes unirte, y hay un canal Gitter (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) muy activo para el mismo Ethereum donde muchos desarrolladores se juntan. A medida que se adentre, eventualmente encontrará un grupo de su agrado, ya sea en un canal Slack, grupo Telegram o canal Gitter. Donde sea que esté, encuentre a su gente y continúe aprendiendo.

Comunidad Blockchain
La mejor manera de entender realmente el mundo de blockchain es sumergirse en él. Lea y escuche a las personas más inteligentes, especialmente las cosas que han escrito en el pasado.

Hay mucho contenido de blockchain, pero también hay mucha basura. Aquí está la información recomendada.

Medios de comunicación
Los tres fantásticos podcasts recomendados son las entrevistas de Software Engineering Daily Blockchain, que proporcionan buenas introducciones técnicas para muchos temas y criptomonedas. Desde allí, Epicenter y Unchained: querrá volver y escuchar muchos de los episodios anteriores. Otro podcast técnico interesante y prometedor es Conspiratus.
(No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)
(No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)
(No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)
(No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)

Hay algunos buenos canales de YouTube (aunque hay toneladas de basura en YouTube). Suscríbete a la Fundación Ethereum y mira las presentaciones de Devcon3. Blockchain en Berkeley graba muchas de sus conferencias, la mayoría de las cuales son excelentes descripciones técnicas. Decypher Media también publica conversaciones, reseñas de libros y tutoriales. Jackson Palmer tiene interesantes vistas semanales, estas son del lado menos técnico, pero muy bien presentado.
(No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)
(No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)
(No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)
(No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)

Lecturas

La charla Blockchain en vivo, se encuentra principalmente en dos lugares: Reddit y Twitter. Para Reddit, la mayoría de los subreddits son de muy baja calidad y están dominados por el ruido. r / Ethereum (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) tiene una calidad constante y decente (y hay algunos subreddits correctos para criptomonedas específicas). Sin embargo, la mayoría de los subreddits están dominados principalmente por especuladores, y no son un buen uso de su atención. Manténgase alejado de los subreddits relacionados con Bitcoin. Bitcoin tiene notoriamente una de las comunidades más tóxicas, y Reddit solo lo magnifica.

Twitter es más una bolsa mixta. Para bien o para mal, la mayoría de las personas de blockchain viven en Twitter.
Evite a los "líderes del pensamiento". Los empresarios puede estar bien seguirlos, aunque en su mayoría actúan twitteando sobre sus propios proyectos. Los inversores en su mayoría twittean sobre precios y proyectos así que si eso es lo tuyo ya sabes a quien seguir. Los periodistas tienden a twittear sobre las principales noticias del día; es recomendable que se mantengan alejados a menos que necesiten un análisis en tiempo real, que probablemente no hagan. Si eres un comerciante activo, podría ser importante, pero si intentas construir sobre la cadena de bloques, la mayoría de las cosas en tiempo real son una distracción.

Presta la mayor atención a los constructores. Son las personas que más importan en este momento, y quienes impulsan la tecnología.

Es recomendable suscribirse a Inside Bitcoin (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) para obtener resúmenes diarios de las noticias más importantes (cubre más que solo Bitcoin) y Week in Ethereum (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) tiene buenos compendios de los acontecimientos centrados en los desarrolladores en el ecosistema de Ethereum.

Más allá de esto, probablemente no necesite monitorear noticias en tiempo real. Enfócate en construir cosas y aprender.

Querrá seguir los mejores blogs. Estos son los recomendados:

Vitalik Buterin (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) por su excelente blockchain y análisis criptoeconómico.

Hacking (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta), distribuido para análisis de seguridad de blockchain por investigadores de Cornell

Unenumerated (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta), el blog de luminarias de Nick Szabo con ensayos desafiantes.

Money Stuff (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta), la distribución de Bloomberg de Matt Levine, con un análisis perspicaz que toca la intersección de los mercados, las finanzas y las noticias de blockchain

Jameson Lopp (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) por sus excelentes publicaciones técnicas desde la perspectiva de un ingeniero de software que construye el ecosistema blockchain

Gran Muralla de Números (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) por Tim Swanson, por su deconstrucción sobria e inquebrantable de la manía de la cadena de bloques, especialmente en el espacio empresarial

Libros y cursos
Si desea un enfoque más estructurado para aprender este material, hay algunos libros y cursos de alta calidad.

El mejor libro de texto general para blockchains es Bitcoin y Cryptocurrency Technologies (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta).

Los únicos otros libros recomendables son Mastering Bitcoin (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) de Andreas Antonopoulos.

El único libro no técnico recomendable es Digital Gold (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) por Nathaniel Popper.

Prácticamente todo lo demás que vale la pena leer estará en blogs, no en libros: este espacio se mueve tan rápido que las figuras más importantes rara vez tienen tiempo para escribir libros, y los libros a menudo están desactualizados para cuando se publican.

Si desea un enfoque más estructurado para aprender este material, existen algunos cursos de alta calidad (y muchos de baja calidad). Conferencias del Curso de Princeton Coursera (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) (los videos también están en YouTube), y la UC Berkeley (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta).

También se dicen cosas buenas sobre Consensys Academy (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) para las personas que quieren entrar en el desarrollo de contratos inteligentes.

Lo que se he mostrado es solo el comienzo. Las criptomonedas aún están iniciando, y realmente es el espacio en el que más rápidamente se puede desarrollar. Esta guía seguramente estará desactualizada en un año. Así que tendrás que continuar investigando y actualizándote por tu parte.




Blockchain - [De Cero A Héroe] 1
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta




Cualquier error favor de comentarlo o decirme por privado y se intentara solucionar a la brevedad.
Andrey...


"Es un mundo brutal y peligroso el que hay allá afuera... Pero encontré mi camino. El caos es mi hogar, y me aseguraré de que no escapes de el"...

"Solo se necesita una excusa para cambiar el mundo"