[BREAKGLASS] Lightning Network node
Go to file
2021-11-15 19:25:00 +00:00
.idea OPS: .idea files for build 2021-11-10 11:06:46 +00:00
cli FIX: unhardcode wallet entropy 2021-11-15 19:25:00 +00:00
gradle/wrapper init 2021-10-23 18:59:31 +01:00
libs ADD: network graph; listen on port 2021-11-09 21:07:24 +00:00
src/main ADD: peers reconnect 2021-11-15 19:18:33 +00:00
.gitignore cli + ldk works; dumb rpc server 2021-10-25 20:24:02 +01:00
build.gradle.kts cli + ldk works; dumb rpc server 2021-10-25 20:24:02 +01:00
connectpeer.sh FIX 2021-11-11 18:00:18 +00:00
geteventschannelclosed.sh ADD: more rpc commands 2021-11-08 15:17:41 +00:00
geteventsfundinggenerationready.sh ADD: more rpc commands 2021-11-08 15:17:41 +00:00
getnodeid.sh REF: rearranged files; ADD: some new commands 2021-11-06 12:09:21 +00:00
gradle.properties init 2021-10-23 18:59:31 +01:00
gradlew init 2021-10-23 18:59:31 +01:00
gradlew.bat init 2021-10-23 18:59:31 +01:00
ldkversion.sh REF 2021-11-08 15:53:59 +00:00
LICENSE DOC 2021-11-05 16:39:06 +00:00
listchannels.sh REF: rearranged files; ADD: some new commands 2021-11-06 12:09:21 +00:00
listpeers.sh REF: simple http server along with rpc server 2021-11-05 21:15:54 +00:00
listusablechannels.sh REF: correct json responses 2021-11-13 11:11:21 +00:00
openchannelstep1.sh ADD: more rpc commands 2021-11-08 15:17:41 +00:00
openchannelstep2.sh ADD: more rpc commands 2021-11-08 15:17:41 +00:00
README.md REF 2021-11-15 09:23:34 +00:00
savenetworkgraph.sh ADD: routing fees 2021-11-10 20:18:43 +00:00
setfeerate.sh REF: rearranged files; ADD: some new commands 2021-11-06 12:09:21 +00:00
setrefundaddressscript.sh ADD: more rpc commands 2021-11-08 15:17:41 +00:00
settings.gradle.kts init 2021-10-23 18:59:31 +01:00
start.sh REF: simple http server along with rpc server 2021-11-05 21:15:54 +00:00
stop.sh REF 2021-11-08 15:53:59 +00:00
updatebestblock.sh ADD: more rpc commands 2021-11-08 15:17:41 +00:00

Hello, Lightning!

Cli lightning network server, based on LDK (rust-lightning). Provides DUMB-RPC (telnet friendly) and HTTP interface.

Example:

  • build it
  • run it: java -jar ./out/artifacts/hello_main_jar/hello.main.jar
  • now DUMB-RPC/HTTP server listens on port 8310
  • start the server with start.sh script
  • ...or run nodejs control process from ./cli/ directory (npm i && npm start)

Philosophy

Barebone Java-based server cant do much, out of the box it can only do lightning peers networking and disk persistence. All the functionality should be implemented on upper level (like, GUI application, or nodejs cli script, etc), that includes: providing blockchain data, managing onchain coins to open channels (via PSBT), keeping a list of peers to keep connections etc

Security

Server is intended to run in a secure environment. Thus, on-disk storage is not encrypted, and RPC server handles connections without TLS (plain HTTP)

TODO

Available DUMB-RPC/HTTP calls

  • start
  • stop
  • transactionConfirmed
  • transactionUnconfirmed
  • getRelevantTxids
  • updateBestBlock
  • connectPeer
  • disconnectByNodeId
  • sendPayment
  • addInvoice
  • listPeers
  • getNodeId
  • closeChannelCooperatively
  • closeChannelForce
  • openChannelStep1
  • openChannelStep2
  • listUsableChannels
  • listChannels
  • setRefundAddressScript
  • setFeerate
  • getMaturingBalance
  • getMaturingHeight
  • savenetworkgraph
  • geteventsfundinggenerationready
  • geteventschannelclosed
  • ldkversion
  • help
  • geteventsregistertx
  • geteventsregisteroutput
  • geteventstxbroadcast
  • geteventspaymentsent
  • geteventspaymentpathfailed
  • geteventspaymentreceived
  • geteventspaymentforwarded

License

MIT