Skip to content

Commit d198635

Browse files
committed
Merge bitcoin#34677: kernel: Chainparams and headerssync updates pre-31.0
44538f8 kernel: Add recent assumeutxo snapshot info (Ava Chow) 58c2e23 kernel: Update headerssync params (Ava Chow) cf261b0 kernel: update chainTxData (Ava Chow) 8eaf1d2 kernel: update defaultAssumeValid and minimumChainWork (Ava Chow) 5ca0c55 kernel: update assumed blockchain and chainstate sizes (Ava Chow) Pull request description: Update chainparams and headerssync params per the release process. Also added new assumeutxo snapshots for each network. I've uploaded snapshots to https://achow101.com/files/utxo-snapshots/ ACKs for top commit: Sjors: ACK 44538f8 fjahr: ACK 44538f8 janb84: ACK 44538f8 sipa: ACK 44538f8. I re-did all the mainnet parameters, but did not look closely at the other networks. jaonoctus: ACK 44538f8 Tree-SHA512: f9b6ccc967c5ef58f734245df459c3136491e9b6a0f6e36f4272bc0787e7b59eabe47a8c8b19a90267eca4a0b5851dfbf45153f96eac599c417f148b3cf264cf
2 parents 9833ef5 + 44538f8 commit d198635

File tree

2 files changed

+66
-42
lines changed

2 files changed

+66
-42
lines changed

contrib/devtools/headerssync-params.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@
1212
# Parameters:
1313

1414
# Aim for still working fine at some point in the future. [datetime]
15-
TIME = datetime(2028, 4, 2)
15+
TIME = datetime(2028, 10, 10)
1616

1717
# Expected block interval. [timedelta]
1818
BLOCK_INTERVAL = timedelta(seconds=600)
1919

2020
# The number of headers corresponding to the minchainwork parameter. [headers]
21-
MINCHAINWORK_HEADERS = 912683
21+
MINCHAINWORK_HEADERS = 938343
2222

2323
# Combined processing bandwidth from all attackers to one victim. [bit/s]
2424
# 6 Gbit/s is approximately the speed at which a single thread of a Ryzen 5950X CPU thread can hash

src/kernel/chainparams.cpp

Lines changed: 64 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,8 @@ class CMainParams : public CChainParams {
114114
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].threshold = 1815; // 90%
115115
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].period = 2016;
116116

117-
consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000dee8e2a309ad8a9820433c68"};
118-
consensus.defaultAssumeValid = uint256{"00000000000000000000611fd22f2df7c8fbd0688745c3a6c3bb5109cc2a12cb"}; // 912683
117+
consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000001128750f82f4c366153a3a030"};
118+
consensus.defaultAssumeValid = uint256{"00000000000000000000ccebd6d74d9194d8dcdc1d177c478e094bfad51ba5ac"}; // 938343
119119

120120
/**
121121
* The message start string is designed to be unlikely to occur in normal data.
@@ -128,7 +128,7 @@ class CMainParams : public CChainParams {
128128
pchMessageStart[3] = 0xd9;
129129
nDefaultPort = 8333;
130130
nPruneAfterHeight = 100000;
131-
m_assumed_blockchain_size = 810;
131+
m_assumed_blockchain_size = 856;
132132
m_assumed_chain_state_size = 14;
133133

134134
genesis = CreateGenesisBlock(1231006505, 2083236893, 0x1d00ffff, 1, 50 * COIN);
@@ -181,20 +181,26 @@ class CMainParams : public CChainParams {
181181
.hash_serialized = AssumeutxoHash{uint256{"4daf8a17b4902498c5787966a2b51c613acdab5df5db73f196fa59a4da2f1568"}},
182182
.m_chain_tx_count = 1226586151,
183183
.blockhash = uint256{"0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821"},
184+
},
185+
{
186+
.height = 935'000,
187+
.hash_serialized = AssumeutxoHash{uint256{"e4b90ef9eae834f56c4b64d2d50143cee10ad87994c614d7d04125e2a6025050"}},
188+
.m_chain_tx_count = 1305397408,
189+
.blockhash = uint256{"0000000000000000000147034958af1652b2b91bba607beacc5e72a56f0fb5ee"},
184190
}
185191
};
186192

187193
chainTxData = ChainTxData{
188-
// Data from RPC: getchaintxstats 4096 00000000000000000000611fd22f2df7c8fbd0688745c3a6c3bb5109cc2a12cb
189-
.nTime = 1756722903,
190-
.tx_count = 1235299397,
191-
.dTxRate = 5.456290459519495,
194+
// Data from RPC: getchaintxstats 4096 00000000000000000000ccebd6d74d9194d8dcdc1d177c478e094bfad51ba5ac
195+
.nTime = 1772055173,
196+
.tx_count = 1315805869,
197+
.dTxRate = 5.40111006496122,
192198
};
193199

194-
// Generated by headerssync-params.py on 2025-09-01.
200+
// Generated by headerssync-params.py on 2026-02-25.
195201
m_headers_sync_params = HeadersSyncParams{
196-
.commitment_period = 632,
197-
.redownload_buffer_size = 15009, // 15009/632 = ~23.7 commitments
202+
.commitment_period = 641,
203+
.redownload_buffer_size = 15218, // 15218/641 = ~23.7 commitments
198204
};
199205
}
200206
};
@@ -239,16 +245,16 @@ class CTestNetParams : public CChainParams {
239245
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].threshold = 1512; // 75%
240246
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].period = 2016;
241247

242-
consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000000016dd270dd94fac1d7632"};
243-
consensus.defaultAssumeValid = uint256{"0000000000000065c6c38258e201971a3fdfcc2ceee0dd6e85a6c022d45dee34"}; // 4550000
248+
consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000000017dde1c649f3708d14b6"};
249+
consensus.defaultAssumeValid = uint256{"000000007a61e4230b28ac5cb6b5e5a0130de37ac1faf2f8987d2fa6505b67f4"}; // 4842348
244250

245251
pchMessageStart[0] = 0x0b;
246252
pchMessageStart[1] = 0x11;
247253
pchMessageStart[2] = 0x09;
248254
pchMessageStart[3] = 0x07;
249255
nDefaultPort = 18333;
250256
nPruneAfterHeight = 1000;
251-
m_assumed_blockchain_size = 240;
257+
m_assumed_blockchain_size = 245;
252258
m_assumed_chain_state_size = 19;
253259

254260
genesis = CreateGenesisBlock(1296688602, 414098458, 0x1d00ffff, 1, 50 * COIN);
@@ -284,20 +290,26 @@ class CTestNetParams : public CChainParams {
284290
.hash_serialized = AssumeutxoHash{uint256{"f841584909f68e47897952345234e37fcd9128cd818f41ee6c3ca68db8071be7"}},
285291
.m_chain_tx_count = 66484552,
286292
.blockhash = uint256{"0000000000000093bcb68c03a9a168ae252572d348a2eaeba2cdf9231d73206f"},
293+
},
294+
{
295+
.height = 4'840'000,
296+
.hash_serialized = AssumeutxoHash{uint256{"ce6bb677bb2ee9789c4a1c9d73e6683c53fc20e8fdbedbdaaf468982a0c8db2a"}},
297+
.m_chain_tx_count = 536078574,
298+
.blockhash = uint256{"00000000000000f4971a7fb37fbdff89315b69a2e1920c467654a382f0d64786"},
287299
}
288300
};
289301

290302
chainTxData = ChainTxData{
291-
// Data from RPC: getchaintxstats 4096 0000000000000065c6c38258e201971a3fdfcc2ceee0dd6e85a6c022d45dee34
292-
.nTime = 1751816758,
293-
.tx_count = 508468699,
294-
.dTxRate = 7.172978845985714,
303+
// Data from RPC: getchaintxstats 4096 000000007a61e4230b28ac5cb6b5e5a0130de37ac1faf2f8987d2fa6505b67f4
304+
.nTime = 1772051651,
305+
.tx_count = 536108416,
306+
.dTxRate = 0.02691479016257117,
295307
};
296308

297-
// Generated by headerssync-params.py on 2025-09-03.
309+
// Generated by headerssync-params.py on 2026-02-25.
298310
m_headers_sync_params = HeadersSyncParams{
299-
.commitment_period = 628,
300-
.redownload_buffer_size = 13460, // 13460/628 = ~21.4 commitments
311+
.commitment_period = 673,
312+
.redownload_buffer_size = 14460, // 14460/673 = ~21.5 commitments
301313
};
302314
}
303315
};
@@ -341,16 +353,16 @@ class CTestNet4Params : public CChainParams {
341353
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].threshold = 1512; // 75%
342354
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].period = 2016;
343355

344-
consensus.nMinimumChainWork = uint256{"00000000000000000000000000000000000000000000034a4690fe592dc49c7c"};
345-
consensus.defaultAssumeValid = uint256{"000000000000000180a58e7fa3b0db84b5ea76377524894f53660d93ac839d9b"}; // 91000
356+
consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000000009a0fe15d0177d086304"};
357+
consensus.defaultAssumeValid = uint256{"0000000002368b1e4ee27e2e85676ae6f9f9e69579b29093e9a82c170bf7cf8a"}; // 123613
346358

347359
pchMessageStart[0] = 0x1c;
348360
pchMessageStart[1] = 0x16;
349361
pchMessageStart[2] = 0x3f;
350362
pchMessageStart[3] = 0x28;
351363
nDefaultPort = 48333;
352364
nPruneAfterHeight = 1000;
353-
m_assumed_blockchain_size = 22;
365+
m_assumed_blockchain_size = 31;
354366
m_assumed_chain_state_size = 2;
355367

356368
const char* testnet4_genesis_msg = "03/May/2024 000000000000000000001ebd58c244970b3aa9d783bb001011fbe8ea8e98e00e";
@@ -391,20 +403,26 @@ class CTestNet4Params : public CChainParams {
391403
.hash_serialized = AssumeutxoHash{uint256{"784fb5e98241de66fdd429f4392155c9e7db5c017148e66e8fdbc95746f8b9b5"}},
392404
.m_chain_tx_count = 11347043,
393405
.blockhash = uint256{"0000000002ebe8bcda020e0dd6ccfbdfac531d2f6a81457191b99fc2df2dbe3b"},
406+
},
407+
{
408+
.height = 120'000,
409+
.hash_serialized = AssumeutxoHash{uint256{"10b05d05ad468d0971162e1b222a4aa66caca89da2bb2a93f8f37fb29c4794b0"}},
410+
.m_chain_tx_count = 14141057,
411+
.blockhash = uint256{"000000000bd2317e51b3c5794981c35ba894ce27d3e772d5c39ecd9cbce01dc8"},
394412
}
395413
};
396414

397415
chainTxData = ChainTxData{
398-
// Data from RPC: getchaintxstats 4096 000000000000000180a58e7fa3b0db84b5ea76377524894f53660d93ac839d9b
399-
.nTime = 1752470331,
400-
.tx_count = 11414302,
401-
.dTxRate = 0.2842619757327476,
416+
// Data from RPC: getchaintxstats 4096 0000000002368b1e4ee27e2e85676ae6f9f9e69579b29093e9a82c170bf7cf8a
417+
.nTime = 1772013387,
418+
.tx_count = 14191421,
419+
.dTxRate = 0.01848579579528412,
402420
};
403421

404-
// Generated by headerssync-params.py on 2025-09-03.
422+
// Generated by headerssync-params.py on 2026-02-25.
405423
m_headers_sync_params = HeadersSyncParams{
406-
.commitment_period = 275,
407-
.redownload_buffer_size = 7017, // 7017/275 = ~25.5 commitments
424+
.commitment_period = 606,
425+
.redownload_buffer_size = 16092, // 16092/606 = ~26.6 commitments
408426
};
409427
}
410428
};
@@ -426,15 +444,15 @@ class SigNetParams : public CChainParams {
426444
vSeeds.emplace_back("seed.signet.bitcoin.sprovoost.nl.");
427445
vSeeds.emplace_back("seed.signet.achownodes.xyz."); // Ava Chow, only supports x1, x5, x9, x49, x809, x849, xd, x400, x404, x408, x448, xc08, xc48, x40c
428446

429-
consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000000000000000067d328e681a"};
430-
consensus.defaultAssumeValid = uint256{"000000128586e26813922680309f04e1de713c7542fee86ed908f56368aefe2e"}; // 267665
431-
m_assumed_blockchain_size = 20;
447+
consensus.nMinimumChainWork = uint256{"00000000000000000000000000000000000000000000000000000b463ea0a4b8"};
448+
consensus.defaultAssumeValid = uint256{"00000008414aab61092ef93f1aacc54cf9e9f16af29ddad493b908a01ff5c329"}; // 293175
449+
m_assumed_blockchain_size = 24;
432450
m_assumed_chain_state_size = 4;
433451
chainTxData = ChainTxData{
434-
// Data from RPC: getchaintxstats 4096 000000128586e26813922680309f04e1de713c7542fee86ed908f56368aefe2e
435-
.nTime = 1756723017,
436-
.tx_count = 26185472,
437-
.dTxRate = 0.7452721495389969,
452+
// Data from RPC: getchaintxstats 4096 00000008414aab61092ef93f1aacc54cf9e9f16af29ddad493b908a01ff5c329
453+
.nTime = 1772055248,
454+
.tx_count = 28676833,
455+
.dTxRate = 0.06736623436338929,
438456
};
439457
} else {
440458
bin = *options.challenge;
@@ -506,6 +524,12 @@ class SigNetParams : public CChainParams {
506524
.hash_serialized = AssumeutxoHash{uint256{"fe0a44309b74d6b5883d246cb419c6221bcccf0b308c9b59b7d70783dbdf928a"}},
507525
.m_chain_tx_count = 2289496,
508526
.blockhash = uint256{"0000003ca3c99aff040f2563c2ad8f8ec88bd0fd6b8f0895cfaf1ef90353a62c"},
527+
},
528+
{
529+
.height = 290'000,
530+
.hash_serialized = AssumeutxoHash{uint256{"97267e000b4b876800167e71b9123f1529d13b14308abec2888bbd2160d14545"}},
531+
.m_chain_tx_count = 28547497,
532+
.blockhash = uint256{"0000000577f2741bb30cd9d39d6d71b023afbeb9764f6260786a97969d5c9ac0"},
509533
}
510534
};
511535

@@ -520,10 +544,10 @@ class SigNetParams : public CChainParams {
520544
fDefaultConsistencyChecks = false;
521545
m_is_mockable_chain = false;
522546

523-
// Generated by headerssync-params.py on 2025-09-03.
547+
// Generated by headerssync-params.py on 2026-02-25.
524548
m_headers_sync_params = HeadersSyncParams{
525-
.commitment_period = 390,
526-
.redownload_buffer_size = 9584, // 9584/390 = ~24.6 commitments
549+
.commitment_period = 620,
550+
.redownload_buffer_size = 15724, // 15724/620 = ~25.4 commitments
527551
};
528552
}
529553
};

0 commit comments

Comments
 (0)