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)
| tipo | hex | nome | descriçã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)
| tipo | hex | nome | descriçã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)
| tipo | hex | nome | descriçã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)
| tipo | hex | nome | descriçã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:
Mensagens Wire e 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.