Известные ограничения
Честное описание текущих ограничений Rome Protocol и их последствий.
Ограничения исполнения
Преcompile Modexp отключен. Предварительная компиляция модулярного возведения в степень (0x05) по умолчанию отключена. Контракты, полагающиеся на проверку RSA или другие операции modexp, будут аварийно завершаться. Может быть включена через флаг функции.
SELFDESTRUCT удалён. Операция SELFDESTRUCT не поддерживается в соответствии с выводом из эксплуатации в Ethereum Dencun. Контракты, использующие SELFDESTRUCT, будут откатываться.
256 слотов хранения на каждый аккаунт хранения. Хранилище контракта распределяется по аккаунтам Solana по 256 слотов в каждом. Контракты с большим объёмом хранилища будут использовать несколько аккаунтов, что влияет на расходы CU.
Ограничение глубины CPI — 4. Сильно вложенные вызовы CPI будут завершаться с ошибкой. Проектируйте контракты с неглубокими деревьями вызовов.
Ограничения токенов
Хуки передачи срабатывают только при только. обычных transfer вызовах, полностью обходя хуки. Все операции моста Rome используют только, однако сторонние интеграции должны учитывать это.
Операции mint и burn не используют хуки. Хуки передачи Token-2022 не срабатывают при mint/burn. Управление осуществляется через mint authority, а не через хуки.
Обход через обёртывание токенов. Пользователи могут потенциально обернуть токены Token-2022 в стандартные SPL-токены, чтобы обойти хуки передачи. Это частично смягчается чёрными списками wrapper'ов и расширением PermanentDelegate, но не устраняется полностью.
Ограничения оракула
Нет исторических данных раундов. Адаптеры Oracle Gateway поддерживают только latestRoundData(). Исторические запросы цен через getRoundData(roundId) вызывают revert.
Смещения парсера эмпирически проверены. Данные аккаунтов Pyth и Switchboard разбираются с использованием жёстко заданных байтовых смещений. Если Pyth или Switchboard изменят структуру своих аккаунтов, адаптеры будут возвращать некорректные данные до повторной проверки смещений.
Ограничения инфраструктуры
Модель с одним оператором. Каждое развертывание Rome обслуживается одной сущностью (оператором пула плательщиков). Децентрализованного набора операторов нет.
Блокировка в итеративном режиме. Во время итеративного выполнения аккаунты блокируются на 3–4 секунды. Это может вызывать конкуренцию за часто используемые аккаунты.
Риск расхождения с OP-Geth. Расхождение состояния между Rome EVM и OP-Geth остаётся постоянной инженерной проблемой. Валидация footprint снижает этот риск, но не устраняет его полностью.
Что дальше
Ответственное раскрытие информации — как сообщать о проблемах
Последнее обновление
Это было полезно?