120 / 691CMPCT

Compact block relay

O transporte compacto BIP 152 envia cabeçalho, IDs curtos e transações completas selecionadas. O receptor usa transações conhecidas e obtém dados ausentes.

Um bloco compacto é codificação de transporte, não um bloco de consenso menor. Um Full Node deve recuperar as transações exatas na ordem correta e validar o bloco inteiro.

Um ID curto possui 48 bits obtidos truncando SipHash-2-4. As chaves derivam do cabeçalho e nonce fornecido; não é um identificador global de transação. [BIP 152 — Compact Block Relay] [Bitcoin Core — BIP 152 implementation]

Algumas transações chegam inteiras como itens pré-preenchidos, normalmente incluindo a coinbase. Os índices determinam posições no bloco reconstruído. [BIP 152 — Compact Block Relay]

O receptor compara IDs curtos com transações conhecidas, por exemplo no mempool. Um ID igual sozinho não comprova identidade de transações. [BIP 152 — Compact Block Relay] [Bitcoin Core — BIP 152 implementation]

Itens ausentes ou ambíguos são pedidos por índice via getblocktxn. A resposta blocktxn fornece as transações solicitadas para completar a reconstrução. [BIP 152 — Compact Block Relay] [Bitcoin Developer Reference — P2P] [Bitcoin Core v29.0 — net processing]

A reconstrução preserva a ordem exata e verifica os compromissos do bloco. Um Full Node ainda valida o consenso antes de aceitar; o transporte compacto não é exceção. [BIP 152 — Compact Block Relay] [Bitcoin Core — BIP 152 implementation] [Bitcoin Core v29.0 — net processing]

Após negociar sendcmpct, o modo de alta banda pode anunciar diretamente com cmpctblock. Depois de verificações preliminares pode preceder a validação completa do remetente, sem remover a do receptor. [BIP 152 — Compact Block Relay] [Bitcoin Core v29.0 — net processing]

O modo econômico primeiro usa inv ou headers, então o receptor pede o bloco compacto. Pode exigir mais idas e voltas que um anúncio direto. [BIP 152 — Compact Block Relay] [Bitcoin Developer Reference — P2P]

Colisões de IDs podem causar pedidos adicionais ou falha de reconstrução seguida do bloco completo. Não permitem aceitar um bloco incorreto como válido por consenso. [BIP 152 — Compact Block Relay] [Bitcoin Core — BIP 152 implementation] [Bitcoin Optech — Compact block relay]

A versão 2 deriva IDs de wtxid em vez de txid e transmite dados witness conforme BIP 144. A versão do protocolo compacto não é a versão do próprio bloco. [BIP 152 — Compact Block Relay] [BIP 144 — SegWit peer services]

O benefício depende da sobreposição de transações e da rede. Pouca sobreposição adiciona pedidos; o foco é economia de transferência, não tamanho garantido de mensagem ou latência zero. [BIP 152 — Compact Block Relay] [Bitcoin Optech — Compact block relay]

Para ter uma visão mais completa, leia este verbete junto com Block propagation, Initial block download, Eclipse attack, Virtual byte (vbyte). Também há referências a este verbete em Stale Block, Block propagation, Compact Block Filters, Compact Block Filters.

DOC · 001BIP 152 — Compact Block RelayEspecificação ↗DOC · 002Bitcoin Core — BIP 152 implementationDocumentação ↗DOC · 003Bitcoin Developer Reference — P2PDocumentação ↗DOC · 004Bitcoin Core v29.0 — net processingDocumentação ↗DOC · 005Bitcoin Optech — Compact block relayDocumentação ↗DOC · 006BIP 144 — SegWit peer servicesEspecificação ↗
Fontes em primeiro lugar · Não é recomendação de investimento