diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/Tor.txt | 96 | ||||
-rw-r--r-- | doc/build-msw.txt | 2 | ||||
-rw-r--r-- | doc/build-osx.txt | 20 | ||||
-rw-r--r-- | doc/build-unix.txt | 4 | ||||
-rw-r--r-- | doc/unit-tests.txt | 33 |
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. |