aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/Tor.txt96
-rw-r--r--doc/build-msw.txt2
-rw-r--r--doc/build-osx.txt20
-rw-r--r--doc/build-unix.txt4
-rw-r--r--doc/unit-tests.txt33
5 files changed, 142 insertions, 13 deletions
diff --git a/doc/Tor.txt b/doc/Tor.txt
new file mode 100644
index 0000000000..f44b016f22
--- /dev/null
+++ b/doc/Tor.txt
@@ -0,0 +1,96 @@
+TOR SUPPORT IN BITCOIN
+======================
+
+It is possible to run Bitcoin as a Tor hidden service, and connect to such services.
+
+The following assumes you have a Tor proxy running on port 9050. Many distributions
+default to having a SOCKS proxy listening on port 9050, but others may not.
+In particular, the Tor Browser Bundle defaults to listening on a random port. See
+https://www.torproject.org/docs/faq.html.en#TBBSocksPort for how to properly
+configure Tor.
+
+
+1. Run bitcoin behind a Tor proxy
+---------------------------------
+
+The first step is running Bitcoin behind a Tor proxy. This will already make all
+outgoing connections be anonimized, but more is possible.
+
+-socks=5 SOCKS5 supports connecting-to-hostname, which can be used instead
+ of doing a (leaking) local DNS lookup. SOCKS5 is the default,
+ but SOCKS4 does not support this. (SOCKS4a does, but isn't
+ implemented).
+
+-proxy=ip:port Set the proxy server. If SOCKS5 is selected (default), this proxy
+ server will be used to try to reach .onion addresses as well.
+
+-tor=ip:port Set the proxy server to use for tor hidden services. You do not
+ need to set this if it's the same as -proxy. You can use -notor
+ to explicitly disable access to hidden service.
+
+-dnsseed DNS seeds are not resolved directly when a SOCKS5 proxy server is
+ set. Rather, a short-lived proxy connection to the dns seed
+ hostname is attempted, and peer addresses are requested.
+
+-listen When using -proxy, listening is disabled by default. If you want
+ to run a hidden service (see next section), you'll need to enable
+ it explicitly.
+
+-connect=X When behing a Tor proxy, you can specify .onion addresses instead
+-addnode=X of IP addresses or hostnames in these parameters. It requires
+-seednode=X SOCKS5. In Tor mode, such addresses can also be exchanged with
+ other P2P nodes.
+
+In a typical situation, this suffices to run behind a Tor proxy:
+
+ ./bitcoin -proxy=127.0.0.1:9050
+
+
+2. Run a bitcoin hidden server
+------------------------------
+
+If you configure your Tor system accordingly, it is possible to make your node also
+reachable from the Tor network. Add these lines to your /etc/tor/torrc (or equivalent
+config file):
+
+ HiddenServiceDir /var/lib/tor/bitcoin-service/
+ HiddenServicePort 8333 127.0.0.1:8333
+
+The directory can be different of course, but (both) 8333's should be equal to your
+bitcoind's P2P listen port (8333 by default).
+
+-externalip=X You can tell bitcoin about its publically reachable address using
+ this option, and this can be a .onion address. Given the above
+ configuration, you can find your onion address in
+ /var/lib/tor/bitcoin-service/hostname. Onion addresses are given
+ preference for your node to advertize itself with, for connections
+ coming from unroutable addresses (such as 127.0.0.1, where the
+ Tor proxy typically runs).
+
+-listen You'll need to enable listening for incoming connections, as this
+ is off by default behind a proxy.
+
+-discover When -externalip is specified, no attempt is made to discover local
+ IPv4 or IPv6 addresses. If you want to run a dual stack, reachable
+ from both Tor and IPv4 (or IPv6), you'll need to either pass your
+ other addresses using -externalip, or explicitly enable -discover.
+ Note that both addresses of a dual-stack system may be easily
+ linkable using traffic analysis.
+
+In a typical situation, where you're only reachable via Tor, this should suffice:
+
+ ./bitcoind -proxy=127.0.0.1:9050 -externalip=57qr3yd1nyntf5k.onion -listen
+
+(obviously replace the Onion address with your own). If you don't care too much
+about hiding your node, and want to be reachable on IPv4 as well, additionally
+specify:
+
+ ./bitcoind ... -discover
+
+and open port 8333 on your firewall (or use -upnp).
+
+If you only want to use Tor to reach onion addresses, but not use it as a proxy
+for normal IPv4/IPv6 communication, use:
+
+ ./bitcoin -tor=127.0.0.1:9050 -externalip=57qr3yd1nyntf5k.onion -discover
+
diff --git a/doc/build-msw.txt b/doc/build-msw.txt
index 73ea81275f..ad23e68675 100644
--- a/doc/build-msw.txt
+++ b/doc/build-msw.txt
@@ -7,7 +7,7 @@ cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP
software written by Thomas Bernard.
-See readme-qt.rst for instructions on building Bitcoin QT, the
+See readme-qt.rst for instructions on building Bitcoin-Qt, the
graphical user interface.
WINDOWS BUILD NOTES
diff --git a/doc/build-osx.txt b/doc/build-osx.txt
index 256614f7ab..24e825ca8c 100644
--- a/doc/build-osx.txt
+++ b/doc/build-osx.txt
@@ -1,10 +1,10 @@
Copyright (c) 2009-2012 Bitcoin Developers
-Distributed under the MIT/X11 software license, see the accompanying file
-license.txt or http://www.opensource.org/licenses/mit-license.php. This
-product includes software developed by the OpenSSL Project for use in the
-OpenSSL Toolkit (http://www.openssl.org/). This product includes cryptographic
-software written by Eric Young (eay@cryptsoft.com) and UPnP software written by
-Thomas Bernard.
+Distributed under the MIT/X11 software license, see the accompanying
+file license.txt or http://www.opensource.org/licenses/mit-license.php.
+This product includes software developed by the OpenSSL Project for use in
+the OpenSSL Toolkit (http://www.openssl.org/). This product includes
+cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP
+software written by Thomas Bernard.
Mac OS X bitcoind build instructions
@@ -12,17 +12,17 @@ Laszlo Hanyecz <solar@heliacal.net>
Douglas Huff <dhuff@jrbobdobbs.org>
-See readme-qt.rst for instructions on building Bitcoin QT, the
+See readme-qt.rst for instructions on building Bitcoin-Qt, the
graphical user interface.
-Tested on 10.5 and 10.6 intel. PPC is not supported because it's big-endian.
+Tested on 10.5, 10.6 and 10.7 intel. PPC is not supported because it's big-endian.
All of the commands should be executed in Terminal.app.. it's in
/Applications/Utilities
You need to install XCode with all the options checked so that the compiler and
-everything is available in /usr not just /Developer I think it comes on the DVD
-but you can get the current version from http://developer.apple.com
+everything is available in /usr not just /Developer. XCode should be available on your OS X
+install DVD, but if not, you can get the current version from https://developer.apple.com/xcode/
1. Clone the github tree to get the source code:
diff --git a/doc/build-unix.txt b/doc/build-unix.txt
index 9033301ab0..825491bba3 100644
--- a/doc/build-unix.txt
+++ b/doc/build-unix.txt
@@ -16,8 +16,8 @@ To Build
cd src/
make -f makefile.unix # Headless bitcoin
-See readme-qt.rst for instructions on building Bitcoin QT,
-the graphical bitcoin.
+See readme-qt.rst for instructions on building Bitcoin-Qt,
+the graphical user interface.
Dependencies
------------
diff --git a/doc/unit-tests.txt b/doc/unit-tests.txt
new file mode 100644
index 0000000000..e7f215188e
--- /dev/null
+++ b/doc/unit-tests.txt
@@ -0,0 +1,33 @@
+Compiling/runing bitcoind unit tests
+------------------------------------
+
+bitcoind unit tests are in the src/test/ directory; they
+use the Boost::Test unit-testing framework.
+
+To compile and run the tests:
+cd src
+make -f makefile.unix test_bitcoin # Replace makefile.unix if you're not on unix
+./test_bitcoin # Runs the unit tests
+
+If all tests succeed the last line of output will be:
+*** No errors detected
+
+To add more tests, add BOOST_AUTO_TEST_CASE's to the existing
+.cpp files in the test/ directory or add new .cpp files that
+implement new BOOST_AUTO_TEST_SUITE's (the makefiles are
+set up to add test/*.cpp to test_bitcoin automatically).
+
+
+Compiling/running Bitcoin-Qt unit tests
+---------------------------------------
+
+Bitcoin-Qt unit tests are in the src/qt/test/ directory; they
+use the Qt unit-testing framework.
+
+To compile and run the tests:
+qmake bitcoin-qt.pro BITCOIN_QT_TEST=1
+make
+./bitcoin-qt_test
+
+To add more tests, add them to the src/qt/test/ directory,
+the src/qt/test/test_main.cpp file, and bitcoin-qt.pro.