Реализация исполнительного уровня Ethereum на Go: запуск полного или архивного узла, доступ через JSON-RPC и инструменты для разработчиков.
ethereum/EthLib
Формально верифицированные примитивы Ethereum на Lean — общая библиотека спецификаций и доказательств для проектов на Lean.
- Звёзды
- 83
- Форки
- 22
- Открытые issues
- 25
- Последний коммит
- 24 часа назад
Что это?
EthLib содержит определения компонентов Ethereum и доказательства их свойств на Lean, чтобы проекты на Lean могли использовать общую реализацию, а не поддерживать собственные. Библиотека охватывает базовые элементы протокола: 256-битные слова, хеш-функции и криптографические примитивы для подписей, такие как Keccak, secp256k1, BLS12-381 и KZG, форматы кодирования, включая RLP и SSZ, сетевые компоненты, в том числе параметры discv4, discv5, RLPx и gossipsub, а также компоненты уровня исполнения: опкоды EVM, предкомпиляты, состояние, транзакции, блоки и Merkle Patricia Trie. Определения уровня консенсуса охватывают конфигурацию, слоты и эпохи, комитеты и модели выбора форка.
Библиотека организована по слоям: модуль импортирует только модули своего или нижележащих слоёв, а уровни исполнения и консенсуса разделены. Некоторые примитивы доступны через C bindings; клиенты Ethereum могут использовать их как временное решение до появления нативной реализации или на постоянной основе, если производительности достаточно.
Для сборки нужны elan и Mathlib; команда `lake build` компилирует примитивы и проверяет все доказательства. Отдельный набор тестов проверяет Python bindings.
Ключевые возможности
- 01Включает 256-битные слова EVM, криптографические хеш-функции и схемы подписей, в том числе secp256k1, BLS и KZG.
- 02Содержит форматы сериализации RLP и SSZ, используемые на уровнях исполнения и консенсуса.
- 03Предоставляет определения сетевых компонентов для discv4, discv5, RLPx и параметров gossipsub.
- 04Моделирует опкоды EVM, все 18 предкомпилятов, состояние, транзакции и блоки для разных форков.
- 05Предоставляет доступ к некоторым примитивам через C bindings, которые можно использовать в клиентах Ethereum.
Сценарии использования
- Разработка проекта на Lean, которому нужны верифицированные спецификации Ethereum вместо собственной реализации.
- Использование bindings в клиенте Ethereum как временного решения до появления нативной реализации.
- Проверка поведения предкомпилятов EVM или правил обработки транзакций по формальным определениям.
- Изучение того, как протоколы исполнения и консенсуса Ethereum формализованы в системе доказательств теорем.
Быстрый старт
- 1
Установите elan — менеджер toolchain для Lean — с помощью официального скрипта установки из README
- 2
Загрузите зависимости Mathlib из кеша
lake exe cache get - 3
Скомпилируйте примитивы и проверьте все доказательства
lake build
Что важно знать
- Для сборки необходимы toolchain Lean через elan и зависимость Mathlib.
- Для использования привязок Python требуется собрать нативное расширение с помощью uv.
Темы
Частые вопросы
- Что такое EthLib?
- Формально верифицированные примитивы Ethereum на Lean — общая библиотека спецификаций и доказательств для проектов на Lean. EthLib содержит определения компонентов Ethereum и доказательства их свойств на Lean, чтобы проекты на Lean могли использовать общую реализацию, а не поддерживать собственные. Библиотека охватывает базовые элементы протокола: 256-битные слова, хеш-функции и криптографические примитивы для подписей, такие как Keccak, secp256k1, BLS12-381 и KZG, форматы кодирования, включая RLP и SSZ, сетевые компоненты, в том числе параметры discv4, discv5, RLPx и gossipsub, а также компоненты уровня исполнения: опкоды EVM, предкомпиляты, состояние, транзакции, блоки и Merkle Patricia Trie. Определения уровня консенсуса охватывают конфигурацию, слоты и эпохи, комитеты и модели выбора форка.
- EthLib можно использовать бесплатно? Какая у него лицензия?
- EthLib распространяется с открытым исходным кодом под лицензией CC0-1.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- EthLib всё ещё поддерживается?
- Активно поддерживается. Последний коммит в EthLib — 6 нояб. 2026 г..
- Для чего можно использовать EthLib?
- Разработка проекта на Lean, которому нужны верифицированные спецификации Ethereum вместо собственной реализации. Использование bindings в клиенте Ethereum как временного решения до появления нативной реализации. Проверка поведения предкомпилятов EVM или правил обработки транзакций по формальным определениям. Изучение того, как протоколы исполнения и консенсуса Ethereum формализованы в системе доказательств теорем.
- Как установить EthLib?
- Установите elan — менеджер toolchain для Lean — с помощью официального скрипта установки из README Загрузите зависимости Mathlib из кеша: lake exe cache get Скомпилируйте примитивы и проверьте все доказательства: lake build
- Где скачать EthLib?
- Исходный код и инструкции по установке — на GitHub: https://github.com/ethereum/EthLib
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Набор инструментов на Rust для разработки смарт-контрактов Ethereum: Forge, Cast, Anvil и Chisel помогают собирать и тестировать контракты и взаимодействовать с EVM-сетями.
Клиент исполнения, совместимый с BSC, построен на API NodeBuilder из Reth и умеет синхронизироваться с BSC Mainnet и Testnet.
Виртуальная машина с нулевым разглашением, которая генерирует доказательства корректного выполнения программ на Rust и других языках, компилируемых через LLVM.
Echidna — фаззер на Haskell для тестирования смарт-контрактов Ethereum: он подбирает последовательности вызовов, чтобы нарушить пользовательские инварианты или Solidity-утверждения.
Автоматизация доказательств в Lean с помощью LLM: подсказки по тактикам, поиск доказательств и подбор лемм.