Commit Graph
100 Commits
Author SHA1 Message Date
Jeff Garzik 6e3a1a3742 Merge pull request #1304 from rebroad/ShowBlockTimestamp
Show block timestamp
2012-07-05 15:28:42 -07:00
Jeff Garzik 698b9f3095 bitcoinrpc.cpp: Removed outdated comment
Fixes #1373
2012-07-05 18:18:15 -04:00
Jeff Garzik b47d2bc164 Merge pull request #1554 from jgarzik/dup-gethash
Remove duplicate GetHash() in ConnectBlock
2012-07-05 10:06:55 -07:00
Jeff Garzik fe70b09c42 Merge pull request #1555 from TheBlueMatt/warnings
Fix remaining compile warnings.
2012-07-04 08:34:11 -07:00
Jeff Garzik f77654a0e9 CTxMemPool: eliminate redundant lock, GetHash() call
::addUnchecked()'s only caller already takes the necessary lock,
and has already calculated the TX's hash.
2012-07-04 01:12:44 -04:00
Jeff Garzik c729dbb6d2 Merge pull request #1512 from jgarzik/json-batch
Support JSON-RPC 2.0 request batches
2012-07-03 20:08:36 -07:00
Jeff Garzik 613389019e RPC: add support for JSON-RPC 2.0-style request batching
If the top-level object is an array, it is assumed to be an array of
JSON-RPC requests.  An array is returned, containing one response (error or
not) per request, in the order submitted.

In a slight change in semantics, batched requests -always- return
an HTTP 200 OK status, even ones full of invalid or incorrect requests.
2012-07-03 22:53:57 -04:00
Jeff Garzik c6494d82fa RPC: break out high level JSON-RPC req/resp into their own functions
This prepares for JSON-RPC 2.0 batches.
2012-07-03 22:53:30 -04:00
Jeff Garzik 3898609304 Merge pull request #1546 from gmaxwell/allowsamenetinbound
Do not consider inbound peers for outbound network group exclusion.
2012-07-03 19:51:08 -07:00
Jeff Garzik 3ee48ba20a Merge pull request #1548 from TheBlueMatt/warnings
Fix signed/unsigned warnings in {script,serialize}.h (fixes #1541)
2012-07-03 19:50:06 -07:00
Jeff Garzik da1103f4f8 Merge pull request #1545 from TheBlueMatt/diffsendbuffer
Minor send buffer changes
2012-07-01 18:17:34 -07:00
Jeff Garzik 18e8e43715 RPC getpeerinfo: s/height/startingheight/ for returned nStartingHeight value 2012-06-30 23:40:26 -04:00
Jeff Garzik eca96d7118 Merge pull request #1540 from fanquake/master
Fix a Couple Typos
2012-06-30 07:25:32 -07:00
Jeff Garzik ac8d2b1df7 Merge pull request #1537 from Diapolo/fix_awesome_typo
fix an awesome typo in OptionsDialog ^^
2012-06-29 16:18:45 -07:00
Jeff Garzik 1006f0707e RPC: add 'getpeerinfo', returning easy-to-retrieve per-CNode data 2012-06-29 17:24:53 -04:00
Jeff Garzik a590aae017 Merge pull request #1532 from fanquake/master
Fix a couple typos
2012-06-29 06:15:33 -07:00
Jeff Garzik 70ab73a008 Create new rpcnet module, and move 'getconnectioncount' RPC to it 2012-06-28 23:18:38 -04:00
Jeff Garzik e75acc006e Merge pull request #1511 from jgarzik/quieten2
Quieten 'getdata' P2P message output
2012-06-27 09:06:59 -07:00
Jeff Garzik 8a6ea5d687 Merge pull request #1520 from TheBlueMatt/debian
Update contrib/debian and remove system json_spirit patch.
2012-06-25 15:04:10 -07:00
Jeff Garzik d887f54494 Document -debugnet option in command line help.
Fixes #1507
2012-06-24 10:38:02 -04:00
Jeff Garzik 983e4bdef0 Quieten 'getdata' P2P message output
Output one message per getdata, not one message per 'inv' entry.
2012-06-23 21:38:33 -04:00
Jeff Garzik d62a1947be Merge pull request #1458 from jgarzik/tracenet
Introduce -tracenet option, thereby quieting some redundant debug messages
2012-06-22 10:13:31 -07:00
Jeff Garzik d07eaba195 Introduce -debugnet option, thereby quieting some redundant debug messages
Prior to this change, each TX typically generated 3+ debug messages,

	askfor tx 8644cc97480ba1537214   0
	sending getdata: tx 8644cc97480ba1537214
	askfor tx 8644cc97480ba1537214   1339640761000000
	askfor tx 8644cc97480ba1537214   1339640881000000
	CTxMemPool::accept() : accepted 8644cc9748 (poolsz 6857)

After this change, there is only one message for each valid TX received

	CTxMemPool::accept() : accepted 22a73c5d8c (poolsz 42)

and two messages for each orphan tx received

	ERROR: FetchInputs() : 673dc195aa mempool Tx prev not found 1e439346fc
	stored orphan tx 673dc195aa (mapsz 19)

The -debugnet option, or its superset -debug, will restore the full debug
output.
2012-06-22 13:11:57 -04:00
Jeff Garzik cb1fcde2f4 Merge pull request #1502 from jgarzik/getrawmempool
RPC: add 'getrawmempool', listing all transaction ids in memory pool
2012-06-22 09:59:19 -07:00
Jeff Garzik 25d5c19522 RPC: add 'getrawmempool', listing all transaction ids in memory pool 2012-06-22 11:43:34 -04:00
Jeff Garzik 219abac227 Merge pull request #1488 from sipa/noowner
Remove CTxDB::ReadOwnerTxes.
2012-06-20 06:46:39 -07:00
Jeff Garzik 883a310904 Merge pull request #1435 from TheBlueMatt/mingwbuild
Fix Mingw64 build (missing headers according to M$ documentation)
2012-06-09 12:40:15 -07:00
Jeff Garzik b92095f18c DoS_tests: fix signed/unsigned comparison warnings
test/DoS_tests.cpp: In member function ‘void DoS_tests::DoS_mapOrphans::test_method()’:
test/DoS_tests.cpp:200:41: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
test/DoS_tests.cpp:208:41: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
test/DoS_tests.cpp: In member function ‘void DoS_tests::DoS_checkSig::test_method()’:
test/DoS_tests.cpp:260:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
test/DoS_tests.cpp:267:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
test/DoS_tests.cpp:280:41: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
test/DoS_tests.cpp:307:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
2012-05-24 12:18:50 -04:00
Jeff Garzik 2ae4ad004a Merge pull request #1387 from Diapolo/rem_unused_rpcdump
remove dead "using namespace boost::asio;" from rpcdump.cpp
2012-05-24 09:14:59 -07:00
Jeff Garzik ec9c902133 Merge pull request #1383 from jgarzik/rawtx
JSON-RPC: Add 'sendrawtx' op, for sending pre-built TX's to network
2012-05-24 09:14:04 -07:00
Jeff Garzik 480d44bd0b rpcdump: include cleanup. move JSONRPCError def to bitcoinrpc.h. 2012-05-23 23:20:07 -04:00
Jeff Garzik 429039d45d Refactor: move runCommand() to util.cpp 2012-05-23 23:10:59 -04:00
Jeff Garzik 8956453c0d .gitignore: add test_bitcoin 2012-05-23 21:45:26 -04:00
Jeff Garzik 976c08b68a JSON-RPC: Add 'sendrawtx' op, for sending pre-built TX's to network 2012-05-23 16:21:25 -04:00
Jeff Garzik 9ac282ca0c Refactor: add IsChainFile helper. LoadBlockIndex() code movement. 2012-05-23 00:17:07 -04:00
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