HomePhabricator

Add MuHash3072 implementation

Description

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

Details

Provenance
Fabian Jahr <fjahr@protonmail.com>Authored on Dec 20 2020, 21:23
PiRKCommitted on Mar 14 2022, 07:44
PiRKPushed on Mar 14 2022, 07:44
Reviewer
Restricted Project
Differential Revision
D11150: Add MuHash3072 implementation
Parents
rABC791cb532e137: Bump version to 0.25.2
Branches
Unknown
Tags
Unknown