19:01:49 #startmeeting 19:01:49 Meeting started Thu Apr 12 19:01:49 2018 UTC. The chair is wumpus. Information about MeetBot at http://wiki.debian.org/MeetBot. 19:01:49 Useful Commands: #action #agreed #help #info #idea #link #topic. 19:02:04 #bitcoin-core-dev Meeting: wumpus sipa gmaxwell jonasschnelli morcos luke-jr btcdrak sdaftuar jtimon cfields petertodd kanzure bluematt instagibbs phantomcircuit codeshark michagogo marcofalke paveljanik NicolasDorier jl2012 achow101 meshcollider jnewbery maaku fanquake promag provoostenator 19:02:09 hi 19:02:12 Hello. 19:02:13 hi 19:02:15 hi 19:02:16 hi 19:02:27 hi. 19:02:36 hi 19:02:39 hi 19:02:40 any proposed topics? 19:02:42 o hai 19:02:59 #12874 What to do with IsMine of bare multisig? 19:03:01 https://github.com/bitcoin/bitcoin/issues/12874 | Only accept bare multisig outputs after addmultisigaddress by sipa · Pull Request #12874 · bitcoin/bitcoin · GitHub 19:03:18 thanks 19:03:29 hi 19:03:29 dynamic wallet load/unload 19:03:37 I don't know why we would *ever* accept bare multisig 19:03:41 let's start with "high priority for review" as usual 19:03:44 #topic high priority for review 19:03:55 https://github.com/bitcoin/bitcoin/projects/8 19:04:14 Waiting on BlueMatt to rereview #11857 after revision 19:04:17 #11857 #12560 #11775 19:04:17 #11775 should probably removed and replaced with the forthcoming split of it into multiple pr's 19:04:18 https://github.com/bitcoin/bitcoin/issues/11857 | Build tx index in parallel with validation by jimpo · Pull Request #11857 · bitcoin/bitcoin · GitHub 19:04:23 https://github.com/bitcoin/bitcoin/issues/11857 | Build tx index in parallel with validation by jimpo · Pull Request #11857 · bitcoin/bitcoin · GitHub 19:04:28 https://github.com/bitcoin/bitcoin/issues/12560 | [wallet] Upgrade path for non-HD wallets to HD by achow101 · Pull Request #12560 · bitcoin/bitcoin · GitHub 19:04:29 though the first few commits could still use eyeballs 19:04:29 https://github.com/bitcoin/bitcoin/issues/11775 | Move fee estimator into validationinterface/cscheduler thread by TheBlueMatt · Pull Request #11775 · bitcoin/bitcoin · GitHub 19:04:31 https://github.com/bitcoin/bitcoin/issues/11775 | Move fee estimator into validationinterface/cscheduler thread by TheBlueMatt · Pull Request #11775 · bitcoin/bitcoin · GitHub 19:04:40 BlueMatt: i'll give you my comments after you split it :P 19:04:43 as for 11857, yes, thats my fault :/ 19:05:17 hi 19:05:37 #12560 still has one unaddressed comment by me I think 19:05:39 https://github.com/bitcoin/bitcoin/issues/12560 | [wallet] Upgrade path for non-HD wallets to HD by achow101 · Pull Request #12560 · bitcoin/bitcoin · GitHub 19:05:40 BlueMatt: ok 19:05:41 as for 12560...why no reivew? :/ 19:06:09 dunno github gives me the unicorn now 19:06:48 The "unicorn?" 19:06:48 I guess https://github.com/bitcoin/bitcoin/pull/10757 is not a priority, but review beg either way now that there's many people 19:06:59 #10757 19:07:02 https://github.com/bitcoin/bitcoin/issues/10757 | RPC: Introduce getblockstats to plot things by jtimon · Pull Request #10757 · bitcoin/bitcoin · GitHub 19:07:27 Randolf: the "This page is taking way too long to load." unicorn 19:07:43 lol, cancel meeting cause github broken? 19:07:54 wumpus: I haven't seen that one yet. 19:07:58 That's hilarious. 19:07:58 looks like the bot still can use the API 19:08:05 works for me just fine... 19:08:24 I got a unicorn the other day though, I reloaded and it worked 19:08:55 usually it takes a few minutes and then it works again 19:09:10 jtimon: I'll take a look 19:09:19 promag: awesome, thanks 19:09:28 I'll add 10757 19:09:59 * Randolf wonders if "Unicorns" is going to be listed as one of the topics in the log afterwards 19:10:18 i believe i addressed all comments for 12560, but i could have missed one or two 19:10:30 great, I had it kind of abandoned for some time but aj helped me with the tests and I got "unstuck" 19:11:10 I can also look 12560, at least code wise 19:11:10 achow101: I requested that HaveKey be moved out of the RPC file and into keystore 19:11:15 not sure if others agree 19:12:27 might want to discuss that outside the meeting? 19:12:41 oh, I missed that comment 19:12:58 hi 19:13:04 hey 19:13:05 omg 19:13:10 I've found people alive 19:13:12 yeah, we can discuss offline (well, still online, but yeah) 19:13:31 watshapenin 19:13:32 #topic What to do with IsMine of bare multisig? (sipa) 19:13:46 hi 19:13:48 plorark: after the meeting please 19:13:50 plorark: You've joined this channel during a meeting. 19:14:04 omg sorry 19:14:05 so currently (and since forever) we accept bare multisig outputs to us 19:14:25 this is stupid, annoying, pointless, and hard to maintain 19:14:33 are there any wallets that can even make bare multisig? 19:14:42 BIP70, technically :) 19:14:48 ew 19:14:52 because it only works when you have all the public keys 19:15:00 eh, all the private keys 19:15:12 sounds completely useless 19:15:12 so generally i think this is a feature that nobody should ever want 19:15:19 we don't act as BIP70 server ever though 19:15:26 however, there may be existing outputs to it 19:15:33 i don't know if this is the case or not 19:15:38 do people use bip70 ? 19:15:39 but it sounds scary to just stop supporting it 19:15:47 so that needs some chain analysis I suppose 19:15:55 bitpay uses bip70 exclusively. 19:16:06 sipa: we'd not "stop supporting it", you'd still be able to sign for them in rawtransaction rpcs 19:16:14 so write up a five-sentence release not and stop supporting it :p 19:16:20 * luke-jr wonders how much overhead there'd be to supporting it up to a certain height 19:16:24 sipa: is it possible to just prevent new bare multisig? 19:16:25 sipa: perhaps deperecate it on the next release ? 19:16:25 BlueMatt: i have no intention to stop supporting signing for it 19:16:29 echeveria: thanks 19:16:34 sipa: yes, thats my point 19:16:36 this is just about IsMine 19:16:46 just stop supporting it for receiving to our wallet 19:16:58 yes, that's the easy part 19:17:07 BlueMatt: sounds fair enough 19:17:08 but what if there are existing outputs in people's wallet 19:17:09 I mean step back a minute, if we're still talking about doing another hd split to move to a address model instead of a pubkey model in the wallet, why not do it then 19:17:19 and keep doing the default-add of the scripts from the original keys? 19:17:28 incl all the stuff we support today 19:17:37 BlueMatt: ah, because it's impossible to remain compatible with it in an address model 19:17:46 if one has already detected bar multisig txns, they will not disappear (unless rescan)? 19:17:47 (you get a cubic explosion of combinations) 19:17:58 I though we only supported about 4 different script types? 19:18:02 sipa: sorry give an example? 19:18:07 raw multisig, p2ph, p2pubkey, and...? 19:18:15 isn't the plan to move to a script model? 19:18:20 BlueMatt: yes, but raw multisig up to 3-of-3 19:18:30 ouch 19:18:31 which means N^3 combinations if you have N private keys 19:18:32 ehh... I know I was not supposed to interrupt the meeting, but it's pointless for me to wait if this is not the channel i'm looking for. Is altcoins development discussions allowed here? 19:18:39 I thought Multisig could support more than 3 signatures. 19:18:39 plorark: no 19:18:44 Randolf: not standard 19:18:50 plorark: no 19:18:55 oh, ok, sorry 19:18:56 see ya 19:18:59 plorark: Join the ##altcoins channel. 19:19:01 thx 19:19:10 thx 19:19:10 ##altcoin-dev * 19:19:12 oops 19:19:19 thx and bye 19:19:19 I mean, anyway, does it matter much? I'd default to "dont support with release notes indicating you can use signrawtransaction" 19:19:31 so the #1 reason to fix this now is because I'd like to remain compatible with whatever the wallet already supports 19:19:34 https://github.com/bitcoin/bitcoin/issues/1 | JSON-RPC support for mobile devices ("ultra-lightweight" clients) · Issue #1 · bitcoin/bitcoin · GitHub 19:19:35 except for bare multisig 19:19:46 if we really care, add an option to include them when we move to address-based 19:19:51 with a note indicating it will eat all your memory 19:19:54 sipa: Maintaining compatibility seems like a very good justification. 19:20:09 BlueMatt: by default our keypool is 2000 keys 19:20:14 the cube of that is 8 billion 19:20:15 yes, I know 19:20:19 that's just not feasible 19:20:24 Is there a way to register bare multisigs as some sort of key-thing? 19:20:31 meh, so dont support it at all without manual key-adds, then 19:20:46 jimpo: you could register the scripts as watch only 19:20:49 jimpo: manual import isn't out of question i assume 19:20:49 BlueMatt: that's what #12874 does! 19:20:51 https://github.com/bitcoin/bitcoin/issues/12874 | Only accept bare multisig outputs after addmultisigaddress by sipa · Pull Request #12874 · bitcoin/bitcoin · GitHub 19:20:52 So that IsMine is true only if you explicitly watch the script 19:21:05 jimpo: yes, that is the PR i have open 19:21:07 sipa: I dont even think we need to match IsMine/accept them at that point 19:21:10 Oh, cool 19:21:13 sipa: would prefer we get rid of it completely 19:21:19 and just let people mark it watchonly 19:21:22 i want to bring up is: is this overkill, and should we instead just remove it 19:21:22 then signrawtransaction it 19:21:31 can you watchonly it? 19:21:40 you can only watchonly addresses, not scripts, afaik 19:21:54 ok i will investigate 19:21:55 importmulti lets you, i thought? 19:21:56 does it not sneak under redeemscript field or somesuch? 19:21:59 just stop supporting it and mention it in the release notes... this seems safe and okay to me. 19:22:00 yeah check it out 19:22:45 sipa: Do you think there's a large burden to maintaining #12874? 19:22:46 https://github.com/bitcoin/bitcoin/issues/12874 | Only accept bare multisig outputs after addmultisigaddress by sipa · Pull Request #12874 · bitcoin/bitcoin · GitHub 19:23:13 jimpo: no, but it'd be better not to 19:23:21 bar-multisig use-cases are data-services only IMO... we could analyze the utxos first to get a idea about how many potentail users would be affected... 19:23:29 but right,.. existing bare multisig wtx would not disapear, right? 19:23:47 they would 19:23:57 ah.. isMine(), right 19:24:20 but we could detect that and warn 19:24:43 If there's not a big downside to #12874, I'd prefer that approach, but don't care much if it's deprecated 19:24:45 https://github.com/bitcoin/bitcoin/issues/12874 | Only accept bare multisig outputs after addmultisigaddress by sipa · Pull Request #12874 · bitcoin/bitcoin · GitHub 19:25:24 BlueMatt: it seems we can indeed watch scripts 19:25:35 i think that's my preferred approach then 19:25:55 remove support entirely and note a workaround for the highly unlikely case in the release notes 19:26:07 yes 19:26:07 ack 19:26:08 yes 19:26:09 agreed 19:26:12 end topic 19:26:28 #topic dynamic wallet load/unload (promag) 19:26:34 Ack. 19:26:50 not sure what you guys think 19:26:56 what's the controversy in this topic :) 19:27:01 #10740 19:27:02 it should happen, duh 19:27:04 https://github.com/bitcoin/bitcoin/issues/10740 | [WIP] [wallet] dynamic loading/unloading of wallets by jnewbery · Pull Request #10740 · bitcoin/bitcoin · GitHub 19:27:06 seems like something we want to have at some point... 19:27:07 but I think luke agrees that wallet management should be with shared pointers 19:27:08 how and when is another :) 19:27:26 indeed, using names just asks for chaos with runtime-changing wallets 19:28:19 please read #11402 for some reasons to switch 19:28:20 https://github.com/bitcoin/bitcoin/issues/11402 | Use shared pointer for wallet instances by promag · Pull Request #11402 · bitcoin/bitcoin · GitHub 19:28:54 IMO 10740 can't create wallets, IMO first step would be to add a createwallet RPC call 19:29:21 the whole creation/configuration setup if flawed since multiwallet 19:29:29 stuff like -keypool should be per wallet 19:29:40 jonasschnelli: you think createwallet should go in *before* load/unload? 19:29:43 and persisted in the wallet file (as configuration section) 19:29:55 jnewbery: not sure,.. just thinking 19:30:05 seems reasonable to me 19:30:25 createwallet could also *not* load the wallet in the first step (not ideal, but maybe reduces complexity) 19:30:25 that seems strange... you could create a new wallet at run time but not use it? 19:30:41 sipa: createwallet could also directly load/use the wallet 19:30:46 I think createwallet would also load the new wallet, no? 19:30:48 create implies loading 19:30:52 sipa: iow, 0 to 1 only. 19:31:06 jonasschnelli: well then you need to have loading functionality first! 19:31:14 and if you have it, why not expose it 19:31:53 sipa: yes. That's a point. 19:31:54 createwallet could also be done by bitcoin-wallet-tool 19:32:23 (#8745) 19:32:25 https://github.com/bitcoin/bitcoin/issues/8745 | [PoC] Add wallet inspection and modification tool "bitcoin-wallet-tool" by jonasschnelli · Pull Request #8745 · bitcoin/bitcoin · GitHub 19:32:35 Yes. Would be possible... 19:32:55 I just think the create-during-startup approach is not good 19:33:06 also related #10973 19:33:07 jonasschnelli: I agree 19:33:09 https://github.com/bitcoin/bitcoin/issues/10973 | Refactor: separate wallet from node by ryanofsky · Pull Request #10973 · bitcoin/bitcoin · GitHub 19:33:10 jonasschnelli: agree 19:33:24 And as a first step I though createwallet would make sense.. but not loading it seems after a strange use-case 19:33:29 load -> create -> unload 19:33:33 but a nice first code/impl. step 19:33:36 unload is the complex part tbh 19:33:49 luke-jr: agree 19:34:05 Agree with luke-jr. Maybe split unload away from the existing PR jnewbery ? 19:34:12 yes 19:34:28 I intend to pick up 10740 again soon, rebase and rework it 19:34:39 consider the use case: 1) rpc rescan wallet 2) in parallel unload wallet - should 2) wait for 1) ? 19:34:57 probably 19:35:01 Great. Dynamic loading/creating is a nice feature that we probably want for 0.17! 19:35:30 luke-jr: and if the unload is from the UI? 19:35:57 promag: do you consider 11402 a prereq for load/unload? What about just load? 19:36:01 the wallet-tool is IMO orthogonal to wallet creation 19:36:13 *via RPC 19:36:39 promag: probably the same 19:36:43 jnewbery: IMHO for both 19:36:50 RPC seems to be a must, wallet-tool can be a better place to create some sorts of wallets (or inspect it), .. like encrypted wallets 19:36:52 promag: at least initially 19:37:40 promag: want to rebase and put on high priority for review then, if you consider it a blocker? 19:37:50 luke-jr: my point is that it should not block, you request the unload and go on, when the wallet is not used anymore it gets unloaded 19:38:11 #11402 19:38:13 https://github.com/bitcoin/bitcoin/issues/11402 | Use shared pointer for wallet instances by promag · Pull Request #11402 · bitcoin/bitcoin · GitHub 19:38:15 promag: you mean leave the wallet loaded, but invisible? that seems worst outcome IMO 19:38:26 user may unload and just shut off the PC 19:38:44 the unload should probably be in two stages: after requesting it, RPC and the GUI lose access to it. Then it waits for current operations tofinish. Then the thing really gets delted. 19:38:50 yes 19:38:53 luke-jr: then the application will wait for wallets to unload 19:38:54 I don't think we need to worry about unload at this stage. First step is add load functionality, then createwallet functionality 19:38:57 and make it visible to the user in the meantime 19:39:06 jnewbery: +1 19:39:17 wumpus: right, hence shared pointers 19:40:13 ok 19:40:19 any other topics? we've had the proposed ones 19:41:05 gitian updates? 19:41:17 seems we have at least a few things that need a newer VM 19:41:27 not sure if there's anything to discuss tho 19:42:33 dunno if cfields is here, if not it makes little sense to discuss this I think 19:42:45 sure 19:43:01 #topic gitian update 19:43:38 #12511 I guess 19:43:39 https://github.com/bitcoin/bitcoin/issues/12511 | Switch to Ubuntu 18.04 for gitian building · Issue #12511 · bitcoin/bitcoin · GitHub 19:44:24 not sure what's there to discuss about it 19:44:53 I guess we need a replacement for vmbuilder or something, since Canonical hasn't updated it to support anything recent :/ 19:45:55 ah, i didn't realize gitian couldn't handle it :( 19:46:02 debootstrap? 19:46:10 debootstrap is a step in vmbuilder 19:46:47 anyway, concept ack 19:47:36 I'm considering adding docker support to gitian so we would use a default ubuntu docker image and then build from there 19:47:37 cool 19:48:20 sgtm 19:48:25 that would be nice 19:49:05 yes 19:49:18 so KVM would no longer work? 19:49:45 heh if you make it work it will work 19:49:56 Docker seems to just be a LXC wrapper 19:50:18 Docker avoids all of the vm setup because someone else did that for us 19:50:21 it's also x86-64 only 19:50:24 if vmbuilder or debootstrap does't work you could always manually install ubuntu to a base image I guess... 19:51:04 achow101: please, ping me for review if you do 19:51:07 but in my experience debootstrap works very well, though I've never used it for ubuntu on x86 19:51:19 I 19:52:12 jtimon: sure 19:53:19 yes, I'm willing to test the docker stuff as well 19:53:39 I suppose fixing vmbuilder might be not too unreasonable effort, maybe I will try that :/ 19:53:49 though I agree iwht luke-jr it's not a long-term solution, can't be used from other platforms, though cfields is still working on his long-term solution I hope 19:54:28 wumpus: yes, very much so. 19:54:55 great! 19:55:30 time to wrap up the meeting I think 19:55:39 unless someone has a quick topic 19:56:11 #endmeeting