bitcoin/test/lint
W. J. van der Laan 2b45cf0bcd
Merge bitcoin/bitcoin#19521: Coinstats Index
5f96d7d22d rpc: gettxoutsetinfo rejects hash_serialized_2 for specific height (Fabian Jahr)
23fe50436b test: Add test for coinstatsindex behavior in reorgs (Fabian Jahr)
90c966b0f3 rpc: Allow gettxoutsetinfo and getblockstats for stale blocks (Fabian Jahr)
b9362392ae index, rpc: Add use_index option for gettxoutsetinfo (Fabian Jahr)
bb7788b121 test: Test coinstatsindex robustness across restarts (Fabian Jahr)
e0938c2909 test: Add tests for block_info in gettxoutsetinfo (Fabian Jahr)
2501576ecc rpc, index: Add verbose amounts tracking to Coinstats index (Fabian Jahr)
655d929836 test: add coinstatsindex getindexinfo coverage, improve current tests (Jon Atack)
ca01bb8d68 rpc: Add Coinstats index to getindexinfo (Fabian Jahr)
57a026c30f test: Add unit test for Coinstats index (Fabian Jahr)
6a4c0c09ab test: Add functional test for Coinstats index (Fabian Jahr)
3f166ecc12 rpc: gettxoutsetinfo can be requested for specific blockheights (Fabian Jahr)
3c914d58ff index: Coinstats index can be activated with command line flag (Fabian Jahr)
dd58a4de21 index: Add Coinstats index (Fabian Jahr)
a8a46c4b3c refactor: Simplify ApplyStats and ApplyHash (Fabian Jahr)
9c8a265fd2 refactor: Pass hash_type to CoinsStats in stats object (Fabian Jahr)
2e2648a902 crypto: Make MuHash Remove method efficient (Fabian Jahr)

Pull request description:

  This is part of the coinstats index project tracked in #18000

  While the review of the new UTXO set hash algorithm (MuHash) takes longer recently #19328 was merged which added the possibility to run `gettxoutsetinfo` with a specific hash type. As the first type it added `hash_type=none` which skips the hashing of the UTXO set altogether. This alone did not make `gettxoutsetinfo` much faster but it allows the use of an index for the remaining coin statistics even before a new hashing algorithm has been added. Credit to Sjors for the idea to take this intermediate step.

  Features summary:
  - Users can start their node with the option `-coinstatsindex` which syncs the index in the background
  - After the index is synced the user can  use `gettxoutsetinfo` with `hash_type=none` or `hash_type=muhash` and will get the response instantly out of the index
  - The user can specify a height or block hash when calling `gettxoutsetinfo` to see coin statistics at a specific block height

ACKs for top commit:
  Sjors:
    re-tACK 5f96d7d22d
  jonatack:
    Code review re-ACK 5f96d7d22d per `git range-diff 13d27b4 07201d3 5f96d7d`
  promag:
    Tested ACK 5f96d7d22d. Light code review ACK 5f96d7d22d.

Tree-SHA512: cbca78bee8e9605c19da4fbcd184625fb280200718396c694a56c7daab6f44ad23ca9fb5456d09f245d8b8d9659fdc2b3f3ce5e953c1c6cf4003dbc74c0463c2
2021-04-30 17:27:19 +02:00
..
check-doc.py scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
commit-script-check.sh scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
extended-lint-all.sh scripted-diff: Bump copyright headers 2020-04-16 13:33:09 -04:00
extended-lint-cppcheck.sh remove unused class util::Ref and its unit test 2021-03-29 23:29:47 +02:00
git-subtree-check.sh scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
lint-all.sh Run all lint scripts 2019-05-16 16:42:59 +02:00
lint-assertions.sh scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
lint-circular-dependencies.sh index: Coinstats index can be activated with command line flag 2021-04-19 20:28:48 +02:00
lint-cpp.sh lint: add C++ code linter 2020-09-01 14:23:08 +08:00
lint-filenames.sh scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
lint-format-strings.py Refactor: Copy CWallet signals and print function to LegacyScriptPubKeyMan 2020-01-23 16:35:08 -05:00
lint-format-strings.sh scripted-diff: Bump copyright headers 2020-04-16 13:33:09 -04:00
lint-git-commit-check.sh ci: Drop Travis-specific way to set COMMIT_RANGE variable 2020-12-21 12:10:59 +02:00
lint-include-guards.sh multiprocess: Add Ipc interface implementation 2021-04-23 03:02:50 -05:00
lint-includes.sh Merge #21064: refactor: use std::shared_mutex & remove Boost Thread 2021-02-12 11:39:36 +01:00
lint-locale-dependence.sh Merge #18817: doc: Document differences in bitcoind and bitcoin-qt locale handling 2020-08-29 10:03:45 +02:00
lint-logs.sh scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
lint-python-dead-code.sh Re-add dead code detection 2021-02-13 09:57:50 +01:00
lint-python-mutable-default-parameters.sh lint: Catch use of [] or {} as default parameter values in Python functions 2019-08-26 10:53:10 +00:00
lint-python-utf8-encoding.sh scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
lint-python.sh scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
lint-qt.sh test: Add lint to prevent SIGNAL/SLOT connect style 2018-08-21 09:43:55 +01:00
lint-shebang.sh scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
lint-shell-locale.sh macOS fix: Work around empty (sub)expression error when using BSD grep 2018-08-31 00:52:48 +02:00
lint-shell.sh ci: Drop Travis-specific workaround for shellcheck 2020-12-21 12:11:00 +02:00
lint-spelling.ignore-words.txt lint: ignore gitian keys file for spelling linter 2021-01-02 19:06:28 +01:00
lint-spelling.sh lint: ignore gitian keys file for spelling linter 2021-01-02 19:06:28 +01:00
lint-submodule.sh ci: Check for submodules 2020-02-10 16:48:15 +01:00
lint-tests.sh Obsolete #!/bin/bash shebang 2018-06-20 11:12:41 +03:00
lint-whitespace.sh lint: Skip whitespace lint for guix patches 2021-01-17 18:43:58 -05:00
README.md test: Add option to git-subtree-check to do full check, add help 2020-12-04 09:36:17 +01: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.

Usage: test/lint/git-subtree-check.sh [-r] DIR [COMMIT]
       test/lint/git-subtree-check.sh -?
  • DIR is the prefix within the repository to check.
  • COMMIT is the commit to check, if it is not provided, HEAD will be used.
  • -r checks that subtree commit is present in repository.

To do a full check with -r, make sure that you have fetched the upstream repository branch in which the subtree is maintained:

To do so, add the upstream repository as remote:

git remote add --fetch secp256k1 https://github.com/bitcoin-core/secp256k1.git

lint-all.sh

Calls other scripts with the lint- prefix.