Patrick Strateman
aee9a8140b
Add GCSFilterDecodeSkipCheck benchmark
...
This benchmark allows us to compare the differences between doing the
sanity check for corruption via GolombRiceDecode() vs checking the hash
of the encoded block filter.
2022-05-22 14:00:41 +09:00
Patrick Strateman
299023c1d9
Add GCSFilterDecode and GCSBlockFilterGetHash benchmarks.
...
All of the benchmarks are standardized on the BASIC filter parameters
so we can compare between all the benchmarks. All the GCS
benchmarks are renamed to have "GCS" as the prefix.
2022-05-22 13:46:26 +09:00
Patrick Strateman
b0a53d50d9
Make sanity check in GCSFilter constructor optional
...
BlockFilterIndex will perform the cheaper check of verifying the filter
hash when reading the filter from disk.
2022-05-02 16:04:00 +09:00
Patrick Strateman
fae77b9e6d
net: Simplify ProcessGetBlockData execution by removing send flag.
...
Setting the send flag to false can be replaced by simply returning.
2021-03-18 09:15:16 +01:00
Patrick Strateman
d8b9cec25b
inline non-member functions with body in fuzzing headers
2020-12-20 18:19:43 -05:00
Patrick Strateman
3b9bf0eb0e
rpc: Allow shutdown while in generateblocks
...
By checking the shutdown flag every loop we can use the entire nonce space
instead of breaking every 16 bits to check the shutdown flag.
This has been possible since the shutdown flag was switched to an atomic,
before that change it was controlled by a condition variable and lock.
2019-06-23 20:51:02 -04:00
Patrick Strateman
ef0019e054
Generate log entry when blocks messages are received unexpectedly.
2019-03-13 21:05:15 -04:00
Patrick Strateman
4927bf2f25
Increase maxconnections limit when using poll.
2018-12-03 14:25:55 -05:00
Patrick Strateman
11cc491a28
Implement poll() on systems which support it properly.
...
This eliminates the restriction on maximum socket descriptor number.
2018-12-03 14:25:51 -05:00
Patrick Strateman
28211a4bc9
Move SocketEvents logic to private method.
...
This separates the select() logic from the socket handling logic, setting up
for a switch to poll().
2018-11-30 18:02:51 -05:00
Patrick Strateman
7e403c0ae7
Move GenerateSelectSet logic to private method.
...
This separates the socket event collection logic from the logic
deciding which events we're interested in at all.
2018-11-30 18:02:51 -05:00
Patrick Strateman
1e6afd0dbc
Introduce and use constant SELECT_TIMEOUT_MILLISECONDS.
2018-11-30 18:02:51 -05:00
Patrick Strateman
032488e6e7
Move SocketHandler logic to private method.
2018-09-24 17:08:10 -04:00
Patrick Strateman
2af9cff11a
Move InactivityCheck logic to private method.
2018-09-24 17:08:04 -04:00
Patrick Strateman
7479b63d91
Move DisconnectNodes logic to private method.
2018-09-24 16:53:52 -04:00
Patrick Strateman
edb5350c32
Move NotifyNumConnectionsChanged logic to private method.
2018-09-24 16:30:53 -04:00
Patrick Strateman
83d53058ae
Switch nPrevNodeCount to vNodesSize.
...
These both have the same value, but the variable naming is confusing.
2018-08-31 18:32:11 -04:00
Patrick Strateman
1cc251f50f
Explicitly search for bdb5.3.
...
Some systems do not symlink the major version to the minor version.
2017-07-02 02:48:00 +00:00
Patrick Strateman
fb6f90a4ce
Initialize nRelockTime
2017-03-14 15:48:08 -07:00
Patrick Strateman
d63ff6265b
Make nWalletDBUpdated atomic to avoid a potential race.
2016-12-21 13:49:48 -08:00
Patrick Strateman
a4153e20ec
Simple fuzzing framework
2016-12-15 13:29:03 +01:00
Patrick Strateman
86029e72c9
Move CWalletDB::ReorderTransactions to CWallet
2016-10-30 02:15:49 -07:00
Patrick Strateman
e198c521d3
Move key derivation logic from GenerateNewKey to DeriveNewChildKey
2016-09-30 19:11:00 +02:00
Patrick Strateman
2ca6b9df1d
Remove last reference to CWalletDB from accounting_tests.cpp
2016-09-15 13:51:04 -07:00
Patrick Strateman
02e2a81536
Remove pwalletdb parameter from CWallet::AddAccountingEntry
2016-09-15 13:50:59 -07:00
Patrick Strateman
d2e678d7d2
Add CWallet::ReorderTransactions and use in accounting_tests.cpp
2016-09-15 06:52:15 -07:00
Patrick Strateman
59adc86680
Add CWallet::ListAccountCreditDebit
...
Simple pass through for CWalletDB::ListAccountCreditDebit
2016-09-15 06:52:15 -07:00
Patrick Strateman
8680d3aa80
Move wallet initialization logic from AppInit2 to CWallet::InitLoadWallet
2016-08-20 14:03:47 -07:00
Patrick Strateman
e86eb71604
Move CWallet::setKeyPool to private section of CWallet
2016-08-17 15:24:57 -07:00
Patrick Strateman
9578333ec4
Remove rpc_wallet_tests.cpp
2016-08-07 19:30:20 -07:00
Patrick Strateman
25400c4de1
Account wallet feature RPC tests.
2016-08-07 19:30:16 -07:00
Patrick Strateman
29c2d99bc9
Make CWallet::fFileBacked private.
2016-07-30 11:27:48 -07:00
Patrick Strateman
5723bb44ce
Remove unused pwalletdb from CWallet::AddToWallet
2016-07-29 17:04:14 -07:00
Patrick Strateman
867f842f1e
Remove CWalletDB* parameter from CWallet::AddToWallet
2016-07-29 17:04:14 -07:00
Patrick Strateman
00f09c920c
Split CWallet::AddToWallet into AddToWallet and LoadToWallet.
...
This removes the fFromLoadWallet flag in AddToWallet. These were already
effectively two methods.
2016-07-29 17:04:14 -07:00
Patrick Strateman
6523fcaab2
Move SetMinVersion for FEATURE_HD to SetHDMasterKey
2016-07-19 22:30:17 -07:00
Patrick Strateman
053930ffc4
Avoid recalculating vchKeyedNetGroup in eviction logic.
...
Lazy calculate vchKeyedNetGroup in CNode::GetKeyedNetGroup.
2016-06-07 16:20:40 +02:00
Patrick Strateman
152ab236ea
Improve CWallet API with new GetAccountPubkey function.
...
Remove one more caller that is passing CWalletDB.
2016-06-06 07:02:05 -07:00
Patrick Strateman
9dfaa1cb70
Improve CWallet API with new AccountMove function.
2016-06-02 06:00:59 -07:00
Patrick Strateman
46b0c3b688
Acquire lock to check for genesis block.
2016-05-16 20:33:32 -07:00
Patrick Strateman
380498aba4
Move BackupWallet to CWallet::BackupWallet
2016-05-16 17:48:25 -07:00
Patrick Strateman
ecb9741ec3
Move GetAccountBalance from rpcwallet.cpp into CWallet::GetAccountBalance
2016-05-16 17:48:25 -07:00
Patrick Strateman
0fd599767d
Fix insanity of CWalletDB::WriteTx and CWalletTx::WriteToDisk
2016-05-09 00:20:17 -07:00
Patrick Strateman
4bf631e5e4
CDataStream::ignore Throw exception instead of assert on negative nSize.
...
Previously disk corruption would cause an assert instead of an exception.
2016-04-25 14:42:07 +02:00
Patrick Strateman
fb26bf0ea3
CAddrMan::Deserialize handle corrupt serializations better.
2016-04-24 01:30:47 -07:00
Patrick Strateman
d1d7775587
Improve worst-case behavior of CScript::FindAndDelete
...
Thanks to Sergio Lerner for identifying this issue and suggesting this kind of solution.
2016-04-21 17:24:36 -07:00
Patrick Strateman
c0f660c3a3
Replace c-style cast with c++ style static_cast.
2016-04-19 13:22:20 -07:00
Patrick Strateman
ec9ad5f199
Replace memcmp with std::equal in CScript::FindAndDelete
...
Function is stl; std::equal just makes more sense.
2016-04-19 13:22:03 -07:00
Patrick Strateman
c90036f664
Always disconnect old nodes which request filtered connections.
2016-03-18 21:26:49 -07:00
Patrick Strateman
110b62f069
Remove vfReachable and modify IsReachable to only use vfLimited.
...
We do not know that a class of Network is reachable, only that it is not.
2016-02-17 23:21:27 -08:00
Patrick Strateman
e1030dddab
Note that reviewers should mention the commit hash of the commits they reviewed.
2015-12-10 22:44:09 -08:00
Patick Strateman
b6a0da45db
Only use filterInventoryKnown with MSG_TX inventory messages.
...
Previously this logic could erroneously filter a MSG_BLOCK inventory message.
2015-11-30 12:53:48 +01:00
Patick Strateman
6b849350ab
Rename setInventoryKnown filterInventoryKnown
2015-11-30 12:53:48 +01:00
Patick Strateman
1bb289fe1b
Assert now > 0 in GetTime GetTimeMillis GetTimeMicros
...
Previously all of these functions could return negative values (for different
readons). Large portions of the codebase currently assume that these
functions return positive values.
2015-11-24 18:39:19 -08:00
Patick Strateman
9cf668844e
Document both the peerbloomfilters and enforcenodebloom options.
2015-11-24 02:08:00 -08:00
Patick Strateman
0f4dc53fd6
Add enforcenodebloom option.
...
Previously peers which implement a protocol version less than NO_BLOOM_VERSION
would not be disconnected for sending a filter command, regardless of the
peerbloomfilter option.
Many node operators do not wish to provide expensive bloom filtering for SPV
clients, previously they had to cherry pick the commit which enabled the
disconnect logic.
The default should remain false until a sufficient percent of SPV clients
have updated.
2015-11-24 02:08:00 -08:00
Patick Strateman
b3caa9b7fa
Move bloom filter filtering logic outside of command "switch" (giant if/else).
...
Moving this logic outside of the "switch" makes it far simpler to
enable the forced disconnect by a parameter.
2015-11-24 01:50:53 -08:00
Patick Strateman
80ae230a52
Improve log messages for blocks only violations.
2015-11-21 16:09:52 -08:00
Patick Strateman
d8aaa51bec
Bail early in processing transactions in blocks only mode.
...
Previously unsolicited transactions would be processed as normal.
2015-11-20 16:07:12 -08:00
Patick Strateman
3587f6a024
Fix relay mechanism for whitelisted peers under blocks only mode.
...
Previously in blocks only mode all inv messages where type!=MSG_BLOCK would be
rejected without regard for whitelisting or whitelistalwaysrelay.
As such whitelisted peers would never send the transaction (which would be
processed).
2015-11-20 16:07:12 -08:00
Patick Strateman
bbf49da408
Fix comment for blocksonly parameter interactions
2015-11-14 05:14:01 -08:00
Patick Strateman
6a4982fb83
Fix fRelayTxs comment
2015-11-14 05:12:31 -08:00
Patick Strateman
59441a0445
Display DEFAULT_WHITELISTALWAYSRELAY in help text
2015-11-14 05:12:05 -08:00
Patick Strateman
71a2683f4b
Use DEFAULT_BLOCKSONLY and DEFAULT_WHITELISTALWAYSRELAY constants
2015-11-14 05:10:59 -08:00
Patick Strateman
762b13b4d8
Add help text for blocksonly and whitelistalwaysrelay
2015-11-14 04:54:01 -08:00
Patick Strateman
3a964973fe
Add whitelistalwaysrelay option
2015-11-14 04:52:21 -08:00
Patick Strateman
420fa8143a
Do not process tx inv's in blocksonly mode
2015-11-14 04:52:21 -08:00
Patick Strateman
4044f07d1c
Add blocksonly mode
2015-11-14 04:52:21 -08:00
Patrick Strateman
027de94e1f
Use network group instead of CNetAddr in final pass to select node to disconnect
2015-08-30 22:09:14 -07:00
Patrick Strateman
000c18aace
Fix comment
2015-08-25 16:31:13 -07:00
Patrick Strateman
fed30940ef
Acquire cs_vNodes before changing refrence counts
2015-08-25 16:30:02 -07:00
Patrick Strateman
69ee1aab00
CNodeRef copy constructor and assignment operator
2015-08-25 15:33:29 -07:00
Patrick Strateman
dc81dd02a1
Return false early if vEvictionCandidates is empty
2015-08-22 15:38:24 -07:00
Patrick Strateman
17f3533c84
Better support for nodes with non-standard nMaxConnections
2015-08-22 15:38:24 -07:00
Patrick Strateman
1317cd1928
RAII wrapper for CNode*
2015-08-22 15:38:24 -07:00
Patrick Strateman
df23937422
Add comments to AttemptToEvictConnection
2015-08-22 15:38:24 -07:00
Patrick Strateman
a8f6e45249
Remove redundant whiteconnections option
2015-08-22 15:38:24 -07:00
Patrick Strateman
b105ba398b
Prefer to disconnect peers in favor of whitelisted peers
2015-08-22 15:38:24 -07:00
Patrick Strateman
2c701537c8
AttemptToEvictConnection
2015-08-22 15:38:24 -07:00
Patrick Strateman
4bac601610
Record nMinPingUsecTime
2015-08-22 15:38:23 -07:00
Patrick Strateman
ae037b707c
Refactor: Move failure conditions to the top of AcceptConnection
2015-08-22 15:38:23 -07:00
Patrick Strateman
1ef4817614
Refactor: Bail early in AcceptConnection
2015-08-22 15:38:23 -07:00
Patrick Strateman
541a1dd9e6
Refactor: AcceptConnection
2015-08-22 15:38:23 -07:00
pstratem
351593b9c8
replace absolute sleep with conditional wait
2015-04-27 11:48:31 -07:00
Patrick Strateman
75ef87dd93
process received messages one at a time without sleeping between messages
2013-11-03 20:25:50 -08:00
patrick s
a42eef6f10
verify vchPubKey matches calculated public key unless fSkipCheck is set
2013-08-29 01:11:47 -07:00
patrick s
6e51b3bddf
improve wallet load time by removing duplicated calls to EC_KEY_check_key and adding a hash for vchPubKey/vchPrivKey entries in wallet.dat
...
backwards compatible with previous wallet.dat format
2013-08-28 23:53:26 -07:00