19:02:49 #startmeeting 19:02:49 Meeting started Thu Oct 4 19:02:49 2018 UTC. The chair is wumpus. Information about MeetBot at http://wiki.debian.org/MeetBot. 19:02:49 Useful Commands: #action #agreed #help #info #idea #link #topic. 19:02:55 promag: sure 19:02:58 hi 19:03:00 thanks! 19:04:12 hi 19:05:05 i bet many are sleeping or about to 19:05:07 #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:05:18 yes—I expect so too 19:05:25 hi 19:05:43 don't know if we really have things to discuss without the people in Tokyo 19:05:56 * jonasschnelli is sad to miss SB tokyo 19:06:01 * wumpus too 19:06:17 #MeToo 19:06:22 sri 19:06:25 heh 19:06:38 lol 19:07:26 hi 19:07:27 anything for high-priority for review? or what can be merged? I haven't been able to focus much this week 19:07:44 #14335 and maybe #14336 19:07:46 https://github.com/bitcoin/bitcoin/issues/14335 | net: refactor: cleanup ThreadSocketHandler by pstratem · Pull Request #14335 · bitcoin/bitcoin · GitHub 19:07:47 https://github.com/bitcoin/bitcoin/issues/14336 | net: implement poll by pstratem · Pull Request #14336 · bitcoin/bitcoin · GitHub 19:08:19 i still cant exactly ping down why some of the commits in 14336 fail tests but the final one doesn't 19:08:28 and they seem like races more than actual failures 19:08:41 do they fail locally for you too? 19:08:43 or only on travis? 19:09:01 wumpus, only on travis 19:09:12 aww 19:09:25 I can try running them in some weird environments 19:10:29 14335 however passes everywhere 19:10:34 you might try inserting sleeps to see if you can trigger something locally. 19:10:38 so if they are races they only happen part of the time, not always 19:10:45 it's just refactoring no logic changes at all now 19:11:02 well if it causes test failures there might be logic changes you don't know about 19:11:07 gmaxwell, i can randomly trigger the rpc_zmq.py test to fail 19:11:14 I don't think a pure refactoring can result in more races 19:11:17 but it's zmq so i would expect it to be very racey 19:11:27 wumpus, yeah that pr doesn't have any issues 19:11:34 no, zmq is not inherently racy 19:11:35 it's just the one implementing poll() 19:11:43 (this is why it's two separate pulls) 19:12:10 wumpus, the test is though, it starts the node and then instantly makes an rpc call for zmq notifications 19:12:14 (maybe our use of it is, I don't now) 19:12:25 ohh 19:12:27 the test is written in a racy way as described 19:12:27 cant probably make that more robust but im not super familiar with the testing framework 19:13:39 someone needs to take a look at it; we can't merge something that makes any test randomly fail, as it wil keep coming back in later PRs 19:13:51 #action reviews #14336 19:13:53 https://github.com/bitcoin/bitcoin/issues/14336 | net: implement poll by pstratem · Pull Request #14336 · bitcoin/bitcoin · GitHub 19:14:34 We should just fix that test, but is the zmq test the only one that fails? 19:14:46 There is something other tests do to wait until the node is ready. 19:15:00 gmaxwell, feature notifications fails on windows 19:15:01 yes, fixing the test is acceptable too if it is broken 19:15:17 but im having trouble replicating that for a whole bunch of reasons 19:16:15 gmaxwell, they wait on nodes to be synchronized i think, but that doesn't apply to the zmq test 19:16:31 (again im not exactly sure though) 19:16:58 which file is the zmq test 19:17:03 if there's multiple nodes connected to each other they need to wait to be synchronized 19:17:21 jcorgan, test/functional/rpc_zmq.py 19:17:26 test/functional/rpc_zmq.py 19:17:28 yes 19:17:34 jynx 19:19:02 okay, any other topics? 19:19:08 it's the assert on L31 that non-deterministically fails? 19:19:37 I could give a little update on our work on set recon relay which has been ongoing. 19:19:56 lol that test doesn't even *test* zmq 19:20:03 I don't understand how it can fail 19:20:38 it jst tests some administrative rpc functions related to zmq 19:21:02 gmaxwell: might be better to do that when there's more people 19:21:21 OK 19:21:24 but, is up to you 19:21:48 maybe it's interface_zmq.py 19:22:19 jcorgan: that's the one that really tests the zmq interface, yes 19:22:45 wumpus: well, I'd like to-- the people who aren't here will probably hear about it at the events there at. :) 19:22:48 right, but is that the one randomly failing? 19:23:19 phantomcircuit: I don't understand it, you make P2P changes, and a test completely unrelated to P2P starts failing 19:23:20 wumpus: I guess it can fail if the node isn't up by the time it attempts the rpc? 19:23:52 unless your poll somehow interferes with libevent, but I wouldn't understand why 19:23:55 like, e.g. poll having a sleep timeout during startup where the select didn't could slow down bringup slightly. 19:24:15 the test framework is smart enough to wait for the RPC interface to actually work, AFAIK 19:24:31 (there's this 'warmup' period that it needs to ignore, for example) 19:24:32 if so, then I've got no suggstions. :) 19:24:56 well it mightb be that this test does something ... special 19:25:15 #topic recon relay (gmaxwell) 19:25:42 Sipa, gleb, and I have been continuing to work on set recon relay. Gleb has made a lot of progress with simulations. 19:26:28 In his simulated network topology he shows that the best possible (no 'overhead') relay using 8 byte tx identifiers would use about 44x less bandwidth for relay than what the code currently does. 19:27:40 (optimal would basically be exach node gets exactly 1 inv per tx and no more) Simulations of our recon work don't quite achieve optimality (since we also want relay to be reasonably fast) but end up only using 2-3x the bandwidth of the theoretically optimal usage, which sounds pretty good compared to 44x. :) 19:28:25 Sipa and I (mostly sipa) have been working on optimizing the recon code itself, which is in part important because its performance helps tell us what parameters make sense to propose. 19:28:36 E.g. some benchmark results from last night: https://people.xiph.org/~greg/temp/srr2.png 19:28:42 nice ! 19:29:33 This shows how long it takes to do the computation for reconciling 150 differences (which is a good high watermark from glebs simulations), as a function of how long the short-txids we're using (in bits). 19:30:22 The graph shows that some sizes are much faster in the implementation currently, for optimization (and the number theory that enables those optimizations) reasons. 19:30:26 44x less bandwidth is more than impressive, I didn't know that the invs were such a large part of the traffic 19:31:25 Ah! that figure is perfectly efficient invs (one inv per host) vs invs in what we do today. Invs are a majority of traffic on nodes right now, but those figure ignore all the non-inv traffic. 19:31:25 but that's similar to my surprise how much (at least of outgoing traffic) is 'reject' messages 19:31:50 So in terms of actual total traffic impact, maybe halve those numbers for your expectations. 19:32:09 ohai 19:32:38 Basically gleb's simulator simulates a plausable bitcoin network topology, and then measures how transactions relay around in it with different relaying schemes, so we can try different ideas and measure their impacts. 19:32:55 So in any case, lots of progress going on there. 19:32:59 is this simulator available anywhere? 19:33:36 Not yet. Sipa and I need to convince gleb that his code is not too awful, I think. 19:34:10 no hurry, though it would be nice to have, if it was available we'd want to link it 19:34:16 Absolutely. 19:34:53 In any case, right now we're still in a fairly researchy mode, looping over detailed ideas and feeding the results back in to tell us what to try next. 19:35:48 Thats all I've got for now, unless sleepwalking sipa has more. 19:36:16 not really 19:36:52 you could say so, it's .. 04:36 there? 19:37:26 thanks for the update! 19:38:44 I guess it's time to close the meeting 19:39:04 #endmeeting