Commit Graph

23572 Commits

Author SHA1 Message Date
UdjinM6
d1aa209d95
chore(rpc): few cleanups in evo rpc help texts (#5439)
## Issue being fixed or feature implemented
fix a couple of issues in help texts

develop:
```
protx register "collateralHash" collateralIndex "ipAndPort" "ownerAddress" "operatorPubKey_register" "votingAddress_register" "operatorReward" "payoutAddress_register" ( "feeSourceAddress" submit )
...
3. ipAndPort                  (string, required) IP and port in the form "IP:PORT".
                              Must be unique on the network. Can be set to 0, which will require a ProUpServTx afterwards.
...
5. operatorPubKey_register    (string, required) The operator BLS public key. The BLS private key does not have to be known.
                              It has to match the BLS private key which is later used when operating the masternode.
6. votingAddress_register     (string, required) The voting key address. The private key does not have to be known by your wallet.
                              It has to match the private key which is later used when voting on proposals.
                              If set to an empty string, ownerAddress will be used.
7. operatorReward             (string, required) The fraction in %% to share with the operator. The value must be
                              between 0.00 and 100.00.
8. payoutAddress_register     (string, required) The dash address to use for masternode reward payments.
...
```
```
protx update_service "proTxHash" "ipAndPort" "operatorKey" ( "operatorPayoutAddress" "feeSourceAddress" )
...
2. ipAndPort                (string, required) IP and port in the form "IP:PORT".
                            Must be unique on the network. Can be set to 0, which will require a ProUpServTx afterwards.
...
```
fe95dfdd7a97ae5150d8e28ea908f619c6080008:
```
protx register "collateralHash" collateralIndex "ipAndPort" "ownerAddress" "operatorPubKey" "votingAddress" "operatorReward" "payoutAddress" ( "feeSourceAddress" submit )
...
3. ipAndPort           (string, required) IP and port in the form "IP:PORT". Must be unique on the network.
                       Can be set to an empty string, which will require a ProUpServTx afterwards.
...
5. operatorPubKey      (string, required) The operator BLS public key. The BLS private key does not have to be known.
                       It has to match the BLS private key which is later used when operating the masternode.
6. votingAddress       (string, required) The voting key address. The private key does not have to be known by your wallet.
                       It has to match the private key which is later used when voting on proposals.
                       If set to an empty string, ownerAddress will be used.
7. operatorReward      (string, required) The fraction in %% to share with the operator.
                       The value must be between 0 and 10000.
8. payoutAddress       (string, required) The dash address to use for masternode reward payments.
...
```
```
protx update_service "proTxHash" "ipAndPort" "operatorKey" ( "operatorPayoutAddress" "feeSourceAddress" )
...
2. ipAndPort                (string, required) IP and port in the form "IP:PORT". Must be unique on the network.
...
```
## What was done?
pls see individual commits

## How Has This Been Tested?
run `dash-qt`, check `help <cmd>` response

## 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 _(for repository
code-owners and collaborators only)_
2023-06-17 19:27:37 +03:00
Odysseas Gabrielides
37f7208471
chore(rpc): remove collateral amount from help (#5438)
Removed collateral amount from help text for `protx register_fund_hpmn`
RPC.

- [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)_
2023-06-17 19:27:37 +03:00
UdjinM6
8dbdd59be7
chore: prettify json representations of CSimplifiedMNListEntry and CSimplifiedMNListDiff (#5434)
## Issue being fixed or feature implemented
Should fix
https://github.com/dashpay/dash/pull/5424#discussion_r1228654939 and
make `CSimplifiedMNListEntry`'s json a bit more human-friendly (imo) by
having `nVersion` and `nType` at the top of it.

Move `nVersion` up for `CSimplifiedMNListDiff` too.

NOTE: `nVersion` wasn't actually duplicated in rpc results, it was
simply assigned twice inside. still not nice though.

Thanks @thephez ! 👍 

## What was done?

## How Has This Been Tested?


## 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 _(for repository
code-owners and collaborators only)_
2023-06-17 19:27:36 +03:00
UdjinM6
7e2309866c
chore: run gen-manpages.sh for v19.2 (#5442)
## Issue being fixed or feature implemented

## What was done?

## How Has This Been Tested?

## Breaking Changes

## 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)_
2023-06-17 11:26:05 -05:00
UdjinM6
5fa9d32083
chore: update chainparams for v19.2 release (#5441)
## Issue being fixed or feature implemented
bump chainparams to some post failed-v19-fork block on mainnet and post
recent-v19-fork block on testnet

## What was done?


## How Has This Been Tested?


## Breaking Changes


## 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)_
2023-06-17 11:16:28 -05:00
UdjinM6
b3f1d1cdd8
chore: prettify json representations of CSimplifiedMNListEntry and CSimplifiedMNListDiff (#5434)
## Issue being fixed or feature implemented
Should fix
https://github.com/dashpay/dash/pull/5424#discussion_r1228654939 and
make `CSimplifiedMNListEntry`'s json a bit more human-friendly (imo) by
having `nVersion` and `nType` at the top of it.

Move `nVersion` up for `CSimplifiedMNListDiff` too.

NOTE: `nVersion` wasn't actually duplicated in rpc results, it was
simply assigned twice inside. still not nice though.

Thanks @thephez ! 👍 

## What was done?

## How Has This Been Tested?


## 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 _(for repository
code-owners and collaborators only)_
2023-06-17 10:50:26 -05:00
UdjinM6
35d3cb97f7
chore(rpc): few cleanups in evo rpc help texts (#5439)
## Issue being fixed or feature implemented
fix a couple of issues in help texts

develop:
```
protx register "collateralHash" collateralIndex "ipAndPort" "ownerAddress" "operatorPubKey_register" "votingAddress_register" "operatorReward" "payoutAddress_register" ( "feeSourceAddress" submit )
...
3. ipAndPort                  (string, required) IP and port in the form "IP:PORT".
                              Must be unique on the network. Can be set to 0, which will require a ProUpServTx afterwards.
...
5. operatorPubKey_register    (string, required) The operator BLS public key. The BLS private key does not have to be known.
                              It has to match the BLS private key which is later used when operating the masternode.
6. votingAddress_register     (string, required) The voting key address. The private key does not have to be known by your wallet.
                              It has to match the private key which is later used when voting on proposals.
                              If set to an empty string, ownerAddress will be used.
7. operatorReward             (string, required) The fraction in %% to share with the operator. The value must be
                              between 0.00 and 100.00.
8. payoutAddress_register     (string, required) The dash address to use for masternode reward payments.
...
```
```
protx update_service "proTxHash" "ipAndPort" "operatorKey" ( "operatorPayoutAddress" "feeSourceAddress" )
...
2. ipAndPort                (string, required) IP and port in the form "IP:PORT".
                            Must be unique on the network. Can be set to 0, which will require a ProUpServTx afterwards.
...
```
fe95dfdd7a97ae5150d8e28ea908f619c6080008:
```
protx register "collateralHash" collateralIndex "ipAndPort" "ownerAddress" "operatorPubKey" "votingAddress" "operatorReward" "payoutAddress" ( "feeSourceAddress" submit )
...
3. ipAndPort           (string, required) IP and port in the form "IP:PORT". Must be unique on the network.
                       Can be set to an empty string, which will require a ProUpServTx afterwards.
...
5. operatorPubKey      (string, required) The operator BLS public key. The BLS private key does not have to be known.
                       It has to match the BLS private key which is later used when operating the masternode.
6. votingAddress       (string, required) The voting key address. The private key does not have to be known by your wallet.
                       It has to match the private key which is later used when voting on proposals.
                       If set to an empty string, ownerAddress will be used.
7. operatorReward      (string, required) The fraction in %% to share with the operator.
                       The value must be between 0 and 10000.
8. payoutAddress       (string, required) The dash address to use for masternode reward payments.
...
```
```
protx update_service "proTxHash" "ipAndPort" "operatorKey" ( "operatorPayoutAddress" "feeSourceAddress" )
...
2. ipAndPort                (string, required) IP and port in the form "IP:PORT". Must be unique on the network.
...
```
## What was done?
pls see individual commits

## How Has This Been Tested?
run `dash-qt`, check `help <cmd>` response

## 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 _(for repository
code-owners and collaborators only)_
2023-06-17 10:49:37 -05:00
Odysseas Gabrielides
43067a72cd
chore(rpc): remove collateral amount from help (#5438)
## Issue being fixed or feature implemented
Removed collateral amount from help text for `protx register_fund_hpmn`
RPC.

## What was done?

## How Has This Been Tested?

## Breaking Changes

## 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)_
2023-06-17 10:48:39 -05:00
PastaPastaPasta
44cd30f2f7
Merge pull request #5427 from PastaPastaPasta/v19.2-rc.1-backports
backport: V19.2 rc.1 backports
2023-06-13 09:36:29 -05:00
pasta
75fe05ef0e
chore: update version to 19.2 rc.1 2023-06-13 09:30:29 -05:00
UdjinM6
225398dafc
fix: off-by-one in the way we use v19 activation helpers (#5431)
Some conditions won't trigger when reorging exactly from the forkpoint

pls see individual commits, tl;dr: you can't get correct results with
`GetAncestor` cause the answer is in the future

reorg to 850000 and back on testnet
```
invalidateblock 0000003eddb94218e7a3f41b2ac6e26143f8a748b50cd26e86bdbbab9ebe50aa
reconsiderblock 0000003eddb94218e7a3f41b2ac6e26143f8a748b50cd26e86bdbbab9ebe50aa
```
this fails on develop and work with this patch

n/a

- [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)_
2023-06-13 09:30:29 -05:00
UdjinM6
aa91946e20
fix: off-by-one in the way we use v19 activation helpers (#5431)
## Issue being fixed or feature implemented
Some conditions won't trigger when reorging exactly from the forkpoint

## What was done?
pls see individual commits, tl;dr: you can't get correct results with
`GetAncestor` cause the answer is in the future

## How Has This Been Tested?
reorg to 850000 and back on testnet
```
invalidateblock 0000003eddb94218e7a3f41b2ac6e26143f8a748b50cd26e86bdbbab9ebe50aa
reconsiderblock 0000003eddb94218e7a3f41b2ac6e26143f8a748b50cd26e86bdbbab9ebe50aa
```
this fails on develop and work with this patch

## 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 _(for repository
code-owners and collaborators only)_
2023-06-13 17:24:19 +03:00
UdjinM6
f391d7cac3
chore: update defaultAssumeValid, nMinimumChainWork, checkpointData and chainTxData for testnet (again) (#5430)
Same as #5428 but with a lower block number this time. This should let
us simply reorg testnet with 18.2.2 at deeper blocks instead of bumping
v19 testnet activation params for 19.2.

n/a

- [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)_
2023-06-12 13:50:25 -05:00
UdjinM6
f5ba5f5606
chore: update defaultAssumeValid, nMinimumChainWork, checkpointData and chainTxData for testnet (again) (#5430)
## Issue being fixed or feature implemented
Same as #5428 but with a lower block number this time. This should let
us simply reorg testnet with 18.2.2 at deeper blocks instead of bumping
v19 testnet activation params for 19.2.

## What was done?

## How Has This Been Tested?

## 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 _(for repository
code-owners and collaborators only)_
2023-06-12 21:47:31 +03:00
UdjinM6
7477d839cd
Merge pull request #5425 from UdjinM6/multi_fixes
fix: Various small fixes
2023-06-12 10:34:46 -05:00
UdjinM6
ec8d081556
chore: update defaultAssumeValid, nMinimumChainWork, checkpointData and chainTxData for testnet (#5428)
Having these above v19 forkpoint (850100) would result in v19.2 nodes
forking at the wrong height (864000) when reindexing without
`--assumevalid=<0 or some pre-v19 block height>`

Go back to pre-v19 block (850000) in chainparams

reindex

n/a

- [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)_
2023-06-12 10:34:46 -05:00
UdjinM6
3ac3c1ad3c
feat: store protx version in CSimplifiedMNListEntry and use it to ser/deser pubKeyOperator (#5397)
Mobile wallets would have to convert 4k+ pubkeys at the V19 fork point
and it's a pretty hard job for them that can easily take 10-15 seconds
if not more. Also after the HF, if a masternode list is requested from
before the HF, the operator keys come in basic scheme, but the
merkelroot was calculated with legacy. From mobile team work it wasn't
possible to convert all operator keys to legacy and then calculate the
correct merkleroot.

~This PR builds on top of ~#5392~ #5403 (changes that belong to this PR:
26f7e966500bdea4c604f1d16716b40b366fc707 and
4b42dc8fcee3354afd82ce7e3a72ebe1659f5f22) and aims to solve both of
these issues.~

cc @hashengineering @QuantumExplorer

Introduce `nVersion` on p2p level for every CSimplifiedMNListEntry. Set
`nVersion` to the same value we have it in CDeterministicMNState i.e.
pubkey serialization would not be via basic scheme only after the V19
fork, it would match the way it’s serialized on-chain/in
CDeterministicMNState for that specific MN.

run tests

NOTE: `testnet` is going to re-fork at v19 forkpoint because
`merkleRootMNList` is not going to match

- [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
- [ ] I have assigned this pull request to a milestone _(for repository
code-owners and collaborators only)_
2023-06-12 10:34:46 -05:00
UdjinM6
a39dd04f7a
fix: multiple 5403 followups (#5424)
- CBLSLazyWrapper is doing to much and not enough at the same time
- nVersion assignment in CDeterministicMNState(Diff) is incomplete
- pubKeyOperator deserialization needs nVersion but nVersion is deser-ed
much later
- protx rpcs are implicitly converting pubKeyOperator (by forcing
nVersion=2), they shouldn't do that

pls see individual commits

- [x] run tests locally
- [x] reindex on testnet:
  - [x] with and without `--assumevalid=0` to the tip
  - [x] with 19.1 almost to the forkpoint, then with this version
- [x] reindex on mainnet:
  - [x] with and without `--assumevalid=0` to the tip
  - [x] with 19.1 to height 1100000+, then with this version

might need reindexing if you were running develop on testnet already

- [x] I have performed a self-review of my own code
- [x] 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)_
2023-06-12 10:34:45 -05:00
UdjinM6
492b1c1322
chore: update defaultAssumeValid, nMinimumChainWork, checkpointData and chainTxData for testnet (#5428)
## Issue being fixed or feature implemented
Having these above v19 forkpoint (850100) would result in v19.2 nodes
forking at the wrong height (864000) when reindexing without
`--assumevalid=<0 or some pre-v19 block height>`

## What was done?
Go back to pre-v19 block (850000) in chainparams

## How Has This Been Tested?
reindex

## 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 _(for repository
code-owners and collaborators only)_
2023-06-12 10:58:44 +03:00
UdjinM6
a99fd92d27
Merge pull request #5425 from UdjinM6/multi_fixes
fix: Various small fixes
2023-06-12 10:57:49 +03:00
UdjinM6
9e862c16d1 fix(test): drop duplicates and add missing test cases in evo_utils_tests 2023-06-12 10:56:10 +03:00
UdjinM6
d2bdc4275e fix(qt): actually open debug console and not info tab
this fix is for tray icon menu
2023-06-12 10:56:10 +03:00
UdjinM6
d8f2fe7d7a fix(qt): disable custom change address on CoinJoin tab 2023-06-12 10:56:10 +03:00
UdjinM6
fba5d06a8c fix(qt): don't crash in options when running with -disablewallet 2023-06-12 10:56:10 +03:00
UdjinM6
d53e657513 fix(wallet): truncate mnemonic passphrase instead of crashing 2023-06-12 10:56:10 +03:00
UdjinM6
6f639ea5f1 fix(wallet): do not count DBKeys::PRIVATESEND_SALT and DBKeys::COINJOIN_SALT keys as unknown
Before: `Unknown wallet records: 2`
After: `Unknown wallet records: 0`
2023-06-12 10:56:10 +03:00
UdjinM6
8a391189cc fix: mark sporkkey and masternodeblsprivkey args as SENSITIVE 2023-06-12 10:56:10 +03:00
UdjinM6
16418d3559 fix: respect fPowNoRetargeting for post-btc algos 2023-06-12 10:56:10 +03:00
UdjinM6
4921903663 fix: off-by-1 in unordered_lru_cache
we should be truncating after (potentially) adding new element, not before we even tried to do so
2023-06-12 10:56:10 +03:00
UdjinM6
62540743ef fix: pass correct params into CHashWriter 2023-06-12 10:56:10 +03:00
UdjinM6
ad09590feb
fix: reset chainman to allow reindex on failure (#5405)
current develop fails to reindex whenever there is an issue at node
start (prints `should not be overwriting a chainstate` in `debug.log`)

reset chainman to allow it re-initialize chainstate

simulated an issue with
```
 if (!fReset) {
     strLoadError = _("DEBUG");
     break;
 }
```

should not be any but pls test

- [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)_
2023-06-11 12:35:47 -05:00
Konstantin Akimov
013445a304
fix: follow-up #5403: remove double serialization in CDeterministicMNState (#5413)
## Issue being fixed or feature implemented
Member obj.keyIDOwner is read & write twice



## What was done?
Fixed: it is serialized once

## How Has This Been Tested?
Unit/functional tests in CI


## Breaking Changes
Data format in database changed in incompatible way

## 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
2023-06-11 12:35:30 -05:00
UdjinM6
e0175b28d7
fix: Resolve mainnet v19 fork issues (#5403)
same as  #5392, alternative solution

~based on #5402 atm, will rebase later~

pls see individual commits

reorg mainnet around forkpoint with a patched client (to allow low
difficulty), run tests

Another evodb migration is required. Going back to an older version or
migrating after the fork requires reindexing.

- [x] I have performed a self-review of my own code
- [x] 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)_
2023-06-11 12:35:20 -05:00
PastaPastaPasta
35ccc8500c
Merge pull request #5415 from kittywhiskers/bp_26633
backport: bitcoin#26633 (update qt 5.12 url to archive location)
2023-06-11 12:33:06 -05:00
UdjinM6
76a96c29ed
Merge pull request #5410 from UdjinM6/fix_dmnl_cache_issues
fix: resolve two DMNL cache issues
2023-06-11 12:32:47 -05:00
thephez
ced5d5cbed
docs: correct createwallet help (#5407)
## Issue being fixed or feature implemented
Dash does not have `sethdseed`, but the help mentioned it.

## What was done?
Switched to `upgradetohd`.

## How Has This Been Tested?

## Breaking Changes
N/A

## Checklist:
_Go over all the following points, and put an `x` in all the boxes that
apply._
- [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
- [ ] I have assigned this pull request to a milestone _(for repository
code-owners and collaborators only)_
2023-06-11 12:32:39 -05:00
Nathan Marley
5160db89bf
trivial: Fix typo in import electrum wallet help (#5406)
Removes extra 's' after import
2023-06-11 12:32:30 -05:00
UdjinM6
78bf7221ca
feat: use m_protxHash instead of masternodeOutpoint for hashing dsq and dstx after v19 activation (#5404)
## 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:
- [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)_
2023-06-11 12:32:08 -05:00
UdjinM6
d13e9de34a
test: Fix dynamically_smth_masternode helpers, extend feature_dip3_v19.py (#5402)
## Issue being fixed or feature implemented
fix a couple of issues in helpers, extend feature_dip3_v19.py to check
more after v19 fork

## What was done?
pls see individual PRs


## How Has This Been Tested?
run tests

## Breaking Changes
n/a

## Checklist:
- [x] I have performed a self-review of my own code
- [x] 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)_
2023-06-11 12:31:43 -05:00
PastaPastaPasta
843206348f
feat: ability to disable clsig creation while retaining clsig enforcement (#5398)
## Issue being fixed or feature implemented
Currently, Chainlocks are either enabled or disabled. This PR adds a
third state: enabled but we will not sign new ones.

Should probably backport this to v19.x

## What was done?
Spork state != 0 but active will now result in chain locks being
enforced but not created.

## How Has This Been Tested?

## Breaking Changes
None

## Checklist:
_Go over all the following points, and put an `x` in all the boxes that
apply._
- [ ] 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)_

---------

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2023-06-11 12:31:35 -05:00
UdjinM6
a1ff8dcfdd
feat: calculate DISK_SNAPSHOTS at compile time (#5395)
## Issue being fixed or feature implemented
LLMQ_400_85 requires four days worth of LLMQs
https://github.com/dashpay/dash/blob/master/src/llmq/params.h#L416

## What was done?

## How Has This Been Tested?
n/a

## 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
- [ ] I have assigned this pull request to a milestone _(for repository
code-owners and collaborators only)_
2023-06-11 12:30:56 -05:00
UdjinM6
4510d2b4b0
build: fix gmp detection on macos when building with no depends (#5394)
## Issue being fixed or feature implemented
gmp can't be detected on macos when installed via `brew` atm

## What was done?
detect package prefix and adjust CPPFLAGS and LDFLAGS accordingly


## How Has This Been Tested?
`./configure`

before: `configure: error: libgmp headers missing`
after: passes

## 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 _(for repository
code-owners and collaborators only)_
2023-06-11 12:30:47 -05:00
UdjinM6
3275953ebf
docs: actually add release-notes-19.0.0.md (#5389)
## Issue being fixed or feature implemented
we missed it in https://github.com/dashpay/dash/pull/5385

## What was done?

## How Has This Been Tested?

## 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 _(for repository
code-owners and collaborators only)_
2023-06-11 12:30:36 -05:00
UdjinM6
a760e33236
feat: store protx version in CSimplifiedMNListEntry and use it to ser/deser pubKeyOperator (#5397)
## Issue being fixed or feature implemented
Mobile wallets would have to convert 4k+ pubkeys at the V19 fork point
and it's a pretty hard job for them that can easily take 10-15 seconds
if not more. Also after the HF, if a masternode list is requested from
before the HF, the operator keys come in basic scheme, but the
merkelroot was calculated with legacy. From mobile team work it wasn't
possible to convert all operator keys to legacy and then calculate the
correct merkleroot.

~This PR builds on top of ~#5392~ #5403 (changes that belong to this PR:
26f7e966500bdea4c604f1d16716b40b366fc707 and
4b42dc8fcee3354afd82ce7e3a72ebe1659f5f22) and aims to solve both of
these issues.~

cc @hashengineering @QuantumExplorer 

## What was done?
Introduce `nVersion` on p2p level for every CSimplifiedMNListEntry. Set
`nVersion` to the same value we have it in CDeterministicMNState i.e.
pubkey serialization would not be via basic scheme only after the V19
fork, it would match the way it’s serialized on-chain/in
CDeterministicMNState for that specific MN.

## How Has This Been Tested?
run tests

## Breaking Changes
NOTE: `testnet` is going to re-fork at v19 forkpoint because
`merkleRootMNList` is not going to match

## 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
- [ ] I have assigned this pull request to a milestone _(for repository
code-owners and collaborators only)_
2023-06-11 12:29:00 -05:00
UdjinM6
cc2479ab0c
fix: multiple 5403 followups (#5424)
## Issue being fixed or feature implemented
- CBLSLazyWrapper is doing to much and not enough at the same time
- nVersion assignment in CDeterministicMNState(Diff) is incomplete
- pubKeyOperator deserialization needs nVersion but nVersion is deser-ed
much later
- protx rpcs are implicitly converting pubKeyOperator (by forcing
nVersion=2), they shouldn't do that

## What was done?
pls see individual commits

## How Has This Been Tested?
- [x] run tests locally 
- [x] reindex on testnet:
  - [x] with and without `--assumevalid=0` to the tip
  - [x] with 19.1 almost to the forkpoint, then with this version
- [x] reindex on mainnet:
  - [x] with and without `--assumevalid=0` to the tip
  - [x] with 19.1 to height 1100000+, then with this version

## Breaking Changes
might need reindexing if you were running develop on testnet already

## Checklist:
- [x] I have performed a self-review of my own code
- [x] 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)_
2023-06-11 10:00:10 +03:00
UdjinM6
5e18a7f75d
Merge pull request #5410 from UdjinM6/fix_dmnl_cache_issues
fix: resolve two DMNL cache issues
2023-06-11 09:57:30 +03:00
UdjinM6
86e8556ecc fix: adjust llmq_max_blocks() 2023-06-11 09:57:09 +03:00
UdjinM6
35b0d5f7c8 fix: simplify/fix CleanupCache logic
tip: it was originally designed to be called for every block but 4743 changed that so the old logic no longer applies.
the second condition: well, it's just wrong.
2023-06-11 09:57:09 +03:00
UdjinM6
599fd87723
feat: use m_protxHash instead of masternodeOutpoint for hashing dsq and dstx after v19 activation (#5404)
## 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:
- [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)_
2023-06-11 00:41:02 -05:00
PastaPastaPasta
12d50c806d
Merge pull request #5421 from PastaPastaPasta/develop-trivial-2023-06-07
backport: trivial backports June 8th
2023-06-10 17:41:01 -05:00