126 / 691WU

Block weight

Вес блока по BIP 141 ограничивает корректный блок величиной 4 000 000 WU. Это не число физических байтов и не объём Proof of Work.

Для размера B без witness и полного размера T действует W = 3 × B + T. Расчёт охватывает весь сериализованный блок, включая заголовок и coinbase.

B — размер исходной сериализации без witness, T — полный размер. W = 3 × B + T объединяет оба значения и даёт WU, а не байты. [BIP 141 — Segregated Witness] [BIP 144 — SegWit peer services]

Базовый байт стоит 4 WU. Байт, добавленный сериализацией witness, стоит 1 WU, включая marker, flag и другие элементы сериализации этой части. [BIP 141 — Segregated Witness] [BIP 144 — SegWit peer services]

BIP 141 требует W ≤ 4 000 000 WU. Равенство допустимо; большая комиссия, больше Proof of Work или согласие майнера не оправдывают превышения. [BIP 141 — Segregated Witness] [Bitcoin Core v29.0 — consensus limits] [Bitcoin Core v29.0 — validation]

Иллюстративные B = 500 000 и T = 2 500 000 дают W = 4 000 000 WU. B = 750 000 и T = 1 750 000 дают тот же вес; полный блок не имеет фиксированного размера 4 MB. [BIP 141 — Segregated Witness]

Блок содержит также 80-байтовый заголовок, закодированное число транзакций и coinbase. Заголовок и счётчик — базовые данные; суммы весов только остальных транзакций недостаточно. [Bitcoin Developer Reference — Block chain]

Транзакционный vsize округляет W / 4 вверх для каждой целой транзакции. Сумма округлённых размеров также упускает часть накладных данных блока и не является точным расчётом консенсусного веса. [BIP 141 — Segregated Witness] [Bitcoin Developer Reference — Block chain]

Full Node по-прежнему проверяет соответствующие подписи и скрипты. Witness требует передачи и вычислений; меньший вес не означает нулевых затрат или необязательной проверки. [BIP 141 — Segregated Witness] [Bitcoin Core v29.0 — validation]

BIP 141 также ограничивает стоимость операций подписи величиной 80 000 единиц. Это не простой подсчёт всех подписей; правила зависят от типа скрипта, а новые версии имеют дополнительные собственные ограничения. [BIP 141 — Segregated Witness] [Bitcoin Core v29.0 — consensus limits]

Майнер может выбрать меньший целевой вес по эксплуатационным причинам. Его шаблон или локальная политика узла не меняют максимум консенсуса и не гарантируют включения конкретной транзакции. [Bitcoin Core v29.0 — consensus limits] [Bitcoin Core v29.0 — validation]

getblock в Bitcoin Core v29.0 возвращает size, strippedsize и weight. chainwork означает другое: накопленную работу цепочки, а не байтовый вес её блоков. [Bitcoin Developer Reference — Block chain] [Bitcoin Core — getblock RPC]

Для полной картины прочитайте эту статью вместе с Virtual byte (vbyte), Witness data, SegWit, Война за размер блока. На эту статью также ссылаются Virtual byte (vbyte), Witness data.

DOC · 001BIP 141 — Segregated WitnessСпецификация ↗DOC · 002BIP 144 — SegWit peer servicesСпецификация ↗DOC · 003Bitcoin Core v29.0 — consensus limitsДокументация ↗DOC · 004Bitcoin Core v29.0 — validationДокументация ↗DOC · 005Bitcoin Developer Reference — Block chainДокументация ↗DOC · 006Bitcoin Core — getblock RPCДокументация ↗
Сначала источники · Не является инвестиционной рекомендацией