💬 ismaelsadeeq commented on issue "EstimateMedianVal returns higher fee for higher confTarget":
(https://github.com/bitcoin/bitcoin/issues/20725#issuecomment-1623679114)
I try recreating this issue on master HEAD bc4f6b13feb29146b7e10e86f93dc7f6fb6937f2
with the same command `test/functional/feature_fee_estimation.py --randomseed 108574360997204915`
The tests passed.
(https://github.com/bitcoin/bitcoin/issues/20725#issuecomment-1623679114)
I try recreating this issue on master HEAD bc4f6b13feb29146b7e10e86f93dc7f6fb6937f2
with the same command `test/functional/feature_fee_estimation.py --randomseed 108574360997204915`
The tests passed.
💬 vasild commented on pull request "Relay own transactions only via short-lived Tor or I2P connections":
(https://github.com/bitcoin/bitcoin/pull/27509#discussion_r1254444996)
> sending the TX without doing INV/GETDATA first risks having the TX be ignored as unrequested
I thought about doing `INV` first and waiting for get data but decided to not do that for the following reasons:
1. Bitcoin Core accepts unsolicited transactions. According to https://developer.bitcoin.org/reference/p2p_networking.html#tx there is already some software that sends unsolicited transactions.
2. It would add complexity to the implementation.
3. After `INV` we would have to wait for
...
(https://github.com/bitcoin/bitcoin/pull/27509#discussion_r1254444996)
> sending the TX without doing INV/GETDATA first risks having the TX be ignored as unrequested
I thought about doing `INV` first and waiting for get data but decided to not do that for the following reasons:
1. Bitcoin Core accepts unsolicited transactions. According to https://developer.bitcoin.org/reference/p2p_networking.html#tx there is already some software that sends unsolicited transactions.
2. It would add complexity to the implementation.
3. After `INV` we would have to wait for
...
💬 MarcoFalke commented on issue "EstimateMedianVal returns higher fee for higher confTarget":
(https://github.com/bitcoin/bitcoin/issues/20725#issuecomment-1623698708)
@ismaelsadeeq Can you try with the commit specified in OP as well? If it fails, can you try bisecting?
(https://github.com/bitcoin/bitcoin/issues/20725#issuecomment-1623698708)
@ismaelsadeeq Can you try with the commit specified in OP as well? If it fails, can you try bisecting?
🤔 furszy reviewed a pull request: "index: make startup more efficient"
(https://github.com/bitcoin/bitcoin/pull/27607#pullrequestreview-1516581154)
Updated per feedback, [small diff](https://github.com/bitcoin/bitcoin/compare/94c9b1f37e335c43c739b853bb9457737b67d73a..30b2511f39d32e29f9f05859aa8a97b84c22376b). Thanks ryanofsky!
Changes:
* Documented behavior change when tip has no data in 7944974 commit description.
* Removed the introduced `pruneblockchain` "nothing to prune" error.
* Made `getblockchaininfo` "pruneheight" result consistent with the RPC documentation.
(https://github.com/bitcoin/bitcoin/pull/27607#pullrequestreview-1516581154)
Updated per feedback, [small diff](https://github.com/bitcoin/bitcoin/compare/94c9b1f37e335c43c739b853bb9457737b67d73a..30b2511f39d32e29f9f05859aa8a97b84c22376b). Thanks ryanofsky!
Changes:
* Documented behavior change when tip has no data in 7944974 commit description.
* Removed the introduced `pruneblockchain` "nothing to prune" error.
* Made `getblockchaininfo` "pruneheight" result consistent with the RPC documentation.
💬 furszy commented on pull request "index: make startup more efficient":
(https://github.com/bitcoin/bitcoin/pull/27607#discussion_r1254460179)
> I would probably update the code rather than the documentation, since that seems simpler, and this case should only happen when there's an assumeutxo snapshot so there shouldn't be a backwards compatibility concern.
Wouldn't be odd for the user to receive the height of a block that they do not have? (tip + 1).
Isn't really a big deal anyway, this is an edge case and we can stick to the current RPC docs. But maybe would be good to discuss further what "pruneheight" result should be in a f
...
(https://github.com/bitcoin/bitcoin/pull/27607#discussion_r1254460179)
> I would probably update the code rather than the documentation, since that seems simpler, and this case should only happen when there's an assumeutxo snapshot so there shouldn't be a backwards compatibility concern.
Wouldn't be odd for the user to receive the height of a block that they do not have? (tip + 1).
Isn't really a big deal anyway, this is an edge case and we can stick to the current RPC docs. But maybe would be good to discuss further what "pruneheight" result should be in a f
...
💬 furszy commented on pull request "index: make startup more efficient":
(https://github.com/bitcoin/bitcoin/pull/27607#discussion_r1254464720)
done 👍🏼.
(https://github.com/bitcoin/bitcoin/pull/27607#discussion_r1254464720)
done 👍🏼.
💬 furszy commented on pull request "index: make startup more efficient":
(https://github.com/bitcoin/bitcoin/pull/27607#discussion_r1254462432)
done, extended the commit description.
(https://github.com/bitcoin/bitcoin/pull/27607#discussion_r1254462432)
done, extended the commit description.
💬 furszy commented on pull request "index: make startup more efficient":
(https://github.com/bitcoin/bitcoin/pull/27607#discussion_r1254477566)
Pushed the suggested code changes.
(https://github.com/bitcoin/bitcoin/pull/27607#discussion_r1254477566)
Pushed the suggested code changes.
🤔 furszy reviewed a pull request: "test: Restore unlimited timeout in IndexWaitSynced"
(https://github.com/bitcoin/bitcoin/pull/28036#pullrequestreview-1516637883)
ACK fabed7eb
I'm a bit more inclined for #28026 but it is fine either way.
Note:
Would be good to mention in the PR description that this is a behavior change for the blockfilterindex and txindex tests. It only restores the coinstatsindex behavior.
(https://github.com/bitcoin/bitcoin/pull/28036#pullrequestreview-1516637883)
ACK fabed7eb
I'm a bit more inclined for #28026 but it is fine either way.
Note:
Would be good to mention in the PR description that this is a behavior change for the blockfilterindex and txindex tests. It only restores the coinstatsindex behavior.
💬 MarcoFalke commented on pull request "test: Restore unlimited timeout in IndexWaitSynced":
(https://github.com/bitcoin/bitcoin/pull/28036#issuecomment-1623750494)
Thx, edited OP
(https://github.com/bitcoin/bitcoin/pull/28036#issuecomment-1623750494)
Thx, edited OP
💬 ajtowns commented on pull request "Relay own transactions only via short-lived Tor or I2P connections":
(https://github.com/bitcoin/bitcoin/pull/27509#discussion_r1254506653)
> I don't think so.
You're right -- I missed seeing the call to `ProcessGetData` and assumed it wasn't picked up until the next `ProcessMessages`.
(https://github.com/bitcoin/bitcoin/pull/27509#discussion_r1254506653)
> I don't think so.
You're right -- I missed seeing the call to `ProcessGetData` and assumed it wasn't picked up until the next `ProcessMessages`.
💬 furszy commented on pull request "test: Restore unlimited timeout in IndexWaitSynced":
(https://github.com/bitcoin/bitcoin/pull/28036#issuecomment-1623765081)
Little note: I think that the only downside here with respect to increasing the timeout to a much higher number or #28026 is that the tests could run forever if the thread never finishes. I'm not sure how the CI will behave in this scenario, guess that we will realize that something like this happened just by reading the last executed test name.
(https://github.com/bitcoin/bitcoin/pull/28036#issuecomment-1623765081)
Little note: I think that the only downside here with respect to increasing the timeout to a much higher number or #28026 is that the tests could run forever if the thread never finishes. I'm not sure how the CI will behave in this scenario, guess that we will realize that something like this happened just by reading the last executed test name.
💬 mzumsande commented on pull request "p2p: Diversify automatic outbound connections with respect to networks":
(https://github.com/bitcoin/bitcoin/pull/27213#issuecomment-1623767306)
> What is (was?) the reason for [#27213 (comment)](https://github.com/bitcoin/bitcoin/pull/27213#issuecomment-1611194968)?
The unsigned integer flow was caused by https://github.com/bitcoin/bitcoin/pull/27213#discussion_r1241362625 (fixed now!) - the counter wasn't incremented for new `pszDest` connections, but still decremented on disconnection, thus the overflow.
(https://github.com/bitcoin/bitcoin/pull/27213#issuecomment-1623767306)
> What is (was?) the reason for [#27213 (comment)](https://github.com/bitcoin/bitcoin/pull/27213#issuecomment-1611194968)?
The unsigned integer flow was caused by https://github.com/bitcoin/bitcoin/pull/27213#discussion_r1241362625 (fixed now!) - the counter wasn't incremented for new `pszDest` connections, but still decremented on disconnection, thus the overflow.
💬 MarcoFalke commented on pull request "test: Restore unlimited timeout in IndexWaitSynced":
(https://github.com/bitcoin/bitcoin/pull/28036#issuecomment-1623778841)
We've been plagued by intermittent timeouts locally (for months/years) and now in CI (for days), but never a thread that never finished. So I think it should be evident that this or #https://github.com/bitcoin/bitcoin/pull/28026 should be preferred. After all, it is no different than any other deadlock or infinite loop anywhere else in the code.
(https://github.com/bitcoin/bitcoin/pull/28036#issuecomment-1623778841)
We've been plagued by intermittent timeouts locally (for months/years) and now in CI (for days), but never a thread that never finished. So I think it should be evident that this or #https://github.com/bitcoin/bitcoin/pull/28026 should be preferred. After all, it is no different than any other deadlock or infinite loop anywhere else in the code.
💬 jamesob commented on pull request "Rework validation logic for assumeutxo":
(https://github.com/bitcoin/bitcoin/pull/27746#discussion_r1254538118)
@mzumsande Yep, I don't see any reason that couldn't be done.
(https://github.com/bitcoin/bitcoin/pull/27746#discussion_r1254538118)
@mzumsande Yep, I don't see any reason that couldn't be done.
💬 furszy commented on pull request "test: Restore unlimited timeout in IndexWaitSynced":
(https://github.com/bitcoin/bitcoin/pull/28036#issuecomment-1623813703)
Actually, it is not when the thread never finishes. The thread could have finished, but never set the `m_synced` flag to true. Which would make `BlockUntilSyncedToCurrentChain` never return true. Which actually could happen on all the index sync errors.
(https://github.com/bitcoin/bitcoin/pull/28036#issuecomment-1623813703)
Actually, it is not when the thread never finishes. The thread could have finished, but never set the `m_synced` flag to true. Which would make `BlockUntilSyncedToCurrentChain` never return true. Which actually could happen on all the index sync errors.
💬 instagibbs commented on pull request "[POLICY] Ephemeral anchors":
(https://github.com/bitcoin/bitcoin/pull/26403#issuecomment-1623814942)
Random thought:
OP_TRUE is txid-malleable by block maker. e.g., they could theoretically add in superfluous pushes in the `scriptSig` and this would not fail validation because `CLEANSTACK` is a policy-only rule.
In this particular V3 context, it just means your CPFP could change txid, wouldn't do anything else. Maybe in a more general context if we weren't restricted to V3 topology this would be an issue? In the context of keyless anchors, I'm not sure that will ever make sense anyways.
...
(https://github.com/bitcoin/bitcoin/pull/26403#issuecomment-1623814942)
Random thought:
OP_TRUE is txid-malleable by block maker. e.g., they could theoretically add in superfluous pushes in the `scriptSig` and this would not fail validation because `CLEANSTACK` is a policy-only rule.
In this particular V3 context, it just means your CPFP could change txid, wouldn't do anything else. Maybe in a more general context if we weren't restricted to V3 topology this would be an issue? In the context of keyless anchors, I'm not sure that will ever make sense anyways.
...
💬 ajtowns commented on pull request "test: Restore unlimited timeout in IndexWaitSynced":
(https://github.com/bitcoin/bitcoin/pull/28036#issuecomment-1623825136)
utACK fabed7eb796637c02e3677ebbe183d90b258ba69
Could also restore the original behaviour by doing something like:
```c++
void IndexWaitSynced(BaseIndex& index, std::chrono::microseconds timeout)
{
const auto end = SteadyClock::now() + timeout;
while (!index.BlockUntilSyncedToCurrentChain()) {
Assert(timeout <= 0s || SteadyClock::now < end);
UninterruptibleSleep(100ms);
}
}
```
and calling `IndexWaitSynced(index, 10s)` normally, but `IndexWaitSynced(i
...
(https://github.com/bitcoin/bitcoin/pull/28036#issuecomment-1623825136)
utACK fabed7eb796637c02e3677ebbe183d90b258ba69
Could also restore the original behaviour by doing something like:
```c++
void IndexWaitSynced(BaseIndex& index, std::chrono::microseconds timeout)
{
const auto end = SteadyClock::now() + timeout;
while (!index.BlockUntilSyncedToCurrentChain()) {
Assert(timeout <= 0s || SteadyClock::now < end);
UninterruptibleSleep(100ms);
}
}
```
and calling `IndexWaitSynced(index, 10s)` normally, but `IndexWaitSynced(i
...
💬 ajtowns commented on pull request "test: bugfix, synchronize indexes synchronously":
(https://github.com/bitcoin/bitcoin/pull/28026#issuecomment-1623831541)
> I think I'd prefer that option because then we wouldn't need to add a test-only arg to `BaseIndex::Start`, plus having the same thread structure as in production seems more natural and more robust with respect to possible future changes of the init sequence and unit tests.
I think I (weakly) agree with this -- having the code be non-threaded in tests but threading in the real use seems like an annoying difference.
(https://github.com/bitcoin/bitcoin/pull/28026#issuecomment-1623831541)
> I think I'd prefer that option because then we wouldn't need to add a test-only arg to `BaseIndex::Start`, plus having the same thread structure as in production seems more natural and more robust with respect to possible future changes of the init sequence and unit tests.
I think I (weakly) agree with this -- having the code be non-threaded in tests but threading in the real use seems like an annoying difference.
💬 willcl-ark commented on pull request "p2p: Diversify automatic outbound connections with respect to networks":
(https://github.com/bitcoin/bitcoin/pull/27213#discussion_r1254429298)
nit: could use brace initialization here
(https://github.com/bitcoin/bitcoin/pull/27213#discussion_r1254429298)
nit: could use brace initialization here