-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(consensus): deferred execution fixes (#1039)
Description --- - fix incorrect transaction fee after execution - fix incorrect resolved substates for rejected transations - calculate merkle root for block after all executions for a block are complete - commit JMT diff as part of block changeset - fix deferred transaction finalization - fix mempool marks transaction as deferred and sends to consensus instead of ABORTing deferred transactions immediately Motivation and Context --- Number of omissions and bugs in deferred transaction execution are fixed in the PR. How Has This Been Tested? --- Manually, commenting out code in the wallet daemon and mempool that fills or resolves inputs for a transaction and use unversioned inputs. The results in deferred execution which succeeds after this PR. Tested creating an account and transferring. Also tested concurrent local-only conflicting transactions, the second transaction was aborted due to a lock conflict, this still needs to be investigated. What process can a PR reviewer use to test or verify this change? --- It's currently not possible to directly test this on a single-shard network without forcing transactions to be deferred in code. Mutlishard deferred is not currently supported because we cannot resolve foreign inputs. Breaking Changes --- - [x] None - [ ] Requires data directory to be deleted - [ ] Other - Please specify
- Loading branch information
Showing
17 changed files
with
214 additions
and
99 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.