--- Day changed Wed Dec 16 2020 00:05 -!- da39a3ee5e6b4b0d [~da39a3ee5@2403:6200:8876:cecf:a55b:90cf:1ae1:4d7b] has quit [Quit: My MacBook has gone to sleep. ZZZzzz…] 00:19 -!- da39a3ee5e6b4b0d [~da39a3ee5@49.228.254.151] has joined #bitcoin-core-pr-reviews 01:42 -!- vasild [~vd@gateway/tor-sasl/vasild] has joined #bitcoin-core-pr-reviews 01:53 -!- kristapsk [~KK@gateway/tor-sasl/kristapsk] has quit [Remote host closed the connection] 01:55 -!- harrigan [~harrigan@ptr-93-89-242-235.ip.airwire.ie] has quit [Ping timeout: 260 seconds] 02:11 -!- svav [5245568f@82-69-86-143.dsl.in-addr.zen.co.uk] has joined #bitcoin-core-pr-reviews 02:13 -!- shesek [~shesek@164.90.217.137] has joined #bitcoin-core-pr-reviews 02:13 -!- shesek [~shesek@164.90.217.137] has quit [Changing host] 02:13 -!- shesek [~shesek@unaffiliated/shesek] has joined #bitcoin-core-pr-reviews 02:13 -!- jonatack [~jon@88.124.242.136] has quit [Ping timeout: 246 seconds] 02:15 -!- jonatack [~jon@134.19.179.147] has joined #bitcoin-core-pr-reviews 02:23 -!- da39a3ee5e6b4b0d [~da39a3ee5@49.228.254.151] has quit [Quit: My MacBook has gone to sleep. ZZZzzz…] 02:41 -!- da39a3ee5e6b4b0d [~da39a3ee5@2403:6200:8876:cecf:313a:ef0a:c021:651e] has joined #bitcoin-core-pr-reviews 03:20 -!- Caterina66Hoppe [~Caterina6@static.57.1.216.95.clients.your-server.de] has joined #bitcoin-core-pr-reviews 03:31 -!- aj [aj@cerulean.erisian.com.au] has quit [Ping timeout: 256 seconds] 03:43 -!- troygiorshev [~troygiors@d67-193-140-136.home3.cgocable.net] has quit [Ping timeout: 256 seconds] 03:43 -!- troygiorshev [~troygiors@d67-193-140-136.home3.cgocable.net] has joined #bitcoin-core-pr-reviews 03:46 -!- Caterina66Hoppe [~Caterina6@static.57.1.216.95.clients.your-server.de] has quit [Ping timeout: 240 seconds] 03:51 -!- midnight [~midnight@unaffiliated/midnightmagic] has quit [Ping timeout: 244 seconds] 04:00 -!- midnight [~midnight@unaffiliated/midnightmagic] has joined #bitcoin-core-pr-reviews 04:28 -!- da39a3ee5e6b4b0d [~da39a3ee5@2403:6200:8876:cecf:313a:ef0a:c021:651e] has quit [Quit: My MacBook has gone to sleep. ZZZzzz…] 04:30 -!- jonatack [~jon@134.19.179.147] has quit [Quit: jonatack] 04:33 -!- malar [68a3b2a6@104.163.178.166] has joined #bitcoin-core-pr-reviews 04:33 -!- jonatack [~jon@88.124.242.136] has joined #bitcoin-core-pr-reviews 04:37 -!- aj [aj@cerulean.erisian.com.au] has joined #bitcoin-core-pr-reviews 04:38 -!- jonatack [~jon@88.124.242.136] has quit [Ping timeout: 246 seconds] 04:39 -!- jonatack [~jon@213.152.186.173] has joined #bitcoin-core-pr-reviews 04:57 -!- pinheadmz [~pinheadmz@71.190.30.138] has joined #bitcoin-core-pr-reviews 05:02 -!- davterra [~davterra@107.182.237.19] has quit [Quit: Leaving] 05:16 -!- da39a3ee5e6b4b0d [~da39a3ee5@2403:6200:8876:cecf:313a:ef0a:c021:651e] has joined #bitcoin-core-pr-reviews 05:36 -!- da39a3ee5e6b4b0d [~da39a3ee5@2403:6200:8876:cecf:313a:ef0a:c021:651e] has quit [Quit: My MacBook has gone to sleep. ZZZzzz…] 05:36 -!- vasild_ [~vd@gateway/tor-sasl/vasild] has joined #bitcoin-core-pr-reviews 05:36 -!- vasild [~vd@gateway/tor-sasl/vasild] has quit [Disconnected by services] 05:36 -!- vasild_ is now known as vasild 06:26 -!- AndrewYang [516cb8be@cpc159747-finc22-2-0-cust189.4-2.cable.virginm.net] has joined #bitcoin-core-pr-reviews 06:31 -!- da39a3ee5e6b4b0d [~da39a3ee5@2403:6200:8876:cecf:313a:ef0a:c021:651e] has joined #bitcoin-core-pr-reviews 07:01 -!- pinheadmz [~pinheadmz@71.190.30.138] has quit [Read error: Connection reset by peer] 07:03 -!- pinheadmz [~pinheadmz@71.190.30.138] has joined #bitcoin-core-pr-reviews 07:16 -!- shesek [~shesek@unaffiliated/shesek] has quit [Remote host closed the connection] 07:20 -!- pinheadm_ [~pinheadmz@71.190.30.138] has joined #bitcoin-core-pr-reviews 07:23 -!- pinheadmz [~pinheadmz@71.190.30.138] has quit [Ping timeout: 272 seconds] 07:24 -!- shesek [~shesek@164.90.217.137] has joined #bitcoin-core-pr-reviews 07:24 -!- shesek [~shesek@164.90.217.137] has quit [Changing host] 07:24 -!- shesek [~shesek@unaffiliated/shesek] has joined #bitcoin-core-pr-reviews 07:32 -!- svav [5245568f@82-69-86-143.dsl.in-addr.zen.co.uk] has quit [Ping timeout: 245 seconds] 07:57 -!- belcher_ [~belcher@unaffiliated/belcher] has joined #bitcoin-core-pr-reviews 07:57 -!- belcher [~belcher@unaffiliated/belcher] has quit [Read error: Connection reset by peer] 08:00 -!- malar [68a3b2a6@104.163.178.166] has quit [Remote host closed the connection] 08:10 -!- seven_ [~seven@cpe-90-157-197-248.static.amis.net] has joined #bitcoin-core-pr-reviews 08:12 -!- joelklabo [~textual@108-196-216-127.lightspeed.sntcca.sbcglobal.net] has joined #bitcoin-core-pr-reviews 08:17 -!- belcher_ is now known as belcher 08:20 -!- robert_spigler [robertspig@gateway/shell/matrix.org/x-gyzoapdcugmmdwow] has quit [Ping timeout: 268 seconds] 08:20 -!- robert_spigler [robertspig@gateway/shell/matrix.org/x-xnfysvtnctlvjxpj] has joined #bitcoin-core-pr-reviews 08:21 -!- ctrlbreak [~ctrlbreak@159.2.165.130] has quit [Remote host closed the connection] 08:21 -!- ctrlbreak [~ctrlbreak@159.2.165.130] has joined #bitcoin-core-pr-reviews 08:34 -!- da39a3ee5e6b4b0d [~da39a3ee5@2403:6200:8876:cecf:313a:ef0a:c021:651e] has quit [Quit: My MacBook has gone to sleep. ZZZzzz…] 08:42 -!- thomasb06 [~user@eth-west-pareq2-46-193-0-224.wb.wifirst.net] has joined #bitcoin-core-pr-reviews 08:42 -!- malar [68a3b2a6@104.163.178.166] has joined #bitcoin-core-pr-reviews 08:42 -!- malar [68a3b2a6@104.163.178.166] has left #bitcoin-core-pr-reviews [] 08:42 -!- malar [68a3b2a6@104.163.178.166] has joined #bitcoin-core-pr-reviews 08:43 < jnewbery> hi folks. We'll get started in 15 minutes. Notes and questions: https://bitcoincore.reviews/19935 08:44 -!- harrigan [~harrigan@ptr-93-89-242-235.ip.airwire.ie] has joined #bitcoin-core-pr-reviews 08:45 -!- davterra [~davterra@107.182.237.19] has joined #bitcoin-core-pr-reviews 08:49 -!- samuel-pedraza [47edaff3@gateway/web/cgi-irc/kiwiirc.com/ip.71.237.175.243] has joined #bitcoin-core-pr-reviews 08:55 -!- elle [~ellemouto@155.93.252.70] has joined #bitcoin-core-pr-reviews 08:56 -!- lightlike [~lightlike@p200300c7ef22ad008d562e74d2695fa7.dip0.t-ipconnect.de] has joined #bitcoin-core-pr-reviews 08:58 -!- svav [5245568f@82-69-86-143.dsl.in-addr.zen.co.uk] has joined #bitcoin-core-pr-reviews 08:58 -!- kouloumos [d5073cd3@213-60-211.netrunf.cytanet.com.cy] has joined #bitcoin-core-pr-reviews 08:59 -!- murtyjones [ae612166@cpe-174-97-33-102.cinci.res.rr.com] has joined #bitcoin-core-pr-reviews 08:59 -!- finite [~finite@195.181.160.175.adsl.inet-telecom.org] has joined #bitcoin-core-pr-reviews 08:59 -!- jeremyrubin [~jr@c-73-15-215-148.hsd1.ca.comcast.net] has joined #bitcoin-core-pr-reviews 09:00 < willcl_ark> #startmeeting 09:00 < willcl_ark> Hello everyone, welcome to the final review club before christmas! 09:00 < finite> hi 09:00 < dhruvm> hi 09:00 < felixweis> hi 09:00 < samuel-pedraza> hi! 09:00 < elle> hi 09:00 < murtyjones> hello! 09:00 < michaelfolkson> hi 09:00 < svav> Hi 09:00 < willcl_ark> Please feel free to say hi if you're here :) 09:01 < lightlike> hi 09:01 < thomasb06> hi 09:01 < joelklabo> hi 09:01 < emzy> hi 09:01 < willcl_ark> Today we're going to be looking at #19935: "Move SaltedHashers to separate file and add some new ones." 09:02 < willcl_ark> A quick reminder of some conventions, you don't have to ask to ask a question (e.g. "I have a question about x but I don't know if it's on-topic?") just go ahead and ask. 09:02 < willcl_ark> OK, so did everyone get a chance to review the PR? How about a quick y/n? 09:02 < murtyjones> y 09:02 < dhruvm> y 09:02 < joelklabo> y 09:02 < svav> y 09:02 < michaelfolkson> y 09:02 < emzy> n 09:03 < kouloumos> hi 09:03 < kouloumos> n 09:03 < jnewbery> hi 09:03 < thomasb06> n (studied Bloom filters instead) 09:03 < michaelfolkson> Why bloom filters? 09:03 < lightlike> y 09:03 < michaelfolkson> Just fancied it thomasb06? 09:03 < jnewbery> y 09:03 < samuel-pedraza> y 09:04 < thomasb06> because they use hach functions too 09:04 < willcl_ark> that's great! The PR was primarily refactor, but it touches some interesting parts of code which I want to dive into 09:04 -!- anir [40bba0b7@64.187.160.183] has joined #bitcoin-core-pr-reviews 09:04 < willcl_ark> So first question to get us started, why do we need to specify a “hasher” when defining a std::unordered_map? 09:04 < dhruvm> The Hasher tells std::unordered_map how to make deterministic buckets based on the keys which result in O(1) lookups. 09:04 -!- effexzi [uid474242@gateway/web/irccloud.com/x-xmnpfyznpbtnkdth] has joined #bitcoin-core-pr-reviews 09:05 < thomasb06> michaelfolkson: if I understood well the table is T[h_i(m)] for h_i a hash function 09:05 < michaelfolkson> Without a hasher you wouldn't know which bucket an element should be placed in 09:05 < kouloumos> because the standard library has no implementations for user-defined classes 09:06 < joelklabo> user-defined objects need to have their own hashing implementation 09:06 < joelklabo> what kouloumos said 09:06 < willcl_ark> dhruvm, michaelfolkson, kouloumos joelklabo right! std::unordered_map doesn't know how it should hash our (custom) bitcoin objects. 09:08 < willcl_ark> next question: what exactly is a `Coin` as used by `CCoinsMap` and hashed using `SaltedOutpointHasher`? 09:08 < murtyjones> Is it a UTXO entry? 09:08 < dhruvm> A Coin is a UTXO. The canonical representation of that is CTXOutPoint(txid, n) which are the elements SipHash'ed by SaltedOutpointHasher. 09:10 < willcl_ark> murtyjones: dhruvm exactly! 09:11 < willcl_ark> The concept of a `Coin` was introduced in https://github.com/bitcoin/bitcoin/pull/10195 09:11 < joelklabo> I have a quick C++ question, is putting SaltedOutpointHasher() in the public interface of itself how you create a singleton? A little confused by the syntax 09:12 < jnewbery> joelklabo: do you mean here: https://github.com/bitcoin/bitcoin/blob/b440c33179e777bfebb8c12840e06ea691a4868f/src/coins.h#L92 ? That's declaring the constructor 09:12 < dhruvm> joelklabo: I am not sure it is a singleton 09:13 < michaelfolkson> That PR 10195 "switched chainstate db and cache to per-txout model". Before it was a per-tx model? 09:13 < michaelfolkson> Looks like an interesting PR 09:13 < dhruvm> It is used by stdlib when using CCoinsMap 09:13 < dhruvm> here: https://github.com/bitcoin/bitcoin/blob/master/src/coins.h#L157 09:13 -!- fodediop [~fode@41.214.84.97] has joined #bitcoin-core-pr-reviews 09:13 < joelklabo> Ah, ok but I was thinking the salt would need to be consistent for the lifetime of the process, so things don't move around, I'll look that up. Thanks 09:14 < fodediop> hi 09:14 < dhruvm> joelklabo: you're right that only one instance of SaltedOutpointHasher is ever created in binary lifetime 09:14 < dhruvm> but it is not using the singleton code pattern. You could initialize another instance if needed. 09:15 < joelklabo> thanks, dhruvm, still learning some basic C++ stuff 09:15 < dhruvm> joelklabo: we all are :) 09:15 < willcl_ark> joelklabo: we've also got a question on salts coming up soon 09:16 -!- belcher [~belcher@unaffiliated/belcher] has quit [Quit: Leaving] 09:16 < michaelfolkson> Didn't realize only changed to per-txout model in 2017... 09:16 -!- caralie [185a5d39@cpe-24-90-93-57.nyc.res.rr.com] has joined #bitcoin-core-pr-reviews 09:17 < willcl_ark> Alright, so why does src/coins.cpp use a SaltedOutpointHasher rather than a SaltedTxidHasher? 09:17 < murtyjones> Using SaltedTxidHasher would require storing all of the outputs in a list in the value, vs. using the outpoint to point to one specific UTXO. 09:17 < dhruvm> txid alone is not a canonical representation of a Coin/UTXO. The specific txOut must be referenced. 09:17 < jnewbery> dhruvm: I don't think you're right that only one instance is ever created. We'll create a new one for each CCoinsMap object. 09:18 < dhruvm> jnewbery: ah, you're right. it's just a typedef there 09:19 < willcl_ark> murtyjones: dhruvm right. If we used SaltedTxidHasher then all the UTXOs from the same transaction would hash to the same result which would be, sub-optimal. 09:19 -!- belcher [~belcher@unaffiliated/belcher] has joined #bitcoin-core-pr-reviews 09:20 < willcl_ark> Are there any potential downsides to using an Outpoint-based system? 09:20 < dhruvm> willcl_ark: More buckets? 09:20 < murtyjones> according to the PR linked, larger on disk representation 09:21 < joelklabo> also slower lookup due to one entry per output v one per tx 09:22 < sipa> before 0.15 a per-tx model was used for the chainstste 09:23 < willcl_ark> yes! all good potential tradeoffs to beware of. 09:23 < sipa> its primary downside was that it required reading all unspent outputs of a tx left from disk any time any of them were spent 09:23 < felixweis> leveldb has some logic to not use more disk data when the key prefix is the same 09:23 < sipa> this led to a DOS attack 09:23 < sipa> *vulnerability 09:24 < michaelfolkson> How would that vuln be exploited? 09:24 < michaelfolkson> By sending lots of fake transactions to a peer to validate? 09:25 < MarcoFalke> michaelfolkson: Create a tx with lots of outputs 09:25 < sanket1729> I guess by creating a transaction lotsof inputs 09:25 < michaelfolkson> Like lots and lots. On order of hundreds? 09:25 < felixweis> create many txs with many outputs 09:26 < sipa> first creste txn with lots of outputs, then create a tx that spends one utxo from each 09:26 -!- heebs [68c2dcef@104.194.220.239] has joined #bitcoin-core-pr-reviews 09:26 < felixweis> then create a tx with many inputs, each spending from a different large prior tx 09:26 < sipa> now you may need gigabytes of memory to load all the utxos from all those 09:26 < felixweis> now you need to keep it all in mem 09:26 < jonatack> hi 09:27 < felixweis> there were demos of how to OOM iirc 09:27 < michaelfolkson> Cool 09:27 < felixweis> i vaguely remember something about paris 09:27 -!- Guest73155 [~alexander@2a02:8070:e187:b900:2961:6d91:a239:1d42] has joined #bitcoin-core-pr-reviews 09:27 < felixweis> and breaking bitcoin 09:27 < sipa> indeed 09:27 < willcl_ark> Using an Outpoint-based model also affects the ability to test directly against the UTXO set, but I don't think this is an issue. 09:28 < felixweis> and some discussion about responsible disclosure 09:28 < jnewbery> I think we're getting a little bit off topic :) 09:28 < michaelfolkson> Oh it was that.... I remember haha 09:28 < willcl_ark> Ok next question: What is a “salt” and why are they used in SaltedTxidHasher, SaltedOutpointHasher and SaltedSipHasher? 09:29 < murtyjones> A salt is random data included in the input to a hash function. My guess is that it's used with those structures to prevent malicious construction of colliding values? 09:29 < dhruvm> The salt makes the output of the hash function unpredictable to parties that know the input but not the salt. The hash function remains deterministic so long as the same salt is used. The salt is updated every time the containers are initialized. As an example, SaltedTxidHasher is used in a multi_index for the mempool, which seems to be a non-persistent data structure. 09:29 < felixweis> salt is usually used in hashers so an attacker can not know how the buckets are being constructed. otherwise you can create O(n) behaviour 09:29 < michaelfolkson> Right... so salts are generally used for things like storing passwords. If you didn't salt them you would be able to see everyone who uses "Password" as their password 09:30 < michaelfolkson> By salting them you don't see lots of people with the same hashed password 09:30 < willcl_ark> correct! std::unordered_set puts objects into buckets based on their hash value. An adversary who can create hash collisions at will can force a large number of items into the same bucket meaning that lookup time goes from 0(1) to 0(n). 09:31 < dhruvm> Wouldn't that require useful work though? 09:31 < dhruvm> Like creating a valid transaction that results in a specific txid? 09:31 < joelklabo> I guess the same could happen if you had a "bad" hashing algorithm that wasn't evenly distrubuted 09:32 < sipa> note that "who can create hash collisions" doesn't mean much... for these data structures the hashes are maybe 10-230 bits in size 09:32 < sipa> eh, 10-30 09:32 < lightlike> Why are there two uint64_t (m_k0, m_k1) used as salts in SaltedSipHasher instead of just one? 09:33 < sipa> siphash happens to use a 128-bit key 09:33 -!- sdaftuar [~sdaftuar@gateway/tor-sasl/sdaftuar] has quit [Remote host closed the connection] 09:33 < michaelfolkson> What was the DoS attack that motivated the invention of siphash? 09:33 < willcl_ark> Does anyone have any ideas about an attack that might be possible if lookup time was affected in this way? 09:34 -!- sdaftuar [~sdaftuar@gateway/tor-sasl/sdaftuar] has joined #bitcoin-core-pr-reviews 09:34 < jnewbery> https://www.aumasson.jp/siphash/siphash.pdf for those interested in learning more about siphash 09:34 < sipa> michaelfolkson: the paper would be the best place to look i think 09:34 < lightlike> thanks, will take a look 09:35 < jnewbery> (or https://github.com/bitcoin/bitcoin/blob/b440c33179e777bfebb8c12840e06ea691a4868f/src/crypto/siphash.cpp if you prefer reading code) 09:36 < jonatack> and then review https://github.com/bitcoin/bitcoin/pull/18014 09:36 < sipa> as i know someone who was confused about this before: i didn't invent siphash 09:36 < michaelfolkson> haha not sipahash 09:36 < willcl_ark> hehe, easy to mistakenly assume 09:37 < dhruvm> i certainly thought that until i saw the paper 09:37 < michaelfolkson> jonatack: Coming up to a year open on that one... 09:37 < willcl_ark> Alright, why are salts *not* used in BlockHasher and FilterHeaderHasher? 09:37 < jnewbery> is it true that you invented sippy cups though? 09:38 < dhruvm> Maybe because those hashers are used in persistent data structures? BlockHasher is used in BlockMap/m_block_index. (Un)LoadBlockIndex persist it to disk. 09:38 < dhruvm> But I am not sure, as in that case, it'd be beneficial to just persist the salt as well? 09:38 < michaelfolkson> jnewbery: What is a sippy cup? A party cup? Off topic... 09:38 < willcl_ark> dhruvm: I thought so too at first, although I think we could easily also write the salt to disk 09:39 < dhruvm> willcl_ark: exactly 09:40 < michaelfolkson> OK... so I get the benefits of salting - use random number in your hash. Like a nonce in dig sigs I guess... I get the benefits of siphash, need secret key to generate. 09:40 < michaelfolkson> But why do you need a combination of both? 09:41 < michaelfolkson> To stop someone with the secret key from being able to identity hashes that are the same in the database? 09:41 < sipa> it's not a combination 09:41 < jnewbery> if the aim of the salt is to prevent collisions, then why do we not need to worry about that for blocks? 09:41 < felixweis> you need a keyed hash function, siphash is that 09:41 < michaelfolkson> A salted siphash is not a combination of salting and siphash? 09:41 < sipa> siphash is the gold standard for hash table bucket hashing to prptect against collisions... and siphash uses a salt 09:42 < michaelfolkson> Oh. All siphash uses a salt... ok 09:42 < sipa> no, siphash is a PRF. it takes as input a key (="salt") and a message 09:42 < felixweis> because the work to create a valid block hash is many magnitudes higher than creating an unconfimed tx 09:42 < willcl_ark> felixweis: bingo! 09:42 < jnewbery> felixweis: correct 09:43 < willcl_ark> OK next Q: what is a boost multi-index? How is the SaltedTxidHasher used in the mempool multi-index? 09:43 < dhruvm> A multi_index maintains multiple indices on the same data set. index_transaction_set is a multi_index on the mempool. SaltedTxidHasher is used to maintain the mempool sorted by txid for fast lookups by txid. 09:44 < jnewbery> if someone wanted to create a collision in our BlockMap, they'd need to be mining valid blocks which _also_ collide in the BlockHasher function 09:45 < willcl_ark> dhruvm: correct! 09:45 < willcl_ark> We can see this here: https://github.com/bitcoin/bitcoin/blob/6a480636/src/txmempool.h#L519-L527 09:45 < jonatack> txid and wtxid, though i'm sure dhruvm meant both 09:46 < willcl_ark> jonatack: I thought he did :) 09:46 < dhruvm> good reminder. yeah i meant the canonical id used for the tx. 09:47 < willcl_ark> OK final question, this PR introduces a new `SaltedSipHasher` that takes a `Span` as input, what are the advantages to this? 09:47 < michaelfolkson> In addition to the advantages of using Span generally? 09:48 < dhruvm> The new implementation allows arbitrary strings to be SipHash'd. 09:48 < sipa> span span span span 09:48 < michaelfolkson> I guess if you are introducing Span then you want to be able to hash them 09:48 < willcl_ark> lovely span 09:48 < michaelfolkson> sipan 09:49 < michaelfolkson> invented by sipa 09:49 < willcl_ark> he's very conspicuous with the naming 09:49 < willcl_ark> dhruvm: right, this would allow a single hasher to be used with any of `uint256`, `CPubKey`, `CScript`, `CKeyId`, and generics like `std::vector` 09:50 < willcl_ark> Are there any places where we _wouldn't_ be able to use such a "generic" hasher? 09:51 < dhruvm> i think we cannot use it where the type doesn't implement Span? 09:51 < dhruvm> *key type 09:53 < sipa> you don't need to "implement span" in general 09:53 -!- HoloIRCUser [~holoirc@2a02:8070:e187:b900:c199:fbe4:e5ac:1522] has joined #bitcoin-core-pr-reviews 09:53 < sipa> types just need a begin() and end() and size() 09:53 < dhruvm> oh sorry, i thought there were methods that need to exist on the type. But I need to study up on span. 09:54 -!- HoloIRCUser [~holoirc@2a02:8070:e187:b900:c199:fbe4:e5ac:1522] has quit [Read error: Connection reset by peer] 09:54 < dhruvm> i see. not inheritance, or "implementing an interface". cool! 09:54 < joelklabo> what C++ version does core use? span seems new in C++ 20? 09:54 < willcl_ark> I think Core has a custom re-implementation 09:55 < jonatack> joelklabo: c++11 until very recently, now 17 09:55 < willcl_ark> (of Span) 09:55 < michaelfolkson> https://bitcoin.stackexchange.com/questions/100545/what-version-of-c-is-used-in-bitcoin-core 09:55 < dhruvm> joelklabo: src/span.h implements a subset of the C++20 span 09:55 < jonatack> see src/span.h 09:55 < joelklabo> thanks 09:55 < willcl_ark> It's not easy to use the `SaltedSipHasher` with `Span` in places where the keyed hash is saved to disk, e.g. https://github.com/bitcoin/bitcoin/blob/3f205808a5f20c9398d8e74b7e83220a129acc7d/src/addrman.cpp#L14 . If the hash function is changed, then the object would no longer hash to the same digest. 09:55 -!- HoloIRCUser [~holoirc@2a02:8070:e187:b900:c199:fbe4:e5ac:1522] has joined #bitcoin-core-pr-reviews 09:56 < michaelfolkson> C++17 due for v22 apparently 09:56 < felixweis> When leaving c++11 behind, why not go all the way to 20 ? 09:56 < jnewbery> felixweis: c++20 was finalized yesterday 09:57 < jnewbery> oh, maybe it was a few weeks ago 09:57 < willcl_ark> Well that was the final question, so I think it's time to 09:57 < willcl_ark> #endmeeting 09:58 < willcl_ark> thanks everyone for coming 09:58 < jnewbery> oh it got published yesterday: https://www.iso.org/standard/79358.html 09:58 < jonatack> thanks willcl_ark! 09:58 < murtyjones> thank you willcl_ark! 09:58 < dhruvm> thank you, willcl_ark ! 09:58 < jnewbery> one thing before everyone goes 09:58 < felixweis> Thanks willcl_ark! 09:58 < joelklabo> thanks willcl_ark ! 09:58 < finite> thanks willcl_ark 09:58 < michaelfolkson> I know you jnewbery wanted to only allow parts of C++17. Was it consensus that all C++17 should be allowed in Core v22? I know people argued for this 09:58 -!- HoloIRCUser [~holoirc@2a02:8070:e187:b900:c199:fbe4:e5ac:1522] has quit [Read error: Connection reset by peer] 09:58 < felixweis> And Newbery for another awesome year of core review club 09:58 < fodediop> thank you willcl_ark! 09:59 < caralie> thank you! 09:59 < joelklabo> yeah, I look forward to these every week jnewbery 09:59 < emzy> thank you! 09:59 -!- HoloIRCUser [~holoirc@2a02:8070:e187:b900:c199:fbe4:e5ac:1522] has joined #bitcoin-core-pr-reviews 09:59 < michaelfolkson> Thanks willcl_ark jnewbery 09:59 < jnewbery> There's a short survey at https://forms.gle/ZLZcxVRoAozVcAyE6 about review club this year. It'd be very helpful if you could fill it out and let me know how we could make review club even better next year. 09:59 < lightlike> thanks! 09:59 -!- HoloIRCUser [~holoirc@2a02:8070:e187:b900:c199:fbe4:e5ac:1522] has quit [Client Quit] 10:00 < dhruvm> Thanks jnewbery for PR review club. It has been very useful to my onboarding journey. 10:00 < jnewbery> As always, feel free to contact me directly if you have any suggestions or feedback. 10:00 < svav> Thanks 10:00 < willcl_ark> Thanks jnewbery for organising these! 10:00 < thomasb06> thanks 10:00 -!- murtyjones [ae612166@cpe-174-97-33-102.cinci.res.rr.com] has quit [Remote host closed the connection] 10:00 < jnewbery> And have a fantastic Christmas and New Year. See you all in 2021 🚀 10:01 -!- caralie [185a5d39@cpe-24-90-93-57.nyc.res.rr.com] has quit [Remote host closed the connection] 10:01 < fodediop> Happy NNew Year 🎉 10:01 -!- icebreaker__ [6c32975e@pool-108-50-151-94.nwrknj.fios.verizon.net] has joined #bitcoin-core-pr-reviews 10:01 < jonatack> don't forget to leave your review feedback on the PR (and keep revewing other PRs if you're inclined to do so :) 10:02 < jonatack> s/revewing/reviewing and testing/ 10:02 < felixweis> Guten Rutsch! 10:03 -!- fodediop [~fode@41.214.84.97] has quit [Quit: WeeChat 3.0] 10:03 < anir> Thanks willcl_ark jnewbery! 10:08 < wumpus> felixweis | When leaving c++11 behind, why not go all the way to 20 ? <- if only :) every bump of the c++ version is a struggle, which depends on compiler support in even the most slow linux distros 10:09 < sipa> also afaik no fully C++20 compliant compiler exists today 10:11 -!- Guest73155 [~alexander@2a02:8070:e187:b900:2961:6d91:a239:1d42] has quit [Quit: Konversation terminated!] 10:19 -!- icebreaker__ [6c32975e@pool-108-50-151-94.nwrknj.fios.verizon.net] has quit [Remote host closed the connection] 10:21 < felixweis> wumpus, sipa: thanks 10:25 -!- icebreaker__ [6c32975e@pool-108-50-151-94.nwrknj.fios.verizon.net] has joined #bitcoin-core-pr-reviews 10:28 -!- icebreaker__ [6c32975e@pool-108-50-151-94.nwrknj.fios.verizon.net] has quit [Remote host closed the connection] 10:57 -!- samuel-pedraza [47edaff3@gateway/web/cgi-irc/kiwiirc.com/ip.71.237.175.243] has quit [Quit: Connection closed] 11:03 -!- sdaftuar [~sdaftuar@gateway/tor-sasl/sdaftuar] has quit [Remote host closed the connection] 11:03 -!- sdaftuar [~sdaftuar@gateway/tor-sasl/sdaftuar] has joined #bitcoin-core-pr-reviews 11:16 < jonatack> Today's meeting log is up 🍰 https://bitcoincore.reviews/19935 11:23 < finite> thanks jonatack 11:23 -!- finite [~finite@195.181.160.175.adsl.inet-telecom.org] has quit [Quit: finite] 11:30 -!- kouloumos [d5073cd3@213-60-211.netrunf.cytanet.com.cy] has quit [Remote host closed the connection] 11:58 -!- elle [~ellemouto@155.93.252.70] has quit [Quit: leaving] 12:14 -!- effexzi [uid474242@gateway/web/irccloud.com/x-xmnpfyznpbtnkdth] has quit [Quit: Connection closed for inactivity] 12:42 -!- anir [40bba0b7@64.187.160.183] has quit [Ping timeout: 245 seconds] 12:43 -!- heebs [68c2dcef@104.194.220.239] has quit [Remote host closed the connection] 12:59 -!- AndrewYang [516cb8be@cpc159747-finc22-2-0-cust189.4-2.cable.virginm.net] has quit [Ping timeout: 245 seconds] 13:00 -!- davterra [~davterra@107.182.237.19] has quit [Remote host closed the connection] 13:01 -!- joelklabo [~textual@108-196-216-127.lightspeed.sntcca.sbcglobal.net] has quit [Quit: My iMac has gone to sleep. ZZZzzz…] 13:05 -!- lightlike [~lightlike@p200300c7ef22ad008d562e74d2695fa7.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 13:10 -!- davterra [~davterra@107.182.237.19] has joined #bitcoin-core-pr-reviews 13:17 -!- harrigan [~harrigan@ptr-93-89-242-235.ip.airwire.ie] has quit [Read error: Connection reset by peer] 13:18 -!- harrigan [~harrigan@ptr-93-89-242-235.ip.airwire.ie] has joined #bitcoin-core-pr-reviews 13:33 -!- svav [5245568f@82-69-86-143.dsl.in-addr.zen.co.uk] has quit [Ping timeout: 245 seconds] 14:00 -!- thomasb06 [~user@eth-west-pareq2-46-193-0-224.wb.wifirst.net] has quit [Remote host closed the connection] 14:39 -!- pinheadm_ [~pinheadmz@71.190.30.138] has quit [Quit: pinheadm_] 14:39 -!- pinheadmz [~pinheadmz@71.190.30.138] has joined #bitcoin-core-pr-reviews 14:46 -!- malar [68a3b2a6@104.163.178.166] has quit [Remote host closed the connection] 14:55 -!- midnight [~midnight@unaffiliated/midnightmagic] has quit [Ping timeout: 272 seconds] 14:59 -!- midnight [~midnight@unaffiliated/midnightmagic] has joined #bitcoin-core-pr-reviews 15:15 -!- midnight [~midnight@unaffiliated/midnightmagic] has quit [Ping timeout: 258 seconds] 15:18 -!- joelklabo [~textual@108-196-216-127.lightspeed.sntcca.sbcglobal.net] has joined #bitcoin-core-pr-reviews 15:33 -!- midnight [~midnight@unaffiliated/midnightmagic] has joined #bitcoin-core-pr-reviews 16:32 -!- seven_ [~seven@cpe-90-157-197-248.static.amis.net] has quit [Ping timeout: 240 seconds] 16:51 -!- da39a3ee5e6b4b0d [~da39a3ee5@2403:6200:8876:cecf:313a:ef0a:c021:651e] has joined #bitcoin-core-pr-reviews 17:01 -!- jesseposner [~jp@2601:645:200:162f:6076:878b:f936:e5fc] has joined #bitcoin-core-pr-reviews 17:03 -!- jesseposner [~jp@2601:645:200:162f:6076:878b:f936:e5fc] has quit [Client Quit] 17:24 -!- Netsplit *.net <-> *.split quits: da39a3ee5e6b4b0d, takinbo, Murch, michaelfolkson, amiti, phantomcircuit, achow101, RubenSomsen, valwal_, windsok 17:30 -!- da39a3ee5e6b4b0d [~da39a3ee5@2403:6200:8876:cecf:313a:ef0a:c021:651e] has joined #bitcoin-core-pr-reviews 17:30 -!- valwal_ [sid334773@gateway/web/irccloud.com/x-xpdkkmqnrtcjkded] has joined #bitcoin-core-pr-reviews 17:30 -!- amiti [sid373138@gateway/web/irccloud.com/x-ayunlkaefenrhtuj] has joined #bitcoin-core-pr-reviews 17:30 -!- Murch [murch@2a01:4f8:141:1272::2] has joined #bitcoin-core-pr-reviews 17:30 -!- achow101 [~achow101@unaffiliated/achow101] has joined #bitcoin-core-pr-reviews 17:30 -!- windsok [~windsok@unaffiliated/windsok] has joined #bitcoin-core-pr-reviews 17:30 -!- phantomcircuit [~phantomci@2604:a880:1:20::f2:c001] has joined #bitcoin-core-pr-reviews 17:30 -!- RubenSomsen [sid301948@gateway/web/irccloud.com/x-xiafkyvtjtuehoop] has joined #bitcoin-core-pr-reviews 17:30 -!- takinbo [~takinbo@unaffiliated/takinbo] has joined #bitcoin-core-pr-reviews 17:30 -!- michaelfolkson [~michaelfo@2a03:b0c0:1:e0::23d:d001] has joined #bitcoin-core-pr-reviews 17:36 -!- vasild_ [~vd@gateway/tor-sasl/vasild] has joined #bitcoin-core-pr-reviews 17:36 -!- vasild [~vd@gateway/tor-sasl/vasild] has quit [Disconnected by services] 17:36 -!- vasild_ is now known as vasild 18:54 -!- kristapsk [~KK@gateway/tor-sasl/kristapsk] has joined #bitcoin-core-pr-reviews 19:01 -!- jesseposner [~jp@2601:645:200:162f:a05d:e05c:c95e:bea7] has joined #bitcoin-core-pr-reviews 19:03 -!- pinheadmz [~pinheadmz@71.190.30.138] has quit [Quit: pinheadmz] 19:07 -!- pinheadmz [~pinheadmz@71.190.30.138] has joined #bitcoin-core-pr-reviews 19:09 -!- da39a3ee5e6b4b0d [~da39a3ee5@2403:6200:8876:cecf:313a:ef0a:c021:651e] has quit [Quit: My MacBook has gone to sleep. ZZZzzz…] 19:11 -!- da39a3ee5e6b4b0d [~da39a3ee5@2403:6200:8876:cecf:bc4d:596d:63fe:f2dd] has joined #bitcoin-core-pr-reviews 19:21 -!- da39a3ee5e6b4b0d [~da39a3ee5@2403:6200:8876:cecf:bc4d:596d:63fe:f2dd] has quit [Quit: My MacBook has gone to sleep. ZZZzzz…] 19:23 -!- da39a3ee5e6b4b0d [~da39a3ee5@2403:6200:8876:cecf:bc4d:596d:63fe:f2dd] has joined #bitcoin-core-pr-reviews 19:46 -!- pinheadmz [~pinheadmz@71.190.30.138] has quit [Read error: Connection reset by peer] 19:49 -!- pinheadmz [~pinheadmz@71.190.30.138] has joined #bitcoin-core-pr-reviews 19:53 -!- davterra [~davterra@107.182.237.19] has quit [Ping timeout: 268 seconds] 20:21 -!- da39a3ee5e6b4b0d [~da39a3ee5@2403:6200:8876:cecf:bc4d:596d:63fe:f2dd] has quit [Quit: Textual IRC Client: www.textualapp.com] 20:38 -!- da39a3ee5e6b4b0d [~da39a3ee5@2403:6200:8876:cecf:c08f:f3d8:5294:ef76] has joined #bitcoin-core-pr-reviews 23:06 -!- da39a3ee5e6b4b0d [~da39a3ee5@2403:6200:8876:cecf:c08f:f3d8:5294:ef76] has quit [Quit: My MacBook has gone to sleep. ZZZzzz…] 23:12 -!- kristapsk [~KK@gateway/tor-sasl/kristapsk] has quit [Remote host closed the connection] 23:13 -!- kristapsk [~KK@gateway/tor-sasl/kristapsk] has joined #bitcoin-core-pr-reviews 23:20 -!- da39a3ee5e6b4b0d [~da39a3ee5@49.228.254.151] has joined #bitcoin-core-pr-reviews 23:36 -!- seven_ [~seven@cpe-90-157-197-248.static.amis.net] has joined #bitcoin-core-pr-reviews