Skip to content
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

feat: use m_protxHash instead of masternodeOutpoint for hashing dsq and dstx after v19 activation #5404

Merged
merged 1 commit into from
Jun 11, 2023

Conversation

UdjinM6
Copy link

@UdjinM6 UdjinM6 commented May 30, 2023

Issue being fixed or feature implemented

Should fix #5401 with minimal potential coinjoin service interruption (~1 minute around v19 fork point) for up to date clients. Fully backwards compatible prior to v19 activation. Old clients won't be able to mix after v19 activation though until they implement similar changes. EDIT: Actually, this is already the case cause bls sigs are going to change too. And I think we should also be able to finally drop masternodeOutpoint from CCoinJoinQueue and CCoinJoinBroadcastTx once v19 is active because of that which would be a nice bonus.

cc @HashEngineering

What was done?

re-use v19 activation to switch GetSignatureHash logic

How Has This Been Tested?

mixing on mainnet

Breaking Changes

mixing won't work on current testnet until MNs are updated

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)

@UdjinM6 UdjinM6 added this to the 19.2 milestone May 30, 2023
Copy link

@HashEngineering HashEngineering left a comment

Choose a reason for hiding this comment

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

uACK.

@PastaPastaPasta
Copy link
Member

Any reason to not make this backwards compatible based on PROTO version instead of hard fork status? Seems bad to break mixing for electrum clients for example (although likely not many people use this)

@UdjinM6
Copy link
Author

UdjinM6 commented May 31, 2023

It's much worse to have a 19.1 vs 19.2 split in mixing pools imo cause less compatible MNs to mix at (and clients to mix with) means that mixing is going to be slower and less secure for both versions. Also, non-core mixing clients would have to update anyway cause bls sigs are going to change from legacy to bls too so they won't be able to verify dsqs/join mixing after v19 activation.

@UdjinM6 UdjinM6 requested a review from PastaPastaPasta June 6, 2023 13:55
Copy link
Member

@PastaPastaPasta PastaPastaPasta left a 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

@PastaPastaPasta PastaPastaPasta merged commit 599fd87 into dashpay:develop Jun 11, 2023
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Jun 11, 2023
…nd dstx after v19 activation (dashpay#5404)

## Issue being fixed or feature implemented
Should fix dashpay#5401 with minimal potential coinjoin service interruption
(~1 minute around v19 fork point) for up to date clients. Fully
backwards compatible prior to v19 activation. Old clients won't be able
to mix after v19 activation though until they implement similar changes.
_EDIT: Actually, this is already the case cause bls sigs are going to
change too._ And I think we should also be able to finally drop
`masternodeOutpoint` from `CCoinJoinQueue` and `CCoinJoinBroadcastTx`
once v19 is active because of that which would be a nice bonus.

cc @HashEngineering

## What was done?
re-use v19 activation to switch `GetSignatureHash` logic

## How Has This Been Tested?
mixing on mainnet

## Breaking Changes
mixing won't work on current testnet until MNs are updated 

## 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 _(for repository
code-owners and collaborators only)_
thephez added a commit to thephez/docs-core that referenced this pull request Jun 14, 2023
Will use protx instead of mn outpoint after v19 activation per dashpay/dash#5404
thephez added a commit to dashpay/docs-core that referenced this pull request Jun 20, 2023
* docs(rpc): update protx list for 19.2

* docs(rpc): update quick reference

* docs(rpc): update protx info for 19.2

* docs(rpc): minor update to protx diff and example updated

* chore: update protx diff example command to match results

* docs(rpc): update masternode status for 19.2

* chore: minor formatting update

* docs(rpc): update quick ref

* docs: update protocol version

* chore: add DIP-28 link

* docs(p2p): add nVersion to  sml entry

From dashpay/dash#5397

* docs(p2p):  update dsq and dstx for 19.2

Will use protx instead of mn outpoint after v19 activation per dashpay/dash#5404

* docs(rpc): update masternode status example

* docs(p2p): minor updates to mnlistdiff

change order of some fields. mnlistdiff version always 1

* docs(rpc): update masternode status example output

* docs(rpc): update protx diff field location and example output

* Update docs/reference/transactions-special-transactions.md

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>

---------

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
thephez added a commit to dashpay/docs-core that referenced this pull request Jun 21, 2023
* docs: spork updates (#35)

* docs: integrate spork 6 info into paragraph

* docs: add updated info about spork 19 and refactor spork values info

* chore: update url and formatting

* chore: remove sporks deprecated more than 4 versions ago

* style: inconsistent list ending

* refactor: relocate hexdump to better location and add subheadings

* fix: correct typo

* feat: 19.2 rpc updates (#36)

* docs(rpc): update protx list for 19.2

* docs(rpc): update quick reference

* docs(rpc): update protx info for 19.2

* docs(rpc): minor update to protx diff and example updated

* chore: update protx diff example command to match results

* docs(rpc): update masternode status for 19.2

* chore: minor formatting update

* docs(rpc): update quick ref

* docs: update protocol version

* chore: add DIP-28 link

* docs(p2p): add nVersion to  sml entry

From dashpay/dash#5397

* docs(p2p):  update dsq and dstx for 19.2

Will use protx instead of mn outpoint after v19 activation per dashpay/dash#5404

* docs(rpc): update masternode status example

* docs(p2p): minor updates to mnlistdiff

change order of some fields. mnlistdiff version always 1

* docs(rpc): update masternode status example output

* docs(rpc): update protx diff field location and example output

* Update docs/reference/transactions-special-transactions.md

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>

---------

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>

---------

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants