achow101 changed the topic of #bitcoin-core-dev to: Bitcoin Core development discussion and commit log | Feel free to watch, but please take commentary and usage questions to #bitcoin | Channel logs: http://www.erisian.com.au/bitcoin-core-dev/, http://gnusha.org/bitcoin-core-dev/ | Weekly Meeting Thursday @ 16:00 UTC | Meeting topics http://gnusha.org/bitcoin-core-dev/proposedmeetingtopics.txt
jespada has quit [Ping timeout: 265 seconds]
dyscope_ has quit [Ping timeout: 265 seconds]
dyscope has quit [Ping timeout: 276 seconds]
spynxic has quit [Remote host closed the connection]
spynxic has joined #bitcoin-core-dev
TheRec has quit []
mcey_ has joined #bitcoin-core-dev
emcy__ has quit [Ping timeout: 248 seconds]
adil has joined #bitcoin-core-dev
<bitcoin-git> [gui-qml] johnny9 opened pull request #473: qml: Remove duplicate property in BlockClock (main...duplicate-property) https://github.com/bitcoin-core/gui-qml/pull/473
lol_ has joined #bitcoin-core-dev
jcarpenter2 has quit [Ping timeout: 268 seconds]
lol_ has left #bitcoin-core-dev [#bitcoin-core-dev]
cmirror has quit [Remote host closed the connection]
cmirror has joined #bitcoin-core-dev
luke-jr has joined #bitcoin-core-dev
luke-jr_ has quit [Ping timeout: 252 seconds]
robszarka has joined #bitcoin-core-dev
szarka has quit [Ping timeout: 260 seconds]
jonatack has joined #bitcoin-core-dev
wafflefrie has quit [Quit: Connection closed for inactivity]
kevkevin has quit [Remote host closed the connection]
dyscope_ has joined #bitcoin-core-dev
dyscope has joined #bitcoin-core-dev
kevkevin has joined #bitcoin-core-dev
dyscope_ has quit [Quit: Leaving]
dyscope has quit [Quit: Leaving]
kevkevin has quit [Ping timeout: 272 seconds]
Christoph_ has joined #bitcoin-core-dev
kevkevin has joined #bitcoin-core-dev
BlueMatt has quit [Quit: Quit]
BlueMatt has joined #bitcoin-core-dev
b10c[m] has quit [Ping timeout: 244 seconds]
sr_gi[m]1 has quit [Ping timeout: 268 seconds]
bitcoin-git has quit [Ping timeout: 244 seconds]
BlueMattMtrxBot has quit [Ping timeout: 260 seconds]
laanwj has quit [Ping timeout: 276 seconds]
stratospher[m] has quit [Ping timeout: 260 seconds]
kvaciral[m] has quit [Ping timeout: 276 seconds]
kevkevin has quit [Ping timeout: 252 seconds]
jkczyz has quit [*.net *.split]
schmidty has quit [*.net *.split]
laanwj has joined #bitcoin-core-dev
sr_gi[m]1 has joined #bitcoin-core-dev
jkczyz has joined #bitcoin-core-dev
schmidty has joined #bitcoin-core-dev
peter_wrighten has joined #bitcoin-core-dev
BlueMattMtrxBot has joined #bitcoin-core-dev
b10c[m] has joined #bitcoin-core-dev
stratospher[m] has joined #bitcoin-core-dev
bitcoin-git has joined #bitcoin-core-dev
kevkevin has joined #bitcoin-core-dev
adil has quit [Ping timeout: 260 seconds]
kevkevin has quit [Ping timeout: 248 seconds]
adil has joined #bitcoin-core-dev
emcy__ has joined #bitcoin-core-dev
hardtotell8 has joined #bitcoin-core-dev
sliv3r__- has joined #bitcoin-core-dev
sliv3r__ has quit [Remote host closed the connection]
hardtotell has quit [Read error: Connection reset by peer]
hardtotell8 is now known as hardtotell
mcey_ has quit [Ping timeout: 260 seconds]
Guyver2 has joined #bitcoin-core-dev
kevkevin has joined #bitcoin-core-dev
dzxzg has quit [Ping timeout: 276 seconds]
dzxzg has joined #bitcoin-core-dev
kevkevin has quit [Ping timeout: 268 seconds]
adil has quit [Ping timeout: 260 seconds]
<vasild> #proposedmeetingtopic Rough poll - how many people use GCC and how many of those do generate code coverage with GCC? Context: https://github.com/bitcoin/bitcoin/issues/31047#issuecomment-2965646793
<fanquake> Seems like the wrong two questions? Shouldn't it just be, "What compiler do you use to generate code coverage?".
kevkevin has joined #bitcoin-core-dev
<janb84> clang + llvm-cov
<vasild> Well, if we want to know how many people would be affected if we drop X, then the question to ask it "Who is using X?". Also, another thing to consider is that people that use GCC but did not generate coverage in the past are potential users of the to-be-dropped stuff.
<fanquake> Yea. All of our fuzzing infra, mutation testing etc all use Clang, because it's the only thing that works
<maflcko> for one-off coverage I just use assert(false) or std::cout and see if it is hit (works with any compiler without coverage tooling)
<fanquake> Those people can still do whatever they want, assuming they can make it work amongst the matrix of tooling and lcov versions and gcov versions (another reason why it doesn't work out of the box consistently)
adil has joined #bitcoin-core-dev
<dergoegge> https://maflcko.github.io/b-c-cov/ uses the gcc stuff, right?
<fanquake> My suggestion is just that we should switch what we have implemented, to be more convenient, for the majority of people already doing useful work (a few exceptions obviously, but that can likely accomodate/don't care too much)
<maflcko> yeah, corecheck as well: https://github.com/corecheck/corecheck/blob/7734c3773da2ae2f133b7a720dee7d3ede966520/workers/coverage-worker/entrypoint.sh#L50 So would have to remove -DCMAKE_BUILD_TYPE=Coverage there first, before removing it from the build system
<fanquake> I'm not saying we shouldn't remove it, I'm saying we implement it so it works with Clang, rather than GCC
<fanquake> *should
<hebasto> Using clang for coverage reports doesn’t need a dedicated build configuration at all
<fanquake> (and not try and use any compatibility modes etc)
<fanquake> Sure, but neither does GCC
antanst9 has quit [Ping timeout: 272 seconds]
kevkevin has quit [Ping timeout: 244 seconds]
<hebasto> the coverage build configuration facilitates helping scripts when using cmake multi-config generators.
antanst9 has joined #bitcoin-core-dev
<_aj_> i've done a cov build in the past; don't remember if it was gcc or clang. i mostly found the upstream tools confusing, vs problems with the autotools/make stuff (which is why i haven't tried it recently). my config.log suggests i was trying with clang at one point for whatever that's worth
<fanquake> Given multi-config is primarily to support Windows, it seems less relevant here? Is anyone doing multi-config converage builds (on windows?)?
<fanquake> _aj_: if you tried using Clang with the current coverage build type, you likely would have run into issues yea
<_aj_> fanquake: i mean "how do i get useful reports? ah, this then this then that then the other thing. ugh, it worked, but that was so annoying i never want to do it again" from what i remember, anyway
<_aj_> fanquake: easier to use the drahtbot links now :-/
<fanquake> _aj: sounds like a situation we need to improve
<bitcoin-git> [bitcoin] waketraindev closed pull request #32732: net, rpc, qt: add per-peer blocktxn stats to getpeerinfo and qt debug window (master...extra-blocktxn-stats) https://github.com/bitcoin/bitcoin/pull/32732
tarotfied has quit [Ping timeout: 244 seconds]
tarotfied has joined #bitcoin-core-dev
Christoph_ has quit [Quit: Christoph_]
Christoph_ has joined #bitcoin-core-dev
kevkevin has joined #bitcoin-core-dev
<bitcoin-git> [bitcoin] fanquake opened pull request #32735: [28.x] More backports (28.x...28_x_win_sign_cmake_4) https://github.com/bitcoin/bitcoin/pull/32735
Christoph_ has quit [Ping timeout: 245 seconds]
Cory has quit [Quit: Client closed]
kevkevin has quit [Ping timeout: 244 seconds]
Cory has joined #bitcoin-core-dev
Christoph_ has joined #bitcoin-core-dev
kevkevin has joined #bitcoin-core-dev
Christoph_ has quit [Ping timeout: 265 seconds]
TheRec has joined #bitcoin-core-dev
kevkevin has quit [Ping timeout: 265 seconds]
kevkevin has joined #bitcoin-core-dev
<bitcoin-git> [gui-qml] hebasto pushed 2 commits to main: https://github.com/bitcoin-core/gui-qml/compare/c7678375d081...07093a161c0d
<bitcoin-git> gui-qml/main b9a9007 johnny9: qml: Remove duplicate property in BlockClock
<bitcoin-git> gui-qml/main 07093a1 merge-script: Merge bitcoin-core/gui-qml#473: qml: Remove duplicate property in BlockClo...
<bitcoin-git> [gui-qml] hebasto merged pull request #473: qml: Remove duplicate property in BlockClock (main...duplicate-property) https://github.com/bitcoin-core/gui-qml/pull/473
Guyver2 has quit [Quit: Going offline, see ya! (www.adiirc.com)]
jespada has joined #bitcoin-core-dev
Cory has quit [Quit: Client closed]
Cory has joined #bitcoin-core-dev
l0rinc has joined #bitcoin-core-dev
<l0rinc> #proposedmeetingtopic [IBD] multi-byte block obfuscation (part of #32043)
<l0rinc> With the AutoFile batching now merged (#31551), seeking reviewers/reproducers for the block/index obfuscation optimizations in #31144 - achieving >20x performance gain and ~4% overall IBD speedup
<corebot`> https://github.com/bitcoin/bitcoin/issues/32043 | [IBD] Tracking PR for speeding up Initial Block Download by l0rinc · Pull Request #32043 · bitcoin/bitcoin · GitHub
<corebot`> https://github.com/bitcoin/bitcoin/issues/31551 | [IBD] batch block reads/writes during `AutoFile` serialization by l0rinc · Pull Request #31551 · bitcoin/bitcoin · GitHub
<corebot`> https://github.com/bitcoin/bitcoin/issues/31144 | [IBD] multi-byte block obfuscation by l0rinc · Pull Request #31144 · bitcoin/bitcoin · GitHub
kevkevin has quit [Ping timeout: 248 seconds]
adil has quit [Ping timeout: 260 seconds]
peter_wrighten has quit [Ping timeout: 252 seconds]
adil has joined #bitcoin-core-dev
Christoph_ has joined #bitcoin-core-dev
adil has quit [Quit: adil]
Guest14 has joined #bitcoin-core-dev
Guest14 has quit [Client Quit]
kevkevin has joined #bitcoin-core-dev
kevkevin has quit [Ping timeout: 260 seconds]
l0rinc has quit [Quit: l0rinc]
Guyver2 has joined #bitcoin-core-dev
kevkevin has joined #bitcoin-core-dev
<vasild> achow101: (or whoever hosts the meeting) I will not be at the meeting. The point of the topic I proposed is to get an estimate of how many people would be affected if we remove something that they use (GCC coverage from CMake as it is now)
janb84 has quit [Ping timeout: 244 seconds]
janb84 has joined #bitcoin-core-dev
sliv3r__- has quit [Read error: Connection reset by peer]
sliv3r__ has joined #bitcoin-core-dev
ghost43 has quit [Remote host closed the connection]
SpellChecker has quit [Read error: Connection reset by peer]
SpellChecker has joined #bitcoin-core-dev
ghost43 has joined #bitcoin-core-dev
Guyver2 has left #bitcoin-core-dev [Closing Window]
VonNaturAustreVe has joined #bitcoin-core-dev
VonNaturAustreVe has joined #bitcoin-core-dev
kevkevin has quit [Remote host closed the connection]
kevkevin has joined #bitcoin-core-dev
SpellChecker has quit [Remote host closed the connection]
SpellChecker has joined #bitcoin-core-dev
<bitcoin-git> [bitcoin] hodlinator opened pull request #32736: wallet: Warn upon failing to scan directory (master...2025/06/wallet_dir_iter) https://github.com/bitcoin/bitcoin/pull/32736
l0rinc has joined #bitcoin-core-dev
l0rinc has quit [Ping timeout: 252 seconds]
Guest5082 has joined #bitcoin-core-dev
jonatack has quit [Ping timeout: 252 seconds]
jonatack has joined #bitcoin-core-dev
jonatack has quit [Ping timeout: 276 seconds]
mcey_ has joined #bitcoin-core-dev
emcy__ has quit [Ping timeout: 252 seconds]
Cory has quit [Quit: Client closed]
Cory has joined #bitcoin-core-dev
Cory has quit [Client Quit]
Cory has joined #bitcoin-core-dev
<bitcoin-git> [bitcoin] rkrux opened pull request #32737: rpc, doc: clarify the response of listtransactions RPC (master...listtx) https://github.com/bitcoin/bitcoin/pull/32737
jespada has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
jespada has joined #bitcoin-core-dev
purpleKarrot has joined #bitcoin-core-dev
<lightlike> vasild: I usually use gcc and have used lcov with it on occasion before, but clang is necessary anyway (sanitizers, fuzzing), so I don't really care, just need something that works and is documented.
Christoph_ has quit [Quit: Christoph_]
bugs_ has joined #bitcoin-core-dev
<bitcoin-git> [bitcoin] Bitchryankilledme opened pull request #32738: Create msbuild.yml (master...master) https://github.com/bitcoin/bitcoin/pull/32738
<bitcoin-git> [bitcoin] DrahtBot closed pull request #32738: Create msbuild.yml (master...master) https://github.com/bitcoin/bitcoin/pull/32738
jonatack has joined #bitcoin-core-dev
Cory has quit [Quit: Client closed]
Cory has joined #bitcoin-core-dev
eugenesiegel has joined #bitcoin-core-dev
Emc99 has joined #bitcoin-core-dev
dermoth_ has joined #bitcoin-core-dev
<achow101> #startmeeting
<corebot`> achow101: Meeting started at 2025-06-12T16:00+0000
<corebot`> achow101: Current chairs: achow101
<hodlinator> hi
<corebot`> achow101: Useful commands: #action #info #idea #link #topic #motion #vote #close #endmeeting
<corebot`> achow101: Participants should now identify themselves with '#here' or with an alias like '#here FirstLast'
<TheCharlatan> hi
<achow101> #bitcoin-core-dev Meeting: abubakarsadiq achow101 _aj_ ajonas b10c brunoerg cfields darosior dergoegge fanquake fjahr furszy gleb glozow hebasto hodlinator instagibbs jarolrod jonatack josibake kanzure laanwj LarryRuane lightlike luke-jr maflcko marcofleon maxedw Murch pinheadmz provoostenator ryanofsky sdaftuar S3RK stickies-v sipa sr_gi tdb3 theStack TheCharlatan vasild willcl-ark
<maxedw> hi
dermoth has quit [Ping timeout: 276 seconds]
<hebasto> hi
<furszy> hi
<johnny9dev> hi
<dergoegge> hi
<pinheadmz> hi
<fjahr> hi
<brunoerg_> hi
<vasild> hi (I am back on time)
<lightlike> hi
<instagibbs> hi
<achow101> There are 2 preproposed meeting topics this week. Any last minute ones to add?
<eugenesiegel> hi
<stickies-v> hi
l0rinc has joined #bitcoin-core-dev
<l0rinc> hi
enochazariah has joined #bitcoin-core-dev
<cfields> hi
<jonatack> hi
<achow101> #topic Fuzzing WG Update (dergoegge)
<dergoegge> Fuzzamoto (https://github.com/dergoegge/fuzzamoto) has been my primary focus the last couple months. Wrote some notes on what I’ve been up to here: https://gist.github.com/dergoegge/46c7a5fd2468b5b108f5c34ac1f88e45. Quick summary:
<dergoegge> The project now includes a custom fuzzing engine for structure aware fuzzing of p2p protocol message sequences. Coverage report for that as of jun 10: https://dergoegge.github.io/bitcoin-coverage/fuzzamoto/ir-jun10/coverage/bitcoin/index.html
<dergoegge> Highlights from the cov report:
<dergoegge> More net_processing coverage than the in-repo fuzz tests, in all coverage metrics (line, function, region, branch) coverage (e.g. ~70% vs ~ 64% line coverage). Also coverage for reorgs went from nothing to something (i.e. Chainstate::DisconnectTip, Chainstate::MaybeUpdateMempoolForReorg)
dermoth_ is now known as dermoth
<dergoegge> I’m still working on extending the fuzzer to increase coverage (e.g. no compact block support atm) and brainstorming what kind of bug oracles are feasible (please lmk if you have any ideas, join the fuzzing wg)
<purpleKarrot> hi
<dergoegge> Lastly, it would be interesting to have a collection of real p2p/validation bugs to test the fuzzer against (beyond what’s list ed on https://bitcoincore.org/en/security-advisories/). If you know of or have found bugs in your own or other PRs please let me know! Any kind of bug (logic, crash, …) is fine.
Christoph_ has joined #bitcoin-core-dev
rkrux has joined #bitcoin-core-dev
<marcofleon> hype
<instagibbs> nice re:reorgs
<rkrux> hi
<eugenesiegel> awesome about reorgs
<brunoerg_> nice
<sipa> hi
<sipa> dergoegge: cool, will think about bugs that can be included
<achow101> #topic Kernel WG Update (TheCharlatan)
<TheCharlatan> I pushed a new version of #32427 including a write ahead log and crc32c checksums for each entry. Performance still seems to be a bit better compared to leveldb. This should make writes atomic and provide detection for potential corruption.
<corebot`> https://github.com/bitcoin/bitcoin/issues/32427 | (RFC) kernel: Replace leveldb-based BlockTreeDB with flat-file based store by TheCharlatan · Pull Request #32427 · bitcoin/bitcoin · GitHub
<cfields> 🚀
Christoph_ has quit [Client Quit]
<TheCharlatan> also looking for review on #32317
<corebot`> https://github.com/bitcoin/bitcoin/issues/32317 | kernel: Separate UTXO set access from validation functions by TheCharlatan · Pull Request #32317 · bitcoin/bitcoin · GitHub
<TheCharlatan> that's all for now
<sipa> TheCharlatan: (sorry for being lazy and not looking at code), what path structure are you using?
<cfields> 32427 spawned a discussion about a new on-disk block layout that is a bit of a distraction...
<sr_gi[m]1> hi
<abubakarsadiq> hi
enochazariah97 has joined #bitcoin-core-dev
<sipa> cfields: jinx, ok...
<cfields> I think it might be worth having that discussion here a bit..
<TheCharlatan> path structures?
<cfields> sipa: hah
<sipa> TheCharlatan: directory/file names
hernanmarino has quit [Ping timeout: 268 seconds]
<l0rinc> TheCharlatan: "Performance still seems to be a bit better compared to leveldb" - I have measured a reindex until 888888 blocks for your PR and the performance seemed roughly the same
enochazariah has quit [Ping timeout: 272 seconds]
<TheCharlatan> oh, yeah, the PR does not touch the actual block storage hierarchy.
<sipa> ah, ok
<cfields> tldr: in the review for 32427, several reviewers brought up the idea of changing the on-disk block format while we're at it. One suggested example is one-file-per-block...
<dergoegge> the on disk block index storage performance should not affect ibd at all, we keep all of it in memory no?
<sipa> dergoegge: flushes to utxo set trigger flushes of block data, which could take some marginal amount of time?
<TheCharlatan> I also think that given that we have some flexibility with the existing pair of 64bit numbers to point to a location on disk, we might be able to use the encoding for single block files.
<cfields> for 32427 to move forward, we either need to agree to punt on that discussion and bring it up again later, or bikeshed some layout changes. For the sake of not grinding the flat index changes to a halt, I prefer the former.
<dergoegge> sipa: ah right, ty
<vasild> "one-file-per-block" ... some filesystems may not handle well 1M files, is there any benefit from doing that?
<l0rinc> won't we have problems with so many open files on Windows - like we had with LevelDB?
<sipa> vasild: they can be grouped into subdirectories too, either by hash, or (my suggestion, i think) by height
<cfields> vasild: you don't really need an index anymore if the blocks can be located using the filesystem alone.
<vasild> sure, I do not mean 1M files in a single directory
<cfields> er, a much simpler index at least.
<sipa> yes, agree with that, don't put 1M files in a single directory :)
<l0rinc> would be really cool to try it out though - let me know if I can help with benchmarking anything
<TheCharlatan> dergoegge yes, in ibd time it is just good to know there are no regressions. The speedup during block index loading when starting a node is more significant though.
<lightlike> people tend to copy datadirs for backups etc. years ago that would take very long with millions of files, did that change?
<sipa> cfields: no need for the block data structure change (if any) to be made in the same PR, it suffices if it's in the same release
enochazariah97 has quit [Quit: Client closed]
freedomcode has quit [Remote host closed the connection]
reardencode has joined #bitcoin-core-dev
<sipa> cfields: well "index" isn't the right word anymore then, but we still have a block database with things like validation status and so on (though, arguably, that belongs more in validation then block storage)
<vasild> cfields: that would be like outsouring the indexing to the OS/filesystem, e.g. blocks/1/15/153/153764 (for block 153764). The question is can we do better than the worst OS/FS that is going to use Bitcoin Core, or even, better than the best FS?
<l0rinc> would that mean that leveldb indexes can point to files and indexes now instead of duplicating any data? Or is that still problematic for pruned nodes?
<sipa> it'd be pretty awesome if the block index can go away, and its remaining fields moved into the chainstate
<vasild> I guess it has to be tested...
<cfields> sipa: right
<sipa> though maybe not more than an aesthetical advantage
<sipa> it's just ugly that we store validity of a block in the block index, it's not a storage-related thing but a validation-related one
<cfields> sipa: much easier for non-core software to read blocks. definitely not just aesthetic.
<sipa> cfields: i'm talking about the block index going away, independent of block storage structure used
<sipa> lightlike: yeah, i worry about that too - maybe in these days with fast SSDs that's less of an issue, but i don't actually know
<cfields> sipa: not sure what you mean. how does it go away if we still need to map them to a non-addressable location?
<TheCharlatan> also seems useful though to have block validity included for as long as we can't read the chainstate easily from external sources.
<sipa> cfields: sorry, i'm being confusing. I'm talking about the advantage of the block index going away, which is something that's only possible with a change to directory structure - but i'm just talking that that index going away itself is nice, ignoring the advantage that the directory structure may bring without that
<sipa> TheCharlatan: i disagree!
<sipa> TheCharlatan: it's pretty counterintuitive that someone just copying the block data, but not chainstate, would inherit the validity status from that block data
<cfields> sipa: ah, yes, completely agree.
<TheCharlatan> mmh, so you couldn't recreate the block tree anymore without re-validating?
<sipa> TheCharlatan: i just wouldn't think of the validity status as part of the block data
<sipa> you can recreate it from just disk, but without a chainstate to fill in validity status, every block would be marked as non-validated
Christoph_ has joined #bitcoin-core-dev
<sipa> this is probably getting a bit into the weeds for this meeting
<TheCharlatan> yes :)
<lightlike> i feel like the discussion of this idea deserves a separate issue, it's not that related to ThCharlatan's PR.
<TheCharlatan> sooo... next topic?
<achow101> next topic
<achow101> #topic Benchmarking WG Update (josie, l0rinc)
<l0rinc> I have opened the obfuscation PR in Oct 2024, split off other smaller optimizations since, some of those are merged already - the XOR block obfuscation one is next, reproducers and reviewers are welcome
<l0rinc> I've received 2 raspberry pi servers recently, I will be able to do benchmarks on those as well (already measured Sipa's #32545) - since many people are complaining they're IBDs are taking weeks
<corebot`> https://github.com/bitcoin/bitcoin/issues/32545 | Replace cluster linearization algorithm with SFL by sipa · Pull Request #32545 · bitcoin/bitcoin · GitHub
<l0rinc> And lately I'm measuring memory usages as well besides performance with massif and heaptrack as well - see #28531
<corebot`> https://github.com/bitcoin/bitcoin/issues/28531 | improve MallocUsage() accuracy by LarryRuane · Pull Request #28531 · bitcoin/bitcoin · GitHub
<jonatack> nice
<l0rinc> I noticed that GCC and Clang optimize differently - is it important to benchmark both?
Guest5082 has quit [Ping timeout: 245 seconds]
<sipa> whatever is used for releases is what matters most
<fanquake> GCC 13.3.0
<sipa> which is IIRC clang for macOS and gcc for windows and linux
<fanquake> clang 18 for macos
<l0rinc> the tracking PR for speeding up Initial Block Download, where I have collected the results of the benchmarks I've done is in #32043
<corebot`> https://github.com/bitcoin/bitcoin/issues/32043 | [IBD] Tracking PR for speeding up Initial Block Download by l0rinc · Pull Request #32043 · bitcoin/bitcoin · GitHub
<jonatack> maybe you are already doing so, but benchmarking with slow internet connections for ibd/p2p might reveal additional issues in how a change under consideration impacts nodes under more hostile conditions like that
Cory has quit [Quit: Client closed]
<l0rinc> the PI server are also on slightly slower network and lower memory (4 & 8GB)
Cory has joined #bitcoin-core-dev
<dzxzg> it's challenging to create realistic bad network conditions in a way that is also reproducible
<l0rinc> if you think it's important, I can simulate slow connections as well to see what that reveals (the Hetzner servers I have are very fast for normal IBD as well, I guess the nodes it find are probably also from Hetnzer)
<jonatack> benchmarking how bitcoind holds up under tough conditions seems valuable (i find it does very well currently, apart from ibd time)
<jonatack> (and the stalling/timeout->disconnect logic)
<sipa> yeah i think those are very different things to measure
<l0rinc> I've also checked swiftsync with very simpmple xor instead of muhash - and locally on my laptop it finished a reindex until 888888 blocks in 29 minutes
<sipa> pure computation/disk/io based effects
<abubakarsadiq> not sure whether it will help, but having a node with few peers as well? like doing ibd without inbounds, someone complained to me that their ibd was slow.
<abubakarsadiq> when I checked it due to having very few peers, basically no inbounds at all.
<sipa> vs network block IBD fetching effects
<eugenesiegel> I have heard that netem can be used to simulate latency
<achow101> sorry, going to try to keep things moving since we have 2 actual topics this week
<achow101> we can have further discussion after the meeting, or in an issue on github
<l0rinc> k, thanks
<achow101> #topic Cluster Mempool WG Update (sdaftuar, sipa)
<sipa> not much to report
<sipa> next to review remains reorg support in txgraph, #31553
<corebot`> https://github.com/bitcoin/bitcoin/issues/31553 | cluster mempool: add TxGraph reorg functionality by sipa · Pull Request #31553 · bitcoin/bitcoin · GitHub
<sipa> had some activity on a test-only but non-blocking PR, #30605, which had a review club, and grew a bit in more test improvements since
<corebot`> https://github.com/bitcoin/bitcoin/issues/30605 | Cluster linearization: separate tests from tests-of-tests by sipa · Pull Request #30605 · bitcoin/bitcoin · GitHub
<sipa> i posted instructions for more intensive benchmarking of the new linearization algorithm in #32545, if people want to participate in that
<corebot`> https://github.com/bitcoin/bitcoin/issues/32545 | Replace cluster linearization algorithm with SFL by sipa · Pull Request #32545 · bitcoin/bitcoin · GitHub
<sipa> that's it from me
<achow101> #topic MuSig2 WG Update (achow101, rkrux)
<achow101> Not much to update, #31244 has gotten some review which I've been addressing
<corebot`> https://github.com/bitcoin/bitcoin/issues/31244 | descriptors: MuSig2 by achow101 · Pull Request #31244 · bitcoin/bitcoin · GitHub
<achow101> The change to the BIP is still waiting to see if anyone has an opinion on the duplicate participants
<achow101> #topic QML GUI WG Update (jarolrod, johnny9dev)
<sipa> achow101: link to BIP change?
<sipa> ah, or that's on the ML?
<achow101> sipa: ML
<johnny9dev> Significant progress was made this week on rebasing the project and moving it to CMake+Qt6. Both hebasto and pinheadmz have PRs now to test and fix issues with the update. bitcoin-core/gui-qml#470 bitcoin-core/gui-qml#472. Both PRs are now able to load up the QML app and get to the main navigation and views.
<johnny9dev> For myself, I've been focused on the current Send and Recieve PRs that are in review. I've also been making updates to how address inputs are handled, bitcoin amount label formatting, and address label formatting to get closer to the design spec.
<corebot`> https://github.com/bitcoin-core/gui-qml/issues/470 | [WIP] Sync with main repo: CMake + Qt 6 by hebasto · Pull Request #470 · bitcoin-core/gui-qml · GitHub
<sipa> achow101: thanks
<corebot`> https://github.com/bitcoin-core/gui-qml/issues/472 | Rebase gui-qml on bitcoin/bitcoin, include qt6 and cmake by pinheadmz · Pull Request #472 · bitcoin-core/gui-qml · GitHub
rkrux has quit [Quit: Client closed]
<hebasto> bitcoin-core/gui-qml#472 is preferred
<corebot`> https://github.com/bitcoin-core/gui-qml/issues/472 | Rebase gui-qml on bitcoin/bitcoin, include qt6 and cmake by pinheadmz · Pull Request #472 · bitcoin-core/gui-qml · GitHub
<achow101> #topic Script Validation WG Update (fjahr)
<fjahr> Nothing really noteworthy this week, more time for the *actual* topics ;)
<achow101> #topic Erlay WG Update (sr_gi, gleb)
<sr_gi[m]1> Nothing much to report on my end either, I've been off a couple of weeks. Currently picking warnet sims where I left them before leaving. Will report once I'm finished
<achow101> #topic Rough poll - how many people use GCC and how many of those do generate code coverage with GCC? (vasild)
<vasild> Trying to get an estimate of how many people are using the current GCC-oriented coverage we have in CMake.
<eugenesiegel> I use gcc for code coverage
<achow101> I use gcc, but I haven't generated coverage with it in ~5 years (or any other coverage really)
<sipa> i use GCC for creating benchmarking builds, and clang for fuzzing builds; i haven't used coverage tools for a long time (maybe i should?)
Guest4319 has joined #bitcoin-core-dev
<fjahr> Only have been using clang for anything cov related since that was what was recommended to me, but definitely not a heavy user lately
<eugenesiegel> coverage reports are nice for telling you where the fuzzer is stuck
<fanquake> eugenesiegel: are you using GCC for fuzzing? Or just switching to it for coverage?
<eugenesiegel> fanquake: I use libfuzzer to fuzz on a VM, and then run the corpus through with gcc coverage on my mac
<fanquake> gcc on a mac is clang though? So brew installed GCC?
<l0rinc> I usually use test code coverage in cLion which automatically adds the `-DCMAKE_CXX_FLAGS="-fcoverage-mapping -fprofile-instr-generate" -DCMAKE_C_FLAGS="-fcoverage-mapping -fprofile-instr-generate"` options
<dergoegge> l0rinc: and then you (or cLion) uses the llvm tools to create the actual report?
<l0rinc> there's a built-in report, haven't checked how it generates it
<eugenesiegel> fanquake: oh, I didn't know that. I use gcov so I assumed it was gcc
<fanquake> What is the output of gcc --version
<dergoegge> eugenesiegel: to clarify, your reports look like this: https://maflcko.github.io/b-c-cov/fuzz.coverage/index.html ?
<vasild> for the records, the context of this topic is https://github.com/bitcoin/bitcoin/issues/31047
<eugenesiegel> fanquake: clang 16
<fanquake> Right, so that'll probably be Clang in compat mode
<eugenesiegel> dergoegge: no they don't, they look like this https://crypt-iq.github.io/fuzz_coverage_reports/cmpctblock-nyx-cov-06012025/
<jonatack> brew says gcc 15.1, but currently for me gcc --version is Apple clang version 17.0.0 (clang-1700.0.13.5)
<achow101> I'm fine with replacing the gcc based coverage with clang based. IIRC, the current instructions don't even work?
Sjors[m]1 has quit [Quit: Reconnecting]
<achow101> already have to switch compilers to use libfuzzer, and to get things like thread-safety warnings
Sjors[m]1 has joined #bitcoin-core-dev
<marcofleon> I think we have proper clang coverage instructions in the docs?
<dergoegge> eugenesiegel: got it! "Generated by llvm-cov", so you're using the clang and the llvm tooling
<vasild> achow101: current instructions work for me: https://github.com/bitcoin/bitcoin/issues/31047#issuecomment-2658930755
<dergoegge> (that's what it says at the bottom)
<Sjors[m]1> #31047
<corebot`> https://github.com/bitcoin/bitcoin/issues/31047 | build: RFC Coverage build type · Issue #31047 · bitcoin/bitcoin · GitHub
<dzxzg> Isn't it possible to compile with gcc and make a coverage report with lcov?
<achow101> vasild: hmm ok. I did try a while ago and it didn't work, but didn't try to debug what went wrong
<eugenesiegel> dergoegge: oops. I think I used to use gcc but I guess not anymore
<fanquake> dzxzg: it depends on the system, the verison of the tools, might require additional options etc
<fanquake> i.e there are breaking changes between lcov 1.6 and 2.0
<dergoegge> I think the llvm reports are also just more readable (see my comment here: https://github.com/bitcoin/bitcoin/issues/31047#issuecomment-2396661558)
<fanquake> using clang / llvm, unless you're installation is somehow broken, everything will just work in harmony
<fanquake> and you get working sanitizers, fuzzing, thread safety etc
<fanquake> (hence why all of our important infra is using it)
<achow101> i think further discussion can happen in the issue
<dergoegge> so no one is using gcc is the conclusion?
<sipa> except release builds
<sipa> :p
<achow101> dergoegge: seems like it
<vasild> :)
<achow101> #topic [IBD] multi-byte block obfuscation (l0rinc)
<dergoegge> :D
<l0rinc> I have already talked about this, thanks
<achow101> ah, it was just asking for more review?
<achow101> Any other topics to discuss?
<l0rinc> and I haven't talked about this before, just decided to join IRC, so wanted to give some context :)
<achow101> #endmeeting
<corebot`> achow101: Meeting ended at 2025-06-12T16:58+0000
Emc99 has quit [Quit: Client closed]
<achow101> vasild: I think last time I tried lcov was before we merged cmake, so maybe the problem was autotools :)
<vasild> ;-)
<bitcoin-git> [bitcoin] fanquake opened pull request #32739: tsan: drop Qt wildcard suppressions (master...unwildcard_qt) https://github.com/bitcoin/bitcoin/pull/32739
l0rinc has quit [Quit: l0rinc]
dzxzg has quit []
<darosior> vasild: most of the time i use gcc for default builds and clang for fuzzing or using sanitizers. I generate source-based coverage with LLVM. I have never used gcov based coverage as presented in our doc.
Christoph_ has quit [Quit: Christoph_]
Guest4319 has quit [Remote host closed the connection]
eugenesiegel has quit [Quit: Client closed]
eugenesiegel has joined #bitcoin-core-dev
cotsuka has quit [Remote host closed the connection]
cotsuka has joined #bitcoin-core-dev
eugenesiegel has quit [Quit: Client closed]
l0rinc has joined #bitcoin-core-dev
Talkless has joined #bitcoin-core-dev
jonatack has quit [Ping timeout: 265 seconds]
<vasild> darosior: looks like one more confirmation of "< dergoegge> so no one is using gcc is the conclusion?" :)
l0rinc has quit [Quit: l0rinc]
Cory93 has joined #bitcoin-core-dev
jonatack has joined #bitcoin-core-dev
Cory has quit [Ping timeout: 272 seconds]
<hodlinator> vasild: I've used GCC mainly for getting benchmarks resembling release builds, otherwise I'm happy to use Clang. Haven't really used coverage that much yet.
purpleKarrot has quit [Quit: purpleKarrot]
<fanquake> CoreCheck is using it, however speaking to Max, he was already looking into migrating to LLVM/Clang
VonNaturAustreVe has quit [Ping timeout: 260 seconds]
purpleKarrot has joined #bitcoin-core-dev
Cory15 has joined #bitcoin-core-dev
Cory93 has quit [Ping timeout: 272 seconds]
Talkless has quit [Quit: Konversation terminated!]
dyscope has joined #bitcoin-core-dev
dyscope_ has joined #bitcoin-core-dev
dyscope_ has quit [Remote host closed the connection]
dyscope has quit [Remote host closed the connection]
dyscope has joined #bitcoin-core-dev
dyscope has quit [Remote host closed the connection]
dyscope has joined #bitcoin-core-dev
VonNaturAustreVe has joined #bitcoin-core-dev
VonNaturAustreVe has quit [Ping timeout: 248 seconds]
robobub has quit [Quit: Connection closed for inactivity]
bugs_ has quit [Quit: Leaving]
purpleKarrot has quit [Quit: purpleKarrot]
<bitcoin-git> [bitcoin] danielabrozzoni opened pull request #32740: refactor: Optimizations & simplifications following #25717 (master...upforgrabs/25968) https://github.com/bitcoin/bitcoin/pull/32740
dyscope has quit [Quit: Leaving]
Guest22 has joined #bitcoin-core-dev
Guest22 has quit [Client Quit]
jespada has quit [Ping timeout: 260 seconds]
jespada has joined #bitcoin-core-dev
jonatack has quit [Ping timeout: 248 seconds]
kevkevin has quit [Remote host closed the connection]
<bitcoin-git> [bitcoin] waketraindev opened pull request #32741: rpc: add optional nodeid param to filter getpeerinfo (master...2025-06-getpeerinfo-filterid) https://github.com/bitcoin/bitcoin/pull/32741
conman has quit [Remote host closed the connection]
kevkevin has joined #bitcoin-core-dev
conman has joined #bitcoin-core-dev
jonatack has joined #bitcoin-core-dev
kevkevin has quit [Remote host closed the connection]
PaperSword has quit [Quit: PaperSword]
kevkevin has joined #bitcoin-core-dev
jonatack has quit [Ping timeout: 272 seconds]
<bitcoin-git> [bitcoin] achow101 pushed 6 commits to master: https://github.com/bitcoin/bitcoin/compare/5757de4ddd37...19765dca197a
<bitcoin-git> bitcoin/master 331a25c furszy: test: indexes, avoid creating threads when sync runs synchronously
<bitcoin-git> bitcoin/master 0a24870 Ryan Ofsky: indexes, refactor: Stop requiring CBlockIndex type to call IsBIP30Unspenda...
<bitcoin-git> bitcoin/master 6f1392c Ryan Ofsky: indexes, refactor: Remove remaining CBlockIndex* uses in index Rewind meth...
<bitcoin-git> [bitcoin] achow101 merged pull request #32694: index: move disk read lookups to base class (master...2025_indexes_remove_CBlockIndex_access) https://github.com/bitcoin/bitcoin/pull/32694
jonatack has joined #bitcoin-core-dev
hernanmarino has joined #bitcoin-core-dev
hernanmarino has quit [Ping timeout: 268 seconds]
hernanmarino has joined #bitcoin-core-dev