120 / 691CMPCT

Compact block relay

Kompaktowy przekaz BIP 152 wysyła nagłówek, krótkie ID i wybrane całe transakcje. Odbiorca używa znanych transakcji i uzupełnia brakujące dane.

Kompaktowy blok to kodowanie transportu, nie mniejszy blok konsensusu. Full Node musi odtworzyć dokładne transakcje we właściwej kolejności i zweryfikować cały blok.

Krótkie ID ma 48 bitów uzyskanych przez skrócenie SipHash-2-4. Klucze wynikają z nagłówka i dostarczonego nonce; nie jest to globalny identyfikator transakcji. [BIP 152 — Compact Block Relay] [Bitcoin Core — BIP 152 implementation]

Niektóre transakcje przychodzą całe jako wypełnione elementy, zwykle z coinbase. Indeksy określają pozycję w odtworzonym bloku. [BIP 152 — Compact Block Relay]

Odbiorca dopasowuje krótkie ID do znanych transakcji, na przykład w mempoolu. Jednakowe ID samo nie dowodzi tożsamości transakcji. [BIP 152 — Compact Block Relay] [Bitcoin Core — BIP 152 implementation]

Brakujące lub niejednoznaczne elementy zamawia się według indeksu przez getblocktxn. Odpowiedź blocktxn dostarcza transakcje do ukończenia rekonstrukcji. [BIP 152 — Compact Block Relay] [Bitcoin Developer Reference — P2P] [Bitcoin Core v29.0 — net processing]

Rekonstrukcja zachowuje dokładną kolejność i sprawdza zobowiązania kryptograficzne bloku. Full Node nadal waliduje konsensus przed przyjęciem; kompaktowy przekaz nie jest wyjątkiem. [BIP 152 — Compact Block Relay] [Bitcoin Core — BIP 152 implementation] [Bitcoin Core v29.0 — net processing]

Po uzgodnieniu sendcmpct szybki tryb może ogłaszać bezpośrednio przez cmpctblock. Po określonych wstępnych kontrolach może wyprzedzać pełną walidację nadawcy, lecz nie usuwa weryfikacji odbiorcy. [BIP 152 — Compact Block Relay] [Bitcoin Core v29.0 — net processing]

Oszczędny tryb najpierw używa inv lub headers, potem odbiorca prosi o kompaktowy blok. Może potrzebować więcej rund niż bezpośrednie ogłoszenie. [BIP 152 — Compact Block Relay] [Bitcoin Developer Reference — P2P]

Kolizje ID mogą powodować dodatkowe żądania lub nieudaną rekonstrukcję i pobranie całego bloku. Nie pozwalają uznać błędnego bloku za poprawny konsensualnie. [BIP 152 — Compact Block Relay] [Bitcoin Core — BIP 152 implementation] [Bitcoin Optech — Compact block relay]

Wersja 2 wyprowadza ID z wtxid zamiast txid i przesyła dane witness według BIP 144. Wersja protokołu kompaktowego nie jest wersją samego bloku. [BIP 152 — Compact Block Relay] [BIP 144 — SegWit peer services]

Korzyść zależy od pokrycia znanych transakcji i warunków sieci. Małe pokrycie dodaje żądania; celem jest oszczędność transmisji, nie gwarantowany rozmiar lub zerowe opóźnienie. [BIP 152 — Compact Block Relay] [Bitcoin Optech — Compact block relay]

Pełniejszy obraz uzyskasz, czytając to hasło razem z Block propagation, Initial block download, Eclipse attack, Virtual byte (vbyte). Do tego hasła prowadzą również odsyłacze z Stale Block, Block propagation, Compact Block Filters, Compact Block Filters.

DOC · 001BIP 152 — Compact Block RelaySpecyfikacja ↗DOC · 002Bitcoin Core — BIP 152 implementationDokumentacja ↗DOC · 003Bitcoin Developer Reference — P2PDokumentacja ↗DOC · 004Bitcoin Core v29.0 — net processingDokumentacja ↗DOC · 005Bitcoin Optech — Compact block relayDokumentacja ↗DOC · 006BIP 144 — SegWit peer servicesSpecyfikacja ↗
Najpierw źródła · To nie jest porada inwestycyjna