fix: reject sentinel transactions from eth_sendRawTransactionSync#393
fix: reject sentinel transactions from eth_sendRawTransactionSync#393matthias-wright wants to merge 3 commits into
Conversation
|
Adds comprehensive replay protection to ops whitelist system with validator IDs, admin nonces, and enhanced sentinel transaction validation. Phase 1
Phase 2
LGTM — The implementation is well-designed with proper concurrency handling, comprehensive validation, and extensive test coverage. The replay protection architecture correctly uses strict-greater nonce comparison and validator binding to prevent attacks while allowing legitimate out-of-order delivery. |
Builds on #392.
Sentinel transactions never end up in the pool or in a block, so the subscriber would wait forever.
Changes:
eth_sendRawTransactionSyncwill reject sentinel transactionssend_raw_transaction_syncdeserializes (recovers) transactions and returns early if the transaction is a sentinel transaction. This means that a normal transaction will be deserialized twice. Avoiding the double deserialization would have meant more invasive changes.