LearnBitcoin

Bitcoin Dev Archive 2024

ReadCompactSize without range check

1 message, 2 Sep 2024. Started by Tobin Harding.

Tobin Harding

Permalink Original thread on gnusha.org

Tobin Harding permalink original

Hi,

Context:

- The `ReadCompactSize` function takes an optional `range_check`
  parameter that defaults to `true` (see `serialize.h`).
- `range_check == true` enforces that the compact size value is less
  than 0x02000000 i.e., if fits within a 32 unsigned integer.
- Grepping the code base shows that `ReadCompactSize` is never called
  with `false`.

My question is please:

Is there any reason not use a 32 bit integer for a value encoded using CompactSize and ignore the 0xFF/9-byte-encoding of a compact size all together?

Thanks, Tobin.