Mensagens do Protocolo

Referência rápida dos tipos de mensagem

⚡ Lightning · Técnico

Uma referência dos principais tipos de mensagem do protocolo Wire, agrupados por função. Cada mensagem começa com o seu tipo de 2 bytes (mostrado aqui em decimal e hex). Esta não é uma lista exaustiva — os BOLTs definem outras (financiamento duplo, splicing, etc.) e continuam evoluindo.

Controle (BOLT 1)

tipohexnomedescrição
16 0x0010 init primeira mensagem da conexão; troca os feature bits suportados
17 0x0011 error reporta um erro e (em geral) encerra o canal ou a conexão
18 0x0012 ping verifica se a conexão está viva e pode pedir um pong de certo tamanho
19 0x0013 pong resposta a um ping

Estabelecimento de canal (BOLT 2)

tipohexnomedescrição
32 0x0020 open_channel o iniciador propõe abrir um canal e seus parâmetros
33 0x0021 accept_channel o respondente aceita a proposta e envia os parâmetros dele
34 0x0022 funding_created o iniciador informa a saída de financiamento e assina a 1ª transação de compromisso
35 0x0023 funding_signed o respondente assina a 1ª transação de compromisso do iniciador
36 0x0024 channel_ready cada lado avisa que o financiamento confirmou; o canal está pronto
38 0x0026 shutdown inicia o fechamento cooperativo (informa o script de saída)
39 0x0027 closing_signed negocia a taxa e assina a transação de fechamento mútuo

Operação do canal / HTLCs (BOLT 2)

tipohexnomedescrição
128 0x0080 update_add_htlc oferece um novo HTLC à contraparte
130 0x0082 update_fulfill_htlc liquida um HTLC revelando o preimage (o segredo)
131 0x0083 update_fail_htlc falha um HTLC, devolvendo um erro onion
132 0x0084 commitment_signed assina a nova transação de compromisso com as mudanças pendentes
133 0x0085 revoke_and_ack revoga o estado anterior, enviando o segredo de revogação
134 0x0086 update_fee atualiza a taxa on-chain da transação de compromisso
135 0x0087 update_fail_malformed_htlc falha um HTLC cujo pacote onion veio malformado
136 0x0088 channel_reestablish ressincroniza o estado do canal ao reconectar

Descoberta / Gossip (BOLT 7)

tipohexnomedescrição
256 0x0100 channel_announcement anuncia um canal público (com a prova on-chain da saída de financiamento)
257 0x0101 node_announcement anuncia um nó: apelido, cor, endereços e funcionalidades
258 0x0102 channel_update anuncia/atualiza a política de uma direção do canal (taxa, cltv, ativo)
259 0x0103 announcement_signatures troca as assinaturas necessárias para montar o channel_announcement
261 0x0105 query_short_channel_ids pede detalhes de canais específicos, por SCID
262 0x0106 reply_short_channel_ids_end marca o fim da resposta a um query_short_channel_ids
263 0x0107 query_channel_range pede quais canais existem num intervalo de blocos
264 0x0108 reply_channel_range responde com os SCIDs de canais de um intervalo de blocos
265 0x0109 gossip_timestamp_filter filtra quais mensagens de gossip receber, por intervalo de tempo

Repare no padrão: tipos pares são obrigatórios; deixaram espaço entre os números (ímpares) para variantes opcionais — a regra "it's ok to be odd" do protocolo Wire.

Decodificar na prática

Cole o hex de uma mensagem (ou um stream TLV) para identificá-la:

Ícone Ferramenta Mensagens Wire e TLV
Ícone Ferramenta

Mensagens Wire e TLV

Toda mensagem começa com um tipo de 2 bytes; campos opcionais vão num stream TLV.

Tipo da mensagem

Stream TLV

Fim da trilha técnica da Lightning. 🎉 Da abertura de um canal on-chain até o último byte de uma mensagem cifrada — você percorreu a pilha inteira.