Add MuHash3072 implementation
Summary:
General context (see core#18000):
This is a step in the way of implementing an index of coin statistics with the goal of making the response time of the gettxoutsetinfo RPC call dramatically faster. Currently, this RPC is scanning the full UTXO set every time it is called which makes it hard to use for users that want to continually check the coin supply or compare UTXO set hashes between different nodes. It is especially challenging in periods of multiple quickly mined blocks, even relatively fast machines.
build: Check for 128 bit integer support
https://github.com/bitcoin/bitcoin/pull/19145/commits/2474645f3b15687e7f196b89eb935d6e6a98a9da
crypto: Add Num3072 implementation
Num3072 is a specialized bignum implementation used in MuHash3072.
https://github.com/bitcoin/bitcoin/pull/19055/commits/0b4d290bf5b0a4d156c523431bf89aaa9ffe92e5
crypto: Add MuHash3072 implementation
https://github.com/bitcoin/bitcoin/pull/19055/commits/adc708c98dbf03b1735edc91f813a36580781a95
test: Add MuHash3072 unit tests
https://github.com/bitcoin/bitcoin/pull/19055/commits/7b1242229d1fcc9277238a3aefb3431061c82bfa
test: Change MuHash Python implementation to match cpp version again
https://github.com/bitcoin/bitcoin/pull/19055/commits/9815332d5158d69a94abeaf465a2c07bd8e43359
Co-authored-by: Pieter Wuille <pieter.wuille@gmail.com>
Co-authored-by: Anthony Towns <aj@erisian.com.au>
This is a partial backport of core#19055
Test Plan: ninja check check-functional
Reviewers: #bitcoin_abc, Fabien
Reviewed By: #bitcoin_abc, Fabien
Subscribers: Fabien
Differential Revision: https://reviews.bitcoinabc.org/D11150