Jeff Garzik
d9dd0318e1
Merge pull request #2601 from jgarzik/uri-validate
...
RPC: strictly require HTTP URI "/"
2013-05-02 12:26:55 -07:00
Jeff Garzik
9f4976afe2
RPC: strictly require HTTP URI "/"
...
Previously, JSON-RPC clients accessed URI "/", and the JSON-RPC server
did not care about the URI at all, and would accept any URI as valid.
Change the JSON-RPC server to require URI "/" for all current accesses.
This changes enables the addition of future interfaces at different
URIs, such as pull request #1982 which demonstrates HTTP REST wallet
download.
Or, a future, breaking change in JSON-RPC interface could be introduced
by serving JSON-RPC calls from new URI "/v2/".
2013-05-01 10:41:24 -04:00
Jeff Garzik
1483aac5f9
net.cpp: Do not change primary process name from (default) to "bitcoin-start"
...
Discussed a bit on IRC.
2013-04-08 22:02:57 -04:00
Jeff Garzik
a0cafb7945
Move GenerateBitcoins() call out of net.cpp's StartNode()
...
The internal miner is closely bound to the wallet engine,
not the blockchain engine.
2013-03-31 01:54:27 -04:00
Jeff Garzik
e3c063b315
Merge pull request #2409 from sipa/txoptim
...
Network optimalizations
2013-03-30 21:05:22 -07:00
Jeff Garzik
b9ff2970b9
P2P: improve RX/TX flow control
...
1) "optimistic write": Push each message to kernel socket buffer immediately.
2) If there is write data at select time, that implies send() blocked
during optimistic write. Drain write queue, before receiving
any more messages.
This avoids needlessly queueing received data, if the remote peer
is not themselves receiving data.
Result: write buffer (and thus memory usage) is kept small, DoS
potential is slightly lower, and TCP flow control signalling is
properly utilized.
The kernel will queue data into the socket buffer, then signal the
remote peer to stop sending data, until we resume reading again.
2013-03-29 23:56:25 +01:00
Jeff Garzik
bc2f5aa72c
P2P, cosmetic: break out buffer send(2) code into separate function
2013-03-29 23:56:25 +01:00
Jeff Garzik
607dbfdeaf
P2P: parse network datastream into header/data components in socket thread
...
Replaces CNode::vRecv buffer with a vector of CNetMessage's. This simplifies
ProcessMessages() and eliminates several redundant data copies.
Overview:
* socket thread now parses incoming message datastream into
header/data components, as encapsulated by CNetMessage
* socket thread adds each CNetMessage to a vector inside CNode
* message thread (ProcessMessages) iterates through CNode's CNetMessage vector
Message parsing is made more strict:
* Socket is disconnected, if message larger than MAX_SIZE
or if CMessageHeader deserialization fails (latter is impossible?).
Previously, code would simply eat garbage data all day long.
* Socket is disconnected, if we fail to find pchMessageStart.
We do not search through garbage, to find pchMessageStart. Each
message must begin precisely after the last message ends.
ProcessMessages() always processes a complete message, and is more efficient:
* buffer is always precisely sized, using CDataStream::resize(),
rather than progressively sized in 64k chunks. More efficient
for large messages like "block".
* whole-buffer memory copy eliminated (vRecv -> vMsg)
* other buffer-shifting memory copies eliminated (vRecv.insert, vRecv.erase)
2013-03-29 23:56:25 +01:00
Jeff Garzik
ea83336f4e
Merge pull request #2411 from TheBlueMatt/master
...
(finally) Remove IRC Seed support now that lfnet is down.
2013-03-29 08:03:18 -07:00
Jeff Garzik
8455310a7b
Merge pull request #2385 from gavinandresen/alertnotify
...
alertnotify, so bitcoind users can get email/sms/whatever of alerts
2013-03-29 07:49:56 -07:00
Jeff Garzik
e48aa6076a
Merge pull request #2295 from sipa/tidydir
...
Add script to clean up datadirs
2013-02-10 21:02:12 -08:00
Jeff Garzik
f166e0dd2f
Merge pull request #2297 from sipa/notes
...
Some improvements to the release notes
2013-02-10 21:01:47 -08:00
Jeff Garzik
353b7f4a9c
Merge pull request #2237 from petertodd/testnet-dnsseed
...
Add DNS seed support for testnet
2013-02-04 06:51:03 -08:00
Jeff Garzik
2daa2c13e1
Merge pull request #2250 from colindean/doc/root-readme
...
update and reformat README.md
2013-02-04 06:43:20 -08:00
Jeff Garzik
2835080e16
Merge pull request #2231 from sipa/cleanups
...
Two cleanups before 0.8
2013-01-29 18:08:12 -08:00
Jeff Garzik
699bc3d14d
Merge pull request #2234 from gavinandresen/seednodes
...
New seed nodes, from http://bitcoin.sipa.be/seeds.txt
2013-01-29 18:07:30 -08:00
Jeff Garzik
0d3d6094fa
Merge pull request #2162 from gavinandresen/spendfrom
...
spendfrom.py sends coins from a particular address or addresses
2013-01-26 12:13:39 -08:00
Jeff Garzik
e0c8fbac35
Merge pull request #2169 from Diapolo/small_main_h_cleanup
...
small main.h cleanup (no code changes)
2013-01-11 09:17:14 -08:00
Jeff Garzik
ea9788517b
test/util_tests.cpp: one more DateTimeStrFormat 'T' removal
2013-01-01 19:48:28 -05:00
Jeff Garzik
3f964b3c50
Remove 'T' from remaining date/time format strings.
2013-01-01 15:28:28 -05:00
Jeff Garzik
393819cde4
Remove 'T' from debug log timestamps
...
Space separation between major fields is easier for human eyes and
libs to parse.
2012-12-30 20:46:54 -05:00
Jeff Garzik
e6955d0411
New 'checkpoints' option should default to true.
2012-11-28 12:10:57 -05:00
Jeff Garzik
857b3ad923
Add "checkpoints" option, to permit disabling of checkpoint logic.
2012-11-28 12:07:42 -05:00
Jeff Garzik
3ef292dc7d
Merge pull request #1670 from luke-jr/blksubstr
...
Use full block hash as unique identifier in debug.log
2012-11-15 18:47:07 -08:00
Jeff Garzik
848c0d5d95
Merge pull request #1945 from centromere/leveldb_fix
...
Fixed compile error on FreeBSD 9.
2012-11-15 18:31:20 -08:00
Jeff Garzik
34ea321ccd
Merge pull request #1987 from jgarzik/no-pw-match
...
RPC: Forbid RPC username == RPC password
2012-11-15 18:22:50 -08:00
Jeff Garzik
824e196054
Merge pull request #2005 from Diapolo/fixes_main
...
some small fixes for main.cpp/.h
2012-11-15 18:20:35 -08:00
Jeff Garzik
a0bf93b809
Merge pull request #2012 from luke-jr/invblk_errs
...
Print error for coinbase-pays-too-much case of ConnectBlock failing
2012-11-15 18:18:55 -08:00
Jeff Garzik
fdbb537d26
Add new RPC "lockunspent", to prevent spending of selected outputs
...
and associated RPC "listlockunspent".
This is a memory-only filter, which is empty when a node restarts.
2012-11-15 21:11:30 -05:00
Jeff Garzik
7e1610d51e
RPC: Forbid RPC username == RPC password
...
Added security measure.
2012-11-15 20:33:42 -05:00
Jeff Garzik
3b9f029def
Merge pull request #2008 from sipa/scriptflags
...
Introduce script verification flags
2012-11-15 14:49:06 -08:00
Jeff Garzik
fcf234fc08
RPC: HTTP server uses its own ReadHTTPRequestLine()
...
rather than reusing ReadHTTPStatus() from the client mode.
The following additional HTTP request validations are added, both in line with
existing HTTP client practice:
1) HTTP method must be GET or POST. Most clients use POST, some
use GET. Either way, this continues to work.
2) HTTP URI must start with "/" character.
Normal URI is "/" (a 1-char string), so this is fine.
2012-11-04 17:16:46 -05:00
Jeff Garzik
2306dc4b76
RPC, cosmetic: push down ReadHTTPStatus() calls into ReadHTTP() callers
...
ReadHTTPStatus() is currently overloaded: In client mode, it properly parses
and receives an HTTP status line. In server mode, it incorrectly parses the
HTTP request line as an HTTP status line.
This server mode bug has never mattered, because the RPC server never
cared about the URI (path) provided in the HTTP request. That will change in
the future, so go ahead and begin fixing the problem.
This patch is cosmetic, and should result in NO behavior changes.
Further renames:
ReadHTTPHeader -> ReadHTTPHeaders
ReadHTTP -> ReadHTTPMessage
2012-11-04 16:06:38 -05:00
Jeff Garzik
16eec89042
Merge pull request #1949 from sipa/bugfix_maturity
...
Ultraprune bugfixes
2012-10-22 17:39:16 -07:00
Jeff Garzik
38ac953b9d
Merge pull request #1880 from sipa/threadimport
...
Move external block import to separate thread
2012-10-20 13:36:36 -07:00
Jeff Garzik
dee0ee2ac9
Merge pull request #1742 from sipa/canonical
...
Check for canonical public keys and signatures
2012-10-20 10:56:04 -07:00
Jeff Garzik
de2b9459bd
Merge pull request #1834 from jgarzik/kickblocks
...
P2P: Do not request blocks from peers with fewer blocks than us
2012-10-08 15:15:58 -07:00
Jeff Garzik
56caa38a67
Merge pull request #1833 from jgarzik/mempool-query
...
Send 'mempool' P2P command at the start of each P2P session
2012-10-08 15:12:25 -07:00
Jeff Garzik
bd2e140571
CAddrMan: verify pchMessageStart file marker, before reading address data
...
This avoids the case where you read the address data, before noticing it is
the wrong network.
2012-10-08 13:41:57 -04:00
Jeff Garzik
3e37e7eca4
Merge pull request #1871 from jgarzik/wallet-deadcode
...
walletdb.h: remove dead code
2012-09-28 17:05:16 -07:00
Jeff Garzik
189eb6a989
walletdb.h: remove dead code
2012-09-26 21:56:45 -04:00
Jeff Garzik
1381ad2b21
Merge pull request #1684 from jgarzik/bootstrap
...
Import $DataDir/bootstrap.dat automatically, if it exists.
2012-09-25 13:53:40 -07:00
Jeff Garzik
22f9b06903
Send 'mempool' P2P command at the start of each P2P session
...
to query remote node mempool contents.
2012-09-24 13:53:44 -04:00
Jeff Garzik
52c90a2b2b
Import $DataDir/bootstrap.dat automatically, if it exists.
...
As discussed on IRC. Intended to make using an external blockchain download
solution just a bit easier.
2012-09-24 13:37:03 -04:00
Jeff Garzik
93dd68e924
P2P: Do not request blocks from peers with fewer blocks than us
...
If the remote node has a shorter chain, do not waste our
special getblocks request on them.
2012-09-24 13:26:09 -04:00
Jeff Garzik
b1d3e95a0a
When rejected TX relay due to lack of fees, log full txid
2012-09-18 15:24:31 -04:00
Jeff Garzik
ea0796bde3
Trim trailing whitespace for src/*.{h,cpp}
2012-09-18 15:07:58 -04:00
Jeff Garzik
f8c449b5c8
Merge pull request #1812 from jgarzik/misc-07
...
Two minor generic cleanups done during OP_DROP hacking
2012-09-18 09:14:53 -07:00
Jeff Garzik
17f8d6e400
Improve debug logging, for mempool TXs that do not include sufficient fees
2012-09-09 17:05:26 -04:00
Jeff Garzik
76970091f1
Cosmetic: move CTransaction::GetMinFee out of header file
2012-09-09 17:01:18 -04:00
Jeff Garzik
2387944782
select(): Use precise fd presence check, rather than imprecise hSocketMax test
2012-09-05 16:01:28 -04:00
Jeff Garzik
32416e380b
Merge pull request #1791 from xanatos/patch-18
...
Correct LoadWallet() return value (false -> DB_LOAD_OK)
2012-09-05 06:32:55 -07:00
Jeff Garzik
e271c1d3d0
Merge pull request #1789 from Diapolo/fix_double_Startuptime
...
remove double logging of startup time, when !fLogTimestamps
2012-09-04 23:39:15 -07:00
Jeff Garzik
b930a2a6be
Merge pull request #1788 from Diapolo/fix_unsigned_BlockFilePath
...
fix signed/unsigned usage in BlockFilePath()
2012-09-04 23:38:37 -07:00
Jeff Garzik
42613c97d5
Add block file naming helper, BlockFilePath()
2012-09-04 21:40:26 -04:00
Jeff Garzik
dcb14198bb
init.cpp: fix build error, and possibly-uninit'd warning
2012-09-04 12:24:08 -04:00
Jeff Garzik
38e8f282d2
Merge pull request #1427 from rebroad/StartTimeFix
...
No need to log start time if it's already being done on every line.
2012-09-04 09:10:47 -07:00
Jeff Garzik
2fd6f067db
Merge pull request #1777 from laanwj/2012_09_eliminate_sprintf
...
Remove last occurrence of potentially insecure function sprintf
2012-09-04 09:00:02 -07:00
Jeff Garzik
bec02998b4
Merge pull request #1779 from xanatos/patch-15
...
Useless vector declaration
2012-09-04 08:59:05 -07:00
Jeff Garzik
8c7b6c05db
Merge pull request #1738 from laanwj/2012_08_boostthread
...
implement CreateThread with boost::thread
2012-09-04 08:53:05 -07:00
Jeff Garzik
0e1be81a4a
Merge pull request #1771 from luke-jr/bugfix_bip22_mode
...
Bugfix: getblocktemplate: Accept optional "mode" parameter not being provided
2012-09-01 12:30:13 -07:00
Jeff Garzik
c2cd13faa4
release-notes.txt: mention getmemorypool removal
2012-08-30 19:44:57 -04:00
Jeff Garzik
4445434a2d
Merge pull request #1745 from gmaxwell/irc_fixes
...
Misc IRC fixes.
2012-08-29 11:02:21 -07:00
Jeff Garzik
5f38875807
Merge pull request #1748 from sipa/bugfix_portinc
...
Bugfix: increase score, not port
2012-08-28 17:43:38 -07:00
Jeff Garzik
06707dd610
Merge pull request #1741 from freewil/release-notes-remove-i2p
...
remove I2P support mention from release notes
2012-08-28 10:43:23 -07:00
Jeff Garzik
9c63fd8e76
Merge pull request #1739 from freewil/onlynet-release-notes
...
make use of -onlynet more clear in release notes
2012-08-28 10:41:55 -07:00
Jeff Garzik
0d9556f948
Merge pull request #1733 from Diapolo/Qt_changelog
...
add Qt GUI part to release-notes.txt
2012-08-27 14:54:23 -07:00
Jeff Garzik
f29eaee30a
Update release notes
2012-08-27 15:06:40 -04:00
Jeff Garzik
cf78183fad
Merge pull request #1707 from xanatos/patch-7
...
Removed useless assignment
2012-08-23 06:41:02 -07:00
Jeff Garzik
1954d40691
Merge pull request #1493 from jgarzik/unlocked-rpc
...
RPC: add facility to enable RPCs to run outside cs_main, wallet locks
2012-08-21 09:22:13 -07:00
Jeff Garzik
0e1d3551da
RPC: add facility to enable RPCs to run outside cs_main, wallet locks
...
Use with 'stop' and 'help' RPCs.
This provides a facility to individually evaluate the locking for an RPC, and
potentially make it more parallel.
2012-08-21 12:03:52 -04:00
Jeff Garzik
5f2b41d54d
Merge pull request #1693 from jgarzik/rpcwallet
...
Move code to new modules rpcwallet.cpp, rpcblockchain.cpp
2012-08-21 08:44:21 -07:00
Jeff Garzik
c625ae04d2
RPC, cosmetic: move more RPC code to new rpcblockchain.cpp module
2012-08-21 11:03:38 -04:00
Jeff Garzik
e3bc569865
RPC, cosmetic: move wallet-related RPCs to new rpcwallet.cpp module
2012-08-21 10:38:57 -04:00
Jeff Garzik
a483c27704
Merge pull request #1691 from jgarzik/submitwork
...
Add 'submitblock' RPC, split out from 'getblocktemplate' RPC
2012-08-20 23:49:45 -07:00
Jeff Garzik
a2168d94c0
RPC: submitblock returns null on success, string on error
2012-08-21 02:41:46 -04:00
Jeff Garzik
7600e7fc39
RPC, cosmetic: Create rpcmining.cpp as new home for mining-related RPC code
2012-08-21 02:21:33 -04:00
Jeff Garzik
ddd1ffb4f1
RPC, cosmetic: de-indent getblocktemplate()
2012-08-21 02:06:09 -04:00
Jeff Garzik
79f2525ab6
RPC: split new 'submitblock' out of 'getblocktemplate'
2012-08-21 02:02:06 -04:00
Jeff Garzik
af3b5ea569
Merge pull request #1526 from gavinandresen/heightincoinbase
...
Transition to requiring block height in block coinbases
2012-08-20 12:57:01 -07:00
Jeff Garzik
b3a570d158
Merge pull request #1641 from jgarzik/mempool
...
Add 'mempool' P2P command, and extend 'getdata' behavior
2012-08-20 07:21:34 -07:00
Jeff Garzik
89a7bd644f
Merge pull request #1686 from Diapolo/fix_comment
...
fix a comment in addrman.cpp
2012-08-18 09:15:11 -07:00
Jeff Garzik
dabb95b892
Merge pull request #1678 from Diapolo/LoadExternalBlockFile_add_timer
...
log how long LoadExternalBlockFile() takes in ms (Benchmark)
2012-08-17 08:45:11 -07:00
Jeff Garzik
2c006b0b3e
Merge pull request #1658 from TheBlueMatt/qttest
...
Fix several issues in the Qt unit tests.
2012-08-07 17:59:06 -07:00
Jeff Garzik
dd199d0ebd
Merge pull request #1650 from Diapolo/spelling_fixes
...
fix further spelling errors / remove a tab in the source
2012-08-02 14:36:45 -07:00
Jeff Garzik
f81e6f779b
Merge pull request #1632 from luke-jr/spelling
...
Fix spelling and grammar errors
2012-08-01 10:56:47 -07:00
Jeff Garzik
ffe47d6d5d
Merge pull request #1636 from Diapolo/Warning_string
...
Update Warning-strings to use a standard-format
2012-08-01 10:56:17 -07:00
Jeff Garzik
0f460644e3
Add doc/release-notes.txt, temporary for 0.7 release
2012-08-01 13:54:15 -04:00
Jeff Garzik
06e0e1c853
Merge pull request #1465 from Diapolo/NOUI_showSSLVersion
...
write used OpenSSL library version to debug.log
2012-08-01 10:08:45 -07:00
Jeff Garzik
b5029b87c8
Merge pull request #1396 from rebroad/NoShrinkOption
...
Make truncating the debug.log file an option.
2012-08-01 09:41:50 -07:00
Jeff Garzik
a823faecf1
Merge pull request #1344 from rebroad/AskForTimeFormat
...
Unless debugging, show a more useful format for the askfors
2012-08-01 09:08:00 -07:00
Jeff Garzik
0ecbd46fe7
Merge pull request #1343 from rebroad/MisbehavingDelta
...
Show when node is misbehaving, not just at the point that it gets banned...
2012-08-01 09:06:57 -07:00
Jeff Garzik
05a85b2b38
Add 'mempool' P2P command, and extend 'getdata' behavior
...
to permit downloading of mempool transactions from the remote peer.
2012-07-31 17:42:35 -04:00
Jeff Garzik
fa914f1dda
Merge pull request #1616 from Diapolo/OpenSSL_typo
...
fix OpenSSL not written as proper noun in some comments
2012-07-21 06:59:25 -07:00
Jeff Garzik
e3132693fa
Merge pull request #1610 from fanquake/master
...
Update a link to dev resources
2012-07-18 09:45:06 -07:00
Jeff Garzik
4b76541c25
Merge pull request #1609 from fanquake/master
...
Docs tidy up + fixes
2012-07-18 07:24:49 -07:00
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