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)
| tipo | hex | nombre | descripció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)
| tipo | hex | nombre | descripció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)
| tipo | hex | nombre | descripció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)
| tipo | hex | nombre | descripció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
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.