message: Add any txn hashes from the txCommitQ to the xthin bloom filter.
  Any transaction in the txCommitQ is essentially a fully validated transaction
  and as such we can use it for re-building a block. Here we just add those
  hashes into the bloom filter we send in our get_xthin message.
diff: #include "pow.h"
  #include "requestManager.h"
  #include "timedata.h"
  +#include "txadmission.h"
  #include "txmempool.h"
  #include "txorphanpool.h"
  #include "util.h"
  @@ -1830,13 +1831,24 @@ void BuildSeededBloomFilter(CBloomFilter &filterMemPool,
  }
  }
  }
  - else // Add all the transaction hashes currently in the mempool
  + else
  {
  std::vector<uint256> vMempoolHashes;
  +
  + // Add all the transaction hashes currently in the mempool
  mempool.queryHashes(vMempoolHashes);
  setHighScoreMemPoolHashes.insert(vMempoolHashes.begin(), vMempoolHashes.end());
  }
  + // Also add all the transaction hashes currently in the txCommitQ
  + {
  + boost::unique_lock<boost::mutex> lock(csCommitQ);
  + for (auto &it : txCommitQ)
  + {
  + setHighScoreMemPoolHashes.insert(it.first);
  + }
  + }
  +
  LOG(THIN, "Bloom Filter Targeting completed in:%d (ms)\n", GetTimeMillis() - nStartTimer);
  nStartTimer = GetTimeMillis(); // reset the timer
  @@ -1864,8 +1876,10 @@ void BuildSeededBloomFilter(CBloomFilter &filterMemPool,
  // Count up all the transactions that we'll be putting into the filter, removing any duplicates
  for (const uint256 &txHash : setHighScoreMemPoolHashes)
  + {
  if (setPriorityMemPoolHashes.count(txHash))
  setPriorityMemPoolHashes.erase(txHash);
  + }
  unsigned int nSelectedTxHashes =
  setHighScoreMemPoolHashes.size() + vOrphanHashes.size() + setPriorityMemPoolHashes.size();
  