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

Problem: recent optimizations not included #1669

Merged
merged 8 commits into from
Nov 2, 2024

Conversation

yihuang
Copy link
Collaborator

@yihuang yihuang commented Nov 1, 2024

Solution:

  • add several optimizations in dependencies: a) async fireEvents, b) faster prepare proposal when using NopMempool, c) parallel check-tx

👮🏻👮🏻👮🏻 !!!! REFERENCE THE PROBLEM YOUR ARE SOLVING IN THE PR TITLE AND DESCRIBE YOUR SOLUTION HERE !!!! DO NOT FORGET !!!! 👮🏻👮🏻👮🏻

PR Checklist:

  • Have you read the CONTRIBUTING.md?
  • Does your PR follow the C4 patch requirements?
  • Have you rebased your work on top of the latest master?
  • Have you checked your code compiles? (make)
  • Have you included tests for any non-trivial functionality?
  • Have you checked your code passes the unit tests? (make test)
  • Have you checked your code formatting is correct? (go fmt)
  • Have you checked your basic code style is fine? (golangci-lint run)
  • If you added any dependencies, have you checked they do not contain any known vulnerabilities? (go list -json -m all | nancy sleuth)
  • If your changes affect the client infrastructure, have you run the integration test?
  • If your changes affect public APIs, does your PR follow the C4 evolution of public contracts?
  • If your code changes public APIs, have you incremented the crate version numbers and documented your changes in the CHANGELOG.md?
  • If you are contributing for the first time, please read the agreement in CONTRIBUTING.md now and add a comment to this pull request stating that your PR is in accordance with the Developer's Certificate of Origin.

Thank you for your code, it's appreciated! :)

Summary by CodeRabbit

Release Notes

  • New Features

    • Added support for registering payee and counterpartyPayee in the relayer precompile.
  • Improvements

    • Enhanced performance for asynchronous event firing and proposal preparation.
    • Updated dependencies to improve compatibility and performance.
    • Introduced a testnet benchmark command for better performance evaluation.
    • Implemented parallel generation of test transactions and improved load generator behavior.
    • Enhanced transaction validation process with byte data for more robust handling.
  • Bug Fixes

    • Resolved issues with single validator benchmarks and ensured proper node shutdown.
    • Fixed state overwrites in debug trace APIs and improved transaction validation logic.
    • Addressed issues with multisig accounts and unsupported sign modes.

These changes enhance the application's functionality and performance, providing a more reliable user experience.

Solution:
- add several optimizations in dependencies: a) async fireEvents, b)
  faster prepare proposal when using NopMempool
Copy link
Contributor

coderabbitai bot commented Nov 1, 2024

Walkthrough

The pull request introduces multiple updates across several files, primarily focusing on enhancements to the proposal handling mechanism, transaction validation, and dependency management. Key changes include the addition of support for registering payees in the relayer precompile, optimizations in proposal handling, and updates to the go.mod and gomod2nix.toml files to reflect new versions of dependencies. The changelog has been updated to document these new features, improvements, and bug fixes across various releases.

Changes

File Change Summary
CHANGELOG.md Updated to include new features, improvements, and bug fixes across releases, including support for payee registration and performance optimizations.
app/app.go Modified the New function to use baseapp.NewDefaultProposalHandlerFast for optimized proposal handling.
app/proposal.go Updated transaction validation methods to include byte representation; added SelectTxForProposalFast method.
go.mod Updated Go version and various dependencies to newer versions, including golang.org/x/crypto and google.golang.org/grpc.
gomod2nix.toml Updated module versions and hashes for dependencies, ensuring integrity and compatibility with new versions.
app/proposal_test.go Introduced new test file with mock transaction selector and unit tests for SelectTxForProposalFast.

Possibly related PRs

Suggested reviewers

  • calvinaco
  • mmsqe
  • devashishdxt

Poem

🐇 In the meadow where rabbits play,
New features hop in, brightening the day!
With faster proposals and checks that are keen,
Our code now dances, agile and lean.
Dependencies updated, all in a row,
Let’s celebrate changes, watch our project grow! 🌼


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 2d0b731 and 1fe74b7.

⛔ Files ignored due to path filters (1)
  • go.sum is excluded by !**/*.sum
📒 Files selected for processing (4)
  • CHANGELOG.md (1 hunks)
  • go.mod (5 hunks)
  • gomod2nix.toml (7 hunks)
  • integration_tests/ibc_utils.py (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (3)
  • CHANGELOG.md
  • go.mod
  • gomod2nix.toml
🔇 Additional comments (2)
integration_tests/ibc_utils.py (2)

167-167: LGTM! Improved code organization.

Moving the CLI initialization outside the conditional block makes it available throughout the function scope, improving code organization and reducing redundancy.


184-185: LGTM! Enhanced test stability.

The addition of explicit waits for new blocks on both chains is a good defensive programming practice. This ensures that both networks are stable and synchronized before proceeding with further operations, preventing potential race conditions in the tests.


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@yihuang yihuang requested a review from mmsqe November 1, 2024 07:01
Copy link

codecov bot commented Nov 1, 2024

Codecov Report

Attention: Patch coverage is 65.38462% with 9 lines in your changes missing coverage. Please review.

Project coverage is 35.27%. Comparing base (b6063d4) to head (1fe74b7).
Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
app/proposal.go 65.38% 9 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##             main    #1669       +/-   ##
===========================================
+ Coverage   16.88%   35.27%   +18.38%     
===========================================
  Files          72      123       +51     
  Lines        6149    11752     +5603     
===========================================
+ Hits         1038     4145     +3107     
- Misses       4988     7193     +2205     
- Partials      123      414      +291     
Files with missing lines Coverage Δ
app/proposal.go 32.45% <65.38%> (+11.86%) ⬆️

... and 69 files with indirect coverage changes

@yihuang yihuang marked this pull request as ready for review November 1, 2024 07:12
@yihuang yihuang requested a review from a team as a code owner November 1, 2024 07:12
@yihuang yihuang requested review from JayT106 and removed request for a team November 1, 2024 07:12
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Outside diff range and nitpick comments (3)
app/proposal.go (2)

143-143: Good optimization: Lazy transaction decoding.

The addition of lazy transaction decoding is a good optimization that avoids unnecessary decoding when the blocklist is empty or when the transaction object is already available.

Consider adding debug logging to help track validation failures:

 if tx == nil {
+    // Debug logging to track validation performance
+    logger := ctx.Logger()
+    logger.Debug("decoding transaction for validation")
     tx, err = h.TxDecoder(txBz)
     if err != nil {
+        logger.Debug("transaction decoding failed", "error", err)
         return err
     }
 }

Also applies to: 149-156

🧰 Tools
🪛 GitHub Check: codecov/patch

[warning] 143-143: app/proposal.go#L143
Added line #L143 was not covered by tests


Missing test coverage for new transaction validation optimizations

The code introduces performance optimizations in transaction validation but lacks corresponding test coverage. Specifically:

  • No tests for ExtTxSelector and its methods SelectTxForProposal and SelectTxForProposalFast
  • No tests for ProposalHandler and its transaction validation logic
  • No tests for blocklist functionality

Please add unit tests covering:

  • Transaction selection with valid/invalid transactions
  • Fast transaction selection with batch processing
  • Blocklist validation scenarios
  • Edge cases like empty blocklist and nil transactions
🔗 Analysis chain

Line range hint 1-200: Architectural Review: Sound optimizations need test coverage.

The changes introduce well-thought-out optimizations that align with the PR objectives:

  1. Lazy transaction decoding reduces unnecessary processing
  2. Batch transaction processing with SelectTxForProposalFast
  3. Raw byte-level validation support

However, the lack of test coverage for these critical paths is concerning. Consider adding comprehensive tests before merging.

Let's check the current test coverage:

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for existing test files
fd -e go -e _test.go . | grep -i proposal

Length of output: 266


Script:

#!/bin/bash
# Search for test files specifically in app directory
fd -e go -e _test.go . app/

# Look for any test functions related to proposal handling
rg -l "func.*Test.*Proposal" 

# Check for any existing test implementations for ExtTxSelector or ProposalHandler
ast-grep --pattern 'func Test$_(t *testing.T) {
  $$$
}'

Length of output: 358


Script:

#!/bin/bash
# Let's specifically look for any test content in app/bench_test.go and app/sim_test.go
cat app/bench_test.go app/sim_test.go

# Search for any existing test implementations related to transaction validation or proposal handling
rg -A 5 "func.*Test.*" app/

# Check if there are any test utilities or setup code in test_helpers.go
cat app/test_helpers.go

Length of output: 39170

🧰 Tools
🪛 GitHub Check: codecov/patch

[warning] 50-55: app/proposal.go#L50-L55
Added lines #L50 - L55 were not covered by tests


[warning] 58-64: app/proposal.go#L58-L64
Added lines #L58 - L64 were not covered by tests


[warning] 66-66: app/proposal.go#L66
Added line #L66 was not covered by tests


[warning] 69-69: app/proposal.go#L69
Added line #L69 was not covered by tests


[warning] 72-72: app/proposal.go#L72
Added line #L72 was not covered by tests

go.mod (1)

Line range hint 3-5: Fix Go version mismatch and invalid version number

There are two critical issues with the Go version configuration:

  1. Go 1.23.1 doesn't exist yet (latest stable version is 1.22.1 as of April 2024)
  2. The module version (1.22.7) and toolchain version (1.23.1) are mismatched, which could lead to compatibility issues

Apply this fix:

go 1.22.7
-toolchain go1.23.1
+toolchain go1.22.1
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between b6063d4 and ce12761.

⛔ Files ignored due to path filters (1)
  • go.sum is excluded by !**/*.sum
📒 Files selected for processing (5)
  • CHANGELOG.md (1 hunks)
  • app/app.go (1 hunks)
  • app/proposal.go (5 hunks)
  • go.mod (5 hunks)
  • gomod2nix.toml (7 hunks)
🧰 Additional context used
🪛 GitHub Check: codecov/patch
app/proposal.go

[warning] 41-41: app/proposal.go#L41
Added line #L41 was not covered by tests


[warning] 50-55: app/proposal.go#L50-L55
Added lines #L50 - L55 were not covered by tests


[warning] 58-64: app/proposal.go#L58-L64
Added lines #L58 - L64 were not covered by tests


[warning] 66-66: app/proposal.go#L66
Added line #L66 was not covered by tests


[warning] 69-69: app/proposal.go#L69
Added line #L69 was not covered by tests


[warning] 72-72: app/proposal.go#L72
Added line #L72 was not covered by tests


[warning] 143-143: app/proposal.go#L143
Added line #L143 was not covered by tests


[warning] 149-154: app/proposal.go#L149-L154
Added lines #L149 - L154 were not covered by tests


[warning] 186-186: app/proposal.go#L186
Added line #L186 was not covered by tests

🔇 Additional comments (10)
app/proposal.go (2)

186-189: LGTM: Efficient proposal validation.

The update to use nil for the transaction parameter in ValidateTransaction is correct, as it leverages the lazy decoding optimization.

🧰 Tools
🪛 GitHub Check: codecov/patch

[warning] 186-186: app/proposal.go#L186
Added line #L186 was not covered by tests


29-29: LGTM: Signature change enhances validation flexibility.

The addition of the []byte parameter to ValidateTx allows for efficient validation of raw transaction bytes, which aligns with the optimization goals.

Let's verify this change is consistently applied across the codebase:

#!/bin/bash
# Search for any remaining old-style ValidateTx calls that might need updating
ast-grep --pattern 'ValidateTx($x)'

Also applies to: 32-37

go.mod (3)

44-44: Verify security implications of dependency updates

The updates to security-sensitive packages need verification:

  • golang.org/x/crypto → v0.28.0
  • google.golang.org/grpc → v1.67.1

Also applies to: 46-46


259-259: Review implications of using custom repository forks

The project is using custom forks for critical dependencies:

  • cosmos-sdk → crypto-org-chain/cosmos-sdk
  • cometbft → crypto-org-chain/cometbft
  • ethermint → crypto-org-chain/ethermint

This approach requires careful maintenance to:

  1. Keep track of upstream security fixes
  2. Maintain compatibility with the ecosystem
  3. Handle potential breaking changes

Consider:

  1. Documenting the reasons for using forks
  2. Setting up automated monitoring for upstream changes
  3. Planning for eventual migration back to upstream versions

Also applies to: 271-272, 278-278


193-193: Verify compatibility of golang.org/x/ package versions*

The updates to golang.org/x/* packages should maintain version alignment:

  • sys v0.26.0
  • term v0.25.0
  • text v0.19.0

These version differences might indicate potential compatibility issues.

Also applies to: 238-240

gomod2nix.toml (3)

656-657: Standard library updates look appropriate.

The updates to golang.org/x packages follow semantic versioning and are standard updates:

  • crypto: v0.28.0
  • sys: v0.26.0
  • term: v0.25.0
  • text: v0.19.0

Also applies to: 674-675, 677-678, 680-681


519-520: Minor version bumps for monitoring and RPC dependencies.

The updates to prometheus client (v1.20.5) and gRPC (v1.67.1) are minor version bumps that should maintain backward compatibility.

Also applies to: 701-702


161-163: Verify stability of development versions and forks.

The changes include using development versions and forks for critical dependencies:

  • cometbft: v0.0.0-20241101071018-f2b043f6eebe
  • cosmos-sdk: v0.50.6-0.20241101065553-a70c19a03a81
  • ethermint: v0.6.1-0.20241101053009-8afdc6924206

While using forks allows for custom modifications, it requires careful tracking of upstream changes and potential merge conflicts.

Also applies to: 177-178, 266-267

✅ Verification successful

Let me analyze the fork information:

  1. cometbft fork:

    • Last updated: Oct 23, 2024
    • Parent: cometbft/cometbft
  2. cosmos-sdk fork:

    • Last updated: Apr 26, 2024
    • Parent: cosmos/cosmos-sdk
  3. ethermint fork:

    • Last updated: Nov 1, 2024
    • Parent: evmos/ethermint

Let's verify if these development versions correspond to the latest commits in these forks:


Let's verify if these are the latest commits in each fork:


Development versions are pinned to specific commits and actively maintained

The development versions referenced in gomod2nix.toml are pinned to specific commits that are:

  • All verifiable in their respective forks
  • Part of actively maintained forks (last updates: ethermint Nov 1, cometbft Oct 23, cosmos-sdk Apr 26)
  • Using intentionally chosen commits rather than latest main branch commits

While using development versions requires careful tracking, the current setup shows a controlled approach with specific commit pins rather than floating versions.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check if the forked repositories are in sync with upstream
# Test: Look for recent commits in the forks that haven't been merged upstream

# Check cometbft fork
echo "Checking cometbft fork..."
gh repo view crypto-org-chain/cometbft --json updatedAt,parent

# Check cosmos-sdk fork
echo "Checking cosmos-sdk fork..."
gh repo view crypto-org-chain/cosmos-sdk --json updatedAt,parent

# Check ethermint fork
echo "Checking ethermint fork..."
gh repo view crypto-org-chain/ethermint --json updatedAt,parent

Length of output: 849


Script:

#!/bin/bash
# Check if the commit hashes in gomod2nix.toml match the latest commits in the forks

# Extract commit hashes from version strings
echo "Checking cometbft commit..."
gh api repos/crypto-org-chain/cometbft/commits/f2b043f6eebe --jq '.sha'

echo "Checking cosmos-sdk commit..."
gh api repos/crypto-org-chain/cosmos-sdk/commits/a70c19a03a81 --jq '.sha'

echo "Checking ethermint commit..."
gh api repos/crypto-org-chain/ethermint/commits/8afdc6924206 --jq '.sha'

Length of output: 542


Script:

#!/bin/bash
# Check if these commits are the latest in their respective branches

echo "Latest cometbft commit:"
gh api repos/crypto-org-chain/cometbft/commits/main --jq '.sha'

echo "Latest cosmos-sdk commit:"
gh api repos/crypto-org-chain/cosmos-sdk/commits/main --jq '.sha'

echo "Latest ethermint commit:"
gh api repos/crypto-org-chain/ethermint/commits/main --jq '.sha'

Length of output: 494

CHANGELOG.md (1)

14-14: LGTM: Changelog entry accurately reflects the PR changes.

The changelog entry properly documents both performance optimizations mentioned in the PR objectives:

  1. async fireEvents
  2. faster prepare proposal when using NopMempool
app/app.go (1)

423-423: Performance optimization: Using fast proposal handler

The change from NewDefaultProposalHandler to NewDefaultProposalHandlerFast aligns with the PR objective of optimizing proposal preparation when using NopMempool. This should improve performance by using a more efficient implementation.

Let's verify the implementation of the fast proposal handler:

✅ Verification successful

Performance optimization confirmed with additional validation

The switch to NewDefaultProposalHandlerFast is part of a well-structured optimization that:

  1. Uses a faster proposal handler from the Cosmos SDK
  2. Extends transaction validation through a custom ExtTxSelector that adds extra security checks
  3. Maintains compatibility with the existing mempool while improving performance

The implementation is properly integrated with additional validation logic through ExtTxSelector, which wraps the default selector and adds custom transaction validation, making this a safe optimization.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for the implementation of NewDefaultProposalHandlerFast to understand the optimizations
rg -A 10 "func NewDefaultProposalHandlerFast"

Length of output: 47


Script:

#!/bin/bash
# Let's try searching in a broader context to find the proposal handler implementation
rg -i "defaultproposalhandlerfast"

# Also search for any related proposal handler types or interfaces
rg -i "proposalhandler"

# Let's also check for any imports that might contain the implementation
rg "baseapp" app/app.go

Length of output: 3215


Script:

#!/bin/bash
# Let's check the import path to locate baseapp's implementation
rg -l "cosmos-sdk/baseapp"

# Let's also check for any documentation or comments about the proposal handlers
rg -B 3 -A 3 "NewDefaultProposalHandlerFast|NewDefaultProposalHandler" 

# Let's examine the ExtTxSelector implementation since it's used with the fast handler
rg -A 10 "func NewExtTxSelector"

Length of output: 1266

app/proposal.go Show resolved Hide resolved
Copy link
Collaborator

@mmsqe mmsqe left a comment

Choose a reason for hiding this comment

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

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Outside diff range and nitpick comments (1)
app/proposal_test.go (1)

13-20: Enhance mock implementation documentation and initialization.

The current mock implementation could benefit from:

  1. Documentation explaining the purpose of the mock and why returning unmodified transactions is sufficient for testing
  2. Proper initialization check for the embedded TxSelector

Consider applying these improvements:

 type mockTxSelector struct {
 	baseapp.TxSelector
 }
 
+// SelectTxForProposalFast implements a test-specific version that returns unmodified
+// transactions. This is sufficient for testing the ExtTxSelector's validation logic
+// as the actual selection is handled by the validation function in the test cases.
 func (mts *mockTxSelector) SelectTxForProposalFast(ctx context.Context, txs [][]byte) [][]byte {
-	// For testing purposes, simply return the txs as is
+	if mts.TxSelector == nil {
+		panic("mockTxSelector: TxSelector not initialized")
+	}
 	return txs
 }
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between ce12761 and 35b00f4.

📒 Files selected for processing (1)
  • app/proposal_test.go (1 hunks)
🔇 Additional comments (2)
app/proposal_test.go (2)

1-11: LGTM: Package and imports are well-structured.

The necessary testing dependencies are properly imported, and the package declaration is correct.


1-74: Verify test coverage aligns with optimization goals.

The test file implements validation for the proposal preparation optimization mentioned in the PR objectives. However, let's verify that all optimization-related code paths are covered.

✅ Verification successful

Test coverage adequately verifies optimization implementation

The test file properly covers the SelectTxForProposalFast optimization with comprehensive test cases:

  • Empty transaction list handling
  • All valid transactions scenario
  • All invalid transactions filtering
  • Mixed valid/invalid transactions processing
  • Edge cases with invalid transactions at boundaries

The implementation in proposal.go shows the optimization matches the test coverage:

  • Fast path for empty blocklist
  • Efficient filtering of invalid transactions
  • Proper delegation to parent selector for final selection

The test coverage aligns well with the optimization goals mentioned in the PR objectives, providing sufficient verification of the proposal preparation improvements.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for related proposal preparation and NopMempool code
echo "Searching for related proposal preparation code..."
rg -l "SelectTxForProposal|NopMempool" --type go

echo "Checking for any TODO or FIXME comments related to optimizations..."
rg -i "todo.*optim|fixme.*optim" --type go

Length of output: 388


Script:

#!/bin/bash
# Let's examine the implementation details in proposal.go
echo "=== Content of proposal.go ==="
cat app/proposal.go

# Let's also check for any other test files that might be related
echo -e "\n=== Searching for other test files with 'proposal' or 'mempool' in their name ==="
fd -t f ".*test.*" -E "*_test.go" | grep -i "proposal\|mempool"

# Check for any mempool-related implementations
echo -e "\n=== Searching for mempool implementations ==="
rg "type.*Mempool" --type go

Length of output: 5676

app/proposal_test.go Show resolved Hide resolved
app/proposal_test.go Show resolved Hide resolved
@yihuang yihuang marked this pull request as draft November 1, 2024 11:32
CHANGELOG.md Outdated Show resolved Hide resolved
Signed-off-by: yihuang <[email protected]>
@yihuang yihuang marked this pull request as ready for review November 2, 2024 01:53
@yihuang yihuang added this pull request to the merge queue Nov 2, 2024
Merged via the queue into crypto-org-chain:main with commit 9a9018f Nov 2, 2024
38 checks passed
@yihuang yihuang deleted the optimize branch November 2, 2024 13:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants