-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FreshEyes] locks: introduce mutex for tx download, flush rejection filters on UpdatedBlockTip #17
base: bitcoin-fresheyes-staging-master-30111
Are you sure you want to change the base?
Commits on May 20, 2024
-
guard TxRequest and rejection caches with new mutex
We need to synchronize between various tx download structures. TxRequest does not inherently need cs_main for synchronization, and it's not appropriate to lock all of the tx download logic under cs_main.
Configuration menu - View commit details
-
Copy full SHA for b5009a7 - Browse repository at this point
Copy the full SHA b5009a7View commit details -
add ValidationInterface::UpdatedBlockTipSync
This is a synchronous version of UpdatedBlockTip. It allows clients to respond to a new block immediately after it is connected. The synchronicity is important for things like m_recent_rejects, in which a transaction's validity can change (rejected vs accepted) when this event is processed (e.g. it has a timelock condition that has just been met). This is distinct from something like m_recent_confirmed_transactions in which the validation outcome is the same (valid vs already-have).
Configuration menu - View commit details
-
Copy full SHA for 9d413af - Browse repository at this point
Copy the full SHA 9d413afView commit details -
update recent_rejects filters on UpdatedBlockTipSync
Resetting m_recent_rejects once per block is more efficient than comparing hashRecentRejectsChainTip with the chain tip every time we call AlreadyHaveTx. We keep hashRecentRejectsChainTip for now to assert that updates happen correctly; it is removed in the next commit.
Configuration menu - View commit details
-
Copy full SHA for 57a42b0 - Browse repository at this point
Copy the full SHA 57a42b0View commit details -
remove obsoleted hashRecentRejectsChainTip
This also means AlreadyHaveTx no longer needs cs_main held.
Configuration menu - View commit details
-
Copy full SHA for e668575 - Browse repository at this point
Copy the full SHA e668575View commit details -
Configuration menu - View commit details
-
Copy full SHA for ba3b604 - Browse repository at this point
Copy the full SHA ba3b604View commit details -
Configuration menu - View commit details
-
Copy full SHA for 879f5db - Browse repository at this point
Copy the full SHA 879f5dbView commit details -
scripted-diff: rename TxOrphanage::EraseTxNoLock to EraseTxInternal
The lock doesn't exist anymore. -BEGIN VERIFY SCRIPT- sed -i 's/EraseTxNoLock/EraseTxInternal/g' src/txorphanage.* -END VERIFY SCRIPT-))'
Configuration menu - View commit details
-
Copy full SHA for 7c3fb97 - Browse repository at this point
Copy the full SHA 7c3fb97View commit details