Skip to content

feat: introduce type-flexible NetInfoEntry to allow non-CService entries, use in MnNetInfo #6629

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

Draft
wants to merge 27 commits into
base: develop
Choose a base branch
from

Conversation

kwvg
Copy link
Collaborator

@kwvg kwvg commented Apr 12, 2025

Additional Information

Breaking Changes

Work in progress

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 27 commits April 7, 2025 20:23
notes:
- CPendingDsaRequest will now track the ProTx hash and will resolve the
  primary address just before sending the request.
- Validation of the expected masternode address matching the peer has
  been deduplicated. Failure created a debug log entry for DSCOMPLETE
  (though not for DSSTATUSUPDATE or DSFINALTX) but now it will happen
  silently.
In the next commit, we are going to enforce validation the moment we
to set values. That will break this test because this test makes two
errors.

- It tries to use non-mainnet ports on BasicTestingSetup (which is
  mainnet), resolved by using RegTest.
- It constructs the IP 0.0.0.0, which is not a routable address, resolved
  by counting from 1 onwards.
GetEntries does nothing except wrap the one singular entry we have into
a set. Right now this functionally changes nothing but this lets us
change code to adapt to the possibility that a MnNetInfo-like object
could store more than one value at some point down the line.
Currently this does nothing different since both MnNetInfo and CService
serialize the same (and we only store one entry) but will allow us to
swap with an extended addresses capable variant down the line.
Also, ProRegTx allows an empty netInfo, ProUpServTx does not, so we
should check that ProUpServTx::netInfo isn't empty.
@kwvg kwvg changed the title evo: introduce type-flexible NetInfoEntry to allow non-CService entries, use in MnNetInfo feat: introduce type-flexible NetInfoEntry to allow non-CService entries, use in MnNetInfo Apr 12, 2025
@kwvg kwvg removed the request for review from PastaPastaPasta April 21, 2025 16:18
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