< bitcoin-git> [bitcoin] jnewbery opened pull request #18808: [net processing] Drop unknown types in getdata (master...2020-04-getdata) https://github.com/bitcoin/bitcoin/pull/18808
< bitcoin-git> [bitcoin] MarcoFalke opened pull request #18809: rpc: Do not advertise dumptxoutset as a way to flush the chainstate (master...2004-rpcNoFlushAdvert) https://github.com/bitcoin/bitcoin/pull/18809
< bitcoin-git> [bitcoin] chrisabrams opened pull request #18810: fix: update rest info on block size and json (master...18703) https://github.com/bitcoin/bitcoin/pull/18810
< sipa> is boost 1.47 still the minimum supported?
< fanquake> yes
< bitcoin-git> [bitcoin] xagau opened pull request #18812: Xagau 1 (master...xagau-1) https://github.com/bitcoin/bitcoin/pull/18812
< bitcoin-git> [bitcoin] fanquake closed pull request #18812: Xagau 1 (master...xagau-1) https://github.com/bitcoin/bitcoin/pull/18812
< sipa> would it be a problem to increase that to 1.59?
< fanquake> What's the reason for doing so? I'll recheck all the distros and see if that'd be an issue
< fanquake> CentOS 7 seems to ship with 1.53
< sipa> i'm looking into using a multi_index for keeping track of tx requests, and it seems 1.59 adds "ranked indices", which would avoid the need for some separate things to keep track of
< sipa> multi_index is headers-only, so it'd only be a build dependency, not a runtime one
< fanquake> I see
< fanquake> Ubuntu 16.04 also ships with 1.58.0
< sipa> ok
< bitcoin-git> [bitcoin] bttd opened pull request #18813: 0.20 (master...0.20) https://github.com/bitcoin/bitcoin/pull/18813
< bitcoin-git> [bitcoin] fanquake closed pull request #18813: 0.20 (master...0.20) https://github.com/bitcoin/bitcoin/pull/18813
< bitcoin-git> [bitcoin] fanquake pushed 8 commits to master: https://github.com/bitcoin/bitcoin/compare/ba348dbc518b...0ef0d33f7562
< bitcoin-git> bitcoin/master 89eeb4a Amiti Uttarwar: [mempool] Track "unbroadcast" transactions
< bitcoin-git> bitcoin/master 7e93eec Amiti Uttarwar: [util] Add method that returns random time in milliseconds
< bitcoin-git> bitcoin/master e25e42f Amiti Uttarwar: [p2p] Reattempt initial send of unbroadcast transactions
< bitcoin-git> [bitcoin] fanquake merged pull request #18038: P2P: Mempool tracks locally submitted transactions to improve wallet privacy (master...2020-01-unbroadcast) https://github.com/bitcoin/bitcoin/pull/18038
< lucaferr> Has mempool p2p command been deprecated? The information I can find online indicates it should reply with an inv, however in integration tests it seems to disconnect. Is it only working for SPV clients as of now?
< bitcoin-git> [bitcoin] promag opened pull request #18814: rpc: Relock wallet only if most recent callback (master...2020-04-rpc-wallet-relock) https://github.com/bitcoin/bitcoin/pull/18814
< bitcoin-git> [bitcoin] rebroad closed pull request #18760: Disconnect nodes with bad messages during IBD (master...IBDDisconnectBadChecksum) https://github.com/bitcoin/bitcoin/pull/18760
< bitcoin-git> [bitcoin] MarcoFalke pushed 2 commits to master: https://github.com/bitcoin/bitcoin/compare/0ef0d33f7562...ecca2ea1d5f6
< bitcoin-git> bitcoin/master fcb7261 Russell Yanofsky: Prevent valgrind false positive in rest_blockhash_by_height
< bitcoin-git> bitcoin/master ecca2ea MarcoFalke: Merge #18785: Prevent valgrind false positive in rest_blockhash_by_height
< bitcoin-git> [bitcoin] MarcoFalke merged pull request #18785: Prevent valgrind false positive in rest_blockhash_by_height (master...pr/grind) https://github.com/bitcoin/bitcoin/pull/18785
< bitcoin-git> [bitcoin] MarcoFalke pushed 2 commits to master: https://github.com/bitcoin/bitcoin/compare/ecca2ea1d5f6...af2ec6b03745
< bitcoin-git> bitcoin/master fabe44e MarcoFalke: bench: Start nodes with -nodebuglogfile
< bitcoin-git> bitcoin/master af2ec6b MarcoFalke: Merge #18759: bench: Start nodes with -nodebuglogfile
< bitcoin-git> [bitcoin] MarcoFalke merged pull request #18759: bench: Start nodes with -nodebuglogfile (master...2004-benchNoDebugLog) https://github.com/bitcoin/bitcoin/pull/18759
< bitcoin-git> [bitcoin] MarcoFalke opened pull request #18815: bench: Add logging benchmark (master...2004-benchLog) https://github.com/bitcoin/bitcoin/pull/18815
< vasild> wumpus: While looking at the addrv2/BIP155 wip PR #16748 I realized that in CSubNet we support netmasks that have 0-bits followed by 1-bits, e.g. /255.255.0.255.
< gribble> https://github.com/bitcoin/bitcoin/issues/16748 | [WIP] Add support for addrv2 (BIP155) by dongcarl · Pull Request #16748 · bitcoin/bitcoin · GitHub
< dongcarl> vasild: I apologize for not responding in time to the reviews, it's on my list now :-)
< vasild> I am just wondering - why do we support such strange (invalid) netmasks and can we drop that support?
< vasild> dongcarl: no problem, I got distracted by the netmasks and dived into some CSubNet cleanup that would drop support for netmasks like /255.255.0.255.
< dongcarl> vasild: I'm guessing you're thinking just have a uint type that specifies the prefix length?
< vasild> dongcarl: you read my thoughts!
< dongcarl> Hmm... well are there legitimate cases where a netmask can have 0's in the middle?
< vasild> replace the `uint8_t netmask[16];` in CSubNet with `uint8_t cidr;` which can be in [0, 32] for ipv4 and [0, 128] for ipv6.
< vasild> dongcarl: right, I do not know, but to me that contradicts with the idea of subnetting
< vasild> I was thinking that this is just some unintended side effect, but then found a deliberate test cases that expect such support (above link ^), so I decided to ask :)
< dongcarl> vasild: I think it'd probably be good to leave as is, mostly because the contiguous-ness is not really enforced in the RFCs, and it seems more flexible for the future. Will look into it though.
< vasild> dongcarl: It is!
< vasild> I read it somewhere, let me find it...
< vasild> "Subnet masks were allowed by RFC 950[5] to specify non-contiguous bits until RFC 4632[4]:Section 5.1 stated that the mask must be left contiguous. Given this constraint, a subnet mask and CIDR notation serve exactly the same function."
< vasild> indeed https://tools.ietf.org/html/rfc4632#section-5.1 says "The only outstanding constraint is that the
< vasild> mask must be left contiguous.
< wumpus> vasild: it doesn't matter too much to me, but if you have a good reason to remove that support it's OK with me
< wumpus> just doing it for the sake of it seems useless, it doesn't hurt to support more than strictly expected
< wumpus> I don't think it has any impact on addrv2, AFAIK we never send subnets over the P2P
< vasild> yes, I agree - "for the sake of it" is useless. The main reason I started looking into it was that it would simplify addrv2 changes: https://github.com/bitcoin/bitcoin/pull/16748#discussion_r414663229
< bitcoin-git> [bitcoin] practicalswift closed pull request #17895: build: Enable Clang's -Wconditional-uninitialized to warn on potential uninitialized reads (master...continue-killing-of-uninitialized-reads) https://github.com/bitcoin/bitcoin/pull/17895
< vasild> this modification fiddles with the `uint8_t netmask[16];` array
< vasild> and having to increase that to netmask[32] would be far from perfect, given that it can be just a single byte.
< dongcarl> vasild: Working on sth else right now but will take a look today. One thing that came to mind when I last looked into this: the NetMask code looks like it was written with the assumption that all CNetAddrs would be addresses in address families where netmasks made sense... With the addition of tor, that's not the case anymore
< vasild> Right! Netmasks do not make any sense in the new types too: torv3, i2p, cjdns.
< bitcoin-git> [bitcoin] practicalswift closed pull request #18147: qt: Kill the locale dependency bug class by not allowing Qt to mess with LC_NUMERIC (master...kill-locale-dependency-bug-class) https://github.com/bitcoin/bitcoin/pull/18147
< bitcoin-git> [bitcoin] practicalswift closed pull request #18124: init: Clarify C and C++ locale assumptions. Add locale sanity checks to verify assumptions at run-time. (master...LocaleSanityCheck) https://github.com/bitcoin/bitcoin/pull/18124
< vasild> I will leave the "uint8_t netmask[16]" -> "uint8_t cidr" change away for now. Ideally we shouldn't be using netmasks for e.g. torv3 at all, or we just use one special mask which denotes "matches just one address"
< dongcarl> vasild: Sounds good, always good to explore the options :-) I'll take a closer look at your comments today
< vasild> dongcarl: btw, I rebased the PR on latest master (required some non-trivial conflict resolution) and fixed the failing unit tests.
< dongcarl> vasild: Oh yeah? Do you have a branch up?
< vasild> dongcarl: not pushed on gh, I was wondering how to proceed with that...
< wumpus> agree, netmasks make no sense for non-hierarchical addresses types
< dongcarl> vasild: Well, if it's acceptable to you, you should put yourself as co-author on the commits, and push as a branch to your remote on github e.g. `vaslid/bitcoin`, and I'll get those commits into my branch/PR
< wumpus> and the cidr-based notation is more compact, though it might be more expensive to match against? I'm not sure
< vasild> dongcarl: makes sense, I will clean up a bit and push to gh.
< dongcarl> vasild: Many thanks!
< vasild> yw :)
< vasild> wumpus: more compact and the only valid representation for ipv6, as for speed of matching - we have to compare the first `cidr` bits, I don't think it will make a difference wrt performance.
< vasild> btw our current implementation https://github.com/bitcoin/bitcoin/blob/master/src/netaddress.cpp#L815 is checking all 16 bytes unnecessary - it could stop checking (break; from the loop) as soon as it finds a 0 byte in the netmask. E.g. with a netmask like /255.0.0.0 we don't need to check whether `(addr.ip[x] & netmask[x]) != network.ip[x]` is true or false for the last 3 bytes
< wumpus> yes, I'm fairly sure it can be optimized to be just as fast or even faster, without converting to an and-mask inbetween
< wumpus> no need for constant time matching here
< vasild> this is all minor, low-priority I guess
< wumpus> correct
< wumpus> though some people have extremely large ban lists :)
< vasild> how large?
< wumpus> ~1000 entries
< vasild> hmm
< wumpus> not something any CPU capable of running a bitcoin node in the first place will have any trouble with I guess, it's only per-incoming-connection not per packet
< bitcoin-git> [bitcoin] MarcoFalke pushed 2 commits to master: https://github.com/bitcoin/bitcoin/compare/af2ec6b03745...e302830faed0
< bitcoin-git> bitcoin/master 66fe7b1 Harris: test: added test for upgradewallet RPC
< bitcoin-git> bitcoin/master e302830 MarcoFalke: Merge #18774: test: added test for upgradewallet RPC
< vasild> seems like a minor / low priority performance improvement can be done in the subnet matching code wrt that. Also the size of CSubNet would be reduced with 15 bytes, 15*1000 bytes is nothing in RAM or on disk
< bitcoin-git> [bitcoin] MarcoFalke merged pull request #18774: test: added test for upgradewallet RPC (master...upgradewallet-tests) https://github.com/bitcoin/bitcoin/pull/18774
< bitcoin-git> [bitcoin] MarcoFalke closed pull request #18616: refactor: Cleanup clientversion.cpp (master...20200413-version) https://github.com/bitcoin/bitcoin/pull/18616
< bitcoin-git> [bitcoin] MarcoFalke reopened pull request #18616: refactor: Cleanup clientversion.cpp (master...20200413-version) https://github.com/bitcoin/bitcoin/pull/18616
< vasild> wumpus: dongcarl: anyway, I plan to spend full time on BIP155/addrv2/torv3/i2p/cjdns, modulo distractions :)
< bitcoin-git> [bitcoin] MarcoFalke pushed 2 commits to master: https://github.com/bitcoin/bitcoin/compare/e302830faed0...ab91a0e0fc6e
< bitcoin-git> bitcoin/master 45615de Hennadii Stepanov: ci: Fix default retry script usage
< bitcoin-git> bitcoin/master ab91a0e MarcoFalke: Merge #18798: ci: Fix default retry script usage
< bitcoin-git> [bitcoin] MarcoFalke merged pull request #18798: ci: Fix default retry script usage (master...200428-ci-retry) https://github.com/bitcoin/bitcoin/pull/18798
< wumpus> vasild: awesome!
< bitcoin-git> [bitcoin] practicalswift opened pull request #18817: doc: Document differences in bitcoind and bitcoin-qt locale handling (master...bitcoin-qt-vs-bitcoind-locale) https://github.com/bitcoin/bitcoin/pull/18817
< bitcoin-git> [bitcoin] luke-jr opened pull request #18818: Fix release tarball generated by gitian (master...fix_gitian_src_202004) https://github.com/bitcoin/bitcoin/pull/18818
< luke-jr> ^ should also get tagged for 0.20
< bitcoin-git> [bitcoin] MarcoFalke pushed 2 commits to master: https://github.com/bitcoin/bitcoin/compare/ab91a0e0fc6e...978c5a212240
< bitcoin-git> bitcoin/master 8098dea Hennadii Stepanov: test: Add mempool_updatefromblock.py
< bitcoin-git> bitcoin/master 978c5a2 MarcoFalke: Merge #18485: test: Add mempool_updatefromblock.py
< bitcoin-git> [bitcoin] MarcoFalke merged pull request #18485: test: Add mempool_updatefromblock.py (master...20200331-test-mempool) https://github.com/bitcoin/bitcoin/pull/18485
< achow101> does anyone know what nWalletMaxVersion is for? and why it's distinct from nWalletVersion
< achow101> I think we should be able to consolidate these. which would also make upgradewallet less confusing
< phantomcircuit> it seems at some point in the (probably distant) past the "settings" key for the wallet db was called "setting"
< phantomcircuit> which is now causing the unknown key counter to go up
< phantomcircuit> however i cannot find any evidence of when that was
< sipa> settings like the position and dimension of the UI screen were once upon a time stored in the wallet
< phantomcircuit> there's a "settings" key which is only "known" to avoid the unknown flag, but no "setting" key
< phantomcircuit> sipa, interesting
< phantomcircuit> this is probably irrelevant to like 99.99% of people since this wallet is a mega old testnet wallet
< sipa> heh
< sipa> i wonder if settings got turned into setting in some refactor and nobody ever noticed
< sipa> or the other way around
< phantomcircuit> sipa, possibly only in master and not a release even
< sipa> heh
< luke-jr> achow101: upgradewallet doesn't actually do the upgrade until the new features are needed
< luke-jr> so it increases max version immediately, and the actual version gets bumped no higher than that on demand
< sipa> yes, exactly
< achow101> luke-jr: would it be reasonable to break that with the new upgradewallet rpc? That kind of makes sense for the -upgradewallet option, but for a RPC, the upgrade is explicitly being done so bumping the version regardless seems reasonable to me
< sipa> it used to be the case that upgradewallet would permit the use of compressed keys, but only once you actually created a compressed key was the wallet marked as a new version
< bitcoin-git> [bitcoin] MarcoFalke opened pull request #18819: net: Remove unused cs_feeFilter (master...2004-netNoRecursiveMutex) https://github.com/bitcoin/bitcoin/pull/18819
< sipa> that mechanism wasn't used for encryption, where encrypting would automatically and immediately upgrade iirc
< achow101> this nWalletMaxVersion thing is also only being applied to FEATURE_WALLETCRYPT and FEATURE_COMPRPUBKEY which were introduced ages ago
< sipa> if that mechanism isn't used anymore it may make sense to get rid of it
< sipa> compressed keys was 0.5 iirc
< sipa> in 2011...
< achow101> it only makes sense if you expect the user to downgrade after doing an upgradewallet. and that really doesn't make sense with upgradewallet now being a rpc as its even more explicit
< luke-jr> achow101: frankly, I'm stuck on 0.13 for my wallet because I dislike the direction the wallet is going.. so I'm not sure my opinion counts.
< luke-jr> also, our efforts to keep backward compatibility without upgradewallet have failed anyway.. so
< achow101> also there seems to be a nasty bug in SetMinVersion if your wallet was older than FEATURE_WALLETCRYPT and then you encrypted it, the version would jump to the latest. That's a problem as the wallet would have the indications to be HD without actually being HD
< luke-jr> (eg, inclusion of segwit txs in old wallets)
< luke-jr> achow101: encrypting the wallet would make it HD tho, no?
< achow101> luke-jr: maybe?
< achow101> I was just looking at SetMinVersion and this looked like it could be a huge problem as it was just unconditionally jumping to FEATURE_LATEST
< luke-jr> could be
< bitcoin-git> [bitcoin] MarcoFalke pushed 2 commits to master: https://github.com/bitcoin/bitcoin/compare/978c5a212240...0f204dd3f21b
< bitcoin-git> bitcoin/master 7918c1b Russell Yanofsky: test: Add CreateWalletFromFile test
< bitcoin-git> bitcoin/master 0f204dd MarcoFalke: Merge #18727: test: Add CreateWalletFromFile test
< bitcoin-git> [bitcoin] MarcoFalke merged pull request #18727: test: Add CreateWalletFromFile test (master...pr/create) https://github.com/bitcoin/bitcoin/pull/18727
< bitcoin-git> [bitcoin] dongcarl opened pull request #18820: build: Propagate well-known vars into depends (master...2020-04-improve-depends-hosts2) https://github.com/bitcoin/bitcoin/pull/18820
< bitcoin-git> [bitcoin] MarcoFalke pushed 9 commits to master: https://github.com/bitcoin/bitcoin/compare/0f204dd3f21b...95a9165016ec
< bitcoin-git> bitcoin/master a19598c practicalswift: tests: Add fuzzing harness for functions in system.h (ArgsManager)
< bitcoin-git> bitcoin/master a4e3d13 practicalswift: tests: Add fuzzing coverage for StringForFeeReason(...)
< bitcoin-git> bitcoin/master 90b635e practicalswift: tests: Add fuzzing coverage for CHECK_NONFATAL(...)
< bitcoin-git> [bitcoin] MarcoFalke merged pull request #18736: test: Add fuzzing harnesses for various classes/functions in util/ (master...fuzzers-2020-04-21) https://github.com/bitcoin/bitcoin/pull/18736
< bitcoin-git> [bitcoin] MarcoFalke pushed 2 commits to master: https://github.com/bitcoin/bitcoin/compare/95a9165016ec...36c0abd8f61b
< bitcoin-git> bitcoin/master cd543d9 Danny Lee: test: check misbehavior more independently in p2p_filter.py
< bitcoin-git> bitcoin/master 36c0abd MarcoFalke: Merge #18726: test: check misbehavior more independently in p2p_filter.py
< bitcoin-git> [bitcoin] MarcoFalke merged pull request #18726: test: check misbehavior more independently in p2p_filter.py (master...p2p-filter) https://github.com/bitcoin/bitcoin/pull/18726