1072 Commits

Author SHA1 Message Date
edouard
320a6d700c loader: try to stop bitcoind if connected 2023-08-31 15:03:23 +02:00
edouard
29b20972c5
Merge #660: fix loader: do not start bitcoind if one is running
9b154c79681a0714951092069e68dd32f527a789 fix loader: do not start bitcoind if one is running (edouard)

Pull request description:

ACKs for top commit:
  edouardparis:
    Self-ACK 9b154c79681a0714951092069e68dd32f527a789

Tree-SHA512: 13831a16d872f4fe3a83bad7bf1f0ab92e8fb32cae74b067eadd7608adf36f491e8e13572bf323927d6c537c57e77069f0fd2c9385b141d9b1cf00f5e02a538c
2023-08-31 14:16:13 +02:00
edouard
9b154c7968 fix loader: do not start bitcoind if one is running 2023-08-31 14:05:07 +02:00
Antoine Poinsot
927b031301
Merge #658: Change gui config and gui internal bitcoind directory architecture
bc87839e52fd64102ea24621e27cfcd26a32efd0 Gui config: start_internal_bitcoind (edouard)
d700f8a3cf6cf0f6b825e379d6ce10dd79f0ecf7 Add parent directory to bitcoind exe and datadir (edouard)

Pull request description:

  1. added the bitcoind parent directory
  ```
  .liana/bitcoind
  ├── bitcoin-25.0
  │   └── bin
  └── datadir
      ├── anchors.dat
      ├── banlist.json
      ├── bitcoin.conf
      ├── blocks
      ├── chainstate
      ├── debug.log
      ├── fee_estimates.dat
      ├── mempool.dat
      ├── peers.dat
      └── settings.json
  ```

  2. change gui config to have `start_internal_bitcoind` : `bool`

ACKs for top commit:
  jp1ac4:
    ACK bc87839e52

Tree-SHA512: 76a798cad170112a07d19336f1aafce16052b1711b193c5783a83c0c8e0894af0e0578a75481483a07bf659e174329f395b9d9243d0ec81684357d92ea90d3a0
2023-08-31 13:07:55 +02:00
edouard
bc87839e52 Gui config: start_internal_bitcoind
Installer will install bitcoind in a directory
that will have always the same relative path to
the liana datadir.
GUI needs then only a flag "start_internal_bitcoind" set to true
to check the conventional path of the downloaded bitcoind exe
and start the internal bitcoind
2023-08-31 12:23:29 +02:00
edouard
d700f8a3cf Add parent directory to bitcoind exe and datadir
.liana/bitcoind
├── bitcoin-25.0
│   └── bin
└── datadir
    ├── anchors.dat
    ├── banlist.json
    ├── bitcoin.conf
    ├── blocks
    ├── chainstate
    ├── debug.log
    ├── fee_estimates.dat
    ├── mempool.dat
    ├── peers.dat
    └── settings.json
2023-08-31 11:56:22 +02:00
Antoine Poinsot
d5d2a7626f
Merge #648: tests: fix a small race in the rescan_and_recover test
9685920102b6f8340aeec5493b07e55ae9628398 tests: fix a small race in the rescan_and_recover test (Antoine Poinsot)

Pull request description:

ACKs for top commit:
  darosior:
    self-ACK 9685920102b6f8340aeec5493b07e55ae9628398 -- trivial, tested locally by running many instances of the test in parallel

Tree-SHA512: b384eeac6eba7416a9316b271c4ace26d933f9bfb85a6f4cc59133937cafda0baa9086926fad8ba8c262a1edaf3479b1a6db190da339fd8ff78820aa46b90656
2023-08-31 11:19:20 +02:00
Antoine Poinsot
1bdc6e9fb4
Merge #657: cleanup bitcoind process management
6d8c9e437f6cc36d479f4be33779834b2180507d gui: forbid edit bitcoind client config if internal (edouard)
bfe73fad18ef3980af5821b6c899e6f3b7ac1918 Add bitcoind logs to loader (edouard)
4c4efebe5bc6560a82bfc4f348ed2663e726a66d gui: encapsulate bitcoind process management (edouard)
d4cf9e3466c40ae74a8099eb4b7b59474ccf2936 fix: move structs next to their methods (edouard)
c756969e7293585471cef64ae4bbe8f203c4866c cleanup bitcoind module dep to app config (edouard)

Pull request description:

  - Small rearrangements of the bitcoind module.
  - Add a wrapper around the bitcoind child process and share it to the states:
    Installer -> loader -> app
  - It makes it more easy to share the information if the gui started a bitcoind process, no need anymore to check multiple configuration files, just answer the question: do we have a child process started ?

ACKs for top commit:
  darosior:
    ACK 6d8c9e437f6cc36d479f4be33779834b2180507d

Tree-SHA512: dd3612d40d15ebde094150abc1cfbf4a54dd1f517fbdeed51934280b0b36e4a4871d3bfe9f5b98617746b042352a570b4be237c3a2b71f74bb636ece4a027208
2023-08-31 11:06:40 +02:00
edouard
6d8c9e437f gui: forbid edit bitcoind client config if internal 2023-08-31 09:45:47 +02:00
edouard
bfe73fad18 Add bitcoind logs to loader 2023-08-31 09:09:54 +02:00
edouard
4c4efebe5b gui: encapsulate bitcoind process management
To know and manage the fact that gui or installer
started a bitcoind sub process, the process child
is wrapped and passed by the different state of the app.
2023-08-31 08:29:50 +02:00
edouard
d4cf9e3466 fix: move structs next to their methods 2023-08-30 18:52:34 +02:00
edouard
c756969e72 cleanup bitcoind module dep to app config 2023-08-30 18:52:34 +02:00
edouard
3704995906
Merge #630: installer: Download and install bitcoind from GUI installer
bf67f94f56d6ae28973c27f0a8999ecd1eab7398 installer: download and install bitcoind (jp1ac4)
d507d5760ac051cf264c95b4fdef9ced27dde9cd gui: add subscription to Step trait (jp1ac4)
ae23fbc81ddc903183ce971afa5597f95e26b82a gui: add download module (jp1ac4)
b3bc9435ceccf40cca0f8be1c107e9bbf9d3bb9e gui: add dependencies to download and install bitcoind (jp1ac4)

Pull request description:

  This is a follow-up PR to #592 as part of #570 to download and install bitcoind.

  I'm creating this draft PR now to facilitate discussion. Once #592 has been merged, I'll rebase on master.

ACKs for top commit:
  darosior:
    ACK bf67f94f56d6ae28973c27f0a8999ecd1eab7398 -- modulo a few changes we'll address in follow-ups. I've not reviewed the code but significantly tested it on both Windows and Linux.
  edouardparis:
    ACK bf67f94f56d6ae28973c27f0a8999ecd1eab7398

Tree-SHA512: bda4b8bfbb3a59917d9ea60c074c2b0021229213240bebc4bd176f9909c62ab323d0a8d4becffbac192f29fad92adb81b2da0bc9b37c8eea1654c26ec6699077
2023-08-30 18:42:29 +02:00
Antoine Poinsot
ddb530374e
Merge #656: lib: implement a superior workaround for the watchonly wallet on Windows
5680ad27ecce8409d582ebf834bdecb3650b9233 lib: on Windows, migrate the watchonly wallet from bitcoind datadir (Antoine Poinsot)
c9d86f1c75be693e796591be9f1f468687728600 lib: implement a superior workaround for the watchonly wallet on Windows (Antoine Poinsot)

Pull request description:

  See the added comment for the details. No need to store the watchonly wallet under bitcoind's datadir anymore. 🎉 🎉

  I've noticed this while working on fixing #630 on Windows which failed for the same root reason as why the watchonly wallet path didn't work on Windows.

  Fixes #653.

ACKs for top commit:
  darosior:
    ACK 5680ad27ecce8409d582ebf834bdecb3650b9233 -- tested it on Windows
  edouardparis:
    utACK 5680ad27ecce8409d582ebf834bdecb3650b9233

Tree-SHA512: 52158340097e286d882e6503d8bc1fbd4653729c08055cd2609a120aabc409ed38cbd40c7cb0c3a6cb9c67f163f8084fd886daa979e56ccf6223eb51773500ef
2023-08-30 18:36:43 +02:00
Antoine Poinsot
5680ad27ec
lib: on Windows, migrate the watchonly wallet from bitcoind datadir
We used to store it there, if it's not within our own datadir copy it
from where it would have been stored by Liana v1.

Note we don't conditionally compile this on Windows so the codepath can
be tested with a functional test.
2023-08-30 17:51:53 +02:00
jp1ac4
bf67f94f56
installer: download and install bitcoind 2023-08-30 16:01:43 +01:00
jp1ac4
d507d5760a
gui: add subscription to Step trait 2023-08-30 16:01:43 +01:00
jp1ac4
ae23fbc81d
gui: add download module
This is based on https://github.com/iced-rs/iced/blob/master/examples/download_progress/src/download.rs.
2023-08-30 16:01:30 +01:00
jp1ac4
b3bc9435ce
gui: add dependencies to download and install bitcoind 2023-08-30 15:59:25 +01:00
Antoine Poinsot
c9d86f1c75
lib: implement a superior workaround for the watchonly wallet on Windows
See the added comment for the details. No need to store the watchonly
wallet under bitcoind's datadir anymore. 🎉 🎉
2023-08-30 16:04:44 +02:00
edouard
52f3ac6a09
Merge #655: check imported descriptor network
7ad12c50db52309c5a22e7fe52ca2e3018f8c178 check imported descriptor network (edouard)

Pull request description:

  close #337

ACKs for top commit:
  edouardparis:
    Self-ACK 7ad12c50db52309c5a22e7fe52ca2e3018f8c178

Tree-SHA512: d760540fedbdfc4eff4ff8c34305a6c98d5f9817c981289903e11f7c536fb0dedf490f1eb72ccaa392f02db8b28f8c19f9edc386b5cb8afbaffa0e4aa59c49f3
2023-08-30 15:56:54 +02:00
edouard
7ad12c50db check imported descriptor network
close #337
2023-08-30 14:21:45 +02:00
Antoine Poinsot
19e5e45918
Merge #652: gui: update lianad (again)
441800d0954db3cab90eeaa9669703d50c25236e gui: update lianad (Antoine Poinsot)

Pull request description:

ACKs for top commit:
  darosior:
    self-ACK 441800d0954db3cab90eeaa9669703d50c25236e

Tree-SHA512: 23b81451510c7f3aca3387d0b243263273972f4f71767146c9e4732d2ab0616a076aaeeb9146521380bd94aa4587c819b837f0317005e9e46be3ce5a8716fb38
2023-08-29 20:52:49 +02:00
Antoine Poinsot
441800d095
gui: update lianad 2023-08-29 20:51:02 +02:00
Antoine Poinsot
85d470dd8d
Merge #651: lib: windows: don't unload the wo wallet if not loaded
34f3946fc814bf5c915be131dd3092b21f4f48e1 lib: windows: don't unload the wo wallet if not loaded (Antoine Poinsot)

Pull request description:

ACKs for top commit:
  darosior:
    self-ACK 34f3946fc814bf5c915be131dd3092b21f4f48e1

Tree-SHA512: ef7b5a15ecc18b7ee2ecb286569742f6adf10e0487f94787cc8fc1842516b5d9e969f8cda76ac51897c3c934ed3357c89ac1eae2bc03512a69e832e998ef99ea
2023-08-29 20:49:56 +02:00
Antoine Poinsot
34f3946fc8
lib: windows: don't unload the wo wallet if not loaded 2023-08-29 20:43:53 +02:00
Antoine Poinsot
26d57502ae
Merge #650: gui: adapt to latest change in lianad API
3250d8dc879f48959ae1827e2b0057361e1feef2 gui: adapt to latest change in lianad API (Antoine Poinsot)

Pull request description:

ACKs for top commit:
  darosior:
    self-ACK 3250d8d

Tree-SHA512: 7c66870dadd125c0159c12cbd9f1b1ec82d6a797fcfa811d53cd4c134cc70ac5bd12f95f58a1c81c3e4c89cd89ba6e18c4456d784c2a9861ebaad79eccc5aaf3
2023-08-29 19:16:51 +02:00
Antoine Poinsot
3250d8dc87
gui: adapt to latest change in lianad API 2023-08-29 19:11:30 +02:00
Antoine Poinsot
339cf5d8fa
Merge #649: gui: update lianad
b195e3252e4ebdae797537e7f5a03dad32959f08 gui: update lianad (Antoine Poinsot)

Pull request description:

  After #645.

ACKs for top commit:
  darosior:
    ACK b195e3252e4ebdae797537e7f5a03dad32959f08

Tree-SHA512: 43bcd371f13ecbc56a48acb4c5c164a091b598c1090c453540103bf09a6d28b3cee104cd66626f84dd82e5c93532fef9b816e8a465cc36bf93f0791f89e4cbb7
2023-08-29 18:56:16 +02:00
Antoine Poinsot
b195e3252e
gui: update lianad 2023-08-29 18:54:36 +02:00
Antoine Poinsot
9685920102
tests: fix a small race in the rescan_and_recover test 2023-08-29 18:33:08 +02:00
Antoine Poinsot
ea3804ac93
Merge #645: bitcoind: use the node client to make node requests
9255b5ed941f04e56de4f32251fbe9b3d692baaa bitcoind: use the node client to make node requests (Antoine Poinsot)

Pull request description:

  Props to Kevin for finding this rather significant bug. We should really be catching this type of bugs with code review..

ACKs for top commit:
  darosior:
    Ironical self-ACK 9255b5ed941f04e56de4f32251fbe9b3d692baaa

Tree-SHA512: da7b54e73201ce7f6003b7c939a576a33f6b3ea7234370b976dc9a6525cb3a18a10d160d60932b44e445fbb6057d07efde283fcfad1974c6734b5b4d2d0868de
2023-08-29 17:39:03 +02:00
Antoine Poinsot
9255b5ed94
bitcoind: use the node client to make node requests 2023-08-29 17:34:15 +02:00
Antoine Poinsot
d5c98aaa3a
Merge #643: installer: remove legacy warning on incompatible descriptor.
f9b2ff1413da03ad3245061400ba7f3e7e865195 installer: remove legacy warning on incompatible descriptor. (Antoine Poinsot)

Pull request description:

  Fixes #613.

ACKs for top commit:
  darosior:
    self-ACK f9b2ff1413da03ad3245061400ba7f3e7e865195 -- trivial.

Tree-SHA512: a2239c82704ebb7065e60b80881560123a28915780260269212563799a73f76b1cbac3f88a89832a6557d047e30850a679fa4ef3aa560010f1a5d375745cbbb9
2023-08-29 17:04:02 +02:00
Antoine Poinsot
f9b2ff1413
installer: remove legacy warning on incompatible descriptor.
Fixes #613.
2023-08-29 16:26:54 +02:00
Antoine Poinsot
c35495a53a
Merge #637: installer: move bitcoind steps to own module
bc35cdaad8e18b0942b68de1d3a054232b2f0db1 installer: move bitcoind steps to own module (jp1ac4)

Pull request description:

  This was originally part of #630, but will be easier to see changes by moving to its own PR.

  It simply moves bitcoind-related content of `step/mod.rs` to its own module.

ACKs for top commit:
  darosior:
    ACK bc35cdaad8e18b0942b68de1d3a054232b2f0db1 -- move-only + adapting includes

Tree-SHA512: f3526c7d1d5325f1057f77dac9197d3548a796d860f8612577016138ac47dfab1f8a04b4063e74b69b337c6202999adfecb30c4a7e139e1419416a6906084b33
2023-08-28 17:11:45 +02:00
Antoine Poinsot
1a4868bb89
Merge #634: fix gui loader: stop bitcoind if running after close request
eb10cdacd6ed42c7294f454da62381e3e91269dc fix loader: remove duplicate logs with bitcoind module (edouard)
a50761afc010ea420cb3d679e15b3d29dde697ea fix gui loader: stop bitcoind if running after close request (edouard)

Pull request description:

  close #631

ACKs for top commit:
  darosior:
    ACK eb10cdacd6ed42c7294f454da62381e3e91269dc

Tree-SHA512: 3fcf5c81e377c7440c3dd1f442edcf6f6e3a61905f5fbdf78e42b9c2c6ce611460399e531e4ec7369ffc46c3c658f3215c072c265c6e49a77ab7cd15ef8c2f5c
2023-08-28 16:39:08 +02:00
Antoine Poinsot
a0c8adbfcc
Merge #609: Add more bitcoind-related setup logging
5c87937d4676354f19357e17b36655eb4853dbf9 Add more bitcoind-related setup logging (Antoine Poinsot)

Pull request description:

  At startup it sometimes appear we may be hanging when setting up bitcoind. Add more logging to give more information about what's taking long to setup (for instance, loading the watchonly wallet).

  Related to https://github.com/wizardsardine/liana/issues/475.

ACKs for top commit:
  darosior:
    ACK 5c87937d4676354f19357e17b36655eb4853dbf9

Tree-SHA512: 75c553cabf545d57a5fc2d251e5b4cd880a931a408c6f1b1052067f2ccc8e0728ad779f30de5a88c2566f9e67ac085b713393ee4fa193331e49c3a8e6112ecc8
2023-08-28 16:35:51 +02:00
jp1ac4
bc35cdaad8
installer: move bitcoind steps to own module 2023-08-28 15:00:53 +01:00
Antoine Poinsot
cf17cc2cd6
Merge #605: Add labels support to lianad
204c160c4d01e5d12130a89347923e8d7d4f0f57 tests: test the RPC interface for managing labels (Antoine Poinsot)
bf3eb33900d52cd43e7c7cae2e42dc2075a6b249 lianad api: expose coin address (edouard)
7338e6f988a553d022903e7fd478e134be905762 Add labels to lianad (edouard)

Pull request description:

ACKs for top commit:
  darosior:
    ACK 204c160c4d01e5d12130a89347923e8d7d4f0f57

Tree-SHA512: 24ff9ea9ee5df0458534dd28a40d485f8bf9e110463faf78450f48ffbd18137f74f73aecf8234021d03a374879a6dd1c7188f162d81d7539cd790845a2855a1f
2023-08-28 14:37:07 +02:00
Antoine Poinsot
f8ca1dc212
Merge #636: doc: polish the guide on restoring a Liana wallet backup with Bitcoin Core
b5b96b95937ef914aed237b7829a71ff3672c3f4 README: mention the guide on recovering a backup on Core (Antoine Poinsot)
8c7c7a71353a6054f80eeb5ce4be0f946cec89a5 doc: polish the Bitcoin Core recovery document (Antoine Poinsot)

Pull request description:

ACKs for top commit:
  darosior:
    self-ACK b5b96b95937ef914aed237b7829a71ff3672c3f4 -- it's only doc

Tree-SHA512: b51b8e0f2eac896872ca2380cf0e3f8b4e6e518232e5cbc57dbeaaa517c56dfadfa6d6165a27704ecfda0ffe6bdf5a683e1cfd15b94dedcd8480c3c58865ed51
2023-08-28 13:16:15 +02:00
Antoine Poinsot
204c160c4d tests: test the RPC interface for managing labels 2023-08-28 13:14:21 +02:00
edouard
bf3eb33900 lianad api: expose coin address 2023-08-28 13:14:21 +02:00
edouard
7338e6f988 Add labels to lianad 2023-08-28 13:14:21 +02:00
Antoine Poinsot
b5b96b9593
README: mention the guide on recovering a backup on Core 2023-08-28 13:13:26 +02:00
Antoine Poinsot
8c7c7a7135
doc: polish the Bitcoin Core recovery document 2023-08-28 13:11:53 +02:00
edouard
eb10cdacd6 fix loader: remove duplicate logs with bitcoind module 2023-08-28 12:00:07 +02:00
Antoine Poinsot
7ba95de8d2
Merge #619: Recover on Bitcoin Core
fcfad2de348a7d8b362631cf787599c284242aad import descriptor w/o replacing hardened identifier (pythcoiner)
eb1e0131222893981ce58965881c62c847d54372 recover walkthrough (pythcoiner)

Pull request description:

  xref #375

ACKs for top commit:
  darosior:
    ACK fcfad2de348a7d8b362631cf787599c284242aad. I'll have a second pass for the syntax and expliciting a couple things. Thanks!

Tree-SHA512: c2713d0db8240b844c3a4cf3d97044a5846bba903c1209f08ce903475525d5145b9555fa693eed326e3d4a8e85577922adfb366664ec162303cb0bf3a4aae2a0
2023-08-28 10:19:38 +02:00
pythcoiner
fcfad2de34 import descriptor w/o replacing hardened identifier 2023-08-28 07:31:45 +02:00