mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-04-07 19:48:58 +02:00
rpc: Fix utxo_size_inc(_actual) calculation
`nHeight` and `fCoinBase` are stored in `Coin` as bitfields and are serialized as a single 32 bit number, so the UTXO overhead calculation shouldn't include an additional boolean
This commit is contained in:
parent
ff9d484876
commit
72ec388244
@ -1828,8 +1828,8 @@ static inline bool SetHasKeys(const std::set<T>& set, const Tk& key, const Args&
|
||||
return (set.count(key) != 0) || SetHasKeys(set, args...);
|
||||
}
|
||||
|
||||
// outpoint (needed for the utxo index) + nHeight + fCoinBase
|
||||
static constexpr size_t PER_UTXO_OVERHEAD = sizeof(COutPoint) + sizeof(uint32_t) + sizeof(bool);
|
||||
// outpoint (needed for the utxo index) + nHeight|fCoinBase
|
||||
static constexpr size_t PER_UTXO_OVERHEAD = sizeof(COutPoint) + sizeof(uint32_t);
|
||||
|
||||
static RPCHelpMan getblockstats()
|
||||
{
|
||||
|
@ -143,8 +143,8 @@
|
||||
"txs": 1,
|
||||
"utxo_increase": 2,
|
||||
"utxo_increase_actual": 1,
|
||||
"utxo_size_inc": 163,
|
||||
"utxo_size_inc_actual": 75
|
||||
"utxo_size_inc": 161,
|
||||
"utxo_size_inc_actual": 74
|
||||
},
|
||||
{
|
||||
"avgfee": 4440,
|
||||
@ -182,8 +182,8 @@
|
||||
"txs": 2,
|
||||
"utxo_increase": 3,
|
||||
"utxo_increase_actual": 2,
|
||||
"utxo_size_inc": 235,
|
||||
"utxo_size_inc_actual": 147
|
||||
"utxo_size_inc": 232,
|
||||
"utxo_size_inc_actual": 145
|
||||
},
|
||||
{
|
||||
"avgfee": 21390,
|
||||
@ -221,8 +221,8 @@
|
||||
"txs": 5,
|
||||
"utxo_increase": 6,
|
||||
"utxo_increase_actual": 4,
|
||||
"utxo_size_inc": 441,
|
||||
"utxo_size_inc_actual": 300
|
||||
"utxo_size_inc": 435,
|
||||
"utxo_size_inc_actual": 296
|
||||
}
|
||||
]
|
||||
}
|
@ -171,16 +171,16 @@ class GetblockstatsTest(BitcoinTestFramework):
|
||||
genesis_stats = self.nodes[0].getblockstats(0)
|
||||
assert_equal(genesis_stats["blockhash"], "0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206")
|
||||
assert_equal(genesis_stats["utxo_increase"], 1)
|
||||
assert_equal(genesis_stats["utxo_size_inc"], 117)
|
||||
assert_equal(genesis_stats["utxo_size_inc"], 116)
|
||||
assert_equal(genesis_stats["utxo_increase_actual"], 0)
|
||||
assert_equal(genesis_stats["utxo_size_inc_actual"], 0)
|
||||
|
||||
self.log.info('Test tip including OP_RETURN')
|
||||
tip_stats = self.nodes[0].getblockstats(tip)
|
||||
assert_equal(tip_stats["utxo_increase"], 6)
|
||||
assert_equal(tip_stats["utxo_size_inc"], 441)
|
||||
assert_equal(tip_stats["utxo_size_inc"], 435)
|
||||
assert_equal(tip_stats["utxo_increase_actual"], 4)
|
||||
assert_equal(tip_stats["utxo_size_inc_actual"], 300)
|
||||
assert_equal(tip_stats["utxo_size_inc_actual"], 296)
|
||||
|
||||
self.log.info("Test when only header is known")
|
||||
block = self.generateblock(self.nodes[0], output="raw(55)", transactions=[], submit=False)
|
||||
|
Loading…
x
Reference in New Issue
Block a user