Mensajes del Protocolo

Referencia rápida de los tipos de mensaje

⚡ Lightning · Técnico

Una referencia de los principales tipos de mensaje del protocolo Wire, agrupados por función. Cada mensaje comienza con su tipo de 2 bytes (mostrado aquí en decimal y hex). Esta no es una lista exhaustiva — los BOLTs definen otros (financiación dual, splicing, etc.) y siguen evolucionando.

Control (BOLT 1)

tipohexnombredescripción
16 0x0010 init primer mensaje de la conexión; intercambia los feature bits soportados
17 0x0011 error reporta un error y (por lo general) cierra el canal o la conexión
18 0x0012 ping verifica si la conexión sigue viva y puede pedir un pong de cierto tamaño
19 0x0013 pong respuesta a un ping

Establecimiento de canal (BOLT 2)

tipohexnombredescripción
32 0x0020 open_channel el iniciador propone abrir un canal y sus parámetros
33 0x0021 accept_channel el respondente acepta la propuesta y envía sus parámetros
34 0x0022 funding_created el iniciador informa la salida de financiación y firma la 1ª transacción de compromiso
35 0x0023 funding_signed el respondente firma la 1ª transacción de compromiso del iniciador
36 0x0024 channel_ready cada lado avisa que la financiación confirmó; el canal está listo
38 0x0026 shutdown inicia el cierre cooperativo (informa el script de salida)
39 0x0027 closing_signed negocia la tarifa y firma la transacción de cierre mutuo

Operación del canal / HTLCs (BOLT 2)

tipohexnombredescripción
128 0x0080 update_add_htlc ofrece un nuevo HTLC a la contraparte
130 0x0082 update_fulfill_htlc liquida un HTLC revelando el preimage (el secreto)
131 0x0083 update_fail_htlc falla un HTLC, devolviendo un error onion
132 0x0084 commitment_signed firma la nueva transacción de compromiso con los cambios pendientes
133 0x0085 revoke_and_ack revoca el estado anterior, enviando el secreto de revocación
134 0x0086 update_fee actualiza la tarifa on-chain de la transacción de compromiso
135 0x0087 update_fail_malformed_htlc falla un HTLC cuyo paquete onion llegó malformado
136 0x0088 channel_reestablish resincroniza el estado del canal al reconectar

Descubrimiento / Gossip (BOLT 7)

tipohexnombredescripción
256 0x0100 channel_announcement anuncia un canal público (con la prueba on-chain de la salida de financiación)
257 0x0101 node_announcement anuncia un nodo: alias, color, direcciones y funcionalidades
258 0x0102 channel_update anuncia/actualiza la política de una dirección del canal (tarifa, cltv, activo)
259 0x0103 announcement_signatures intercambia las firmas necesarias para montar el channel_announcement
261 0x0105 query_short_channel_ids pide detalles de canales específicos, por SCID
262 0x0106 reply_short_channel_ids_end marca el fin de la respuesta a un query_short_channel_ids
263 0x0107 query_channel_range pide qué canales existen en un intervalo de bloques
264 0x0108 reply_channel_range responde con los SCIDs de canales de un intervalo de bloques
265 0x0109 gossip_timestamp_filter filtra qué mensajes de gossip recibir, por intervalo de tiempo

Nota el patrón: los tipos pares son obligatorios; dejaron espacio entre los números (impares) para variantes opcionales — la regla "it's ok to be odd" del protocolo Wire.

Decodificar en la práctica

Pega el hex de un mensaje (o un stream TLV) para identificarlo:

Mensajes Wire y TLV

Mensajes Wire y TLV

Identifica el tipo de 2 bytes y valida la estructura genérica de un stream TLV. No valida el schema completo.

Tipo del mensaje

Los 2 primeros bytes son el tipo big-endian. El catálogo de nombres de esta herramienta es parcial.

Ejemplos:

Resultado del mensaje wire

Secuencia TLV

Secuencia type-length-value con BigSize mínimo y types en orden creciente.

Ejemplos:

Resultado del stream TLV

Fin del recorrido técnico de Lightning. 🎉 Desde la apertura de un canal on-chain hasta el último byte de un mensaje cifrado — recorrió toda la pila.