lightning-power-users / node-launcher

Easiest Bitcoin Lightning desktop app, for Windows, macOS, and Linux
MIT License
358 stars 67 forks source link

LND desktop notifications #330

Open PierreRochard opened 5 years ago

PierreRochard commented 5 years ago

Every time something interesting happens on the LND node (a new channel, on-chain tx, payment received, routing a payment, etcetera) the user receives a desktop notification

Sosthene00 commented 5 years ago

I'm trying to wrap my head around the logic of the GUI, my first guess it that it could be done by adding more elif condition there: https://github.com/lightning-power-users/node-launcher/blob/165fd6ef4655556dc1129d16590016327d50c418/node_launcher/node_set/lnd/lnd_process.py#L20 For example:

elif 'Channel opened' in line:
            self.notification.emit(
                'New channel opened!',
                'You're ready to send payments',
                QSystemTrayIcon.Information
)

Should I start working in this direction or is there a more elegant/sustainable way to create notifications for this kind of events?

PierreRochard commented 5 years ago

I was thinking that LND gRPC API would be queried in a thread and send notifications from there, but processing log output is a good idea too!

A priori I don't see a more elegant/sustainable way, though maybe one will emerge as the notifications add up. Something to think about to: how to turn off individual notifications

Sosthene00 commented 5 years ago

Yes I'll try this way, but I agree that accumulating elif conditions might become a problem at some point. I'll think about how to turn off notifications

Sosthene00 commented 5 years ago

Do you know where I could find an exhaustive list of the outputs in lnd.log? I can't find it, and by looking at lnd codebase directly I didn't figure it out either

PierreRochard commented 5 years ago

@BobleChinois I looked for that too and did not find one!

Sosthene00 commented 5 years ago

I did more research and noticed LND gRPC server has this: https://github.com/lightningnetwork/lnd/blob/1acd38e48c168b86c291524eb56b8fcdf04a910c/lnrpc/rpc.proto#L1558-L1567

It looks perfect for what we're trying to do, so your idea to use gRPC was probably the best. I'm trying to understand how it works [EDIT] I manage to call it, looks promising, I need to make more tests

Sosthene00 commented 5 years ago

Hi, just to let you know I didn't give up on this, but while spinning up a testnet node dedicated to test this I stumbled upon another LND issue :grimacing: https://github.com/lightningnetwork/lnd/issues/3060

ryan-lingle commented 5 years ago

Is this issue still open / still a good first issue? Looking to contribute in any way.

Sosthene00 commented 5 years ago

I initially got stopped by an issue with lnd (see above), and then got carried away by other stuff recently, so if you want to give it a shot please do because I haven't made any progress since last time I posted