Commit graph

1561 commits

Author SHA1 Message Date
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
Matt Corallo
467b79391f Fix signed/unsigned warnings in {script,serialize}.h (fixes #1541) 2012-07-02 16:29:14 +02:00
Jeff Garzik
da1103f4f8 Merge pull request #1545 from TheBlueMatt/diffsendbuffer
Minor send buffer changes
2012-07-01 18:17:34 -07:00
Gregory Maxwell
19521acfa4 Do not consider inbound peers for outbound network group exclusion.
Bitcoin will not make an outbound connection to a network group
(/16 for IPv4) that it is already connected to. This means that
if an attacker wants good odds of capturing all a nodes outbound
connections he must have hosts on a a large number of distinct
groups.

Previously both inbound and outbound connections were used to
feed this exclusion. The use of inbound connections, which can be
controlled by the attacker, actually has the potential of making
sibyl attacks _easier_: An attacker can start up hosts in groups
which house many honest nodes and make outbound connections to
the victim to exclude big swaths of honest nodes. Because the
attacker chooses to make the outbound connection he can always
beat out honest nodes for the consumption of inbound slots.

At _best_ the old behavior increases attacker costs by a single
group (e.g. one distinct group to use to fill up all your inbound
slots), but at worst it allows the attacker to select whole
networks you won't connect to.

This commit makes the nodes use only outbound links to exclude
network groups for outbound connections. Fancier things could
be done, like weaker exclusion for inbound groups... but
simplicity is good and I don't believe more complexity is
currently needed.
2012-07-01 20:42:47 -04:00
Jeff Garzik
18e8e43715 RPC getpeerinfo: s/height/startingheight/ for returned nStartingHeight value 2012-06-30 23:40:26 -04:00
Matt Corallo
6d6c2afb2b Change default send buffer to 1Mb. 2012-07-01 04:17:26 +02:00
Matt Corallo
3c3cb60a90 Remove useless high-volume printf (fixes #1544). 2012-07-01 04:13:00 +02:00
Jeff Garzik
eca96d7118 Merge pull request #1540 from fanquake/master
Fix a Couple Typos
2012-06-30 07:25:32 -07:00
fanquake
7790f391ab Fix a couple more typos 2012-06-30 17:05:28 +08:00
cardpuncher
eb9a21afed Fix a typo in TransactionDesc 2012-06-30 11:31:09 +03:00
Gavin Andresen
3a906d45dc Merge pull request #1531 from jgarzik/peerinfo
RPC: add 'getpeerinfo', returning easy-to-retrieve per-CNode data
2012-06-29 17:34:02 -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
Philip Kaufmann
0f5d4c6e88 fix a typo in OptionsDialog 2012-06-30 01:16:22 +02:00
Jeff Garzik
1006f0707e RPC: add 'getpeerinfo', returning easy-to-retrieve per-CNode data 2012-06-29 17:24:53 -04:00
fanquake
e749405297 Fix a few typos 2012-06-29 17:26:45 +08:00
Jeff Garzik
70ab73a008 Create new rpcnet module, and move 'getconnectioncount' RPC to it 2012-06-28 23:18:38 -04:00
Gavin Andresen
5fa83965f2 Merge branch 'patch-5' of https://github.com/xanatos/bitcoin 2012-06-28 15:25:48 -04:00
Gavin Andresen
1b71f82e38 Merge branch 'patch-3' of https://github.com/xanatos/bitcoin 2012-06-28 15:24:35 -04:00
Matt Corallo
460d878613 Fix build error. 2012-06-28 19:31:22 +02:00
Matt Corallo
4e97a9d9eb Lock vnThreadsRunning[THREAD_RPCHANDLER]. 2012-06-28 18:34:11 +02:00
Matt Corallo
7cf3d2ccb9 Use a rpc-specific queue to tell asio connections to shutdown. 2012-06-28 18:32:32 +02:00
Matt Corallo
18c4beb05b Revert "*Always* send a shutdown signal to enable custom shutdown actions"
This reverts commit 896899e0d6.
2012-06-28 15:52:45 +02:00
Jeff Garzik
e75acc006e Merge pull request #1511 from jgarzik/quieten2
Quieten 'getdata' P2P message output
2012-06-27 09:06:59 -07:00
Pieter Wuille
abbb9a829c Merge pull request #1347 from rebroad/FixAlreadyAskedFor
mapAlreadyAskedFor gets additions when AlreadyHave()
2012-06-27 08:06:57 -07:00
Pieter Wuille
6c88568fef Merge pull request #973 from TheBlueMatt/diffsendbuffer
Stop processing messages on full send buffer and dont disconnect.
2012-06-27 07:49:28 -07:00
Pieter Wuille
4a52c187d3 Merge pull request #457 from muggenhor/async-ipv6-rpc
IPv6 RPC using asynchronously accepted connections
2012-06-27 07:48:38 -07:00
Matt Corallo
9d6cd04b3b Stop processing messages on full send buffer and dont disconnect.
Also decrease default send/receive buffer sizes from 10 to 5 mb
as this patch makes it easy for a node to fill both instead of
only send.
2012-06-27 15:31:34 +02:00
Philip Kaufmann
2943f60811 GUI: change language selection format
- display as "language - country (locale name)", when locale name consists of 2 parts
- display as "language (locale name)", when locale name consists of 1 part
2012-06-26 16:14:25 +02:00
Wladimir J. van der Laan
2849d0661d Merge pull request #1501 from fanquake/master
QT to Qt
2012-06-25 06:49:59 -07:00
Gavin Andresen
1282c8653e Checkpoint at block 185333 (and remove a couple of intermediate checkpoints) 2012-06-25 09:26:14 -04:00
Michael Ford
160eb23b0e Add Bitcoin dev Copyright 2012-06-25 12:28:29 +08:00
Michael Ford
e4ebe82ee2 Update comments 2012-06-25 12:26:52 +08:00
Philip Kaufmann
a8c20ea946 fix a comment to correctly use -upgradewallet 2012-06-24 18:08:27 +02:00
Jeff Garzik
d887f54494 Document -debugnet option in command line help.
Fixes #1507
2012-06-24 10:38:02 -04:00
Giel van Schijndel
5b14622110 On Windows link with mswsock, it being required (indirectly) by RPC code
Signed-off-by: Giel van Schijndel <me@mortis.eu>
2012-06-24 15:12:26 +02:00
Giel van Schijndel
ad25804feb Cancel outstanding listen ops for RPC when shutting down
Use Boost's signal2 slot tracking mechanism to cancel any (still open)
listening sockets when receiving a shutdown signal.

Signed-off-by: Giel van Schijndel <me@mortis.eu>
2012-06-24 15:12:15 +02:00
Giel van Schijndel
415a87ef36 Merge branch 'master' into async-ipv6-rpc 2012-06-24 12:34:15 +02:00
Gregory Maxwell
817ee0d826 Merge pull request #1174 from sipa/torhs
Tor hidden service support
2012-06-23 19:21:13 -07:00
Gregory Maxwell
0ae2ac5431 Merge pull request #1503 from gmaxwell/testnet_tweaks
Remove some rule differences which aren't needed with testnet3.
2012-06-23 19:02:55 -07: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
xanatos
3948eb0c54 Changed a comment about a QVariant type 2012-06-23 17:29:34 +03:00
Pieter Wuille
863e995b79 Debug version messages 2012-06-23 01:11:38 +02:00
Pieter Wuille
54ce3bad64 Add -tor and related configuration 2012-06-23 01:11:38 +02:00
Pieter Wuille
d077dd2a6e Rewrite CNetAddr::GetReachabilityFrom()
Add support for Tor/I2P networks, and make code more readable.
2012-06-23 01:11:38 +02:00
Pieter Wuille
70f7f00385 Node support for Tor hidden services
This commit adds support for .onion addresses (mapped into the IPv6
by using OnionCat's range and encoding), and the ability to connect
to them via a SOCKS5 proxy.
2012-06-23 01:11:32 +02: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