π¬ l0rinc commented on pull request "validation: fetch block inputs on parallel threads ~17% faster IBD":
(https://github.com/bitcoin/bitcoin/pull/31132#discussion_r1812443509)
nit: is there any reason you prefer adding `{}` at the end of the vector inits?
(https://github.com/bitcoin/bitcoin/pull/31132#discussion_r1812443509)
nit: is there any reason you prefer adding `{}` at the end of the vector inits?
π¬ laanwj commented on pull request "rpc, cli: return "verificationprogress" of 1 when up to date":
(https://github.com/bitcoin/bitcoin/pull/31135#issuecomment-2432084577)
i think doing this is fine, it's reported often enough--however, wouldn't it make sense to implement the functionality in `GuessVerificationProgress` itself so that other places (like the GUI and logging) consistently show the same value?
(https://github.com/bitcoin/bitcoin/pull/31135#issuecomment-2432084577)
i think doing this is fine, it's reported often enough--however, wouldn't it make sense to implement the functionality in `GuessVerificationProgress` itself so that other places (like the GUI and logging) consistently show the same value?
π€ murchandamus reviewed a pull request: "Remove mempoolfullrbf"
(https://github.com/bitcoin/bitcoin/pull/30592#pullrequestreview-2388662457)
ACK f863f5a4f991ccfdf865d39c73269b196eeb4902
(https://github.com/bitcoin/bitcoin/pull/30592#pullrequestreview-2388662457)
ACK f863f5a4f991ccfdf865d39c73269b196eeb4902
π¬ murchandamus commented on pull request "Remove mempoolfullrbf":
(https://github.com/bitcoin/bitcoin/pull/30592#discussion_r1812744440)
Iβm a bit surprised, why would we have been signaling replaceability for TRUC transactions in the first place? The only nodes that accept V3 transactions would be upgraded to understand TRUC at the same time, so shouldnβt we create TRUC transactions without signaling replaceability?
(https://github.com/bitcoin/bitcoin/pull/30592#discussion_r1812744440)
Iβm a bit surprised, why would we have been signaling replaceability for TRUC transactions in the first place? The only nodes that accept V3 transactions would be upgraded to understand TRUC at the same time, so shouldnβt we create TRUC transactions without signaling replaceability?
π¬ murchandamus commented on pull request "Remove mempoolfullrbf":
(https://github.com/bitcoin/bitcoin/pull/30592#discussion_r1812747019)
It seems to me that we would still want to test that TRUC transactions that donβt signal replaceability can be replaced. Obviously the assert_equal here that checks that the node does not use fullrbf would fail, but the rest of the test seems like it could be kept.
(https://github.com/bitcoin/bitcoin/pull/30592#discussion_r1812747019)
It seems to me that we would still want to test that TRUC transactions that donβt signal replaceability can be replaced. Obviously the assert_equal here that checks that the node does not use fullrbf would fail, but the rest of the test seems like it could be kept.
π¬ jonatack commented on pull request "rpc, cli: return "verificationprogress" of 1 when up to date":
(https://github.com/bitcoin/bitcoin/pull/31135#issuecomment-2432156438)
@laanwj I looked at doing it in `GuessVerificationProgress` but worried that reviewers might prefer not to touch it or have the logging output change, and so initially proposed the smaller-scoped, user-facing-only approach. It looked like the GUI only would call it from the console via the RPCs updated here (but may have overlooked something). Will try the approach @sipa suggested in https://github.com/bitcoin/bitcoin/pull/31135#discussion_r1812643857.
(https://github.com/bitcoin/bitcoin/pull/31135#issuecomment-2432156438)
@laanwj I looked at doing it in `GuessVerificationProgress` but worried that reviewers might prefer not to touch it or have the logging output change, and so initially proposed the smaller-scoped, user-facing-only approach. It looked like the GUI only would call it from the console via the RPCs updated here (but may have overlooked something). Will try the approach @sipa suggested in https://github.com/bitcoin/bitcoin/pull/31135#discussion_r1812643857.
π¬ andrewtoth commented on pull request "validation: fetch block inputs on parallel threads ~17% faster IBD":
(https://github.com/bitcoin/bitcoin/pull/31132#discussion_r1812779405)
This is blocking so we can access the queue of shared outpoints that we need to fetch from. It is not blocking for LevelDB, we access the db once we are out of the critical section.
(https://github.com/bitcoin/bitcoin/pull/31132#discussion_r1812779405)
This is blocking so we can access the queue of shared outpoints that we need to fetch from. It is not blocking for LevelDB, we access the db once we are out of the critical section.
π¬ andrewtoth commented on pull request "validation: fetch block inputs on parallel threads ~17% faster IBD":
(https://github.com/bitcoin/bitcoin/pull/31132#discussion_r1812781136)
Yes, I can add these but I am waiting for some more conceptual support.
(https://github.com/bitcoin/bitcoin/pull/31132#discussion_r1812781136)
Yes, I can add these but I am waiting for some more conceptual support.
π¬ andrewtoth commented on pull request "validation: fetch block inputs on parallel threads ~17% faster IBD":
(https://github.com/bitcoin/bitcoin/pull/31132#discussion_r1812785573)
It won't process twice, but it could pass in an empty vector, which is ignored if you look at `Add` implementation.
(https://github.com/bitcoin/bitcoin/pull/31132#discussion_r1812785573)
It won't process twice, but it could pass in an empty vector, which is ignored if you look at `Add` implementation.
π¬ andrewtoth commented on pull request "validation: fetch block inputs on parallel threads ~17% faster IBD":
(https://github.com/bitcoin/bitcoin/pull/31132#discussion_r1812794214)
I think it would be similar in complexity, we would still need all the locking mechanisms to prevent multithreaded access.
What would really be great is if we had a similar construction to Rust's `std::sync::mpsc`.
(https://github.com/bitcoin/bitcoin/pull/31132#discussion_r1812794214)
I think it would be similar in complexity, we would still need all the locking mechanisms to prevent multithreaded access.
What would really be great is if we had a similar construction to Rust's `std::sync::mpsc`.
π¬ fjahr commented on pull request "Drop miniupnp dependency":
(https://github.com/bitcoin/bitcoin/pull/31130#issuecomment-2432238813)
Concept ACK but shouldn't this go through a deprecation cycle?
(https://github.com/bitcoin/bitcoin/pull/31130#issuecomment-2432238813)
Concept ACK but shouldn't this go through a deprecation cycle?
π¬ andrewtoth commented on pull request "validation: fetch block inputs on parallel threads ~17% faster IBD":
(https://github.com/bitcoin/bitcoin/pull/31132#discussion_r1812797796)
I'm not sure it would warrant the complexity I think this batch size is "good enough" for now. In a follow up we could maybe add ways to set this with configs to experiment if there really is more optimal settings.
(https://github.com/bitcoin/bitcoin/pull/31132#discussion_r1812797796)
I'm not sure it would warrant the complexity I think this batch size is "good enough" for now. In a follow up we could maybe add ways to set this with configs to experiment if there really is more optimal settings.
π¬ andrewtoth commented on pull request "validation: fetch block inputs on parallel threads ~17% faster IBD":
(https://github.com/bitcoin/bitcoin/pull/31132#discussion_r1812800076)
Adding more threads will require more memory, which is one reason to not use many more.
I did a benchmark using 64 threads on the same 16 vcore machine, and it was slightly slower :/
(https://github.com/bitcoin/bitcoin/pull/31132#discussion_r1812800076)
Adding more threads will require more memory, which is one reason to not use many more.
I did a benchmark using 64 threads on the same 16 vcore machine, and it was slightly slower :/
π¬ andrewtoth commented on pull request "validation: fetch block inputs on parallel threads ~17% faster IBD":
(https://github.com/bitcoin/bitcoin/pull/31132#discussion_r1812807883)
I don't think there is any lock contention here if we are doing multithreaded reading?
I also think what you're suggesting would add a lot more complexity to this PR, when this is "good enough".
(https://github.com/bitcoin/bitcoin/pull/31132#discussion_r1812807883)
I don't think there is any lock contention here if we are doing multithreaded reading?
I also think what you're suggesting would add a lot more complexity to this PR, when this is "good enough".
π¬ maflcko commented on pull request "rpc, cli: return "verificationprogress" of 1 when up to date":
(https://github.com/bitcoin/bitcoin/pull/31135#discussion_r1812811243)
Not sure about this. Hard-coding the value to `1` when `height == headers` means that the value may inconsistently jump from 1 to 0.xxxx (in a loop), when headers pre-sync is disabled and the node is fed blocks one-by-one (header before block).
Also, if the node is eclipsed (intentionally, or just accidentally due to a network config error), this may also return `1`, when the node is far behind the real network.
(https://github.com/bitcoin/bitcoin/pull/31135#discussion_r1812811243)
Not sure about this. Hard-coding the value to `1` when `height == headers` means that the value may inconsistently jump from 1 to 0.xxxx (in a loop), when headers pre-sync is disabled and the node is fed blocks one-by-one (header before block).
Also, if the node is eclipsed (intentionally, or just accidentally due to a network config error), this may also return `1`, when the node is far behind the real network.
π€ maflcko reviewed a pull request: "rpc, cli: return "verificationprogress" of 1 when up to date"
(https://github.com/bitcoin/bitcoin/pull/31135#pullrequestreview-2388797020)
Not sure about the current fix. It seems to "fix" one style issue in a value that is meant as an estimate, but it may be adding two new issues at the same time?
(https://github.com/bitcoin/bitcoin/pull/31135#pullrequestreview-2388797020)
Not sure about the current fix. It seems to "fix" one style issue in a value that is meant as an estimate, but it may be adding two new issues at the same time?
π¬ andrewtoth commented on pull request "validation: fetch block inputs on parallel threads ~17% faster IBD":
(https://github.com/bitcoin/bitcoin/pull/31132#discussion_r1812815888)
Unsure, copied from `CScriptCheck`. If the state of the art of thread naming has advanced since that was written, please let me know!
(https://github.com/bitcoin/bitcoin/pull/31132#discussion_r1812815888)
Unsure, copied from `CScriptCheck`. If the state of the art of thread naming has advanced since that was written, please let me know!
π¬ instagibbs commented on pull request "Remove mempoolfullrbf":
(https://github.com/bitcoin/bitcoin/pull/30592#discussion_r1812825825)
Seems erroneous, indeed.
(https://github.com/bitcoin/bitcoin/pull/30592#discussion_r1812825825)
Seems erroneous, indeed.
π¬ sipa commented on pull request "validation: fetch block inputs on parallel threads ~17% faster IBD":
(https://github.com/bitcoin/bitcoin/pull/31132#discussion_r1812826580)
The C++ standard library does as far as I know have no way of renaming threads at all. `src/util/threadnames.{h,cpp}` is our wrapper around the various platform-dependent ways of doing so on supported systems.
(https://github.com/bitcoin/bitcoin/pull/31132#discussion_r1812826580)
The C++ standard library does as far as I know have no way of renaming threads at all. `src/util/threadnames.{h,cpp}` is our wrapper around the various platform-dependent ways of doing so on supported systems.
π¬ maflcko commented on pull request "test: Assert that when we add the max orphan amount that we cannot add anymore and that a random orphan gets dropped":
(https://github.com/bitcoin/bitcoin/pull/31040#issuecomment-2432289339)
CI failure is unrelated, see https://github.com/bitcoin/bitcoin/issues/30969
(https://github.com/bitcoin/bitcoin/pull/31040#issuecomment-2432289339)
CI failure is unrelated, see https://github.com/bitcoin/bitcoin/issues/30969