14.0.4 Release
Version 14.0.4 includes the following changes:
It resolves a issue where the client would get stuck during signbypayer registration transactions. This issue would occur when syncing past blocks, during the validation process of the NFT registration transaction.
The problem stemmed from the inability to find the spending transaction in the blockdisk or mempool, as it was located in the same block being verified.
The solution involves a unique case for 'signbypayer'. When the transaction is not found in the blockdisk or mempool, the system should search within the block being verified. To do this, it is necessary to send a reference to the current block.
For this search, I have created the following function, which returns a reference to the spending transaction:
bool FindTransactionInBlock(const CBlock& block, const uint256& txToFind, CTransaction &tx) { for (int i = 0; i < (int) block.vtx.size(); i++) { const CTransaction &txi = block.vtx[i]; if (txi.GetHash() == txToFind) { tx = txi; return true; } } return false; }
Furthermore, the new version resolves dependency issues in GitLab CI/CD. All builds are now fully functional again.