Glossaire / Lightning et couche 2
Valeur maximale des HTLC en vol
- Qu'est-ce que la valeur maximale des HTLC en vol ?
- La valeur maximale des HTLC en vol est le plafond que chaque pair Lightning fixe sur la valeur totale des paiements que l'autre partie peut avoir en attente simultanément.
Le plafond est un champ unique, max_htlc_value_in_flight_msat, convenu à l'ouverture d'un canal et appliqué à chaque paiement par la suite. Eclair applique par défaut 5 000 000 000 millisatoshi ou 45 pour cent de la capacité du canal, selon le montant le plus faible, de sorte qu'un canal de 60 mBTC obtient 27 mBTC. Votre paiement Lightning important peut échouer sur un canal qui détient visiblement assez d'argent, et c'est souvent la raison.
Comment cela fonctionne
La valeur maximale des HTLC en vol est négociée, non imposée : chaque partie déclare le plafond qu'elle veut que l'autre respecte.
Le champ circule dans open_channel (type de message 32) et revient dans accept_channel (type 33) ; les canaux à double financement le portent dans open_channel2 (64) et accept_channel2 (65). Le BOLT 2 le décrit comme « un plafond sur la valeur totale des HTLC en cours offerts par le nœud distant, ce qui permet au nœud local de limiter son exposition aux HTLC ». Notez la direction : le nombre que vous envoyez contraint votre pair, pas vous, donc un canal porte deux plafonds qui ne correspondent pas nécessairement.
L'application est brutale aux deux extrémités. Un nœud émetteur ne doit pas ajouter un paiement si la valeur totale qu'il a déjà offerte dépasserait alors le plafond du nœud distant, et un récepteur dont le pair enfreint la règle est invité à avertir et à fermer la connexion, ou à faire échouer le canal purement et simplement. Son homologue max_accepted_htlcs compte les paiements en attente au lieu de les mesurer, et la spécification plafonne celui-ci à 483, tombant à 114 lorsque le canal utilise des engagements de frais nuls. Le plafond de valeur n'a pas de plafond équivalent : c'est une pure politique de nœud, le seul garde-fou de la spécification étant qu'un récepteur peut refuser un canal dont le chiffre semble trop petit.
L'argent qui reste immobile n'est pas touché. Un canal peut détenir un solde réglé plusieurs fois supérieur au plafond, car la limite ne compte que les paiements en mouvement, ceux qu'il faudrait démêler on-chain si le canal se fermait mal.
Où le voir
La valeur maximale des HTLC en vol n'apparaît jamais dans le graphe Lightning public, donc aucun explorateur de canaux ne vous la montrera.
Elle fuit d'une manière précise. Le BOLT 7 exige qu'un nœud publiant un channel_update fixe htlc_maximum_msat, le plus gros paiement qu'il transmettra, à un montant qui ne dépasse pas le max_htlc_value_in_flight_msat qu'il a reçu de son pair. Un nombre privé impose donc un plafond strict à un nombre public : un pair prudent force le chiffre annoncé à la baisse, bien qu'un nœud soit libre d'annoncer moins que ce que son pair autorise.
Les valeurs par défaut diffèrent assez entre implémentations pour compter. La configuration de référence d'Eclair fixe max-htlc-value-in-flight-msat à 5 000 000 000 et max-htlc-value-in-flight-percent à 45, applique le plus petit des deux, et note que le réglage est par direction, donc les deux ensemble peuvent atteindre le double du chiffre. Eclair fixe aussi max-accepted-htlcs à 30, tandis que l'exemple de configuration de LND livre default-remote-max-htlcs à 483, le maximum de la spécification. Deux opérateurs utilisant des valeurs par défaut intactes peuvent différer d'un facteur seize rien que sur le nombre.
Pour un acheteur, le symptôme est un paiement qui échoue sans explication. Diviser le montant en parties ne le sauve pas quand les parties empruntent le même canal, car le plafond les additionne. ACINQ, qui publie ces valeurs par défaut d'eclair, livre aussi Phoenix, le portefeuille téléphonique dont ce site publie l'avis ; tout portefeuille qui ouvre des canaux pour vous choisit ces nombres en votre nom.
Valeur maximale des HTLC en vol vs capacité du canal
La capacité du canal est le montant verrouillé dans la sortie de financement d'un canal, tandis que la valeur maximale des HTLC en vol régit la part de ce montant qui peut être en cours de paiement à un moment donné.
La capacité est un fait public, fixé par la transaction de financement et annoncé à tout le réseau. Le plafond en vol est privé, échangé uniquement entre les deux pairs, fixé séparément pour chaque direction, et choisi par politique plutôt que par arithmétique. La valeur par défaut en pourcentage d'Eclair rend l'écart concret : les 45 pour cent s'appliquent à chaque direction séparément, donc plus de la moitié de la capacité est interdite de circulation dans un sens à la fois. Un canal qui montre beaucoup de place de votre côté peut quand même refuser un paiement, et le chiffre qui l'a refusé est un chiffre que vous ne pouvez pas consulter.