dash/test/lint
Odysseas Gabrielides 494b5c744c
feat: mnlistdiff v20 CL sig quorums (#5377)
## Issue being fixed or feature implemented
Implementation of Randomness Beacon Part 3.

Starting from v20 activation fork, members for quorums are sorted using
(if available) the best CL signature found in Coinbase.
If no CL signature is present yet, then the usual way is used (By using
Blockhash instead)

The actual new way to shuffle is already implemented in
https://github.com/dashpay/dash/pull/5366.

SPV clients also need to calculate members, but they only know block
headers.
Since Coinbase is in the actual block, then they lack the required
information to correctly calculate quorum members.

## What was done?
- Message `MNLISTIDFF` is enriched with a new field `quorumsCLSigs`.
This field holds the Chainlock Signature required for each set of
indexes corresponding to quorums in field `newQuorums`.
-  Protocol version has been bumped to `70230`.
- Clients with protocol version greater or equal to `70230` will receive
the new field `quorumsCLSigs`.
- The same field is returned in `protx diff` RPC.

Note:
- Field `quorumsCLSigs` will populated only after v20 activation
- If for one or more quorums, no non-null CL sig was found in CbTx then
a null signature is returned in `quorumsCLSigs`.

## How Has This Been Tested?
- Functional test mininode's protocol version was bumped to `70230`.
- `feature_llmq_rotation.py` checks that `quorumsCLSigs` match in both
P2P and RPC messages.

## Breaking Changes
No

## Checklist:
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have added or updated relevant unit/integration/functional/e2e
tests
- [x] 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: thephez <thephez@users.noreply.github.com>
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
Co-authored-by: pasta <pasta@dashboost.org>
2023-07-10 11:23:09 -05:00
..
check-doc.py merge bitcoin#19671: Remove -zapwallettxes 2022-05-13 18:06:06 +05:30
check-rpc-mappings.py refactor: remove leftover rpc prefix from filename (evo, quorum) 2022-10-21 21:51:45 +05:30
commit-script-check.sh Merge bitcoin/bitcoin#23543: test: Prevent non-compatible sed binary for scripted-diffs 2022-04-11 09:46:40 -07:00
extended-lint-all.sh Merge #14505: test: Add linter to make sure single parameter constructors are marked explicit 2021-11-24 14:36:20 -05:00
extended-lint-cppcheck.sh Merge #18234: refactor: Replace boost::mutex,condition_var,chrono with std equivalents in scheduler 2023-05-31 18:14:23 -05:00
git-subtree-check.sh Merge #17329: linter: Strip trailing / in path for git-subtree-check 2021-07-13 20:43:16 -05:00
lint-all.sh Optimize linters (#4637) 2021-12-30 19:34:36 +03:00
lint-assertions.sh partial bitcoin#19277: Add Assert identity function' 2022-05-13 18:06:06 +05:30
lint-circular-dependencies.sh refactor: trivial refactorings of llmq/ (#5486) 2023-07-10 10:13:42 -05:00
lint-cppcheck-dash.sh feat: mnlistdiff v20 CL sig quorums (#5377) 2023-07-10 11:23:09 -05:00
lint-filenames.sh build: add exclusions to linting scripts and filters 2022-12-01 00:51:08 +05:30
lint-format-strings.py Merge #16688: log: Add validation interface logging 2023-05-24 12:43:57 -05:00
lint-format-strings.sh build/depends: commit dashpay/bls-signatures@66ee820f to source tree as vendored (#5077) 2022-11-22 11:34:46 -06:00
lint-git-commit-check.sh Fix lint-git-commit-check.sh (#4267) 2021-07-19 12:32:12 +03:00
lint-include-guards.sh build: add exclusions to linting scripts and filters 2022-12-01 00:51:08 +05:30
lint-includes.sh Merge #17477: Remove the mempool's NotifyEntryAdded and NotifyEntryRemoved signals 2023-02-15 00:07:39 -06:00
lint-locale-dependence.sh Merge bitcoin/bitcoin#23214: Replace stoul with ToIntegral in dbwrapper 2023-04-17 11:17:34 -05:00
lint-logs.sh Merge #17260: Split some CWallet functions into new LegacyScriptPubKeyMan (#4938) 2022-08-08 11:05:21 -05:00
lint-python-dead-code.sh Merge #21096: Re-add dead code detection 2021-10-05 20:34:00 +03:00
lint-python-mutable-default-parameters.sh Merge #16726: tests: Avoid common Python default parameter gotcha when mutable dict/list:s are used as default parameter values 2023-04-04 12:45:27 -05:00
lint-python-utf8-encoding.sh partial merge #17398: Update leveldb to 1.22+ (#4230) 2021-07-15 15:42:55 -05:00
lint-python.sh build: add exclusions to linting scripts and filters 2022-12-01 00:51:08 +05:30
lint-qt.sh Merge #13529: Use new Qt5 connect syntax 2021-08-23 12:12:31 -04:00
lint-rpc-help.sh Merge bitcoin#14726: Use RPCHelpMan for all RPCs (#4492) 2021-10-12 00:55:23 +03:00
lint-shebang.sh build: add exclusions to linting scripts and filters 2022-12-01 00:51:08 +05:30
lint-shell-locale.sh build/depends: commit dashpay/bls-signatures@66ee820f to source tree as vendored (#5077) 2022-11-22 11:34:46 -06:00
lint-shell.sh build: add exclusions to linting scripts and filters 2022-12-01 00:51:08 +05:30
lint-spelling.ignore-words.txt Merge #18253: doc: Correct spelling errors in comments 2023-04-04 12:53:49 -05:00
lint-spelling.sh partial Merge bitcoin/bitcoin#22405: build: remove --enable-glibc-back-compat from Guix build 2023-03-26 16:50:26 -05:00
lint-submodule.sh Merge #18056: ci: Check for submodules 2021-07-13 21:17:15 -05:00
lint-tests.sh Merge #13510: Scripts and tools: Obsolete #!/bin/bash shebang 2020-12-18 12:55:45 -06:00
lint-whitespace.sh Merge #20937: guix: Make nsis reproducible by respecting SOURCE-DATE-EPOCH 2023-03-26 16:50:26 -05:00
README.md Merge #17176: ci: Cleanup macOS runs 2022-05-17 01:20:21 -04:00

This folder contains lint scripts.

check-doc.py

Check for missing documentation of command line options.

commit-script-check.sh

Verification of scripted diffs. Scripted diffs are only assumed to run on the latest LTS release of Ubuntu. Running them on other operating systems might require installing GNU tools, such as GNU sed.

git-subtree-check.sh

Run this script from the root of the repository to verify that a subtree matches the contents of the commit it claims to have been updated to.

To use, make sure that you have fetched the upstream repository branch in which the subtree is maintained:

Usage: git-subtree-check.sh DIR (COMMIT)

COMMIT may be omitted, in which case HEAD is used.

lint-all.sh

Calls other scripts with the lint- prefix.