In: Computer Science
Bitcoin nodes (or clients) in a Bitcoin network end up with
dierent versions of the pending transaction
pool: True or False, Explain why?
True
Yes, different nodes have different views of the pending
transaction pool in the case of transactions, depending on who is
going to mine the next block. If this is the case, they will break
the tie with a race condition. Also, they will decide which of
those pending transactions should be put permanently into a
block.
When there is a need and ask to check out a new transaction, with one node asking another, where one node wants to pay another, those nodes will add it to their own pending transactions pool. Thus, every node in the Bitcoin network ends up maintaining a list of all the transactions they have heard about, the transactions that are to put into the blockchain yet. Later they get to decide to forward that on to other nodes.
It is possible nodes will end up with a different view of the pending transaction pool depending on what they have heard about or seen. There are chances the network could end up in a divided state. If this happens, different nodes have different views of what the pending transaction pool is like. However, this is acceptable and fine. These transactions have not been published in the blockchain yet. Hence, this would only be a temporary state where nodes disagree on which transaction is to be put into the next block. This situation is a race condition, in practice, as transactions or blocks may conflict. It is acceptable in a temporary state, in case, every node has a different perspective on which transactions are pending or which blocks have been accepted. Over time they will sort this problem out.
Thus, nodes may differ in the transaction pool.