Skip to content

Conversation

@kwvg
Copy link
Collaborator

@kwvg kwvg commented Dec 13, 2025

Additional Information

Breaking Changes

None expected.

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)

kwvg added 30 commits December 11, 2025 02:26
dash-chainstate may not have ArgsManager, we should try and resolve
the expected value before moving to chainstate logic.
Same rationale as previous commit.
Same rationale as previous commit.
The context that creates the signer should register the listener rather
than relying on the timing being exactly right on when Start() is called
by the controlling manager.

Also:
- Use more descriptive function names replacing Start()/Stop()
- Fixup order of events in ActiveContext c/dtor and Start()/Stop()
The `ConnectManager` approach is no longer needed.
Also:
- Drop unneeded argument from LLMQContext::Start()
- Drop LLMQContext::Interrupt() that does nothing
We are going to modify PeerManager multiple times, this should make the
diffs that'll attract smaller.
Needed when `CActiveMasternodeManager` is moved to `ActiveContext`
Review with `git log -p -n1 --color-moved=dimmed_zebra`.
Also gives us the help text for `gobject list-prepared`
Also gives us the help text for `gobject {diff,list}`
As we're isolating watch-only and masternode mode logic, we won't have
access to the DKG debug object anymore, restrict access in preparation.
`mapQuorumDataRequests` isn't used outside `CQuorumManager` and a
`RecursiveMutex` is unnecessary for the usage pattern
These subroutines do nothing unless we are in masternode mode so we need
to extract them in order to isolate it from regular mode.
Also:
- Drop avoidable `CActiveMasternodeManager&` arg by taking ref of hash
  we care about
Review with `git log -p -n1 --color-moved=dimmed_zebra`.
kwvg added 23 commits December 14, 2025 04:12
This is done to remove m_mn_activeman calls from within the worker
to allow us to run it in watch-only mode.
Needed to split logic based on watch-only or masternode-mode in next
commit.
Review with `git log -p -n1 --color-moved=dimmed_zebra`.
Right now we have a circular dependency between `CQuorumManager`'s TU
and the handler's TU's but we also house common code in the former, we
need to split it out before we can close the gap.

Review with `git log -p -n1 --color-moved=dimmed_zebra`.
Handlers are initialized from contexts with complete knowledge of P2P,
so we can trim down the arguments passed a fair bit.

Also:
- Move `UpdatedBlockTip()` to handler parent contexts and out of
  `CQuorumManager`
We need to split up the cache warming thread with the rest of the tasks
given the thread pool used by the handlers as we start to isolate impl.
details of the parent.
Review with `git log -p -n1 --color-moved=dimmed_zebra`.
Review with `git log -p -n1 --color-moved=dimmed_zebra`.
Also:
- Drop stale TODO, remove headers in code that no longer refer to
  masternode capabilities
Now that `ActiveNotificationInterface` exclusively calls `ActiveContext`
we can now merge them together.

Also:
- Drop `LLMQContext` from `ActiveContext`, only import what we use
@github-actions
Copy link

@kwvg kwvg changed the title refactor: extract CActiveMasternodeManager from LLMQContext (3/3, DKG session isolation, ActiveContext consolidation) refactor: extract CActiveMasternodeManager from LLMQContext (3/n, DKG session isolation, ActiveContext consolidation) Dec 13, 2025
@github-actions
Copy link

This pull request has conflicts, please rebase.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant