Commit Graph

21553 Commits

Author SHA1 Message Date
UdjinM6
c1a7a591c1
Merge pull request #4944 from PastaPastaPasta/18/rc12
[18.x] backport: rc12 backport and bump
2022-07-29 19:52:37 +03:00
pasta
ec4f9fd9b6
chore: bump to rc12 2022-07-29 11:06:21 -05:00
Odysseas Gabrielides
3ca5f25a38
Merge pull request #4942 from UdjinM6/fix_cqmbqr
fix(llmq): Calculate quorum members while not debugging llmq
2022-07-29 11:05:56 -05:00
UdjinM6
b504b97a81
Merge pull request #4940 from PastaPastaPasta/backport-rc10
[v18.x] rc10 backports
2022-07-26 23:45:39 +03:00
pasta
d238549dd0
chore: bump rc to 11 2022-07-26 15:32:10 -05:00
Odysseas Gabrielides
b5ae437ca7
fix!: Fix on QuorumDataRequests and refactoring (#4937)
* qdata typo fixes and refactoring

* code style fix

* Add LOCK2 back

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2022-07-26 15:31:54 -05:00
UdjinM6
1fa81c6a04
Merge pull request #4936 from PastaPastaPasta/v18.x-rc10
[V18.x] backport: rc10 backports
2022-07-26 02:48:10 +03:00
pasta
cd56e5002b
chore: bump rc to 10 2022-07-25 17:08:53 -05:00
Odysseas Gabrielides
71c0bbeaf2
Store QuorumDataRequests per {ProTx, quorumHash, llmqType} (#4935) 2022-07-25 17:08:30 -05:00
UdjinM6
b9dbd6da02
fix(dkg/net): Drop outdated connections to nodes that became masternodes recently (#4934)
* feat: switch nTimeFirstMessageReceived from microseconds to seconds

Was acting more like a bool until now, so nothing should change really. Align it with nTimeConnected.

* fix(dkg/net): Drop outdated connections to nodes that became masternodes recently

Such nodes won't be seen as masternodes by RelayInvToParticipants otherwise so no contributions will be sent to them when they are picked as relay members which in its turn may result in other nodes PoSe-punishing us.
2022-07-25 17:08:22 -05:00
UdjinM6
f7427d9c13
fix: Handle quorum watch connections correctly (#4933)
We add them via EnsureQuorumConnections+ThreadOpenMasternodeConnections so they are clearly masternode connections and they are dropped regularly which is annoying. But also, we don't want every masternode connection to be a qwatch one, we want only the ones we added via that algo.
2022-07-25 17:08:10 -05:00
UdjinM6
0ca9fc087c
fix(llmq): use keepOldConnections (#4932)
We must scan/cache keepOldConnections quorums or we won't be able to process sig shares signed in the 8 blocks window (signig offset) once new quorum(s) are mined.
2022-07-25 17:07:34 -05:00
UdjinM6
8a1a86b063
fix/test: Count MN connections properly, add more tests for getnetworkinfo (#4928)
* fix: Count MN connections properly

* tests: check extended connections info returned via getnetworkinfo
2022-07-25 17:07:25 -05:00
UdjinM6
fa12c9685c
Merge pull request #4921 from PastaPastaPasta/v18.x-rc9
[v18.x] rc9 backports
2022-07-18 22:44:37 +03:00
pasta
3950dcd295
chore: bump to rc9 2022-07-18 14:31:52 -05:00
UdjinM6
9e22801878
feat(llmq): Ensure connections between IS quorums (#4917)
* fix(llmq): Ensure connections between quorums

Every masternode will now "watch" a single node from _every other_ quorum in addition to intra-quorum connections. This should make propagation of recsigs produced by one quorum to other quorums much more reliable.

* fix: Do this only for masternodes which participate in IS quorums

* refactor: rename `CQuorumManager::EnsureQuorumConnections` to better match the actual behaviour

(and avoid confusion with `CLLMQUtils::EnsureQuorumConnections`)

* refactor: move IS quorums watch logic into `CQuorumManager::CheckQuorumConnections`

avoid calling slow `ScanQuorums` (no caching atm) inside the loop

* tests: check that inter-quorum connections are added

* use `ranges::any_of`
2022-07-18 14:31:52 -05:00
Odysseas Gabrielides
a1f54a6079
feat(rpc): getnetworkinfo RPC enrichment response (#4913)
* Enrich getnetworkinfo

* Adjustements
2022-07-15 10:32:58 -05:00
Odysseas Gabrielides
b4ed731cb1
fix!: GetNumCommitmentsRequired Rotation (#4915)
* Fix in GetNumCommitmentsRequired

* Correction
2022-07-15 10:29:10 -05:00
UdjinM6
7f60ee7d9c
fix(llmq): mark mns "bad" based on the failed connect attempts count (#4910)
* fix(llmq): mark mns "bad" based on the failed connect attempts count

Avoid using "last success time" as a proxy

* fix(tests): tweak feature_llmq_simplepose.py
2022-07-15 10:28:24 -05:00
UdjinM6
71b977a283
Merge pull request #4909 from UdjinM6/bp_rc8
backport: v18 rc8
2022-07-07 18:11:10 +03:00
UdjinM6
78f992fc8c
chore: bump to rc8 2022-07-07 11:04:22 +03:00
UdjinM6
25071e647b
fix(dkg): let probes on mainnet ignore existing inbound connections (#4908) 2022-07-07 11:04:22 +03:00
UdjinM6
394bf42fef
fix(dkg): let masternodes miss few connection attempts before considering them "bad" (#4907)
* fix(dkg): let masternodes miss few connection attempts before considering them "bad"

Should help with dashd updates/restarts for nodes that were successfully probed recently.

* fix
2022-07-07 10:52:17 +03:00
UdjinM6
61c6f60ac5
fix(net): Let MNs accept conections as soon as blockchain is synced (#4905)
Do not wait for governance data, it's not needed for DKGs
2022-07-07 10:52:07 +03:00
UdjinM6
268b8e97d3
feat(llmq): avoid probing mns too often instead of using a tiny window to probe them (#4904)
We only call AddQuorumProbeConnections when a new quorum is intialized. It's possible to miss the 10 minute probe window if Contribute phase takes too long (when 2 blocks were mined in 10+ minutes). 50 minutes should be enough and probing once in 10 minutes should be safe.
2022-07-07 10:51:54 +03:00
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