Skip to content
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

fix(baseapp): select txs correctly with no-op mempool #17769

Merged
merged 18 commits into from
Sep 24, 2023

Conversation

alexanderbez
Copy link
Contributor

@alexanderbez alexanderbez commented Sep 15, 2023

Description

Currently, when an application uses a no-op mempool or no mempool at all, we simply return the txs provided to the app from CometBFT.

However, simply returning the txs is incorrect per the ABCI CometBFT specification as we need to ensure the returned txs meet block size constraints (size and gas).

I've abstracted away this logic into a TxSelector type which should make the code easier to read

Also, there was a comparison bug (< vs <=)


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...

  • included the correct type prefix in the PR title
  • added ! to the type prefix if API or client breaking change
  • targeted the correct branch (see PR Targeting)
  • provided a link to the relevant issue or specification
  • followed the guidelines for building modules
  • included the necessary unit and integration tests
  • added a changelog entry to CHANGELOG.md
  • included comments for documenting Go code
  • updated the relevant documentation or specification
  • reviewed "Files changed" and left comments if necessary
  • run make lint and make test
  • confirmed all CI checks have passed

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...

  • confirmed the correct type prefix in the PR title
  • confirmed ! in the type prefix if API or client breaking change
  • confirmed all author checklist items have been addressed
  • reviewed state machine logic
  • reviewed API design and naming
  • reviewed documentation is accurate
  • reviewed tests and test coverage
  • manually tested (if applicable)

baseapp/abci_utils.go Outdated Show resolved Hide resolved
baseapp/abci_utils.go Outdated Show resolved Hide resolved
@alexanderbez alexanderbez added backport/v0.47.x PR scheduled for inclusion in the v0.47's next stable release backport/v0.50.x PR scheduled for inclusion in the v0.50's next stable release labels Sep 15, 2023
@alexanderbez alexanderbez marked this pull request as ready for review September 18, 2023 02:15
@alexanderbez alexanderbez requested a review from a team as a code owner September 18, 2023 02:15
@github-prbot github-prbot requested review from a team, tac0turtle and atheeshp and removed request for a team September 18, 2023 02:15
baseapp/abci_utils.go Outdated Show resolved Hide resolved
Copy link
Collaborator

@odeke-em odeke-em left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work @alexanderbez, just some review comments but mostly LGTM!

baseapp/abci_utils.go Outdated Show resolved Hide resolved
baseapp/abci_utils.go Outdated Show resolved Hide resolved
baseapp/abci_utils_test.go Outdated Show resolved Hide resolved
Copy link
Collaborator

@odeke-em odeke-em left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you @alexanderbez, though just one code suggestion wasn't dismissed nor acknowledged.

baseapp/abci_utils.go Outdated Show resolved Hide resolved
@alexanderbez
Copy link
Contributor Author

LGTM, thank you @alexanderbez, though just one code suggestion wasn't dismissed nor acknowledged.

It was a nitpick -- dismissed 👍

Copy link
Member

@julienrbrt julienrbrt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm!

Copy link
Contributor

@itsdevbear itsdevbear left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, good with leaving the nit

@julienrbrt julienrbrt mentioned this pull request Sep 21, 2023
15 tasks
@julienrbrt julienrbrt changed the title fix: select txs correctly with no-op mempool fix(baseapp): select txs correctly with no-op mempool Sep 22, 2023
@alexanderbez alexanderbez added this pull request to the merge queue Sep 24, 2023
Merged via the queue into main with commit 63d046d Sep 24, 2023
49 checks passed
@alexanderbez alexanderbez deleted the bez/default-prep-prop-size-check branch September 24, 2023 19:26
mergify bot pushed a commit that referenced this pull request Sep 24, 2023
(cherry picked from commit 63d046d)

# Conflicts:
#	CHANGELOG.md
mergify bot pushed a commit that referenced this pull request Sep 24, 2023
(cherry picked from commit 63d046d)

# Conflicts:
#	CHANGELOG.md
#	baseapp/abci_utils.go
#	baseapp/abci_utils_test.go
#	baseapp/baseapp.go
julienrbrt pushed a commit that referenced this pull request Sep 25, 2023
… (#17848)

Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>
Co-authored-by: Aleksandr Bezobchuk <aleks.bezobchuk@gmail.com>
mmsqe pushed a commit to mmsqe/cosmos-sdk that referenced this pull request Oct 9, 2023
…s#17769) (cosmos#17848)

Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>
Co-authored-by: Aleksandr Bezobchuk <aleks.bezobchuk@gmail.com>
@faddat faddat mentioned this pull request Mar 20, 2024
12 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport/v0.47.x PR scheduled for inclusion in the v0.47's next stable release backport/v0.50.x PR scheduled for inclusion in the v0.50's next stable release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants