19:00:10 <meshcollider> #startmeeting 19:00:10 <lightningbot> Meeting started Fri Oct 11 19:00:10 2019 UTC. The chair is meshcollider. Information about MeetBot at http://wiki.debian.org/MeetBot. 19:00:10 <lightningbot> Useful Commands: #action #agreed #help #info #idea #link #topic. 19:00:16 <meshcollider> #bitcoin-core-dev Wallet Meeting: wumpus sipa gmaxwell jonasschnelli morcos luke-jr sdaftuar jtimon cfields petertodd kanzure bluematt instagibbs phantomcircuit codeshark michagogo marcofalke paveljanik NicolasDorier jl2012 achow101 meshcollider jnewbery maaku fanquake promag provoostenator aj Chris_Stewart_5 dongcarl gwillen jamesob ken281221 ryanofsky gleb moneyball 19:00:18 <provoostenator> hi 19:00:21 <achow101> hi 19:01:04 <achow101> it looks like #16341 is getting close, 2 acks now 19:01:07 <gribble> https://github.com/bitcoin/bitcoin/issues/16341 | Introduce ScriptPubKeyMan interface and use it for key and script management (aka wallet boxes) by achow101 · Pull Request #16341 · bitcoin/bitcoin · GitHub 19:01:14 <kanzure> hi 19:01:41 <provoostenator> I think it needs another pair of wallet expert eyes though. 19:01:46 <meshcollider> I've been slowly getting through review of it too 19:02:00 <meshcollider> It looks very good though 19:02:14 <meshcollider> achow101: what do you think of russ' branch 19:02:29 <sipa> hi 19:02:55 <achow101> it did the thing I wanted to avoid which were the 2 ginormous commits at the beginning 19:02:56 <provoostenator> As I commented, I found it helpful for comparison-review, but -0 on replacing it, because it's not very granular. 19:03:20 <meshcollider> Yep sweet as :) 19:03:48 <meshcollider> Ok so with 0.19 branched now, what are the wallet priorities for the next few months 19:04:01 <provoostenator> Descriptor wallets would be awesome 19:04:13 <achow101> if 16341 gets merged soon, descriptor wallets i guess? 19:04:37 <achow101> I rebased the descriptor wallets pr a few days ago and i'll make it not WIP once 16341 is merged 19:04:41 <meshcollider> Yes 19:04:43 <meshcollider> Ok 19:05:06 <meshcollider> Other than that though is anyone else working on anything orthogonal 19:05:31 <meshcollider> How is the hardware wallet stuff looking for near term provoo 19:05:36 <meshcollider> provoostenator * 19:05:45 <provoostenator> I'm working on adding hardware wallet support to the GUI, in various orthogonal ways. #16966 is probably a good starting point. 19:05:47 <gribble> https://github.com/bitcoin/bitcoin/issues/16966 | ui: make send a wizard by Sjors · Pull Request #16966 · bitcoin/bitcoin · GitHub 19:06:28 <meshcollider> Why is it a draft? 19:06:37 <achow101> there's a plan to make a gui for HWI to complement #16944 19:06:39 <gribble> https://github.com/bitcoin/bitcoin/issues/16944 | gui: create PSBT with watch-only wallet by Sjors · Pull Request #16944 · bitcoin/bitcoin · GitHub 19:07:00 <provoostenator> meshcollider: because there's a few ugly things in it and a memoery leak :-) But will be undraft soon. 19:07:56 <provoostenator> As for RPC hardware wallet support, I'll get that in review-worthy shape once descriptor wallets are merged. I do keep it rebased in the mean time: #16895 19:07:58 <gribble> https://github.com/bitcoin/bitcoin/issues/16895 | External signer multisig support by Sjors · Pull Request #16895 · bitcoin/bitcoin · GitHub 19:08:12 <instagibbs> oh hi 19:08:23 <provoostenator> ^ although that got "needs rebase" almost immedidatley after I last rebased it yesterday. 19:08:28 <meshcollider> Very nice, sounds good 19:08:32 <meshcollider> haha 19:08:36 <achow101> I also have some transaction and key handling optimizations-ish that i'm holding off for after wallet boxes since they conflict 19:08:51 <provoostenator> Maybe we can expand the descriptor wallet project to include hardware wallets? 19:09:23 <instagibbs> seems like its own project tbh, may have a number of steps 19:09:29 <achow101> imo there should be a hardware wallet project that includes the descriptor wallet project 19:09:53 <meshcollider> The descriptor wallet project can be superceded once the two main PRs go in 19:10:00 <achow101> yeah 19:10:34 <meshcollider> I guess there's also some GUI wallet stuff like #15204 that has been waiting a while 19:10:37 <gribble> https://github.com/bitcoin/bitcoin/issues/15204 | gui: Add Open External Wallet action by promag · Pull Request #15204 · bitcoin/bitcoin · GitHub 19:10:56 <meshcollider> Ok so any topics people want to discuss today? 19:12:43 <instagibbs> miniscript for signing post-descriptor wallet? 19:12:50 <instagibbs> how much work is that sipa :P 19:13:01 <achow101> requires all of miniscript? 19:13:01 <sipa> did someone say miniscript? 19:13:26 <sipa> well we have one unsolved problem still, which is accurate witness size estimation for generic miniscript 19:13:35 <instagibbs> Oh! ok 19:13:45 <sipa> but signing is a solved problem 19:13:48 <sipa> i have code :) 19:13:57 <sipa> tested against consensus/standardness 19:14:07 <achow101> when pr 19:14:23 <instagibbs> very nice. I am dreaming of telescoping multisig policies and other nonsense for personal use ;P 19:14:25 <sipa> #16800 19:14:26 <gribble> https://github.com/bitcoin/bitcoin/issues/16800 | Basic Miniscript support in output descriptors by sipa · Pull Request #16800 · bitcoin/bitcoin · GitHub 19:14:41 <sipa> that's the first step :) 19:15:24 <instagibbs> ah yes 2000 loc 19:15:35 <sipa> a lot is tests :p 19:15:48 <instagibbs> ok I guess that's on my review pile, alongside 16341 19:15:52 <instagibbs> could you rebase 19:16:17 <bitcoin-git> [13bitcoin] 15ernestognw opened pull request #17110: fix(appveyor): Add -l test_suite to .appveyor.yaml. (06master...06master) 02https://github.com/bitcoin/bitcoin/pull/17110 19:16:28 <achow101> just a thought, if descriptor wallets is released before miniscript descriptors, we will need to have a wallet flag or something to avoid people making wallets with miniscript descriptors that aren't backwards compatible 19:17:10 <meshcollider> sipa are you waiting for #16889 before rebasinf 19:17:12 <gribble> https://github.com/bitcoin/bitcoin/issues/16889 | Add some general std::vector utility functions by sipa · Pull Request #16889 · bitcoin/bitcoin · GitHub 19:17:17 <instagibbs> throw Solver at things you're importing that involve privkeys, or something 19:17:18 <instagibbs> yeah 19:19:24 <sipa> meshcollider: i'm sure 16889 will be merged long before miniscript is actually merge-ready 19:20:06 <sipa> i can rebase; there are a bunch of improvements in the miniscript repo (https://github.com/sipa/miniscript) that i need to include in the PR as well 19:20:29 <sipa> preventing stack overflow when parsing among them, which is kind of a deal breaker... 19:20:37 <achow101> is there going to be a bip for miniscript and descriptors? 19:20:43 <sipa> imho, no 19:21:16 <sipa> i think we should aim to make sure that wherever two pieces of software accept the same descriptor, it refers to the same script in both 19:21:30 <sipa> but there isn't much of a requirement that everyone supports the exact same set of features 19:22:14 <sipa> i think we could have a bip at some point that simply defines the miniscript-compatible subset of script 19:22:18 <sipa> but maybe not now 19:22:31 <achow101> ok 19:22:56 <sipa> because say a hardware signing device that supports miniscript doesn't actually need to support its textual notation 19:23:07 <achow101> i've heard that some other wallet devs are intereseted in using miniscript and descriptors so it would be nice to have some "official" docs 19:23:22 <sipa> http://bitcoin.sipa.be/miniscript/ :) 19:24:10 <achow101> sure, but bips are cooler :) 19:24:22 <instagibbs> libraries even cooler 19:24:22 <sipa> yeah, maybe at some point 19:24:26 <sipa> ^ 19:25:35 <sipa> https://github.com/sipa/miniscript/issues/26 19:29:33 <instagibbs> sipa, if you can't estimate witness size in closed form or whatever you call it, why can't it just sign(hallucinate using other privkeys if it doesn't have them) and just see the end witness size? 19:29:48 <sipa> instagibbs: that may be intractable 19:30:00 <sipa> if there are 100 keys involved, you have 2^100 combinations to try 19:30:49 <instagibbs> not quite getting it, if you are told you know specific keys, why is it slower than actually signing, or is this begging the question 19:31:11 <sipa> instagibbs: oh by witness size estimation i mean before you know which keys are going to be involved in signing 19:32:14 <sipa> it's trivial to do if you do know this 19:32:20 <instagibbs> ok 19:33:11 <achow101> why do you need to know the witness size before knowing who is going to sign? 19:33:36 <sipa> because you're going to construct a PSBT that takes this into account for its 19:33:39 <sipa> fee 19:33:45 <sipa> and then pass it around by everyone, and see what comes out 19:34:06 <sipa> if you know exactly ahead of time which participants will be online, that's easy 19:34:35 <sipa> another side of it is that the signers may want to know that what they're signing will eventually have an acceptable feerate 19:34:57 <sipa> but they may not know which other signers will eventually contribute 19:35:19 <meshcollider> But the size varies right? There is no "size" before you know 19:35:28 <sipa> there is an upper bound 19:35:51 <achow101> is it just too expensive to compute the size for all possible valid signer combinations and just choose the largest? 19:36:21 <sipa> if there are more than a dozen keys involves that may become quickly become intractable 19:37:00 <meshcollider> E.g. like a segment tree 19:37:02 <sipa> and we used to think we had an efficient algorithm for this, but turns out it actually doesn't work :p 19:38:07 <instagibbs> miniscript friendship over 19:38:22 <meshcollider> lol 19:38:39 <sipa> haha 19:39:11 <sipa> with a less tight conservative estimate it's easy still... but it may overshoot by a lot in some cases 19:40:09 <meshcollider> is the original algorithm + it's issue documented somewhere 19:40:30 <instagibbs> well, good to know, for now for descriptor wallet purposes we just assume we will pick keys then estimate 19:41:36 <meshcollider> Anything else to talk about today? 19:42:41 <meshcollider> #endmeeting