@ -5,7 +5,7 @@ Gitian building
@@ -5,7 +5,7 @@ Gitian building
Gitian is the deterministic build process that is used to build the Bitcoin
Core executables. It provides a way to be reasonably sure that the
executables are really built from source on GitHub. It also makes sure that
executables are really built from the source on GitHub. It also makes sure that
the same, tested dependencies are used and statically built into the executable.
Multiple developers build the source code by following a specific descriptor
@ -13,8 +13,8 @@ Multiple developers build the source code by following a specific descriptor
@@ -13,8 +13,8 @@ Multiple developers build the source code by following a specific descriptor
These results are compared and only if they match, the build is accepted and uploaded
to bitcoin.org.
More independent gitian builders are needed, which is why I wrote this
guide. It is preferred to follow these steps yourself instead of using someone else's
More independent gitian builders are needed, which is why this guide exists.
It is preferred you follow these steps yourself instead of using someone else's
VM image to avoid 'contaminating' the build.
Table of Contents
@ -39,46 +39,46 @@ This guide explains how to set up the environment, and how to start the builds.
@@ -39,46 +39,46 @@ This guide explains how to set up the environment, and how to start the builds.
Debian Linux was chosen as the host distribution because it has a lightweight install (in contrast to Ubuntu) and is readily available.
Any kind of virtualization can be used, for example:
- [VirtualBox](https://www.virtualbox.org/), covered by this guide
- [VirtualBox](https://www.virtualbox.org/) (covered by this guide)
- [KVM](http://www.linux-kvm.org/page/Main_Page)
- [LXC](https://linuxcontainers.org/), see also [Gitian host docker container](https://github.com/gdm85/tenku/tree/master/docker/gitian-bitcoin-host/README.md).
You can also install on actual hardware instead of using virtualization.
You can also install gitian on actual hardware instead of using virtualization.
Create a new VirtualBox VM
---------------------------
In the VirtualBox GUI click "Create" and choose the following parameters in the wizard:
![](gitian-building/create_vm_page1.png)
![](gitian-building/create_new_vm.png)
- Type: Linux, Debian (64bit)
- Type: Linux, Debian (64-bit)
![](gitian-building/create_vm_memsize.png)
- Memory Size: at least 1024MB, anything lower will really slow the build down
- Memory Size: at least 1024MB, anything less will really slow down the build.
- Disk size: at least 40GB; as low as 20GB *may* be possible, but better to err on the safe side
- Push the `Create` button
- File location and size: at least 40GB; as low as 20GB *may* be possible, but better to err on the safe side
- Click `Create`
Get the [Debian 7.8 net installer](http://cdimage.debian.org/cdimage/archive/7.8.0/amd64/iso-cd/debian-7.8.0-amd64-netinst.iso) (a more recent minor version should also work, see also [Debian Network installation](https://www.debian.org/CD/netinst/)).
Get the [Debian 8.1 net installer](http://cdimage.debian.org/debian-cd/8.1.0/amd64/iso-cd/debian-8.1.0-amd64-netinst.iso) (a more recent minor version should also work, see also [Debian Network installation](https://www.debian.org/CD/netinst/)).
This DVD image can be validated using a SHA256 hashing tool, for example on
Unixy OSes by entering the following in a terminal:
@ -115,8 +115,9 @@ This section will explain how to install Debian on the newly created VM.
@@ -115,8 +115,9 @@ This section will explain how to install Debian on the newly created VM.
**Note**: Navigation in the Debian installer: To keep a setting at the default
and proceed, just press `Enter`. To select a different button, press `Tab`.
**Note**: Navigating in the Debian installer:
To keep a setting at the default and proceed, just press `Enter`.
To select a different button, press `Tab`.
- Choose locale and keyboard settings (doesn't matter, you can just go with the defaults or select your own information)
@ -126,7 +127,7 @@ and proceed, just press `Enter`. To select a different button, press `Tab`.
@@ -126,7 +127,7 @@ and proceed, just press `Enter`. To select a different button, press `Tab`.
- The VM will detect network settings using DHCP, this should all proceed automatically
@ -136,6 +137,7 @@ and proceed, just press `Enter`. To select a different button, press `Tab`.
@@ -136,6 +137,7 @@ and proceed, just press `Enter`. To select a different button, press `Tab`.
@ -158,13 +160,9 @@ and proceed, just press `Enter`. To select a different button, press `Tab`.
@@ -158,13 +160,9 @@ and proceed, just press `Enter`. To select a different button, press `Tab`.
- The base system will be installed, this will take a minute or so
@ -172,51 +170,79 @@ and proceed, just press `Enter`. To select a different button, press `Tab`.
@@ -172,51 +170,79 @@ and proceed, just press `Enter`. To select a different button, press `Tab`.
@ -226,13 +252,10 @@ First we need to log in as `root` to set up dependencies and make sure that our
@@ -226,13 +252,10 @@ First we need to log in as `root` to set up dependencies and make sure that our
user can use the sudo command. Type/paste the following in the terminal: