Browse Source

Merge pull request #7090

cde857f Connect to Tor hidden services by default (Peter Todd)
0.13
Wladimir J. van der Laan 9 years ago
parent
commit
d6454f6cb2
No known key found for this signature in database
GPG Key ID: 74810B012346C9A6
  1. 9
      doc/release-notes.md
  2. 9
      src/torcontrol.cpp

9
doc/release-notes.md

@ -151,8 +151,8 @@ mining with the getblocktemplate protocol to a pool: this will affect you at @@ -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. @@ -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`,

9
src/torcontrol.cpp

@ -449,6 +449,15 @@ void TorController::auth_cb(TorControlConnection& conn, const TorControlReply& r @@ -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";

Loading…
Cancel
Save