mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-13 12:33:42 +02:00
Merge 2f6a8e5e02 into merged_master (Bitcoin PR bitcoin/bitcoin#26695)
This commit is contained in:
commit
bb18aed1c1
6 changed files with 54 additions and 13 deletions
|
|
@ -73,10 +73,12 @@ BlockAssembler::Options::Options()
|
|||
{
|
||||
blockMinFeeRate = CFeeRate(DEFAULT_BLOCK_MIN_TX_FEE);
|
||||
nBlockMaxWeight = DEFAULT_BLOCK_MAX_WEIGHT;
|
||||
test_block_validity = true;
|
||||
}
|
||||
|
||||
BlockAssembler::BlockAssembler(Chainstate& chainstate, const CTxMemPool* mempool, const Options& options)
|
||||
: chainparams{chainstate.m_chainman.GetParams()},
|
||||
: test_block_validity{options.test_block_validity},
|
||||
chainparams{chainstate.m_chainman.GetParams()},
|
||||
m_mempool(mempool),
|
||||
m_chainstate(chainstate)
|
||||
{
|
||||
|
|
@ -85,11 +87,10 @@ BlockAssembler::BlockAssembler(Chainstate& chainstate, const CTxMemPool* mempool
|
|||
nBlockMaxWeight = std::max<size_t>(4000, std::min<size_t>(MAX_BLOCK_WEIGHT - 4000, options.nBlockMaxWeight));
|
||||
}
|
||||
|
||||
static BlockAssembler::Options DefaultOptions()
|
||||
void ApplyArgsManOptions(const ArgsManager& gArgs, BlockAssembler::Options& options)
|
||||
{
|
||||
// Block resource limits
|
||||
// If -blockmaxweight is not given, limit to DEFAULT_BLOCK_MAX_WEIGHT
|
||||
BlockAssembler::Options options;
|
||||
options.nBlockMaxWeight = gArgs.GetIntArg("-blockmaxweight", DEFAULT_BLOCK_MAX_WEIGHT);
|
||||
if (gArgs.IsArgSet("-blockmintxfee")) {
|
||||
std::optional<CAmount> parsed = ParseMoney(gArgs.GetArg("-blockmintxfee", ""));
|
||||
|
|
@ -97,11 +98,16 @@ static BlockAssembler::Options DefaultOptions()
|
|||
} else {
|
||||
options.blockMinFeeRate = CFeeRate{DEFAULT_BLOCK_MIN_TX_FEE};
|
||||
}
|
||||
}
|
||||
static BlockAssembler::Options ConfiguredOptions()
|
||||
{
|
||||
BlockAssembler::Options options;
|
||||
ApplyArgsManOptions(gArgs, options);
|
||||
return options;
|
||||
}
|
||||
|
||||
BlockAssembler::BlockAssembler(Chainstate& chainstate, const CTxMemPool* mempool)
|
||||
: BlockAssembler(chainstate, mempool, DefaultOptions()) {}
|
||||
: BlockAssembler(chainstate, mempool, ConfiguredOptions()) {}
|
||||
|
||||
void BlockAssembler::resetBlock()
|
||||
{
|
||||
|
|
@ -223,7 +229,8 @@ std::unique_ptr<CBlockTemplate> BlockAssembler::CreateNewBlock(const CScript& sc
|
|||
pblocktemplate->vTxSigOpsCost[0] = WITNESS_SCALE_FACTOR * GetLegacySigOpCount(*pblock->vtx[0]);
|
||||
|
||||
BlockValidationState state;
|
||||
if (!TestBlockValidity(state, chainparams, m_chainstate, *pblock, pindexPrev, GetAdjustedTime, false, false)) {
|
||||
if (test_block_validity && !TestBlockValidity(state, chainparams, m_chainstate, *pblock, pindexPrev,
|
||||
GetAdjustedTime, /*fCheckPOW=*/false, /*fCheckMerkleRoot=*/false)) {
|
||||
throw std::runtime_error(strprintf("%s: TestBlockValidity failed: %s", __func__, state.ToString()));
|
||||
}
|
||||
const auto time_2{SteadyClock::now()};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue