aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Todd <pete@petertodd.org>2015-11-24 10:27:38 -0500
committerPeter Todd <pete@petertodd.org>2015-11-26 05:14:31 -0500
commitcde857f2d977fbe3f96c093f6ca3c9810494191d (patch)
tree39ba7a01ccf66a0748f287facbd69596c64bcf39
parent0b0fc179ab8795463e0a0f07e989ec6f592a1f90 (diff)
downloadbitcoin-cde857f2d977fbe3f96c093f6ca3c9810494191d.tar.xz
Connect to Tor hidden services by default
Adds 127.0.0.1:9050 for the .onion proxy if we can succesfully connect to the control port. Natural followup to creating hidden services automatically.
-rw-r--r--doc/release-notes.md9
-rw-r--r--src/torcontrol.cpp9
2 files changed, 14 insertions, 4 deletions
diff --git a/doc/release-notes.md b/doc/release-notes.md
index 7db27f9fac..009baaed51 100644
--- a/doc/release-notes.md
+++ b/doc/release-notes.md
@@ -151,8 +151,8 @@ mining with the getblocktemplate protocol to a pool: this will affect you at
the pool operator's discretion, which must be no later than BIP65 achieving its
951/1001 status.
-Automatically listen on Tor
-----------------------------
+Automatically use Tor hidden services
+-------------------------------------
Starting with Tor version 0.2.7.1 it is possible, through Tor's control socket
API, to create and destroy 'ephemeral' hidden services programmatically.
@@ -160,8 +160,9 @@ Bitcoin Core has been updated to make use of this.
This means that if Tor is running (and proper authorization is available),
Bitcoin Core automatically creates a hidden service to listen on, without
-manual configuration. This will positively affect the number of available
-.onion nodes.
+manual configuration. Bitcoin Core will also use Tor automatically to connect
+to other .onion nodes if the control socket can be successfully opened. This
+will positively affect the number of available .onion nodes and their usage.
This new feature is enabled by default if Bitcoin Core is listening, and
a connection to Tor can be made. It can be configured with the `-listenonion`,
diff --git a/src/torcontrol.cpp b/src/torcontrol.cpp
index 08644f2968..31a2917203 100644
--- a/src/torcontrol.cpp
+++ b/src/torcontrol.cpp
@@ -449,6 +449,15 @@ void TorController::auth_cb(TorControlConnection& conn, const TorControlReply& r
{
if (reply.code == 250) {
LogPrint("tor", "tor: Authentication succesful\n");
+
+ // Now that we know Tor is running setup the proxy for onion addresses
+ // if -onion isn't set to something else.
+ if (GetArg("-onion", "") == "") {
+ proxyType addrOnion = proxyType(CService("127.0.0.1", 9050), true);
+ SetProxy(NET_TOR, addrOnion);
+ SetReachable(NET_TOR);
+ }
+
// Finally - now create the service
if (private_key.empty()) // No private key, generate one
private_key = "NEW:BEST";