polar icon indicating copy to clipboard operation
polar copied to clipboard

feat(images): add support for Core Lightning v23.08

Open jamaljsr opened this issue 10 months ago • 1 comments

Closes #772

Adds support for Core Lightning v23.08.

⚠️ Draft Status

This PR is not yet fully functional due to the latest release breaking compatibility with the c-lightning-REST plugin which Polar uses. In Core Lightning v23.08, a new clnrest plugin was added and enabled by default. When both of these plugins are enabled, lightningd will fail to start with the error:

2023-09-01T04:12:05.631Z DEBUG   plugin-manager: started(35) /opt/c-lightning-rest/plugin.js
error starting plugin '/usr/local/libexec/c-lightning/plugins/clnrest/clnrest.py': option name 'rest-protocol' is already taken

There is a short-term workaround which is to disable the included clnrest plugin using the flag --disable-plugin=clnrest.py, then the c-lightning-REST plugin will function as it has previously. This will require a new release of Polar in order to make sure this flag is only passed to CLN nodes v23.08 and higher. The downside is that devs using Polar won't be able to use the new REST support.

The long-term solution would be to update Polar to use the new clnrest plugin for it's communication with the lightningd API. I want Polar to continue to support older CLN nodes, so it would still have to be able to use the c-lightning-REST API until v23.05.2 and below are completely phased out. I try to support the last 3-4 more major versions of node implementations, so this could take a year or more. Until that happens, Polar will need to support both REST APIs side-by-side.

I am opening this PR now since some of the work is done. The docker images are pushed to Docker Hub and I am able to get the new CLN release to run in Polar as long as I manually add the --disable-plugin=clnrest.py flag via Advanced Options. It's going to take a bit more work to decide on a path forward then implement the changes necessary.

jamaljsr avatar Sep 01 '23 04:09 jamaljsr