forked from cosmos/cosmos-sdk
-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Problem: fee collection not compatible with parallel execution #237
Merged
yihuang
merged 1 commit into
crypto-org-chain:release/v0.50.x
from
yihuang:fee-collection
Mar 28, 2024
Merged
Problem: fee collection not compatible with parallel execution #237
yihuang
merged 1 commit into
crypto-org-chain:release/v0.50.x
from
yihuang:fee-collection
Mar 28, 2024
Conversation
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
@@ -195,6 +197,10 @@ | |||
) | |||
} | |||
|
|||
func (am AppModule) EndBlock(ctx context.Context) error { | |||
return am.keeper.CreditVirtualAccounts(ctx) |
Check warning
Code scanning / CodeQL
Panic in BeginBock or EndBlock consensus methods Warning
path flow from Begin/EndBlock to a panic call
path flow from Begin/EndBlock to a panic call
path flow from Begin/EndBlock to a panic call
path flow from Begin/EndBlock to a panic call
path flow from Begin/EndBlock to a panic call
path flow from Begin/EndBlock to a panic call
path flow from Begin/EndBlock to a panic call
path flow from Begin/EndBlock to a panic call
path flow from Begin/EndBlock to a panic call
yihuang
changed the title
Problem: no efficient way to collect fee
Problem: fee collection not compatible with parallel execution
Mar 27, 2024
mmsqe
reviewed
Mar 28, 2024
yihuang
commented
Mar 28, 2024
mmsqe
approved these changes
Mar 28, 2024
Solution: - support an idea of virtual account in bank module, where the incoming coins are accumulated in a per-tx object store first, then accumulate and credit to the real account at end blocker. it's nesserary to support parallel tx execution, where we try not to access shared states. more efficient sum support SendCoinsFromModuleToAccountVirtual fix test fix test fix lint fix test fix test fix test fix test fix test fix mock keeper try fix lint try fix lint reuse code try fix linter Update x/bank/keeper/send.go Signed-off-by: yihuang <[email protected]> algin panic call fix error handling try fix lint nolintlint generate falst postiive
yihuang
merged commit Mar 28, 2024
9ef65ec
into
crypto-org-chain:release/v0.50.x
43 of 45 checks passed
zsystm
pushed a commit
to b-harvest/cosmos-sdk
that referenced
this pull request
May 28, 2024
…cution (crypto-org-chain#237) Reason for Cherry-pick: - Migrate Block STM (Parallel Transaction Execution) - Avoid common conflict problem (fee collection happens for every tx) Notes for Cherry-pick: - Use transient store instead of object store introduced by Cronos Original Commit Message: * Problem: no efficient way to collect fee Solution: - support an idea of virtual account in bank module, where the incoming coins are accumulated in a per-tx object store first, then accumulate and credit to the real account at end blocker. it's nesserary to support parallel tx execution, where we try not to access shared states. more efficient sum support SendCoinsFromModuleToAccountVirtual fix test fix test * fix lint * fix test * fix test * fix test * fix test * fix test * fix mock keeper * try fix lint * try fix lint * reuse code * try fix linter * Update x/bank/keeper/send.go Signed-off-by: yihuang <[email protected]> * algin panic call * fix error handling * try fix lint * nolintlint generate falst postiive --------- Signed-off-by: yihuang <[email protected]> Cherry-picked-by: zsystm <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Solution:
support an idea of virtual account in bank module, where the incoming coins are accumulated in a per-tx object store first, then accumulate and credit to the real account at end blocker.
it's nesserary to support parallel tx execution, where we try not to access shared states in tx execution.
Description
Closes: #XXXX
Author Checklist
All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.
I have...
!
in the type prefix if API or client breaking changeCHANGELOG.md
Reviewers Checklist
All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.
I have...