lbrycrd/src
Michael Hendricks 1c4aab926e Retain only the most recent time samples
Remembering all time samples makes nTimeOffset slow to respond to
system clock corrections.  For instance, I start my node with a system
clock that's 30 minutes slow and run it for a few days.  During that
time, I accumulate 10,000 offset samples with a median of 1800
seconds.  Now I correct my system clock.  Without this change, my node
must collect another 10,000 samples before nTimeOffset is correct
again.  With this change, I must only accumulate 100 samples to
correct the offset.

Storing unlimited time samples also allows an attacker with many IP
addresses (ex, a large botnet) to perform a memory exhaustion attack
against Bitcoin nodes.  The attacker sends a version message from each
IP to his target, consuming more of the target's memory each time.
Time samples are small, so this attack might be impractical under the
old code, but it's impossible with the new code.
2011-12-01 17:28:14 -07:00
..
json move back to original directory structure 2011-06-11 22:11:58 +02:00
obj Boost unit-testing framework. 2011-06-27 14:12:48 -04:00
qt Merge pull request #666 from nobled/secstrings 2011-11-30 17:30:54 -08:00
test Orphan block fill-up-memory attack prevention 2011-12-01 13:53:38 -05:00
base58.h Some extra comments 2011-11-07 00:11:34 +01:00
bignum.h Unify copyright notices. 2011-08-09 13:32:52 +02:00
bitcoinrpc.cpp Speed up RPC authentication (reworked pull from Joel Katz) 2011-12-01 15:55:25 -05:00
bitcoinrpc.h Merge branch 'master' of https://github.com/bitcoin/bitcoin 2011-08-16 10:28:24 +02:00
checkpoints.cpp Orphan block fill-up-memory attack prevention 2011-12-01 13:53:38 -05:00
checkpoints.h Orphan block fill-up-memory attack prevention 2011-12-01 13:53:38 -05:00
crypter.cpp Implement an mlock()'d string class for storing passphrases 2011-11-26 06:02:04 +00:00
crypter.h Implement an mlock()'d string class for storing passphrases 2011-11-26 06:02:04 +00:00
db.cpp close old db when rewriting 2011-11-20 11:17:41 -05:00
db.h Never remove database files on shutdown, it caused unreadable wallets on some testers' machines. 2011-11-20 10:39:01 -05:00
headers.h Only define __STDC_LIMIT_MACROS if not already defined. 2011-10-25 11:39:17 -04:00
init.cpp Add missing command-line arguments to --help/-? output 2011-11-27 14:53:30 -05:00
init.h Unify copyright notices. 2011-08-09 13:32:52 +02:00
irc.cpp Unify copyright notices. 2011-08-09 13:32:52 +02:00
irc.h Unify copyright notices. 2011-08-09 13:32:52 +02:00
key.h Some extra comments 2011-11-07 00:11:34 +01:00
keystore.cpp SetCrypted() obtains keystore lock, to be safe. 2011-08-31 14:00:41 -04:00
keystore.h Some extra comments 2011-11-07 00:11:34 +01:00
main.cpp Orphan block fill-up-memory attack prevention 2011-12-01 13:53:38 -05:00
main.h Orphan block fill-up-memory attack prevention 2011-12-01 13:53:38 -05:00
makefile.linux-mingw Moved checkpoints out of main, to prep for using them to help prevent DoS attacks 2011-12-01 12:18:50 -05:00
makefile.mingw Moved checkpoints out of main, to prep for using them to help prevent DoS attacks 2011-12-01 12:18:50 -05:00
makefile.osx Moved checkpoints out of main, to prep for using them to help prevent DoS attacks 2011-12-01 12:18:50 -05:00
makefile.unix Moved checkpoints out of main, to prep for using them to help prevent DoS attacks 2011-12-01 12:18:50 -05:00
makefile.vc Moved checkpoints out of main, to prep for using them to help prevent DoS attacks 2011-12-01 12:18:50 -05:00
net.cpp Remove vladimir's DNS seed, at his request. 2011-10-31 12:42:01 -04:00
net.h Fix build on windows and mac 2011-10-07 11:02:21 -04:00
noui.h assure that base bitcoind and bitcoin still build 2011-09-18 12:44:38 +02:00
protocol.cpp Fix build on windows and mac 2011-10-07 11:02:21 -04:00
protocol.h Move CInv to protocol.[ch]pp 2011-08-19 07:24:38 +02:00
qtui.h add splash screen 2011-08-02 21:48:59 +02:00
script.cpp Merge branch 'master' of https://github.com/bitcoin/bitcoin 2011-09-02 17:35:30 +02:00
script.h Merge pull request #458 from TheBlueMatt/copyright 2011-08-11 10:34:29 -07:00
serialize.h Bump version to 0.5.1 2011-11-21 13:38:38 -05:00
strlcpy.h move back to original directory structure 2011-06-11 22:11:58 +02:00
uint256.h Unify copyright notices. 2011-08-09 13:32:52 +02:00
util.cpp Retain only the most recent time samples 2011-12-01 17:28:14 -07:00
util.h Retain only the most recent time samples 2011-12-01 17:28:14 -07:00
wallet.cpp Implement an mlock()'d string class for storing passphrases 2011-11-26 06:02:04 +00:00
wallet.h Implement an mlock()'d string class for storing passphrases 2011-11-26 06:02:04 +00:00