< gmaxwell> sipa: jonasschnelli: Here is the authentication protocol I was thinking of:
< gmaxwell> And this is an extension to the former that allows for mutual autentication while keeping the client identity private: https://people.xiph.org/~greg/auth1.txt This is useful because it would protect against a shared server tracking clients (e.g. observing what they broadcast), but still allow the client to authenticate for elevated service.
< gmaxwell> An example application where this would be important, is if clients paid a server for a priority access account. (more bandwidth, protection against DOS limits).. it would be unfortunate if the existance of such a service compromised the users privacy by giving them a persistant identity that the server could track them with. I don't think it's something we'd implement right away, but it shows
< gmaxwell> how our channel authentication could be extended.
< jonasschnelli> gmaxwell: Nice! Will try to fully understand it now...
< GitHub111> [bitcoin] paveljanik opened pull request #7810: Refactor AlertNotifyOnce out of UpdateTip (master...20160405_AlertNotifyOnce) https://github.com/bitcoin/bitcoin/pull/7810
< jonasschnelli> This looks ready: https://github.com/bitcoin/bitcoin/pull/7753
< StringerBell> ok it's killing me. How does that github bot work?
< jonasschnelli> StringerBell: Its publishing created/closed/merged PRs issues?
< * jonasschnelli> thinks GitHub is extraslow today.
< StringerBell> I mean it is a user but it's not connected to the channel
< StringerBell> Don't mean to get off topic but never seen that before.
< Luke-Jr> StringerBell: the channel is not +n which restricts sending to members
< sipa> StringerBell: be default you can send messages to a channel without being joined
< StringerBell> oh lol ok
< Luke-Jr> IRC isn't designed to be "rooms" as much as it is pub/sub IM ;)
< Luke-Jr> so JOIN = subscribe, and PRIVMSG = publish
< StringerBell> ah
< btcdrak> It can be set to authorise, join, mag and leave but then it is a lot more messages
< btcdrak> It is a github commit hook
< Luke-Jr> not like anyone abuses the -n
< wumpus> yes the side is a tad slow
< wumpus> site*
< GitHub37> [bitcoin] MarcoFalke opened pull request #7811: [0.12.2] qa Backports (0.12...Mf1604-qa012) https://github.com/bitcoin/bitcoin/pull/7811
< btcdrak> Last week's meeting summary: https://bitcoincore.org/en/meetings/2016/03/31/
< btcdrak> wumpus: can you try an experiment for me please, by kicking slackircbridge
< sipa> hmm, when i regenerate the script_tests, i get lines like:
< sipa> [
< sipa> ...
< sipa> ],
< sipa> instead of:
< sipa> [
< sipa> ...
< sipa> ],
< sipa> wumpus: you touched that code last
<@sipa> btcdrak: done
< btcdrak> sipa thanks
< btcdrak> sipa: thanks. one last time please boot him again.
< jonasschnelli> ping sdaftuar
< sipa> btcdrak: you've got op
< jonasschnelli> Or anyone else... check https://github.com/bitcoin/bitcoin/pull/7222/files#diff-df7d84ff2f53fcb2a0dc15a3a51e55ceR85 I think this is wrong.
< jonasschnelli> (Already merged)
< jonasschnelli> If a tx is not in the mempool and signal rbf, we can't be sure if it's rbfable.
< jonasschnelli> *signals
< sipa> why not?
< jonasschnelli> sipa: ancestors?
< jonasschnelli> sipa: I think this check is more appropriate: https://github.com/bitcoin/bitcoin/pull/7222/files#diff-d0eca4d0f80c5b045d2aa64609e811ecR28?
< jonasschnelli> Because a unconfirmed input could signal RBF?
< sipa> jonasschnelli: i think it's correct
< jonasschnelli> sipa: Yes. Me2!
< sipa> if it signals rbf by itself, it should be yes; if it doesn't, it's unknown
< sipa> and IsRBFOptIn can't be called for things not in the mempool
< jonasschnelli> if (!mempool.exists(hash)) {
< jonasschnelli> But "unknown" from the local peer perspective is right.
< sipa> what other perspective is there?
< jonasschnelli> We could miss a ancestor/input in the mempool that has a final nSequence and therefore the transaction would _not_ be replaceable.
< jonasschnelli> But however, I think its correct. Yes.
< jonasschnelli> But doing a tiny refactor (before I extend it to the GUI)
< sipa> jonasschnelli, wumpus: i don't understand the univalue json pretty printer
< jonasschnelli> write(2)
< jonasschnelli> sipa: what is unclear?
< sipa> it puts spaces between comma's and the end of a line
< jonasschnelli> sipa: yes. You need to ask jeff. :) Or fix it.
< jonasschnelli> sipa: Are you referring to your script_tests issue above?
< sipa> yes
< GitHub178> [bitcoin] jonasschnelli opened pull request #7812: Tiny refactor of `IsRBFOptIn`, avoid exception (master...2016/04/rbf_refact) https://github.com/bitcoin/bitcoin/pull/7812
< sdaftuar> jonasschnelli: pong. happy to review any refactors of that code...
< jonasschnelli> sdaftuar: Thanks. Not sure if it makes sense. I think the code is fine. Its just the exception that kinda disturbs me.
< jonasschnelli> sipa: it misses a newline before L100
< jonasschnelli> no wait...
< sipa> jonasschnelli: it's complicated; i'm writing a workaround for now
< jonasschnelli> L98-99 is wrong.
< jonasschnelli> I'll fix it.
< sipa> please add tests for the pretty printer, i think it's very easy to break
< jonasschnelli> sipa: yes.
< GitHub91> [bitcoin] MarcoFalke opened pull request #7813: [doc] Update port in tor.md (master...Mf1604-docTor) https://github.com/bitcoin/bitcoin/pull/7813
< GitHub153> [bitcoin] MarcoFalke opened pull request #7814: [qa] Switch to py3 (master...Mf1604-qaPy3) https://github.com/bitcoin/bitcoin/pull/7814
< jonasschnelli> sipa: script_tests.cpp uses "write(1,4)" (which means 1 whitespace indent, start at level 4).
< jonasschnelli> But there is a bug at the opening "[" (not the closing)
< GitHub79> [bitcoin] laanwj opened pull request #7815: Break circular dependency main ↔ txdb (master...2016_04_break_txdb_main_dep) https://github.com/bitcoin/bitcoin/pull/7815
< jonasschnelli> sipa: The pretty print is okay. It's the script_tests.cpp
< wumpus> btcdrak: still want me to kick slackircbridge?
< jonasschnelli> sipa: The pretty print is okay. It's the script_tests.cpp
< jonasschnelli> (sry)
< kinlo> is there a slackircbridge?
< wumpus> sipa: jonasschnelli: yes I had some problems generating the tests as well last time
< jl2012> sorry for OT. OP_VERIF is invalid even when occuring in an unexecuted OP_IF branch. Where this rule is defined in the code?
< wumpus> I added the pretty printing because it ended up all on one line
< wumpus> I don't think this was tested after introducing univalue
< jonasschnelli> you add a root level on level 4
< wumpus> ok
< jonasschnelli> I guess if i change this i need to update all static test data.
< wumpus> apparently I didn't really know what pretty print arguments to use
< jonasschnelli> heh. Yes. I was also not sure.
< wumpus> no, I don't think you need to do that
< wumpus> I probably fixed the excessive indent by hand last time
< sipa> wumpus: i'm making some changes, and fixing it
< jonasschnelli> sipa: thanks!
< wumpus> this was less work than manually formatting the json from everything on one line
< wumpus> but stil not ideal no
< wumpus> sipa: ok great!
< * jonasschnelli> is heading back to GUI RBF
< sipa> wumpus: any objections to merging the valid and invalid script tests into one file?
< sipa> it's annoying for generating, and makes the tests less clear
< wumpus> sipa: I haven't; though you could consider it an interface change, as it's used by other projects
< jonasschnelli> sipa: I think you should use write(1) (1 whitespace ident) and only use write(1, X) if you want to insert a sublevel at level x
< wumpus> and it makes it harder to backport/forward-port tests
< wumpus> so I'm not sure
< wumpus> I did consider the same at some point
< sipa> wumpus: well, i'm working on segwit tests, and i have no intention of manually writing everything for both master and backports
< sipa> so that would also mean backporting that merging
< btcdrak> wumpus: no thanks!
< wumpus> okay
< btcdrak> kinlo: yes, it's only one way though, so you can read on the Bitcoin Core Slack
< kinlo> as long as this is the only official channel and we don't actually use slack it's all ok
< sipa> wumpus: and for segwit, an interface change is inevitable, as we'll need to add a witness field
< wumpus> sipa: I agree
< wumpus> sipa: that's a good excuse, go ahead :)
< wumpus> kinlo: I'm not sure how happy I really am about it. I mean, in principe everything here is public, but on the other hand non-technical people will put everything under a magnifying glass and are bound to misinterpret things
< btcdrak> wumpus: no thanks!
< wumpus> this happened before a while ago though i don't remember the specific instance, oh yeah some commit that bumped the version to 0.12.1 on the 0.12 branch was misinterpreted as '0.12.1 tagged!'
< GitHub15> [bitcoin] laanwj pushed 2 new commits to master: https://github.com/bitcoin/bitcoin/compare/a9149688f87c...214ec0b5e8b2
< GitHub15> bitcoin/master 3373c43 Adam Brown: [doc] Update port in tor.md...
< GitHub15> bitcoin/master 214ec0b Wladimir J. van der Laan: Merge #7813: [doc] Update port in tor.md...
< GitHub21> [bitcoin] laanwj closed pull request #7813: [doc] Update port in tor.md (master...Mf1604-docTor) https://github.com/bitcoin/bitcoin/pull/7813
< GitHub48> [bitcoin] laanwj pushed 2 new commits to master: https://github.com/bitcoin/bitcoin/compare/214ec0b5e8b2...55db5f07b1c4
< GitHub48> bitcoin/master 10d3ae1 Wladimir J. van der Laan: devtools: Auto-set branch to merge to in github-merge...
< GitHub48> bitcoin/master 55db5f0 Wladimir J. van der Laan: Merge #7781: devtools: Auto-set branch to merge to in github-merge...
< GitHub91> [bitcoin] laanwj closed pull request #7781: devtools: Auto-set branch to merge to in github-merge (master...2016_04_github_merge_autobranch) https://github.com/bitcoin/bitcoin/pull/7781
< GitHub129> [bitcoin] laanwj pushed 2 new commits to master: https://github.com/bitcoin/bitcoin/compare/55db5f07b1c4...3cc0fb3a23e5
< GitHub129> bitcoin/master f063863 Wladimir J. van der Laan: build: Remove unnecessary executables from gitian release...
< GitHub129> bitcoin/master 3cc0fb3 Wladimir J. van der Laan: Merge #7776: build: Remove unnecessary executables from gitian release...
< GitHub28> [bitcoin] laanwj closed pull request #7776: build: Remove unnecessary executables from gitian release (master...2016_03_gitian_release_cleanup) https://github.com/bitcoin/bitcoin/pull/7776
< GitHub41> [bitcoin] laanwj pushed 1 new commit to 0.12: https://github.com/bitcoin/bitcoin/commit/a784675a329d6206af125d997381221dd1e99d11
< GitHub41> bitcoin/0.12 a784675 Wladimir J. van der Laan: build: Remove unnecessary executables from gitian release...
< GitHub158> [bitcoin] jonasschnelli opened pull request #7816: [Wallet] slighly refactor GetOldestKeyPoolTime() (master...2016/04/wallet_oldest_key) https://github.com/bitcoin/bitcoin/pull/7816
< btcdrak> wumpus: kinlo: the slackbridge has been in operation for a few months already
< btcdrak> I was just setting the rejoin flag
< GitHub91> [bitcoin] laanwj pushed 2 new commits to master: https://github.com/bitcoin/bitcoin/compare/3cc0fb3a23e5...916b15a87a1f
< GitHub91> bitcoin/master 92107d5 mruddy: RPC: add versionHex in getblock and getblockheader JSON results; expand data in getblockchaininfo bip9_softforks field.
< GitHub91> bitcoin/master 916b15a Wladimir J. van der Laan: Merge #7774: RPC: add versionHex in getblock and getblockheader JSON results...
< GitHub102> [bitcoin] laanwj closed pull request #7774: RPC: add versionHex in getblock and getblockheader JSON results (master...hexver) https://github.com/bitcoin/bitcoin/pull/7774
< wumpus> btcdrak: okay
< GitHub49> [bitcoin] jonasschnelli opened pull request #7817: [Qt] attribute replaceable (RBF) transactions (master...2016/04/qt_rbf) https://github.com/bitcoin/bitcoin/pull/7817
< btcdrak> wumpus: do we need to do a hard coded seeds update for 0.12.1?
< wumpus> I only do that for major releases
< GitHub175> [bitcoin] sipa opened pull request #7818: Refactor script tests (master...refactorscriptests) https://github.com/bitcoin/bitcoin/pull/7818
< wumpus> should update the translation strings though
< GitHub48> [bitcoin] laanwj pushed 2 new commits to master: https://github.com/bitcoin/bitcoin/compare/916b15a87a1f...e30a5b0aaaa9
< GitHub48> bitcoin/master 190c1e2 JeremyRand: Doc: change Precise to Trusty in gitian-building.md...
< GitHub48> bitcoin/master e30a5b0 Wladimir J. van der Laan: Merge #7791: Doc: change Precise to Trusty in gitian-building.md...
< GitHub42> [bitcoin] laanwj closed pull request #7791: Doc: change Precise to Trusty in gitian-building.md (master...patch-1) https://github.com/bitcoin/bitcoin/pull/7791
< Chris_Stewart_5> I'm looking at this test case from script_invalid.json inside of bitcoin core, shouldn't this have a MINIMALDATA flag?
< Chris_Stewart_5> ["0x4c01","0x01 NOP", "P2SH,STRICTENC", "PUSHDATA1 with not enough bytes"]
< GitHub68> [bitcoin] jonasschnelli opened pull request #7819: [Qt] Simple opt-in-RBF checkbox (master...2016/04/qt_rbf_set) https://github.com/bitcoin/bitcoin/pull/7819
< sipa> Chris_Stewart_5: the test should fail even without minimaldata rule
< sipa> Chris_Stewart_5: as it's trying to push a 1-byte value which is past the end of scriptSig
< GitHub31> [bitcoin] laanwj pushed 2 new commits to master: https://github.com/bitcoin/bitcoin/compare/e30a5b0aaaa9...4dc1b3a29693
< GitHub31> bitcoin/master 0087f26 Pavel Janík: Use relative paths instead of absolute paths
< GitHub31> bitcoin/master 4dc1b3a Wladimir J. van der Laan: Merge #7788: Use relative paths instead of absolute paths in protoc calls...
< GitHub118> [bitcoin] laanwj closed pull request #7788: Use relative paths instead of absolute paths in protoc calls (master...20160402_protoc_use_relpath) https://github.com/bitcoin/bitcoin/pull/7788
< Chris_Stewart_5> sipa: interesting. I didn't realize that limitation was there. I thought you think of the scriptSig & scriptPubKey as one big concatenated list when you were running it through the interpreter.
< sipa> Chris_Stewart_5: yes
< sipa> Chris_Stewart_5: but the scriptSig here contains an opcode that says "The next 1 byte is to be pushed: ", and then no more bytes
< sipa> which is obviously invalid
< sipa> it's like an unterminated quotation mark, or a missing endif
< sipa> Chris_Stewart_5: typically you want negative tests that specify the weakest condition under which failure is expected
< Chris_Stewart_5> sipa: If it was evaluated at as one big concatenated list though the next byte could be in the scriptPubKey. Where does the validation fail in bitcoin core?
< sipa> Chris_Stewart_5: that changed in early 2010
< sipa> Chris_Stewart_5: scriptPubKey and scriptSig are evaluated separately
< Chris_Stewart_5> haha just realized that :-)
< Chris_Stewart_5> stack state is shared between the two, is there a reason this is done? Is it one of those things "Its always been done this way so we are going to keep doing it that way" or is there more reason to it
< GitHub120> [bitcoin] laanwj pushed 2 new commits to master: https://github.com/bitcoin/bitcoin/compare/4dc1b3a29693...1b2460bd5824
< GitHub120> bitcoin/master fada0c4 MarcoFalke: [doc] Fix doxygen comments for members
< GitHub120> bitcoin/master 1b2460b Wladimir J. van der Laan: Merge #7793: [doxygen] Fix member comments...
< GitHub171> [bitcoin] laanwj closed pull request #7793: [doxygen] Fix member comments (master...Mf1604-doxygenMembers) https://github.com/bitcoin/bitcoin/pull/7793
< sipa> Chris_Stewart_5: that's how the scriptSig communicates its resulting stack to the scriptPubKey
< sipa> Chris_Stewart_5: what alternative would you suggest?
< Chris_Stewart_5> concatenate the scriptSig ++ scriptPubKey together and run the entire thing through the interpreter instead of mamking two calls to EvalScript and maintaing stack state
< sipa> that's how Bitcoin was in 2009, and it had massive security risks
< sipa> as the scriptSig is under control of the attacker
< sipa> say your scriptPubKey is 47 bytes, you'd just make a scriptSig 0x3F (which means "push the next 47 bytes onto the stack"), and the result would be accepted
< sipa> as it would treat the whole scriptPubKey that's concatenated after it as data being pushed, rather than code
< instagibbs> sipa, ok now that section of code makes sense
< Chris_Stewart_5> sipa: Wow that is a great way to explain it. So basically that would allow the script to trivially succeed since the scriptPubKey != OP_0 || OP_FALSE right?
< sipa> Chris_Stewart_5: furthermore, changing it back to that model of execution would almost by definition be a hard fork
< sipa> because if it has any effect at all, it's going to turn invalid things into valid things
< Chris_Stewart_5> sipa: Ok. Thanks for the explanation. I appreciate it
< GitHub166> [bitcoin] laanwj pushed 1 new commit to 0.12: https://github.com/bitcoin/bitcoin/commit/c2106543fe017d443c2e50daf3dd1d42e6ec35a2
< GitHub166> bitcoin/0.12 c210654 Wladimir J. van der Laan: pre-rc1 translations update...
< GitHub174> [bitcoin] laanwj closed pull request #7654: Add net2 debug option (master...DebugNet2) https://github.com/bitcoin/bitcoin/pull/7654
< gmaxwell> "errors": "WARNING: check your network connection, 5 blocks received in the last 4 hours (24 expected)"
< gmaxwell> of course I dunno when that triggered, though I don't think that host has had any network outages.
< wumpus> that's the one we disabled on 0.12 right?
< gmaxwell> yep.
< cfields_> wumpus: have you looked into the spurious (possible) race condition that we're hitting on travis sometimes? I'm going to poke at it now, curious if you have anything to go on
< MarcoFalke> which one do you mean?
< cfields_> I've noticed a few of those (or similar) lately
< MarcoFalke> Ok, this is not travis only. I think some people could "reproduce" those locally
< MarcoFalke> Note: Please don't retrigger https://github.com/bitcoin/bitcoin/pull/7817 (just reported the issue to travis)
< cfields_> MarcoFalke: ah nice, you happen to have a repro case handy?
< MarcoFalke> Unfortunatley not, but didn't someone mention it can happen after some time?
< cfields_> not sure
< MarcoFalke> So I was thinking about adding some random sleeps in the test suite and let it run over night
< cfields_> sure, if there's a race condition caused by arbitrary sleeps, we'd definitely want to know about those
< paveljanik> GH is a bit slow right now...
< GitHub127> [bitcoin] jtimon opened pull request #7820: Consensus: Policy: Move CFeeRate out of consensus module and create CPolicy interface (master...0.12.99-consensus-dust-out) https://github.com/bitcoin/bitcoin/pull/7820
< sipa> oh, github supports verifying gpg signatures now
< PRab> sipa: You figure out how to verify your gpg key? I added mine to https://github.com/settings/keys, but its still showing "Unverified".
< sipa> does your commit email address match an email address in the key?
< PRab> sipa: It should. Maybe it doesn't scan old commits. I believe https://github.com/bitcoin/gitian.sigs/commits/master/0.12.0rc5-linux/prab/bitcoin-linux-0.12-build.assert should have been signed with that key.
< sipa> committer Paul Rabahy <PRabahy@gmail.com> 1455405253 -0500
< sipa> maybe upper/lower case mix?
< PRab> Looks the same to me.
< sipa> PRab: ah, but that email address is not associated with your github account
< PRab> Ah, got it.
< PRab> github has it as prabahy@gmail.com
< PRab> I'll get ahold of github support.
< PRab> Hum, I managed to fix my email address (had to go through a temp email because of case insensitivity), but its still not working.
< PRab> Anyway, really cool feature.