forked from bitcoin/bitcoin
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
feat: dynamically register MN in functional tests without IS #6430
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
Merged
PastaPastaPasta
merged 5 commits into
dashpay:develop
from
knst:feat-improve-dynamically_prepare_masternode
Dec 2, 2024
Merged
feat: dynamically register MN in functional tests without IS #6430
PastaPastaPasta
merged 5 commits into
dashpay:develop
from
knst:feat-improve-dynamically_prepare_masternode
Dec 2, 2024
Conversation
This file contains hidden or 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
replace wait-IS to bump time in test_framework
5 tasks
UdjinM6
approved these changes
Nov 26, 2024
UdjinM6
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
utACK 37fbdee
PastaPastaPasta
approved these changes
Dec 2, 2024
Member
PastaPastaPasta
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
utACK 37fbdee
Although I would say I'd prefer this to be scope "test" or something similar, as it's hard to call these changes a feat
knst
added a commit
to knst/dash
that referenced
this pull request
Aug 22, 2025
…p IS sport - no more need since dashpay#6430
knst
added a commit
to knst/dash
that referenced
this pull request
Aug 28, 2025
…pay#6430 Reduced amount of mn from 4 to just 3 as no needs for rotation quorum anymore Removed IS spork changes
knst
added a commit
to knst/dash
that referenced
this pull request
Aug 29, 2025
…pay#6430 Reduced amount of mn from 4 to just 3 as no needs for rotation quorum anymore Removed IS spork changes
knst
added a commit
to knst/dash
that referenced
this pull request
Aug 29, 2025
…pay#6430 Reduced amount of mn from 4 to just 3 as no needs for rotation quorum anymore Removed IS spork changes
Merged
5 tasks
PastaPastaPasta
added a commit
that referenced
this pull request
Sep 23, 2025
…llmq_{evo,rotation,chainlocks.py}
2024c65 test: refactor sleep_time as a param (Konstantin Akimov)
2903c11 test: reduce overhead in feature_llmq_evo.py: only 2 regular nodes, only 4 evo nodes, less blocks generated (Konstantin Akimov)
af768e4 test: functional tests for RPC masternodelist if mode="evo" (Konstantin Akimov)
9c6c3b9 test: simplify feature_llmq_evo.py - drop IS support to followup #6430 (Konstantin Akimov)
e42e4bf test: use self.mn_rr instead user provided param in activate_mn_rr (Konstantin Akimov)
3f3a272 test: generate less blocks in llmq_rotation.py (Konstantin Akimov)
db09299 refactor: simplify feature_llmq_rotation.py by excluding llmq=102 (v17 activated) (Konstantin Akimov)
6b9c9af test: remove debug logs with quorum info from helper mine_cycle_quorum (Konstantin Akimov)
0f6cf13 refactor: wait 5seconds only once but not for each node in feature_llmq_chainlocks.py (Konstantin Akimov)
Pull request description:
## Issue being fixed or feature implemented
These functional tests are one of the slowest to run with tsan on CI:
feature_llmq_chainlocks.py | ✓ Passed | 301 s
feature_llmq_evo.py | ✓ Passed | 198 s
feature_llmq_rotation.py | ✓ Passed | 315 s
## What was done?
### feature_llmq_chainlocks.py
It waits only once for all nodes to check missing chainlock; instead of waiting 5 second for each node. Used to be: wait->check->wait->check... Become: wait->check->check->check...
### feature_llmq_evo.py
- improve testing of RPC `masternodelist` by checking results of `mode=evo`
- removed leftover code to enable & disable IS by spork to follow-up #6430
- reduced amount of evo nodes (5->4) and masternodes (4 -> 2) as follow-up to #6430 as no more rotation quorum is needed
- generate less blocks to activate mn_rr (400 -> 320)
### feature_llmq_rotation.py
- fixed instability by disabling v17-activated quorum (type 102) which forbids to activate mn_rr on earlier height than 900
- activate mn_rr on height 300 to finish #6667 (which has not been possible before due to v17-activated quorum)
### test_framework
Minor improvements and refactorings:
- simplified `activate_mn_rr`
- simplified `wait_for_chainlocked_block_all_nodes` by removing flag `expected`
- disabled excessive logging in mine_cycle_quorum
## How Has This Been Tested?
Run functional tests locally multiple times. Median time is improved:
- `feature_llmq_chainlocks.py`: 120s -> 75s (localhost), 301s -> 105s (CI)
- `feature_llmq_evo.py`: 108s -> 74s (localhost), 198s -> 118s (CI)
- `feature_llmq_rotation.py`: 154s -> 93s (localhost), 315s -> 141s (CI)
## Breaking Changes
N/A
## Checklist:
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added or updated relevant unit/integration/functional/e2e tests
- [ ] I have made corresponding changes to the documentation
- [x] I have assigned this pull request to a milestone
ACKs for top commit:
UdjinM6:
utACK 2024c65
Tree-SHA512: 42bada5e86824b24cc5159fc4b9c897aa968c86393364e03c873ff0276cd7c15cde729838782d2a2ffb68682afe6da66117bd619b4326721f3c1609553bcdb30
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.
This PR has important fixes to implement "single-node quorum" feature.
Issue being fixed or feature implemented
Without IS-quorum you can not dynamically add a new MN or Evo node.
For evo nodes adding it dynamically is the only way.
What was done?
Fixed a function that dynamically adds a masternode without Instant Send quorums; use it in a functional test feature_asset_locks.py
As side effect it improves performance of functional tests which do not wait more IS lock significantly; for feature_asset_locks.py it gave ~20 seconds per run.
How Has This Been Tested?
See updates in
feature_asset_locks.py,feature_llmq_evo.py,feature_dip3_v19.pyBreaking Changes
N/A
Checklist: