Implementación en Go de la capa de ejecución de Ethereum, que funciona como nodo full o archive y ofrece acceso JSON-RPC y herramientas para desarrolladores.
ethereum/EthLib
Primitivas de Ethereum verificadas formalmente y escritas en Lean, concebidas como una biblioteca compartida de especificaciones y demostraciones para proyectos Lean.
- Estrellas
- 85
- Forks
- 22
- Issues abiertos
- 25
- Último commit
- hace 37 minutos
¿Qué es?
EthLib proporciona definiciones de Ethereum y sus demostraciones en Lean, para que los proyectos Lean puedan basarse en una implementación común en lugar de mantener cada uno la suya. Abarca los componentes básicos del protocolo: palabras de 256 bits; primitivas de hash y firma, como Keccak, secp256k1, BLS12-381 y KZG; codificaciones como RLP y SSZ; elementos de red, incluidos discv4, discv5, RLPx y los parámetros de gossipsub; y componentes de la capa de ejecución, como los opcodes de la EVM, los precompiles, el estado, las transacciones, los bloques y el Merkle Patricia Trie. Las definiciones de la capa de consenso abarcan la configuración, las ranuras y épocas, los comités y los modelos de elección de bifurcación.
La biblioteca está organizada en capas. Cada módulo importa únicamente elementos de su propia capa o de las inferiores, y las capas de ejecución y consenso se mantienen separadas. Algunas primitivas se exponen mediante bindings de C, que los clientes de Ethereum pueden usar temporalmente hasta que haya una implementación nativa o de forma permanente si el rendimiento es suficiente.
Para compilar se necesitan elan y Mathlib; `lake build` compila las primitivas y comprueba todas las demostraciones. Una suite de pruebas independiente ejercita los bindings de Python.
Funciones clave
- 01Abarca palabras de la EVM de 256 bits, hashes criptográficos y esquemas de firma, incluidos secp256k1, BLS y KZG.
- 02Incluye serialización RLP y SSZ, usada por las capas de ejecución y consenso.
- 03Proporciona definiciones de red para discv4, discv5, RLPx y los parámetros de gossipsub.
- 04Modela los opcodes de la EVM, los 18 precompiles, el estado, las transacciones y los bloques por bifurcación.
- 05Expone algunas primitivas mediante bindings de C que pueden usar los clientes de Ethereum.
Casos de uso
- Crear un proyecto Lean que necesite especificaciones verificadas de Ethereum en lugar de una implementación propia.
- Usar los bindings en un cliente de Ethereum como solución provisional hasta que exista una implementación nativa.
- Comprobar el comportamiento de los precompiles de la EVM o las reglas de las transacciones frente a definiciones formales.
- Estudiar cómo se especifican los protocolos de ejecución y consenso de Ethereum en un demostrador de teoremas.
Inicio rápido
- 1
Instala elan, el gestor de toolchains de Lean, con el script de instalación oficial que aparece en el README
- 2
Descarga las dependencias de Mathlib desde la caché
lake exe cache get - 3
Compila los primitivos y comprueba todas las demostraciones
lake build
Antes de usarlo
- La compilación requiere la toolchain de Lean mediante elan y la dependencia de Mathlib.
- Para usar los bindings de Python, es necesario compilar una extensión nativa con uv.
Temas
Preguntas frecuentes
- ¿Qué es EthLib?
- Primitivas de Ethereum verificadas formalmente y escritas en Lean, concebidas como una biblioteca compartida de especificaciones y demostraciones para proyectos Lean. EthLib proporciona definiciones de Ethereum y sus demostraciones en Lean, para que los proyectos Lean puedan basarse en una implementación común en lugar de mantener cada uno la suya. Abarca los componentes básicos del protocolo: palabras de 256 bits; primitivas de hash y firma, como Keccak, secp256k1, BLS12-381 y KZG; codificaciones como RLP y SSZ; elementos de red, incluidos discv4, discv5, RLPx y los parámetros de gossipsub; y componentes de la capa de ejecución, como los opcodes de la EVM, los precompiles, el estado, las transacciones, los bloques y el Merkle Patricia Trie. Las definiciones de la capa de consenso abarcan la configuración, las ranuras y épocas, los comités y los modelos de elección de bifurcación.
- ¿EthLib es gratuito? ¿Qué licencia tiene?
- EthLib es open source bajo la licencia CC0-1.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿EthLib sigue mantenido?
- Mantenimiento activo. El último commit de EthLib fue el 7 nov 2026.
- ¿Para qué puedo usar EthLib?
- Crear un proyecto Lean que necesite especificaciones verificadas de Ethereum en lugar de una implementación propia. Usar los bindings en un cliente de Ethereum como solución provisional hasta que exista una implementación nativa. Comprobar el comportamiento de los precompiles de la EVM o las reglas de las transacciones frente a definiciones formales. Estudiar cómo se especifican los protocolos de ejecución y consenso de Ethereum en un demostrador de teoremas.
- ¿Cómo se instala EthLib?
- Instala elan, el gestor de toolchains de Lean, con el script de instalación oficial que aparece en el README Descarga las dependencias de Mathlib desde la caché: lake exe cache get Compila los primitivos y comprueba todas las demostraciones: lake build
- ¿Dónde consigo EthLib?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/ethereum/EthLib
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Kit de herramientas basado en Rust para desarrollar contratos inteligentes en Ethereum, con Forge, Cast, Anvil y Chisel para crear, probar e interactuar con cadenas EVM.
Cliente de ejecución compatible con BSC, basado en la API NodeBuilder de Reth, que puede sincronizar BSC Mainnet y Testnet.
Una máquina virtual de conocimiento cero que genera pruebas de ejecución correcta para programas escritos en Rust u otros lenguajes compilados con LLVM.
Echidna es un fuzzer basado en Haskell que prueba smart contracts de Ethereum con secuencias de llamadas para vulnerar invariantes definidas por el usuario o aserciones de Solidity.
Automatización de pruebas con LLM para el demostrador de teoremas Lean, con sugerencias de tácticas, búsqueda de pruebas y selección de premisas.