~fuzzbawls/pivx-core/+git/test:2022_merkleblock-bloom-coverage

Last commit made on 2022-02-03
Get this branch:
git clone -b 2022_merkleblock-bloom-coverage https://git.launchpad.net/~fuzzbawls/pivx-core/+git/test

Branch merges

Branch information

Name:
2022_merkleblock-bloom-coverage
Repository:
lp:~fuzzbawls/pivx-core/+git/test

Recent commits

f8c8a0a... by Fuzzbawls

test: Seed test RNG context for each test case, print seed

also rename the global `insecure_rand_ctx` to `g_insecure_rand_ctx`

83743a0... by Fuzzbawls

[Tests] Re-enable bloom unit tests

ca7dec3... by martinus

replace modulus with FastMod

Replaces the slow modulo operation with a much faster 32bit multiplication & shift. This works
because the hash should be uniformly distributed between 0 and 2^32-1. This speeds up the benchmark
by a factor of about 1.3:

RollingBloom, 5, 1500000, 3.73733, 4.97569e-07, 4.99002e-07, 4.98372e-07 # before
RollingBloom, 5, 1500000, 2.86842, 3.81630e-07, 3.83730e-07, 3.82473e-07 # FastMod

Be aware that this changes the position of the bits that are toggled, so this should probably
not be used for CBloomFilter which is serialized.

50d06a2... by Pieter Wuille <email address hidden>

More efficient bitsliced rolling Bloom filter

This patch changes the implementation from one that stores 16 2-bit integers
in one uint32_t's, to one that stores the first bit of 64 2-bit integers in
one uint64_t and the second bit in another. This allows for 450x faster
refreshing and 2.2x faster average speed.

5d13bf2... by Pieter Wuille <email address hidden>

Benchmark rolling bloom filter

079af32... by James O'Beirne

Add tests for CMerkleBlock usage with txids specified

0288335... by James O'Beirne

Consolidate CMerkleBlock constructor into a single method

Incorporates feedback suggested by @sipa, @promag, @TheBlueMatt.

bedf4de... by random-zebra <email address hidden>

Merge #2721: [GUI] Decouple legacy MNs code from the GUI elements

18e270de1741f6e83aae55b201c392b0397752e8 GUI: Move start legacy Masternodes functions to MNModel. (furszy)
7ce5b0299a1c1affe202649f0fbd02a8a9eabfcb Move-only: Move MN collateral min conf value to chainparams (furszy)
fb39016d88ce8588696e597fd081ec3b65cfb37e [GUI] Encapsulate legacy Masternode remove process inside MNModel. (furszy)
2f5a64d3d7707a0fc85137c365dfecc31b1fa41d [GUI] fix clang warnings in masternodewizarddialog.h/cpp (furszy)
3be68e4437c0cff0a1cf2e2027764bdbfb86145e [GUI] Decouple legacy masternodes creation into its own createLegacyMN inside MNModel. (furszy)
07a2a6f08060d3be46c24c565e1900a6e52929cd [GUI] Decouple collateral tx creation into its own function inside the model. (furszy)
e2af4c92b016165caaf3ff92820eb4895a004adc [GUI] move getMNCollateralRequiredAmount from clientModel to mnModel (furszy)

Pull request description:

  Encapsulating the legacy Masternodes code that is spread over the GUI widgets inside the MN module.

  Plus, as is a value shared between legacy and deterministic Masternodes, moved the collateral min conf field to `chainparams`. Which allowed to remove the following circular dependency: `"evo/deterministicmns -> masternode -> wallet/wallet -> evo/deterministicmns"`

  Part of the building blocks for adding visual support for the new deterministic Masternodes features.

ACKs for top commit:
  random-zebra:
    ACK 18e270de1741f6e83aae55b201c392b0397752e8
  Fuzzbawls:
    re-ACK 18e270de1741f6e83aae55b201c392b0397752e8

Tree-SHA512: 8e91cbc94ea25e3ec1592c86e564528220c6114128b14e4e3184d71a5afafae235330afb768fb557a97060552da94a57842f8a7a4e375106a29361c43d2ad673

18e270d... by furszy <email address hidden>

GUI: Move start legacy Masternodes functions to MNModel.

7ce5b02... by furszy <email address hidden>

Move-only: Move MN collateral min conf value to chainparams

This field is used for both types, legacy and deterministic.