rust-bitcoin-unsafe-fast/bitcoin
Andrew Poelstra 44a6402875
Merge rust-bitcoin/rust-bitcoin#2740: Add difficulty adjustment calculation
47dc4a3180 feat(pow): add difficulty adjustment calculation (Rob N)

Pull request description:

  Hi, I hit a roadblock with the current `pow` API. As far as I can tell, the only workaround to calculate the next work required similar to `bitcoin/src/pow.cpp` is to use a general big integer library, convert the `Target` to bytes, do the math, and convert back to `Target` from bytes. I have also been working with [Floresta](780ea8d0b0) and their [solution](780ea8d0b0/crates/floresta-chain/src/pruned_utreexo/consensus.rs (L187)) was to fork off and exposed the `U256` struct publicly on their branch. I think these home brewed difficulty adjustment solutions will continually pop up, so I created a `from_next_work_required` method to return a `Target`. My work veers significantly from #2180, as I only provided a single method to do so, without further guidance on when exactly this retarget occurs.

  I am happy to add tests once I get further direction from maintainers if this as a likelihood of being accepted or not. Thanks.

ACKs for top commit:
  tcharding:
    ACK 47dc4a3180
  apoelstra:
    ACK 47dc4a3180 used range-diff

Tree-SHA512: 6d627ce698361afed61c8f2a12a1a96371a7a93118e08a91dae250de4f23d65c615d2654d37d2699c88b7c22f6e4bc2a1195f963c15512d7c0d041498f02dc41
2024-05-15 13:42:25 +00:00
..
contrib ci: shellcheck checks 2024-05-11 18:08:53 +00:00
embedded ci: shellcheck checks 2024-05-11 18:08:53 +00:00
examples bip32: derive_xpriv should not return a Result 2024-05-13 20:43:49 +00:00
src Merge rust-bitcoin/rust-bitcoin#2740: Add difficulty adjustment calculation 2024-05-15 13:42:25 +00:00
tests bip32: derive_xpriv should not return a Result 2024-05-13 20:43:49 +00:00
CHANGELOG.md bitcoin: Bump version to 0.32.0-rc1 2024-04-05 08:10:08 +11:00
Cargo.toml Merge rust-bitcoin/rust-bitcoin#2729: bitcoin: Set version number 2024-05-15 01:50:24 +00:00
build.rs Bump MSRV to Rust version 1.56.1 2023-11-23 06:20:02 +11:00