Age | Commit message (Collapse) | Author |
|
ActivateBestChain uses chainActive after releasing the lock; reorder operations
to move all access to synchronized object into existing LOCK(cs_main) block.
|
|
ProcessMessage calls State(...) and Misbehaving(...) without holding the
required lock; add LOCK(cs_main) blocks.
|
|
|
|
A small GUI annoyance for me has always been that it's impossible to
have multiple transaction detail windows open, for example to compare
transactions.
This patch makes the window non-modal so that it is possible to open
transaction details at will.
|
|
c3932b3 List solvability in listunspent output and improve help (Pieter Wuille)
|
|
|
|
|
|
Previously disk corruption would cause an assert instead of an exception.
|
|
|
|
|
|
f154470 [contrib] Remove reference to sf and add doc to verify.sh (MarcoFalke)
182bec4 contrib: remove hardcoded version from verify.sh (Wladimir J. van der Laan)
c907f4d doc: Update release process (Wladimir J. van der Laan)
|
|
|
|
Closes #7595 as by removing the hardcoded version number from
`verify.sh`.
|
|
The actual release process quite diverged from what was written here,
also clarify things a bit.
|
|
869cf12 dbwrapper: Move `HandleError` to `dbwrapper_private` (Wladimir J. van der Laan)
b69836d dbwrapper: Pass parent CDBWrapper into CDBBatch and CDBIterator (Wladimir J. van der Laan)
878bf48 dbwrapper: Remove CDBWrapper::GetObfuscateKeyHex (Wladimir J. van der Laan)
74f7b12 dbwrapper: Remove throw keywords in function signatures (Wladimir J. van der Laan)
|
|
|
|
|
|
HandleError is implementation-specific.
|
|
Pass parent wrapper directly instead of obfuscation key. This
makes it possible for other databases which re-use this code
to use other properties from the database.
Add a namespace dbwrapper_private for private functions to be used
only in dbwrapper.h/cpp and dbwrapper_tests.
|
|
It is an unnecessary method as it is used only two times
and only internally, and the whole implementation is
HexStr(obfuscate_key).
|
|
Using throw() specifications in function signatures is not only
not required in C++, it is considered deprecated for
[various reasons](https://stackoverflow.com/questions/1055387/throw-keyword-in-functions-signature).
It is not implemented by any of the common C++ compilers. The usage is
also inconsistent with the rest of the source code.
|
|
|
|
f59dceb qt: Fix out-of-tree GUI builds (Wladimir J. van der Laan)
|
|
Without this patch:
- When I compile the GUI from the bitcoin directory itself, it works as
expected.
- When I build the GUI in an out-of-tree build, I cannot get it to
select tabs. When I click, say the "Receive" tab nothing happens,
the button selects but it doesn't switch the page. The rest - even
the debug window - seems to work.
See full discussion here:
https://github.com/bitcoin/bitcoin/pull/7911#issuecomment-212413442
This turned out to be caused by a mismatch in the arguments to moc,
preventing it from finding `bitcoin-config.h`. Fix this by passing
`$(DEFAULT_INCLUDES)` to it, which gets set to the appropriate
path by autoconf itself.
|
|
a4625ac leveldb: integrate leveldb into our buildsystem (Cory Fields)
|
|
5770449 CBase58Data::SetString: cleanse the full vector (Kaz Wesley)
|
|
3a99fb2 Fix headers announcements edge case (Suhas Daftuar)
|
|
9f7336b [Wallet] slightly refactor GetOldestKeyPoolTime() (Jonas Schnelli)
|
|
SetString seems to be passing the length of the wrong variable to
memory_cleanse, resulting in the last byte of the temporary buffer not being
securely erased.
|
|
Thanks to Sergio Lerner for identifying this issue and suggesting this kind of solution.
|
|
|
|
This fixes the gitian MacOSX build, it was broken in #7723.
The patch to `native_mac_alias` should probably make it upstream.
|
|
807fa47 Tests: Fix deserialization of reject messages (Suhas Daftuar)
|
|
fa24329 [contrib] verify-commits: Add MarcoFalke fingerprint (MarcoFalke)
|
|
|
|
176869f Explicitly pass CChainParams to ConnectBlock (face)
d0a6353 Pass CChainParams to DisconnectTip() (face)
764d237 Globals: Explicitly pass const CChainParams& to UpdateTip() (Jorge Timón)
|
|
220f950 Fix for incorrect locking in GetPubKey() (keystore.cpp) (Yuri Zhykin)
|
|
d39f5b4 net: disable resolving from storage structures (Cory Fields)
3675699 net: resolve outside of storage structures (Cory Fields)
a98cd1f net: manually resolve dns seed sources (Cory Fields)
e9fc71e net: require lookup functions to specify all arguments (Cory Fields)
|
|
This will avoid sending more pointless INVs around updates, and
prevents using filter updates to timetag transactions.
Also adds locking for fRelayTxes.
|
|
|
|
By eliminating queued entries from the mempool response and responding only at
trickle time, this makes the mempool no longer leak transaction arrival order
information (as the mempool itself is also sorted)-- at least no more than
relay itself leaks it.
|
|
|
|
Previously we would assert that if every block in vBlockHashesToAnnounce is in
chainActive, then the blocks to be announced must connect. However, there are
edge cases where this assumption could be violated (eg using invalidateblock /
reconsiderblock), so just check for this case and revert to inv-announcement
instead.
|
|
CNetAddr/CService/CSubnet can no longer resolve DNS.
|
|
Rather than allowing CNetAddr/CService/CSubNet to launch DNS queries, require
that addresses are already resolved.
This greatly simplifies async resolve logic, and makes it harder to
accidentally leak DNS queries.
|
|
Note: Some seeds aren't actually returning an IP for their name entries, so
they're being added to addrman with a source of [::].
This commit shouldn't change that behavior, for better or worse.
|
|
|
|
Assume that reject messages for blocks or transactions due to reason
REJECT_MALFORMED will not include the hash of the block or tx being rejected.
|
|
|
|
Previously Bitcoin would send 1/4 of transactions out to all peers
instantly. This causes high overhead because it makes >80% of
INVs size 1. Doing so harms privacy, because it limits the
amount of source obscurity a transaction can receive.
These randomized broadcasts also disobeyed transaction dependencies
and required use of the orphan pool. Because the orphan pool is
so small this leads to poor propagation for dependent transactions.
When the bypass wasn't in effect, transactions were sent in the
order they were received. This avoided creating orphans but
undermines privacy fairly significantly.
This commit:
Eliminates the bypass. The bypass is replaced by halving the
average delay for outbound peers.
Sorts candidate transactions for INV by their topological
depth then by their feerate (then hash); removing the
information leakage and providing priority service to
higher fee transactions.
Limits the amount of transactions sent in a single INV to
7tx/sec (and twice that for outbound); this limits the
harm of low fee transaction floods, gives faster relay
service to higher fee transactions. The 7 sounds lower
than it really is because received advertisements need
not be sent, and because the aggregate rate is multipled
by the number of peers.
|