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
kevkevin has quit [Ping timeout: 244 seconds]
joetor5 has quit [Quit: joetor5]
eugenesiegel has joined #bitcoin-core-dev
joetor5 has joined #bitcoin-core-dev
joetor5 has quit [Client Quit]
eugenesiegel has quit [Ping timeout: 240 seconds]
diego has left #bitcoin-core-dev [#bitcoin-core-dev]
dviola has joined #bitcoin-core-dev
joetor5 has joined #bitcoin-core-dev
joetor5 has quit [Client Quit]
dviola has quit [Ping timeout: 272 seconds]
diego has joined #bitcoin-core-dev
diego has quit [Ping timeout: 265 seconds]
diego has joined #bitcoin-core-dev
diego has quit [Remote host closed the connection]
diego has joined #bitcoin-core-dev
kevkevin has joined #bitcoin-core-dev
jetpack has quit [Quit: ZNC 1.8.2+deb2+deb11u1 - https://znc.in]
jetpack has joined #bitcoin-core-dev
kevkevin has quit [Ping timeout: 244 seconds]
robszarka has quit [Quit: Leaving]
cmirror has quit [Remote host closed the connection]
cmirror has joined #bitcoin-core-dev
kevkevin has joined #bitcoin-core-dev
kevkevin has quit [Ping timeout: 252 seconds]
joetor5 has joined #bitcoin-core-dev
joetor5 has quit [Quit: joetor5]
nanotube has joined #bitcoin-core-dev
kevkevin has joined #bitcoin-core-dev
kevkevin has quit [Ping timeout: 252 seconds]
kevkevin has joined #bitcoin-core-dev
Cory97 has quit [Quit: Client closed]
Cory97 has joined #bitcoin-core-dev
Cory97 has quit [Quit: Client closed]
Cory97 has joined #bitcoin-core-dev
kevkevin has quit [Ping timeout: 245 seconds]
delvarus has joined #bitcoin-core-dev
kevkevin has joined #bitcoin-core-dev
kevkevin has quit [Ping timeout: 260 seconds]
kevkevin has joined #bitcoin-core-dev
Guyver2 has joined #bitcoin-core-dev
kevkevin has quit [Ping timeout: 276 seconds]
kevkevin has joined #bitcoin-core-dev
kevkevin has quit [Ping timeout: 276 seconds]
kevkevin has joined #bitcoin-core-dev
delvarus has quit [Quit: Leaving]
Guyver2 has left #bitcoin-core-dev [Closing Window]
kevkevin has quit [Ping timeout: 276 seconds]
robszarka has joined #bitcoin-core-dev
szarka has quit [Ping timeout: 276 seconds]
ariard has quit [Remote host closed the connection]
kevkevin has joined #bitcoin-core-dev
nanotube has quit [Ping timeout: 272 seconds]
nanotube has joined #bitcoin-core-dev
kevkevin has quit [Ping timeout: 245 seconds]
TheRec has quit [Read error: Connection reset by peer]
TheRec has joined #bitcoin-core-dev
jon_atack has joined #bitcoin-core-dev
jonatack has quit [Ping timeout: 268 seconds]
kevkevin has joined #bitcoin-core-dev
jon_atack has quit [Ping timeout: 252 seconds]
<bitcoin-git> [bitcoin] maflcko closed pull request #32305: test: add test for decoding PSBT with MuSig2 PSBT key types (BIP 373) (master...202504-test-add_musig2_decodepsbt_tests) https://github.com/bitcoin/bitcoin/pull/32305
<bitcoin-git> [bitcoin] maflcko reopened pull request #32305: test: add test for decoding PSBT with MuSig2 PSBT key types (BIP 373) (master...202504-test-add_musig2_decodepsbt_tests) https://github.com/bitcoin/bitcoin/pull/32305
kevkevin has quit [Ping timeout: 252 seconds]
jespada has joined #bitcoin-core-dev
kinlo has quit [Quit: !]
kevkevin has joined #bitcoin-core-dev
Cory97 has quit [Quit: Client closed]
Cory97 has joined #bitcoin-core-dev
<bitcoin-git> [bitcoin] kevkevinpal closed pull request #32253: test: adds coverage to src/validation for invalid tx coinbase (master...invalidTxCoinbase) https://github.com/bitcoin/bitcoin/pull/32253
bitdex has quit [Quit: = ""]
<bitcoin-git> [bitcoin] TheCharlatan opened pull request #32317: kernel: Seperate UTXO set access from validation functions (master...spendblock) https://github.com/bitcoin/bitcoin/pull/32317
jonatack has joined #bitcoin-core-dev
kevkevin has quit [Ping timeout: 252 seconds]
twistedline has quit [Ping timeout: 244 seconds]
twistedline has joined #bitcoin-core-dev
<instagibbs> #31640 RFM?
<corebot> https://github.com/bitcoin/bitcoin/issues/31640 | tests: improves tapscript unit tests by EthanHeilman · Pull Request #31640 · bitcoin/bitcoin · GitHub
Cory97 has quit [Quit: Client closed]
Cory97 has joined #bitcoin-core-dev
kevkevin has joined #bitcoin-core-dev
twistedline has quit [Ping timeout: 248 seconds]
twistedline has joined #bitcoin-core-dev
Cory97 has quit [Quit: Client closed]
Cory97 has joined #bitcoin-core-dev
saturday- has joined #bitcoin-core-dev
Saturday7 has quit [Ping timeout: 252 seconds]
jonatack has quit [Ping timeout: 244 seconds]
eugenesiegel has joined #bitcoin-core-dev
<bitcoin-git> [bitcoin] maflcko closed pull request #32006: docs: remove passing CI section in guidelines for PR merging as it's common sense (master...fix/typos) https://github.com/bitcoin/bitcoin/pull/32006
<bitcoin-git> [bitcoin] maflcko reopened pull request #32006: docs: remove passing CI section in guidelines for PR merging as it's common sense (master...fix/typos) https://github.com/bitcoin/bitcoin/pull/32006
eugenesiegel has quit [Quit: Client closed]
eugenesiegel has joined #bitcoin-core-dev
bugs_ has joined #bitcoin-core-dev
diego has left #bitcoin-core-dev [#bitcoin-core-dev]
dviola has joined #bitcoin-core-dev
<darosior> TheCharlatan: motivation seems worthwile to me, but how does changing ConnectBlock() to take spent coins through undo data instead of through a map make things any easier for clients without a full UTxO set at hand?
eugenesiegel has quit [Quit: Client closed]
eugenesiegel has joined #bitcoin-core-dev
eugenesiegel has quit [Quit: Client closed]
Talkless has joined #bitcoin-core-dev
aleggg has quit [Remote host closed the connection]
eugenesiegel has joined #bitcoin-core-dev
<eugenesiegel> I was reading the CheckBlock function and am a bit confused, does anybody know why the middle conditional is using `block.vtx.size()` and comparing that to MAX_BLOCK_WEIGHT? https://github.com/bitcoin/bitcoin/blob/d91a746815e4428c738f1a096a950292cbdb5469/src/validation.cpp#L4075
<eugenesiegel> It's comparing the number of transactions against the block weight which doesn't really make sense
NodeDiver has joined #bitcoin-core-dev
<instagibbs> IIRC it's guarding the other GetSerializeSize clause from memory blowouts
<instagibbs> (haven't thought about this hard)
<eugenesiegel> Oh ok, that would make more sense
<sipa> instagibbs: it shouldn't be, because GetSerializeSize doesn't (today) actually materialize the serialization
<eugenesiegel> If that's the case, it would 1 million transactions, which doesn't seem very limiting
<instagibbs> sipa welp 🤷
<sipa> but this condition dates back to at least the 0.1.5 code
<jeremyrubin> I think it's a condition that can never be hit by a valid block
<instagibbs> screams "don't touch this"
<instagibbs> no comment
<darosior> 😂
<eugenesiegel> interesting, I will leave it alone
<sipa> actually, 0.1.0
<jeremyrubin> you can very likely safely change it to fail if the vtx.size() is greater than something like 25,000
<sipa> minimum transaction vsize is 60, i think? so the limit should be 16665
<instagibbs> sounds right ^
<darosior> Yeah it's basically assuming a minimum size of 1 byte for txs. Whereas it's larger, so probably safe to decrease. But i agree with instagibbs
<jeremyrubin> I think you can do smaller than 60 iirc
<instagibbs> darosior ah, makes sense
* darosior looks up SE, Murch probably has answered the minimum valid size there
<darosior> Ava says 61 there too https://bitcoin.stackexchange.com/a/54682/101498
<sipa> jeremyrubin: 4 bytes version, 4 bytes locktime, 1 byte ntxin, 41 bytes txin (36 bytes prevout, 4 bytes nsequence, 1 byte scriptlen), 1 byte ntxout, 9 bytes txout (8 bytes amount, 1 byte scriptlen)
<sipa> i think ava's answer is wrong? an empty scriptPubKey is legal
<jeremyrubin> ah i forgot ntxin/ntxout
<instagibbs> ava says op_true on output
<instagibbs> not needed
<instagibbs> achow101 *
<darosior> sipa: indeed, it's actually 60 bytes as you broke down here
<sipa> and the header would be 80 bytes, and the txcount would be 3 bytes, so floor((1000000 - 80 - 3) / 60) = 16665
<sipa> (not that i think there is any need to change that condition in the code)
<sipa> eugenesiegel: i think the answer to your question is "gospel"
<instagibbs> it supports gigameg blocks
<eugenesiegel> since the maximum message size is ~33.5MB, I think there is an upper bound of ~33.5MB / 60 also
<sipa> eugenesiegel: what if the block is received using compact blocks?
<eugenesiegel> yeah I was just going to type that out
<eugenesiegel> I think you can receive ~33.5MB for the prefilled txns and then I guess choose whatever you want from the mempool and the extra txn set
zeropoint has joined #bitcoin-core-dev
<sipa> you'll still hit the next condition, :GetSerializeSize(TX_NO_WITNESS(block)) * WITNESS_SCALE_FACTOR > MAX_BLOCK_WEIGHT
<eugenesiegel> So in theory a block passed in to CheckBlock could be very large?
<bitcoin-git> [bitcoin] VolodymyrBg opened pull request #32318: Fix failing util_time_GetTime test on Windows (master...bgg) https://github.com/bitcoin/bitcoin/pull/32318
<instagibbs> there's a comapct block check for shortxids+prefilled not being > MAX_BLOCK_WEIGHT / MIN_SERIALIZABLE_TRANSACTION_WEIGHT
<eugenesiegel> right, that conditional stuck out to me and I wasn't sure if it had a purpose
<eugenesiegel> I was trying to think about worst-case compact block memory usage, it seems like it would be the max message size per peer?
<lightlike> eugensiegel: how did you arrive at 33.5MB - doesn't MAX_PROTOCOL_MESSAGE_LENGTH (4MB) apply?
<eugenesiegel> Oh, I guess that's different in other implementations.
<instagibbs> MIN_SERIALIZEABLE_TRANSACTION_WEIGHT says 4*10, I suppose if you're guarding against completely empty txns
<instagibbs> that are obv not valid
aleggg has joined #bitcoin-core-dev
<darosior> Maybe related to the discussion: https://bitcoincore.org/en/2024/07/03/disclose_receive_buffer_oom
<eugenesiegel> lightlike: I was thinking about MAX_SIZE, not MAX_PROTOCOL_MESSAGE_LENGTH woops
twistedline has quit [Ping timeout: 265 seconds]
<eugenesiegel> instagibbs: There is also a check that the BlockTxCount doesn't overflow uint16 so I think the maximum number of compact block txns is 65535
twistedline_ has joined #bitcoin-core-dev
NodeDiver has quit [Quit: Client closed]
<TheCharlatan> darosior, you could just insert the utxos into the coins cache's map too, but that seems awful. If such clients do full validation they usually require the utxos to be sent alongside a block. They just don't store them permanently.
eugenesiegel has quit [Ping timeout: 240 seconds]
eugenesiegel has joined #bitcoin-core-dev
<darosior> I see
cotsuka has quit [Remote host closed the connection]
cotsuka has joined #bitcoin-core-dev
eugenesiegel has quit [Ping timeout: 240 seconds]
eugenesiegel has joined #bitcoin-core-dev
<achow101> instagibbs: sipa: I don't think you can have both the prevout's scriptpubkey and the input scriptsig be empty though?
<achow101> i believe my stackexchange answer is saying the prevout is an OP_TRUE, which allows the scriptSig to be empty
<instagibbs> input scriptSig empty, new output empty, you can do that and that's 60
Christoph_ has joined #bitcoin-core-dev
<achow101> yeah, that's what my stackexchange answer says
<sipa> achow101: sure, but the prevout's scriptpubkey doesn't need to be in the same block/transaction
<achow101> right, but I didn't say that :)
<achow101> oh antoine just edited that
<achow101> nevermind
<instagibbs> hah
<achow101> well, I still didn't say that the spending tx has its prevout in the same block
Christoph_ has quit [Quit: Christoph_]
Talkless has quit [Quit: Konversation terminated!]
<bitcoin-git> [bitcoin] glozow pushed 3 commits to master: https://github.com/bitcoin/bitcoin/compare/d91a746815e4...728e86e3f3d0
<bitcoin-git> bitcoin/master 3e16708 Ethan Heilman: test: Ensures test fails if witness is not hex
<bitcoin-git> bitcoin/master e3d7533 Ethan Heilman: test: improves tapscript unit tests
<bitcoin-git> bitcoin/master 728e86e merge-script: Merge bitcoin/bitcoin#31640: tests: improves tapscript unit tests
<bitcoin-git> [bitcoin] glozow merged pull request #31640: tests: improves tapscript unit tests (master...taptest) https://github.com/bitcoin/bitcoin/pull/31640
<bitcoin-git> [bitcoin] glozow pushed 6 commits to master: https://github.com/bitcoin/bitcoin/compare/728e86e3f3d0...3e78ac6811d9
<bitcoin-git> bitcoin/master 0ff072c Ava Chow: wallet, rpc: Only allow keypool import from single key descriptors
<bitcoin-git> bitcoin/master 6268bde Ava Chow: descriptor: Remove unused parent_info from BIP32PUbKeyProvider::GetPubKey
<bitcoin-git> bitcoin/master 25a3b9b Ava Chow: descriptors: Have GetPubKey fill origins directly
<bitcoin-git> [bitcoin] glozow merged pull request #31243: descriptor: Move filling of keys from `DescriptorImpl::MakeScripts` to `PubkeyProvider::GetPubKey` (master...descriptor-direct-fill) https://github.com/bitcoin/bitcoin/pull/31243
eugenesiegel has quit [Ping timeout: 240 seconds]
eugenesiegel has joined #bitcoin-core-dev
eugenesiegel has quit [Ping timeout: 240 seconds]
freesprung512697 has quit [Ping timeout: 244 seconds]
<bitcoin-git> [bitcoin] achow101 pushed 2 commits to master: https://github.com/bitcoin/bitcoin/compare/3e78ac6811d9...06439a14c884
<bitcoin-git> bitcoin/master fa86190 MarcoFalke: rpc: Allow fullrbf fee bump
<bitcoin-git> bitcoin/master 06439a1 Ava Chow: Merge bitcoin/bitcoin#31953: rpc: Allow fullrbf fee bump in (psbt)bumpfee
<bitcoin-git> [bitcoin] achow101 merged pull request #31953: rpc: Allow fullrbf fee bump in (psbt)bumpfee (master...2502-fullrbf-follow-up) https://github.com/bitcoin/bitcoin/pull/31953
eugenesiegel has joined #bitcoin-core-dev
Christoph_ has joined #bitcoin-core-dev
Christoph_ has quit [Client Quit]
bugs_ has quit [Quit: Leaving]
eugenesiegel has quit [Ping timeout: 240 seconds]
Guest58 has joined #bitcoin-core-dev
Guest58 has quit [Client Quit]
Guest77 has joined #bitcoin-core-dev
Guest77 has quit [Client Quit]
Cory97 has quit [Quit: Client closed]
Cory97 has joined #bitcoin-core-dev
jespada has quit [Ping timeout: 248 seconds]
jespada has joined #bitcoin-core-dev
Cory97 has quit [Quit: Client closed]
Cory97 has joined #bitcoin-core-dev