< promag> please take #17878 from hp
< gribble> https://github.com/bitcoin/bitcoin/issues/17878 | wip: zmq: Support -zmqpubwallettx by promag · Pull Request #17878 · bitcoin/bitcoin · GitHub
< bitcoin-git> [bitcoin] fanquake pushed 2 commits to master: https://github.com/bitcoin/bitcoin/compare/64139803f122...d8ca51db5ddf
< bitcoin-git> bitcoin/master eb37275 Andrew Chow: Fix naming of macOS SDK and clarify version
< bitcoin-git> bitcoin/master d8ca51d fanquake: Merge #18589: Fix naming of macOS SDK and clarify version
< bitcoin-git> [bitcoin] fanquake merged pull request #18589: Fix naming of macOS SDK and clarify version (master...fix-osx-sdk-extract) https://github.com/bitcoin/bitcoin/pull/18589
< bitcoin-git> [bitcoin] vasild opened pull request #18754: bench: add CAddrMan benchmarks (master...addrman_perf_test) https://github.com/bitcoin/bitcoin/pull/18754
< bitcoin-git> [bitcoin] MarcoFalke pushed 2 commits to master: https://github.com/bitcoin/bitcoin/compare/d8ca51db5ddf...85bae24d060e
< bitcoin-git> bitcoin/master fae9866 MarcoFalke: test: Fix intermittent error in mempool_reorg
< bitcoin-git> bitcoin/master 85bae24 MarcoFalke: Merge #18752: test: Fix intermittent error in mempool_reorg
< bitcoin-git> [bitcoin] MarcoFalke merged pull request #18752: test: Fix intermittent error in mempool_reorg (master...2004-qaMempoolReorg) https://github.com/bitcoin/bitcoin/pull/18752
< bitcoin-git> [bitcoin] theStack opened pull request #18756: refactor: test: use wait_for_getdata() in p2p_compactblocks.py (master...20200424-test-use-wait_for_getdata-in-p2p_compactblocks) https://github.com/bitcoin/bitcoin/pull/18756
< bitcoin-git> [bitcoin] practicalswift opened pull request #18757: tests: Remove enumeration of expected deserialization exceptions in ProcessMessage(...) fuzzer (master...remove-EXPECTED_DESERIALIZATION_EXCEPTIONS) https://github.com/bitcoin/bitcoin/pull/18757
< bitcoin-git> [bitcoin] MarcoFalke pushed 2 commits to master: https://github.com/bitcoin/bitcoin/compare/85bae24d060e...d1aa0ae1ad64
< bitcoin-git> bitcoin/master 8f5dc88 Jon Atack: test: display command line options passed to send_cli() in debug log
< bitcoin-git> bitcoin/master d1aa0ae MarcoFalke: Merge #18712: test: display command line options passed to send_cli() in d...
< bitcoin-git> [bitcoin] MarcoFalke merged pull request #18712: test: display command line options passed to send_cli() in debug log (master...log-cli-options) https://github.com/bitcoin/bitcoin/pull/18712
< bitcoin-git> [bitcoin] jonatack closed pull request #18498: test: enable opening partial p2p connections where useful (master...allow-peer-conn-sans-sync) https://github.com/bitcoin/bitcoin/pull/18498
< bitcoin-git> [bitcoin] MarcoFalke opened pull request #18758: Remove unused boost/thread (master...2004-noBoostThread) https://github.com/bitcoin/bitcoin/pull/18758
< bitcoin-git> [bitcoin] MarcoFalke pushed 2 commits to master: https://github.com/bitcoin/bitcoin/compare/d1aa0ae1ad64...7812889849eb
< bitcoin-git> bitcoin/master a2a03c3 “jkcd”: fixing documentation to not require rpcpassword
< bitcoin-git> bitcoin/master 7812889 MarcoFalke: Merge #18157: doc: fixing init.md documentation to not require rpcpassword...
< bitcoin-git> [bitcoin] MarcoFalke merged pull request #18157: doc: fixing init.md documentation to not require rpcpassword (master...fix_16346_doc_init) https://github.com/bitcoin/bitcoin/pull/18157
< bitcoin-git> [bitcoin] MarcoFalke pushed 2 commits to master: https://github.com/bitcoin/bitcoin/compare/7812889849eb...8c0f86f28440
< bitcoin-git> bitcoin/master fdceb63 practicalswift: fuzz: Remove enumeration of expected deserialization exceptions in Process...
< bitcoin-git> bitcoin/master 8c0f86f MarcoFalke: Merge #18757: test: Remove enumeration of expected deserialization excepti...
< bitcoin-git> [bitcoin] MarcoFalke merged pull request #18757: test: Remove enumeration of expected deserialization exceptions in ProcessMessage(...) fuzzer (master...remove-EXPECTED_DESERIALIZATION_EXCEPTIONS) https://github.com/bitcoin/bitcoin/pull/18757
< jonatack> MarcoFalke: am trying to reproduce the stack use-after-return in validationinterface in #18742 with added 500us delay. how long did it take for you to see it while looping the test?
< gribble> https://github.com/bitcoin/bitcoin/issues/18742 | miner: Avoid stack-use-after-return in validationinterface by MarcoFalke · Pull Request #18742 · bitcoin/bitcoin · GitHub
< meshcollider> #startmeeting
< lightningbot> Meeting started Fri Apr 24 19:00:13 2020 UTC. The chair is meshcollider. Information about MeetBot at http://wiki.debian.org/MeetBot.
< lightningbot> Useful Commands: #action #agreed #help #info #idea #link #topic.
< 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 ariard digi_james amiti fjahr
< meshcollider> jeremyrubin emilengler jonatack hebasto jb55
< jonatack> hi meshcollider and everyone
< meshcollider> Hi :)
< jonatack> :)
< hebasto> hi
< fjahr> hi
< meshcollider> Topics for today? Yesterday's meeting was short so today's might be as well
< sipa> hi
< achow101> hi
< jonatack> #16528 seems to be close, has 3 acks i believe
< gribble> https://github.com/bitcoin/bitcoin/issues/16528 | Native Descriptor Wallets using DescriptorScriptPubKeyMan by achow101 · Pull Request #16528 · bitcoin/bitcoin · GitHub
< meshcollider> Yes ^ so that's exciting, maybe we can even get it merged this weekend
< kanzure> hi
< instagibbs> hi
< achow101> I would like that to be merged soon
< achow101> I have a couple of followups already planned
< meshcollider> If anyone else has time for review in the next few days, please review that
< instagibbs> achow101, what did we arrive on with respect to descriptor export? Are we just conisdering descriptor wallets experimental and fixing as we go?
< achow101> instagibbs: that's my plan
< sipa> seems reasonable
< jnewbery> hi
< meshcollider> It's good to have it ready so early in the 0.21 release cycle too
< instagibbs> ok I'll go through one more time and give my ACK/follow-up rec
< meshcollider> Any other things to discuss?
< fjahr> I suggested adding a warning to createwallet that it's experimental, that was my only open suggestion, but can be merged as is as well :)
< achow101> fjahr: I'm planning on opening a PR with release notes. I can add that warning at that time too
< meshcollider> Yep that's an easy followup
< instagibbs> post-merge then #18027 can be rebased one more time
< gribble> https://github.com/bitcoin/bitcoin/issues/18027 | "PSBT Operations" dialog by gwillen · Pull Request #18027 · bitcoin/bitcoin · GitHub
< fjahr> achow101: ok, just wasn't sure if you had seen the comment :)
< meshcollider> #endmeeting
< lightningbot> Meeting ended Fri Apr 24 19:09:40 2020 UTC. Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4)
< jonatack> fjahr: yeah, PRs like that one highlight the limitations of GitHub, 6 separate clicks and loads of "hidden items, Load more..." just to read semi-recent comments
< luke-jr> isn't there a way to show all?
< instagibbs> gotta get it merged so i dont have to click "see more discussion" 50 times on that PR
< instagibbs> :/
< jonatack> it's highly annoying...if there is a way to show all, i'd be happy to learn of it
< meshcollider> Not that I know of, someone could write a browser extension for it ;)
< sipa> just use your email interface instead
< fjahr> jonatack: I actually researched that, and github added some load all feature but then it is again deactivated for 200+ messages or something like that, so annoying
< jonatack> i'm hoping github's cli client will get there eventually...speaking of which, it's been a month or more since i last tried it
< instagibbs> anyhoo, I re-ack'd it lightly imo ready for a nice early in cycle merge
< fjahr> meshcollider: jonatack: https://github.com/sindresorhus/refined-github is an extension that adds it with alt+click on the 'load more' link, it works, but it's a big extension for such a small feature
< instagibbs> meshcollider, over weekend merge would be nice
< achow101> I was going to say he should merge it now, before the weekend. but then I remembered that kiwis live in the future and it's already saturday for him
< jonatack> fjahr: thanks TIL will check it out
< jeremyrubin> oops I had a wallet question
< jeremyrubin> Has anyone been working on a spec for script finalizers?
< jeremyrubin> with psbt stuff it seems like that's kinda "left to the reader"
< sipa> jeremyrubin: it depends on what scripts you support
< jeremyrubin> All of them?
< jeremyrubin> suppose it's possible to enumerate all possible stack parameter configurations.
< sipa> you could write a spec for P2PK, P2PKH, P2WPKH, multisig, P2SH/P2WSH versions of those, ...
< jeremyrubin> Right now I'm just encoding things into the witness stack with a known prefix and then appending metadata
< sipa> miniscript has generic signing logic for all its supported scripts, ...
< jeremyrubin> But that's hardly robust
< sipa> what are you trying to do?
< instagibbs> solve bitcoin script, obviously
< jeremyrubin> Well I have my own script compiler that emits checktemplateverify based programs.
< jeremyrubin> Miniscript is better at the actual script compilation part for sure, but it was harder to integrate it with the other components in my system so I made my own restricted script subset.
< sipa> this has nothing to do with compilation
< sipa> it's given a script and a bunch of signatures/keys, construct a witness
< jeremyrubin> Well what I output from my compiler is a list of all witness templates.
< sipa> compilation happens before the address even exists
< jeremyrubin> I'm merely asking if there's already a standard format for witness templates
< sipa> ah, well perhaps you need a private PSBT extension to keep that template information around?
< sipa> or the input to the compiler, and then have the finalizer re-run the compiler
< jeremyrubin> Yes both can be done
< jeremyrubin> But it seems like it's a common enough thing?
< sipa> miniscript doesn't need it :)
< jeremyrubin> Miniscript takes the additional compilation pass to emit witness?
< jeremyrubin> How does miniscript avoid it?
< sipa> miniscript's signing algorithm works with just the compiled script
< sipa> taproot will need extensions too, to store all possible scripts in the merkle tree
< jeremyrubin> Yeah I can do that too.
< jeremyrubin> There's no problem with what I'm doing right now and it all works fine
< jeremyrubin> I am just curious if there's a standard format for it
< sipa> i don't think there can be
< sipa> it's highly dependent on what kind of script constructions you're talking about
< sipa> especially if you take future hypothetical script semantics changes into account
< jeremyrubin> What's wrong with a list of tuples of arrays of metadata or witness element?
< sipa> psbt is basically a huge dict
< sipa> you can store whatever you need in it
< sipa> i'm not sure what "list of tuples of arrays of metadata" means otherwise
< jeremyrubin> Ah. So the difference is that it seems that the data in PSBT is unordered?
< jeremyrubin> And you only store *one* witness (transaction level) not all possible ones
< sipa> it's a global dict, and one dict per input, and one dict per output
< jeremyrubin> instagibbs: I'm aware!
< jeremyrubin> But that's not a standard
< sipa> i have honestly no idea what you want a standard for
< jeremyrubin> It's fine we don't need to get into the specifics my question is well answered already
< sipa> or what you're suggesting
< jeremyrubin> So from miniscript I should be able to output a list of all possible witness stacks, with specific data stubbed out correct?
< sipa> given a script, yes
< jeremyrubin> Right.
< sipa> though the signing algorithm is much smarter than that (it will take into account what signatures are available or not, try to guarantee non-malleability, ...)
< jeremyrubin> So let's say I want to transport that set of possible stacks to someone, so they can pick and sign.
< sipa> eh
< sipa> the number of possible stacks can be intractable
< sipa> combinatorial explosion
< jeremyrubin> Sure! There are situations where it isn't though, and I think they are relatively common. Or at least you can output a non exhaustive list.
< jeremyrubin> with a representative of each malleable set
< sipa> possibly, but you'd need to encode under which conditions each can be used as well
< sipa> e.g. known hash preimages, timelocks, currently
< sipa> but that too could easily be expanded in future extensions
< sipa> (well, "easily")
< bitcoin-git> [bitcoin] MarcoFalke pushed 2 commits to master: https://github.com/bitcoin/bitcoin/compare/8c0f86f28440...29637a5c56fd
< bitcoin-git> bitcoin/master fa26271 MarcoFalke: test: Check submitblock return values
< bitcoin-git> bitcoin/master 29637a5 MarcoFalke: Merge #18745: test: Check submitblock return values
< bitcoin-git> [bitcoin] MarcoFalke merged pull request #18745: test: Check submitblock return values (master...2004-testSubmitblockReturnVal) https://github.com/bitcoin/bitcoin/pull/18745
< jeremyrubin> Ok so here's a scenario that I think is hard with PSBT
< sipa> also, what are the stubbed out things in your model? public keys + sighash?
< jeremyrubin> Just signatures and hashes at the moment, but it supports arbitrary extensions for whatever "leaves nothing on the stack" fragment you want to add
< sipa> my suggestion is to first build something that works
< bitcoin-git> [bitcoin] MarcoFalke pushed 2 commits to master: https://github.com/bitcoin/bitcoin/compare/29637a5c56fd...a215c6133323
< bitcoin-git> bitcoin/master c4027e7 Sebastian Falbesoner: refactor: test: use wait_for_getdata() in p2p_compactblocks.py
< bitcoin-git> bitcoin/master a215c61 MarcoFalke: Merge #18756: refactor: test: use wait_for_getdata() in p2p_compactblocks....
< sipa> and then talk about standardization
< jeremyrubin> Already there :)
< bitcoin-git> [bitcoin] MarcoFalke merged pull request #18756: refactor: test: use wait_for_getdata() in p2p_compactblocks.py (master...20200424-test-use-wait_for_getdata-in-p2p_compactblocks) https://github.com/bitcoin/bitcoin/pull/18756
< jeremyrubin> Ah I think I see where there's some confusion on the enumerablity; I'm compiling the scripts from DNF form right now
< jeremyrubin> Inherently that makes their satisfiability easy to look at
< sipa> so here is another angle: signers need to understand what they're signing, which generally means that can't be given too processed data (e.g. you can't give them a sighash to sign, or they'd risk signing something crazy)
< sipa> you only need a finalizer for a specific type of script to participate, if there is actually such a script involved
< sipa> which likely one of the signers or updaters needs logic for anyway
< sipa> so i think there isn't much need for grand generic finalizer logic
< sipa> some of the people involved with signing will understand the script (and whatever crazy things it does) anyway, so they can finalize
< jeremyrubin> BTW do you have any thoughts on if I add CTV support to miniscript? It's relatively I think and can be macro'd in or something...
< sipa> i'm not even interested in adding taproot support until that's active on the network
< jeremyrubin> To be fair that's a lot more involved. I want people to be able to start testing more stuff; kallewoof has been setting up a signet with both iirc.
< sipa> feel free to make your own branch or something
< jeremyrubin> Will do. What's the state of bindings BTW. Has anyone put together python/js bindings yet or still c/rust?
< sipa> there is a python implementation
< jeremyrubin> Oh? It's not on the site
< bitcoin-git> [bitcoin] MarcoFalke opened pull request #18759: bench: Start nodes with -nodebuglogfile (master...2004-benchNoDebugLog) https://github.com/bitcoin/bitcoin/pull/18759
< sipa> the code is also outdated, actually
< jeremyrubin> In the python one
< sipa> all of them
< jeremyrubin> Oh where is the latest stuff?
< sipa> the site is up to date with the latest spec, i have a PR to my c++ repo that implements those changes, but the rust code hasn't been updated for them
< sipa> i think the python code is based on an even older version
< sipa> note that for things like generic signing this does not matter
< jeremyrubin> Do you have what the diffs of the specs are?
< jeremyrubin> What sort of changes -- if it's just improvements for creating better scripts that's OK
< sipa> oh no, not even
< sipa> just the descriptor notation
< sipa> which i think isn't even relevant for you
< jeremyrubin> But if I'm going to work on creating some patches I don't want to be working off of something inaccurate haah
< sipa> as i don't think CTV is inherently compatible with descriptors
< sipa> and generic signing doesn't need it
< jeremyrubin> hmm not familiar enough with descriptors to see why not?
< jeremyrubin> Well i guess I can intuit some of it
< sipa> you can't describe a CTV wallet using descriptors, i think? because you'd need to encode the future scripts/txn in the descriptor
< Kiminuo> sipa, "but the rust code hasn't been updated for them" - 1) https://github.com/apoelstra/rust-miniscript/commit/2c53413e199072e2ca3c42c7b419daba56eb9f0a was merged 2) https://github.com/apoelstra/rust-miniscript/pull/83 is awaiting review .. but it's not done
< sipa> ah good to know
< sipa> jeremyrubin: i mean, you could have the ctv hash as an opaque blob in a descriptor of course, and update them for every step
< jeremyrubin> Yeah that makes sense... maybe I should... do something about that
< sipa> which would work, but it wouldn't be very interesting
< Kiminuo> too bad Andytoshi is so busy, I would gladly finish that
< jeremyrubin> Anyways I don't need to work on it immediately, my stuff works fine as is. But I'd rather put the effort in to an existing tool than polishing out Yet Another Bitcoin Script TOol
< sipa> in a similar way that you can have descriptors with raw pubkeys, but things work much more nicely if you can just dump xpubs etc in them
< ariard> MarcoFalke: reviewing again 18038 rn
< andytoshi> Kiminuo: heh oops i forgot to review this
< andytoshi> will try for this evening
< bitcoin-git> [bitcoin] MarcoFalke pushed 2 commits to master: https://github.com/bitcoin/bitcoin/compare/a215c6133323...5f19155e5bca
< bitcoin-git> bitcoin/master 2495110 Jon Atack: test: add coverage for -rpcwallet cli option
< bitcoin-git> bitcoin/master 5f19155 MarcoFalke: Merge #18724: test: add coverage for -rpcwallet cli option
< bitcoin-git> [bitcoin] MarcoFalke merged pull request #18724: test: add coverage for -rpcwallet cli option (master...rpcwallet-tests) https://github.com/bitcoin/bitcoin/pull/18724