19:01:13 #startmeeting 19:01:13 Meeting started Thu May 4 19:01:13 2017 UTC. The chair is sipa. Information about MeetBot at http://wiki.debian.org/MeetBot. 19:01:13 Useful Commands: #action #agreed #help #info #idea #link #topic. 19:01:23 topics? 19:01:36 oh, wumpus is out? 19:01:41 he is 19:01:45 hi 19:01:51 #10337 19:01:52 https://github.com/bitcoin/bitcoin/issues/10337 | Coin Control Dialog is not (very) useful for manual privacy protection · Issue #10337 · bitcoin/bitcoin · GitHub 19:01:56 :( 19:02:06 Proposed low prio topic: HD restore update / questions 19:02:11 #topic #10337 19:02:12 https://github.com/bitcoin/bitcoin/issues/10337 | Coin Control Dialog is not (very) useful for manual privacy protection · Issue #10337 · bitcoin/bitcoin · GitHub 19:02:22 gmaxwell: ping people? 19:02:30 BlueMatt: I agree change shouldn't be grouped as it is, but I don't understand how "received by address" is wrong 19:02:38 turns out the coin control dialog is almost entirely useless 19:03:01 BlueMatt: entierly useless? I disagree 19:03:08 the "received by address" thing works fine for coins you just received, but if it is a change output it walks back the first input until it finds a non-change output 19:03:11 BlueMatt: seems plenty useful to me 19:03:20 so it, essentially, picks an address at random if the output is change 19:03:24 BlueMatt: I see different "received by address" for change too 19:03:34 and groups by it, which obviously isnt what you want for privacy 19:03:45 luke-jr: for addresses marked as change in the wallet? no 19:04:05 BlueMatt: yes.. 19:04:08 for random addresses of yours it should work, but not for addresses via getrawchangeaddress 19:04:23 I don't use that RPC, but it works for normal change 19:04:26 hi 19:04:28 (or, ofc, normal change) 19:05:04 https://github.com/bitcoin/bitcoin/blob/master/src/qt/walletmodel.cpp#L620 19:05:35 it sounds to me like it is doing a mix of "receive by address" and "linked grouping" 19:05:44 both are perhaps useful 19:05:56 more importantly, really, is that I've repeatedly seen the tree mode of the coin picker dialog as the same as listaddressgroupings, which it is clearly not 19:06:06 sipa: well the change-output-results-in-random-grouping thing is kinda strange 19:06:20 right, it shouldn't walk for receive address 19:06:35 BlueMatt: I have nfc what that code does, but it *looks* right in the end window :/ 19:06:39 and it should alwaya walk (to some deterministic representative) for grouping 19:06:45 *alwaya 19:06:48 *alwayS 19:06:53 *always 19:07:11 but, yea, anyway, I think this should really emulate the grouping rpc 19:07:38 the "where did these coins come from" question is not really useful for anything but coins you just got, in which case they will already be ungrouped 19:07:38 a "received by address" is still useful i think, but it's not the same as grouping 19:07:50 hi. 19:07:51 yes, but if it is not received directly, it should be "Change" 19:08:03 BlueMatt: seems reasonable to me 19:08:28 anyway, other topics? 19:08:39 #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 19:08:47 #topic HD restore update 19:08:57 #10240 19:08:58 https://github.com/bitcoin/bitcoin/issues/10240 | Add HD wallet auto-restore functionality by jonasschnelli · Pull Request #10240 · bitcoin/bitcoin · GitHub 19:09:14 I have worked out a solution that seems to work for encrypted and encrypted&pruned wallets. 19:09:17 * BlueMatt wonders why we cant have a derivation key which is not encrypted in our wallet so taht we dont have to pause sync 19:09:24 It can halt the sync / validation progress. 19:09:34 But,.. I'm not sure what gap limit and default keypool size we should use 19:09:35 (to generate new keys) 19:09:38 100 and 20 seems very little 19:10:10 BlueMatt: that requires non-hardened derivation 19:10:19 BlueMatt: IMO encryption (private key wallets) with public key derivation should be avoided 19:10:32 sipa: yes, is that a concern? 19:10:41 BlueMatt: yes, we have a dumpprivkey command 19:10:54 We should aim – longterm – for watchonly-hd (see NicolasDorier workd) and add a signing-agent ala gpg / ssh 19:10:56 leaking one private key means you leak your whole walley 19:11:09 jonasschnelli: why? your list of funds is already public to the encrypted wallet holders? that wouldnt change? 19:11:13 But that is alredy the next topic. :) 19:11:25 sipa: dumpprivkey isn't supposed to be safe 19:11:32 luke-jr: i know 19:11:36 but we could make it fail for non-hardened keys? 19:11:43 luke-jr: but it breaks expectations 19:11:52 people have a mental model about how it works 19:12:15 sipa: maybe I'm confused on the format of HD...seems you can build a list of derivation secrets which is based on a non-encrypted private key which is unexportable? 19:12:19 sipa: and then that would not be the case 19:12:21 Yes. But I vaguely remember that we once said we don't want to mix private-key wallets with public key derivation... and this makes very much sense to me 19:12:32 (dont know the format of HD, but we could do something else if its way better) 19:12:47 BlueMatt: if you have the parent public key + private child key, you can compute all private child keys 19:12:57 If we would do child pubkey derivation, keypools could be removed (at least for HD) 19:13:05 BlueMatt: that is an inevitable weakness of EC based derivation 19:13:19 What sipa said 19:13:20 BlueMatt: and it is reason why bip32 has hardened keys 19:13:30 which core uses 19:13:31 sipa: even if your list of privkeys is based on adding a new random value to the previous privkey where the new random value is just a hashchain of a private secret? 19:13:53 BlueMatt: then you lose public derivation 19:14:13 (the ability to compute child pubkeys without knowing the parent privkey) 19:14:25 lets take this offline 19:14:29 sounds good 19:14:35 back to the topic: what GAP limit should we enforce by default? 19:14:45 1000 19:14:52 default keypool 10k 19:14:54 Yeah.. I like this 19:15:01 But only for encrypted wallets? 19:15:09 IMO we should (only encrypted) 19:15:10 but in general i believe that most cases where the public derivation is wanted, just use huge precomputed key lists 19:15:14 non encrypted can say with 100 19:15:18 jonasschnelli: meh 19:15:26 why bother differentiating? 19:15:28 why only encryption? I don't think that makes sense. 19:15:36 True, the gap limit must be the same.. right 19:15:41 sry 19:15:42 less complexity please, and keys are cheap. 19:15:59 Okay, ... I'll bump it to 1000 19:16:10 [13bitcoin] 15jtimon opened pull request #10339: Optimization: Calculate block hash less times (06master...06b15-optimization-blockhash) 02https://github.com/bitcoin/bitcoin/pull/10339 19:16:29 Next question: the tests are mostly running with a keypool size of 1... so the gap limit stuff is only enforced for the new test in #10240 19:16:30 https://github.com/bitcoin/bitcoin/issues/10240 | Add HD wallet auto-restore functionality by jonasschnelli · Pull Request #10240 · bitcoin/bitcoin · GitHub 19:16:34 Is that a problem? 19:16:36 jtimon: thanks for working on that. 19:17:22 (but maybe take the test question offline). 19:17:37 Well,.. keypool size is answered... all good. Thanks for reviews. :p 19:17:51 gmaxwell: no problem, thank you for pointing it out the other day 19:19:09 other topics? 19:19:43 review, review, review, review, review :) 19:19:53 yes, let's go over priority reviews 19:20:04 https://github.com/bitcoin/bitcoin/projects/8 19:20:05 #topic review requests 19:20:17 Can #9980 be merged? Might be some what controversial 19:20:23 https://github.com/bitcoin/bitcoin/issues/9980 | Fix mem access violation merkleblock by Christewart · Pull Request #9980 · bitcoin/bitcoin · GitHub 19:20:35 Chris_Stewart_5: we're super backlogged on review right now :( 19:20:40 I thought jnewberry did a good job with the comments 19:20:56 Chris_Stewart_5: I can't see an tested or untested ACK there 19:21:10 like, super backlogged-not-gonna-get-everything-for-0.15 backlogged :( 19:21:30 That's fine :-). Thought I would bring it up since asking for topics 19:21:39 we can add it to the review heap 19:22:10 can we remove #8694 until it gets fixed+rebased? 19:22:13 https://github.com/bitcoin/bitcoin/issues/8694 | Basic multiwallet support by luke-jr · Pull Request #8694 · bitcoin/bitcoin · GitHub 19:22:25 it seems to have been in a constant state of not-reviewable since it was added to the "high priority for review" 19:22:26 sorry, when it 0.15 feature freeze 19:22:31 luke-jr: plans to rebase it? 19:22:50 instagibbs: 2017-07-16 19:22:58 eep, ok 19:23:25 I though MW was one of the high profiled features targets for 0.15.. 19:23:27 is there anything else that needs to be done for #9494 ? 19:23:28 I just did? :/ 19:23:28 https://github.com/bitcoin/bitcoin/issues/9494 | Introduce an ArgsManager class encapsulating cs_args, mapArgs and mapMultiArgs by jtimon · Pull Request #9494 · bitcoin/bitcoin · GitHub 19:23:29 sdaftuar: asks for #9208 19:23:31 https://github.com/bitcoin/bitcoin/issues/9208 | Improve DisconnectTip performance by sdaftuar · Pull Request #9208 · bitcoin/bitcoin · GitHub 19:23:56 not really sure how to address the mapMultiArgs thing 19:24:03 besides refactoring everything using it 19:24:06 I add 9208 to the review-prio-list 19:24:09 on the list we have #8855 from me, which remains being simple to review 19:24:11 https://github.com/bitcoin/bitcoin/issues/8855 | Use a proper factory for creating chainparams by jtimon · Pull Request #8855 · bitcoin/bitcoin · GitHub 19:24:27 jonasschnelli: you already have one 19:24:39 I really would like to see us get per-txout + atomic merged sooner rather than later, so we can get more testing time on the code. 19:24:39 BlueMatt: It's sdaftuar. :P 19:24:52 ohoh 19:24:54 yes, sorry 19:24:55 luke-jr: refactoring everything that uses mapMultiArgs is what #9494 does 19:24:57 https://github.com/bitcoin/bitcoin/issues/9494 | Introduce an ArgsManager class encapsulating cs_args, mapArgs and mapMultiArgs by jtimon · Pull Request #9494 · bitcoin/bitcoin · GitHub 19:24:57 No worries... I protect the ratio. :) 19:25:05 jonasschnelli: I read that as "add for me", not "added" 19:25:05 jtimon: k, I'll take a look 19:25:09 jtimon, will review 19:25:18 gmaxwell: agreed 19:25:20 awesome, thanks 19:25:58 let's put 9494 on the list this week 19:26:04 either way, #8694 probably needs deleted 19:26:06 https://github.com/bitcoin/bitcoin/issues/8694 | Basic multiwallet support by luke-jr · Pull Request #8694 · bitcoin/bitcoin · GitHub 19:26:11 BlueMatt: why? 19:26:12 I guess soon we have to introduce a review/open-new-PR ratio (only allowed to open a PR is you have carefully reviewed other PRs) 19:26:20 luke-jr: because its not reviewable? 19:26:20 oh, from the list only, ok 19:26:25 yeayea 19:26:34 i want to keep 8694 as a priority for 0.15 19:26:51 #8855 is already in the list by jtimon 19:26:52 https://github.com/bitcoin/bitcoin/issues/8855 | Use a proper factory for creating chainparams by jtimon · Pull Request #8855 · bitcoin/bitcoin · GitHub 19:26:52 sipa: there's already one from me on the list 19:27:08 sipa: I'm just saying gotta remove it from the list because its not reviewable atm, even if we want it for 0.15 19:27:23 BlueMatt: agree 19:27:44 jtimon: let's focus on the args refactoring first... it seems that that will more easily go stale 19:27:49 0.15 and priority-review are two diff lists for a reason; let's do jtimon's PR first 19:28:09 luke-jr: agree 19:28:59 any further topics? 19:29:13 sipa: where are things with per-txo? 19:29:31 #10195 19:29:33 https://github.com/bitcoin/bitcoin/issues/10195 | Switch chainstate db and cache to per-txout model by sipa · Pull Request #10195 · bitcoin/bitcoin · GitHub 19:29:37 gmaxwell: needs more review, could use side-by-side benchmarks incl: memory usage, disk usage, performance numbers 19:29:50 yes, i'm planning to do benchmarks 19:30:19 BlueMatt: "much faster" 19:30:28 other todos are better upgrade code (with a fancy progress bar...), that doesn't leave gigabytes of uncompacted data in the chainstate 19:30:41 but i believe it is functionally complete and tested 19:31:45 alright, if there are no more topics I'd emplore people to keep reviewing the big 0.15 things, since it looks like we're gonna slip a few, which is sad 19:31:46 it seems to make the chainstate some 20% larger 19:32:18 i'll report numbers on the PR, no need to discuss here 19:32:24 BlueMatt: ack 19:32:31 #endmeeting