Comment héberger un nœud Lightning Network rentable ?

noeud lightning network bitcoin

Article écrit par Steven Ellis et publié le 4 mars 2022 sur Medium. Traduit de l’anglais au français par Pierre-Louis.

Les enseignements tirés d'un nœud du top 100 :

Les nœuds Lightning les plus rentables ont un avantage unique. Une demande naturelle en tant que marchand, wallet mobile, échange, fournisseur de liquidités.

Que peut faire un simple pleb dans ce monde ? Ouvrir de grands canaux, drainer de la liquidité entrante et sortante, rechercher des scripts astucieux, vivre une aventure, absorber des connaissances.

Lightning est une cible mouvante et je ne peux pas vous montrer votre chemin. Je vais partager mon approche au cours des derniers mois de fonctionnement de mon nœud Cold Sats pour vous éclairer, mais vous devez trouver votre propre chemin.

Cold Sats devrait rapporter un rendement de 1,44% cette année si je maintiens mon rythme actuel. Si vous êtes déçu, faites demi-tour maintenant. Lightning est un endroit à faible risque et donc à faible récompense, pour rendre vos sats plus liquides.

Je ne sais pas comment vous avez trouvé votre chemin jusqu’ici, mais vous nous avez rejoints au début d’une révolution. Prenez place au premier rang avec moi.

Construisez votre noeud

La façon la plus courante de faire fonctionner un nœud est sur un Raspberry Pi 4 8GB. Si vous êtes nouveau sur Lightning, je suggère d’exécuter myNode, Umbrel ou Raspiblitz sur un Raspberry.

J’ai personnellement choisi myNode qui inclut Bitcoin, LND, Tor, RTL, Thunderhub, Mempool et d’autres applications que je n’ai jamais essayées. J’utilise notamment RTL comme interface graphique principale.

Flashez un fichier sur une micro SD, branchez-la dans un Raspberry lui-même branché à un SSD de 1 TB, allumez la machine et synchronisez la blockchain Bitcoin. Accédez au nœud en allant à l’adresse IP de la machine dans un navigateur. De là, vous pouvez gérer la plupart des fonctions du nœud depuis une interface graphique web. Certains outils avancés nécessiteront cependant l’utilisation des lignes de commande.

Les guides de @parman_the et @BTCsessions décrivent bien ce processus.

J’ai eu des problèmes avec mon pi de 4GB en faisant tourner 85 canaux sur Tor. La machine se figeait ou tous les canaux étaient hors ligne. Les redémarrages ont parfois aidé. En général, cela se résout tout seul après un certain temps. J’estime le temps de fonctionnement à 90%.

J’ai migré vers une machine plus puissante avec une configuration RaspiBolt et je suis passé en mode hybride. J’ai depuis 100% de disponibilité.

Je recommande toujours d’utiliser un Raspberry Pi pour commencer. C’est la solution plug and play la plus simple et avec 8 Go de RAM, vous n’aurez probablement pas les mêmes problèmes que moi.

Sécurisez votre Seed & Sauvegardez vos canaux

Après avoir synchronisé la blockchain Bitcoin, vous êtes prêt à créer un portefeuille Lightning. J’utilise LND, qui est l’implémentation la plus populaire de Lightning, mais vous pouvez également utiliser c-lightning ou Eclair. Celles-ci gagnent en popularité en partie à cause de la taille plus importante du channel.db dans LND.

Notez que LND utilise une seed “aezeed” qui est différente de BIP39. Vous devez utiliser un portefeuille qui supporte aezeed comme BlueWallet pour accéder à vos fonds.

Si votre nœud explose, vous devrez récupérer vos fonds à partir de votre seed + channel.backup avec une autre machine synchronisée ou une application comme Blixt. Ce processus forcera la fermeture de tous les canaux.

La façon la plus populaire de sauvegarder à distance votre fichier “channel.backup” est avec le bot Telegram Balance of Satoshis (BOS).

Prenez vos responsabilités

Vous devez rester en ligne après avoir ouvert votre premier canal. Si vous vous mettez hors ligne pendant une période prolongée, assurez-vous d’avoir mis en place une watchtower pour vous protéger. Informez vos partenaires de canal de tout problème en cours.

Assurez-vous de bien comprendre la différence entre les fermetures coopératives et les fermetures forcées. Il peut arriver que vos sats soient bloqués dans les limbes durant deux semaines d’affilée.

Gardez à l’esprit que vous gérez un Hot Wallet. Il est donc préférable de suivre les bonnes pratiques de sécurité.

La sécurité, c’est votre paranoïa contre leur volonté. Si leur volonté est plus grande que votre paranoïa, ils finiront par gagner. – @BitcoinRevolution4 sur Plebnet

Si vous utilisez des URL en “.onion” (Tor), cette chaîne de texte et votre mot de passe peuvent être piratés. J’utilise des clés SSH matérielles et j’ai désactivé l’accès par mot de passe. Chaque nouvelle application tierce installée est un nouveau vecteur d’attaque. Il est préférable de rester simple et d’exécuter le strict minimum lorsque cela est possible.

Prenez-en considération les implications en termes de vie privée du doxxing de vos UTXO, de l’exposition de votre adresse IP, ou de la connexion de votre Twitter / Telegram à votre nœud Lightning. Vous n’avez pas besoin d’exécuter un nœud de routage public pour utiliser Lightning pour vos propres paiements.

Arpentez le Paysage

Nous sommes presque prêts à faire fondre votre or numérique et à le façonner en de nouveaux canaux, mais il existe plus de 35 000 nœuds Lightning. Par où commencer ?

J’ai passé mes premiers jours sur Amboss et Terminal Web à parcourir les 100 premiers nœuds et leurs connexions. Puis les petits. Prenez en considération :

  • Les frais de sortie,
  • Les frais entrants,
  • Les canaux partenaires,
  • Le nombre de canaux,
  • La taille des canaux.

Vous pouvez supposer qu’un nœud est un “puits de liquidité sortante” (il n’achemine jamais les flux entrants) si tous les frais entrants vers lui sont élevés. Si un nœud a des frais de sortie statiques très élevés, cela suggère qu’il pourrait être un bon rééquilibreur (ou un mauvais partenaire). Les nœuds avec des frais de sortie faibles ou nuls sont souvent de grands partenaires, mais parfois des “puits de liquidité entrante”.

La grande majorité de mes gains proviennent des “puits liquidité sortante” populaires : LOOP, bfx-lnd0, bfx-lnd1, Nicehash et SeasickDiver. Cela ne devrait pas être un secret si vous regardez mes canaux et mes frais de sortie.

Mon nœud est construit pour servir ces canaux : structure des frais, taille des canaux, rééquilibrage et “swap out”. Je veux que ces canaux aient toujours des liquidités sortantes et je veux des canaux qui routent bien les entrées vers eux.

Dressez une liste des nœuds et des tailles de canaux

Faites une liste des nœuds que vous aimez. Elle ne sera pas évidente et n’a pas besoin d’être parfaite. Envisagez de connecter des nœuds populaires à d’autres qui ne le sont pas. Trouvez quelques nœuds à faible coût, à coût élevé, des puits sortants ou choisissez une niche spécifique.

Jetez un coup d’œil aux recommandations de canaux et autres outils utiles proposés par LNDg, LNnodeinsite, LnRouter et Gridflare.

Réfléchissez au nombre approximatif de sats que vous pouvez allouer à Lightning. Vous n’irez pas très loin avec moins de 20 à 30 millions de sats. Prenez ce chiffre et déterminez le nombre de canaux que vous pouvez prendre en charge.

Ne créez pas de canaux plus petits que 2 millions de Sats. J’aime les canaux larges entre 5M et 25M. Les grosses sorties drainent 50M – 100M. Cela signifie que j’ai fait moins de canaux, mais je crois que cela m’a positionné de manière unique. Il n’y a pas de règle.

Je base la taille de mon canal sur l’activité et la taille des canaux du nœud avec lequel je souhaite me connecter. Si le nœud n’a que des canaux de 5M, alors il peut être pertinent d’en ouvrir un de 20M vers lui. Si un nœud route beaucoup de gros paiements, je veux créer un grand canal pour soutenir cela. J’ai mis à jour de nombreuses tailles de canaux au fil du temps.

Si je devais choisir une taille de canal, ce serait 5M sats.

Ouvrez beaucoup de Canaux

Mon approche initiale consistait à ouvrir un grand nombre de canaux en une seule fois, puis à acheter et à rééquilibrer les entrées de LNBig dans ces canaux. À partir de là, la croissance a été lente et organique.

Ouvrez un lot de canaux avec BOS :

bos open <pubkey> — amount <amount> <pubkey> — amount <amount>, etc.

Une fois que vous avez ouvert quelques canaux, utilisez LNnodeinsight pour exécuter des simulations d’ouverture de canaux. Cela vous permettra de voir les chevauchements de canaux et les améliorations de score pour les nouveaux partenaires potentiels.

Définissez vos frais

Vous pouvez utiliser les frais pour gagner des sats et orienter le routage. Augmentez vos frais pour diminuer le flux sortant de sats et vice versa. Le but n’est pas toujours un canal équilibré, mais plutôt d’obtenir des sats dans les endroits où ils sont les plus demandés.

Je fais fonctionner mon nœud avec une partie de frais dynamiques et une partie de frais statiques. Je classe mes canaux en 3 catégories :

  • “Good Outbound” – mis à jour manuellement en fonction du flux :
    704 – 1904ppm
  • “Ok Outbound” – mis à jour toutes les heures en fonction de la balance :
    0 – 10% de liquidité sortante (444ppm)
    11 – 100% de liquidité sortante (284ppm)
  • Routeurs – mise à jour horaire en fonction de la balance :
    0 – 10% de liquidité sortante (444ppm)
    11 – 25% de liquidité sortante (284ppm)
    26 – 75% de liquidité sortante (84ppm)
    76 – 100% de liquidité sortante (4ppm)

Envisagez une 4ème catégorie avec des frais bas permanents, si un canal ne route jamais les sorties avec des frais plus élevés, mais route très bien les entrées. J’ai fait cela avec des nœuds comme Breeze, Coingate, PrestonPysh, et Boltz au début, puis je m’en suis éloigné lorsque la demande sortante a augmenté.

Certains nœuds ont des frais statiques élevés. Ce modèle nécessite plus de rééquilibrage.

En général, je ne veux que des “Good outbound” et des “Routeurs” parce que les canaux “Ok Outbound” ne sont pas rentables à rééquilibrer. S’ils n’acheminent pas les flux entrants à un moment donné, ils sont coupés.

Rétrospectivement, j’aurais dû fixer des frais plus élevés au début. Je vous suggère de le faire. Si vous pensez qu’un canal peut être drainé, alors regardez les frais d’entrée pour ce nœud et égalisez le plus élevé. Puis diminuez lentement tous les deux jours où vous ne roulez pas.

J’utilise charge-lnd sur un cron horaire pour définir les frais automatiquement. Cet outil me permet de définir des règles pour certains canaux ou seuils de liquidité.

Mettez à jour votre configuration avec :
nano /home/bitcoin/charge-lnd/charge.config

Faites un essai pour les changements de frais :
/home/bitcoin/.local/bin/charge-lnd -c /home/bitcoin/charge-lnd/charge.config — dry-run

Exécutez les changements de frais :
/home/bitcoin/.local/bin/charge-lnd -c /home/bitcoin/charge-lnd/charge.config

On peut dire que mon nœud Cold Sats rencontre une sorte de chaos contrôlé. Avec des frais bas, certains canaux vont router des flux sortants qui ne le feraient pas autrement, créant des flux entrants qui sont difficiles ou moins susceptibles d’être obtenus. Cela se transforme ensuite en une route de 10M vers LOOP.

Des frais peu élevés permettent également à mes partenaires de rééquilibrer plus facilement s’ils le souhaitent.

J’aime maintenir agressivement au moins un peu de liquidité des deux côtés de la plupart des canaux pour éviter les échecs de route dus au manque de liquidité. 4ppm et 444ppm y contribuent.

Conseils : N’ouvrez pas de canal LOOP à 4ppm et ne videz pas 700K sats en une minute 😉 N’hésitez pas à me raconter les erreurs amusantes que vous avez faites.

Obtenez de la liquidité entrante

Vient ensuite la partie délicate. Comment faire pour que les autres ouvrent des canaux vers votre nœud ?

Lightning Network Plus permet d’organiser des échanges de canaux entre opérateurs de nœud qui ne se connaissent pas. C’est un bon moyen d’obtenir des liquidités entrantes gratuitement. Personnellement, je n’ai rien fait de tout cela parce que je voulais être plus ciblé et moins engagé. Rétrospectivement, j’aurais dû faire quelques échanges.

Une fois que vous êtes plus établi, d’autres opérateurs seront prêts à faire des canaux à double financement avec vous en utilisant BOS. J’ai ouvert 24 canaux à double financement à ce jour.

De nombreux fournisseurs de liquidités, comme zero fee routing ou LNBig, vendent également de la liquidité entrante. J’ai acheté 264M sats à LNbig pour un coût de 545K sats au cours de mes 2 premiers mois. Vous pouvez aussi utiliser un protocole comme LOOP ou un portefeuille mobile comme Wallet of Satoshi (WOS), qui poussera vos sats de l’autre côté de vos canaux et vous donnera de la liquidité entrante.

WOS aurait probablement été moins cher que mon approche LNBig à mon échelle.

Faites-vous des nœuds amis. Exécutez un bon nœud et d’autres commenceront à ouvrir des canaux à vous. Une fois que votre flux est lancé, la liquidité entrante ne sera pas un souci.

Récoltez de la donnée et réévaluez

Il y a un problème de la poule et de l’œuf quand vous commencez. Pour obtenir de bonnes données, vous devez avoir un système avec des liquidités entrantes dans la plupart des canaux. C’est pourquoi j’ai choisi d’ouvrir beaucoup de canaux en une seule fois et de rééquilibrer la liquidité entrante de LNBig dans ces canaux.

J’ai brûlé des sats au début pour collecter des données. J’ai dépensé 177K sats sur le rééquilibrage (+ sur les frais de chaîne) et gagné 79K en frais de routage dans mon premier mois complet. Le deuxième mois, j’étais rentable avec 157K sats gagnés et 117K dépensés. Les choses sont devenues beaucoup plus intéressantes au cours du troisième mois.

Vous aurez besoin de 2 à 4 semaines de données. Regardez le flux de tous vos canaux. Assurez-vous que chaque canal reçoive un peu de flux entrant pour voir comment il se dirige. Parfois, un canal se réveillera après un long sommeil. Si ce n’est pas le cas, fermez-le. J’ai fermé 145 canaux à ce jour.

Historiquement, je n’ai coupé que les canaux que j’ai ouverts. De cette façon, l’autre opérateur ne perd rien. J’aime entretenir de bonnes relations, mais s’il n’y a vraiment aucun mouvement, aucun des deux opérateurs ne devrait être contrarié par une séparation cordiale.

Vous continuerez à réévaluer tout au long de la vie du nœud, mais une fois que vous avez un nœud solide, ce n’est pas beaucoup de travail. À un certain point, vous verrez des modèles cohérents émerger et vous serez prêt à commencer à rééquilibrer là où cela est rentable.

Rééquilibrez vos canaux

Rééquilibrer signifie s’envoyer des sats à soi-même. Augmentez les liquidités entrantes dans un canal et les liquidités sortantes dans un autre. En fonction de votre structure tarifaire et de vos observations, vous pouvez rééquilibrer ou pas vos canaux.

Je rééquilibre uniquement mes canaux “Good Outbound” à un taux de 50 à 325 ppm en fonction du flux actuel. Vous avez besoin de frais élevés pour compenser ce coût. Vous devez également prendre en compte le coût d’opportunité du déplacement des sats.

J’utilise rebalance-lnd qui est un outil en ligne de commande. BOS (ligne de commande) et LNDg (interface graphique web) sont aussi des outils de rééquilibrage populaires.

Je règle seulement le canal destinataire (to) et rebalance-lnd essaiera automatiquement d’envoyer des sats à partir de canaux qui ont un solde minimum de 3M sats (from). J’avais l’habitude d’utiliser une grande liste d’exclusion (exclude) parce que je ne voulais pas envoyer de sats à partir de mauvais canaux entrants. Avec le temps, les flux entrants se sont améliorés et la liste d’exclusion s’est réduite. Puis j’ai complètement arrêté.

Je boucle un script dans un écran pour chaque canal.

  • Créez un écran avec :

screen -S wallet

  • Rééquilibrer avec :

for ((i=0;i<5000;i++)); do timeout 600 rebalance-lnd/rebalance.py -a 400000 — to 797247085257949185 — fee-ppm-limit 200 — min-local 3000000; sleep 60; done

  • Ensuite, quittez l’écran avec :

ctrl+a
d

  • Rentrez dans l’écran avec :

screen -r wallet

  • Terminer un écran avec :

screen -X -S kill wallet

Je termine le script toutes les 10 minutes parce qu’il peut parfois rester bloqué sur un chemin pendant un long moment. L’inconvénient d’exécuter des scripts comme celui-ci est qu’il peut causer plus de HTLCs bloqués, qui peuvent être un problème dans les fermetures forcées. Les tentatives de rééquilibrage s’ajoutent par ailleurs à la taille de votre channel.db.

Typiquement, j’ai 2 à 5 scripts qui tournent ces temps-ci, soit un pour chaque canal. J’ajuste les paramètres ou les désactive si mon rythme est trop rapide. C’est une approche manuelle ciblée.

Je n’y passe désormais plus beaucoup de temps, mais c’est une activité semi-hebdomadaire.

Swap Out

(Note de traduction : “Swap out” signifie récupérer ses Sats sur le réseau Bitcoin principal, sans fermer ses canaux Lightning. Cela consiste à envoyer des sats via Lightning à un intermédiaire qui va nous fournir des bitcoins on-chain.)

Je “swap out” les sats de Lightning afin de pouvoir ouvrir de nouveaux canaux vers les nœuds “Good Outbound” après qu’ils se soient vidés. Ceci n’est économique qu’à certaines échelles et pour les canaux qui commandent des frais très élevés.

J’ai un canal important avec Wallet of Satochi (WOS) que je peux rééquilibrer à 50 – 200ppm. C’est relativement facile et fiable de rééquilibrer. Je monte et descends ce en fonction de mon rythme actuel de flux sortant, mon rééquilibrage et mon flux de swap out.

Quand je suis prêt à échanger, j’envoie des sats depuis le canal WOS vers le portefeuille WOS, puis je paie 7 – 8K (cela varie avec la profondeur du mempool) pour me renvoyer à moi-même sur la chaîne.

L’aller-retour me coûte jusqu’à 360ppm pour 50M de sats ou 280ppm pour 100M.

Maintenez votre Nœud

Plus il y a d’activité dans votre nœud (rééquilibrages + routes), plus votre channel.db va grossir. Vous devrez régulièrement compacter le channel.db pour diminuer sa taille. Actuellement, LND ne peut le faire que lors d’un redémarrage. Le mien est de 11GB en ce moment.

Vérifiez la taille de votre channel.db avec (chemin selon la machine) :

sudo du -ha /data/lnd/data/graph/mainnet/channel.db

Une fois qu’un canal atteint plus de 100-200K mises à jour, pensez à le fermer et à le rouvrir. Ceci effacera les données stockées pour ce canal. Attendez de préférence que les sats soient de votre côté du canal dans la mesure où les sats on-chain et la liquidité entrante sont précieux.

Vérifiez vos plus grands canaux avec :

lncli listchannels | jq -r ‘.[][]| [.num_updates, .remote_pubkey] | @tsv’ | sort -rn

Il existe des dizaines d’autres commandes utiles pour LND et BOS.

Rejoignez des communautés

Il y a un mouvement social spécial autour de Lightning. Cela m’a attiré sur Twitter après des années de flânerie. J’ai rejoint Bitcoin à la fin de 2013 et quand je regarde autour de moi Lightning maintenant, je ressens les mêmes vibrations. Il s’agit principalement de personnes techniques, optimistes et animées par un idéal.

J’ai rejoint Plebnet Telegram environ un mois après le début de mon aventure et cela m’a ouvert une nouvelle dimension. Je me suis fait des dizaines d’amis de nœud et j’ai beaucoup appris sur Bitcoin, Lightning et Linux. Lisez les conversations passées et posez des questions.

 

Prenez du recul

La cible se déplacera encore une fois et Lightning sera, espérons-le, un endroit différent et beaucoup plus grand à l’avenir.

Lightning est un jeu de patience à long terme. Les efforts apportés à vos frais peuvent porter leurs fruits après des jours, voire des semaines, avant d’avoir un effet. Je n’ai pas acheminé de paiement vers ma poule aux œufs d’or, mon canal vers LOOP, ces trois derniers jours, puis 10 millions ce matin.

Lorsque vous acheminez un paiement aléatoirement, pensez à l’origine de ce paiement. Bien sûr, il s’agit souvent d’un rééquilibrage, mais je suis sûr que j’ai acheminé des envois de fonds vers le Salvador.

Je fais tourner un nœud Lightning pas seulement pour gagner des sats mais pour aider à faire évoluer le Bitcoin. L’argent sain sans permission est un droit humain fondamental et il n’y a jamais eu auparavant une opportunité comme celle-ci pour le faire respecter.

J’ai été frappé par la foudre et j’espère que vous le serez aussi. ⚡️

Lightning network

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *