Skip to content

Use virtual size instead of raw size #43

@jnewbery

Description

@jnewbery

Since segwit was activated at block 494,784, the limiting resource on block space is 'weight', which is defined in BIP 141 as:

Block weight is defined as Base size * 3 + Total size. (rationale[3])

Base size is the block size in bytes with the original transaction serialization without any witness-related data, as seen by a non-upgraded node.

Total size is the block size in bytes with transactions serialized as described in BIP144, including base data and witness data.

For fee market analysis, the relevant metric is transaction weight (Base transaction size * 3 + Total transaction size), which can be normalized to virtual size (Transaction weight / 4). This is because miners will order transactions by fee/virtual byte to maximize the fee yield from a block.

For transactions without any segwit inputs, virtual size is the same as size.

BlockSci should therefore store the tx virtual size instead of tx size. Virtual size is exposed in the getrawtransaction and getblock (with verbosity=2) RPC methods as vsize.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions