only replay-protected (EIP-155) transactions allowed over RPC
only replay-protected (EIP-155) transactions allowed over RPC

Использование узла Ethereum RPC При звонке вы часто сталкиваетесь only replay-protected (EIP-155) transactions allowed over RPC сообщение об ошибке. Эта ошибка обычно возникает при попытке отправить сообщение, не соответствующее EIP-155 Стандартное торговое время. В этой статье объясняется, почему возникает эта ошибка, а также кратко представлены EIP-155 стандарты и их предпосылки.


Почему возникает эта ошибка?

Причина ошибки

В Ethereum подпись транзакции обычно содержит номер транзакции. noncegasPricetodata и другая информация для обеспечения уникальности транзакции. Первоначальный дизайн Ethereum не был специально нацелен на атаки повтора транзакций. атака), что приводит к возможности повторных атак на разные цепочки.

С форками Ethereum (например, расколом между Ethereum и Ethereum Classic),Этот риск становится более серьезным. Во избежание повтора транзакций между разными цепочками,EIP-155 Предлагается новый стандарт транзакций, гарантирующий, что подписи транзакций однозначно идентифицируют конкретную сеть. В частности, ЭИП-155 добавил один Идентификатор цепочки (цепочка ID) поле, в результате чего транзакции в разных цепочках не могут воспроизводить друг друга.

Если вы неправильно указали идентификатор цепи при отправке транзакции на узел Ethereum или отправленная транзакция не соответствует EIP-155 стандартный,Тогда вылезет ошибка:only replay-protected (EIP-155) transactions allowed over RPC,Обратите внимание, что вы должны отправить сообщение, соответствующее стандарту EIP-155 «Защищенные транзакции».

Распространенные причины, вызывающие эту ошибку

  1. Идентификатор цепочки не указан:Если вы не указали правильную цепочку для подписи транзакцииID,Тогда транзакция не пройдет проверку EIP-155 узла, приводящую к Нужна.
  2. Идентификаторы сети и цепочки не совпадают.:Если ваша транзакция предназначена для конкретной цепочки,Но идентификатор цепочки не соответствует целевой сети,также вызовет эту ошибку.
  3. Использование инструментов, не соответствующих EIP-155.:Некоторые кошельки Ethereumили Инструменты могут не следовать EIP-155 Стандартно транзакции отправляются без защиты идентификатора цепочки.

Что такое ЭИП-155?

EIP-155 — это предложение Ethereum, целью которого является предотвращение переигратьатаковать。переигратьатаковатьотносится к,атаковать копировать Действительная транзакция,и повторно отправить его в другую цепочку,Это может привести к вредоносному поведению или неправильной работе.

Основное содержание EIP-155

EIP-155 Представлен Идентификатор цепочки (цепочка ID) и требует, чтобы каждая транзакция включала идентификатор цепочки при подписании. Идентификатор цепочки Это цифровой идентификатор, связанный с цепочкой, который используется для различения различных сетей блокчейна. Например:

  • Идентификатор цепи основной сети: 1
  • тестовая сеть Rinkeby Идентификатор цепочки: 4
  • тестовая сеть Ropsten Идентификатор цепочки: 3

В частности, EIP-155 реализует механизм защиты транзакций путем изменения подписи транзакции. Традиционные подписи транзакций Ethereum не содержат идентификаторов цепочки и подвержены атакам повторного воспроизведения. EIP-155 добавляет идентификатор цепочки при подписании транзакций, чтобы гарантировать уникальность транзакций в каждой цепочке.

Как работает EIP-155?

В Ethereum транзакции обычно подписываются по следующей формуле:

S = H(Nonce || GasPrice || GasLimit || To || Value || Data || ChainID)

в,ChainID Это новое поле, которое предотвращает повторение транзакций в других цепочках. Встраивая идентификатор цепочки в процесс подписи, действительность транзакции ограничивается определенной цепочкой, гарантируя, что транзакция не может быть повторно использована в других цепочках.

Пример подписи транзакции

Для транзакции, если не используется EIP-155 стандарту, его подпись будет основана на содержимом транзакции (например, noncegasPrice и т. д.). Если транзакция не включает идентификатор цепочки, она может быть воспроизведена в разных цепочках Ethereum, что приведет к потенциальным проблемам безопасности. И в EIP-155 Согласно дизайну, подпись транзакции включает идентификатор цепочки, поэтому транзакция может быть действительна только в определенной цепочке.


EIP-155 Предыстория и причины появления

существовать 2016 год,Эфириум прошел DAO атаковать инцидент, этот инцидент привел к тому, что сообщество Ethereum решило провести хард-форк блокчейна Ethereum и создать Ethereum Classic. Classic) и Ethereum — две независимые цепочки. существовать Во время этого процесса форка,переигратьатаковать стать серьезной проблемой безопасности,атаковать может копировать транзакции из одной цепочки в другую для повторного воспроизведения,Результатом является потеря средств или некорректная работа.

Чтобы избежать этой проблемы, Ethereum предложил EIP-155,Он вводит защиту идентификатора цепочки, чтобы гарантировать, что транзакции не могут быть воспроизведены между разными цепочками. Например,Для Эфириума Существующая транзакция сети не будет действительна в цепочке Ethereum Classic.,Поскольку идентификатор цепочки, содержащийся в подписи, не соответствует целевой цепочке.,Тем самым предотвращая повтор атаковать.

Продвижение и применение EIP-155

Узлы EIP-155 в EIP-155 будут проверять идентификатор цепочки при приеме транзакций. Если идентификатор цепочки в транзакции не совпадает с идентификатором цепочки текущей сети, транзакция будет отклонена. Это позволяет избежать проблемы воспроизведения транзакций между несколькими цепочками.

EIP-155 в основном используется в следующих сценариях:

  • избежать повтора атаковать:когда тысуществовать Различные цепочки Ethereum(Например Основная сеть、тестовая При торговле между сетью), ЭИП-155 Убедитесь, что транзакции могут быть действительны только в одной цепочке.
  • безопасность цепи:EIP-155 Это обеспечивает уникальность транзакций, поэтому транзакции между цепочками не будут ошибочно обработаны из-за разных идентификаторов цепочки.

Как исправить эту ошибку?

1. Убедитесь, что подпись транзакции верна.

  • Если вы существуете, используете определенные инструменты, такие как Web3.js、web3j、Geth и т. д.), чтобы инициировать транзакцию, убедитесь, что идентификатор цепочки правильно установлен в вашей существующей транзакции.
  • существуют При создании транзакции, если вы используете Web3.js или web3j,Убедитесь, что идентификатор цепочки правильно передан в подпись транзакции. Например,существовать Web3.js , ты можешь пройти chainId возможность указать идентификатор цепочки:
Язык кода:javascript
копировать
web3.eth.sendTransaction({
    from: '0xYourAddress',
    to: '0xRecipientAddress',
    value: web3.utils.toWei('1', 'ether'),
    gas: 21000,
    chainId: 1  // Основная сеть
});

2. Проверьте узлы, к которым вы подключены.

Если вы подключены к RPC узел (напр. Infura, Alchemy), убедитесь, что узел поддерживает EIP-155 и тысуществовать Подключитесь к нужной сети(Например Основная сеть、тестовая сеть)。

3. Обновите свои инструменты или библиотеки.

Если вы используете более старую версию инструмента или библиотеки, она может не поддерживать стандарт EIP-155. Убедитесь, что вы используете последнюю версию, поддерживающую EIP-155.


EIP-155 Это важное улучшение сети Ethereum. Оно успешно позволяет избежать проблемы повтора за счет введения механизма защиты идентификатора цепочки. понимая EIP-155 Принцип работы и опыт позволяют нам лучше обеспечивать безопасность наших транзакций. Появляться only replay-protected (EIP-155) transactions allowed over RPC В случае ошибки мы можем проверить идентификатор цепочки в подписи транзакции, чтобы убедиться, что транзакция соответствует EIP-155 стандарты для беспрепятственного проведения транзакций.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose