< meow> hi all
< meow> i was wondering if i wanted to test myself and make a simple bitcoin app that is a website which allows you to enter an address and then list all the addresses that have sent the given address bitcoin, how would i go about doing this at a high level?
< sipa_> try #bitcoin or #bitcoin-dev... bitcoin core can't do this
< meow> ok ty
< sipa_> (it doesn't have a model of 'addresses that send', only wallets)
< bitcoin-git> [bitcoin] gmaxwell opened pull request #9319: Break addnode out from the outbound connection limits. (master...addnode_own_count) https://github.com/bitcoin/bitcoin/pull/9319
< bitcoin-git> [bitcoin] MarcoFalke opened pull request #9322: [qa] Don't set unknown rpcserialversion (master...Mf1612-qaSerial) https://github.com/bitcoin/bitcoin/pull/9322
< paveljanik> sipa_, restarting bitcoind, it was started at 13:17:26 and Import mempool run at 13:18:40, ie. more than one minute after the new start. Is this as designed? I was even able to getmempoolinfo in between...
< sipa_> paveljanik: it runs after connecting blocks on disk
< paveljanik> sipa_, yes.
< paveljanik> I have added some debugging
< paveljanik> load speed here is 1000 tx per 10seconds...
< paveljanik> or even more:
< paveljanik> 2016-12-11 16:10:49 Loadmempool tx 3000
< paveljanik> 2016-12-11 16:11:09 Loadmempool tx 4000
< paveljanik> 2016-12-11 16:11:27 Loadmempool tx 5000
< paveljanik> 2016-12-11 16:11:51 Loadmempool tx 6000
< paveljanik> 2016-12-11 16:11:59 Loadmempool tx 7000
< sipa_> transaction validation is not that fast
< paveljanik> I was a bit surprised that it took more than minute (67MB mempool.dat)
< bitcoin-git> [bitcoin] rebroad closed pull request #9055: Skip processing of cmpctblocks we have previously downloaded. (master...SkipCmpctblocksPreviouslyDownloaded) https://github.com/bitcoin/bitcoin/pull/9055
< bitcoin-git> [bitcoin] rebroad closed pull request #9300: Check for oversized getblocktxn message. (master...CheckOversizedGetblocktxns) https://github.com/bitcoin/bitcoin/pull/9300
< Chris_Stewart_5> How is OP_0 handled inside of a witness, because it is an empty byte vector when actually placed onto the stack? Is it replaced some where in the serialization code from 0x00 -> []?
< luke-jr> 0x00 has always been []
< sipa_> OP_0 produces [] on the stack
< sipa> in the witness stack, we just bypass the opcode, and use [] directly
< Chris_Stewart_5> So that is done the witness serialization code? the 'bypass the opcode'?
< luke-jr> oh, hm. I guess small numbers take 2x the bytes in segwit then
< luke-jr> Chris_Stewart_5: segwit witnesses aren't scripts, so it's just automatic
< luke-jr> although AFAIK OP_0 is just serialized as 0 which is also the length of [] so I'm not sure why that specific case would appear any different?
< sipa> Chris_Stewart_5: scriptSigs being a script is just a legacy, probably intended to support delegation
< sipa> the script witness stack is just encoded as a vector of vectors of bytes
< Chris_Stewart_5> Maybe this is what I'm getting confused about, when a vector is '00' it is indicating that the length of the vector is zero in the witness, correct?
< sipa> yes
< Chris_Stewart_5> yeah, doh! Thanks guys.
< luke-jr> ☺
< Chris_Stewart_5> luke-jr: What did you mean by 2x the bytes in segwit?
< Chris_Stewart_5> because they require a pushop to be encoded before the actual number if it is only a number in a byte vector?
< luke-jr> Chris_Stewart_5: OP_1 would be a single byte (0x81) in Script, but in segwit it is 0x01 (length) 0x01 (data)
< Chris_Stewart_5> Yeah, I think that is what was confusing me. A small but important difference
< luke-jr> of course, it rarely makes sense to have a small integer in a witness by itself I think
< luke-jr> usually it'd be part of the program
< Chris_Stewart_5> Yeah I agree, I can't think of anything off of the top of my head
< sipa> luke-jr: i recently generated a histogram of the sizes of pushes in scriptSigs
< sipa> there are 48M 1-byte pushes
< sipa> sorry, 23.5M 1-byte pushes
< luke-jr> sipa: exclude OP_1 and scriptSigs which are only OP_TRUE?
< luke-jr> OP_0*
< sipa> 408M signatures
< sipa> 359M pubkeys
< sipa> 15.3M 107-byte pushes
< sipa> 7.7M 72-byte pushes (= mostly non-DER signatures, as those aren't counted under the signatures field)
< sipa> 0.5M 138-byte pushes
< sipa> all the rest is less than 0.2M
< luke-jr> 1-byte pushes besides OP_0 and entire-scriptSig-is-OP_TRUE seem like they wouldn't be used much, but I have no real data measuring it
< sipa> i agree, i don't know what they're for
< gmaxwell> hm? checkmultisig paramters
< gmaxwell> oh in signatures. hm
< gmaxwell> well used to activate if branches.
< sipa> i would be surprised if there are 23M spends of outputs with branches in the chain
< sipa> (but i don't know)
< gmaxwell> Oh I missed the number, that is a lot
< gmaxwell> sipa: would you like me to give a crack at writing a release note for 9302?
< sipa> gmaxwell: sure
< gmaxwell> sipa: https://0bin.net/paste/49XqHf2k61I38lxn#pMcwMTsRWlKraOsU+dk93V-rv/if0qV+IRlrwTwil3f
< MarcoFalke> gmaxwell: ACK
< gmaxwell> How do we deal with release notes for backports for features that are initially going into master?
< sipa> backport the release notes as well?
< MarcoFalke> Only create a pull against 0.13
< MarcoFalke> We don't need the release notes in 0.14, as the feature was already released
< bitcoin-git> [bitcoin] gmaxwell opened pull request #9323: [0.13] Add release notes for wallet/mempool rejections. (PR #9302 and #9290) (0.13...mempool_relnote) https://github.com/bitcoin/bitcoin/pull/9323