Última actualización de la página: December 4, 2020
Recursos para desarrolladores
Introducción
Si eres nuevo en lo relacionado con el desarrollo con Ethereum, estás en el lugar indicado. Estas guías escritas por la comunidad de Ethereum te presentarán lo básico del stack de Ethereum y los conceptos centrales que pueden ser distintos de cualquier otro desarrollo de apps que conozcas.
¿Quieres empezar a programar inmediatamente? Empieza a crear aquí.
¿Necesitas una introducción más básica para empezar? Échale un vistazo a nuestros recursos de aprendizaje.
Recursos útiles
- Cómo aprovechar Ethereum al máximo 7 de agosto de 2017 - Matt Condon
- Ethereum en profundidad, parte 1 11 de mayo de 2018 - Facu Spagnuolo
- Ethereum en profundidad, parte 2 24 de julio de 2018 - Facu Spagnuolo
- Guía de desarrollo de Ethereum, partes 1 a 5 14 de enero de 2018 - dev_zl
- Ethereum 101, partes 1 a 7 13 de febrero de 2019 - Wil Barnes
- Tutorial completo de la votación de "Hola, mundo" en la dapp de Ethereum 18 de enero de 2017 - Mahesh Murthy
- Mastering Ethereum: un completo libro de texto disponible online de manera gratuita 1 de diciembre de 2018 - Andreas Antonopoulos & Gavin Wood
- Ethereum Developer Portal - Everything you need to get started building on Ethereum Updated often - ConsenSys
- Deconstrucción de un contrato de Solidity 13 de agosto de 2018 - Alejandro Santander & Leo Arias
- Serie de tutoriales completos de dapp Actualizado con frecuencia - Joshua Cassidy
Lenguajes de los contratos inteligentes
Cualquier programa que se ejecuta en la máquina virtual de Ethereum (EVM, por sus siglas en inglés) se conoce comúnmente como "contrato inteligente". Los lenguajes más populares para escribir contratos inteligentes en Ethereum son Solidity y Vyper, aunque existen otros en proceso de desarrollo.
Solidity, el lenguaje más popular en Ethereum, está inspirado en C++, Python y Javascript.
Vyper es el lenguaje centrado en la seguridad para Ethereum y basado en Python.
¿Buscas otras opciones?
Recursos específicos del lenguaje
Estamos creando un conjunto de páginas de destino específicas de cada lenguaje, para que el desarrollador aprenda a utilizar Ethereum con el lenguaje de programación que prefiera.
- Ethereum para desarrolladores Java
- Ethereum para desarrolladores de Python
- Ethereum para desarrolladores de JavaScript
- Ethereum para desarrolladores de Go
- Ethereum para desarrolladores de Rust
- Ethereum para desarrolladores de .NET
- ¡Más próximamente! ¿Tu lenguaje no está entre estas opciones? Indícalo mediante una incidencia.
Herramientas para desarrolladores
Ethereum dispone de un gran y creciente número de herramientas para ayudar a los desarrolladores a crear, probar e implementar sus aplicaciones. A continuación encontrarás las herramientas más populares para comenzar. Si quieres información más detallada, consulta esta lista exhaustiva.
Entornos de trabajo
Truffle: un entorno de desarrollo y de pruebas, un pipeline de creación y otras herramientas.
Embark: un entorno de desarrollo que incluye un espacio para pruebas y otras herramientas integradas con Ethereum, IPFS y Whisper.
Waffle: un entorno de trabajo para desarrollar y realizar pruebas de contratos inteligentes avanzados (basado en ethers.js).
Etherlime: un entorno de trabajo basado en Ethers.js para el desarrollo de dapps (Solidity y Vyper), así como para su implementación, depuración, pruebas, etc.
Otras herramientas
Hardhat:***un ejecutor de tareas para desarrolladores de contratos inteligentes de Ethereum.***
OpenZeppelin SDK: ***el kit definitivo de herramientas para contratos inteligentes; una serie de herramientas para ayudarte a desarrollar, compilar, actualizar, implementar e interactuar con contratos inteligentes.***
The Graph: un protocolo para indexar los datos de Ethereum e IPFS, así como para consultarlos mediante GraphQL.
Tenderly: ***una plataforma para supervisar los contratos inteligentes de manera sencilla, con seguimiento de errores, alertas, métricas de rendimiento y análisis detallados de contratos.***
Python Tooling: ***varias bibliotecas para la interacción de Ethereum a través de Python.***
Brownie: ***un entorno de desarrollo basado en Python y un entorno de trabajo de pruebas.***
web3j: una biblioteca de integración de Java/Android/Kotlin/Scala para Ethereum.
One Click Dapp: genera un front-end directamente desde ABI para disfrutar de fases de desarrollo y prueba rápidas.
¿Buscas otras opciones?
Entornos de desarrollo integrados (IDE)
Ethereum Studio: entorno de desarrollo integrado (IDE, por sus siglas en inglés) basado en web, ideal para nuevos desarrolladores que buscan experimentar con contratos inteligentes. Ethereum Studio incluye varias plantillas, integración de MetaMask, registrador de transacciones y una máquina virtual (EVM) incorporada en el navegador para ayudarte a comenzar a crear con Ethereum lo más rápido posible.
Visual Studio Code: IDE multiplataforma profesional con compatibilidad oficial con Ethereum.
- Código de Visual Studio
- Kit de desarrollo de Azure Blockchain para Ethereum
- Complemento de Azure Blockchain Workbench
- Códigos de muestra
- GitHub
Remix: IDE basado en web con análisis estático integrado y una máquina virtual para pruebas de blockchain.
EthFiddle: IDE basado en web, que permite escribir, compilar y depurar contratos inteligentes.
¿Buscas otras opciones?
API de front-end de JavaScript
Web3.js: API de Javascript de Ethereum.
Ethers.js: implementación completa de la cartera de Ethereum y utilidades en JavaScript y TypeScript.
light.js: una biblioteca de JS de alto nivel, optimizada para clientes ligeros.
Web3-wrapper: alternativa de Typescript a Web3.js.
¿Buscas otras opciones?
API de back-end
Infura: la API de Ethereum como servicio.
La puerta de enlace de Cloudflare Ethereum.
Nodesmith: acceso de la API de JSON-RPC a la red principal de Ethereum y a redes de prueba.
Chainstack: nodos Ethereum compartidos y exclusivos como servicio.
Almacenamiento
IPFS: el sistema de archivos InterPlanetary es un sistema de almacenamiento descentralizado y de referencia de archivos para Ethereum.
Swarm: una plataforma de almacenamiento distribuida y un servicio de distribución de contenido para Web3 Stack de Ethereum.
OrbitDB: una base de datos de punto a punto acerca de IPFS.
Herramientas de seguridad
Seguridad de contratos inteligentes
Slither: ***entorno de trabajo de análisis estático de Solidity escrito en Python 3.***
MythX: ***API de análisis de seguridad para contratos inteligentes de Ethereum.***
Mythril: herramienta de análisis de seguridad para el bytecode de la EVM.
SmartContract.Codes: motor de búsqueda para códigos fuente verificados de Solidity.
Manticore: una interfaz de línea de comandos que utiliza una herramienta de ejecución simbólica en contratos inteligentes y binarios.
Securify: escáner de seguridad para contratos inteligentes de Ethereum.
ERC20 Verifier: una herramienta de verificación utilizada para comprobar si un contrato cumple con el estándar ERC20.
Verificación formal
Información sobre la verificación formal
- Cómo funciona la verificación formal en los contratos inteligentes, 20 de julio 2018, Brian Marick
- Cómo puede la verificación formal garantizar la perfección de los contratos inteligentes, 29 de enero 2018, Bernard Mueller
¿Buscas otras opciones?
Herramientas de testeo
Solidity-Coverage: ***herramienta alternativa de cobertura de código de Solidity.***
hevm: ***implementación del EVM creada específicamente para pruebas unitarias y depuración de contratos inteligentes.***
Whiteblock Genesis: una plataforma de desarrollo de extremo a extremo y pruebas para blockchain.
¿Buscas otras opciones?
Exploradores de bloques
Los exploradores de bloques son servicios que permiten navegar por el blockchain de Ethereum (y sus redes de prueba) mediante la búsqueda de información sobre transacciones específicas, bloques, contratos y otras actividades en la cadena.
Redes de prueba y faucets
La comunidad de Ethereum mantiene varias redes de prueba. Los desarrolladores las utilizan para probar sus aplicaciones en condiciones distintas, antes de implementarlas en la red principal de Ethereum.
Ropsten: prueba de blockchain de trabajo, se puede extraer el ether de prueba.
Rinkeby: prueba de blockchain de autoridad, que se mantiene mediante el equipo de desarrollo de Geth.
Goerli:***prueba de blockchain de autoridad multicliente, que se crea y se mantiene mediante la comunidad de Goerli***
Los clientes y la ejecución de tu propio nodo
La red de Ethereum está compuesta por muchos nodos, que ejecutan un cliente de software compatible. La mayoría de estos nodos ejecutan Geth o Parity, que, a su vez, puede configurarse de diferente manera según tus necesidades.
Clientes
Geth: cliente de Ethereum escrito en Go.
Parity: cliente de Ethereum escrito en Rust.
Pantheon: cliente de Ethereum escrito en Java.
Nethermind: cliente de Ethereum escrito en C# .NET Core.
Ejecución de tu propio nodo
Ethnode: ***ejecución de un nodo de Ethereum (Geth o Parity) en un entorno local.***
Recursos sobre nodos de Ethereum
- Hoja de características clave de la configuración de nodos, 5 de enero de 2019, Afri Schoeden
¿Buscas otras opciones?
Prácticas recomendadas, patrones y antipatrones
Contratos inteligentes
DappSys: ***bloques de creación simples, flexibles y seguros para contratos inteligentes. ***
Contratos de OpenZeppelin: ***biblioteca para el desarrollo seguro de contratos inteligentes.***
aragonOS: ***patrones de actualización y control de permisos. ***
Registro de puntos débiles de los contratos inteligentes
Seguridad
Guía de prácticas recomendadas de seguridad para contratos inteligentes
- consensys.github.io/smart-contract-best-practices/
- GitHub
- Colección acumulativa de recomendaciones de seguridad y prácticas recomendadas
Estándar de verificación de seguridad de contrato inteligente (SCSVS)
¿Buscas otras opciones?
Soporte y formación para desarrolladores
Aprendizaje general
Stackexchange de Ethereum
ConsenSys Academy: ***un curso de desarrollador de Ethereum de cobertura completa, que puedes completar cuando quieras y que está disponible durante todo el año.***
Sala de chat de Gitter sobre Solidity
Todas las salas de chat de Gitter sobre Ethereum
Chainshot: tutoriales de codificación dapp basados en web.
Blockgeeks: cursos en línea sobre tecnología de blockchain.
DappUniversity: ***aprende a crear aplicaciones decentralizadas en el blockchain de Ethereum.***
B9lab Academy: sitio del curso de desarrollador profesional de dapp de Ethereum más antiguo, y aprendizaje adicional para cuestiones de auditoría y calidad. Incl. revisión de código y mentoría.
Aprendizaje basado en juegos
Cryptozombies: aprende a programar juegos en Ethereum.
Ethernaut: ***juego de guerra escrito en Solidity, donde cada nivel es un contrato que hay que hackear.***
Capture the Ether: el juego de seguridad del contrato inteligente de Ethereum.
Diseño de UI/UX
- El desafío de la UX en Ethereum, 25 de junio de 2018, Anna Rose
- Diseño para blockchains: cuáles son las diferencias y qué es una stake, 22 de marzo de 2018, Sarah Baker Mills
UI Rimble: componentes adaptables y estándares de diseño para aplicaciones descentralizadas
Estándares
La comunidad de Ethereum ha adoptado muchos estándares que son útiles para los desarrolladores. Normalmente se presentan como Propuestas de mejora de Ethereum (EIP por sus siglas en inglés), que discuten los miembros de la comunidad a través de un proceso estándar.
- Lista de EIP
- Repositorio de github de EIP
- Tablón de discusión de EIP
- Resumen de gobernanza de Ethereum, 31 de marzo de 2019, Mann Boris
- Lista de reproducción de todas las reuniones de Ethereum Core Dev (lista de reproducción de YouTube)
Algunos EIP hacen referencia a estándares de nivel aplicación (por ejemplo, un estándar sobre el formato de un contrato inteligente), los cuales se presentan como Solicitudes de comentarios de Ethereum (ERC por sus siglas en inglés). Muchos ERC son estándares críticos utilizados ampliamente en todo el ecosistema de Ethereum.