wizardsardine / liana

The missing safety net for your coins
https://wizardsardine.com/liana
BSD 3-Clause "New" or "Revised" License
321 stars 57 forks source link

Remove the hard dependency on a running bitcoind #883

Open darosior opened 10 months ago

darosior commented 10 months ago

I originally implemented lianad with a hard dependency on a running bitcoind: it must be present at startup and if it becomes unreachable for more than X minutes we crash. It made it easier to reason about operations as we could assume it was always present. However there are some advantages in removing this hard dependency:

Cons:

Any thoughts?

pythcoiner commented 10 months ago

some kind related to #672

darosior commented 10 months ago

Yes although we would still need bitcoind. Being able to start without it would only be a hack.

pythcoiner commented 10 months ago

I'm in favor of this as it give ability to use Liana in some kind of offline mode

pythcoiner commented 10 months ago

as an example sparrow uses a a toggle button to turn on/off to the bitcoin backend: image

darosior commented 10 months ago

The user would still be able to access the wallet during IBD. It doesn't appear to be much, but currently the mandatory IBD progress bar before being able to access the wallet really hurts UX.

Actually this is unrelated, this can already be done today right @edouardparis? It's only the poller which doesn't start polling until IBD is done.

darosior commented 10 months ago

If the first startup is actually a user willing to import an existing descriptor, today they would have to wait for IBD and then rescan whereas this makes it possible to load the descriptor and then IBD (removing the need for an additional rescan).

Same here, it's actually what we do already!

darosior commented 10 months ago

First step toward not relying on bitcoind for transaction storage (and instead use our own DB) which is necessary to introduce different Bitcoin backends.

Even for this i'm not sure. We can do this without making a running Bitcoin backend a hard dependency of the software.