126 / 691WU

Block weight

Le poids des blocs selon BIP 141 limite un bloc valide à 4 000 000 WU. Ce n'est ni le nombre d'octets physiques ni la quantité de Proof of Work.

Pour la taille B sans witness et la taille complète T, W = 3 × B + T. Le calcul couvre tout le bloc sérialisé, y compris son en-tête et sa coinbase.

B est la taille de la sérialisation d'origine sans witness, T la taille complète. W = 3 × B + T combine les deux valeurs et donne des WU, pas des octets. [BIP 141 — Segregated Witness] [BIP 144 — SegWit peer services]

Un octet de base coûte 4 WU. Un octet ajouté par la sérialisation witness coûte 1 WU, y compris marker, flag et les autres éléments sérialisés de cette partie. [BIP 141 — Segregated Witness] [BIP 144 — SegWit peer services]

BIP 141 exige W ≤ 4 000 000 WU. L'égalité est admise ; des frais supérieurs, davantage de Proof of Work ou l'accord d'un mineur ne justifient aucun dépassement. [BIP 141 — Segregated Witness] [Bitcoin Core v29.0 — consensus limits] [Bitcoin Core v29.0 — validation]

Les valeurs illustratives B = 500 000 et T = 2 500 000 donnent W = 4 000 000 WU. B = 750 000 et T = 1 750 000 donnent le même poids ; un bloc plein n'a donc pas une taille fixe de 4 MB. [BIP 141 — Segregated Witness]

Un bloc contient aussi un en-tête de 80 octets, un nombre de transactions codé et la coinbase. En-tête et compteur sont des données de base ; additionner les poids des autres transactions ne suffit pas. [Bitcoin Developer Reference — Block chain]

La vsize arrondit W / 4 vers le haut pour chaque transaction entière. Additionner ces tailles arrondies omet aussi une partie du surcoût du bloc et ne calcule pas exactement le poids de consensus. [BIP 141 — Segregated Witness] [Bitcoin Developer Reference — Block chain]

Un Full Node vérifie toujours les signatures et scripts concernés. Witness consomme bande passante et calcul ; son poids réduit ne signifie ni coût nul ni vérification facultative. [BIP 141 — Segregated Witness] [Bitcoin Core v29.0 — validation]

BIP 141 limite aussi les coûts des opérations de signature à 80 000 unités. Ce n'est pas un simple décompte de toutes les signatures ; les règles dépendent du script et les versions récentes ont d'autres limites propres. [BIP 141 — Segregated Witness] [Bitcoin Core v29.0 — consensus limits]

Un mineur peut choisir un poids cible inférieur pour des raisons opérationnelles. Son modèle de bloc ou la politique locale d'un nœud ne modifient pas le maximum de consensus et ne garantissent pas l'inclusion d'une transaction donnée. [Bitcoin Core v29.0 — consensus limits] [Bitcoin Core v29.0 — validation]

getblock dans Bitcoin Core v29.0 renvoie size, strippedsize et weight. chainwork est distinct : il concerne le travail cumulé de la chaîne, pas le poids en octets de ses blocs. [Bitcoin Developer Reference — Block chain] [Bitcoin Core — getblock RPC]

Pour une vision complète, lisez aussi Virtual byte (vbyte), Witness data, SegWit, Guerre de la taille des blocs. Cette entrée est également citée par Virtual byte (vbyte), Witness data.

DOC · 001BIP 141 — Segregated WitnessSpécification ↗DOC · 002BIP 144 — SegWit peer servicesSpécification ↗DOC · 003Bitcoin Core v29.0 — consensus limitsDocumentation ↗DOC · 004Bitcoin Core v29.0 — validationDocumentation ↗DOC · 005Bitcoin Developer Reference — Block chainDocumentation ↗DOC · 006Bitcoin Core — getblock RPCDocumentation ↗
Sources d’abord · Pas un conseil financier