Skip to content

refactor: deprecate non-deterministic IS support - #5553

Merged
PastaPastaPasta merged 9 commits into
dashpay:developfrom
ogabrielides:drop_is_migration_test
Nov 20, 2023
Merged

refactor: deprecate non-deterministic IS support#5553
PastaPastaPasta merged 9 commits into
dashpay:developfrom
ogabrielides:drop_is_migration_test

Conversation

@ogabrielides

@ogabrielides ogabrielides commented Aug 30, 2023

Copy link
Copy Markdown

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_tests and feature_llmq_is_migration.py (don't need it anymore), adjusted func tests.

How Has This Been Tested?

all tests, synced Testnet

Breaking Changes

Checklist:

  • 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
  • I have assigned this pull request to a milestone (for repository code-owners and collaborators only)

@ogabrielides ogabrielides added this to the 20 milestone Aug 30, 2023
@ogabrielides
ogabrielides marked this pull request as draft August 31, 2023 10:49
@ogabrielides ogabrielides changed the title chore: drop feature_is_migration refactor: deprecate non-deterministic IS support Oct 10, 2023
@github-actions

Copy link
Copy Markdown

This pull request has conflicts, please rebase.

@UdjinM6 UdjinM6 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

pls see d9b67c2

note: it's rebased on top of #5654 and #5655. I reindexed on testnet and mainnet with no issues. It's still incomplete though, check FIXME.

@ogabrielides

ogabrielides commented Oct 31, 2023

Copy link
Copy Markdown
Author

@UdjinM6 Since #4917 connections are ensured among IS quorums: adjusted feature_llmq_connections.py to this logic since with this PR, only llmq_test_dip0024 provide IS functionality in regtest.
Also, borrowed fix from #5657.

@ogabrielides
ogabrielides marked this pull request as ready for review October 31, 2023 12:23
@ogabrielides
ogabrielides requested a review from UdjinM6 October 31, 2023 12:23
Comment thread test/functional/feature_llmq_is_cl_conflicts.py Outdated
@ogabrielides ogabrielides modified the milestones: 20, 20.1 Nov 1, 2023
@ogabrielides
ogabrielides requested a review from UdjinM6 November 1, 2023 11:21
UdjinM6
UdjinM6 previously approved these changes Nov 1, 2023

@UdjinM6 UdjinM6 left a comment

Copy link
Copy Markdown

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

Comment thread src/llmq/instantsend.cpp Outdated
@github-actions

Copy link
Copy Markdown

This pull request has conflicts, please rebase.

UdjinM6
UdjinM6 previously approved these changes Nov 10, 2023

@UdjinM6 UdjinM6 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

rebase looks clean, utACK

Comment thread src/llmq/instantsend.cpp Outdated
UdjinM6
UdjinM6 previously approved these changes Nov 10, 2023

@UdjinM6 UdjinM6 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

re-utACK

@github-actions

Copy link
Copy Markdown

This pull request has conflicts, please rebase.

@github-actions

Copy link
Copy Markdown

This pull request has conflicts, please rebase.

ogabrielides and others added 9 commits November 17, 2023 18:49
Co-Authored-By: UdjinM6 <UdjinM6@users.noreply.github.com>
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
Co-Authored-By: Konstantin Akimov <545784+knst@users.noreply.github.com>
@ogabrielides
ogabrielides dismissed stale reviews from UdjinM6 and knst via e638575 November 17, 2023 16:57
@ogabrielides
ogabrielides requested review from UdjinM6 and knst November 17, 2023 17:08

@UdjinM6 UdjinM6 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

re-utACK

@knst knst left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

re-utACK

@thephez thephez added the P2P Some notable changes on p2p level label Nov 20, 2023

@PastaPastaPasta PastaPastaPasta left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

utACK for squash merge

@PastaPastaPasta
PastaPastaPasta merged commit 1125649 into dashpay:develop Nov 20, 2023
@ogabrielides
ogabrielides deleted the drop_is_migration_test branch November 20, 2023 16:21
@PastaPastaPasta

Copy link
Copy Markdown
Member

This PR resulted in a breaking change via the removal of option llmqtestinstantsend

thephez added a commit to thephez/docs-core that referenced this pull request Feb 19, 2024
thephez added a commit to dashpay/docs-core that referenced this pull request Feb 19, 2024
* docs(p2p): move islock to deprecated message type table

Related to dashpay/dash#5553

* docs: minor table formatting
@UdjinM6 UdjinM6 mentioned this pull request Feb 29, 2024
5 tasks
thephez added a commit to thephez/docs-core that referenced this pull request Mar 5, 2024
* docs(p2p): move islock to deprecated message type table

Related to dashpay/dash#5553

* docs: minor table formatting
PastaPastaPasta added a commit that referenced this pull request Sep 9, 2025
…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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P2P Some notable changes on p2p level

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants