1

Let:

a) the vector triplet <x,y,z> refer <height, index, parent_index>

b) blocks, block100, block110 (of height 1) are mined together and they both refer previous block block00[null] (of height 0).

Block, block110 (of height 1) gets a child block and its branch grows but

block block100 doesn't get any child block till then and became leaf/fork.

Please advise what happens to the ith transaction t100i of block, block100 that is not included in the branching block, block110.

1

On nodes that had accepted block100: when they disconnect it to reorg they will remember the transactions in it and attempt to reinsert into the mempool any that fell out once they finish the reorg. If they're still valid, they'll be added and queued for mining in a future block.

On nodes that initially accepted block110: the transactions that were still valid after accepting the block will remain in the mempool queued for mining in a future block.

Transactions which were invalidated by other transactions included in block110 are forgotten by nodes.

0

I assume you mean t100i is confirmed in block100, and not in block110.

t100i remains in the branch which has block100 as it's tip. However, since the branch which includes block110 has a tip with more accumulated POW, it is the one that represents the current valid ordering of transactions (strong chain).

For the node following/validating the strong chain, t100i may or may not be an valid transaction:

  • If t100i is not mined in block block110, and there was no other confirmed transaction in the strong chain which spent the UTXO's of t100i, t100i is still a valid transaction, and can be accepted to the mempool.
  • If another confirmed transaction in the strong chain spends the same UTXO's as t100i first, t100i becomes invalid, as it double-spends the same previous outputs.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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