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