mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-20 07:09:15 +01:00
Merge bitcoin/bitcoin#33274: kernel: chainparams & headersync updates for 30.0
755152ac81kernel: add testnet4 assumeutxo param at height 90'000 (fanquake)a6512686e3kernel: add mainnet assumeutxo param at height 910'000 (fanquake)943de66b50kernel: update headersync params (fanquake)66fb962426kernel: update chainTxData (fanquake)c3cb26e028kernel: update assumevalid and minimumChainWork (fanquake)b4adae76d4kernel: update assumed blockchain & chainstate sizes (fanquake) Pull request description: Also adds assumeutxo params for mainnet at `910'000` & testnet4 & `90'000`. ACKs for top commit: Sjors: re-ACK755152ac81achow101: ACK755152ac81w0xlt: ACK755152ac81hodlinator: ACK755152ac81Tree-SHA512: d26b023b1fdbb72e81c3879aa274e3900742f015d77c1bb3cde00b3b882642c6b35a6268c6ccf35fa9243b58b5a1ebe6eba3eb7f58678eee5bd8a6d6e7518a6f
This commit is contained in:
@@ -12,13 +12,13 @@ import random
|
||||
# Parameters:
|
||||
|
||||
# Aim for still working fine at some point in the future. [datetime]
|
||||
TIME = datetime(2027, 10, 6)
|
||||
TIME = datetime(2028, 4, 2)
|
||||
|
||||
# Expected block interval. [timedelta]
|
||||
BLOCK_INTERVAL = timedelta(seconds=600)
|
||||
|
||||
# The number of headers corresponding to the minchainwork parameter. [headers]
|
||||
MINCHAINWORK_HEADERS = 886157
|
||||
MINCHAINWORK_HEADERS = 912683
|
||||
|
||||
# Combined processing bandwidth from all attackers to one victim. [bit/s]
|
||||
# 6 Gbit/s is approximately the speed at which a single thread of a Ryzen 5950X CPU thread can hash
|
||||
|
||||
@@ -13,11 +13,11 @@
|
||||
// contrib/devtools/headerssync-params.py.
|
||||
|
||||
//! Store one header commitment per HEADER_COMMITMENT_PERIOD blocks.
|
||||
constexpr size_t HEADER_COMMITMENT_PERIOD{624};
|
||||
constexpr size_t HEADER_COMMITMENT_PERIOD{632};
|
||||
|
||||
//! Only feed headers to validation once this many headers on top have been
|
||||
//! received and validated against commitments.
|
||||
constexpr size_t REDOWNLOAD_BUFFER_SIZE{14827}; // 14827/624 = ~23.8 commitments
|
||||
constexpr size_t REDOWNLOAD_BUFFER_SIZE{15009}; // 15009/632 = ~23.7 commitments
|
||||
|
||||
// Our memory analysis assumes 48 bytes for a CompressedHeader (so we should
|
||||
// re-calculate parameters if we compress further)
|
||||
|
||||
@@ -118,8 +118,8 @@ public:
|
||||
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].threshold = 1815; // 90%
|
||||
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].period = 2016;
|
||||
|
||||
consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000b1f3b93b65b16d035a82be84"};
|
||||
consensus.defaultAssumeValid = uint256{"00000000000000000001b658dd1120e82e66d2790811f89ede9742ada3ed6d77"}; // 886157
|
||||
consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000dee8e2a309ad8a9820433c68"};
|
||||
consensus.defaultAssumeValid = uint256{"00000000000000000000611fd22f2df7c8fbd0688745c3a6c3bb5109cc2a12cb"}; // 912683
|
||||
|
||||
/**
|
||||
* The message start string is designed to be unlikely to occur in normal data.
|
||||
@@ -132,7 +132,7 @@ public:
|
||||
pchMessageStart[3] = 0xd9;
|
||||
nDefaultPort = 8333;
|
||||
nPruneAfterHeight = 100000;
|
||||
m_assumed_blockchain_size = 720;
|
||||
m_assumed_blockchain_size = 810;
|
||||
m_assumed_chain_state_size = 14;
|
||||
|
||||
genesis = CreateGenesisBlock(1231006505, 2083236893, 0x1d00ffff, 1, 50 * COIN);
|
||||
@@ -180,14 +180,20 @@ public:
|
||||
.hash_serialized = AssumeutxoHash{uint256{"dbd190983eaf433ef7c15f78a278ae42c00ef52e0fd2a54953782175fbadcea9"}},
|
||||
.m_chain_tx_count = 1145604538,
|
||||
.blockhash = consteval_ctor(uint256{"000000000000000000010b17283c3c400507969a9c2afd1dcf2082ec5cca2880"}),
|
||||
},
|
||||
{
|
||||
.height = 910'000,
|
||||
.hash_serialized = AssumeutxoHash{uint256{"4daf8a17b4902498c5787966a2b51c613acdab5df5db73f196fa59a4da2f1568"}},
|
||||
.m_chain_tx_count = 1226586151,
|
||||
.blockhash = consteval_ctor(uint256{"0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821"}),
|
||||
}
|
||||
};
|
||||
|
||||
chainTxData = ChainTxData{
|
||||
// Data from RPC: getchaintxstats 4096 00000000000000000001b658dd1120e82e66d2790811f89ede9742ada3ed6d77
|
||||
.nTime = 1741017141,
|
||||
.tx_count = 1161875261,
|
||||
.dTxRate = 4.620728156243148,
|
||||
// Data from RPC: getchaintxstats 4096 00000000000000000000611fd22f2df7c8fbd0688745c3a6c3bb5109cc2a12cb
|
||||
.nTime = 1756722903,
|
||||
.tx_count = 1235299397,
|
||||
.dTxRate = 5.456290459519495,
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -232,8 +238,8 @@ public:
|
||||
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].threshold = 1512; // 75%
|
||||
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].period = 2016;
|
||||
|
||||
consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000000015f5e0c9f13455b0eb17"};
|
||||
consensus.defaultAssumeValid = uint256{"00000000000003fc7967410ba2d0a8a8d50daedc318d43e8baf1a9782c236a57"}; // 3974606
|
||||
consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000000016dd270dd94fac1d7632"};
|
||||
consensus.defaultAssumeValid = uint256{"0000000000000065c6c38258e201971a3fdfcc2ceee0dd6e85a6c022d45dee34"}; // 4550000
|
||||
|
||||
pchMessageStart[0] = 0x0b;
|
||||
pchMessageStart[1] = 0x11;
|
||||
@@ -241,7 +247,7 @@ public:
|
||||
pchMessageStart[3] = 0x07;
|
||||
nDefaultPort = 18333;
|
||||
nPruneAfterHeight = 1000;
|
||||
m_assumed_blockchain_size = 200;
|
||||
m_assumed_blockchain_size = 240;
|
||||
m_assumed_chain_state_size = 19;
|
||||
|
||||
genesis = CreateGenesisBlock(1296688602, 414098458, 0x1d00ffff, 1, 50 * COIN);
|
||||
@@ -281,10 +287,10 @@ public:
|
||||
};
|
||||
|
||||
chainTxData = ChainTxData{
|
||||
// Data from RPC: getchaintxstats 4096 00000000000003fc7967410ba2d0a8a8d50daedc318d43e8baf1a9782c236a57
|
||||
.nTime = 1741042082,
|
||||
.tx_count = 475477615,
|
||||
.dTxRate = 17.15933950357594,
|
||||
// Data from RPC: getchaintxstats 4096 0000000000000065c6c38258e201971a3fdfcc2ceee0dd6e85a6c022d45dee34
|
||||
.nTime = 1751816758,
|
||||
.tx_count = 508468699,
|
||||
.dTxRate = 7.172978845985714,
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -328,8 +334,8 @@ public:
|
||||
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].threshold = 1512; // 75%
|
||||
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].period = 2016;
|
||||
|
||||
consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000000001d6dce8651b6094e4c1"};
|
||||
consensus.defaultAssumeValid = uint256{"0000000000003ed4f08dbdf6f7d6b271a6bcffce25675cb40aa9fa43179a89f3"}; // 72600
|
||||
consensus.nMinimumChainWork = uint256{"00000000000000000000000000000000000000000000034a4690fe592dc49c7c"};
|
||||
consensus.defaultAssumeValid = uint256{"000000000000000180a58e7fa3b0db84b5ea76377524894f53660d93ac839d9b"}; // 91000
|
||||
|
||||
pchMessageStart[0] = 0x1c;
|
||||
pchMessageStart[1] = 0x16;
|
||||
@@ -337,8 +343,8 @@ public:
|
||||
pchMessageStart[3] = 0x28;
|
||||
nDefaultPort = 48333;
|
||||
nPruneAfterHeight = 1000;
|
||||
m_assumed_blockchain_size = 11;
|
||||
m_assumed_chain_state_size = 1;
|
||||
m_assumed_blockchain_size = 22;
|
||||
m_assumed_chain_state_size = 2;
|
||||
|
||||
const char* testnet4_genesis_msg = "03/May/2024 000000000000000000001ebd58c244970b3aa9d783bb001011fbe8ea8e98e00e";
|
||||
const CScript testnet4_genesis_script = CScript() << "000000000000000000000000000000000000000000000000000000000000000000"_hex << OP_CHECKSIG;
|
||||
@@ -373,14 +379,19 @@ public:
|
||||
m_is_mockable_chain = false;
|
||||
|
||||
m_assumeutxo_data = {
|
||||
{}
|
||||
{
|
||||
.height = 90'000,
|
||||
.hash_serialized = AssumeutxoHash{uint256{"784fb5e98241de66fdd429f4392155c9e7db5c017148e66e8fdbc95746f8b9b5"}},
|
||||
.m_chain_tx_count = 11347043,
|
||||
.blockhash = consteval_ctor(uint256{"0000000002ebe8bcda020e0dd6ccfbdfac531d2f6a81457191b99fc2df2dbe3b"}),
|
||||
}
|
||||
};
|
||||
|
||||
chainTxData = ChainTxData{
|
||||
// Data from RPC: getchaintxstats 4096 0000000000003ed4f08dbdf6f7d6b271a6bcffce25675cb40aa9fa43179a89f3
|
||||
.nTime = 1741070246,
|
||||
.tx_count = 7653966,
|
||||
.dTxRate = 1.239174414591965,
|
||||
// Data from RPC: getchaintxstats 4096 000000000000000180a58e7fa3b0db84b5ea76377524894f53660d93ac839d9b
|
||||
.nTime = 1752470331,
|
||||
.tx_count = 11414302,
|
||||
.dTxRate = 0.2842619757327476,
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -402,15 +413,15 @@ public:
|
||||
vSeeds.emplace_back("seed.signet.bitcoin.sprovoost.nl.");
|
||||
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
|
||||
|
||||
consensus.nMinimumChainWork = uint256{"000000000000000000000000000000000000000000000000000002b517f3d1a1"};
|
||||
consensus.defaultAssumeValid = uint256{"000000895a110f46e59eb82bbc5bfb67fa314656009c295509c21b4999f5180a"}; // 237722
|
||||
m_assumed_blockchain_size = 9;
|
||||
m_assumed_chain_state_size = 1;
|
||||
consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000000000000000067d328e681a"};
|
||||
consensus.defaultAssumeValid = uint256{"000000128586e26813922680309f04e1de713c7542fee86ed908f56368aefe2e"}; // 267665
|
||||
m_assumed_blockchain_size = 20;
|
||||
m_assumed_chain_state_size = 4;
|
||||
chainTxData = ChainTxData{
|
||||
// Data from RPC: getchaintxstats 4096 000000895a110f46e59eb82bbc5bfb67fa314656009c295509c21b4999f5180a
|
||||
.nTime = 1741019645,
|
||||
.tx_count = 16540736,
|
||||
.dTxRate = 1.064918879911595,
|
||||
// Data from RPC: getchaintxstats 4096 000000128586e26813922680309f04e1de713c7542fee86ed908f56368aefe2e
|
||||
.nTime = 1756723017,
|
||||
.tx_count = 26185472,
|
||||
.dTxRate = 0.7452721495389969,
|
||||
};
|
||||
} else {
|
||||
bin = *options.challenge;
|
||||
|
||||
Reference in New Issue
Block a user