lnd-manageJ

Ich habe kürzlich lnd-manageJ öffentlich gemacht und würde mich freuen, wenn das Projekt benutzt wird und ich Feedback bekomme.

lnd-manageJ ist ein Java-Service (Spring Boot), der sich per gRPC mit lnd verbindet und diverse REST-Endpunkte bereitstellt. Ich habe diese Features hauptsächlich nach meinem Bedarf geschrieben, da mir bestimmte Informationen bei lnd einfach fehlen oder diese nur schwer zu bekommen sind.

Ein einfaches Beispiel: welche Kanäle habe ich zu einem Peer aktuell oder jemals gehabt und wie viel habe ich an Forwarding-Gebühren eingenommen.

Interessanter sind vielleicht die Endpunkte, die mit Rebalance-Zahlungen hantieren. Man kann zum Beispiel abfragen, wie viel Rebalancing man mit einen Channel/Peer betrieben hat (wie viele sats? was hat das gekostet? in welche Richtung?).

Ein weiteres Feature: on-chain-Kosten. Als Knotenbetreiber ist es gut zu wissen, was man für das Öffnen und Schließen von Kanälen gezahlt hat. Insbesondere bei Force-Closes ist das nicht immer ganz einfach zu sehen.

Es gibt viele weitere hilfreiche Informationen, die per REST abgerufen werden können. Die Benutzbarkeit ist dementsprechend eingeschränkt, aber vielleicht findet sich ja jemand, der dazu eine Web-UI schreiben möchte - ich würde mich freuen!

Wenn ihr Fragen zum Projekt habt, bspw. zur leider nicht so trivialen Installation: gerne her damit :slight_smile:

5 „Gefällt mir“

das klingt super!
Bin leider Programmier-Legasteniker, sorry.
Wie wäre es denn, wenn Du den content bei LNDg integrieren läßt? Klingt irgendwie so, als würden die in etwas das gleiche Zeil verfolgen? Nutzen die nicht schon Dein rebalance Script?

LNDg ist in Python geschrieben, man könnte aber ggf. die UI wiederverwenden oder erweitern. Realistisch ist das nicht, denke ich. Der Rebalance-Code in LNDg ist komplett losgelöst von meinem Skript und arbeitet auch nicht so, wie ich es mir für meinen Knoten und perspektivisch für lnd-manageJ wünsche.

1 „Gefällt mir“

danke für die Info!

Hi,
finde das super spannend und bin gerade am testen.

Es wirft so allerlei Exceptions um sich.

WARN  de.cotto.lndmanagej.grpc.GrpcService: Exception while connecting to lnd: java.security.cert.CertificateException: No subject alternative names matching IP address 192.168.178.55 found

Ergebnis vom ganzen:

curl -s http://localhost:8081/api/status/open-channels
{
  "timestamp" : 1652179487273,
  "status" : 500,
  "error" : "Internal Server Error",
  "path" : "/api/status/open-channels"
}%
```
1 „Gefällt mir“

Ich habe es bisher noch nie mit einem host != localhost probiert. Für mich sieht es so aus, als würde als Teil der gRPC-Kommunikation auch überprüft werden, ob der richtige Server antwortet. Kannst du lnd-manageJ lokal (auf dem Rechner, auf dem auch lnd läuft) ausführen bzw. mit Port-Forwarding testen (ggf. per SSH)?

Hab’s mit Portforwarding eben getestet.

Es klappt :wink:

1 „Gefällt mir“

Super Cooles Feature wäre jetzt noch, wenn du den Spring-Boot-Prometheus einbaust.

[Spring Metrics]

Denn könnte man sich schöne Grafana-Dashboards zusammen klicken :wink:

Klingt nicht falsch. Mach bitte ein Issue in GitHub auf und beschreib darin, was du sehen willst.

[Feature Request: export prometheus-metrics for grafana-dashboards · Issue #25 · C-Otto/lnd-manageJ · GitHub]