Commit Graph

21578 Commits

Author SHA1 Message Date
UdjinM6
a999023cbd
fix(llmq): Fix quorum commitments requirement conditions (#4899)
Wasn't really requiring other commitments for rotation quorums once a single commitment was mined
2022-07-07 10:51:29 +03:00
UdjinM6
24205ccce9
Merge pull request #4897 from PastaPastaPasta/backport/v18-llmq-fixes
Backport: v18 llmq fixes
2022-06-29 04:13:44 +03:00
pasta
7c8ce7019a
chore: bump to rc7 2022-06-28 19:19:54 -05:00
UdjinM6
9b0222a01a
llmq: Various fixes and improvements (#4890)
* feat(llmq): Introduce useRotation in LLMQParams

* fix(llmq): Fix IsQuorumRotationEnabled to recognize all dip0024 quorums

* fix(llmq): Do not allow rotation llmqs for `-llmqinstantsend` and non-rotation ones for `-llmqinstantsenddip0024`

* fix(llmq): Unify and fix IsMiningPhase

NOTE: no need for 1 extra block in mining phase for rotation quorums

* chore(llmq): Reduce the number of IsQuorumRotationEnabled calls

* chore(llmq): Improve logging

* feat(llmq): Make `llmq-` threads for rotation quorums distinguishable by quorum index

* fix(llmq): Fix another endless loop in GetQuorumRelayMembers

* throw an error when a llmq type with an incompatible rotation flag is picked for `-llmq...` params

* Add a note about loop conditions

* llmq: Make TransactionRemovedFromMempool the last action for invalid txes, just like we do for orphans with rejected parents

Write to log, send reject msg and (maybe) punish first and only then notify IS about the tx removal. Makes it easier to reason about it when reading logs.
2022-06-28 19:19:03 -05:00
Nathan Marley
2dcbedd6e2
fix(gov): do not allow empty proposal names (#4883)
* gov: Do not allow empty proposal names

* Add test for invalid (empty) proposal name

* Use pasta suggestion
2022-06-28 19:16:34 -05:00
Odysseas Gabrielides
567ba392ba
fix: Faster feature_llmq_rotation.py + introduction of llmq_devnet_dip0024 (#4878)
* Added LLMQ_DEVNET_V2

* Faster feature_llmq_rotation func test

* Updated llmq_devnet_dip0024

* Adjusted parameters

* Better comments

* Re-adjusted rotated llmq params
2022-06-28 19:16:26 -05:00
Odysseas Gabrielides
94dea23036
docs(llmq): Improved documentation for keepOldConnections (#4876) 2022-06-28 19:15:53 -05:00
QuantumExplorer
a651ae989e
Merge pull request #4872 from PastaPastaPasta/v18-bp-rc6
[v18.x] backport: rc6 backports and version bump
2022-06-08 22:40:43 +07:00
UdjinM6
4f5971b719
Merge pull request #4874 from UdjinM6/addrv2_followups
backport: bitcoin 20564, 20661 (addrv2 follow-ups)
2022-06-08 09:42:18 -05:00
PastaPastaPasta
6a90e68edc
chore: bump copyrights (#4873)
* chore: bump copyright in configure.ac

* chore: bump copyright via copyright_header.py

ran command `python3 contrib/devtools/copyright_header.py update .`
2022-06-07 18:40:18 -05:00
pasta
cbc579ae4e
chore: bump to rc6 2022-06-07 16:43:05 -05:00
Odysseas Gabrielides
d9f0b3a961
fix!: Rotation fixes and adjustments (#4868)
* Typos

* Fix for Rotated member calculation

* Adjusted keepOldConnections logic to rotation

* Fix for Rotated member calculation + more logs

* Fix for Rotated member calculation

* Added LogAcceptCategory

* fix: brackets and LLMQ_TEST_DIP0024 changes

* fix: decrease keepOldConnections to 4

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

Co-authored-by: pasta <pasta@dashboost.org>
Co-authored-by: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com>
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2022-06-07 16:39:30 -05:00
UdjinM6
21bf0eacdb
fix(llmq): Actually remove old masternode quorum connections (#4859) 2022-06-07 16:39:18 -05:00
Konstantin Akimov
9f27648dc2
depends: dump `zlib' from 1.2.11 to 1.2.12 due to 404 link for source downloading (#4858) 2022-06-03 15:24:43 +03:00
UdjinM6
5d32741d4e
Merge pull request #4856 from PastaPastaPasta/rc5-backports
[18.x] backport: backports for rc5 and bump
2022-05-30 19:13:25 +03:00
Konstantin Akimov
07249a836f
feat(qt): UI fixes for window "Wallet Repair" (#4846)
* Qt: fix layout of components on "Wallet Repair" window

* Qt: refactor ui xml config

It orders components accordingly their positions on windows and fixes space indentation
2022-05-30 10:57:10 -05:00
Konstantin Akimov
1babc5abff
docs/build: Kubuntu 22.04 build fix (#4843)
* Fix build of qtbase in contrib for Gcc 11.x

It adds a patch with missing include <limits> in qtbase/src/tools/moc/generator.cpp

* Merge bitcoin/bitcoin#23716: test: replace hashlib.ripemd160 with an own implementation

5b559dc7ecf37ab1604b75ec8ffe8436377a5fb1 Swap out hashlib.ripemd160 for own implementation (Pieter Wuille)
ad3e9e1f214d739e098c6ebbd300da5df1026a44 Add pure Python RIPEMD-160 (Pieter Wuille)

Pull request description:

  Closes #23710.

ACKs for top commit:
  jamesob:
    ACK 5b559dc7ec, pending CI

Tree-SHA512: dcd4ea2027eac572f7ab0da434b081b9a5d6b78675e559258a446b4d254b29d93c4d2cc12da4a28303543d6d99f5f2246fde4052e84af81d18e04399b137b39e

* Updates doc for Unix build: added missing dependency bison

Co-authored-by: MarcoFalke <falke.marco@gmail.com>
2022-05-30 10:57:01 -05:00
pasta
8aefb77d86
chore: bump to rc5 2022-05-29 15:51:17 -05:00
UdjinM6
a8b9dedefb
fix(qt): Disable "Show address QR code" menu items/buttons when no qrencode support was compiled in (#4854) 2022-05-29 15:51:17 -05:00
Odysseas Gabrielides
145a974a22
fix!: llmqTypeInstantSend deactivation prevention if used for other purposes (#4848) 2022-05-28 23:29:45 -05:00
Odysseas Gabrielides
228633a99c
fix!: Return FinalCommitment in qrinfo (instead of simply quorumHash) (#4850) 2022-05-28 23:29:33 -05:00
Odysseas Gabrielides
24ba5ce6ca
Adjusted keepOldConnections value for llmq_devnet (#4851) 2022-05-28 23:29:12 -05:00
UdjinM6
e66d539fa5
Merge pull request #4842 from PastaPastaPasta/v18-backports-rc4
[v18] chore: backports to v18 branch and bump version to rc4
2022-05-18 22:37:23 +03:00
pasta
905b32fffd chore: bump to rc4 2022-05-18 12:49:20 -05:00
Odysseas Gabrielides
414e40d29f fix!: incorrect CalcCbTxMerkleRootQuorums with rotation (#4833)
* Fix for CalcCbTxMerkleRootQuorums with rotation

* Added check for merkleRootQuorums in feature_llmq_rotation

* Correct logging

* Update test/functional/feature_llmq_rotation.py

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

* Update test/functional/feature_llmq_rotation.py

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

* lint: fix python linter

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
Co-authored-by: pasta <pasta@dashboost.org>
2022-05-18 12:48:15 -05:00
UdjinM6
a3f4f57027 fix(qt): include upgradetohd into "no history" list (#4832) 2022-05-18 10:37:47 -05:00
UdjinM6
ab49fc938e wallet: Fix wallet autobackup on start (#4831)
19324 follow-up (merged via 4714) - `AutoBackupWallet()` call was unreachable.

NOTE: It's safe to call it after `Verify()` because 18918 backport moved salvage logic out of `Verify*()`.
2022-05-18 10:37:42 -05:00
UdjinM6
1ddddb0c1e mnsync: drop regtest-only "quick sync" mode (#4824) 2022-05-18 10:37:38 -05:00
UdjinM6
070ef357c0 wallet: fix metadata updates on HD derivation (#4819)
* wallet: Use temporary structure to update metadata correctly while generating new hd keys

* wallet: Make sure to never update an already existing key_origin while deriving hd keys
2022-05-18 10:37:33 -05:00
UdjinM6
1d2c9da931 Merge pull request #4817 from UdjinM6/drop_0
build: switch to classical `major.minor.patch` semver
2022-05-18 10:37:18 -05:00
strophy
72d53af11a ci: fix docker context (#4816) 2022-05-18 10:35:25 -05:00
PastaPastaPasta
dfa09a0859
bump rc to 3 (#4810) 2022-04-26 20:58:45 +03:00
UdjinM6
ce0aa5336d
Merge pull request #4805 from PastaPastaPasta/v18.x-bc-pr2
[18.x] V18.x backport pr2
2022-04-26 20:32:53 +03:00
UdjinM6
31ff57694d rpc: fix and simplify quorum rotationinfo (#4808)
Issues with current implementation: params list is not mentioning `baseBlockHashes`, `baseBlockHashesNb` looks excessive, no default values, handling of baseBlockHash-es is off by 1 (`3 + i` should be `4 + i`).

before:
```
> help quorum rotationinfo

quorum rotationinfo "blockRequestHash" baseBlockHashesNb extraShare
Get quorum rotation information

Arguments:
1. blockRequestHash     (string, required) The blockHash of the request.
2. baseBlockHashesNb    (numeric, required) Number of baseBlockHashes
3. extraShare           (boolean, required) Extra share
```

after:
```
> help quorum rotationinfo

quorum rotationinfo "blockRequestHash" ( extraShare "baseBlockHash..." )
Get quorum rotation information

Arguments:
1. blockRequestHash    (string, required) The blockHash of the request.
2. extraShare          (boolean, optional, default=false) Extra share
3. baseBlockHash...    (string, optional, default=) baseBlockHashes
```
2022-04-26 12:29:49 -05:00
Odysseas Gabrielides
f7ebc56cda Correct returned variable (#4809)
* Correct returned variable

* Fix
2022-04-26 12:27:19 -05:00
UdjinM6
be6181db5f llmq: Avoid endless loop in GetQuorumRelayMembers (#4796)
* llmq: Avoid endless loop in GetQuorumRelayMembers

regtest quorums can be tiny

* minimize changes, add a note
2022-04-26 12:27:11 -05:00
PastaPastaPasta
aa00e5ca01 fix: bump dkgBadVotesThreshold to 80% (#4806) 2022-04-26 11:10:48 -05:00
UdjinM6
5c0e0e9089 Translations 202202 (#4691)
* make translate

* ru

* fi

* 100%: es, fi, fr, it, ja, ko, nl, pl, pt, sk, th, tr, zh_TW
2022-04-26 11:10:05 -05:00
Odysseas Gabrielides
96a80ac17b Edge case fix for Rotation (#4803)
* Edge case fix

* Simpler syntax

* add a bit of documentation, and adjust scopes

* use a switch statment

* adjust how returning happens

Co-authored-by: pasta <pasta@dashboost.org>
2022-04-25 14:28:46 -05:00
UdjinM6
307c0b928a trivial/lint: tweak lint-spelling.sh and fix typos (#4802)
* lint: exclude 3-rd party libs from spell-checks

* trivial: fix typos
2022-04-25 14:28:27 -05:00
UdjinM6
2f12a8e38a tests: various fixes/cleanups (#4797)
* tests: move `move_to_next_cycle` to `DashTestFramework`

* tests: set correct defaults for `mine_cycle_quorum`

* tests: use correct quorum type in `create_islock`

* tests: fix `rpc_verifyislock.py`

* tests: fix `feature_llmq_is_cl_conflicts.py`

* tests: isolate zmq subscribers in `interface_zmq_dash.py`

this lets us call `test_*_publishers()` in any order and any number of times

* tests: check zmq for both deterministic and non-deterministic islocks
2022-04-25 14:27:12 -05:00
PastaPastaPasta
7c330ab5e9 fix(qt): fix crash when first enabling governance tab due to null-ptr deref (#4795)
Decided to also apply the same logic to the other items so that we don't do nullptr dereferences

replication
```
./src/qt/dash-qt --regtest --resetguisettings
Enable governance
shutdown
```
2022-04-25 14:26:59 -05:00
UdjinM6
c0240da890
Merge pull request #4791 from UdjinM6/bp4790
[v18.x] backport 4790
2022-04-21 05:03:03 +03:00
UdjinM6
bf3319cb26
instantsend: create islock/isdlock based on the quorum rotation activation status (#4790) 2022-04-21 05:00:06 +03:00
UdjinM6
3ebbefd380
Merge pull request #4783 from PastaPastaPasta/v18.x-bc-pr1
[v18.x] Misc Backports
2022-04-20 23:24:28 +03:00
PastaPastaPasta
ed12b8d29d fix(instantsend): avoid an iterator invalidation in pendingInstantSendLocks handling (#4787)
* fix(instantsend): avoid an iterator invalidation in pendingInstantSendLocks handling

this also removes the following, as it doesn't take into account deterministic / not deterministic
```
if (pendingInstantSendLocks.size() <= maxCount) {
    pend = std::move(pendingInstantSendLocks);
}
```

Also uses structured bindings

* suggestions

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2022-04-20 14:35:36 -05:00
PastaPastaPasta
e83673f282 fix: adjust nWindowSize and nThresholdStart and nThresholdMin (#4786) 2022-04-20 14:35:26 -05:00
thephez
f9aba3efa5
docs: update bips.md (#4780)
* docs: update bips.md

* docs: switch to reference Dash version

* Update doc/bips.md

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

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2022-04-19 11:55:09 -05:00
UdjinM6
79107df6bf
tests: fix wait_for_* methods, force mnsync on non-mns too (#4782)
* tests: fix `wait_for_*` methods

should not override `all_ok` once it's `False`

* tests: force non-mns to switch to "fully synced" mnsync status in `setup_network`

like we do this for the controller node and all mns already
2022-04-19 19:42:52 +03:00
thephez
5d72da6f18
fix: add missing includes (#4781) 2022-04-19 09:25:20 +03:00