lightning-node-connect
lightning-node-connect copied to clipboard
Expose the RPC litrpc.Proxy.GetInfo via LNC wasm
In Terminal Web, we'd like to get able to get the version of litd that the WASM is connected to. This information is available via the litrpc.Proxy.GetInfo. Unfortunately, when I attempt to call this RPC using make example-server, no response is returned. The WASM doesn't even log that the method is called in the browser console.
I have tried to fix this by adding litrpc.RegisterProxyJSONCallbacks to jsoncallbacks.go but this results in the error
rpc error: code = Unimplemented desc = unknown service /litrpc.Proxy/GetInfo
It looks like this sub-server is being blocked by litd in rpc_proxy.go. I'm not sure what code need to change to unblock just this GetInfo RPC.
I'm wondering if it would make more sense to include version numbers in the subserver RPC instead of exposing GetInfo?
It looks like GetInfo only returns version information for litd:
If the subserver status server returned version information for all subservers it would be a lot more useful for feature detection for loop, pool, etc. not just lit
The issue is on the LiT side. Currently we dont expose Proxy calls over LNC since it would also expose things like Stop. So either we just say we are ok with the user being able to call Stop over LNC if they have an admin session in which case this is an easy fix on the LiT side. Otherwise we should consider splitting up the Proxy service a bit.
If the subserver status server returned version information for all subservers it would be a lot more useful for feature detection for loop, pool, etc. not just lit
I think these are already queryable directly though? Pool, Loop and Taproot-assets all have a GetInfo call. So those can just be called directly. So the only TODO here imo is adding a GetInfo to faraday
Thanks for the additional context here @ellemouton. I also agree that Stop shouldn't be exposed over LNC. We'd still like to have a way to get the litd version in addition to faraday so I'd like to add that as a TODO as well.