Страница переведена сообществом и носит справочный характер; актуальна английская версия.
Оригинал ↗

Двухблочная архитектура

Общая пропускная способность HyperEVM разделена между маленькими блоками, создаваемыми с высокой частотой, и большими блоками, создаваемыми с меньшей частотой.

Основная мотивация двухблочной архитектуры — развязать скорость блоков и размер блоков при распределении улучшений пропускной способности. Пользователи хотят более быстрых блоков для сокращения времени подтверждения. Билдеры хотят более крупных блоков для включения больших транзакций, таких как более сложные развёртывания контрактов. Вместо вынужденного компромисса двухблочная система позволит одновременно улучшать оба направления.

«Мемпул» HyperEVM по-прежнему является ончейн-состоянием относительно зонтичного исполнения L1, но разделён на два независимых мемпула, поставляющих транзакции для двух типов блоков. Два типа блоков чередуются с уникальной возрастающей последовательностью номеров EVM-блоков. Ончейн-реализация мемпула принимает только следующие 8 nonce для каждого адреса. Транзакции старше 1 дня в мемпуле удаляются.

Начальная конфигурация задана консервативно, и ожидается рост пропускной способности с последующими техническими обновлениями. Длительность быстрых блоков установлена в 1 секунду с лимитом газа 3M. Длительность медленных блоков установлена в 1 минуту с лимитом газа 30M.

Точнее, в определениях выше длительность блока x означает, что первый L1-блок для каждого значения l1_block_time % x создаёт EVM-блок.

Разработчики могут развёртывать более крупные контракты следующим образом:

  1. Отправьте действие {"type": "evmUserModify", "usingBigBlocks": true}, чтобы направлять транзакции HyperEVM в большие блоки вместо маленьких. Обратите внимание, что этот флаг состояния пользователя устанавливается на уровне пользователя HyperCore и должен быть сброшен, чтобы снова таргетировать маленькие блоки. Как и любое действие, оно требует существующего Core-пользователя для отправки. Как и любая EOA, адрес деплойера может быть преобразован в Core-пользователя получением Core-актива, например USDC.
  2. При желании используйте метод JSON-RPC bigBlockGasPrice вместо gasPrice для оценки базовой газовой комиссии в следующем большом блоке.
Неофициальный перевод сообщества. Права на контент принадлежат Hyperliquid; актуальна английская версия. Источник: https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/hyperevm/dual-block-architecture