19:00:30 #startmeeting 19:00:30 Meeting started Thu May 23 19:00:30 2019 UTC. The chair is wumpus. Information about MeetBot at http://wiki.debian.org/MeetBot. 19:00:30 Useful Commands: #action #agreed #help #info #idea #link #topic. 19:00:41 ohai 19:00:50 #bitcoin-core-dev 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 kvaciral 19:00:58 hi 19:01:01 hi 19:01:05 Hi 19:01:08 only here for 30 min or so (if the meeting even goes that long) 19:01:15 hi 19:01:15 hi 19:01:47 hi 19:01:49 proposed topics? (none on moneyball 's list) 19:02:10 hi 19:02:38 hi 19:02:46 hello 19:03:03 hello 19:03:23 #topic High priority for review 19:03:32 https://github.com/bitcoin/bitcoin/projects/8 19:04:16 current PRs: #15427 #15741 #15759 #15024 #15649 19:04:20 https://github.com/bitcoin/bitcoin/issues/15427 | Add support for descriptors to utxoupdatepsbt by sipa · Pull Request #15427 · bitcoin/bitcoin · GitHub 19:04:21 hi 19:04:23 https://github.com/bitcoin/bitcoin/issues/15741 | Batch write imported stuff in importmulti by achow101 · Pull Request #15741 · bitcoin/bitcoin · GitHub 19:04:26 https://github.com/bitcoin/bitcoin/issues/15759 | [p2p] Add 2 outbound blocks-only connections by sdaftuar · Pull Request #15759 · bitcoin/bitcoin · GitHub 19:04:27 https://github.com/bitcoin/bitcoin/issues/15024 | Allow specific private keys to be derived from descriptor by meshcollider · Pull Request #15024 · bitcoin/bitcoin · GitHub 19:04:30 https://github.com/bitcoin/bitcoin/issues/15649 | Add ChaCha20Poly1305@Bitcoin AEAD by jonasschnelli · Pull Request #15649 · bitcoin/bitcoin · GitHub 19:04:36 hi 19:04:37 can I ask that #15976 be added? it's prone to rebase conflicts and pretty close to ack-threshold for merge (I think) 19:04:44 https://github.com/bitcoin/bitcoin/issues/15976 | refactor: move methods under CChainState (pt. 1) by jamesob · Pull Request #15976 · bitcoin/bitcoin · GitHub 19:04:54 (and blocks the assumeutxo project) 19:04:55 jamesob: of course 19:05:13 wumpus: thanks 19:05:16 done 19:05:20 Could we add #16059? Small but without it linux gitian builds are broken right now 19:05:22 https://github.com/bitcoin/bitcoin/issues/16059 | configure: Fix thread_local detection by dongcarl · Pull Request #16059 · bitcoin/bitcoin · GitHub 19:06:02 dongcarl: sure 19:06:17 fanquake: thanks 19:06:18 hi 19:06:26 I think that can be merged quite soon. I'm testing it at the moment. 19:06:37 Have added to high prio. 19:06:40 thank you 19:06:45 why are we using thread_local again btw? 19:06:55 for thread names 19:06:56 I thought that was removed at some point 19:07:12 cory and I came up with a way to do without at some point but it was pretty convoluted 19:08:19 It's also linux and openbsd? only atm. Broken on win, freebsd and we can't use it on macOS until we are using a newer sdk. 19:08:34 doesn't pthread have a way to keep track of thread names? 19:09:13 I thought that was how we did that, anyway 19:09:17 fanquake: you mean SDK for the depends build? 19:09:21 that'll also show up in top and such 19:09:28 there's some posix key-value store API we were using with the pthreads id to avoid thread_local, but it ended up being a lot of code IIRC 19:09:49 pthread_setname or such 19:10:11 pthread_getname_np 19:10:16 jonasschnelli yes. Although now I think about it, we are building against 10.11 which I think means we can use it. Have to double check. 19:10:40 Also since this is nice for debugging, the depends build matters not too much 19:11:23 wumpus: https://github.com/bitcoin/bitcoin/blob/master/src/util/threadnames.cpp 19:11:56 do we have a whole util to keep track of thread names? wow 19:11:57 #16059 is a straightforward fix, simpler than rewriting thread names imo... 19:12:00 https://github.com/bitcoin/bitcoin/issues/16059 | configure: Fix thread_local detection by dongcarl · Pull Request #16059 · bitcoin/bitcoin · GitHub 19:12:11 ryanofsky: agree 19:12:26 I had no idea it was such a big issue, anyhow, any other topics? 19:12:40 * luke-jr for one finds thread names useful sometimes 19:12:47 we avoided doing pthread_getname because there are supposedly implementation problems (https://stackoverflow.com/questions/2369738/how-to-set-the-name-of-a-thread-in-linux-pthreads/7989973#7989973). see also the notes at the bottom of this PR description: https://github.com/bitcoin/bitcoin/pull/13099 19:12:48 https://github.com/bitcoin/bitcoin/issues/7989973 | HTTP Error 404: Not Found 19:14:17 jamesob:thanks 19:15:36 Not a topic, but I won't be able to attend tomorrows wallet meeting so could someone please volunteer to host it? 19:15:54 anyonw? 19:15:57 i'll be here, if there's interest 19:16:15 Maybe #15993 for a topic? Has been through a few iterations but seems to be more ready now? 19:16:17 I'll be there 19:16:18 https://github.com/bitcoin/bitcoin/issues/15993 | net: Drop support of the insecure miniUPnPc versions by hebasto · Pull Request #15993 · bitcoin/bitcoin · GitHub 19:16:39 fanquake:I think that should just be merged? 19:16:49 fanquake: is there anything to discuss about it? 19:17:26 did configure finally get updated? 19:17:38 not that I see.. 19:17:48 I don't know... 19:17:51 Seems like it is just shuffling things around and not actually dropping support 19:17:59 wumpus I haven't tested any of the changes, just seemed there was discussion about which versions to drop support for, and wether other versions had actually been patched. 19:18:20 it's dropping support for <10, which is fine, the only thing controversial was <14 19:18:21 looks like it would detect older miniupnpc libraries, then fail to compile 19:18:36 because that's still in debian table 19:18:38 stable 19:19:30 ok. 19:19:42 One other topic is suggestions for 0.18.1 backporting that aren't already in #16035 19:19:44 https://github.com/bitcoin/bitcoin/issues/16035 | 0.18.1: Backports by MarcoFalke · Pull Request #16035 · bitcoin/bitcoin · GitHub 19:19:46 * wumpus would prefer to drop support for miniUPnP completely but, don't feel like having that discussion 19:20:00 #topic backport suggestions for 0.18.1 19:21:23 anything? 19:21:47 maybe #14984? 19:21:49 https://github.com/bitcoin/bitcoin/issues/14984 | rpc: Speedup getrawmempool when verbose=true by promag · Pull Request #14984 · bitcoin/bitcoin · GitHub 19:22:17 it's not really a bugfix 19:22:19 It is not strictly a bugfix. 19:22:22 Apparently that isn't actually a clean backport, and maybe not worth it if it's just perfomance gain. 19:22:23 unless performance is *really* horrible right now 19:22:52 Only when the mempool is large ;) 19:22:53 if it's non-trivial to backport too then better not to, I think 19:23:15 right, large mempool, about 30% faster 19:23:27 no problem, just asked 19:23:38 no problem, thanks for suggesting something 19:24:14 I am mostly waiting on those to get merged: https://github.com/bitcoin/bitcoin/milestone/41 19:24:28 are we planning on doing a 0.18.1 soon btw? 19:24:38 I mean, is there anything motivating it? 19:25:10 nothing urgent, no 19:25:11 ops, forgot about #15453 19:25:12 https://github.com/bitcoin/bitcoin/issues/15453 | Starting bitcoin-qt with -nowallet and then opening a wallet does not show the wallet · Issue #15453 · bitcoin/bitcoin · GitHub 19:25:46 A couple of bug fixes for potentially confusing behaviour, like #15952, but nothing catastrophic 19:25:48 https://github.com/bitcoin/bitcoin/issues/15952 | Cant open wallet · Issue #15952 · bitcoin/bitcoin · GitHub 19:25:49 oh, maybe the gcc compile bug? 19:26:05 MarcoFalke:yes maybe that 19:26:13 But it seemed to only affect the tests, so ... flip a coin? 19:26:16 would be good to have that out of the way 19:26:23 we don't *know* 19:26:36 jup 19:26:39 #15983 19:26:41 https://github.com/bitcoin/bitcoin/issues/15983 | build with -fstack-reuse=none by MarcoFalke · Pull Request #15983 · bitcoin/bitcoin · GitHub 19:27:25 Maybe wait another week or two then, assuming outstanding PRs are merged, cut an rc1 ? 19:27:33 that definitely needs backport to 0.18 19:27:55 It is the first thing in #16035 19:27:57 https://github.com/bitcoin/bitcoin/issues/16035 | 0.18.1: Backports by MarcoFalke · Pull Request #16035 · bitcoin/bitcoin · GitHub 19:27:59 it's labeled for 0.17.2 but that's not very likely to happen 19:28:01 oh okay 19:28:04 has anyone done general benchmarks to see the affect of -fstack-reuse=none ? 19:28:10 jamesob 19:28:32 sipa https://github.com/bitcoin/bitcoin/pull/15983#issuecomment-490700321 19:28:34 I tried but I don't think I was doing it right 19:28:35 sipa: We couldn't find any significant changes on our hardware 19:28:46 I doubt it affects performance at all 19:28:47 MarcoFalke: that's not surprising, but good to confirm 19:28:48 just stack use 19:29:48 My only concern was that it would break some other performance optimization, sounds like it doesn't. 19:30:00 anyhow, upgrade to a compiler that doesn't have the bug (when there's one) 19:30:10 performance loss is preferable to random unpredictable corruption 19:30:22 certainly for something like bitcoin 19:30:29 right 19:31:24 (I mean it's obviously different if say, validation becomes two times as slow or something extreme like that, but we'd have noticed) 19:31:28 if the performance loss were truly significant though, we might want to look for other alternative workarounds, good that we don't need to. 19:31:34 of course 19:31:56 agree 19:32:01 any other topics? 19:32:45 is this worth it? https://github.com/bitcoin/bitcoin/pull/16065#issuecomment-494853746 19:33:54 avoiding hashing is always the best sha256 optimization :) 19:34:34 ;-) 19:34:43 (but if it's worth it depends on what slice of the total the 2.44s is, if it's on the whole initial sync it's neglible) 19:35:05 If anyone can reproduce #16027 that might be handy. Has come up a couple times now. 19:35:06 https://github.com/bitcoin/bitcoin/issues/16027 | client 0.18.0 crashes when computer wakes up from hibernation · Issue #16027 · bitcoin/bitcoin · GitHub 19:35:14 Yeah, sync is ~hours, so a second doesn't matter at all 19:35:28 MarcoFalke: right 19:35:29 wumpus: right, agree at the moment saving a couple of seconds isn't worth it 19:35:31 that sounds like it maybe more more relevant to propagation at the tip. 19:35:46 and that's within the measuring noise isn't it? 19:36:06 e.g. time from getting a block to sending the first non-HB peer. 19:36:31 gmaxwell: yes, that latency would be useful to measure 19:36:41 if it makes a significant difference there then it could still be worth it 19:36:48 the fact that we're rehashing in general suggests we've got something kinda wrong, layout wise. 19:36:55 true 19:37:27 ok, I'll keep doing those profiles 19:37:40 Could just cache the hash in the data structure? 19:37:40 depends also on how much more complicated it makes the code, or whether it increases memory use, etc 19:37:58 how much it increases memory use, of course caching increases memory use 19:38:03 * MarcoFalke ducks 19:38:07 jamesob: mr profiling... do we have any way to generally benchmark block-propagation-speed-at-synced-tip ? 19:38:39 mmm short of parsing verbose debug.log, I don't think so. not built into bitcoinperf yet, at any rate :) 19:38:41 MarcoFalke: the hash is only necessary while processing/validating 19:39:07 jamesob: i think it would be very valuable to have; especially for scenarios where the block's transactions have already been validated in the mempool 19:39:25 as there are very relevant performance improvements there that'd generally be dwarfed by script validation 19:39:41 sipa: Would that require two nodes? 19:39:53 or are you talking about a micro benchmark 19:39:56 sipa: yeah, agree that's a metric worth tracking 19:40:05 happy to build something for it 19:40:22 perhaps we should do some brainstorming about that, but maybe outside the meeting 19:40:22 jamesob: cool! 19:40:46 If anyone is interested in guix building, dongcarl has been doing a lot of work in #15277. Would be good to get some more builds to compare hashes with. 19:40:48 https://github.com/bitcoin/bitcoin/issues/15277 | [Help Wanted] contrib: Enable building in Guix containers by dongcarl · Pull Request #15277 · bitcoin/bitcoin · GitHub 19:41:00 sipa: If it is for bitcoinperf: https://github.com/chaincodelabs/bitcoinperf/issues 19:41:03 sipa: there are tests in bitcoinfibre. 19:41:07 fanquake: if there's clear instructions to test, I'm happy to try 19:41:16 ah btw, one thing that takes a while is base_uint& base_uint::operator>>=(unsigned int shift) 19:41:37 wumpus: I'll update and link you 19:41:44 dongcarl: great ! 19:41:46 promag: inside the division logic for retargetting that's expected 19:41:51 most of the time is in shifts 19:42:14 MarcoFalke: The logical place to cache hashes in block objects themselves, doing so there is irrelevant memory use wise (32 bytes in a 1.2MB object), but complicates constness. 19:42:48 I have a setup/container guide for a quick Guix setup here as well: https://github.com/fanquake/core-review/tree/master/guix 19:43:03 promag: if thats actually taking a non-trivial amount of some real usecase, the division could be made faster... it uses a fairly naieve algorithim right now. 19:43:05 agree it's irrelevant on block objects, it's mostly CBlockIndex where it counts because so many of them are permanently in memory 19:43:28 fanquake: cool! 19:44:08 fanquake:nice 19:45:32 any other topics? 19:47:00 #endmeeting