aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/Doxyfile2
-rw-r--r--doc/README.md2
-rw-r--r--doc/README_osx.txt23
-rw-r--r--doc/README_windows.txt2
-rw-r--r--doc/REST-interface.md27
-rw-r--r--doc/bootstrap.md26
-rw-r--r--doc/build-osx.md23
-rw-r--r--doc/build-unix.md42
-rw-r--r--doc/coding.md2
-rw-r--r--doc/img/bootstrap3.pngbin56598 -> 0 bytes
-rw-r--r--doc/release-notes.md94
-rw-r--r--doc/release-process.md153
12 files changed, 142 insertions, 254 deletions
diff --git a/doc/Doxyfile b/doc/Doxyfile
index e0339e652e..8a11d1e8d0 100644
--- a/doc/Doxyfile
+++ b/doc/Doxyfile
@@ -34,7 +34,7 @@ PROJECT_NAME = Bitcoin
# This could be handy for archiving the generated documentation or
# if some version control system is used.
-PROJECT_NUMBER = 0.9.99
+PROJECT_NUMBER = 0.10.99
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer
diff --git a/doc/README.md b/doc/README.md
index d5d61738e8..3ec5f11df2 100644
--- a/doc/README.md
+++ b/doc/README.md
@@ -1,4 +1,4 @@
-Bitcoin 0.9.99 BETA
+Bitcoin 0.10.99 BETA
=====================
Copyright (c) 2009-2014 Bitcoin Developers
diff --git a/doc/README_osx.txt b/doc/README_osx.txt
index 2be56c1592..d56234f7d9 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.
@@ -73,3 +65,18 @@ Background images and other features can be added to DMG files by inserting a
.DS_Store before creation. The easiest way to create this file is to build a
DMG without one, move it to a device running OSX, customize the layout, then
grab the .DS_Store file for later use. That is the approach taken here.
+
+As of OSX Mavericks (10.9), using an Apple-blessed key to sign binaries is a
+requirement in order to satisfy the new Gatekeeper requirements. Because this
+private key cannot be shared, we'll have to be a bit creative in order for the
+build process to remain somewhat deterministic. Here's how it works:
+
+- Builders use gitian to create an unsigned release. This outputs an unsigned
+ dmg which users may choose to bless and run. It also outputs an unsigned app
+ structure in the form of a tarball, which also contains all of the tools
+ that have been previously (deterministically) built in order to create a
+ final dmg.
+- The Apple keyholder uses this unsigned app to create a detached signature,
+ using the script that is also included there.
+- Builders feed the unsigned app + detached signature back into gitian. It
+ uses the pre-built tools to recombine the pieces into a deterministic dmg.
diff --git a/doc/README_windows.txt b/doc/README_windows.txt
index 368f2b45e1..9780a2cb13 100644
--- a/doc/README_windows.txt
+++ b/doc/README_windows.txt
@@ -1,4 +1,4 @@
-Bitcoin 0.9.99 BETA
+Bitcoin 0.10.99 BETA
Copyright (c) 2009-2014 Bitcoin Core Developers
diff --git a/doc/REST-interface.md b/doc/REST-interface.md
new file mode 100644
index 0000000000..0af650b4e8
--- /dev/null
+++ b/doc/REST-interface.md
@@ -0,0 +1,27 @@
+Unauthenticated REST Interface
+==============================
+
+The REST API can be enabled with the `-rest` option.
+
+Supported API
+-------------
+`GET /rest/tx/TX-HASH.{bin|hex|json}`
+
+Given a transaction hash,
+Returns a transaction, in binary, hex-encoded binary or JSON formats.
+
+`GET /rest/block/BLOCK-HASH.{bin|hex|json}`
+`GET /rest/block/notxdetails/BLOCK-HASH.{bin|hex|json}`
+
+Given a block hash,
+Returns a block, in binary, hex-encoded binary or JSON formats.
+
+The HTTP request and response are both handled entirely in-memory, thus making maximum memory usage at least 2.66MB (1 MB max block, plus hex encoding) per request.
+
+With the /notxdetails/ option JSON response will only contain the transaction hash instead of the complete transaction details. The option only affects the JSON response.
+
+For full TX query capability, one must enable the transaction index via "txindex=1" command line / configuration option.
+
+Risks
+-------------
+Running a webbrowser on the same node with a REST enabled bitcoind can be a risk. Accessing prepared XSS websites could read out tx/block data of your node by placing links like `<script src="http://127.0.0.1:1234/tx/json/1234567890">` which might break the nodes privacy. \ No newline at end of file
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..c41820f2b1 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`.
@@ -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..8ddee3b757 100644
--- a/doc/build-unix.md
+++ b/doc/build-unix.md
@@ -27,31 +27,24 @@ 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:
- --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
--------------------
@@ -112,7 +105,7 @@ To build with Qt 4 you need the following:
For Qt 5 you need the following:
- sudo apt-get install libqt5gui5 libqt5core5 libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler
+ sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler
libqrencode (optional) can be installed with:
@@ -129,6 +122,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 b9d2006e3c..43294dbe4c 100644
--- a/doc/coding.md
+++ b/doc/coding.md
@@ -115,8 +115,6 @@ Threads
- StartNode : Starts other threads.
-- ThreadGetMyExternalIP : Determines outside-the-firewall IP address, sends addr message to connected peers when it determines it.
-
- ThreadDNSAddressSeed : Loads addresses of peers from the DNS.
- ThreadMapPort : Universal plug-and-play startup/shutdown
diff --git a/doc/img/bootstrap3.png b/doc/img/bootstrap3.png
deleted file mode 100644
index 8a6754e3e0..0000000000
--- a/doc/img/bootstrap3.png
+++ /dev/null
Binary files differ
diff --git a/doc/release-notes.md b/doc/release-notes.md
index 6aaea67790..1cb517e5c7 100644
--- a/doc/release-notes.md
+++ b/doc/release-notes.md
@@ -1,97 +1,3 @@
(note: this is a temporary file, to be added-to by anybody, and moved to
release-notes at release time)
-Block file backwards-compatibility warning
-===========================================
-
-Because release 0.10.0 makes use of headers-first synchronization and parallel
-block download, the block files and databases are not backwards-compatible
-with older versions of Bitcoin Core:
-
-* Blocks will be stored on disk out of order (in the order they are
-received, really), which makes it incompatible with some tools or
-other programs. Reindexing using earlier versions will also not work
-anymore as a result of this.
-
-* The block index database will now hold headers for which no block is
-stored on disk, which earlier versions won't support.
-
-If you want to be able to downgrade smoothly, make a backup of your entire data
-directory. Without this your node will need start syncing (or importing from
-bootstrap.dat) anew afterwards.
-
-This does not affect wallet forward or backward compatibility.
-
-Transaction fee changes
-=======================
-
-This release automatically estimates how high a transaction fee (or how
-high a priority) transactions require to be confirmed quickly. The default
-settings will create transactions that confirm quickly; see the new
-'txconfirmtarget' setting to control the tradeoff between fees and
-confirmation times.
-
-Prior releases used hard-coded fees (and priorities), and would
-sometimes create transactions that took a very long time to confirm.
-
-Statistics used to estimate fees and priorities are saved in the
-data directory in the `fee_estimates.dat` file just before
-program shutdown, and are read in at startup.
-
-New Command Line Options
----------------------------
-
-- `-txconfirmtarget=n` : create transactions that have enough fees (or priority)
-so they are likely to confirm within n blocks (default: 1). This setting
-is over-ridden by the -paytxfee option.
-
-New RPC methods
-----------------
-
-- `estimatefee nblocks` : Returns approximate fee-per-1,000-bytes needed for
-a transaction to be confirmed within nblocks. Returns -1 if not enough
-transactions have been observed to compute a good estimate.
-
-- `estimatepriority nblocks` : Returns approximate priority needed for
-a zero-fee transaction to confirm within nblocks. Returns -1 if not
-enough free transactions have been observed to compute a good
-estimate.
-
-RPC access control changes
-==========================================
-
-Subnet matching for the purpose of access control is now done
-by matching the binary network address, instead of with string wildcard matching.
-For the user this means that `-rpcallowip` takes a subnet specification, which can be
-
-- a single IP address (e.g. `1.2.3.4` or `fe80::0012:3456:789a:bcde`)
-- a network/CIDR (e.g. `1.2.3.0/24` or `fe80::0000/64`)
-- a network/netmask (e.g. `1.2.3.4/255.255.255.0` or `fe80::0012:3456:789a:bcde/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff`)
-
-An arbitrary number of `-rpcallow` arguments can be given. An incoming connection will be accepted if its origin address
-matches one of them.
-
-For example:
-
-| 0.9.x and before | 0.10.x |
-|--------------------------------------------|---------------------------------------|
-| `-rpcallowip=192.168.1.1` | `-rpcallowip=192.168.1.1` (unchanged) |
-| `-rpcallowip=192.168.1.*` | `-rpcallowip=192.168.1.0/24` |
-| `-rpcallowip=192.168.*` | `-rpcallowip=192.168.0.0/16` |
-| `-rpcallowip=*` (dangerous!) | `-rpcallowip=::/0` |
-
-Using wildcards will result in the rule being rejected with the following error in debug.log:
-
- 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).
diff --git a/doc/release-process.md b/doc/release-process.md
index 7699af90bd..30f9797752 100644
--- a/doc/release-process.md
+++ b/doc/release-process.md
@@ -23,6 +23,10 @@ Release Process
* * *
+###update gitian
+
+ In order to take advantage of the new caching features in gitian, be sure to update to a recent version (e9741525c or higher is recommended)
+
###perform gitian builds
From a directory containing the bitcoin source, gitian-builder and gitian.sigs
@@ -36,7 +40,7 @@ Release Process
###fetch and build inputs: (first time, or when dependency versions change)
- mkdir -p inputs; cd inputs/
+ mkdir -p inputs
Register and download the Apple SDK: (see OSX Readme for details)
@@ -46,126 +50,65 @@ Release Process
tar -C /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/ -czf MacOSX10.7.sdk.tar.gz MacOSX10.7.sdk
- Download remaining inputs, and build everything:
-
- wget 'http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.9.tar.gz' -O miniupnpc-1.9.tar.gz
- wget 'https://www.openssl.org/source/openssl-1.0.1h.tar.gz'
- wget 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz'
- wget 'http://zlib.net/zlib-1.2.8.tar.gz'
- wget 'ftp://ftp.simplesystems.org/pub/png/src/history/libpng16/libpng-1.6.8.tar.gz'
- wget 'https://fukuchi.org/works/qrencode/qrencode-3.4.3.tar.bz2'
- wget 'https://downloads.sourceforge.net/project/boost/boost/1.55.0/boost_1_55_0.tar.bz2'
- wget 'https://svn.boost.org/trac/boost/raw-attachment/ticket/7262/boost-mingw.patch' -O boost-mingw-gas-cross-compile-2013-03-03.patch
- wget 'https://download.qt-project.org/official_releases/qt/5.2/5.2.0/single/qt-everywhere-opensource-src-5.2.0.tar.gz'
- wget 'https://download.qt-project.org/official_releases/qt/5.2/5.2.1/single/qt-everywhere-opensource-src-5.2.1.tar.gz'
- wget 'https://download.qt-project.org/archive/qt/4.6/qt-everywhere-opensource-src-4.6.4.tar.gz'
- wget 'https://protobuf.googlecode.com/files/protobuf-2.5.0.tar.bz2'
- wget 'https://github.com/mingwandroid/toolchain4/archive/10cc648683617cca8bcbeae507888099b41b530c.tar.gz'
- wget 'http://www.opensource.apple.com/tarballs/cctools/cctools-809.tar.gz'
- wget 'http://www.opensource.apple.com/tarballs/dyld/dyld-195.5.tar.gz'
- wget 'http://www.opensource.apple.com/tarballs/ld64/ld64-127.2.tar.gz'
- wget 'http://pkgs.fedoraproject.org/repo/pkgs/cdrkit/cdrkit-1.1.11.tar.gz/efe08e2f3ca478486037b053acd512e9/cdrkit-1.1.11.tar.gz'
- wget 'https://github.com/theuni/libdmg-hfsplus/archive/libdmg-hfsplus-v0.1.tar.gz'
- wget 'http://llvm.org/releases/3.2/clang+llvm-3.2-x86-linux-ubuntu-12.04.tar.gz' -O clang-llvm-3.2-x86-linux-ubuntu-12.04.tar.gz
- wget 'https://raw.githubusercontent.com/theuni/osx-cross-depends/master/patches/cdrtools/genisoimage.diff' -O cdrkit-deterministic.patch
- cd ..
- ./bin/gbuild ../bitcoin/contrib/gitian-descriptors/boost-linux.yml
- mv build/out/boost-*.zip inputs/
- ./bin/gbuild ../bitcoin/contrib/gitian-descriptors/deps-linux.yml
- mv build/out/bitcoin-deps-*.zip inputs/
- ./bin/gbuild ../bitcoin/contrib/gitian-descriptors/qt-linux.yml
- mv build/out/qt-*.tar.gz inputs/
- ./bin/gbuild ../bitcoin/contrib/gitian-descriptors/boost-win.yml
- mv build/out/boost-*.zip inputs/
- ./bin/gbuild ../bitcoin/contrib/gitian-descriptors/deps-win.yml
- mv build/out/bitcoin-deps-*.zip inputs/
- ./bin/gbuild ../bitcoin/contrib/gitian-descriptors/qt-win.yml
- mv build/out/qt-*.zip inputs/
- ./bin/gbuild ../bitcoin/contrib/gitian-descriptors/protobuf-win.yml
- mv build/out/protobuf-*.zip inputs/
- ./bin/gbuild ../bitcoin/contrib/gitian-descriptors/gitian-osx-native.yml
- mv build/out/osx-*.tar.gz inputs/
- ./bin/gbuild ../bitcoin/contrib/gitian-descriptors/gitian-osx-depends.yml
- mv build/out/osx-*.tar.gz inputs/
- ./bin/gbuild ../bitcoin/contrib/gitian-descriptors/gitian-osx-qt.yml
- mv build/out/osx-*.tar.gz inputs/
-
- The expected SHA256 hashes of the intermediate inputs are:
-
- f29b7d9577417333fb56e023c2977f5726a7c297f320b175a4108cf7cd4c2d29 boost-linux32-1.55.0-gitian-r1.zip
- 88232451c4104f7eb16e469ac6474fd1231bd485687253f7b2bdf46c0781d535 boost-linux64-1.55.0-gitian-r1.zip
- 46710f673467e367738d8806e45b4cb5931aaeea61f4b6b55a68eea56d5006c5 bitcoin-deps-linux32-gitian-r6.zip
- f03be39fb26670243d3a659e64d18e19d03dec5c11e9912011107768390b5268 bitcoin-deps-linux64-gitian-r6.zip
- 57e57dbdadc818cd270e7e00500a5e1085b3bcbdef69a885f0fb7573a8d987e1 qt-linux32-4.6.4-gitian-r1.tar.gz
- 60eb4b9c5779580b7d66529efa5b2836ba1a70edde2a0f3f696d647906a826be qt-linux64-4.6.4-gitian-r1.tar.gz
- 60dc2d3b61e9c7d5dbe2f90d5955772ad748a47918ff2d8b74e8db9b1b91c909 boost-win32-1.55.0-gitian-r6.zip
- f65fcaf346bc7b73bc8db3a8614f4f6bee2f61fcbe495e9881133a7c2612a167 boost-win64-1.55.0-gitian-r6.zip
- 70de248cd0dd7e7476194129e818402e974ca9c5751cbf591644dc9f332d3b59 bitcoin-deps-win32-gitian-r13.zip
- 9eace4c76f639f4f3580a478eee4f50246e1bbb5ccdcf37a158261a5a3fa3e65 bitcoin-deps-win64-gitian-r13.zip
- 963e3e5e85879010a91143c90a711a5d1d5aba992e38672cdf7b54e42c56b2f1 qt-win32-5.2.0-gitian-r3.zip
- 751c579830d173ef3e6f194e83d18b92ebef6df03289db13ab77a52b6bc86ef0 qt-win64-5.2.0-gitian-r3.zip
- e2e403e1a08869c7eed4d4293bce13d51ec6a63592918b90ae215a0eceb44cb4 protobuf-win32-2.5.0-gitian-r4.zip
- a0999037e8b0ef9ade13efd88fee261ba401f5ca910068b7e0cd3262ba667db0 protobuf-win64-2.5.0-gitian-r4.zip
- 512bc0622c883e2e0f4cbc3fedfd8c2402d06c004ce6fb32303cc2a6f405b6df osx-native-depends-r3.tar.gz
- 927e4b222be6d590b4bc2fc185872a5d0ca5c322adb983764d3ed84be6bdbc81 osx-depends-r4.tar.gz
- ec95abef1df2b096a970359787c01d8c45e2a4475b7ae34e12c022634fbdba8a osx-depends-qt-5.2.1-r4.tar.gz
-
-
- Build Bitcoin Core for Linux, Windows, and OS X:
+###Optional: Seed the Gitian sources cache
+
+ By default, gitian will fetch source files as needed. For offline builds, they can be fetched ahead of time:
+
+ make -C ../bitcoin/depends download SOURCES_PATH=`pwd`/cache/common
+
+ Only missing files will be fetched, so this is safe to re-run for each build.
+
+###Build Bitcoin Core for Linux, Windows, and OS X:
./bin/gbuild --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
./bin/gsign --signer $SIGNER --release ${VERSION}-linux --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
- pushd build/out
- zip -r bitcoin-${VERSION}-linux-gitian.zip *
- mv bitcoin-${VERSION}-linux-gitian.zip ../../../
- popd
+ mv build/out/bitcoin-*.tar.gz build/out/src/bitcoin-*.tar.gz ../
./bin/gbuild --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-win.yml
./bin/gsign --signer $SIGNER --release ${VERSION}-win --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-win.yml
- pushd build/out
- zip -r bitcoin-${VERSION}-win-gitian.zip *
- mv bitcoin-${VERSION}-win-gitian.zip ../../../
- popd
- ./bin/gbuild --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-osx-bitcoin.yml
- ./bin/gsign --signer $SIGNER --release ${VERSION}-osx --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-osx-bitcoin.yml
- pushd build/out
- mv Bitcoin-Qt.dmg ../../../
+ mv build/out/bitcoin-*.zip build/out/bitcoin-*.exe ../
+ ./bin/gbuild --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml
+ ./bin/gsign --signer $SIGNER --release ${VERSION}-osx-unsigned --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml
+ mv build/out/bitcoin-*-unsigned.tar.gz inputs
+ mv build/out/bitcoin-*.tar.gz build/out/bitcoin-*.dmg ../
popd
- popd
-
Build output expected:
- 1. linux 32-bit and 64-bit binaries + source (bitcoin-${VERSION}-linux-gitian.zip)
- 2. windows 32-bit and 64-bit binaries + installer + source (bitcoin-${VERSION}-win-gitian.zip)
- 3. OSX installer (Bitcoin-Qt.dmg)
- 4. Gitian signatures (in gitian.sigs/${VERSION}-<linux|win|osx>/(your gitian key)/
+ 1. source tarball (bitcoin-${VERSION}.tar.gz)
+ 2. linux 32-bit and 64-bit binaries dist tarballs (bitcoin-${VERSION}-linux[32|64].tar.gz)
+ 3. windows 32-bit and 64-bit installers and dist zips (bitcoin-${VERSION}-win[32|64]-setup.exe, bitcoin-${VERSION}-win[32|64].zip)
+ 4. OSX unsigned installer (bitcoin-${VERSION}-osx-unsigned.dmg)
+ 5. Gitian signatures (in gitian.sigs/${VERSION}-<linux|win|osx-unsigned>/(your gitian key)/
-repackage gitian builds for release as stand-alone zip/tar/installer exe
-
-**Linux .tar.gz:**
-
- unzip bitcoin-${VERSION}-linux-gitian.zip -d bitcoin-${VERSION}-linux
- tar czvf bitcoin-${VERSION}-linux.tar.gz bitcoin-${VERSION}-linux
- rm -rf bitcoin-${VERSION}-linux
+###Next steps:
-**Windows .zip and setup.exe:**
+Commit your signature to gitian.sigs:
- unzip bitcoin-${VERSION}-win-gitian.zip -d bitcoin-${VERSION}-win
- mv bitcoin-${VERSION}-win/bitcoin-*-setup.exe .
- zip -r bitcoin-${VERSION}-win.zip bitcoin-${VERSION}-win
- rm -rf bitcoin-${VERSION}-win
+ pushd gitian.sigs
+ git add ${VERSION}-linux/${SIGNER}
+ git add ${VERSION}-win/${SIGNER}
+ git add ${VERSION}-osx-unsigned/${SIGNER}
+ git commit -a
+ git push # Assuming you can push to the gitian.sigs tree
+ popd
-**Mac OS X .dmg:**
+ Wait for OSX detached signature:
+ Once the OSX build has 3 matching signatures, Gavin will sign it with the apple App-Store key.
+ He will then upload a detached signature to be combined with the unsigned app to create a signed binary.
- mv Bitcoin-Qt.dmg bitcoin-${VERSION}-osx.dmg
+ Create the signed OSX binary:
-###Next steps:
+ pushd ./gitian-builder
+ # Fetch the signature as instructed by Gavin
+ cp signature.tar.gz inputs/
+ ./bin/gbuild -i ../bitcoin/contrib/gitian-descriptors/gitian-osx-signer.yml
+ ./bin/gsign --signer $SIGNER --release ${VERSION}-osx-signed --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-osx-signer.yml
+ mv build/out/bitcoin-${VERSION}-osx.dmg ../
+ popd
-Commit your signature to gitian.sigs:
+Commit your signature for the signed OSX binary:
pushd gitian.sigs
- git add ${VERSION}-linux/${SIGNER}
- git add ${VERSION}-win/${SIGNER}
- git add ${VERSION}-osx/${SIGNER}
+ git add ${VERSION}-osx-signed/${SIGNER}
git commit -a
git push # Assuming you can push to the gitian.sigs tree
popd
@@ -178,8 +121,6 @@ Commit your signature to gitian.sigs:
- Code-sign Windows -setup.exe (in a Windows virtual machine using signtool)
- - Code-sign MacOSX .dmg
-
Note: only Gavin has the code-signing keys currently.
- Create `SHA256SUMS.asc` for the builds, and GPG-sign it: