HomePhabricator

Remove IsFromMe() check in CTxMemPool::accept()
ce99358f4aa4Unpublished

Unpublished Commit ยท Learn More

Repository Importing: This repository is still importing.

Description

Remove IsFromMe() check in CTxMemPool::accept()

Fixes issue #2178 : attacker could penny-flood with invalid-signature
transactions to deduce which addresses belonged to your node.

I'm committing this early for code review; I still need to write up
a test plan.

Executive summary of fix: check all transactions received from the network
for penny-flood rate-limiting before adding to the memory pool. But do NOT
ratelimit transactions added to the memory pool:

  • because of blockchain reorgs
  • stored in the wallet and added at startup
  • sent from the GUI or one of the send* RPC commands (CWallet::CommitTransaction)

The limit-free-transactions code really should be a method on CNode, with
counters per-peer. But that is a bigger change for another day.

Details

Provenance
Gavin Andresen <gavinandresen@gmail.com>Authored on Jan 14 2013, 21:52
schancelPushed on Jan 5 2018, 21:58
schancelPushed on Jan 5 2018, 21:39
schancelPushed on Jan 5 2018, 21:17
Parents
rSTAGINGc83c3cbe9740: Merge pull request #2172 from Diapolo/init_messages
Branches
Unknown
Tags
Unknown

Event Timeline

Gavin Andresen <gavinandresen@gmail.com> committed rSTAGINGce99358f4aa4: Remove IsFromMe() check in CTxMemPool::accept() (authored by Gavin Andresen <gavinandresen@gmail.com>).Jan 15 2013, 14:10