Спецификации консенсуса Ethereum Proof-of-Stake
Чтобы узнать больше о доказательстве доли и шардинге, см. документацию PoS, документацию по шардингу и исследовательский сборник.
В этом репозитории хранятся текущие спецификации доказательства доли Ethereum. Дискуссии об обосновании проекта и предлагаемых изменениях могут быть подняты и обсуждены как проблемы. Твердые, согласованные изменения в спецификации могут быть внесены посредством запросов на включение.
Характеристики
Основные характеристики для клиентов Ethereum с доказательством доли можно найти в спецификациях. Они разделены на функции. Функции исследуются и разрабатываются параллельно, а затем по мере готовности объединяются в последовательные обновления.
Стабильные характеристики
Секв. | Кодовое имя | Форк Эпохи | Характеристики |
---|
0 | Фаза0 | 0 | - Основной
- Цепь маяков
- Депозитный договор
- Выбор вилки цепи маяка
- Дополнения
- Честное руководство по валидатору
- P2P-сети
- Слабая субъективность
|
1 | Альтаир | 74240 | - Основной
- Изменения в цепочке маяков
- Вилка Альтаира
- Дополнения
- Протокол синхронизации легкого клиента (полный узел, легкий клиент, сеть)
- Честные изменения в руководстве валидатора
- P2P-сети
|
2 | Беллатриса («Слияние») | 144896 | - Основной
- Изменения в цепочке маяков
- Вилка Беллатрисы
- Изменения выбора вилки
- Дополнения
- Честные изменения в руководстве валидатора
- P2P-сети
|
3 | Капелла | 194048 | - Основной
- Изменения в цепочке маяков
- Капелла вилка
- Дополнения
- Легкие изменения протокола синхронизации клиента (вилка, полный узел, сеть)
- Дополнения валидатора
- P2P-сети
|
4 | Денеб | 269568 | - Основной
- Изменения в цепочке маяков
- Денебская вилка
- Полиномиальные обязательства
- Изменения выбора вилки
- Дополнения
- Легкие изменения протокола синхронизации клиента (вилка, полный узел, сеть)
- Честные изменения в руководстве валидатора
- P2P-сети
|
Спецификации в разработке
Секв. | Кодовое имя | Форк Эпохи | Характеристики |
---|
5 | Электра | подлежит уточнению | - Основной
- Изменения в цепочке маяков
- Электра вилка
- Дополнения
- Изменения протокола синхронизации легких клиентов (вилка, сеть)
- Честные изменения в руководстве валидатора
- P2P-сети
|
Устаревшие характеристики
Кодовое название или тема | Характеристики | Примечания |
---|
Шардинг | - Основной
- Изменения в цепочке маяков
- Дополнения
| |
Игра под стражей | - Основной
- Изменения в цепочке маяков
- Дополнения
- Честные изменения в руководстве валидатора
| Зависит от шардинга |
Выборка доступности данных | - Основной
- Основные типы и функции
- Изменения выбора вилки
- Дополнения
- P2P-сеть
- Процесс отбора проб
| - Зависит от шардинга
- Технический объяснитель
|
Сопроводительные документы можно найти в спецификациях и включают в себя:
- Спецификация SimpleSerialize (SSZ)
- Форматы доказательства Меркла
- Общий формат теста
Дополнительные спецификации для разработчиков клиентов
Дополнительные спецификации и стандарты, выходящие за рамки необходимых клиентских функций, можно найти в следующих репозиториях:
- API-интерфейсы маяков
- API-интерфейсы двигателя
- Метрики маяка
Цели дизайна
Ниже приведены общие цели разработки консенсусных спецификаций Ethereum Proof-of-Stake:
- минимизировать сложность, даже ценой некоторых потерь в эффективности
- оставаться в рабочем состоянии через основные разделы сети и когда очень большие части узлов отключаются от сети
- выбрать все компоненты так, чтобы они были квантовобезопасными или их можно было легко заменить на квантовобезопасные аналоги, если они доступны.
- использовать методы криптографии и проектирования, которые позволяют обеспечить широкое участие валидаторов в целом и в единицу времени.
- чтобы позволить типичному потребительскому ноутбуку с ресурсами
O(C)
обрабатывать/проверять сегменты O(1)
(включая любую проверку на уровне системы, такую как цепочка маяков)
Полезные внешние ресурсы
- Обоснование дизайна
- Документ о внедрении фазы 0
- Комбинирование бумаги GHOST и Casper
Для участников спецификаций
Документацию по различным компонентам, используемым при написании спецификаций, можно найти здесь:
- Генераторы тестов YAML
- Исполняемая спецификация Python с Py-тестами
Онлайн-просмотр последней версии (последняя master
ветка)
Консенсусные спецификации Ethereum
Согласованные тесты спецификаций
Тесты соответствия, созданные на основе исполняемой спецификации Python, доступны в репозитории Ethereum Proof-of-Stake Consensus Spec Tests. Сжатые архивы доступны в выпусках.
Установка и использование
Репозиторий консенсусных спецификаций можно использовать, запуская тесты локально или внутри Docker-контейнера.
Чтобы запустить тесты локально:
- Клонируйте репозиторий с помощью
git clone https://github.com/ethereum/consensus-specs.git
- Перейдите в каталог
cd consensus-specs
- Установите зависимости с помощью:
make install_test && make preinstallation && make pyspec
- Запустите тесты с помощью
make citest
Чтобы запустить тесты внутри Docker-контейнера:
- Перейдите в каталог со
cd scripts
- Запустите скрипт
./build_run_docker_tests.sh
- Найдите результаты в папке
./testResults
- Найдите дополнительные способы настройки сценария с помощью
./build_run_docker_tests.sh --h