Vorwort
Hallo. Dieses Tutorial soll Dir zeigen, wie Du bitcoind, c-lightning, RTL und clboss aufsetzt. Wir eröffnen zusammen einen Channel und lassen später alles weitere durch clboss erledigen. Dieses Tutorial ist für jeden geeignet, der eine kleine (oder größere) Lightning-Routing-Node aufsetzen möchte und das nötige Durchhaltevermögen mitbringt diese auch dauerhaft zu pflegen und sich eventuelle fehlende Skills zu erarbeiten. Dieses Tutorial ist nicht für Personen geeignet, die „einfach nur“ Lightning benutzen möchten.
Was brauchst Du?
- Du benötigst einen PC, Server oder eine VM mit optimalerweise 1 TB Speicherplatz für die BTC-Blockchain, der optimalerweise immer online ist. c-lightning kann auch mit einer pruned Node arbeiten - dies deckt dieses Tutorial allerdings nicht ab.
- Auf diesem PC, Server oder auf dieser VM sollte Debian 11 installiert sein. Wenn Du ein anderes Betriebssystem installierst musst Du Dich entsprechend auskennen und die Kommandos entsprechend selbst substituieren. (Z.B. sudo statt su, etc.)
- Die Pfade in den Beispielen setzen voraus, dass Du einen Benutzer Namens
btc
beim Setup angelegt hast und im Verzeichnis/blockchain
genügend Speicherplatz zur Verfügung steht um die BTC-Blockchain zu speichern. Während ich das schreibe sind das schon 387 GB. Falls das Verzeichnis/blockchain
nicht existiert musst Du es so anlegen, dass der Benutzer btc Schreib-Rechte hat:mkdir /blockchain
,chown btc: /blockchain
undchmod 0755 /blockchain
. - Eine statische IP-Adresse. (Dieses Tutorial beinhaltet keine Konfiguration von wechselnden IP-Adressen während dem Betrieb. Das „Lightning-Netzwerk“ unterstützt hier keine wiederholenden DNS-Auflösungen, bzw. viel verwendete Software unterstützt dies nicht.)
- Mindestens 0,1 BTC.
Formatierungshinweis
Code-Blöcke sind entweder komplette Dateien oder Konsolen In-/Output. Im Fall von Konsolen In-/Output die Kommandos enthalten sind Zeilen die mit einem $
beginnen das Shell-Prompt des btc
-Users und Zeilen die mit #
beginnen das Shell-Prompt des root
-Users. In dem Fall musst Du entsprechend su
oder sudo
verwenden um die Zeile(n) als root
auszuführen.
Tastenkombinationen werden in Eckigen Klammern geschrieben: [Strg]
+[D]
bedeutet z.B., dass Du die STRG
-Taste zusammen mit der D
-Taste drücken sollst. Modifikator-Tasten werden dabei vor der Nicht-Modifikator-Taste gedrückt und erst nach dem Loslassen der Nicht-Modifikator-Taste losgelassen. In dem Fall also: [Strg]
drücken und halten, [D]
drücken, [D]
loslassen, [Strg]
loslassen.
Neuere Versionen
Es kann sein, dass diese Dokumentation mittlerweile outdated ist. Ich verlinke deshalb immer Seiten mit weiteren Informationen bei denen ihr dann die aktuelle Version der Software recherchieren könnt.
Mahnendes Vorwort
Auch wenn es verlockend ist, dass clboss die komplette Node selbst managen kann würde ich empfehlen zuerst selbst „laufen zu lernen“. c-lightning ist auch wunderbar ohne RTL oder clboss managebar. Falls Du mich flamen möchtest, weil Du durch mein Tutorial alle BTCs verloren hast, kannst Du das direkt per Telegram tun: @GhostTyper
.
bitcoind installieren
bitcoind ist der „bitcoin Daemon“ aus der Softwaresuite „BitcoinCore“ und „die defacto Standard“ Bitcoin-Node-Software. (Nicht sehr dezentral. :'D) Die Suite liefert noch mehr, aber wir benötigen nur den bitcoind
und das Kommandozeilensteuerprogramm bitcoin-cli
.
Gute Informationen zu diesem Punkt für weitere Recherchen gibt es hier: Running A Bitcoin Full Node.
bitcoind installieren, falls die Prüfsummen nicht übereinstimmen: Installation abbrechen. Du startest im Home-Verzeichnis vom btc
-User:
$ wget https://bitcoincore.org/bin/bitcoin-core-0.21.1/bitcoin-0.21.1-x86_64-linux-gnu.tar.gz
$ wget https://bitcoincore.org/bin/bitcoin-core-0.21.1/SHA256SUMS.asc
$ cat SHA256SUMS.asc | grep bitcoin-0.21.1-x86_64-linux-gnu.tar.gz
$ sha256sum bitcoin-0.21.1-x86_64-linux-gnu.tar.gz
$ mkdir work
$ cd work
$ tar xvf ../bitcoin-0.21.1-x86_64-linux-gnu.tar.gz
$ su -
# install -m 0755 -o root -g root -t /usr/local/bin bitcoin-0.21.1/bin/bitcoind
# install -m 0755 -o root -g root -t /usr/local/bin bitcoin-0.21.1/bin/bitcoin-cli
# [Strg]+[D]
su
(oder auch sudo
) wird Dich zur Eingabe des root
-Passworts (oder bei anderen Distributionen auch zur Eingabe des Passworts des btc
-Users) auffordern. Testen, ob bitcoind
und bitcoin-cli
erfolgreich installiert wurde kannst Du so:
$ cd
$ bitcoind --version
Bitcoin Core version v0.21.1
Copyright (C) 2009-2020 The Bitcoin Core developers
Please contribute if you find Bitcoin Core useful. Visit
<https://bitcoincore.org/> for further information about the software.
The source code is available from <https://github.com/bitcoin/bitcoin>.
This is experimental software.
Distributed under the MIT software license, see the accompanying file COPYING
or <https://opensource.org/licenses/MIT>
$ bitcoin-cli --version
Bitcoin Core RPC client version v0.21.1
Ich hoffe, es hat alles bisher geklappt. Wenn nicht, dann schildere Dein Problem unter diesem Thread.
Als nächstes setzen wir ein Start-Script auf. Editiere dazu mit Deinem Lieblings-Editor (hoffentlich vim
) die Datei /etc/init.d/cryptostack
als root
. Wenn Du das Start-Script ohne meine Hilfe erstellen möchtest schlage ich vor, dass Du ein bestehendes Start-Script kopierst und dieses abänderst. Ansonsten ist hier mein Vorschlag für den Datei-Inhalt von /etc/init.d/cryptostack
:
#!/bin/sh
### BEGIN INIT INFO
# Provides: cryptostack
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# X-Start-Before:
# X-Stop-After:
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Description: Runs the open-vm-tools services
# Short-Description: Runs the open-vm-tools services
### END INIT INFO
. /lib/lsb/init-functions
case "${1}" in
start)
log_daemon_msg "Starting bitcoind" "bitcoind"
su btc -c "screen -dmS bitcoind bitcoind -nodebuglogfile -maxconnections=256 -datadir=/blockchain -rpcpassword=password -server -listenonion=0"
log_end_msg 0
;;
stop)
log_daemon_msg "Stopping bitcoind" "bitcoind"
su btc -c "bitcoin-cli -rpcpassword=password stop"
sleep 15
log_end_msg 0
;;
force-reload|restart)
${0} stop
${0} start
;;
*)
log_success_msg "Usage: ${0} {start|stop|restart|force-reload}"
exit 1
;;
esac
Das Script benötigt screen
, welches Du wie folgt installieren kannst. Außerdem müssen wir sicherstellen, dass die korrekten Rechte für das Start-Script gesetzt sind:
# apt-get install screen
# chown root: /etc/init.d/cryptostack
# chmod 0755 /etc/init.d/cryptostack
Nun ist es Zeit, dass wir bitcoind und das Script testen:
# /etc/init.d/cryptostack start
Starting cryptostack (via systemctl): cryptostack.service.
Das Start-Script startet für uns nun bitcoind in einer screen
-Session unter dem Benutzer btc
. Als benutzer btc
kann man auch in die screen
-Session hineinsehen:
$ screen -r
Wenn Du die screen
-Session wieder beenden willst geht das mit der folgenden Tastensequenz: [Strg]
+[A]
gefolgt von [D]
.
Im Endeffekt starten wir bitcoind mit folgenden Parametern:
bitcoind -nodebuglogfile -maxconnections=256 -datadir=/blockchain -rpcpassword=password -server -listenonion=0
Dies führt dazu, dass wir 256 Gossip-Clients akzeptieren (es ist OK, wenn andere von mir die Blockchain herunterladen). Zudem schreiben wir keine Debug-Log-Datei, verwenden kein ToR-Netzwerk, speichern die Blockchain nach /blockchain
und setzen password
als Passwort für RPC-Calls.
Zum Beenden führen wir folgendes aus:
bitcoin-cli -rpcpassword=password stop
…was über das RPC-Interface einen Befehl zum Beenden an bitcoind sendet. So kannst Du abfragen, wie weit bitcoind bereits synchronisiert ist:
$ bitcoin-cli -rpcpassword=password -getinfo
{
"version": 210100,
"blocks": 697446,
"headers": 697446,
"verificationprogress": 0.9999992350927487,
"timeoffset": 0,
"connections": {
"in": 11,
"out": 10,
"total": 21
},
"proxy": "",
"difficulty": 15556093717702.55,
"chain": "main",
"relayfee": 0.00001000,
"warnings": ""
}
blocks
gibt an, auf welcher höhe euer Stand der Blockchain ist. Falls ihr eingehende Verbindungen erlauben wollt solltet ihr Port tcp/8333
öffnen oder forwarden. (Es wäre nett dem Netzwerk etwas zurück zu geben, welches Euch so bereitwillig bei der Synchronisierung Deiner Node die Blockchain ausgeliefert hat.)
Um unser StartScript bei Bootvorgang automatisch zu starten und zu beenden müssen diese Symlinks gesetzt sein:
$ su -
# cd /etc/rc3.d
# ln -s ../init.d/cryptostack S99cryptostack
# cd /etc/rc4.d
# ln -s ../init.d/cryptostack S99cryptostack
# cd /etc/rc5.d
# ln -s ../init.d/cryptostack S99cryptostack
# cd /etc/rc0.d
# ln -s ../init.d/cryptostack K99cryptostack
# cd /etc/rc1.d
# ln -s ../init.d/cryptostack K99cryptostack
# cd /etc/rc2.d
# ln -s ../init.d/cryptostack K99cryptostack
# cd /etc/rc6.d
# ln -s ../init.d/cryptostack K99cryptostack
Ich schlage vor das System kurz neu zu starten um zu sehen, ob unser Start-Script beim Bootvorgang tatsächlich gestartet wird:
# init 6
c-lightning installieren.
Bevor Du c-lightning startest sollte bitcoind synchronisiert sein. Kompilieren und installieren kannst Du es aber auch schon jetzt. c-lightning findest auf GitHub.
$ cd
$ wget https://github.com/ElementsProject/lightning/releases/download/v0.10.1/clightning-v0.10.1.zip
$ su -
# apt-get install unzip autoconf automake build-essential git libtool libgmp-dev \
libsqlite3-dev python3 python3-mako net-tools zlib1g-dev libsodium-dev \
gettext
# [Strg]+[D]
$ cd work
$ rm -rf /home/btc/work/*
$ unzip ../clightning-v0.10.1.zip
$ cd clightning-v0.10.1
$ ./configure --prefix=/home/btc/inst
$ make -j 1
$ make install
$ cd ../../inst
$ ls -l
insgesamt 12
drwxr-xr-x 2 btc btc 4096 25. Aug 02:56 bin
drwxr-xr-x 3 btc btc 4096 25. Aug 02:56 libexec
drwxr-xr-x 4 btc btc 4096 25. Aug 02:56 share
make install
hat die Dateien jetzt in das Verzeichnis kopiert, welches wir beim ./configure
-Aufruf angegeben haben. Dies ist natürlich nicht das finale Ziel, aber ich schaue mir gerne an, welche Dateien mit der Installation erstellt werden. Denn wenn ich später Updaten muss möchte ich nicht, dass Dateien, die dann obsolete sind erhalten bleiben. Die finale Installation kann so vorgenommen werden:
$ su -
# cd /home/btc/inst
# install -m 0755 -o root -g root -t /usr/local/bin bin/*
# mkdir -p /usr/local/libexec/c-lightning/plugins
# install -m 0755 -o root -g root -t /usr/local/libexec/c-lightning libexec/c-lightning/*
# install -m 0755 -o root -g root -t /usr/local/libexec/c-lightning/plugins libexec/c-lightning/plugins/*
# cp -R share /usr/local
Aus den Verzeichnissen und Dateien aus dem inst
-Verzeichnis leite ich dann ab, was ich später löschen muss, bevor ich eine aktuellere Version „darüber“ installiere. Dies kann deshalb wichtig sein, weil c-lightning Plugins mit ausliefert. Sollte ein Plugin bei einem Update weg fallen möchte ich nicht, dass alter Code von früheren Versionen durch den Plugin-Manager ausgeführt wird. (Reine Sicherheitsmaßnahme.)
Das Start-Script muss nun noch angepasst werden. Nach der Start-Zeile für bitcoind fügen wir folgendes ein:
sleep 12
su btc -c "screen -dmS lightningd lightningd --network bitcoin --addr 127.0.0.1 --bitcoin-rpcpassword password --alias Noname --rgb 202020 --min-capacity-sat 900000"
Die IP-Adresse hinter dem --addr
-Parameter muss natürlich mit Deiner öffentlichen IP-Adresse substituiert werden. --alias
und --rgb
sind Namen und eine Farb-ID mit der die Node „identifiziert“ wird. Ist natürlich keine echte Identifikation, aber ihr könnt Eure Node so auf Webseiten wie 1ml.com oder amboss.space besser finden. --min-capacity-sat
stellt ein, dass fremde Nodes zu meiner Node nur einen Channel öffnen dürfen, wenn dieser mindestens 0,9 Mio. Satoshi groß ist. Ihr könnt diesen Parameter auch weglassen, wenn ihr dort keine Einschränkung haben wollt.
Vor der Zeile in der bitcoind beendet solltest Du das Einfügen:
su btc -c "lightning-cli stop"
sleep 5
Starte den cryptostack neu:
# /etc/init.d/cryptostack restart
Mit dem folgenden Kommando kannst Du sehen, was das screen von c-lightning anzeigt:
$ screen -r lightningd
2021-08-25T01:44:01.392Z UNUSUAL lightningd: Creating configuration directory /home/btc/.lightning/bitcoin
2021-08-25T01:44:01.392Z UNUSUAL lightningd: Creating configuration directory /home/btc/.lightning/bitcoin
2021-08-25T01:44:01.439Z INFO database: Creating database
2021-08-25T01:44:01.464Z UNUSUAL hsmd: HSM: created new hsm_secret file
2021-08-25T01:44:01.512Z INFO plugin-bcli: bitcoin-cli initialized and connected to bitcoind.
2021-08-25T01:44:01.525Z INFO lightningd: --------------------------------------------------
2021-08-25T01:44:01.526Z INFO lightningd: Server started with public key 02b3...e846, alias Noname (color #202020) and lightningd 0.10.1
screen
kann wieder mit [Strg]
+[A]
gefolgt von [D]
beendet werden.
Bevor wir nun weiter machen solltest Du sicherstellen, dass Deine Lightning-Node von außen über Port tcp/9735
erreichbar ist.
Mit getinfo
können wir überprüfen, ob c-lightning läuft:
$ lightning-cli getinfo
Um mit unserer Lightning-Node Channels eröffnen zu können oder Channels annehmen zu können benötigen wir On-Chain-Funds. Dazu erzeugt die Lightning-Node ein internes (hot) Wallet:
$ lightning-cli newaddr
Die nach bech32
angezeigte Adresse ist die Adresse, auf die Du BTC überweisen musst um die c-lightning-Instanz zu verwenden. Es reichen zuerst einmal weniger als die geplante Summe, die Du in die Node stecken möchtest. Es sollten aber mindestens 0,05 BTC sein.
Am besten verwendest Du mempool.space um zu verfolgen, wann Deine Überweisung On-Chain soliditiert wurde. Ihr könnt das auch mit listfunds
auf Eurer Lightning-Node überprüfen:
$ lightning-cli listfunds
An dieser Stelle können wir uns überlegen, mit welcher Node wir zuerst einen Channel eröffnen wollen. Ich entscheide mich für eine der Bitfinex-Nodes. Denn darauf kann ich Satoshis überweisen und dann On-Chain zurückschicken und der Channel ist somit (je nach dem) ausgeglichen. Ihr könnt das aber auch zusammen mit einem Freund machen, etc. An dieser Stelle empfehle ich für weitere Fragen den kostenpflichtigen Telegram-Lightning-Channel von @mrsieb.
$ lightning-cli connect 03cde60a6323f7122d5178255766e38114b4722ede08f7c9e0c5df9b912cc201d6@34.65.85.39:9745
…stellt eine Verbindung zu einer der Bitfinex-Nodes her. Erst ab jetzt beginnt c-lightning eine Verbindung zum Lightning-Netzwerk herzustellen und andere Nodes, sowie öffentliche Channels herunterzuladen. listchannels
listet alle bekannten Kanäle und listnodes
alle bekannten Nodes auf:
$ lightning-cli listchannels
$ lightning-cli listnodes
Dies erstellt einen Kanal mit 4 Mio. Satoshis (dem Minimum was Bitfinex-Nodes akzeptieren) mit einer der Bitfinex-Nodes:
$ lightning-cli fundchannel 03cde60a6323f7122d5178255766e38114b4722ede08f7c9e0c5df9b912cc201d6 4000000
Du solltest die zurückgelieferte TXID wieder in mempool.space eingeben um die Transaktion zu verfolgen. Nach 3 Bestätigungen gilt der Kanal zwischen den Teilnehmern als eröffnet, aber erst nach 6 Bestätigungen als „öffentlich“. Ab dann kannst Du Deine Node auch in öffentlichen Auflistungen finden.
Wenn der Kanal bestätigt ist kannst Du mit listfunds
die Funds abfragen:
$ lightning-cli listfunds
Der Eintrag „our_amount_msat
“ gibt dabei an, wieviel der Channel-Kapazität auf unserer Seite ist – in dem Fall alles. Dies bedeutet, dass uns über diesen Channel niemand Geld schicken kann. Erst wenn wir etwas darüber verschickt haben und somit die Balance nicht mehr nur auf unserer Seite ist können wir etwas über den Channel empfangen. Später wird clboss die Channel für uns ausbalancieren. Manuell können wir dies im Fall von Bitfinex nun wie folgt machen:
- Wir überweisen auf Bitfinex mit Lightning die Hälfte der Channel-Kapazität.
- Mit Bitfinex überweisen wir diese in diesem Beispiel 2 Mio sat on-chain wieder auf unsere oben generierte Lightning-Node-Adresse.
Es gibt hier noch viele weitere Strategien und Balancing-Möglichkeiten, die aber nicht Teil dieses Tutorials sind.
RTL installieren
Ride the Lightning ist eine grafische Benutzeroberfläche in Form einer Webseite. Ursprünglich für lnd entwickelt benötigt es ein zusätzliches Plugin um mit c-lightning kommunizieren zu können. Eine Installationsanleitung findet sich hier.
$ wget https://github.com/Ride-The-Lightning/c-lightning-REST/archive/refs/tags/v0.4.4.tar.gz
$ cd work
$ rm -rf /home/btc/work/*
$ tar -xvf ../v0.4.4.tar.gz
$ cd c-lightning-REST-0.4.4
$ su -
# apt-get install npm
# [Strg]+[D]
$ npm install --only=prod
$ cd ..
$ mv c-lightning-REST-0.4.4 ~/cl-rest
Und jetzt RTL:
$ cd
$ wget https://github.com/Ride-The-Lightning/RTL/archive/refs/tags/v0.11.0.tar.gz
$ cd work
$ tar xvf ../v0.11.0.tar.gz
$ cd RTL-0.11.0
$ npm install --only=prod
$ cp docs/Sample-RTL-Config.json ./RTL-Config.json
Editiere die RTL-Config.json-Datei, dass sie wie folgt aussieht:
{
"multiPass": "password",
"port": "3000",
"defaultNodeIndex": 1,
"SSO": {
"rtlSSO": 0,
"rtlCookiePath": "",
"logoutRedirectLink": ""
},
"nodes": [
{
"index": 1,
"lnNode": "MeineNode",
"lnImplementation": "CLT",
"Authentication": {
"macaroonPath": "/home/btc/cl-rest/certs"
},
"Settings": {
"userPersona": "MERCHANT",
"themeMode": "DAY",
"themeColor": "PURPLE",
"enableLogging": false,
"lnServerUrl": "https://localhost:3003",
"fiatConversion": false
}
}
]
}
RTL muss noch aus dem inst
-Folder ins Home-Verzeichnis verschoben werden:
$ mv /home/btc/work/RTL-0.11.0 /home/btc/rtl
Die start
sowie stop
-Sektion unseres Start-Scripts (/etc/init.d/cryptostack
) sollte wie folgt mit dem root
-User abgeändert werden:
start)
log_daemon_msg "Starting bitcoind" "bitcoind"
su btc -c "screen -dmS bitcoind bitcoind -nodebuglogfile -maxconnections=256 -datadir=/blockchain -rpcpassword=password -server -listenonion=0"
sleep 12
su btc -c "screen -dmS lightningd lightningd --network bitcoin --addr 127.0.0.1 --bitcoin-rpcpassword password --alias Noname --rgb 202020 --min-capacity-sat 1900000 --plugin=/home/btc/cl-rest/plugin.js --rest-port=3003"
sleep 3
su btc -c "screen -dmS rtl node /home/btc/rtl/rtl"
log_end_msg 0
;;
stop)
log_daemon_msg "Stopping bitcoind" "bitcoind"
su btc -c "lightning-cli stop"
sleep 2
su btc -c "killall node"
su btc -c "bitcoin-cli -rpcpassword=password stop"
sleep 15
log_end_msg 0
;;
Für die korrekte Ausführung benötigen wir allerdings killall
, welches bei Debian im Paket psmisc
enthalten ist:
# apt-get install psmisc
Bevor wir das testen solltest Du die Firewall o.Ä. so konfigurieren, dass auf Port tcp/3003
nicht von außen zugegriffen werden kann. Port tcp/3000
sollte nur für berechtigte Adressen geöffnet werden.
Nach einem restart des Scripts:
# /etc/init.d/cryptostack restart
…solltest Du mit http://<ip>:3000/
auf RTL verbinden können. Das initiale Passwort ist wie in der Config-File angegeben: „password
“. (RTL möchte dieses unsichere Passwort sowieso beim ersten Login ändern.)
clboss installieren.
Fahr‘ hier erst fort, wenn Du schon ein paar Channels angelegt hast oder selbst keine Channels anlegen möchtest. Wenn Du strikt dem Tutorial folgst wird clboss möglicherweise automatisch über boltz.exchange
einen Lightning → OnChain Swap machen und zwar evtl. auch bei hohen Gebühren (entweder für boltz.exchange
oder auch normale Bitcoin-Gebühren), weil clboss keine andere Möglichkeit sieht den Channel auszugleichen.
clboss ist ein geniales Stück Software und hat es geschafft, dass ich mit einem Einsatz von 0,15 BTC ungefähr 1000 sats pro Tag an Transaktionsgebühren eingenommen habe. ~1000 sats pro Tag, die durch eine „ehrliche Dienstleistung“ eingenommen wurden und nicht durch dubiose Defi-Geschäfte. (Ich schreibe das jetzt nur als Wiedergutmachung, weil ich oben die Dezentralität von Bitcoin kritisiert habe.)
Installation:
$ cd
$ wget https://github.com/ZmnSCPxj/clboss/releases/download/0.11B/clboss-0.11B.tar.gz
$ cd work
$ tar xvf ../clboss-0.11B.tar.gz
$ su -
# apt-get install pkg-config libev-dev libcurl4-gnutls-dev libsqlite3-dev
# [Strg]+[D]
$ cd clboss-0.11B
$ ./configure --prefix=/home/btc/inst
$ make -j 1
$ rm -rf /home/btc/inst/*
$ make install
# su –
# install -m 0755 -o root -g root -t /usr/local/bin /home/btc/inst/bin/clboss
# [Strg]+[D]
Die Zeile für den Start von c-lightning in unserem Start-Script (/etc/init.d/cryptostack
) ändern wir wie folgt ab:
su btc -c "screen -dmS lightningd lightningd --network bitcoin --addr 127.0.0.1 --bitcoin-rpcpassword password --alias Noname --rgb 202020 --min-capacity-sat 1900000 --plugin=/usr/local/bin/clboss --clboss-min-onchain=1000000 --plugin=/home/btc/cl-rest/plugin.js --rest-port=3003"
Achte darauf, dass die Anzahl der --clboss-min-onchain
größer ist als die Funds die Dir noch OnChain zur Verfügung stehen. Damit verhindern wir, dass clboss diese Funds vorerst verwenden kann und Channels öffnet.
Wenn Du das alles neustartest (Betriebssystem oder nur cryptostack) und dann zur screen
-Session von c-lightning verbindest siehst Du, was sich clboss so überlegt:
# /etc/init.d/cryptostack restart
$ screen -r lightningd
2021-08-25T04:38:07.996Z INFO plugin-clboss: ChannelFinderByDistance: No candidate leaves.
2021-08-25T04:38:07.999Z INFO plugin-clboss: New block at 697474
2021-08-25T04:38:08.001Z INFO plugin-clboss: ChannelCreationDecider: Low fees now. Will create channels worth 5999724000msat (1000000000msat reserved for onchain actions).
2021-08-25T04:38:08.009Z INFO plugin-clboss: ChannelCreator: Insufficient channel candidates, will solicit more.
2021-08-25T04:38:08.011Z INFO plugin-clboss: ChannelFinderByEarnedFee: No peers with earned outgoing fee, nothing for us to process.
2021-08-25T04:38:10.584Z INFO plugin-clboss: FeeModderBySize: Peer 033d8656219478701227199cbd6f670335c8d408a92ae88b962c49d4dc0e83e025 has 426 other peers, 28 of which have less capacity than us, 397 have more. Multiplier: 0.556068
2021-08-25T04:38:12.936Z INFO plugin-clboss: ChannelFinderByPopularity: Progress: 2429 / 11856 (0.204875)
2021-08-25T04:38:22.875Z INFO plugin-clboss: ChannelFinderByPopularity: Random selection (by popularity): 0242a4ae0c5bef18048fbecf995094b74bfb0f7391418d71ed394784373f41e4f3 (1142 peers), 03864ef025fde8fb587d989186ce6a4a186895ee44a926bfc370e2c366597a3f8f (1843 peers), 024e3985397f704899ddc9ea12dae5c5be351b541259028133ac5d607b401ab2cb (2 peers), 024a2e265cd66066b78a788ae615acdc84b5b0dec9efac36d7ac87513015eaf6ed (13 peers), 03beddc8adbf7d56a7da15cdaf95d97b24d07088c3571b421c0e6f9d551a210342 (43 peers)
clboss fügt ein neues Kommando hinzu, welches ebenfalls Interessante Daten liefert:
$ lightning-cli clboss-status
Meine Empfehlung ist es, clboss erstmal ein paar Stunden ohne die Erlaubnis Channels anzulegen laufen zu lassen, so dass es noch Daten über das Netzwerk sammeln kann. Wenn Du dann möchtest, dass clboss übernimmt kannst Du im cryptostack-Script die Zahl von --clboss-min-onchain=
auf 100000 oder sogar 30000 ändern. (Ich verwende lieber mehr Puffer für Channel-Closes, etc. 30000 sat ist das empfohlene Minimum.)
Laut dem Entwickler von clboss wird es folgendes für Dich tun:
- Es öffnet Channel zu anderen nützlichen Nodes, sofern die OnChain-Gebühren gering sind und OnChain-Funds zur Verfügung stehen.
- Es akquiriert eingehende Funds mit Hilfe von
boltz.exchange
swaps. - Channel-Rebelancing durch Selbst-Bezahlung.
- Steuert die Fees aller Channels.
Mit clboss-unmanage
kannst Du clboss zwingen keine Channels zu öffnen (open
) oder einen bestimmten Channel nicht zu schließen (close
) oder die Fees dafür nicht anzupassen (lnfee
). Für das #zerobasefee
-Movement habe ich auch dieses Ticket eröffnet, denn clboss setzt auch eine Offset-Fee. Weitere Infos findest Du hier.