-
Notifications
You must be signed in to change notification settings - Fork 1.2k
refactor: deprecate non-deterministic IS support #5553
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
refactor: deprecate non-deterministic IS support #5553
Conversation
|
This pull request has conflicts, please rebase. |
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.
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.
LGTM and seems to be working correctly (client-side) on mainnet/testnet
light ACK
|
This pull request has conflicts, please rebase. |
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.
rebase looks clean, utACK
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.
re-utACK
|
This pull request has conflicts, please rebase. |
|
This pull request has conflicts, please rebase. |
Co-Authored-By: UdjinM6 <[email protected]>
Co-authored-by: UdjinM6 <[email protected]>
Co-Authored-By: Konstantin Akimov <[email protected]>
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.
re-utACK
knst
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.
re-utACK
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 for squash merge
|
This PR resulted in a breaking change via the removal of option |
* docs(p2p): move islock to deprecated message type table Related to dashpay/dash#5553 * docs: minor table formatting
* docs(p2p): move islock to deprecated message type table Related to dashpay/dash#5553 * docs: minor table formatting
…p in feature_llmq_is_retroactive.py c54c43a test: refactor 24 to a new constant llmq_cycle_len; the cycle_length renamed to llmq_cycle_len too (Konstantin Akimov) 9a6be1b test: rename check_no_is and sleep_and_check_no_is to more descriptive assert_no_instantlock (Konstantin Akimov) 1661495 refactor: default sleep for sleep_and_check_no_is (UdjinM6) 7336573 test: simplify helper check_if_no_islock (Konstantin Akimov) e3c7866 test: fix missing assert in feature_llmq_is_retroactive.py (Konstantin Akimov) 32d35b1 test: replace argument is_first to global flag to see if cycle quorum is ready (Konstantin Akimov) bfa3574 test: remove double delay 2second when it is sufficient to wait once in feature_llmq_is_retroactive.py (Konstantin Akimov) 2a77568 test: mine extra instant send cycle quorum, not just some quorums (Konstantin Akimov) 9c64d6c test: add helper create_fund_sign_tx for feature_llmq_is_retroactive.py (Konstantin Akimov) b91007b test: combine 2 cases of single node & all nodes in feature_llmq_is_retroactive.py (Konstantin Akimov) Pull request description: ## Issue being fixed or feature implemented `feature_llmq_is_retroactive.py` is one of the slowest functional test and it has bunch of duplicated logic for "single node" and "all nodes" logic. ## What was done? - Refactored case of "single node" and "all nodes" to test simultaneously instead of doing 1-by-1 It reduced amount of code and extra delays and improvement performance. - This PR fixes feature_llmq_is_retroactive.py test by generating real extra quorum for instant send (previously wrong type of quorum has been generated). Issue has been introduced by #5553 when only 1 helper mine_quorum has been replaced to proper rotation quorum. - This PR introduces a minor refactoring `mine_cycle_quorum` to prevent a perf bug when 24*3 blocks generated again and again for sub-sequent quorums (they are needed only once) when this helper is misused. ## How Has This Been Tested? Run 20 parallel jobs. Median time for `feature_llmq_is_retroactive.py` is decreased from 134s to just 103s on my localhost. Median time for `interface_zmq_dash.py` got 3seconds boost (54s -> 51s) as expected, see related `mine_cycle_quorum` helper. ## 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: PastaPastaPasta: utACK c54c43a UdjinM6: utACK c54c43a Tree-SHA512: 3a886612a112b439546565e64a72530328ada3d7ae11c66a4a2db761f006c72c8c58b89c0a49b12c0bc0a0a764b54fa240724240b718fdd7ac285238f297ca4e
Issue being fixed or feature implemented
Non-deterministic IS locks aren't used anymore since v18 dip24.
We should drop that support to make code simpler.
What was done?
Dropped non-deterministic IS code,
evo_instantsend_testsandfeature_llmq_is_migration.py(don't need it anymore), adjusted func tests.How Has This Been Tested?
all tests, synced Testnet
Breaking Changes
Checklist: