Commit Graph
100 Commits
Author SHA1 Message Date
Jeff Garzik 5d0f7c4f47 Merge pull request #1381 from jgarzik/check-deser
Prevent crashes due to missing or corrupted database records
2012-05-22 14:39:49 -07:00
Jeff Garzik 78eb2789b2 ProcessMessage(): remove duplicate orphan tx debug message 2012-05-22 15:33:04 -04:00
Jeff Garzik 8fe791e4e2 Prevent crashes due to missing or corrupted blk????.dat records
In LoadExternalBlockFile(), errors are already caught... silently.
Add a warning message, even though we do not abort the program due to
load error.
2012-05-22 15:23:17 -04:00
Jeff Garzik f94b64c2f3 Prevent crashes due to missing or corrupted database records
Any problems seen during deserialization will throw an uncaught
exception, crashing the entire bitcoin process.  Properly return an
error instead, so that we may at least log the error and gracefully
shutdown other portions of the app.
2012-05-22 15:12:52 -04:00
Jeff Garzik 7b671f52e0 Define BOOST_SPIRIT_THREADSAFE in all makefiles
rather than at each include site.

Fixes #1371
2012-05-21 22:25:54 -04:00
Jeff Garzik ce4cc630c2 Merge pull request #1367 from jgarzik/db-private
BDB: restore DB_PRIVATE flag to environment
2012-05-21 09:40:30 -07:00
Jeff Garzik 9c137aaccf BDB: restore DB_PRIVATE flag to environment
Satoshi's commits fdbf76d and c8ad9b8 (SVN import) removed the
DB_PRIVATE flag from the environment.  In part, this enables processes
other than bitcoind to examine the active database environment.

However, this incurs a slight performance penalty versus working
entirely within application memory (DB_PRIVATE).  Because bitcointools
and other direct-BDB-accessing tools are not used by the vast
majority of users, prefer to default with DB_PRIVATE with the option
of disabling it if needed via -privdb=0.
2012-05-21 12:38:45 -04:00
Jeff Garzik ffe8b77a61 Further CDBEnv encapsulation work. 2012-05-19 20:46:52 -04:00
Jeff Garzik 94e34fa0ad CDB::CDB: properly initialize activeTxn to NULL 2012-05-19 20:45:39 -04:00
Jeff Garzik 8b1202c52c Remove unused nested BDB transaction support 2012-05-19 20:45:39 -04:00
Jeff Garzik 24b57e3c6a Create CDBEnv::TxnBegin(), and use it in CDB::TxnBegin() 2012-05-19 20:44:31 -04:00
Jeff Garzik cd9696fc97 Encapsulate BDB environment inside new CDBEnv class
Cleans up and organizes several scattered functions and variables related to
the BDB env.  Class CDBInit() existed to provide a
guaranteed-via-C++-destructor cleanup of the db environment.

A formal CDBEnv class provides all of this inside a single wrapper.
2012-05-19 20:43:19 -04:00
Jeff Garzik b52a270538 Reorganize(): remove spurious TxnAbort()
If Reorganize() fails, then its caller, CBlock::SetBestChain(),
will call TxnAbort().

Redundant TxnAbort() calls are harmless.  The second will return an
error return value, with no other side effects.  TxnAbort() return
values are generally never checked.  The impact is nil.
2012-05-19 20:40:43 -04:00
Jeff Garzik cde87ee75c Merge pull request #1360 from jgarzik/datasync
Default to DB_TXN_WRITE_NOSYNC for all transactional operations
2012-05-19 12:33:19 -07:00
Jeff Garzik 394b9298fa Default to DB_TXN_WRITE_NOSYNC for all transactional operations
* This is safer than DB_TXN_NOSYNC, and does not appear to impact
  performance.
* Applying this to the dbenv is necessary to avoid many fdatasync(2)
  calls on db 5.x
* We carefully and thoroughly flush databases upon shutdown and
  other important events already.
2012-05-19 01:25:06 -04:00
Jeff Garzik d6615a54c6 Merge pull request #1350 from jgarzik/del-deprecated
JSON-RPC: remove 'getblocknumber' deprecated RPC
2012-05-18 08:26:40 -07:00
Jeff Garzik 47f48a658d JSON-RPC: remove 'getblocknumber' deprecated RPC
RPC 'getblockcount' should be used instead.
2012-05-17 23:43:00 -04:00
Jeff Garzik 6d64a0bfed Make orphan logging more verbose, displaying mapOrphanTransactions.size()
Old log message:
	storing orphan tx df2244f6bc

New log message:
	storing orphan tx df2244f6bc (mapsz 51)

Also, trim a few trailing whitespace in main.cpp.
2012-05-17 20:36:55 -04:00
Jeff Garzik 6c513a45d5 Merge pull request #1340 from rebroad/DBFlushDurationReport
Report how long DBFlush took.
2012-05-17 17:21:01 -07:00
Jeff Garzik c0a360ce49 Merge pull request #1345 from Diapolo/strnicmp_Win32
Win32: use _strnicmp (ISO C++) instead of deprecated strnicmp (POSIX)
2012-05-17 15:53:38 -07:00
Jeff Garzik 985302c7cc Merge pull request #1335 from rebroad/IgnoreBuildDir
Add build directory to .gitignore, so that it's not tracked.
2012-05-17 11:32:47 -07:00
Jeff Garzik 7563424f32 Merge pull request #1334 from rebroad/Exiting2Exited
Corrected grammar. As per Principle Of Least Surprise.
2012-05-17 11:29:09 -07:00
Jeff Garzik 0c7fd94585 Merge pull request #1332 from Diapolo/fix_RenameOver_FileCommit_Win32
fix RenameOver() and FileCommit() functions, to not generate compilation errors
2012-05-17 09:34:12 -07:00
Jeff Garzik cf2f7c30a3 Merge pull request #1295 from jgarzik/txn-retval
[FIX] Always check return values of TxnBegin() and TxnCommit()
2012-05-17 08:49:16 -07:00
Jeff Garzik d17ac27a72 Merge pull request #1316 from jgarzik/dead-code
Remove dead code: CTxDB::EraseBlockIndex(), CBlockIndex::EraseBlockFromDisk()
2012-05-17 08:47:54 -07:00
Jeff Garzik b56843b253 Merge pull request #1198 from jgarzik/addrman
Replace BDB-managed addr.dat with bitcoin-managed peers.dat
2012-05-17 08:46:33 -07:00
Jeff Garzik 928d3a011c CAddrDB: Replace BDB-managed addr.dat with internally managed peers.dat 2012-05-16 22:11:19 -04:00
Jeff Garzik 768e5d52fb Add new utility functions FileCommit(), RenameOver() 2012-05-16 19:25:25 -04:00
Jeff Garzik a7d45c5a7a Remove dead code: CTxDB::EraseBlockIndex(), CBlockIndex::EraseBlockFromDisk() 2012-05-15 13:36:25 -04:00
Jeff Garzik 0fb78eae34 Always check return values of TxnBegin() and TxnCommit() 2012-05-14 01:11:11 -04:00
Jeff Garzik 28d257da11 Merge pull request #1287 from sipa/noirc6
Only encode IPv4 addresses in IRC nicks
2012-05-13 11:48:27 -07:00
Jeff Garzik 80af836ce0 Merge pull request #1277 from Diapolo/IPv6_IPv4_strings
use "IPv6" and "IPv4" in strings as these are the official spellings
2012-05-12 18:59:31 -07:00
Jeff Garzik d960a335f8 Merge pull request #1266 from Diapolo/tab_to_space
convert 4 tabs into 4 x 4 spaces in bitcoinrpc.cpp
2012-05-12 08:02:57 -07:00
Jeff Garzik b34c5f3c0f Merge pull request #1101 from jgarzik/http11
Multithreaded JSON-RPC with HTTP 1.1 Keep-Alive support
2012-05-11 09:57:08 -07:00
Jeff Garzik 271f9faf9e Merge pull request #1254 from jgarzik/mempool-logging
CTxMemPool: consolidate two frequently-printed debug.log lines into one
2012-05-11 07:53:08 -07:00
Jeff Garzik 33a53bc13b CTxMemPool::accept(): do not log FetchInputs failure redundantly
FetchInputs already logs failures internally.  This commit makes the logging
more consistent with other FetchInputs callsites also.

Prior to this commit, two log lines were logged for one condition:

     ERROR: FetchInputs() : de15fde415 mempool Tx prev not found a2c75da227
     ERROR: CTxMemPool::accept() : FetchInputs failed de15fde415

After this commit, only one line is logged:

     ERROR: FetchInputs() : e0507ab2c7 mempool Tx prev not found 9a620262cd
2012-05-10 20:31:46 -04:00
Jeff Garzik 133dce6a37 CTxMemPool: consolidate two frequently-printed debug.log lines into one
Previously, a single TX would trigger two log lines in quick succession,

        addUnchecked(): size 152
        CTxMemPool::accept() : accepted c4cfdd48b7

After this change, only one log line is used:

        CTxMemPool::accept() : accepted 98885e65db (poolsz 26)
2012-05-10 20:20:31 -04:00
Jeff Garzik 9d9aae0396 Merge pull request #1237 from gmaxwell/master
Kill warning from unavoidable signed/unsigned comparison in bitcoinrpc.cpp.
2012-05-09 07:59:13 -07:00
Jeff Garzik 11b729d8a2 Merge pull request #1134 from Diapolo/util-updates
small util.cpp/h changes
2012-05-09 07:54:25 -07:00
Jeff Garzik d54e6e8359 Merge pull request #1225 from Diapolo/net_cpp_if_clause
fix an incorrect if-clause in net.cpp
2012-05-09 07:50:27 -07:00
Jeff Garzik 1302257e5d makefile.unix: add -Wall to default CXXFLAGS
Additionally, remove -Wno-sign-compare from alt CXXFLAGS, as
that is no longer a problem.
2012-05-08 21:02:28 -04:00
Jeff Garzik ab89d75daf Merge pull request #1226 from Diapolo/init_h_rem_obsolete
remove 2 obsolete functions from init.h that moved to util.h
2012-05-08 15:18:08 -07:00
Jeff Garzik a2ea797593 Merge pull request #1180 from jgarzik/sign-compare
Fix final sign comparison warnings
2012-05-08 13:50:27 -07:00
Jeff Garzik 28bddf4590 Merge pull request #1214 from TheBlueMatt/debian
Update changelog to match reality.
2012-05-06 18:35:42 -07:00
Jeff Garzik ca97bde8ff Merge pull request #1171 from Diapolo/fix_compiler_warn
fix 2 compiler warnings
2012-05-01 15:02:41 -07:00
Jeff Garzik 024fa1cb44 EvalScript(): cast to avoid signed/unsigned warning 2012-05-01 17:57:12 -04:00
Jeff Garzik 061a001590 ThreadSocketHandler2(): cast to avoid signed/unsigned warning 2012-05-01 17:54:52 -04:00
Jeff Garzik 24de922636 CDiskTxPos, CInPoint, COutPoint: cast null value (-1) to unsigned int
to eliminate signed/unsigned comparison warnings
2012-05-01 17:49:17 -04:00
Jeff Garzik e19ccfa657 Merge pull request #1177 from laanwj/2012_05_remove_duplicate_securestring
remove duplicate definition of SecureString in util.h
2012-05-01 10:05:00 -07:00
Jeff Garzik bd51e8ef8a Merge pull request #1173 from Diapolo/init_cpp_comment_upd
remove references to bitcoin-wx from comment in init.cpp
2012-05-01 08:29:10 -07:00
Jeff Garzik c2e8c8acd8 Merge pull request #1140 from jgarzik/sign-compare
Address many more sign comparison warnings
2012-04-23 21:33:29 -07:00
Jeff Garzik 735a60698c Change signed->unsigned at 3 code sites
This resolves signed/unsigned comparison warnings.
2012-04-23 14:14:36 -04:00
Jeff Garzik 5aa0b23825 CBlock::WriteToDisk() properly checks ftell(3) for error return
Rather than storing ftell(3)'s return value -- a long -- in an
unsigned int, we store and check a properly typed temp.  Then, assured a
non-negative value, we store in nBlockPosRet.
2012-04-23 14:14:36 -04:00
Jeff Garzik 1d8c7a9557 Add casts for unavoidable signed/unsigned comparisons
At these code sites, it is preferable to cast rather than change
a variable's type.
2012-04-23 14:14:36 -04:00
Jeff Garzik c0a0a93d02 Test ScriptSigArgsExpected() for error, before accumulating return value 2012-04-23 14:14:36 -04:00
Jeff Garzik faf705a42a Prefer 'unsigned int' for loop index variables tested against ::size()
C++ STL ::size() generally returns unsigned, which implies that "int idx"
style of loop variable will generate a signed-vs-unsigned comparison warning
when testing the loop exit condition "idx < blah.size()"

Update areas of the bitcoin code where loop variables may be more properly and
correctly defined as unsigned.
2012-04-22 13:22:39 -04:00
Jeff Garzik dd21ce5f1b Merge pull request #1094 from jgarzik/already-have-locking
Locking fix for AlreadyHave()
2012-04-17 09:23:49 -07:00
Jeff Garzik 865a0c1674 Merge pull request #1081 from jgarzik/pong
BIP 0031: pong message
2012-04-17 08:51:17 -07:00
Jeff Garzik 5a701eb7ea Merge pull request #1104 from laanwj/2012_04_clang
Enable and fix most compilation warnings
2012-04-15 11:39:15 -07:00
Jeff Garzik fced2231f8 Merge pull request #1084 from dooglus/validate_secret
importprivkey doesn't check that it is given a private key
2012-04-15 09:25:29 -07:00
Jeff Garzik c99ddfaa22 Merge pull request #1100 from luke-jr/qrcode_errchk
Bugfix: Check that QRcode_encodeString didn't return NULL (error)
2012-04-15 08:31:22 -07:00
Jeff Garzik 22014c31e5 Merge pull request #1093 from jgarzik/tx-opt
Database micro-optimization for "tx" network message
2012-04-14 08:50:43 -07:00
Jeff Garzik 93e447b631 BIP 0031: pong message
Add a pong message that is sent in reply to a ping. It echoes back a nonce
field that is now added to the ping message. Send a nonce of zero in ping
messages.

Original author: Mike Hearn @ Google

Modified Mike's change to introduce a mild form of protocol documentation in
version.h.
2012-04-12 12:11:56 -04:00
Jeff Garzik 4dcad1d294 Merge pull request #536 from TheBlueMatt/build-updates
Update release-process.txt with gitian release instructions.
2011-09-28 09:27:25 -07:00
Jeff Garzik ab1bbe5492 Merge pull request #533 from alexwaters/readme
Updated readme file with timers.
2011-09-27 20:47:06 -07:00
Jeff Garzik f8937b2d3b Merge pull request #528 from TheBlueMatt/gitian-downloader
Add win32 gitian download config.
2011-09-23 10:56:25 -07:00
Jeff Garzik 864e49a12c Merge pull request #525 from TheBlueMatt/master
Update binary mo to match latest po translation.
2011-09-22 09:48:02 -07:00
Jeff Garzik 700f942692 Merge pull request #522 from sipa/minorfix
SocketHandler thread can be detached
2011-09-20 11:47:02 -07:00
Jeff Garzik 7337b343cd Merge pull request #519 from dabaopku/master
Chinese Simp translation update
2011-09-17 09:24:54 -07:00
Jeff Garzik 53c6c12886 Merge pull request #512 from paraipanakos/master
Spanish translation update
2011-09-13 13:21:09 -07:00
Jeff Garzik 38fd861fff Merge pull request #511 from mibe/translation-de
Updated German translation
2011-09-11 18:45:00 -07:00
Jeff Garzik ff4bd3977a Merge pull request #503 from TheBlueMatt/translatefix
Add binary mo for new translation.
2011-09-06 12:03:08 -07:00
Jeff Garzik 074653973e Merge pull request #502 from vsrinivas/master
Define MSG_NOSIGNAL to 0 when it is not defined.  Gets OpenBSD building.
2011-09-06 11:58:42 -07:00
Jeff Garzik 04f9a37c71 Merge pull request #501 from paraipanakos/master
Added Romanian translation
2011-09-06 11:50:56 -07:00
Jeff Garzik 3a7c4d89de Merge pull request #495 from alexwaters/readme
Updated readme file
2011-09-05 20:01:55 -07:00
Jeff Garzik 712077a760 Merge pull request #486 from TheBlueMatt/translatefix
Update binary mos to latest translations.
2011-09-02 10:12:20 -07:00
Jeff Garzik 21189a42a7 Merge pull request #463 from TheBlueMatt/encreadme
Encryption readme update and minor rpc.cpp fixes
2011-08-31 09:32:42 -07:00
Jeff Garzik ce39dfe425 Merge pull request #475 from ovdeathiam/patch-1
Edited locale/pl/LC_MESSAGES/bitcoin.po via GitHub
2011-08-31 09:23:30 -07:00
Jeff Garzik 8af99d1893 Merge pull request #464 from TheBlueMatt/upnp1.6
Upgrade dependancies and tweak build process.
2011-08-31 09:16:56 -07:00
Jeff Garzik eb20f3c8f5 Merge pull request #448 from sipa/cbitcoinaddress
avoid strAddress + validity checks
2011-08-04 11:47:15 -07:00
Jeff Garzik 95699e1730 Merge pull request #446 from WakiMiko/upnp-desc
Identify as "Bitcoin + version number" when mapping UPnP port
2011-08-04 11:40:44 -07:00
Jeff Garzik 32de8cd062 Merge pull request #451 from TheBlueMatt/tornolisten
Don't listen if on TOR (resolves #441).
2011-08-04 11:40:06 -07:00
Jeff Garzik a9ba47101a Merge pull request #403 from sipa/cbitcoinaddress
keys indexed by address + introduced CBitcoinaddress
2011-07-24 15:38:38 -07:00
Jeff Garzik c2da35319d Merge pull request #423 from TheBlueMatt/mapalreadyaskedforfix
Actually use mapAlreadyAskedFor.
2011-07-21 19:05:38 -07:00
Jeff Garzik 133ccbe408 Merge pull request #418 from EricJ2190/master
Update makefile.vc for wallet encryptions.
2011-07-15 21:11:34 -07:00
Jeff Garzik 5b0fc31b1c Merge pull request #414 from spiechu/polish-translation
added polish wallet encryption messages
2011-07-14 20:43:22 -07:00
Jeff Garzik 065d743019 Merge pull request #413 from TheBlueMatt/loadwalletret
Fix bad return values in LoadWallet.
2011-07-14 09:37:50 -07:00
Jeff Garzik 60d2f8662c Merge pull request #409 from TheBlueMatt/master
Fix crashes when a wallet is locked and GetReservedKey() is called
2011-07-13 18:22:19 -07:00
Jeff Garzik 9cd22ab862 Merge pull request #406 from muggenhor/warning-fixes
Warning fixes
2011-07-13 08:55:49 -07:00
Jeff Garzik b8cbbc2c28 Merge pull request #405 from sipa/syncdefault
Bugfix: add autogenerated addresses to address book
2011-07-13 08:53:57 -07:00
Jeff Garzik 4ea952d5c0 Merge pull request #399 from muggenhor/warning-fixes
Warning fixes
2011-07-12 20:22:38 -07:00
Jeff Garzik 0fa89d8e81 Merge pull request #381 from TheBlueMatt/nminversion
Add minversion to wallet.
2011-07-12 19:34:30 -07:00
Jeff Garzik 61e3c011f5 Merge pull request #402 from jayschwa/hirez-icon
High resolution Windows icon
2011-07-12 19:18:52 -07:00
Jeff Garzik 696d34069a Merge pull request #396 from jayschwa/nsis-branding
Add bitcoin.org logos/branding to NSIS installer.
2011-07-12 19:18:21 -07:00
Jeff Garzik 0bad8e4237 Merge pull request #352 from TheBlueMatt/newenc
Wallet Private Key Encryption (on CWallet)
2011-07-12 19:10:12 -07:00
Jeff Garzik 354f2dd094 Merge pull request #392 from laanwj/antimagic
Remove another magic number: change threshold for nLockTime to constant
2011-07-09 10:09:13 -07:00
Jeff Garzik c05d011fba Merge pull request #376 from codler/translate
Minor translation changes for latest build (Swedish)
2011-07-08 10:36:49 -07:00
Jeff Garzik e94010b239 Merge pull request #383 from sipa/syncdefault
Fix synchronization of default key
2011-07-05 11:52:13 -07:00
Jeff Garzik bb0d9ce226 Merge pull request #384 from TheBlueMatt/upnp
Fix UPnP building, entirely my fault.
2011-07-05 10:10:26 -07:00
Jeff Garzik 06c903b26c Merge pull request #380 from TheBlueMatt/buildupdates
Added a couple minor things to match newer build process.
2011-07-04 16:34:18 -07:00