Implementação em Go da camada de execução do Ethereum, que funciona como nó full ou archive e oferece acesso via JSON-RPC e ferramentas para desenvolvedores.
ethereum/EthLib
Primitivos do Ethereum verificados formalmente em Lean, criados como uma biblioteca compartilhada de especificações e provas para projetos em Lean.
- Estrelas
- 85
- Forks
- 22
- Issues abertas
- 25
- Último commit
- há 3 horas
O que é?
A EthLib fornece definições do Ethereum e suas provas em Lean, para que projetos em Lean possam usar uma implementação comum em vez de manter cada um a sua própria. Ela cobre os blocos fundamentais do protocolo: palavras de 256 bits, primitivas de hash e assinatura, como Keccak, secp256k1, BLS12-381 e KZG, codificações como RLP e SSZ, componentes de rede — incluindo parâmetros de discv4, discv5, RLPx e gossipsub — e componentes da camada de execução, como opcodes da EVM, precompiles, estado, transações, blocos e a Merkle Patricia Trie. As definições da camada de consenso abrangem configuração, slots e epochs, comitês e modelos de escolha de fork.
A biblioteca é organizada em camadas, e cada módulo importa apenas de sua própria camada ou de camadas inferiores, mantendo separadas as camadas de execução e de consenso. Algumas primitivas são disponibilizadas por meio de bindings C, que clientes Ethereum podem usar temporariamente, até existir uma implementação nativa, ou permanentemente, se o desempenho for adequado.
A compilação exige elan e Mathlib, e `lake build` compila as primitivas e verifica todas as provas. Uma suíte de testes separada exercita os bindings Python.
Recursos principais
- 01Abrange palavras de 256 bits da EVM, hashes criptográficos e esquemas de assinatura, incluindo secp256k1, BLS e KZG.
- 02Inclui serialização RLP e SSZ usada pelas camadas de execução e de consenso.
- 03Fornece definições de rede para discv4, discv5, RLPx e parâmetros de gossipsub.
- 04Modela opcodes da EVM, os 18 precompiles, estado, transações e blocos por fork.
- 05Disponibiliza algumas primitivas por meio de bindings C que podem ser usados por clientes Ethereum.
Casos de uso
- Criar um projeto em Lean que precise de especificações verificadas do Ethereum, em vez de uma implementação própria.
- Usar os bindings em um cliente Ethereum como solução temporária, até existir uma implementação nativa.
- Verificar o comportamento de precompiles da EVM ou das regras de transação com base em definições formais.
- Estudar como os protocolos de execução e consenso do Ethereum são especificados em um provador de teoremas.
Início rápido
- 1
Instale o elan, gerenciador de toolchains do Lean, usando o script oficial de instalação do README
- 2
Baixe as dependências do Mathlib do cache
lake exe cache get - 3
Compile os primitivos e verifique todas as provas
lake build
Antes de usar
- A compilação requer a toolchain do Lean via elan e a dependência do Mathlib.
- Para usar os bindings do Python, é necessário compilar uma extensão nativa com uv.
Tópicos
Perguntas frequentes
- O que é EthLib?
- Primitivos do Ethereum verificados formalmente em Lean, criados como uma biblioteca compartilhada de especificações e provas para projetos em Lean. A EthLib fornece definições do Ethereum e suas provas em Lean, para que projetos em Lean possam usar uma implementação comum em vez de manter cada um a sua própria. Ela cobre os blocos fundamentais do protocolo: palavras de 256 bits, primitivas de hash e assinatura, como Keccak, secp256k1, BLS12-381 e KZG, codificações como RLP e SSZ, componentes de rede — incluindo parâmetros de discv4, discv5, RLPx e gossipsub — e componentes da camada de execução, como opcodes da EVM, precompiles, estado, transações, blocos e a Merkle Patricia Trie. As definições da camada de consenso abrangem configuração, slots e epochs, comitês e modelos de escolha de fork.
- EthLib é gratuito? Qual é a licença?
- EthLib é open source sob a licença CC0-1.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- EthLib ainda é mantido?
- Manutenção ativa. O último commit de EthLib foi em 7 de nov. de 2026.
- Para que posso usar EthLib?
- Criar um projeto em Lean que precise de especificações verificadas do Ethereum, em vez de uma implementação própria. Usar os bindings em um cliente Ethereum como solução temporária, até existir uma implementação nativa. Verificar o comportamento de precompiles da EVM ou das regras de transação com base em definições formais. Estudar como os protocolos de execução e consenso do Ethereum são especificados em um provador de teoremas.
- Como instalar EthLib?
- Instale o elan, gerenciador de toolchains do Lean, usando o script oficial de instalação do README Baixe as dependências do Mathlib do cache: lake exe cache get Compile os primitivos e verifique todas as provas: lake build
- Onde consigo EthLib?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/ethereum/EthLib
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Toolkit em Rust para desenvolver smart contracts na Ethereum, com Forge, Cast, Anvil e Chisel para criar, testar e interagir com redes EVM.
Cliente de execução compatível com BSC, baseado na API NodeBuilder do Reth, capaz de sincronizar a Mainnet e a Testnet da BSC.
Uma máquina virtual de conhecimento zero que gera provas de execução correta para programas escritos em Rust ou em outras linguagens compiladas com LLVM.
Echidna é um fuzzer baseado em Haskell que testa smart contracts Ethereum tentando sequências de chamadas para violar invariantes definidos pelo usuário ou assertions de Solidity.
Automação de provas com LLM para o provador de teoremas Lean, com sugestões de táticas, busca de provas e seleção de premissas.