19:00:54 #startmeeting 19:00:54 Meeting started Thu Aug 3 19:00:54 2017 UTC. The chair is wumpus. Information about MeetBot at http://wiki.debian.org/MeetBot. 19:00:54 Useful Commands: #action #agreed #help #info #idea #link #topic. 19:01:06 hi 19:01:18 hi 19:01:20 hi 19:01:24 #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 19:01:36 hi. 19:01:48 hi 19:01:49 hi 19:01:50 0.15.0rc1 is planned for the 6th (next sunday), so let's go over the open issues again 19:02:50 there's not much anymore 19:02:57 https://github.com/bitcoin/bitcoin/milestones/0.15.0 19:03:16 Hi 19:03:17 (and the scripted-diffs are option, and should be done at the last minute to not conflict with anything else) 19:03:46 Keypool topup #10882 is the most complicated PR open still, but should be almost ready 19:03:50 https://github.com/bitcoin/bitcoin/issues/10882 | Keypool topup by jnewbery · Pull Request #10882 · bitcoin/bitcoin · GitHub 19:04:01 https://github.com/bitcoin/bitcoin/issues/10977 19:04:02 could go 19:04:09 (makes test_bitcoin valgrind-better) 19:04:11 and is trivial 19:04:32 yeah, I've been working on 10882 today. Should be able to push my commits in the next hour or two 19:04:34 I'm not really fishing for new things to add to 0.15 19:04:55 jnewbery made a suggestion to fix my outstanding concern in review. 19:05:00 but if there are things that could be merged without affecting anything else that's ok 19:05:07 after #10758, #10919 seems simple to review, it's only +14-13 19:05:09 https://github.com/bitcoin/bitcoin/issues/10758 | Fix some chainstate-init-order bugs. by TheBlueMatt · Pull Request #10758 · bitcoin/bitcoin · GitHub 19:05:10 https://github.com/bitcoin/bitcoin/issues/10919 | Fix more init bugs. by TheBlueMatt · Pull Request #10919 · bitcoin/bitcoin · GitHub 19:05:35 it's also already marked 0.15 19:05:35 i think there's a one-liner that could be used to fix the issue in 10977, if it's deemed too much of a change 19:05:41 BlueMatt: I'd like to see 10977 fixed! but darn I wish that patch was smaller and easier to review. 19:05:49 yes, just needs some ACKs 19:05:55 could be smaller, but is easy to review imo 19:05:57 there's one commit in #10919 that i'm hoping others can review/ack 19:05:59 https://github.com/bitcoin/bitcoin/issues/10919 | Fix more init bugs. by TheBlueMatt · Pull Request #10919 · bitcoin/bitcoin · GitHub 19:07:14 which one? 19:07:21 the first, i believe 19:07:39 yep 19:08:13 the threadgroup one? seems obviously sane to me, though it does mean things need to be interrupted too 19:08:45 well i think the point is that there is a comment there that notes we dont do it "because dragons" 19:09:00 i believe strongly that it is safe, and qt does it, but "dragons" 19:09:04 it is very bad practice not to wait for threads before exiting 19:09:37 yes, qt does it already, it's somewhat less scared of dragons it seems :) 19:09:51 isnt qt's logo a dragon or something? 19:10:08 heh, think you're thinking of kde 19:10:14 oh, yea 19:10:22 (e.g. due to qt's handling of shutdown we also needed #10832) 19:10:24 https://github.com/bitcoin/bitcoin/issues/10832 | init: Factor out AppInitLockDataDirectory and fix startup core dump issue by laanwj · Pull Request #10832 · bitcoin/bitcoin · GitHub 19:10:35 anyhow that commit looks good to me, I don't think there's any dragons left 19:11:24 sounds-good-to-me-ack 19:12:01 ok, wow, that seems to be all that is left between here and 0.15.0rc1 19:12:13 ! 19:12:19 :) 19:13:10 wumpus: i had an assert crash this morning, i imagine it'll be a simple bug.. hopefully i'll have a PR this afternoon, just haven't had time to look at it yet 19:13:11 (there's another PR #10971 by cfields for fixing depends builds, but I don't think that needs disussion, it's a one-liner in the build system) 19:13:12 https://github.com/bitcoin/bitcoin/issues/10971 | build: fix missing warnings and sse42 in depends builds by theuni · Pull Request #10971 · bitcoin/bitcoin · GitHub 19:13:45 morcos: ouch, can you open an issue to track it? 19:13:48 yea, nothing major 19:14:06 yes will open one or the other shortly 19:14:29 ok, thanks 19:15:06 do we need any updates to bips.md for 0.15? 19:15:18 hmm, good question 19:15:19 (that's the item in the release process that still has a ? here) 19:15:46 is there a bip that recommends hd split? 19:15:53 BlueMatt: bip32? :p 19:16:15 there's also "Update `src/chainparams.cpp` chainTxData with statistics about the transaction count and rate." left 19:16:29 want me to do that? 19:16:31 and the BLOCK_CHAIN_SIZE, but that's straightforward 19:16:49 yes, if you know what's exactly to be done there that'd help :) 19:17:01 sure 19:18:38 thanks 19:18:55 short topic: bip173 unit tests issue 19:19:09 #topic bip173 unit tests issue 19:19:13 There are a few more things for release notes 19:19:43 so, bip173 specifies how to translate address strings to witness version/program, and defers to bip141 for encoding that to scriptPubKeys 19:19:59 however, the unit tests actually test the whole step from address to scriptPubKey 19:20:07 turns out, incorrectly 19:20:26 the tests and reference implementation (of the tests) was wrong, and every reimplementation copied it 19:21:05 The the error was that it confused hex and dec values. 19:21:07 i've made a PR to update the BIP, and all reference implementations i could find, but this is kind of scary 19:21:17 corner-cases wrong? or in all cases? 19:21:24 jnewbery: agreed, but release notes need to be finished before -final, not -rc1, so it's not a blocker 19:21:36 cfields: it assumed OP_n was encoded as 0x80 + n, rather than 80 + n 19:21:57 sipa: so they generate garbage scripts? 19:22:01 got it. Thanks wumpus 19:22:06 BlueMatt: the tests, yes 19:22:26 the code itself doesn't contain a conversion to scriptPubKey at all, only a conversion to witness version/program 19:22:27 cfields: It was wrong for witness program versions other than 0 19:22:34 yikes 19:22:39 oops 19:22:44 so this could happily have been deployed and started causing problems when v1 was used. 19:22:47 but the tests contain a version/program -> scriptPubKey converter in order to be able the test 19:23:05 well if it generated garbage scripts, not much that can be done but fix it 19:23:13 are you asking if we should like change the prefix now? 19:23:23 no 19:23:28 just raising awareness 19:23:32 ok, cool 19:23:38 perhaps an email to the -dev list would also be good? 19:23:38 Also, it highlighes an implementation footgun, I suggested some warning text in the BIP itself. One protection here is that the particular error in sipas' code would result in non-standard outputs. 19:23:42 sdaftuar: yes 19:24:06 BlueMatt: I did make a suggestion that we consider changing it to break the checksum, but there doesn't appear to be reason to. 19:24:18 ok 19:24:24 just to be clear what we are talking about, we're not talking about anything merged into Core, but code referenced from the BIP 19:24:25 awareness raised! 19:24:27 Especially since if someone had slavishly reimplemented the error in the reference, they'd produce non-standard outputs. 19:24:31 morcos: indeed. 19:24:52 still, a bit scary 19:25:06 (though i'd like to PR it to core soon - apparently last week it was suggested to do that in 0.15.1?) 19:25:21 Don't start a debate about the name of the version. :P 19:25:25 haha 19:25:42 (though i'd like to PR it to core soon - apparently last week it was suggested to do that in some soon next version) 19:25:51 It also suggests that BIP173 support's test plan should include testing it with other witness version numbers. :) 19:25:51 prs welcome :) 19:26:11 sipa: well fix the testing shortfalls I found in the C++ version please. :) 19:26:17 PRs to improve the tests are always welcome anyhow 19:26:17 gmaxwell: of course 19:26:23 anyway, end topic 19:26:28 ok, other topics? 19:28:04 uh 19:28:05 yes. 19:28:14 So service bits and altcoins. 19:28:21 #topic service bits and altcoins 19:28:29 wait are altcoins using serice bits now? 19:28:41 oh, right 2x did 19:28:43 Bcash is using our port, p2pmagic, etc. They distinguish themselve with a blinking service bit. 19:28:44 what is wrong with people 19:28:54 (also 2x will do this too it seems) 19:29:03 gmaxwell: can someone open a pr to change this? or do they refuse to work properly? 19:29:04 gmaxwell: i was under the impression that they were planning to change the magic soon 19:29:09 We mostly ban them when they send us transactions or headers. 19:29:19 cfields: not when I looked three days ago, maybe now. 19:29:36 OK, maybe I will ask here. What format are the bitcoin .dat files in data/blocks/*.dat? is that leveldb? what is it exactly? 19:29:47 karelb: meeting, not now 19:29:47 If so then the issue becomes moot, otherwise I was going to suggest we ban these bits on connect. The downside is we lose the bits basically forever. 19:29:48 they are p2p network format 19:29:51 ok sorry 19:29:52 oops, yes, layer 19:30:02 sorry going out 19:30:14 * karelb apologizes 19:30:17 gmaxwell: yes, first should be someone bludgening them to work properly 19:30:23 gmaxwell: before we start burning service bits 19:30:44 BlueMatt: people have been since before they started. Obviously I'll go monitor but I'm not super confident. 19:30:52 gmaxwell: why not just ban for eg the next 3 months or something? 19:30:55 BlueMatt: gmaxwell IIRC they will be changing their magic and port 19:30:56 if we need to do anything at all 19:31:03 dunno about 2x 19:31:04 One reason burning service bits may not be so bad is because we are due to replace the addr message for i2p and NG-HS support. 19:31:04 achow101: what about 2x? 19:31:22 So we could at that point just define a new service flagging mechenism. 19:31:26 gmaxwell: yea, does anyone have a spec for that? 19:31:33 Not yet. 19:31:36 k 19:31:51 Well if they're finally going to change it, it becomes moot.. but the same issue arises with 2x. 19:32:16 how would a service bit help here? 19:32:19 well someone needs to bludgen the 2x folks to change it, otherwise we start banning for a few months 19:32:20 just ban everyone without NODE_SEGWIT? :p 19:32:37 wumpus: we still want to support non-upgraded nodes. 19:32:48 but they won't have any new version bit either 19:32:58 that was my point, not to suggest that seriously :) 19:33:11 wumpus: oh no, you misunderstand: ABC and 2x both set randomly generated service bits. 19:33:23 gmaxwell: eh? 19:33:26 I think sdaftuar's suggestion is reasonable, assuming they refuse to do something sane 19:33:27 (which they've helpfully ignored the gigantic comment in the code that tells you to at least inform the list.) 19:33:44 oh 19:33:45 sdaftuar: I hadn't considered a time limited ban. Good point. 19:33:46 oh you mean banning everything that sets their version bit? 19:33:53 yes, that'd be doable 19:33:56 wumpus: yes, with a time limit 19:33:59 wumpus: well disconnecting, not banning. 19:34:06 nah, ban for 3 months 19:34:08 Okay thanks, Time limit makes sense. duh. 19:34:16 temporarily, yes 19:34:24 wumpus: opened issue #10981, easy fix, but i'll let someone else do the PR as i'm not in the office for next week. please tag with 0.15. 19:34:25 https://github.com/bitcoin/bitcoin/issues/10981 | resendwallettransactions asserts if walletbroadcast=0 · Issue #10981 · bitcoin/bitcoin · GitHub 19:34:32 BlueMatt: banning creates problems when you run multiple things on one machine. 19:34:40 gmaxwell: meh 19:34:40 morcos: thanks, will tag later (not logged in now) 19:35:03 gmaxwell: they refused to do something that wasnt astoundingly broken, if it means their users get fucked, its not really my problem 19:35:13 (or if someone else can do it) 19:35:21 BlueMatt: so chaincode ip will be banned. nice. 19:35:37 morcos: -connect=altcoin.dns.seed 19:35:38 :) 19:36:07 agree that banning goes too far, just not allow connections 19:36:13 maye just disconnect? 19:36:15 there's no point in banning everything after that 19:36:16 what? no. matt, doing that will ban Bitcoin Core users when someone on the same IP ran crapware. 19:36:19 perhaps better for after the meeting, but I'm still not sure why #8498 wasn't suitable for 0.15 ... 19:36:21 https://github.com/bitcoin/bitcoin/issues/8498 | Near-Bugfix: Optimization: Minimize the number of times it is checked that no money... by jtimon · Pull Request #8498 · bitcoin/bitcoin · GitHub 19:36:55 To be clear this is important because these useless altcoin nodes waste connection slots, and are potentially at risk of gobbling up our initial headers fetch. 19:36:57 gmaxwell: ugh 19:37:04 fine, disconnect 19:37:15 at some point someone is gonna create some altcoin crapware that reconnects agressively, though 19:37:16 disconnect up until a certain date 19:37:20 some spv forks probably will 19:37:23 what would be that point? 19:37:33 because crapware 19:37:34 it would disconnect immediately after the version message 19:37:37 Also, looks like ABC has some kind of deadlocking bug, because I see a few of them just going unresponsive to anything but pings, which delays them getting banned for being on the wrong network. 19:37:38 +1 disconnect up to certain date, but i think it should be 12 mos and not 3 19:37:41 do not make assumptions about crapware working in a sane way 19:37:42 banning would ban 1 message sooner 19:37:47 no reason we'll need that next service bit right away 19:37:59 morcos: sure, that sounds fine 19:38:04 s/ban/disconnect 19:38:05 morcos: seems reasonable 19:38:19 ack on disconnect based on service bits for 12months or similar. 19:38:38 unless we start adding banned nodes to the local firewall, there's no serious difference between disconnecting on connect or after the version message 19:38:51 though in general, one of these clowns is going to squat service buts we're in the process of trying to use. :( I have no suggestion on dealing with that. 19:39:12 but i think it'd be worth a quick email/github message to jgarzik to check that they aren't imminently changing their plan 19:39:14 lets deal with that when we get there 19:39:16 s/buts/bits/ 19:39:23 well if they change the magic and port we can stop worrying about the service bits they claim 19:39:31 morcos: yes, as I stated previously we should tell these guys to change network magic *first* 19:39:33 also we could at that point check for NODE_SEGWIT + our service bit 19:39:34 yes but what if they change to a different service bit 19:39:41 morcos: there is some PR where people have been arguing for ages, about this, so I'm doubtful but sure. 19:39:54 might as well ask first and tell him what we're planning on doing 19:39:57 change to a different version bit? what would that accomplish? 19:40:07 whooo knows?!! 19:40:11 At the end we're doing them a favor, there are a lot more bitcoin nodes than random altcoin nodes, so these incorrect connections tend to cause them a lot more problems than us. 19:40:22 yup 19:40:27 ok, probalem solved 19:40:34 who wants to go tell them that we're gonna disconnect them? 19:40:39 if avoiding detection is the point, they could better stop setting their version bti at that point is better than randomly cycling it according to moon phases 19:41:00 BlueMatt: perhaps we should just open the disconnect PR and ping them to comment on it? 19:41:06 bleh 19:41:15 gmaxwell: wfm, but seems like someone should open an issue 19:41:18 I vote morcos does it 19:41:39 throw him to the wolves... enh? what did he do so wrong? 19:41:42 actually, it was sdaftuar's idea, he can do it 19:41:49 throw him to the wolves... enh? what did he do so wrong? 19:42:04 seems we'd rather not invite certain discussions to our github but eh 19:42:25 gmaxwell: fine, I'll deal with it 19:42:35 BlueMatt: good, I know what you did so wrong. :P 19:43:04 but if the bits are selected randomly, how does burning them help? 19:43:34 jtimon: s/randomly/arbitrarily/ 19:43:38 they aren't selected randomly, they're not doing service bit hopping or something like that 19:43:42 they're not different every time 19:43:50 they just arbitrarily picked one 19:43:50 sipa: I see, thanks 19:43:54 jtimon: I don't follow your question. The altcoin efforts have selected randomly but hardcoded the result or their fair dice roll. :) 19:44:13 +1 sdaftuar doing it... i'm trying to pack 19:44:13 gmaxwell: yeah, got it 19:44:16 and just failed to follow the giant comment in the code to make a public announcement about it even. 19:44:22 e.g. they have monkeys throw darts to select one when they need it, not every connection 19:44:51 oh nm, or bluematt 19:45:22 I think morcos is clearly just trying to throw anyone else under the bus, sounds like he should do it, then :p 19:45:25 anyway, next topic? 19:45:49 ;;action bluematt goes under the bus 19:45:50 * gribble bluematt goes under the bus 19:46:02 see, the robot overlords agree 19:46:04 ;;action goes under the bus 19:46:04 * gribble goes under the bus 19:46:17 we can't/shouldn't ban 2x peers until they fork 19:46:23 achow101: yes we should 19:46:40 I think this was mainly about BCC which already forked 19:46:51 BlueMatt: why? we won't be giving them invalid stuff until they fork, and vice versa 19:47:13 hash that out outside of the meeting plz. 19:47:24 achow101: on the other hand, adding logic to the code to check whether they've forked would complicate things more than just disconnecting on a service bit 19:47:29 yeah 19:47:40 next topic? 19:47:46 But in general if someone is going to make broken software, we can only go so far to accomidate it. 19:47:49 we've run out of topics 19:48:00 wumpus: we know when they activate. at block X start banning them 19:48:18 I doubt we do. 19:48:31 perhaps better for after the meeting, but I'm still not sure why #8498 wasn't suitable for 0.15 ... 19:48:33 achow101: I'm not jumping through hoops to make sure altcoins stay in consensus until *right before* they fork... 19:48:33 https://github.com/bitcoin/bitcoin/issues/8498 | Near-Bugfix: Optimization: Minimize the number of times it is checked that no money... by jtimon · Pull Request #8498 · bitcoin/bitcoin · GitHub 19:48:33 #endmeeting