404 Commits

Author SHA1 Message Date
Antoine Poinsot
ab9fff4395
Remove clippy.toml
I had put it (following rust-bitcoin) because of the MSRV, but it looks
like clippy doesn't care.
2022-12-16 11:01:34 +01:00
Antoine Poinsot
d3b89add9a
daemon: apply clippy 1.66.0 fixes 2022-12-16 11:01:23 +01:00
Antoine Poinsot
3ac9f39aa1
Merge #224: Windows watchonly wallet path workaround
48e4909e7ad83c21f788802953327f8041a69b7d daemon: store the watchonly wallet file in bitcoind's datadir on Windows (Antoine Poinsot)

Pull request description:

  Turns out that providing an absolute path to bitcoind when loading a wallet on Windows results in surprising behaviour.

ACKs for top commit:
  edouardparis:
    ACK 48e4909e7ad83c21f788802953327f8041a69b7d

Tree-SHA512: b432460d529cf5b879361452af1e7947ec877c293f8a8a2e1740975a2957c0cdb288d1f9a1fa07e56193c7c65edf1f985d9e24dd3412f2bfc10922df239de766
2022-12-15 19:16:37 +01:00
Antoine Poinsot
dd6c5baf2d
Merge #212: Windows reproducible build
89d2e67625b1308d621af0fe15081588459e22b8 Windows reproducible builds using Docker (Antoine Poinsot)
43ece74cf747e278a1ce0b96203a4bc958d1cb12 gui: target 'windows' subsystem for Windows targets (Antoine Poinsot)

Pull request description:

  Using Docker for now. I'll add documentation once i've figured out macOS.

ACKs for top commit:
  darosior:
    Cool. ACK 89d2e67625b1308d621af0fe15081588459e22b8

Tree-SHA512: 74cf8b5184fbf1fe64bccdf5e7a0f856bf5890e61559fd759485af6fa9bd4ef3430d4c010748a8cf97ca0d9086f49e93d1bb90899610fd98638bdd8c01f33819
2022-12-15 19:15:59 +01:00
edouard
5117b8dc44
Merge #228: fix recovery state coins filtering
192072ea257ae50e6c90bda00677b5f07ca9ada9 fix recovery state coins filtering (edouard)

Pull request description:

  Recoverable coins are coins that recovery
  path is available *next* block

ACKs for top commit:
  darosior:
    Not familiar with this code, but it appears it now check whether the timelock will be mature in one block or less. If that is the case then it is consistent with the behaviour of the daemon. utACK 192072ea257ae50e6c90bda00677b5f07ca9ada9.
  edouardparis:
    ACK 192072ea257ae50e6c90bda00677b5f07ca9ada9

Tree-SHA512: 0bf5f39fcf393a16667f498d851a3cd7dd6b0831696db05c27363b6f9d5006225afc919d6a6c4d3992cd3d3ce702bc5a7e0a7e57d9f21234649237ee172f1f2d
2022-12-15 15:18:06 +01:00
edouard
192072ea25 fix recovery state coins filtering
Recoverable coins are coins that recovery
path is available *next* block
2022-12-15 12:50:39 +01:00
Antoine Poinsot
440a4383c4
Merge #222: Minisafed -> lianad
733b1240bdffa6bb740c3bc6483a4849b62bf6ef Update CONTRIBUTING.md (Kevin Loaec)

Pull request description:

ACKs for top commit:
  darosior:
    Good catch. Thanks. ACK 733b1240bdffa6bb740c3bc6483a4849b62bf6ef.

Tree-SHA512: 102d2b925525c3c3b7b0272efe500fb230926540a5efd22425bf0a4d7abe9b1ccdd73dd82fe97dc39d47ed41625138902ebf4be27e2cce4e32128b9f648c0c2a
2022-12-14 18:36:19 +01:00
Antoine Poinsot
3be64f4cd5
Merge #227: Decrease threshold of the bitcoind sync progress
030bfadaf7ef5e88500f6f64ea814d3656b07fba bitcoind: decrease the sync progress roundup threshold (Antoine Poinsot)
4560bc9ed2e41e81797cadfdecb5a97a6d351850 bitcoind: move roundup_progress() to utils and unit test it (Antoine Poinsot)

Pull request description:

  Part of #217.

ACKs for top commit:
  darosior:
    ACK 030bfadaf7ef5e88500f6f64ea814d3656b07fba

Tree-SHA512: 253eaaa7a2dfad34858bcb54e9d001ac4f0f5037646075f80db1bf2259f8b2bcda002e8bf19f5d06aa0959d62b1a770df9fc2eba8454b3545734ee27b36234e3
2022-12-14 18:35:45 +01:00
Antoine Poinsot
48e4909e7a
daemon: store the watchonly wallet file in bitcoind's datadir on Windows 2022-12-14 18:32:37 +01:00
Antoine Poinsot
87fac3bcea
Merge #221: just put the whole gpg key
52341db41d719f7cbb224d9164593f5f2992eae7 just put the whole gpg key (Kevin Loaec)

Pull request description:

  I'm quite sure it does the check for you. So i also removed the extra comment. If i'm doing something wrong plz educate me :D

ACKs for top commit:
  darosior:
    I wouldn't be surprised if gpg was doing something surprising like transforming the key into a fingerprint before pulling from the keyserver. On the other hand it's the only bit of additional information re: checking GPG signatures in this document so being consistent is probably better. ACK 52341db41d719f7cbb224d9164593f5f2992eae7

Tree-SHA512: 95cadf5a6d93b63dbf7072cc61129feb2d5a229442ba6a4eaa6f741228d5404b929ba262b3550759edef230baa3aa09e469017362e37103de0a6eed5e4331a90
2022-12-14 18:31:32 +01:00
Antoine Poinsot
53d64963e8
Merge #220: Made it more user friendly. Also, ARCH <3
3388ab9140857b2a715ab95bb69b30754dd60e0b Update doc/TRY.md (Kevin Loaec)
e327104a0f45cf1b994cb85b9f806e54b160ab17 Update doc/TRY.md (Kevin Loaec)
d24bf432378b738df23d878f748bf0f9ed6ed6f4 Update TRY.md (Kevin Loaec)
7ae4992d8858b6083ce2b92665b92ace9b40b6e4 Update doc/TRY.md (Kevin Loaec)
f6e143769590c4b3b32060e2c966080d10fcc325 Made it more user friendly. Also, ARCH <3 (Kevin Loaec)

Pull request description:

  Replaced the confusing Recovery section with a detailed Ian Coleman keygen.

ACKs for top commit:
  darosior:
    ACK 3388ab9140857b2a715ab95bb69b30754dd60e0b

Tree-SHA512: d3a3b628d6f3ffe3b7485188a9cd278f98ad66ea32e9798388146995ff02ded7e50315a8e61d74c691e8d50f87391adefd39aa87a21c7135797a17fe666f7c1a
2022-12-14 18:31:20 +01:00
Antoine Poinsot
e85d8d73c1
Merge #219: Wording, phrasing, general update.
b20b98677e7b675e93b3a13d7c4bf37952698654 Update README.md (Kevin Loaec)
3bc1700880aaca859c9ff419aca0a2048134d28e Update README.md (Kevin Loaec)
95b8c8d3e0650002aceec0ecfb8672be1f6cdb58 Wording, phrasing, general update. (Kevin Loaec)

Pull request description:

ACKs for top commit:
  darosior:
    ACK b20b98677e7b675e93b3a13d7c4bf37952698654

Tree-SHA512: 42251028970ee31aa8e971675a6220184727f1fd34b6e580e239944681b2758dbceb0b00ff1cbdedb3e13cf635ec2a3dadf5e773d50327fb0d4209f204c241c1
2022-12-14 18:31:07 +01:00
Antoine Poinsot
89d2e67625
Windows reproducible builds using Docker 2022-12-14 18:17:56 +01:00
Antoine Poinsot
43ece74cf7
gui: target 'windows' subsystem for Windows targets 2022-12-14 18:17:31 +01:00
Kevin Loaec
3388ab9140
Update doc/TRY.md
Co-authored-by: Antoine Poinsot <darosior@protonmail.com>
2022-12-14 15:46:02 -01:00
Kevin Loaec
e327104a0f
Update doc/TRY.md
Co-authored-by: Antoine Poinsot <darosior@protonmail.com>
2022-12-14 15:45:20 -01:00
Kevin Loaec
d24bf43237
Update TRY.md 2022-12-14 15:43:33 -01:00
Kevin Loaec
7ae4992d88
Update doc/TRY.md
Co-authored-by: Antoine Poinsot <darosior@protonmail.com>
2022-12-14 15:28:15 -01:00
Antoine Poinsot
030bfadaf7
bitcoind: decrease the sync progress roundup threshold 2022-12-14 16:51:17 +01:00
Antoine Poinsot
4560bc9ed2
bitcoind: move roundup_progress() to utils and unit test it 2022-12-14 16:51:16 +01:00
Kevin Loaec
b20b98677e
Update README.md 2022-12-14 14:45:17 -01:00
Kevin Loaec
3bc1700880
Update README.md
Co-authored-by: Antoine Poinsot <darosior@protonmail.com>
2022-12-14 14:39:55 -01:00
edouard
88c807d599
Merge #223: Gui add launcher
63be34b3d887d0d39f861b6ae46996d64a245b18 Add confirm network step to gui (edouard)

Pull request description:

ACKs for top commit:
  edouardparis:
    Self-ACK 63be34b3d887d0d39f861b6ae46996d64a245b18

Tree-SHA512: 5952af35c6559ab91aeed330973dd2496a35d246c18d87266f81abb65effcfc4da11005c1e15ab7923d4f4db3709079987b0c3e527ca7611c244737ea8f10505
2022-12-14 12:28:32 +01:00
edouard
63be34b3d8 Add confirm network step to gui
User is asked which network to start with.
This is a required step in case the user
start the software without a console and
can not set himself the network or launch
the install for another non existing network.
2022-12-14 11:55:13 +01:00
edouard
a4299877eb
Merge #205: gui: add recovery feature
f43d99f0fbd851d9817b3668b26953f81c77c1f9 gui: add panel recovery (edouard)
f2facdf1641eaa0241201dee23e13dec63e534cc gui: add create_recovery command to client (edouard)
f4afed4d6a14ad9ea515a69ebf0c584106423075 bump liana master (edouard)

Pull request description:

  After #182, this fixes #180.

ACKs for top commit:
  edouardparis:
    Self-ACK f43d99f0fbd851d9817b3668b26953f81c77c1f9

Tree-SHA512: 49fa2582b5ef405b3ac79ce621792918afe00b0f6fd64bce626f84c11fc97c2b96459f3daf424e625eda31842f85982b0bf76da71afd36bd848e9a4d8fe96c27
2022-12-14 11:38:07 +01:00
edouard
f43d99f0fb gui: add panel recovery 2022-12-14 09:21:07 +01:00
edouard
f2facdf164 gui: add create_recovery command to client 2022-12-14 09:21:07 +01:00
edouard
f4afed4d6a bump liana master 2022-12-14 09:21:07 +01:00
Kevin Loaec
733b1240bd
Update CONTRIBUTING.md 2022-12-13 20:21:39 -01:00
Kevin Loaec
52341db41d
just put the whole gpg key
I'm quite sure it does the check for you. So i also removed the extra comment. If i'm doing something wrong plz educate me :D
2022-12-13 20:17:20 -01:00
Kevin Loaec
f6e1437695
Made it more user friendly. Also, ARCH <3
Replaced the confusing Recovery section with a detailed Ian Coleman keygen.
2022-12-13 20:09:30 -01:00
Kevin Loaec
95b8c8d3e0
Wording, phrasing, general update. 2022-12-13 18:50:19 -01:00
Antoine Poinsot
ad1f0e20b1
Merge #182: Recovery command to sweep "expired" coins
ba994ff8ff01d04fd31ed77cf7f66e0862e68e17 commands: do not underestimate the size of created transactions (Antoine Poinsot)
46a94d6c8eb144484a4b0df2ddbd48b32d4d096f qa: test recovery 'sweep' transaction creation (Antoine Poinsot)
3b5cbd5122fa53d0247e82dd7fc703b5d0a4bae3 qa: introduce a sign_and_broadcast utility (Antoine Poinsot)
d362885b85107b616447899d5eaaa5ba1b55c170 qa: record the recovery xpub too (Antoine Poinsot)
a69fb625ea3b8dfbfa1bf384e001f167fd04ff86 qa: use a CSV of 10 for recovery (Antoine Poinsot)
a78f46fa2fc5337c51d1eaa6ac6bbee04cfdf437 [refactoring] jsonrpc: sort command names alphabetically (Antoine Poinsot)
c09ae3f87bc8bb2391d88d1a718b35d4a6c568fa commands, jsonrpc: add a new 'createrecovery' command (Antoine Poinsot)
3d5d0134b4b5bc06910a89d23def36de5b548c30 commands: fix the capacity of input vectors in create_spend (Antoine Poinsot)
f2312593da8b27c6c6a69c7b0463959369c5acb6 commands: check for dust outputs in the PSBT sanity checks (Antoine Poinsot)
9f23161a53ad32d03d4ec464c48a819862dbf3e5 commands: correct the max feerate value (Antoine Poinsot)
54410cd9c435e1e6228b985d78e55b357c2368b8 database: allow to query coins by their spending status (Antoine Poinsot)

Pull request description:

  A new command that provides a simple way for a user to sweep all the coins whose timelocked recovery path is available.

  The first part of #180. Note this also contains a number of drive-by fixes that i noticed while coding this up.

ACKs for top commit:
  darosior:
    self-ACK ba994ff8ff01d04fd31ed77cf7f66e0862e68e17 -- tested by Edouard on the GUI

Tree-SHA512: 002cb8602370fe3bec0692fe7bbe9e7af494b43756d3092da99b37e4ce2837bcdfcfb3afe7043900eb41c70de12e2129e19363b9efe41cee91c7f1f7c2824fb0
2022-12-13 18:17:14 +01:00
Antoine Poinsot
05bbb3eef2
Merge #215: update bitcoind connection and be more robust at startup
acd6929831964d643565f8f22b552f74613a3a1d doc: update for bitcoind 24.0.1 release (Antoine Poinsot)
650101525d890f50290989bd58c367024a69115c bitcoind: set minimum required version to 24.0 (Antoine Poinsot)
9211d849c191ff5d2552bde681edaa7038c8d049 bitcoind: be less stupid when loading the watchonly wallet (Antoine Poinsot)

Pull request description:

  Fixes #210
  Fixes #209
  Fixes #213

ACKs for top commit:
  darosior:
    self-ACK acd6929831964d643565f8f22b552f74613a3a1d

Tree-SHA512: 8cacf41b0e00faed877462dc57b595265ff2936937d45535d1be2b42fd1bf80df2928ccacbefd43f82d88a728aca898a8549899380e341de8b8e74d34ec74642
2022-12-13 18:00:17 +01:00
Antoine Poinsot
1e56c58166
Merge #214: descriptors: rule-out 0-value timelocks
b74a6ffc16740c1a8c0b93a8b4aa34bc1a1b819a qa: unflake test_rescan_edge_cases (Antoine Poinsot)
f6db9c6677ca43c51afbacbf4036cfe55f5539b1 descriptors: rule out null timelocks (Antoine Poinsot)

Pull request description:

  Fixes #208.

ACKs for top commit:
  darosior:
    self-ACK b74a6ffc16740c1a8c0b93a8b4aa34bc1a1b819a

Tree-SHA512: 3d4ed44f3b376e897bd28d11b9e1ce367d6cdf28f70472f39b3939d2cf25580302a81542131086aa1b9a028161f0eabe084efdd54a55703d0a2d4150eac84ae9
2022-12-13 17:47:27 +01:00
Antoine Poinsot
b74a6ffc16
qa: unflake test_rescan_edge_cases
We weren't waiting for lianad to be back to the same height as bitcoind.
Necessarily it could happen that sorted_coins() would return an empty
list.

Fixes #142 (did 50 successful runs of the test)
2022-12-13 16:59:57 +01:00
Antoine Poinsot
f6db9c6677
descriptors: rule out null timelocks
They are valid by consensus, not by Miniscript.
2022-12-13 16:59:56 +01:00
Antoine Poinsot
acd6929831
doc: update for bitcoind 24.0.1 release
Technically the minimum we support is 24.0 but let's not nudge people to
install a version with a buggy wallet.

Fixes #210
2022-12-13 16:37:52 +01:00
Antoine Poinsot
650101525d
bitcoind: set minimum required version to 24.0 2022-12-13 16:37:52 +01:00
Antoine Poinsot
9211d849c1
bitcoind: be less stupid when loading the watchonly wallet
Only load it if isn't there already.
2022-12-13 16:14:20 +01:00
Antoine Poinsot
de629cc075
Merge #211: gui: disable daemon jsonrpc client for windows
37562608ecd9471fe37ea123fe21512b6d373068 gui: disable daemon jsonrpc client for windows (edouard)

Pull request description:

  It is not certain that uds_windows will work so we prefer
  to remove it.

ACKs for top commit:
  darosior:
    utACK 37562608ecd9471fe37ea123fe21512b6d373068. That sounds more reasonable, and removes 8 dependencies 🎉.

Tree-SHA512: f0af1ceba6dc0881d5265497c606ff9916ba9a64cb94a79b4e4b4ecce9c3800fc796f0cd2eb620abf14793efb413b88cee202ce800a4e4c237e761ef5d2ab528
2022-12-13 16:00:47 +01:00
Antoine Poinsot
ba994ff8ff
commands: do not underestimate the size of created transactions
We were truncating when computing the virtual size of satisfactions.
2022-12-13 15:37:58 +01:00
Antoine Poinsot
46a94d6c8e
qa: test recovery 'sweep' transaction creation 2022-12-13 15:34:25 +01:00
Antoine Poinsot
f9359869f7
Merge #140: Bootstrappable builds
ef20b782301bae2fdfb842dfd89a749e60cb449e guix: make the builds actually reproducible (Antoine Poinsot)
72a332d2caf6c139d20855203d107fe3b185ba7d guix: fix the dependencies listing for the GUI container (Antoine Poinsot)
4a38040acf12dd457ac5f29a24f4b3800114255c guix: documentation (Antoine Poinsot)
37a28dbf7d5a22426d1844ef792d04e604e5b91b guix: use a lighter environment for building the daemon (Antoine Poinsot)
ae0b24f97494a7a859578ab6191187c4405a225f guix: allow to limit the number of cores dedicated to the build (Antoine Poinsot)
940c28d072c449295f6e1225446b829bea2d3053 guix: use patchelf to strip interpreter and RPATH (Antoine Poinsot)
3906a1b5bc5e7f57925981b4dd009fc6b13de7c1 guix: reproducible builds of the GUI (Antoine Poinsot)
8dda896e4b2c4baa69b5e1b839bfaf47b9b36320 guix: Linux reproducible builds of the daemon (Antoine Poinsot)

Pull request description:

  This introduces reproducible and bootstrappable builds of our softwares by using [Guix](https://guix.gnu.org/). This is heavily inspired by the work on Guix [that was done in the Bitcoin Core project](https://github.com/bitcoin/bitcoin/tree/master/contrib/guix). For an intro to reproducible builds with Guix see [this post](https://guix.gnu.org/blog/2020/reproducible-computations-with-guix/).

  For details, see the documentation introduced in this PR. Apologies for the poor commit history.

ACKs for top commit:
  darosior:
    ACK ef20b782301bae2fdfb842dfd89a749e60cb449e

Tree-SHA512: 58800170a8fd0822129f1fefa23c8a8cb68e8758a56b3ea9933b41cff1eff7691ed735a28f156395b76c18447044f2ba5a3f4cd519696667b6df90e27e20d3f6
2022-12-13 14:52:42 +01:00
Antoine Poinsot
ef20b78230
guix: make the builds actually reproducible
Paths to the dependencies affect the symbols in the binary
2022-12-13 14:50:59 +01:00
Antoine Poinsot
72a332d2ca
guix: fix the dependencies listing for the GUI container 2022-12-13 14:50:59 +01:00
Antoine Poinsot
4a38040acf
guix: documentation
This is directly inspired from the Bitcoin Core project's documentation.
This especially copies some stuff written by Carl Dong.
2022-12-13 14:50:58 +01:00
Antoine Poinsot
37a28dbf7d
guix: use a lighter environment for building the daemon
Special case the GUI dependencies to the GUI's container
2022-12-13 14:50:57 +01:00
Antoine Poinsot
ae0b24f974
guix: allow to limit the number of cores dedicated to the build 2022-12-13 14:50:57 +01:00
Antoine Poinsot
940c28d072
guix: use patchelf to strip interpreter and RPATH 2022-12-13 14:50:56 +01:00