Open yzernik opened 2 years ago
@casey Slow tests should be passing now
I tested with the following:
cargo test
cargo test --features slow-tests slow_tests
cargo test --all-features --all
It looks like there are a couple more test failures: https://github.com/agora-org/agora/runs/6696289984?check_suite_focus=true https://github.com/agora-org/agora/runs/6696289797?check_suite_focus=true
Check out the github actions workflow for the tests that run on CI.
A few updates:
ubuntu-latest
is no longer failing, but it's getting cancelled by github actions after a few minutes for some reason.windows-latest
is failing because the cln-rpc
library has a dependency on unix: https://github.com/ElementsProject/lightning/blob/aae5e3d070ee0ab30a865cabe6ba40fc52e72a18/cln-rpc/src/lib.rs#L11-L12
I think that the cln-rpc
library breaks portability with Windows OS.I figured out why the ubuntu-latest
build was getting canceled in the middle. It's because it was configured to "fail-fast" as soon as the Windows build failed. I fixed this by adding the fail-fast: false
config.
Now the ubuntu-latest
build is passing all of the tests but failing on Clippy lint of the generated LND protobuf code. I need to find out how to tell Clippy to ignore the auto-generated code.
@casey Another update:
macos-latest
is passing.ubuntu-latest
is passing.windows-latest
is failing, because the cln-rpc
library is not compatible with Windows.I think it's safe to disable the tests on windows. It's not the end of the world if Core Lightning isn't supported there.
All github actions are now passing!
Very nice! I'm prepping for a BTC++ workshop, so I probably won't be able to look at this until I get back on the 13th of June, but I'll review it then.
I'm slammed with other, much more frivolous projects. (My Bitcoin NFT scheme and a generative art engine.) So no real time to give this a proper review. One thing I was thinking was that, in liu of review, we could merge this into a non-master branch, e.g., a core-lightning
branch, and point to it from the readme. You could point people to the branch and they could build it from source, you could also make changes to the core-lightning
branch without much review (I would just rubber-stamp PRs as long as the tests passed). What do you think?
@casey I have already merged these changes into the master branch of my fork. So maybe just use that instead of the core-lightning
branch in this repo?
I am going to open a new PR to point to my fork of Agora in umbrel-apps, now that they support core-lightning. EmbassyOS also uses core-lightning, so I will also point to my fork in the EmbassyOS wrapper.
I guess it doesn't hurt to have a core-lightning
branch in this repo, unless it confuse people.
It's up to you! It might have better visibility in the main repo, but either way is fine. Definitely open a PR adding a link to your branch from the readme.
Sure. I'll do that!
For the umbrel app, the way they organize apps is that each has a list of other apps as dependencies. So for any lightning app, they package it twice (once for LND and once for core-lightning). For example, RideTheLightning:
So I can leave the existing package the same, pointing to this repo. And for the core-lightning version, point to my fork.
So I can leave the existing package the same, pointing to this repo. And for the core-lightning version, point to my fork.
Perfect, sounds good.
This adds support for core-lightning as a lightning node backend in addition to LND.
The high level changes:
LightningNodeClient
with abstract methods for interacting with a lightning node.LndClient
that implements the trait.CoreLightningClient
that implements the trait.Note: core-lightning does not allow multiple invoices with the same memo/label. I updated the
files.rs
module to append a random UUID to the end of the memo/label when adding invoice to avoid conflicts.