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: update miner mempool iterator query to consider both nonces and fee rates #5541

Open
wants to merge 61 commits into
base: develop
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
b0705d0
fix: new query
rafaelcr Dec 7, 2024
a0600b6
chore: remove dev comment
rafaelcr Dec 7, 2024
3719188
style: lint fixes
rafaelcr Dec 11, 2024
2cd116f
fix: add simulated fee rates for null
rafaelcr Dec 13, 2024
685924c
fix: indexes
rafaelcr Dec 13, 2024
e1dac9d
fix: remove tx_fee column
rafaelcr Dec 13, 2024
c587c53
Merge branch 'fix/mempool-query' of github.com:rafaelcr/stacks-core i…
rafaelcr Dec 13, 2024
dd9729c
test: correct tx order
rafaelcr Dec 15, 2024
2406d25
Merge branch 'develop' into fix/mempool-query
rafaelcr Dec 15, 2024
7702f67
fix: nonce ordering
rafaelcr Dec 16, 2024
89d1078
Merge branch 'fix/mempool-query' of github.com:rafaelcr/stacks-core i…
rafaelcr Dec 16, 2024
d0d1f8d
fix: remove now unneccessary index
rafaelcr Dec 16, 2024
cf6c37b
chore: config strategy
rafaelcr Dec 17, 2024
b8b9b89
chore: strategy selection draft
rafaelcr Dec 17, 2024
ea49875
fix: correct tx confirmation order
rafaelcr Dec 17, 2024
a56baef
test: success
rafaelcr Dec 18, 2024
a854f3b
test: missing nonces from table
rafaelcr Dec 18, 2024
c24c2ad
chore: merge upstream develop
rafaelcr Dec 18, 2024
07cf97f
style: fixes
rafaelcr Dec 18, 2024
0b0b821
style: error transforms
rafaelcr Dec 18, 2024
635cfe3
fix: style
rafaelcr Dec 19, 2024
5038c4d
Merge branch 'develop' into fix/mempool-query
rafaelcr Dec 19, 2024
8b4ec39
feat: redesign nonce cache
obycode Dec 19, 2024
e7eb1cc
chore: remove debug print
obycode Dec 20, 2024
9eb3921
chore: small changes from code review
obycode Dec 20, 2024
5269ed5
chore: fix clippy warning
obycode Jan 3, 2025
3a433b4
Merge branch 'develop' into fix/mempool-query
obycode Mar 5, 2025
70bb65d
Merge branch 'feat/persist-nonce-cache-dev' into fix/mempool-query
obycode Mar 6, 2025
f251a4a
fix: remove the `candidate_cache` during mempool iteration
obycode Mar 6, 2025
6893a2a
fix: resolve DB lock issue
obycode Mar 7, 2025
e9cc50c
chore: remove candidate cache
obycode Mar 10, 2025
635cd48
test: add `large_mempool` integration test
obycode Mar 11, 2025
64d85c2
chore: cleanup
obycode Mar 7, 2025
ebadadb
test: insert transactions directly into the mempool
obycode Mar 12, 2025
967b6d1
feat: improve `NextNonceWithHighestFeeRate` algorithm
obycode Mar 12, 2025
3274f08
feat: further mempool iteration improvements and testing
obycode Mar 14, 2025
3709e96
test: use random fees for `larger_mempool` test
obycode Mar 14, 2025
db4dc8c
refactor: move testing utilities to a common location
obycode Mar 14, 2025
031a824
test: add test for mempool walk with large mempool
obycode Mar 14, 2025
6fd9d07
Merge branch 'develop' into fix/mempool-query
obycode Mar 14, 2025
97c3807
chore: remove unused import
obycode Mar 14, 2025
7f93806
test: fix `large_mempool_random_fee`
obycode Mar 15, 2025
36f2cff
chore: adjust `LIMIT` in mempool query
obycode Mar 15, 2025
fcaf8c5
test: add `tests::signer::v0::larger_mempool`
obycode Mar 17, 2025
0b25c2c
chore: fix merge conflict
obycode Mar 17, 2025
38b8464
chore: put candidate cache back for `GlobalFeeRate` strategy
obycode Mar 17, 2025
0b547a8
fix: resolve issue with `GlobalFeeRate` strategy
obycode Mar 17, 2025
c86ff5a
test: fix Bitcoin test exclusions
obycode Mar 17, 2025
66f7b4c
test: update mempool unit test for latest algorithm
obycode Mar 17, 2025
c757dbe
test: refactor and clean up tests
obycode Mar 18, 2025
ab22c32
test: only assert transaction count for new strategy
obycode Mar 18, 2025
67cc828
chore: clarify order in test
obycode Mar 18, 2025
766278f
fix: only open `nonce_conn` once in `iterate_candidates`
obycode Mar 18, 2025
b2503f2
fix: error in LruCache when evicting clean value
obycode Mar 19, 2025
d9ff63c
fix: reset nonce cache when assembled block is not accepted
obycode Mar 20, 2025
883fbac
fix: nonce cache reset logic
obycode Mar 20, 2025
e4271b3
test: fix large mempool test logic
obycode Mar 20, 2025
1c4303c
Merge branch 'develop' into fix/mempool-query
obycode Mar 20, 2025
94b55c5
feat: add `considered_txs` table
obycode Mar 21, 2025
48ca4e5
test: reduce test flakiness by ignoring phantom transactions
obycode Mar 21, 2025
5abe94d
Merge branch 'develop' into fix/mempool-query
obycode Mar 22, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
chore: clarify order in test
  • Loading branch information
obycode committed Mar 18, 2025
commit 67cc828abda600dc9aa6ab8cdf3cdbcff089dbba
18 changes: 9 additions & 9 deletions stackslib/src/chainstate/stacks/tests/block_construction.rs
Original file line number Diff line number Diff line change
@@ -5244,24 +5244,24 @@ fn mempool_walk_test_next_nonce_with_highest_fee_rate_strategy() {
// Expected transaction consideration order, sorted by mineable first (next origin+sponsor nonces, highest fee).
// Ignores old and very future nonces.
let expected_tx_order = vec![
(address_2.clone(), 6, address_4.clone(), 1, 1000),
(address_2.clone(), 6, address_4.clone(), 1, 1000), // Round 1
(address_5.clone(), 0, address_5.clone(), 0, 500),
(address_0.clone(), 2, address_0.clone(), 2, 300),
(address_2.clone(), 7, address_4.clone(), 2, 800),
(address_2.clone(), 7, address_4.clone(), 2, 800), // Round 2
(address_5.clone(), 1, address_5.clone(), 1, 500),
(address_0.clone(), 3, address_0.clone(), 3, 400),
(address_2.clone(), 8, address_2.clone(), 8, 1000),
(address_2.clone(), 8, address_2.clone(), 8, 1000), // Round 3
(address_4.clone(), 3, address_5.clone(), 2, 550),
(address_0.clone(), 4, address_3.clone(), 0, 500),
(address_5.clone(), 3, address_4.clone(), 4, 2000),
(address_5.clone(), 3, address_4.clone(), 4, 2000), // Round 4
(address_1.clone(), 1, address_3.clone(), 1, 600),
(address_5.clone(), 4, address_4.clone(), 5, 2000),
(address_5.clone(), 4, address_4.clone(), 5, 2000), // Round 5
(address_1.clone(), 2, address_3.clone(), 2, 700),
(address_1.clone(), 3, address_3.clone(), 3, 800),
(address_1.clone(), 4, address_1.clone(), 4, 1200),
(address_1.clone(), 3, address_3.clone(), 3, 800), // Round 6
(address_1.clone(), 4, address_1.clone(), 4, 1200), // Round 7
(address_3.clone(), 4, address_3.clone(), 4, 100),
(address_2.clone(), 9, address_3.clone(), 5, 1000),
(address_2.clone(), 10, address_3.clone(), 6, 1500),
(address_2.clone(), 9, address_3.clone(), 5, 1000), // Round 8
(address_2.clone(), 10, address_3.clone(), 6, 1500), // Round 9
];
assert_eq!(
considered_txs, expected_tx_order,