diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/README_osx.txt | 8 | ||||
-rw-r--r-- | doc/bootstrap.md | 26 | ||||
-rw-r--r-- | doc/build-osx.md | 25 | ||||
-rw-r--r-- | doc/build-unix.md | 43 | ||||
-rw-r--r-- | doc/coding.md | 14 | ||||
-rw-r--r-- | doc/img/bootstrap3.png | bin | 56598 -> 0 bytes | |||
-rw-r--r-- | doc/release-notes.md | 11 |
7 files changed, 63 insertions, 64 deletions
diff --git a/doc/README_osx.txt b/doc/README_osx.txt index 2be56c1592..8831649bd8 100644 --- a/doc/README_osx.txt +++ b/doc/README_osx.txt @@ -20,14 +20,6 @@ https://github.com/mingwandroid/toolchain4 In order to build a working toolchain, the following source packages are needed from Apple: cctools, dyld, and ld64. -Beware. This part is ugly. Very very very ugly. In the future, this should be -broken out into a new repository and cleaned up. Additionally, the binaries -only work when built as x86 and not x86_64. This is an especially nasty -limitation because it must be linked with the toolchain's libLTO.so, meaning -that the entire toolchain must be x86. Gitian x86_64 should not be used until -this has been fixed, because it would mean that several native dependencies -(openssl, libuuid, etc) would need to be built as x86 first. - These tools inject timestamps by default, which produce non-deterministic binaries. The ZERO_AR_DATE environment variable is used to disable that. diff --git a/doc/bootstrap.md b/doc/bootstrap.md index 7ce71abaad..b84fd24b11 100644 --- a/doc/bootstrap.md +++ b/doc/bootstrap.md @@ -1,41 +1,31 @@ ### Bootstrap the Blockchain Synchronization -Normally the Bitcoin client will download the transaction and network information, called the blockchain, from the network by syncing with the other clients. This can be a process that can take multiple days as the [Bitcoin block chain](https://blockchain.info/charts/blocks-size) has grown to more than 15 gigabytes, and is growing almost a gigabyte every month. Luckily there is a safe and fast way to speed up this process. We’ll show you how to bootstrap your blockchain to bring your client up to speed in just a few simple steps. +Normally the Bitcoin client will download the transaction and network information, called the blockchain, from the network by syncing with the other clients. This process can take quite some time as the [Bitcoin blockchain](https://blockchain.info/charts/blocks-size) is growing bigger and bigger for each day. Luckily there is a safe and fast way to speed up this process. We'll show you how to bootstrap your blockchain to bring your client up to speed in just a few simple steps. ### Requirements - A fresh install of the Bitcoin client software. -### Download the blockchain via Bittorent +### Download the blockchain via BitTorrent -Jeff Garzik, Bitcoin core developer, offers an [torrent file](https://bitcointalk.org/index.php?topic=145386.0) for bootstrapping purposes that is updated often. Bittorrent is a protocol that speeds up the downloading of large files by using the other clients in the network. Examples of free and safe open-source clients are [Deluge](http://deluge-torrent.org/) or [QBittorent](http://www.qbittorrent.org/). A guide to installing and configuring the torrent clients can be found [here](http://dev.deluge-torrent.org/wiki/UserGuide) for Deluge and [here](http://qbforums.shiki.hu/) for QBittorent. A further in-depth tutorial on Bittorent can be found [here](http://www.howtogeek.com/howto/31846/bittorrent-for-beginners-how-get-started-downloading-torrents/). +Jeff Garzik, Bitcoin Core developer, offers an [torrent file](https://bitcointalk.org/index.php?topic=145386.0) for bootstrapping purposes that is updated often. BitTorrent is a protocol that speeds up the downloading of large files by using the other clients in the network. Examples of free and safe open source clients are [Deluge](http://deluge-torrent.org/) or [qBittorrent](http://www.qbittorrent.org/). A guide to installing and configuring the torrent clients can be found [here](http://dev.deluge-torrent.org/wiki/UserGuide) for Deluge and [here](http://qbforums.shiki.hu/) for qBittorrent. A further in-depth tutorial on BitTorrent can be found [here](http://www.howtogeek.com/howto/31846/bittorrent-for-beginners-how-get-started-downloading-torrents/). -With the client installed we’ll proceed to download the blockchain torrent file. Use the following magnet link: +With the client installed we'll proceed to download the blockchain torrent file. Use the following magnet link: magnet:?xt=urn:btih:2d4e6c1f96c5d5fb260dff92aea4e600227f1aea&dn=bootstrap.dat&tr=udp://tracker.openbittorrent.com:80&tr=udp://tracker.publicbt.com:80&tr=udp://tracker.ccc.de:80&tr=udp://tracker.istole.it:80 - or go to [Jeff Garzik's topic](https://bitcointalk.org/index.php?topic=145386.0) for a signed magnet link. Alternately you can use the [.torrent file](http://sourceforge.net/projects/bitcoin/files/Bitcoin/blockchain/bootstrap.dat.torrent/download) found on Sourceforge. + or go to [Jeff Garzik's topic](https://bitcointalk.org/index.php?topic=145386.0) for a signed magnet link. Alternatively you can use the [.torrent file](http://sourceforge.net/projects/bitcoin/files/Bitcoin/blockchain/bootstrap.dat.torrent/download) found on SourceForge. ![Fig1](img/bootstrap1.png) The download page should look like this, with a countdown to the download. If it does not work click the direct download link. -The torrent client installed will recognize the download of the torrent file. Save the bootstrap.dat file to a folder you use for downloads. The image below shows the torrent download in QBittorent, with current speed and ETA highlighted. +The torrent client installed will recognize the download of the torrent file. Save the bootstrap.dat file to the folder you use for downloads. The image below shows the torrent download in qBittorrent, with current speed and ETA highlighted. ![Fig2](img/bootstrap2.png) -### Download the block chain directly from official repositories -The Bittorent version, see above, of the block chain download is refreshed more often than the direct download available. If Bittorent is blocked on your network then you can use the direct download method. Be sure to only use official repositories as the link displayed below. This download will only update the client to March 2013. - -Click [here](http://sourceforge.net/projects/bitcoin/files/Bitcoin/blockchain/bitcoin_blockchain_170000.zip/download) to download or copy and paste the link below. - - http://sourceforge.net/projects/bitcoin/files/Bitcoin/blockchain/bitcoin_blockchain_170000.zip/download - -The download page should look like this, with a countdown to the download. If it does not work directly click the download. Save the file to a folder you use for downloads. -![Fig3](img/bootstrap3.png) - ### Importing the blockchain -Exit the Bitcoin Client software if you have it running. Be sure not to have an actively used wallet in use. We are going to copy the download of the blockchain to the Bitcoin client data directory. You should run the client software at least once so it can generate the data directory. Copy the downloaded bootstrap.dat file into the Bitcoin data folder. +Exit the Bitcoin client software if you have it running. Be sure not to have an actively used wallet in use. We are going to copy the download of the blockchain to the Bitcoin client data directory. You should run the client software at least once so it can generate the data directory. Copy the downloaded bootstrap.dat file into the Bitcoin data folder. **For Windows users:** Open explorer, and type into the address bar: @@ -63,4 +53,4 @@ Wait until the import finishes. The client will download the last days not cover ### Is this safe? -Yes, the above method is safe. The download contains only raw block chain data and the client verifies this on import. Do not download the blockchain from unofficial sources, especially if they provide `*.rev` and `*.sst` files. These files are not verified and can contain malicious edits. +Yes, the above method is safe. The download contains only raw blockchain data and the client verifies this on import. Do not download the blockchain from unofficial sources, especially if they provide `*.rev` and `*.sst` files. These files are not verified and can contain malicious edits. diff --git a/doc/build-osx.md b/doc/build-osx.md index dc55f8259e..491c5c4683 100644 --- a/doc/build-osx.md +++ b/doc/build-osx.md @@ -5,8 +5,7 @@ This guide will show you how to build bitcoind(headless client) for OSX. Notes ----- -* Tested on OS X 10.6 through 10.9 on 64-bit Intel processors only. -Older OSX releases or 32-bit processors are no longer supported. +* Tested on OS X 10.7 through 10.10 on 64-bit Intel processors only. * All of the commands should be executed in a Terminal application. The built-in one is located in `/Applications/Utilities`. @@ -39,7 +38,7 @@ Instructions: Homebrew #### Install dependencies using Homebrew - brew install autoconf automake libtool boost miniupnpc openssl pkg-config protobuf qt + brew install autoconf automake libtool boost miniupnpc openssl pkg-config protobuf qt gmp #### Installing berkeley-db4 using Homebrew @@ -85,6 +84,22 @@ After exiting, you'll get a warning that the install is keg-only, which means it make install +Use Qt Creator as IDE +------------------------ +You can use Qt Creator as IDE, for debugging and for manipulating forms, etc. +Download Qt Creator from http://www.qt.io/download/. Download the "community edition" and only install Qt Creator (uncheck the rest during the installation process). + +1. Make sure you installed everything through homebrew mentioned above +2. Do a proper ./configure --with-gui=qt5 --enable-debug +3. In Qt Creator do "New Project" -> Import Project -> Import Existing Project +4. Enter "bitcoin-qt" as project name, enter src/qt as location +5. Leave the file selection as it is +6. Confirm the "summary page" +7. In the "Projects" tab select "Manage Kits..." +8. Select the default "Desktop" kit and select "Clang (x86 64bit in /usr/bin)" as compiler +9. Select LLDB as debugger (you might need to set the path to your installtion) +10. Start debugging with Qt Creator + Creating a release build ------------------------ You can ignore this section if you are building `bitcoind` for your own use. @@ -96,9 +111,9 @@ as follows for maximum compatibility: All dependencies should be compiled with these flags: - -mmacosx-version-min=10.6 + -mmacosx-version-min=10.7 -arch x86_64 - -isysroot $(xcode-select --print-path)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.6.sdk + -isysroot $(xcode-select --print-path)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk Once dependencies are compiled, see release-process.md for how the Bitcoin-Qt.app bundle is packaged and signed to create the .dmg disk image that is distributed. diff --git a/doc/build-unix.md b/doc/build-unix.md index fb5eaec431..e03dc8181a 100644 --- a/doc/build-unix.md +++ b/doc/build-unix.md @@ -27,31 +27,25 @@ This will build bitcoin-qt as well if the dependencies are met. Dependencies --------------------- +These dependencies are required: + Library | Purpose | Description ------------|------------------|---------------------- libssl | SSL Support | Secure communications - libdb4.8 | Berkeley DB | Wallet storage libboost | Boost | C++ Library - miniupnpc | UPnP Support | Optional firewall-jumping support - qt | GUI | GUI toolkit - protobuf | Payments in GUI | Data interchange format used for payment protocol - libqrencode | QR codes in GUI | Optional for generating QR codes - -[miniupnpc](http://miniupnp.free.fr/) may be used for UPnP port mapping. It can be downloaded from [here]( -http://miniupnp.tuxfamily.org/files/). UPnP support is compiled in and -turned off by default. See the configure options for upnp behavior desired: + libgmp | secp256k1 | Arbitrary-precision arithmetic (version >= 3.1) - --without-miniupnpc No UPnP support miniupnp not required - --disable-upnp-default (the default) UPnP support turned off by default at runtime - --enable-upnp-default UPnP support turned on by default at runtime +Optional dependencies: -Licenses of statically linked libraries: - Berkeley DB New BSD license with additional requirement that linked - software must be free open source - Boost MIT-like license - miniupnpc New (3-clause) BSD license + Library | Purpose | Description + ------------|------------------|---------------------- + miniupnpc | UPnP Support | Firewall-jumping support + libdb4.8 | Berkeley DB | Wallet storage (only needed when wallet enabled) + qt | GUI | GUI toolkit (only needed when GUI enabled) + protobuf | Payments in GUI | Data interchange format used for payment protocol (only needed when GUI enabled) + libqrencode | QR codes in GUI | Optional for generating QR codes (only needed when GUI enabled) -- For the versions used in the release, see doc/release-process.md under *Fetch and build inputs*. +For the versions used in the release, see [release-process.md](release-process.md) under *Fetch and build inputs*. System requirements -------------------- @@ -64,7 +58,7 @@ Dependency Build Instructions: Ubuntu & Debian ---------------------------------------------- Build requirements: - sudo apt-get install build-essential libtool autotools-dev autoconf pkg-config libssl-dev + sudo apt-get install build-essential libtool autotools-dev autoconf pkg-config libssl-dev libgmp-dev for Ubuntu 12.04 and later or Debian 7 and later libboost-all-dev has to be installed: @@ -129,6 +123,17 @@ symbols, which reduces the executable size by about 90%. miniupnpc --------- + +[miniupnpc](http://miniupnp.free.fr/) may be used for UPnP port mapping. It can be downloaded from [here]( +http://miniupnp.tuxfamily.org/files/). UPnP support is compiled in and +turned off by default. See the configure options for upnp behavior desired: + + --without-miniupnpc No UPnP support miniupnp not required + --disable-upnp-default (the default) UPnP support turned off by default at runtime + --enable-upnp-default UPnP support turned on by default at runtime + +To build: + tar -xzvf miniupnpc-1.6.tar.gz cd miniupnpc-1.6 make diff --git a/doc/coding.md b/doc/coding.md index ceed8c18b4..b9d2006e3c 100644 --- a/doc/coding.md +++ b/doc/coding.md @@ -12,20 +12,6 @@ gradually. - No indentation for public/protected/private or for namespaces. - No extra spaces inside parenthesis; don't do ( this ) - No space after function names; one space after if, for and while. -- Includes need to be ordered alphabetically, separate own and foreign headers with a new-line (example key.cpp): -```c++ -#include "key.h" - -#include "crypto/sha2.h" -#include "util.h" - -#include <openssl/foo.h> -``` -- Class or struct keywords in header files need to be ordered alphabetically: -```c++ -class CAlpha; -class CBeta; -``` Block style example: ```c++ diff --git a/doc/img/bootstrap3.png b/doc/img/bootstrap3.png Binary files differdeleted file mode 100644 index 8a6754e3e0..0000000000 --- a/doc/img/bootstrap3.png +++ /dev/null diff --git a/doc/release-notes.md b/doc/release-notes.md index 169ad71a0f..6aaea67790 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -84,3 +84,14 @@ Using wildcards will result in the rule being rejected with the following error Error: Invalid -rpcallowip subnet specification: *. Valid are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). +RPC Server "Warm-Up" Mode +========================= + +The RPC server is started earlier now, before most of the expensive +intialisations like loading the block index. It is available now almost +immediately after starting the process. However, until all initialisations +are done, it always returns an immediate error with code -28 to all calls. + +This new behaviour can be useful for clients to know that a server is already +started and will be available soon (for instance, so that they do not +have to start it themselves). |