SyncTransaction->TxAddedToMempool/BlockConnected/Disconnected
commit461e49fee2935b1eb4d4ea7bae3023e655c0a6d8
authorMatt Corallo <git@bluematt.me>
Thu, 30 Mar 2017 01:12:42 +0000 (29 21:12 -0400)
committerMatt Corallo <git@bluematt.me>
Fri, 7 Apr 2017 09:53:43 +0000 (7 11:53 +0200)
tree243e76a8c99a0059ee867976603a3426f5f8bf3c
parentf4043349106067de66a3312ed3485149bdb71247
SyncTransaction->TxAddedToMempool/BlockConnected/Disconnected

This simplifies fixing the wallet-returns-stale-info issue as we
can now hold cs_wallet across an entire block instead of only
per-tx (though we only actually do so in the next commit).

This change also removes the NOT_IN_BLOCK constant in favor of only
passing the CBlockIndex* parameter to SyncTransactions when a new
block is being connected, instead of also when a block is being
disconnected.

This change adds a parameter to BlockConnectedDisconnected which
lists the transactions which were removed from mempool due to
confliction as a result of this operation. While its somewhat of a
shame to make block-validation-logic generate a list of mempool
changes to be included in its generated callbacks, fixing this isnt
too hard.

Further in this change-set, CValidationInterface starts listening
to mempool directly, placing it in the middle and giving it a bit
of logic to know how to route notifications from block-validation,
mempool, etc (though not listening for conflicted-removals yet).
src/net_processing.cpp
src/net_processing.h
src/validation.cpp
src/validationinterface.cpp
src/validationinterface.h
src/wallet/wallet.cpp
src/wallet/wallet.h
src/zmq/zmqnotificationinterface.cpp
src/zmq/zmqnotificationinterface.h