Repository navigation
45 Day Maturity Softfork - Permanent - #480
FlyTheElephant1 wants to merge 1 commit into
Conversation
|
Tested 235347e (Ubuntu on WSL2, GCC 15.2.0, no GUI). Not an ACK yet, one unit test regression: Fails: The same test passes on the base (58398ba, 10 test cases, no errors), so this comes from the PR. Cause: the shared helper Verified locally: reverting the Passes: build; Nit: with the release height at INT_MAX, Happy to re-test once the test is fixed. |
235347e to
98f8ea8
Compare
|
Re-tested 98f8ea8: the chainparams revert fixes validation_chainstatemanager_tests (passes now). One assertion left in coinbase_maturity_tests.cpp:48 (testnet4): |
98f8ea8 to
eb6e889
Compare
|
Re-tested eb6e889 (Ubuntu on WSL2, GCC 15.2.0, no GUI): the earlier failures are fixed.
Only nit left: with ReleaseHeight at INT_MAX, rpc/blockchain.cpp (~line 1967) returns early, so height_end / maturity appear to stop being reported on mainnet. |
eb6e889 to
c705c3a
Compare
|
Tested c705c3a on top of 58398ba.
Dropping the early return in LongCoinbaseMaturityDescPushBack makes networks that never configure the deployment (e.g. regtest) report: Adding this line at the top of the function makes rpc_blockchain.py pass on both transports: |
c705c3a to
4bd9f45
Compare
|
Tested 4bd9f45 on top of 58398ba. As pushed it does not build: in LongCoinbaseMaturityDescPushBack the new guard With those two lines swapped (declaration first, then the guard) I get:
So the logic looks right...it just needs the lines reordered. |
Remove the temporary window cliff by setting CoinbaseMaturityLongReleaseHeight to INT_MAX and CoinbaseMaturityLong to 6480. Coins created at or after 973440 remain locked for 6480 blocks indefinitely instead of all releasing at 979920. Extend the long_coinbase_maturity revalidation marker to the same permanent range so nodes re-check from the start height onward. Keep the exclusive stop_height style (ReleaseHeight - 1) so existing test assumptions continue to hold. Show the permanent rule in getdeploymentinfo without a height_end. Update unit tests for the new mainnet schedule while leaving testnet4 and regtest temporary windows unchanged.
4bd9f45 to
b525aec
Compare
|
Tested b525aec Ubuntu on WSL2, GCC 15.2, no GUI, on top of 58398ba.
Earlier heads had a validation_chainstatemanager_tests failure (stop_height), an rpc_blockchain failure on unconfigured networks (c705c3a) and a compile error (4bd9f45); all fixed here. I did not test combining with #468. |
|
./build/bin/test_bitcoin *** No errors detected I got the same result as you on the ctest. Debian bookworm. |
|
Tested ACK b525aec (details above). |
|
Concept NACK |
1 similar comment
|
Concept NACK |
|
Concept NACK. Too small CBM to be effective. |
Motivation
The temporary 6480-block coinbase maturity window (heights 973440–979919) currently ends at 979920 and releases every coin in that window at once. This change makes the 6480 maturity permanent by setting CoinbaseMaturityLongReleaseHeight to INT_MAX and CoinbaseMaturityLong to 6480. Coins created at or after 973440 mature in 6480 blocks.
The revalidation marker is extended to the same permanent range so nodes that previously certified the temporary window re-check from the start height onward.
Tests
src/test/coinbase_maturity_tests.cpp updated so mainnet asserts the permanent 6480 + max release height while testnet4 and regtest keep their original temporary-window checks.
./build/bin/test_bitcoin --run_test=coinbase_maturity_tests reports no errors.