I don't understand if each full node has different mempool inside.

With RPC command getblocktemplate I can Get the information about candidate block. I can Find all transaction verified but unconfirmed And I can find even bits and target, the value for mining.

My mempool is different from another node? I have to Update my mempool before build candidate block ?

2 Answers 2


The getblocktemplate is designed for miners, and is constructed from the local mempool. All miners necessarily need a validating full-node to provide them with unconfirmed, valid transactions.

The mempool differs from one node to the other, and this may not be so relevant for merchants or individuals validating transactions, but this is highly relevant for miners, increasingly so as the transaction fee part of the block reward increases over time.

The sooner your node is able to accept new valid transactions, the more efficiently you can mine for blocks with the highest fees. The blocktemplate function reflects this. A well-connected node will produce block templates optimised with better fees than one that only has a subset of the transaction mempool.

Some may argue that transactions make up only a small part of the miner reward, and in some cases today mining empty blocks may be worth the extra hashing time that would otherwise be idling whilst the most optimal block template is constructed. This may be true today, but the system security rests on the incentive of miners to confirm a given transaction. This is the confirmation fee-market between users and miners.

If miner rewards solely consisted of subsidy (inflation), there would be no opportunity cost to censorship, and therefore the system security would be zero. Therefore, a system that allows data to propagate across mempools as efficiently as possible, facilitating the creation of the most rewarding block templates is highly relevant for the confirmation fee-market to function efficiently.


The mempool of all nodes is different, but this isn't an issue. There will always be some inconsistency due to latency, network conditions, and differing configurations. This doesn't measurably impact your income and won't effect the validity of blocks you produce.

  • thanks, Im runnung a full node, with command getblocktemplate I get always the same bits o target since 1 week. I have the update the mempool?
    – monkeyUser
    Commented Jan 11, 2019 at 10:54
  • 1
    The “bits” is the difficulty of the block, which is updated every 2 weeks. This is unrelated to the men pool.
    – Claris
    Commented Jan 11, 2019 at 11:02
  • thanks, then the mempool auto-update every 2 weeks? Txs and bits ? or Txs update every time a new block created from the network ?
    – monkeyUser
    Commented Jan 11, 2019 at 11:06
  • 1
    No the mempool updates whenever a new valid transaction is accepted, which originated from a connected node. The difficulty adjusts every 2016 blocks, to be precise, not every 2 weeks.
    – James C.
    Commented Jan 11, 2019 at 12:14
  • Your mempool state will definitely affect your income as a miner, see answer below.
    – James C.
    Commented Jan 11, 2019 at 12:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.