Ú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

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.

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.

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

¿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

¿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

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

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.

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.