< GitHub94> [bitcoin] wtogami opened pull request #8033: Fix Socks5() connect failures to be less noisy and unnecessarily scary (master...proxy_fail_too_scary) https://github.com/bitcoin/bitcoin/pull/8033
< GitHub23> [bitcoin] fanquake opened pull request #8034: [doc][trivial] Add basic git squash workflow (master...contrib-squash) https://github.com/bitcoin/bitcoin/pull/8034
< jonasschnelli> I'm impressed how bitcoin-core does perform on a 29$ computer (Pine64). Progress=0.5~ in <24h. dbcache=1500. Using a cheap/slow USB stick.
< btcdrak> jonasschnelli: did your Pine64 arrive already?
< jonasschnelli> Yes. Its syncing next to me.
< wumpus> jonasschnelli: nice result
< jonasschnelli> I really think this machine could allow my long-term goal: a full node in a box for ~50USD.
< jonasschnelli> Nice casing, some led for status indicator. Could come with a 128GB usb stick with the blockchain preloaded. People can refect/re-IBD if they like (led could indicate re-index)
< jonasschnelli> "your bank at home"
< wumpus> sipa: how do you measure exact cycle counts in #8020?
< wumpus> jonasschnelli: such a thing has also always been my plan, but yes up to now devices have always been too weak for that. People using bitcoind on a RPi are just practicing masochism.
< jonasschnelli> wumpus: Agree. Ordoid and Pine are capable. RPi is probably not.
< * jonasschnelli> is also wondering how sipa does measure the cycles...
< jonasschnelli> can you measure it with gdb by stepping single instructions?
< jonasschnelli> (on ASM level)
< wumpus> I think he uses 'performance counters' with some profiler, it's certainly possible to count instructions and cycles with linux' 'perf' for example on a larger scale but I've never been able to do so on a per-function level
< wumpus> so yes I wonder what exact software
< wumpus> try 'perf stat ls' for example
< wumpus> of course the number of cycles will be different per CPU type, even between different vendors and models
< wumpus> but still it's nice to be able to measure it that precisely
< wumpus> what is possible with perf is 'sampling' e.g. making it probe the counters a certain number of amount per second, it's possible t ocreate some nice flame graph diagrams that way where most of resources are spent: http://www.brendangregg.com/flamegraphs.html
< wumpus> there is even a 'perf top' to see what processes/functions consume most CPU cycles globally
< jonasschnelli> `perf top` is nice
< jonasschnelli> hah: 33.96% bitcoind [.] (anonymous namespace)::sha256::Transform(unsigned int*, unsigned char const*)
< wumpus> heh yes bitcoind spends a lot of time in sha256, leveldb spends a lot of time in crc32c
< wumpus> a more optimized sha256 (for example using sse intrinsics) could likely speed up things, there's so much hashing
< wumpus> this is why everyone wants the cpus with sha256 instructions to be finally released
< wumpus> which reminds me, jonasschnelli what are the extension bits in /proc/cpuinfo on your aarch64 board?
< * jonasschnelli> looking...
< wumpus> odroid C2 had the crc32 extension but not sha :(
< wumpus> s/had/has
< jonasschnelli> hah: Features: fp asimd aes pmull sha1 sha2 crc32
< wumpus> awesome!
< jonasschnelli> (but the pref stats above are from a different computer)
< wumpus> Features : fp asimd crc32
< * jonasschnelli> installing pref on the Pine64
< wumpus> I'd expected so: perf stat and friends by far work best on x86
< wumpus> performance counter support for other CPUs is stil catching up, though it sometimes works
< jonasschnelli> Would openCL be something to speed up SHA256 batch calculation? At least for desktop pcs?
< wumpus> in any case from what I understand this means you can use the vsha256hq_u32 vsha256h2q_u32 vsha256su0q_u32 vsha256su1q_u32 NEON intrinsics on that board
< wumpus> I don't know yet how to implement sha256::Transform with them, as I lost interest as it's not possible with my board, but it should be possible :-)
< jonasschnelli> Hmm... yes. This sounds after another weekend project. :)
< jonasschnelli> But free weekends are so precious and rare!
< wumpus> sha256 is an inherently linear operation, I'm not sure how well itlends itself to OpenCL paralellization. Indeed maybe if you can manage to queue up a lot of different things to be SHA256'ed at once
< wumpus> same for doing secp256k1 operations in opencl
< wumpus> at the least, GPUs became a lot better with integer operations compared to the time I used it a lot, partially thanks to bitcoin mining :-)
< jonasschnelli> Yes. But the main problems is probably how to split of batches and not loose performance in syncing back these wored-down batches.
< jonasschnelli> *worked
< wumpus> yes, exactly, usually the problem is how to structure the work at a higher level
< wumpus> in any case I think there is low hanging fruit in the form of better CPU implementations
< jonasschnelli> Right. And I don't expect good GPUs in most bitcoind machines.
< jonasschnelli> (mostly VPS/servers or barbones)
< wumpus> e.g. there are also some practical issues with GPUs, they tend to be even less reliable (on average) than CPUs, and prone to overheating
< wumpus> that too, who wants to use their high end gaming machine to sync the chain (except to show off how fast it can be done)
< wumpus> paper about fast sha256 implementations using SSE4.2 and AVX instructions https://www-ssl.intel.com/content/dam/www/public/us/en/documents/white-papers/sha-256-implementations-paper.pdf
< GitHub195> [bitcoin] jonasschnelli pushed 2 new commits to master: https://github.com/bitcoin/bitcoin/compare/4e14afe42fdd...b33824b76cbf
< GitHub195> bitcoin/master 3902a29 Tyler Hardin: Qt: Delay user confirmation of send...
< GitHub195> bitcoin/master b33824b Jonas Schnelli: Merge #8012: Qt: Delay user confirmation of send...
< GitHub160> [bitcoin] jonasschnelli closed pull request #8012: Qt: Delay user confirmation of send (master...send-delay) https://github.com/bitcoin/bitcoin/pull/8012
< GitHub8> [bitcoin] jonasschnelli opened pull request #8035: [Wallet] Add simplest BIP32/deterministic key generation implementation (master...2016/05/simplest_hd) https://github.com/bitcoin/bitcoin/pull/8035
< GitHub24> [bitcoin] jonasschnelli closed pull request #6265: Add HD/Bip32 support (master...2015/06/wallet_bip32) https://github.com/bitcoin/bitcoin/pull/6265
< GitHub98> [bitcoin] jonasschnelli closed pull request #7273: [Wallet] Simple HD/BIP32 support (master...2016/01/hdsimple) https://github.com/bitcoin/bitcoin/pull/7273
< gmaxwell> bluematt: sipa: Another proposed implementation tweak for compactblocks: The sender can use the formula to decide the length to send. The reciever can then also use the formula, and if their mempool is too big for the number of bytes sent, it can just the top subset of the mempool.
< jonasschnelli> gmaxwell, sipa: Maybe you find time to review the "simplest" HD PR: https://github.com/bitcoin/bitcoin/pull/8035
< gmaxwell> BlueMatt: if you get sipa' implementation tweaks in, I'll get some public nodes up running it. Maybe with a little hack to continually INV top of the mempool to you every block, in order to hotstart you. (otherwise you have to run it for a day to get realistic hit rates)
< gmaxwell> jonasschnelli: awesome.
< jonasschnelli> Breaking up the CHDChain data-model would save another 10-20 lines. But would lead to a ugly design.
< GitHub152> [bitcoin] laanwj pushed 3 new commits to master: https://github.com/bitcoin/bitcoin/compare/b33824b76cbf...5767e80dda7a
< GitHub152> bitcoin/master db18ab2 Pavel Janík: Reenable multithread scheduler test.
< GitHub152> bitcoin/master 166e4b0 Pavel Janík: Notify other serviceQueue thread we are finished to prevent deadlocks.
< GitHub152> bitcoin/master 5767e80 Wladimir J. van der Laan: Merge #8016: Fix multithread CScheduler and reenable test...
< GitHub32> [bitcoin] laanwj closed pull request #8016: Fix multithread CScheduler and reenable test (master...20160506_multithread_CScheduler) https://github.com/bitcoin/bitcoin/pull/8016
< GitHub142> [bitcoin] laanwj closed pull request #8005: Add a comment indicating that the btc devs don't want a warning fixed (master...note-that-unused-function-compiler-warning-should-not-be-fixed) https://github.com/bitcoin/bitcoin/pull/8005
< paveljanik> jonasschnelli, great work on the HD wallet!
< GitHub184> [bitcoin] laanwj pushed 3 new commits to master: https://github.com/bitcoin/bitcoin/compare/5767e80dda7a...f7a21dae5dbf
< GitHub184> bitcoin/master addb9d2 instagibbs: Remove state arg from ReconsiderBlock
< GitHub184> bitcoin/master 657e07e instagibbs: Rename ReconsiderBlock func to reflect real behavior
< GitHub184> bitcoin/master f7a21da Wladimir J. van der Laan: Merge #8019: Remove state arg from ReconsiderBlock, rename to ResetBlockFailureFlags...
< GitHub167> [bitcoin] laanwj closed pull request #8019: Remove state arg from ReconsiderBlock, rename to ResetBlockFailureFlags (master...reblarg) https://github.com/bitcoin/bitcoin/pull/8019
< GitHub126> [bitcoin] laanwj opened pull request #8036: init: Move berkeleydb version reporting to wallet (master...2016_05_berkeleydb_report_in_wallet) https://github.com/bitcoin/bitcoin/pull/8036
< GitHub58> [bitcoin] laanwj pushed 2 new commits to master: https://github.com/bitcoin/bitcoin/compare/f7a21dae5dbf...41138f914d16
< GitHub58> bitcoin/master 3e2c946 Wladimir J. van der Laan: init: Move berkeleydb version reporting to wallet...
< GitHub58> bitcoin/master 41138f9 Wladimir J. van der Laan: Merge #8036: init: Move berkeleydb version reporting to wallet...
< GitHub11> [bitcoin] laanwj closed pull request #8036: init: Move berkeleydb version reporting to wallet (master...2016_05_berkeleydb_report_in_wallet) https://github.com/bitcoin/bitcoin/pull/8036
< GitHub74> [bitcoin] laanwj pushed 2 new commits to master: https://github.com/bitcoin/bitcoin/compare/41138f914d16...373b50debaa9
< GitHub74> bitcoin/master 0fd5997 Patrick Strateman: Fix insanity of CWalletDB::WriteTx and CWalletTx::WriteToDisk
< GitHub74> bitcoin/master 373b50d Wladimir J. van der Laan: Merge #8028: Fix insanity of CWalletDB::WriteTx and CWalletTx::WriteToDisk...
< GitHub54> [bitcoin] laanwj closed pull request #8028: Fix insanity of CWalletDB::WriteTx and CWalletTx::WriteToDisk (master...2016-05-09-cwalletdb-writetx) https://github.com/bitcoin/bitcoin/pull/8028
< BlueMatt> gmaxwell/sipa: yea, thinking about it I'm really not a fan of the sender calculating the size in compact blocks...it is really awkward that the sender is picking a value based on their own mempool size assuming the receiver has the same size
< gmaxwell> BlueMatt: it's harmless, because the reciever can artifically reduce their effective mempool size if the sender picked too small a value. (and if the sender picked too large, thats harmless too, just a bit more bandwidth)
< BlueMatt> not if, eg, the sender just was brought online, so the mempool isnt the top of the peers mempool, but a different random set
< gmaxwell> what does that have to do with anything?
< gmaxwell> if so, they may assume the peer's mempool is smaller than it is, send only 5 bytes when they should have sent 6 and the peer will end up having to gettxn as if they only used the top 10000 txn in their mempool.
< BlueMatt> gmaxwell: hmm? if the sending peer just came online, then their mempool is small, but random, not the "top X" txn.
< gmaxwell> the content of the sending peers mempool isn't important.
< BlueMatt> no, but its size matters
< BlueMatt> oh, i see your point though
< gmaxwell> right.
< gmaxwell> it just means they may go to small, but if they do, worse that happens is the reciever needs to gettxn as if the recievers mempool was also smaller.
< gmaxwell> (though could still use the extra txn in an attempted gettxn-less reconstruction)
< gmaxwell> e.g. use whole pool? succest? if so top. Else remove everything except the top X (based on size), and gettxn.
< gmaxwell> er success*
< BlueMatt> still, makes me uncomfortable for the sender to pick a shortid size based on their mempool size when what actually matters is the receivers mempool, or, really, the miners mempool
< BlueMatt> like, this falls apart the second a miner picks a tx not from the top of the fee-sorted pool
< BlueMatt> or with cpfp or something
< gmaxwell> what matters is pretty much exclusively the recievers mempool. the driving factor in the fp rate is how many txn will be compared against the short IDs.
< BlueMatt> yesyes, but you're suggesting using the "top X" from your mempool
< gmaxwell> it doesn't fall appart, just more approximate. in reality though you're talking about a corner case. 5 bytes is good for mempools significantly larger than we have typically.
< BlueMatt> hmm...lemme get more coffee and think, I may just be being tired
< gmaxwell> just means that you're going to gettxn a few extra txn when the sender goes too small; this could be further improved by making the sender do the table amount +1.
< GitHub72> [bitcoin] MarcoFalke opened pull request #8038: [qa, doc] Various minor fixes (master...Mf1605-trivial12) https://github.com/bitcoin/bitcoin/pull/8038
< Chris_Stewart_5> Hmm, are the arguments for OP_PUSHDATA parsed as unsigned numbers?
< sdaftuar> MarcoFalke: hi -- i was pretty sure the bip9-softforks test would be failing for everyone, but maybe it's a local problem
< MarcoFalke> Is it failing when you try bitcoin/master?
< sdaftuar> the failure is only because the script is outputting to stderr, which is introduced in that pull
< sdaftuar> so i take it you don't get this error when you run locally? "BDB3028 /tmp/testly60vwvd/blocks.db: unable to flush: No such file or directory
< sdaftuar> "
< MarcoFalke> nope
< MarcoFalke> This happens after the nodes are shut down/
< sdaftuar> yeah at the end of the test
< sdaftuar> i think it's because the test is deleting the directory that contains the file used by the blockstore
< sdaftuar> (it does this over and over, sort of a layer violation)
< sdaftuar> but i don't know why this would only be affecting me and not you...
< sdaftuar> which python do you use?
< MarcoFalke> Shouldn't be the python version
< MarcoFalke> It fails for you on py2 and py3
< MarcoFalke> which bdb are you running?
< sdaftuar> hm, not sure how to determine that?
< MarcoFalke> Should be the default version if you don't pass opts to ./configure
< MarcoFalke> Couldn't we just get rid of bdb, so no one has to figure out how to fix those bugs?(c.f. https://github.com/bitcoin/bitcoin/issues?q=is%3Aopen+is%3Aissue+author%3AMarcoFalke+label%3AWallet )
< GitHub31> [bitcoin] laanwj opened pull request #8039: bench: Add hash benchmarks (master...2016_05_benchmark_sha256) https://github.com/bitcoin/bitcoin/pull/8039
< MarcoFalke> sdaftuar, if you are the only one observing this issue, I am not considering it a blocker for this pull.
< MarcoFalke> Mind to open a issue?
< sdaftuar> yep that seems fair
< sdaftuar> thanks
< GitHub51> [bitcoin] MarcoFalke pushed 3 new commits to master: https://github.com/bitcoin/bitcoin/compare/373b50debaa9...423ca302a3ee
< GitHub51> bitcoin/master fa494de MarcoFalke: [qa] pull-tester: Run rpc test in parallel
< GitHub51> bitcoin/master ccccc59 MarcoFalke: [qa] Add option --portseed to test_framework
< GitHub51> bitcoin/master 423ca30 MarcoFalke: Merge #7972: [qa] pull-tester: Run rpc test in parallel...
< GitHub113> [bitcoin] MarcoFalke closed pull request #7972: [qa] pull-tester: Run rpc test in parallel (master...Mf1604-qaParallel) https://github.com/bitcoin/bitcoin/pull/7972
< sipa> wumpus: i set my cpu to a fixed clock speed, run a microbenchmark, measure how long it takes, multiply by clock speed :)
< sipa> /etc/init.d/cpufrequtils stop && for A in $(seq 0 7); do cpufreq-set -c $A -g performance -d 2.6GHz -u 2.6GHz; done
< sipa> (where 2.6 GHz is one below the max non-turbo speed my CPU is capable of)
< warren> wumpus: regarding https://github.com/bitcoin/bitcoin/pull/8033 are we leaning toward not fixing minor problems here because of the network rewrite?
< warren> luke-jr: ping
< luke-jr> …
< warren> luke-jr: I wanted an error() that did the same thing except did not print "ERROR:" as these are not errors.
< luke-jr> oh
< warren> then I heard not to add more stuff because we're getting rid of all this with the network rewrite
< luke-jr> k