Run gateway as Core-Lightning plugin#174
Conversation
dc51809 to
591353a
Compare
jkitman
left a comment
There was a problem hiding this comment.
Regarding the integration tests, does this change any behavior that would need testing?
If not, perhaps you can just modify the integrationtests/README.md so that users can run the LN plugin locally when testing with the real fixtures.
Additionally scripts/latencytest.sh probably needs a small update.
This doesn't change any behavior W.R.T. existing integration tests like
One tricky thing here is that we'd need to pass the Another tricky thing is that the plugin would really need to be reloadable per-test, because the federation details might change every test. I think the best option here would be to add a This could happen in a follow-on PR.
I didn't even know about latencytest.sh! Will do. |
Perhaps it's sufficient that is handled via the shell scripts, although I guess we need to expose a new CLI command for that.
Ah, yes the current tests only use an in-memory DB, although I was meaning to enable a real DB for when running with the real fixtures.
Agreed, tearing down the LN fixtures and funding a channel would make the tests take forever, much faster just to reload the configs. |
4761790 to
2aaf4c5
Compare
aff61c9 to
65d37ef
Compare
- mint-clint-cli gets command to generate invoices - Gateway plugin automatically generates gateway.json if it isn't there. Removed gw_configgen bin script. - Add route hint to invoices we generate so HTLCs reach gateway - Gateway uses channels to manage concurrency between webserver, plugin and background fetching - Had to add more features to tracing dependency for the gateway crate because Core Lightning communicates to plugins via stdin/ stdout. Logging is routed via JSON-RPC. These feature flags helped make that work. - Move cln-rpc to git dependency
Just went throgh everyting with Justin, will fix some minor annoyances in follow up PRs
With this PR user can generate a lightning invoice and get paid in via lightning gateway.
Still need to:
cln-pluginto allow plugin CLI arguments (minimint-cfgin our case) that don't have default values Plugin config options with no defaults ElementsProject/lightning#5369.client.jsonand it was never used so that didn't matter. So I just made it required for this PR because all the data structures assume the gateway is always there. Make lightning gateway optional #200 makes it actually optional but that's a deeper change so I separated it.