Blockstream / greenlight

Build apps using self-custodial lightning nodes in the cloud
https://blockstream.github.io/greenlight/getting-started/
MIT License
109 stars 27 forks source link

Cln version manager #380

Closed ErikDeSmedt closed 5 months ago

ErikDeSmedt commented 6 months ago

I've introduced cln_version_manager.

It is currently very hard to run gl-testing in standalone-mode. One of the dependencies of gl-testing are a wide range of Core Lightning versions. These files are packaged into the docker-file.

I've adapted the gl-testing python-module to download the Core Lightning binaries for the user. It will download them to XDG_CACHE_DIR by default but users can configure their folder.

ErikDeSmedt commented 6 months ago

This PR is ready for review. It includes

It doesn't include

These changes will follow later in a separate PR

ErikDeSmedt commented 6 months ago

Pipelines will execute successfully once I've pulished cln-version-manager on PyPI

ErikDeSmedt commented 5 months ago

This branch introduce cln-version-manager.

To test it you can use clnvm get-all which will download all versions of cln which greenlight requires.

I did not modify gl-testing to use these versions yet. This work will follow in another PR.

cdecker commented 5 months ago

I didn't test this yet (on my phone) but aside from a very minor typo (roup -> group) in d374986720f2e27add75ff524782f80d73976418 this looks great. Not sure the CI lint would even complain about that typo.

cdecker commented 5 months ago

Testing this out it seems eerily quiet. It looks like we need to configure the logging package to print things to stdout otherwise the CLI is completely silent (and I aborted a number of times thinking it might be stuck).

ErikDeSmedt commented 5 months ago

Testing this out it seems eerily quiet. It looks like we need to configure the logging package to print things to stdout otherwise the CLI is completely silent (and I aborted a number of times thinking it might be stuck).

Question: Are you on very crappy internet and is the download of cln taking very long?

When I do clnvm get-all it takes a few second until the first version is downloaded. It outputs the path to lightnignd for all downloaded versions. In total this takes 20 seconds.

/opt/clnvm/928f09a46c707f68c8c5e1385f6a51e10f7b1e57c5cef52f5b73c7d661500af5/v0.10.1/usr/local/bin/lightningd
/opt/clnvm/c323f2e41ffde962ac76b2aeaba3f2360b3aa6481028f11f12f114f408507bfe/v0.10.2/usr/local/bin/lightningd
/opt/clnvm/0f1a49bb8696db44a9ab93d8a226e82b4d3de03c9bae2eb38b750d75d4bcaceb/v0.11.0.1/usr/local/bin/lightningd
/opt/clnvm/b15866b7beea239aaf4e38931fe09ee85bf2e58ad61c2ec79b83bb361364bf97/v0.11.2gl2/usr/local/bin/lightningd
/opt/clnvm/95209242d8ddc4879b959fb5e4594b4d2dcf7bac7227ec7c421ab05019de8633/v0.11.2/usr/local/bin/lightningd
/opt/clnvm/40b6c50babdc74d9fd251816efa46de0c12cac88d72e0c7b02457a8949d2690b/v22.11gl1/usr/local/bin/lightningd
/opt/clnvm/e1a57a8ced59fd92703fad8e34926c014b71ee0c13cc7f863cb18b2ca19a58b9/v23.05gl1/usr/local/bin/lightningd
/opt/clnvm/700e2f4765ba2f8d83ea26e0dc5b47c7176b665c7d6945bdfed2207c90ed9ebd/v23.08gl1/usr/local/bin/lightningd

I prefer to not route all logging through stdout in the default setting. It is quite easy to create simple scripts using the current output because each line has a clear meaning.

cdecker commented 5 months ago

Testing this out it seems eerily quiet. It looks like we need to configure the logging package to print things to stdout otherwise the CLI is completely silent (and I aborted a number of times thinking it might be stuck).

Question: Are you on very crappy internet and is the download of cln taking very long?

When I do clnvm get-all it takes a few second until the first version is downloaded. It outputs the path to lightnignd for all downloaded versions. In total this takes 20 seconds.

/opt/clnvm/928f09a46c707f68c8c5e1385f6a51e10f7b1e57c5cef52f5b73c7d661500af5/v0.10.1/usr/local/bin/lightningd
/opt/clnvm/c323f2e41ffde962ac76b2aeaba3f2360b3aa6481028f11f12f114f408507bfe/v0.10.2/usr/local/bin/lightningd
/opt/clnvm/0f1a49bb8696db44a9ab93d8a226e82b4d3de03c9bae2eb38b750d75d4bcaceb/v0.11.0.1/usr/local/bin/lightningd
/opt/clnvm/b15866b7beea239aaf4e38931fe09ee85bf2e58ad61c2ec79b83bb361364bf97/v0.11.2gl2/usr/local/bin/lightningd
/opt/clnvm/95209242d8ddc4879b959fb5e4594b4d2dcf7bac7227ec7c421ab05019de8633/v0.11.2/usr/local/bin/lightningd
/opt/clnvm/40b6c50babdc74d9fd251816efa46de0c12cac88d72e0c7b02457a8949d2690b/v22.11gl1/usr/local/bin/lightningd
/opt/clnvm/e1a57a8ced59fd92703fad8e34926c014b71ee0c13cc7f863cb18b2ca19a58b9/v23.05gl1/usr/local/bin/lightningd
/opt/clnvm/700e2f4765ba2f8d83ea26e0dc5b47c7176b665c7d6945bdfed2207c90ed9ebd/v23.08gl1/usr/local/bin/lightningd

I prefer to not route all logging through stdout in the default setting. It is quite easy to create simple scripts using the current output because each line has a clear meaning.

Indeed that'll be the issue, hotel speeds from the analog times I guess 😉