< bitcoin-git> [bitcoin] MarcoFalke opened pull request #18640: appveyor: Remove clcache (master...2004-appveyorNoSlowCache) https://github.com/bitcoin/bitcoin/pull/18640
< bitcoin-git> [bitcoin] MarcoFalke opened pull request #18641: test: Create cached blocks not in the future (master...2004-qaNoCacheFuture) https://github.com/bitcoin/bitcoin/pull/18641
< bitcoin-git> [bitcoin] naumenkogs opened pull request #18642: Use std::chrono for the time to rotate destination of addr messages + tests (master...2020_04_mock_addr_rotation_time) https://github.com/bitcoin/bitcoin/pull/18642
< bitcoin-git> [bitcoin] fanquake pushed 2 commits to master: https://github.com/bitcoin/bitcoin/compare/75fcfdaf8b4b...4d793bcfe814
< bitcoin-git> bitcoin/master fa6cb00 MarcoFalke: doc: Fix macos comments in release-notes
< bitcoin-git> bitcoin/master 4d793bc fanquake: Merge #18632: doc: Fix macos comments in release-notes
< bitcoin-git> [bitcoin] fanquake merged pull request #18632: doc: Fix macos comments in release-notes (master...2004-docMacOs) https://github.com/bitcoin/bitcoin/pull/18632
< bitcoin-git> [bitcoin] dongcarl opened pull request #18644: net: Reduce `TransportDeserializer` interface to 2 methods (master...2020-04-transport-readmessages) https://github.com/bitcoin/bitcoin/pull/18644
< bitcoin-git> [bitcoin] jnewbery opened pull request #18645: [doc] Update thread information in developer docs (master...2020-04-doc-threads) https://github.com/bitcoin/bitcoin/pull/18645
< sipa> I wasn't aware before, but the 201 opcode limit, and the 20 keys in CHECKMULTISIG limit were initially only active for blocks >84000; in 0.3.13.5 it was changed to apply to every block
< aj> block 84000 was a week away when the rule was added, and 10 days old when the rule was buried, give or take; neat
< sipa> Yeah, best practices around timelines for these things *do* seem to have changed a bit since.
< sipa> Also, the commit message is great. "misc fixes"
< fanquake> I guess the covert change hiding commit messages have improved since then too
< sipa> i think satoshi wrote commit messages like we write release notes
< sipa> try to remember everything that changed since the last one, probably forget some parts
< midnight> satoshi hid all kinds of weird stuff that I wish he'd been more posthoc open about. :(
< sipa> midnight: i'm speculating of course, but i think he simply didn't really have an open-source minded process
< sipa> as in, i don't think he was trying to hide anything - i think he just didn't care enough to write good notes
< midnight> sipa: I felt the store-proxy-for-later-use-in-spite-of-what-the-user-wants was a bit anti-user.
< sipa> ?
< sipa> elaborate
< midnight> At one point I gave my bitcoind a proxy to connect through, which worked successfully. Later I wanted to stop using the proxy, but I hadn't correctly opened the network up on that machine. The proxy settings were stored in wallet.dat and (IIRC) the software tried to use it anyway when it couldn't connect normally. In my view this was super sneaky.
< sipa> heh, that sounds like a bug
< midnight> IMO based on his fairly mercenary attempt to force open incoming sockets for global connectivity it was a deliberate and not accidental design decision.
< sipa> at the time every setting was stored in wallet.dat
< midnight> I hope it was a bug, but.. he was pretty mercenary about incentives and user control. I hope it was buggy and not intended behaviour. :)
< sipa> of course - you may be right
< sipa> but also, don't ascribe to malice that which is adequately explained by incompetence
< midnight> He never answered my question about it. That was around the time people were bashing him a lot about code quality.
< midnight> I was trying to be polite but the avalanche of inexplicable "your code sucks" might have made me sound like them. Hope not. Maybe he just didn't get my emails. :)
< midnight> I don't think it was malice. Not quite how I'd describe it. More just.. taking user control out of the picture for the good of the early network.
< sipa> to an extent that is still the case - e.g. you can't request more than 8 outgoing connections
< midnight> Yeah I was okay with it. The source was available, and of course I could just manually edit wallet.dat to remove the proxy config.
< midnight> "You must be this tall to be able to control this feature.."
< midnight> Also possible: it was so long ago I am misremembering what actually happened and it was all just something I misconstrued. lol
< sipa> :)
< bitcoin-git> [bitcoin] fanquake pushed 2 commits to master: https://github.com/bitcoin/bitcoin/compare/4d793bcfe814...903be99ee654
< bitcoin-git> bitcoin/master 88884ee MarcoFalke: script: Disallow silent bool -> CScript conversion
< bitcoin-git> bitcoin/master 903be99 fanquake: Merge #18621: script: Disallow silent bool -> CScript conversion
< bitcoin-git> [bitcoin] fanquake merged pull request #18621: script: Disallow silent bool -> CScript conversion (master...2004-scriptNoBool) https://github.com/bitcoin/bitcoin/pull/18621
< bitcoin-git> [bitcoin] fanquake pushed 3 commits to master: https://github.com/bitcoin/bitcoin/compare/903be99ee654...ae486b263c22
< bitcoin-git> bitcoin/master b8b050a fanquake: build: add linker optimization flags to gitian descriptors
< bitcoin-git> bitcoin/master f2b5b0a fanquake: build: add linker optimization flags to guix
< bitcoin-git> bitcoin/master ae486b2 fanquake: Merge #17929: build: add linker optimisation flags to gitian & guix (Linux...
< bitcoin-git> [bitcoin] fanquake merged pull request #17929: build: add linker optimisation flags to gitian & guix (Linux) (master...pass_optimizations_to_linker) https://github.com/bitcoin/bitcoin/pull/17929
< bitcoin-git> [bitcoin] fanquake closed pull request #18490: Bugfix: devtools/symbol-check: Check PE libraries case-insensitively (master...bugfix_symcheck_pe_case) https://github.com/bitcoin/bitcoin/pull/18490
< bitcoin-git> [bitcoin] fanquake pushed 2 commits to master: https://github.com/bitcoin/bitcoin/compare/ae486b263c22...5447d57bfff9
< bitcoin-git> bitcoin/master c47adf8 Stephan Oeste: Added my fingerprint Stephan Oeste (Emzy)
< bitcoin-git> bitcoin/master 5447d57 fanquake: Merge #18624: Added my fingerprint Stephan Oeste (Emzy)
< bitcoin-git> [bitcoin] fanquake merged pull request #18624: Added my fingerprint Stephan Oeste (Emzy) (master...patch-1) https://github.com/bitcoin/bitcoin/pull/18624
< bitcoin-git> [bitcoin] fanquake pushed 2 commits to master: https://github.com/bitcoin/bitcoin/compare/5447d57bfff9...e831f18b1ed3
< bitcoin-git> bitcoin/master 905e2e8 Jon Atack: gitian: add jonatack gpg key fingerprint
< bitcoin-git> bitcoin/master e831f18 fanquake: Merge #18619: gitian: add jonatack gpg key fingerprint
< bitcoin-git> [bitcoin] fanquake merged pull request #18619: gitian: add jonatack gpg key fingerprint (master...gitian-jonatack-gpg-key-fingerprint) https://github.com/bitcoin/bitcoin/pull/18619
< bitcoin-git> [bitcoin] fanquake opened pull request #18646: gui: use PACKAGE_NAME in exception message (master...use_package_name_in_exception) https://github.com/bitcoin/bitcoin/pull/18646
< bitcoin-git> [bitcoin] brakmic opened pull request #18647: rpc: remove g_rpc_node (master...remove-global-node-ctx) https://github.com/bitcoin/bitcoin/pull/18647
< bitcoin-git> [bitcoin] practicalswift opened pull request #18649: tests: Add std::locale::global to list of locale dependent functions in lint-locale-dependence.sh (master...locale-dependent-functions) https://github.com/bitcoin/bitcoin/pull/18649
< bitcoin-git> [bitcoin] practicalswift opened pull request #18650: qt: Make bitcoin.ico non-executable (master...bitcoin.ico-executable-flag) https://github.com/bitcoin/bitcoin/pull/18650
< bitcoin-git> [bitcoin] MarcoFalke pushed 2 commits to master: https://github.com/bitcoin/bitcoin/compare/e831f18b1ed3...18f11fb24b47
< bitcoin-git> bitcoin/master 1b04302 fanquake: gui: use PACKAGE_NAME in exception message
< bitcoin-git> bitcoin/master 18f11fb MarcoFalke: Merge #18646: gui: use PACKAGE_NAME in exception message
< bitcoin-git> [bitcoin] MarcoFalke merged pull request #18646: gui: use PACKAGE_NAME in exception message (master...use_package_name_in_exception) https://github.com/bitcoin/bitcoin/pull/18646
< bitcoin-git> [bitcoin] MarcoFalke pushed 2 commits to master: https://github.com/bitcoin/bitcoin/compare/18f11fb24b47...20c0e2e0f04f
< bitcoin-git> bitcoin/master fa4c29b MarcoFalke: test: Add various low-level p2p tests
< bitcoin-git> bitcoin/master 20c0e2e MarcoFalke: Merge #18628: test: Add various low-level p2p tests
< bitcoin-git> [bitcoin] MarcoFalke merged pull request #18628: test: Add various low-level p2p tests (master...2004-qaP2Pvar) https://github.com/bitcoin/bitcoin/pull/18628
< jnewbery> MarcoFalke fanquake: if you're looking for more to merge, I think #18401 is ready
< gribble> https://github.com/bitcoin/bitcoin/issues/18401 | Refactor: Initialize PrecomputedTransactionData in CheckInputScripts by jnewbery · Pull Request #18401 · bitcoin/bitcoin · GitHub
< theStack> i'm just running the fuzz test from #17860
< gribble> https://github.com/bitcoin/bitcoin/issues/17860 | fuzz: BIP 42, BIP 30, CVE-2018-17144 by MarcoFalke · Pull Request #17860 · bitcoin/bitcoin · GitHub
< theStack> can anyone tell me how i know if the fuzz test found something significant? (as far as i remember the fuzz test never stops, i.e. only after receiving CTRL+C)
< jonatack> theStack: you'll see a crash like https://github.com/bitcoin/bitcoin/pull/18521#issuecomment-610826738
< jonatack> (you are correct that the fuzzer runs indefinitely until halted)
< jonatack> (and on encountering an error, the fuzzer halts)
< theStack> jonatack: so after this crash the fuzz test process would just stop?
< jonatack> theStack: yes (this was my first question with the fuzzer, too :)
< theStack> jonatack: thanks, good to know. i thought it *really* runs indefinitely in all cases and e.g. writes out a file in case of crashes
< theStack> what if the error we want to trigger is not a crash? If we take BIP 42, that doesn't result in a crash, but inflation
< theStack> how would the fuzzer know the condition of an, i call it "significant event"?
< jonatack> theStack: the fuzzer may have an option to do that... i don't see one like that in test/fuzz/test_runner.py, but you can set -loglevel)#
< andrewtoth> theStack that specific inflation condition is asserted here https://github.com/bitcoin/bitcoin/pull/17860/files#diff-7a6cf1c54083f72e3110c6a049e26842R77
< andrewtoth> so I guess the fuzz harness should consider all "significant events" and assert them
< theStack> jonatack: oh, i didn't even use the fuzz test-runner yet, but rather called the binaries in src/test/fuzz/ directly
< theStack> andrewtoth: ah, just by using assertions -- that makes sense
< jonatack> theStack: that's probably best, i haven't got the runner to work yet and iiuc it's for the ci. was just looking in https://github.com/google/afl for more info on configurations
< jonatack> theStack: calling directly like you're doing is more useful for testing PRs with new harnesses
< bitcoin-git> [bitcoin] jonatack opened pull request #18653: test: add coverage for bitcoin-cli -rpcwait (master...rpcwait-test-coverage) https://github.com/bitcoin/bitcoin/pull/18653
< theStack> jonatack: it seems like test_runner.py was mentioned in doc/fuzzing.md some weeks ago but now it's not anymore
< jonatack> theStack: makes sense, i seem to recall MarcoFalke saying the runner script was really for the ci, after instagibbs and i were trying to run it unsuccessfully a couple months ago
< jonatack> i was just peeking inside to see the config options
< MarcoFalke> test_runner is for running over all inputs, which is useful for running against every commit
< MarcoFalke> So mostly ci, not for extending fuzz coverage
< theStack> jonatack: MarcoFalke: ok, so i will ignore that script for now
< bitcoin-git> [bitcoin] theStack closed pull request #16922: net: filteradd message: update bloom filter empty/full flags after adding (master...20190919-net-update_empty_full_after_adding_filter) https://github.com/bitcoin/bitcoin/pull/16922
< bitcoin-git> [bitcoin] MarcoFalke pushed 2 commits to master: https://github.com/bitcoin/bitcoin/compare/20c0e2e0f04f...4bd6bc5cb4f3
< bitcoin-git> bitcoin/master fa176e2 MarcoFalke: test: Avoid accessing free'd memory in validation_chainstatemanager_tests
< bitcoin-git> bitcoin/master 4bd6bc5 MarcoFalke: Merge #18615: test: Avoid accessing free'd memory in validation_chainstate...
< bitcoin-git> [bitcoin] MarcoFalke merged pull request #18615: test: Avoid accessing free'd memory in validation_chainstatemanager_tests (master...2004-testNoAccessFreeMem) https://github.com/bitcoin/bitcoin/pull/18615
< bitcoin-git> [bitcoin] achow101 opened pull request #18654: rpc: separate bumpfee' (master...psbtbumpfee) https://github.com/bitcoin/bitcoin/pull/18654
< bitcoin-git> [bitcoin] achow101 opened pull request #18655: gui: Add bumpFeePSBT action instead of changing normal bumpfee behavior (master...split-bumpfeeaction) https://github.com/bitcoin/bitcoin/pull/18655
< bitcoin-git> [bitcoin] achow101 opened pull request #18656: gui: Add a `Make unsigned` button next to `Send` (master...make-unsigned-button) https://github.com/bitcoin/bitcoin/pull/18656
< bitcoin-git> [bitcoin] achow101 closed pull request #18627: rpc: gui: Don't change behavior based on private keys disabled, instead add new buttons/rpcs/menu items (master...split-watchonly) https://github.com/bitcoin/bitcoin/pull/18627
< vasild> dongcarl: If you use `-onlynet=torv3`, then there is no way that you would connect to an old node that does not understand `addrv2` because such node cannot exist - there is no way that it can advertise its `torv3` address using the old `addr` messages.
< bitcoin-git> [bitcoin] practicalswift opened pull request #18657: chain: Do not fill out parameters in findCommonAncestor(...) if ancestor is not found (master...out-parameters-in-findCommonAncestor) https://github.com/bitcoin/bitcoin/pull/18657
< elichai2> ariard told me there is past interaction with oss-fuzz and it was decided that the disclosure policy doesn't fit Core, is that right? I'm interested to hear about it :)
< sipa> ping BlueMatt
< sipa> though if i remember correctly, at the time there also was no (meaningful) fuzzers for bitcoin core, so it was mostly a philosophical point
< bitcoin-git> [bitcoin] MarcoFalke pushed 2 commits to master: https://github.com/bitcoin/bitcoin/compare/4bd6bc5cb4f3...6db8ef2431ac
< bitcoin-git> bitcoin/master fac0c8d MarcoFalke: appveyor: Remove clcache
< bitcoin-git> bitcoin/master 6db8ef2 MarcoFalke: Merge #18640: appveyor: Remove clcache
< bitcoin-git> [bitcoin] MarcoFalke merged pull request #18640: appveyor: Remove clcache (master...2004-appveyorNoSlowCache) https://github.com/bitcoin/bitcoin/pull/18640
< bitcoin-git> [bitcoin] MarcoFalke pushed 2 commits to master: https://github.com/bitcoin/bitcoin/compare/6db8ef2431ac...e84a5f000493
< bitcoin-git> bitcoin/master 808ef36 John Newbery: [doc] Update thread information in developer docs
< bitcoin-git> bitcoin/master e84a5f0 MarcoFalke: Merge #18645: [doc] Update thread information in developer docs
< bitcoin-git> [bitcoin] MarcoFalke merged pull request #18645: [doc] Update thread information in developer docs (master...2020-04-doc-threads) https://github.com/bitcoin/bitcoin/pull/18645
< bitcoin-git> [bitcoin] practicalswift closed pull request #18657: chain: Do not fill out parameters in findCommonAncestor(...) if ancestor is not found (master...out-parameters-in-findCommonAncestor) https://github.com/bitcoin/bitcoin/pull/18657
< bitcoin-git> [bitcoin] ryanofsky opened pull request #18660: test: Verify findCommonAncestor always initializes outputs (master...pr/commoninit) https://github.com/bitcoin/bitcoin/pull/18660
< BlueMatt> elichai2: yea, oss-fuzz has some rather-strict rules about how they will disclose issues publicly after N days of reporting them.
< BlueMatt> elichai2: at the time, and imo quite reasonably, we decided that was completely unacceptable for a p2p consensus system which may, depending on the type of failure, require network-wide update for something to be safe, and some rapid disclosure policy is not compatible with that
< BlueMatt> elichai2: also note that oss-fuzz primarily just provides cpu hours, it doesn't do any actual implementation work for you, and getting access to a few hundred cores for bitcoin core fuzzing is rather easy :p
< sipa> BlueMatt: on the other hand, we currently have fuzzers for the codebase (yay), and we can't prevent anyone from running them secretly on a massive cluster
< BlueMatt> (as a reminder: lots of cpu cores are available in a few locations for those doing bitcoin open source work)
< BlueMatt> sipa: sadly they're mostly all kinda boring targets :(
< BlueMatt> but we *have* a few rather reasonably-sized clusters in various places...
< sipa> BlueMatt: have you paid attention to the more recently added ones?
< BlueMatt> dont think any are currently fuzzing core, but...
< BlueMatt> ah, marco's fuzz stuff got merged! I missed that.
< sipa> so perhaps... either we keep the more delicate ones private (how?), or we're ok with having the ones we have publicly participate in oss-fuzz?
< BlueMatt> well, someone should give them more cpu hours. afair marco had previously done stuff, but...
< sipa> of course - we can also just increase how much cpu we spend ourselves
< BlueMatt> or we could, you know, use the cluster(s) we have to get fuzz hours :)
< sipa> well, or both
< BlueMatt> there's probably at least 120 cpu cores lying around for such usage, just need someone to step up and write scripts
< BlueMatt> i mean how many cpu hours does oss-fuzz provide? I cant imagine it is anything significantly more than the 100 cores/project full-time that we already have?
< BlueMatt> and the tradeoffs for using it...kinda suck
< sipa> that's a great question
< BlueMatt> we could also ask osuosl if heir CI cluster has free cores: https://osuosl.org/services/hosting/details/
< sipa> if it's indeed not (significantly more than) 100 cores, there isn't much to be gained from using it
< BlueMatt> a few bitcoin groups gave them some funds afaiu
< BlueMatt> but, you know, we should probably use our own cpus first.
< BlueMatt> anyway, really just need someone to step up and manage VMs that run fuzzing. I can help a bit, I have it all set up for rust-lightning and regularly pull ~100 cores for that, but I dont really have the bandwidth to manage that all the time, let alone also for core.
< BlueMatt> someone just let me or dongcarl know and we can get you set up with a few VMs with a bunch of cores, I presume there's soeone at blockstream who can do the same
< elichai2> BlueMatt: are these bare metal? because running something like this to detect improvements/regressions can be very helpful: https://perf.rust-lang.org/
< BlueMatt> kvm, but there are separate bare-metal servers intended for benchmarking cc jamesob
< BlueMatt> (which are slower, but bare-metal and more 'average-grade' hardware)
< elichai2> yeah but sadly you need bare metal for profiling, VMs are too dynamic for that AFAIK
< BlueMatt> right, kvm just for non-benchmark things
< BlueMatt> we have ~9 servers which are provisioned bare-metal for benchmarking
< BlueMatt> 9 being 8-outbound-1-target for ibd benchmarking :)
< BlueMatt> though you'd have to ask james as to the status of those
< elichai2> I have my own PC dedicated for profiling benchmarking, trying different system wide changes to Bitcoin Core
< BlueMatt> anyway, hardware/cpu resources isnt the issue, just gotta have someone write bash scripts :)
< BlueMatt> well, and babysit to watch for errors
< elichai2> BlueMatt: from what I looked in oss-fuzz it looks really simple, You write a simple dockerfile to compile and run and that's about it https://github.com/google/oss-fuzz/blob/master/projects/libsodium/Dockerfile
< BlueMatt> well by the time you've done that much work you might as well run it on our own hardware (without the aggressive public-disclosure timelines that may put bitcoin users at risk...)
< elichai2> and if I understand correctly Google will actually pay you if you integrate into oss-fuzz https://github.com/bitcoin-core/secp256k1/issues/739 "We want to stress that anyone who meets the eligibility criteria and integrates a project with OSS-Fuzz is eligible for a reward."
< elichai2> BlueMatt: right. the disclosure thing is a problem, I think they're saying either 90 days from finding or 30 days from fixing
< BlueMatt> lol, thats kinda obnoxious that they're auto-opening issues on open source projects.
< BlueMatt> isnt that against the github tos?
< bitcoin-git> [bitcoin] MarcoFalke pushed 4 commits to master: https://github.com/bitcoin/bitcoin/compare/e84a5f000493...544709763e1f
< bitcoin-git> bitcoin/master fad4fa7 MarcoFalke: node: Add args alias for gArgs global
< bitcoin-git> bitcoin/master fa0cbd4 MarcoFalke: test: Add optional extra_args to testing setup
< bitcoin-git> bitcoin/master fa69f88 MarcoFalke: fuzz: Disable debug log file
< bitcoin-git> [bitcoin] MarcoFalke merged pull request #18571: fuzz: Disable debug log file (master...2004-testLogExtraArgs) https://github.com/bitcoin/bitcoin/pull/18571
< bitcoin-git> [bitcoin] mikispag opened pull request #18661: Compress PNG images with `zopflipng`. (master...master) https://github.com/bitcoin/bitcoin/pull/18661
< fanquake> jnewbery: ok
< bitcoin-git> [bitcoin] MarcoFalke opened pull request #18662: refactor: Replace gArgs with local argsman in all utility tools (master...2004-toolsArgsman) https://github.com/bitcoin/bitcoin/pull/18662