Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Nodes stopped at height 25709 and failed to produce blocks #386
It was assumed that the final UTXO set (and hence its commitment) should not depend on whether the cut-through was applied or not (i.e. creating and deleting an UTXO yields no effect), and the Node that constructed the block calculated the commitment to the UTXO set straight after interpreting all the transaction that are to be put in the block (which is identical to the block, up to sorting and cut-through).
But this assumption turned-out to be inaccurate.
In the reproduced scenarion there was an UTXO A already presented in a block, whereas in the transaction pool there were both a transaction that spends A, and the transaction that creates A once again.
And, as we said, old and new UTXOs are different because their maturities are different. Hence the whole UTXO state was different.
The reason (most probably) was improper use of wallets, that we discourage strongly.
In addition to causing this problem (that was fixed), duplicated UTXOs would create hassles to the user. Existence of multiple identical UTXOs in the blockchain is allowed be design (there are important use-cases for this), but would not be handled properly in the current wallet implementation. Users may see temporarily some of their funds "missing" (multiple identical UTXOs are interpreted as a single UTXO).
P.S. At the moment of writing this (Blockchain height 25879) there are no duplicated UTXOs in the blockchain.