mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-06-05 18:52:29 +02:00
Merge bitcoin/bitcoin#34615: mempool: expose optimality of mempool to log / rpc
a9e59f7d95rpc: add optimal result to getmempoolinfo (Greg Sanders)a3fb3dd55cmempool: log if we detect a non-optimal mempool (Greg Sanders) Pull request description: Post-SFL #34023 I don't think we expect the mempool to be unordered for long periods of time. If we consider it likely to be a serious regression in production, it would be useful to expose the fact that the mempool is not known to be optimal. 1. do a MEMPOOL log after any `DoWork()` returns false, meaning non-optimal 2. expose it via getmempoolinfo, by calling `DoWork(0)`, which does nothing but return known-optimality I'm not wedded to either approach, I just think something is better than nothing for the next release. ACKs for top commit: ajtowns: ACKa9e59f7d95ismaelsadeeq: reACKa9e59f7d95[c89b93b95..a9e59f7d95](c89b93b958..a9e59f7d95) fixed typo, added more logging for block/reorg additions to mempool, and fixed brittle test case. sedited: ACKa9e59f7d95sipa: ACKa9e59f7d95Tree-SHA512: 1560ad21cc1606df7279c102f35f61d4555c0ac920f02208b2a6eb89b14d7e22befb6d7f510a00a9074c2f9931f32e9af86bcea3a8dd9a1d947b0398c84666dd
This commit is contained in:
@@ -1050,6 +1050,7 @@ UniValue MempoolInfoToJSON(const CTxMemPool& pool)
|
||||
ret.pushKV("maxdatacarriersize", pool.m_opts.max_datacarrier_bytes.value_or(0));
|
||||
ret.pushKV("limitclustercount", pool.m_opts.limits.cluster_count);
|
||||
ret.pushKV("limitclustersize", pool.m_opts.limits.cluster_size_vbytes);
|
||||
ret.pushKV("optimal", pool.m_txgraph->DoWork(0)); // 0 work is a quick check for known optimality
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -1076,6 +1077,7 @@ static RPCHelpMan getmempoolinfo()
|
||||
{RPCResult::Type::NUM, "maxdatacarriersize", "Maximum number of bytes that can be used by OP_RETURN outputs in the mempool"},
|
||||
{RPCResult::Type::NUM, "limitclustercount", "Maximum number of transactions that can be in a cluster (configured by -limitclustercount)"},
|
||||
{RPCResult::Type::NUM, "limitclustersize", "Maximum size of a cluster in virtual bytes (configured by -limitclustersize)"},
|
||||
{RPCResult::Type::BOOL, "optimal", "If the mempool is in a known-optimal transaction ordering"},
|
||||
}},
|
||||
RPCExamples{
|
||||
HelpExampleCli("getmempoolinfo", "")
|
||||
|
||||
Reference in New Issue
Block a user