Fixed an issue where transaction indexes of block could be lost, #980
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The problems I encountered:
I have done customization development in WriteBlock(block, pindex) and WriteBlock(block, pindex) maybe return false, where i restart the node and find that the transaction cannot be obtained through the transaction index
Here's why:
If run Commit() first, then WriteBlock(block, pindex), At this time, the transaction indexed of the block has been marked as successfully created, but if WriteBlock(block, pindex) fails to be run, the transaction index is not really created, and the transaction data will not be found out through the transaction index. so WriteBlock(block, pindex) must be executed first before committing () is executed.