mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-22 00:00:55 +01:00
Merge pull request #6953
8b3311f*: alias -h for --help (Daniel Cousens)97546fcChange URLs to https in debian/control (Matt Corallo)38671bfUpdate debian/changelog and slight tweak to debian/control (Matt Corallo)256321eCorrect spelling mistakes in doc folder (Mitchell Cash)eae0350Clarification of unit test build instructions. (Eric Lombrozo)90897abUpdate bluematt-key, the old one is long-since revoked (Matt Corallo)a2f2fb6build: disable -Wself-assign (Wladimir J. van der Laan)cf67d8bBugfix: Allow mining on top of old tip blocks for testnet (fixes testnet-in-a-box use case) (Luke Dashjr)b3964e3Drop "with minimal dependencies" from description (Zak Wilcox)43c2789Split bitcoin-tx into its own package (Zak Wilcox)dfe0d4dInclude bitcoin-tx binary on Debian/Ubuntu (Zak Wilcox)612efe8[Qt] Raise debug window when requested (MarcoFalke)3ad96bdFix locking in GetTransaction. (Alex Morcos)9c81005Fix spelling of Qt (Diego Viola)
This commit is contained in:
@@ -167,7 +167,7 @@ fi
|
||||
## compatibility with the legacy buildsystem.
|
||||
##
|
||||
if test "x$CXXFLAGS_overridden" = "xno"; then
|
||||
CXXFLAGS="$CXXFLAGS -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter"
|
||||
CXXFLAGS="$CXXFLAGS -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter -Wno-self-assign"
|
||||
fi
|
||||
CPPFLAGS="$CPPFLAGS -DBOOST_SPIRIT_THREADSAFE -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS"
|
||||
|
||||
|
||||
1
contrib/debian/bitcoin-tx.install
Normal file
1
contrib/debian/bitcoin-tx.install
Normal file
@@ -0,0 +1 @@
|
||||
usr/local/bin/bitcoin-tx usr/bin
|
||||
@@ -1,3 +1,39 @@
|
||||
bitcoin (0.10.2-precise1) precise; urgency=medium
|
||||
|
||||
* New upstream release.
|
||||
|
||||
-- Matt Corallo (BlueMatt) <matt@mattcorallo.com> Mon, 29 Jun 2015 17:33:00 -1000
|
||||
|
||||
bitcoin (0.10.1-precise3) precise; urgency=medium
|
||||
|
||||
* Fix build dep (include python).
|
||||
|
||||
-- Matt Corallo (BlueMatt) <matt@mattcorallo.com> Tue, 5 May 2015 09:28:00 -1000
|
||||
|
||||
bitcoin (0.10.1-precise2) precise; urgency=medium
|
||||
|
||||
* Fix miniupnpc dep.
|
||||
|
||||
-- Matt Corallo (BlueMatt) <matt@mattcorallo.com> Tue, 5 May 2015 00:33:00 -1000
|
||||
|
||||
bitcoin (0.10.1-precise1) precise; urgency=medium
|
||||
|
||||
* New upstream release.
|
||||
|
||||
-- Matt Corallo (BlueMatt) <matt@mattcorallo.com> Tue, 5 May 2015 00:07:00 -1000
|
||||
|
||||
bitcoin (0.10.0-precise1) precise; urgency=medium
|
||||
|
||||
* New upstream releases.
|
||||
|
||||
-- Matt Corallo (BlueMatt) <matt@mattcorallo.com> Wed, 18 Feb 2015 13:22:00 -1000
|
||||
|
||||
bitcoin (0.9.4-precise1) precise; urgency=high
|
||||
|
||||
* New upstream releases.
|
||||
|
||||
-- Matt Corallo (laptop - only while traveling) <matt@mattcorallo.com> Mon, 12 Jan 2015 23:30:00 -1000
|
||||
|
||||
bitcoin (0.9.3-precise1) precise; urgency=medium
|
||||
|
||||
* New upstream releases.
|
||||
|
||||
@@ -20,11 +20,12 @@ Build-Depends: debhelper,
|
||||
qt4-qmake,
|
||||
libqt4-dev,
|
||||
libqrencode-dev,
|
||||
libprotobuf-dev, protobuf-compiler
|
||||
libprotobuf-dev, protobuf-compiler,
|
||||
python
|
||||
Standards-Version: 3.9.2
|
||||
Homepage: http://www.bitcoin.org/
|
||||
Homepage: https://www.bitcoin.org/
|
||||
Vcs-Git: git://github.com/bitcoin/bitcoin.git
|
||||
Vcs-Browser: http://github.com/bitcoin/bitcoin
|
||||
Vcs-Browser: https://github.com/bitcoin/bitcoin
|
||||
|
||||
Package: bitcoind
|
||||
Architecture: any
|
||||
@@ -56,3 +57,17 @@ Description: peer-to-peer network based digital currency - Qt GUI
|
||||
requires 20+ GB of space, slowly growing.
|
||||
.
|
||||
This package provides Bitcoin-Qt, a GUI for Bitcoin based on Qt.
|
||||
|
||||
Package: bitcoin-tx
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Description: peer-to-peer digital currency - standalone transaction tool
|
||||
Bitcoin is a free open source peer-to-peer electronic cash system that
|
||||
is completely decentralized, without the need for a central server or
|
||||
trusted parties. Users hold the crypto keys to their own money and
|
||||
transact directly with each other, with the help of a P2P network to
|
||||
check for double-spending.
|
||||
.
|
||||
This package provides bitcoin-tx, a command-line transaction creation
|
||||
tool which can be used without a bitcoin daemon. Some means of
|
||||
exchanging minimal transaction data with peers is still required.
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
# JSON-RPC options (for controlling a running Bitcoin/bitcoind process)
|
||||
#
|
||||
|
||||
# server=1 tells Bitcoin-QT and bitcoind to accept JSON-RPC commands
|
||||
# server=1 tells Bitcoin-Qt and bitcoind to accept JSON-RPC commands
|
||||
#server=0
|
||||
|
||||
# You must set rpcuser and rpcpassword to secure the JSON-RPC api
|
||||
@@ -72,7 +72,7 @@
|
||||
# NOTE: opening up the RPC port to hosts outside your local trusted network is NOT RECOMMENDED,
|
||||
# because the rpcpassword is transmitted over the network unencrypted.
|
||||
|
||||
# server=1 tells Bitcoin-QT to accept JSON-RPC commands.
|
||||
# server=1 tells Bitcoin-Qt to accept JSON-RPC commands.
|
||||
# it is also read by bitcoind to determine if RPC should be enabled
|
||||
#rpcallowip=10.1.1.34/255.255.255.0
|
||||
#rpcallowip=1.2.3.4/24
|
||||
|
||||
Binary file not shown.
@@ -7,7 +7,7 @@ Setup
|
||||
|
||||
Running
|
||||
---------------------
|
||||
The following are some helpful notes on how to run Bitcoin on your native platform.
|
||||
The following are some helpful notes on how to run Bitcoin on your native platform.
|
||||
|
||||
### Unix
|
||||
|
||||
@@ -26,7 +26,7 @@ Unpack the files into a directory and run:
|
||||
|
||||
Unpack the files into a directory, and then run bitcoin-qt.exe.
|
||||
|
||||
### OSX
|
||||
### OS X
|
||||
|
||||
Drag Bitcoin-Qt to your applications folder, and then run Bitcoin-Qt.
|
||||
|
||||
@@ -41,7 +41,7 @@ Building
|
||||
---------------------
|
||||
The following are developer notes on how to build Bitcoin on your native platform. They are not complete guides, but include notes on the necessary libraries, compile flags, etc.
|
||||
|
||||
- [OSX Build Notes](build-osx.md)
|
||||
- [OS X Build Notes](build-osx.md)
|
||||
- [Unix Build Notes](build-unix.md)
|
||||
|
||||
Development
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
Deterministic OSX Dmg Notes.
|
||||
Deterministic OS X Dmg Notes.
|
||||
|
||||
Working OSX DMG's are created in Linux by combining a recent clang,
|
||||
Working OS X DMGs are created in Linux by combining a recent clang,
|
||||
the Apple's binutils (ld, ar, etc), and DMG authoring tools.
|
||||
|
||||
Apple uses clang extensively for development and has upstreamed the necessary
|
||||
functionality so that a vanilla clang can take advantage. It supports the use
|
||||
of -F, -target, -mmacosx-version-min, and --sysroot, which are all necessary
|
||||
when building for OSX. A pre-compiled version of 3.2 is used because it was not
|
||||
when building for OS X. A pre-compiled version of 3.2 is used because it was not
|
||||
available in the Precise repositories at the time this work was started. In the
|
||||
future, it can be switched to use system packages instead.
|
||||
|
||||
@@ -35,11 +35,11 @@ This file is several gigabytes in size, but only a single directory inside is
|
||||
needed: Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk
|
||||
|
||||
Unfortunately, the usual linux tools (7zip, hpmount, loopback mount) are incapable of opening this file.
|
||||
To create a tarball suitable for gitian input, mount the dmg in OSX, then create it with:
|
||||
To create a tarball suitable for Gitian input, mount the dmg in OS X, then create it with:
|
||||
$ tar -C /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/ -czf MacOSX10.7.sdk.tar.gz MacOSX10.7.sdk
|
||||
|
||||
|
||||
The gitian descriptors build 2 sets of files: Linux tools, then Apple binaries
|
||||
The Gitian descriptors build 2 sets of files: Linux tools, then Apple binaries
|
||||
which are created using these tools. The build process has been designed to
|
||||
avoid including the SDK's files in Gitian's outputs. All interim tarballs are
|
||||
fully deterministic and may be freely redistributed.
|
||||
@@ -63,20 +63,20 @@ Ideally, the creation could be fixed and genisoimage would no longer be necessar
|
||||
|
||||
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
|
||||
DMG without one, move it to a device running OS X, 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
|
||||
As of OS X 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
|
||||
- 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
|
||||
- Builders feed the unsigned app + detached signature back into Gitian. It
|
||||
uses the pre-built tools to recombine the pieces into a deterministic dmg.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Mac OS X Build Instructions and Notes
|
||||
====================================
|
||||
This guide will show you how to build bitcoind(headless client) for OSX.
|
||||
This guide will show you how to build bitcoind(headless client) for OS X.
|
||||
|
||||
Notes
|
||||
-----
|
||||
@@ -13,8 +13,8 @@ built-in one is located in `/Applications/Utilities`.
|
||||
Preparation
|
||||
-----------
|
||||
|
||||
You need to install XCode with all the options checked so that the compiler
|
||||
and everything is available in /usr not just /Developer. XCode should be
|
||||
You need to install Xcode with all the options checked so that the compiler
|
||||
and everything is available in /usr not just /Developer. Xcode should be
|
||||
available on your OS X installation media, but if not, you can get the
|
||||
current version from https://developer.apple.com/xcode/. If you install
|
||||
Xcode 4.3 or later, you'll need to install its command line tools. This can
|
||||
@@ -65,7 +65,7 @@ After exiting, you'll get a warning that the install is keg-only, which means it
|
||||
|
||||
### Building `bitcoind`
|
||||
|
||||
1. Clone the github tree to get the source code and go into the directory.
|
||||
1. Clone the GitHub tree to get the source code and go into the directory.
|
||||
|
||||
git clone https://github.com/bitcoin/bitcoin.git
|
||||
cd bitcoin
|
||||
@@ -89,7 +89,7 @@ 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
|
||||
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
|
||||
|
||||
@@ -57,7 +57,7 @@ As Doxygen recognizes the comments by the delimiters (`/**` and `*/` in this cas
|
||||
|
||||
To describe a class use the same construct above the class definition:
|
||||
```c++
|
||||
/**
|
||||
/**
|
||||
* Alerts are for notifying old versions if they become too obsolete and
|
||||
* need to upgrade. The message is displayed in the status bar.
|
||||
* @see GetWarnings()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Gitian building
|
||||
================
|
||||
|
||||
*Setup instructions for a gitian build of Bitcoin using a Debian VM or physical system.*
|
||||
*Setup instructions for a Gitian build of Bitcoin using a Debian VM or physical system.*
|
||||
|
||||
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
|
||||
@@ -13,7 +13,7 @@ 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
|
||||
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
|
||||
VM image to avoid 'contaminating' the build.
|
||||
|
||||
@@ -22,9 +22,9 @@ Table of Contents
|
||||
|
||||
- [Create a new VirtualBox VM](#create-a-new-virtualbox-vm)
|
||||
- [Connecting to the VM](#connecting-to-the-vm)
|
||||
- [Setting up Debian for gitian building](#setting-up-debian-for-gitian-building)
|
||||
- [Installing gitian](#installing-gitian)
|
||||
- [Setting up gitian images](#setting-up-gitian-images)
|
||||
- [Setting up Debian for Gitian building](#setting-up-debian-for-gitian-building)
|
||||
- [Installing Gitian](#installing-gitian)
|
||||
- [Setting up Gitian images](#setting-up-gitian-images)
|
||||
- [Getting and building the inputs](#getting-and-building-the-inputs)
|
||||
- [Building Bitcoin](#building-bitcoin)
|
||||
- [Building an alternative repository](#building-an-alternative-repository)
|
||||
@@ -60,18 +60,18 @@ In the VirtualBox GUI click "Create" and choose the following parameters in the
|
||||

|
||||
|
||||
- Hard Drive: Create a virtual hard drive now
|
||||
|
||||
|
||||

|
||||
|
||||
- Hard Drive file type: Use the default, VDI (VirtualBox Disk Image)
|
||||
- Hard Drive file type: Use the default, VDI (VirtualBox Disk Image)
|
||||
|
||||

|
||||
|
||||
- Storage on Physical hard drive: Dynamically Allocated
|
||||
|
||||
|
||||
- Storage on Physical hard drive: Dynamically Allocated
|
||||
|
||||

|
||||
|
||||
- Disk size: at least 40GB; as low as 20GB *may* be possible, but better to err on the safe side
|
||||
- Disk size: at least 40GB; as low as 20GB *may* be possible, but better to err on the safe side
|
||||
- Push the `Create` button
|
||||
|
||||
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/)).
|
||||
@@ -81,7 +81,7 @@ Unixy OSes by entering the following in a terminal:
|
||||
echo "b712a141bc60269db217d3b3e456179bd6b181645f90e4aac9c42ed63de492e9 debian-7.4.0-amd64-netinst.iso" | sha256sum -c
|
||||
# (must return OK)
|
||||
|
||||
After creating the VM, we need to configure it.
|
||||
After creating the VM, we need to configure it.
|
||||
|
||||
- Click the `Settings` button, then go to the `Network` tab. Adapter 1 should be attacked to `NAT`.
|
||||
|
||||
@@ -125,22 +125,22 @@ 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
|
||||
- Configure the network:
|
||||
- Configure the network:
|
||||
- System name `debian`.
|
||||
- Leave domain name empty.
|
||||
|
||||

|
||||
|
||||
- Choose a root password and enter it twice (remember it for later)
|
||||
- Choose a root password and enter it twice (remember it for later)
|
||||
|
||||

|
||||
|
||||
- Name the new user `debian` (the full name doesn't matter, you can leave it empty)
|
||||
- Name the new user `debian` (the full name doesn't matter, you can leave it empty)
|
||||
|
||||

|
||||

|
||||
|
||||
- Choose a user password and enter it twice (remember it for later)
|
||||
- Choose a user password and enter it twice (remember it for later)
|
||||
|
||||

|
||||
|
||||
@@ -150,11 +150,11 @@ and proceed, just press `Enter`. To select a different button, press `Tab`.
|
||||

|
||||
|
||||
- Disk setup
|
||||
- Partitioning method: Guided - Use the entire disk
|
||||
|
||||
- Partitioning method: Guided - Use the entire disk
|
||||
|
||||

|
||||
|
||||
- Select disk to partition: SCSI1 (0,0,0)
|
||||
- Select disk to partition: SCSI1 (0,0,0)
|
||||
|
||||

|
||||
|
||||
@@ -168,7 +168,7 @@ 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
|
||||
- Choose a mirror (any will do)
|
||||
- Choose a mirror (any will do)
|
||||
|
||||

|
||||
|
||||
@@ -217,7 +217,7 @@ Replace `root` with `debian` to log in as user.
|
||||
[1] http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
|
||||
[2] http://winscp.net/eng/index.php
|
||||
|
||||
Setting up Debian for gitian building
|
||||
Setting up Debian for Gitian building
|
||||
--------------------------------------
|
||||
|
||||
In this section we will be setting up the Debian installation for Gitian building.
|
||||
@@ -237,7 +237,7 @@ Then set up LXC and the rest with the following, which is a complex jumble of se
|
||||
|
||||
```bash
|
||||
# the version of lxc-start in Debian 7.4 needs to run as root, so make sure
|
||||
# that the build script can exectute it without providing a password
|
||||
# that the build script can execute it without providing a password
|
||||
echo "%sudo ALL=NOPASSWD: /usr/bin/lxc-start" > /etc/sudoers.d/gitian-lxc
|
||||
# add cgroup for LXC
|
||||
echo "cgroup /sys/fs/cgroup cgroup defaults 0 0" >> /etc/fstab
|
||||
@@ -257,7 +257,7 @@ reboot
|
||||
At the end the VM is rebooted to make sure that the changes take effect. The steps in this
|
||||
section need only to be performed once.
|
||||
|
||||
Installing gitian
|
||||
Installing Gitian
|
||||
------------------
|
||||
|
||||
Re-login as the user `debian` that was created during installation.
|
||||
@@ -277,7 +277,7 @@ cd ..
|
||||
|
||||
**Note**: When sudo asks for a password, enter the password for the user *debian* not for *root*.
|
||||
|
||||
Clone the git repositories for bitcoin and gitian and then checkout the bitcoin version that you want to build.
|
||||
Clone the git repositories for bitcoin and Gitian and then checkout the bitcoin version that you want to build.
|
||||
|
||||
```bash
|
||||
git clone https://github.com/devrandom/gitian-builder.git
|
||||
@@ -287,7 +287,7 @@ git checkout v${VERSION}
|
||||
cd ..
|
||||
```
|
||||
|
||||
Setting up gitian images
|
||||
Setting up Gitian images
|
||||
-------------------------
|
||||
|
||||
Gitian needs virtual images of the operating system to build in.
|
||||
@@ -313,13 +313,13 @@ Getting and building the inputs
|
||||
Follow the instructions in [doc/release-process.md](release-process.md) in the bitcoin repository
|
||||
under 'Fetch and build inputs' to install sources which require manual intervention. Also follow
|
||||
the next step: 'Seed the Gitian sources cache', which will fetch all necessary source files allowing
|
||||
for gitian to work offline.
|
||||
for Gitian to work offline.
|
||||
|
||||
Building Bitcoin
|
||||
----------------
|
||||
|
||||
To build Bitcoin (for Linux, OSX and Windows) just follow the steps under 'perform
|
||||
gitian builds' in [doc/release-process.md](release-process.md) in the bitcoin repository.
|
||||
To build Bitcoin (for Linux, OS X and Windows) just follow the steps under 'perform
|
||||
Gitian builds' in [doc/release-process.md](release-process.md) in the bitcoin repository.
|
||||
|
||||
This may take a long time as it also builds the dependencies needed for each descriptor.
|
||||
These dependencies will be cached after a successful build to avoid rebuilding them when possible.
|
||||
@@ -358,7 +358,7 @@ Building an alternative repository
|
||||
-----------------------------------
|
||||
|
||||
If you want to do a test build of a pull on GitHub it can be useful to point
|
||||
the gitian builder at an alternative repository, using the same descriptors
|
||||
the Gitian builder at an alternative repository, using the same descriptors
|
||||
and inputs.
|
||||
|
||||
For example:
|
||||
@@ -388,7 +388,7 @@ in `gitian.sigs` to your signing machine and do
|
||||
```
|
||||
|
||||
This will create the `.sig` files that can be committed together with the `.assert` files to assert your
|
||||
gitian build.
|
||||
Gitian build.
|
||||
|
||||
Uploading signatures
|
||||
---------------------
|
||||
|
||||
@@ -34,9 +34,8 @@ generate one from the shell yourself like this:
|
||||
|
||||
bash -c 'tr -dc a-zA-Z0-9 < /dev/urandom | head -c32 && echo'
|
||||
|
||||
Once you have a password in hand, set rpcpassword= in /etc/bitcoin/bitcoin.conf
|
||||
|
||||
For an example configuration file that describes the configuration settings,
|
||||
For an example configuration file that describes the configuration settings,
|
||||
see contrib/debian/examples/bitcoin.conf.
|
||||
|
||||
3. Paths
|
||||
@@ -81,7 +80,7 @@ Drop bitcoind.conf in /etc/init. Test by running "service bitcoind start"
|
||||
it will automatically start on reboot.
|
||||
|
||||
NOTE: This script is incompatible with CentOS 5 and Amazon Linux 2014 as they
|
||||
use old versions of Upstart and do not supply the start-stop-daemon uitility.
|
||||
use old versions of Upstart and do not supply the start-stop-daemon utility.
|
||||
|
||||
5. Auto-respawn
|
||||
-----------------------------------
|
||||
@@ -89,4 +88,3 @@ use old versions of Upstart and do not supply the start-stop-daemon uitility.
|
||||
Auto respawning is currently only configured for Upstart and systemd.
|
||||
Reasonable defaults have been chosen but YMMV.
|
||||
|
||||
|
||||
|
||||
@@ -23,15 +23,15 @@ Release Process
|
||||
|
||||
* * *
|
||||
|
||||
###update gitian
|
||||
###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)
|
||||
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
|
||||
###perform Gitian builds
|
||||
|
||||
From a directory containing the bitcoin source, gitian-builder and gitian.sigs
|
||||
|
||||
export SIGNER=(your gitian key, ie bluematt, sipa, etc)
|
||||
export SIGNER=(your Gitian key, ie bluematt, sipa, etc)
|
||||
export VERSION=(new version, e.g. 0.8.0)
|
||||
pushd ./bitcoin
|
||||
git checkout v${VERSION}
|
||||
@@ -39,27 +39,27 @@ Release Process
|
||||
pushd ./gitian-builder
|
||||
|
||||
###fetch and build inputs: (first time, or when dependency versions change)
|
||||
|
||||
|
||||
mkdir -p inputs
|
||||
|
||||
Register and download the Apple SDK: (see OSX Readme for details)
|
||||
|
||||
Register and download the Apple SDK: (see OS X Readme for details)
|
||||
|
||||
https://developer.apple.com/downloads/download.action?path=Developer_Tools/xcode_4.6.3/xcode4630916281a.dmg
|
||||
|
||||
|
||||
Using a Mac, create a tarball for the 10.7 SDK and copy it to the inputs directory:
|
||||
|
||||
|
||||
tar -C /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/ -czf MacOSX10.7.sdk.tar.gz MacOSX10.7.sdk
|
||||
|
||||
###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:
|
||||
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
|
||||
mv build/out/bitcoin-*.tar.gz build/out/src/bitcoin-*.tar.gz ../
|
||||
@@ -76,8 +76,8 @@ Release Process
|
||||
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)/
|
||||
4. OS X unsigned installer (bitcoin-${VERSION}-osx-unsigned.dmg)
|
||||
5. Gitian signatures (in gitian.sigs/${VERSION}-<linux|win|osx-unsigned>/(your Gitian key)/
|
||||
|
||||
###Next steps:
|
||||
|
||||
@@ -91,11 +91,11 @@ Commit your signature to gitian.sigs:
|
||||
git push # Assuming you can push to the gitian.sigs tree
|
||||
popd
|
||||
|
||||
Wait for OSX detached signature:
|
||||
Once the OSX build has 3 matching signatures, Gavin will sign it with the apple App-Store key.
|
||||
Wait for OS X detached signature:
|
||||
Once the OS X 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.
|
||||
|
||||
Create the signed OSX binary:
|
||||
Create the signed OS X binary:
|
||||
|
||||
pushd ./gitian-builder
|
||||
# Fetch the signature as instructed by Gavin
|
||||
@@ -105,7 +105,7 @@ Commit your signature to gitian.sigs:
|
||||
mv build/out/bitcoin-osx-signed.dmg ../bitcoin-${VERSION}-osx.dmg
|
||||
popd
|
||||
|
||||
Commit your signature for the signed OSX binary:
|
||||
Commit your signature for the signed OS X binary:
|
||||
|
||||
pushd gitian.sigs
|
||||
git add ${VERSION}-osx-signed/${SIGNER}
|
||||
|
||||
11
doc/tor.md
11
doc/tor.md
@@ -15,15 +15,15 @@ outgoing connections be anonymized, but more is possible.
|
||||
|
||||
-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.
|
||||
|
||||
|
||||
-onion=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 -noonion
|
||||
to explicitly disable access to hidden service.
|
||||
|
||||
|
||||
-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 behind 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
|
||||
@@ -55,10 +55,10 @@ your bitcoind's P2P listen port (8333 by default).
|
||||
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
|
||||
@@ -82,4 +82,3 @@ 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 -onion=127.0.0.1:9050 -externalip=57qr3yd1nyntf5k.onion -discover
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@ static bool AppInitRPC(int argc, char* argv[])
|
||||
// Parameters
|
||||
//
|
||||
ParseParameters(argc, argv);
|
||||
if (argc<2 || mapArgs.count("-?") || mapArgs.count("-help") || mapArgs.count("-version")) {
|
||||
if (argc<2 || mapArgs.count("-?") || mapArgs.count("-h") || mapArgs.count("-help") || mapArgs.count("-version")) {
|
||||
std::string strUsage = _("Bitcoin Core RPC client version") + " " + FormatFullVersion() + "\n";
|
||||
if (!mapArgs.count("-version")) {
|
||||
strUsage += "\n" + _("Usage:") + "\n" +
|
||||
|
||||
@@ -44,7 +44,7 @@ static bool AppInitRawTx(int argc, char* argv[])
|
||||
|
||||
fCreateBlank = GetBoolArg("-create", false);
|
||||
|
||||
if (argc<2 || mapArgs.count("-?") || mapArgs.count("-help"))
|
||||
if (argc<2 || mapArgs.count("-?") || mapArgs.count("-h") || mapArgs.count("-help"))
|
||||
{
|
||||
// First part of help message is specific to this utility
|
||||
std::string strUsage = _("Bitcoin Core bitcoin-tx utility version") + " " + FormatFullVersion() + "\n\n" +
|
||||
|
||||
@@ -67,7 +67,7 @@ bool AppInit(int argc, char* argv[])
|
||||
ParseParameters(argc, argv);
|
||||
|
||||
// Process help and version before taking care about datadir
|
||||
if (mapArgs.count("-?") || mapArgs.count("-help") || mapArgs.count("-version"))
|
||||
if (mapArgs.count("-?") || mapArgs.count("-h") || mapArgs.count("-help") || mapArgs.count("-version"))
|
||||
{
|
||||
std::string strUsage = _("Bitcoin Core Daemon") + " " + _("version") + " " + FormatFullVersion() + "\n";
|
||||
|
||||
|
||||
@@ -122,6 +122,7 @@ public:
|
||||
nMinerThreads = 0;
|
||||
nTargetTimespan = 14 * 24 * 60 * 60; // two weeks
|
||||
nTargetSpacing = 10 * 60;
|
||||
nMaxTipAge = 24 * 60 * 60;
|
||||
|
||||
/**
|
||||
* Build the genesis block. Note that the output of the genesis coinbase cannot
|
||||
@@ -203,6 +204,7 @@ public:
|
||||
nMinerThreads = 0;
|
||||
nTargetTimespan = 14 * 24 * 60 * 60; //! two weeks
|
||||
nTargetSpacing = 10 * 60;
|
||||
nMaxTipAge = 0x7fffffff;
|
||||
|
||||
//! Modify the testnet genesis block so the timestamp is valid for a later start.
|
||||
genesis.nTime = 1296688602;
|
||||
@@ -260,6 +262,7 @@ public:
|
||||
nTargetTimespan = 14 * 24 * 60 * 60; //! two weeks
|
||||
nTargetSpacing = 10 * 60;
|
||||
bnProofOfWorkLimit = ~uint256(0) >> 1;
|
||||
nMaxTipAge = 24 * 60 * 60;
|
||||
genesis.nTime = 1296688602;
|
||||
genesis.nBits = 0x207fffff;
|
||||
genesis.nNonce = 2;
|
||||
|
||||
@@ -69,6 +69,7 @@ public:
|
||||
int64_t TargetTimespan() const { return nTargetTimespan; }
|
||||
int64_t TargetSpacing() const { return nTargetSpacing; }
|
||||
int64_t Interval() const { return nTargetTimespan / nTargetSpacing; }
|
||||
int64_t MaxTipAge() const { return nMaxTipAge; }
|
||||
/** Make miner stop after a block is found. In RPC, don't return until nGenProcLimit blocks are generated */
|
||||
bool MineBlocksOnDemand() const { return fMineBlocksOnDemand; }
|
||||
/** In the future use NetworkIDString() for RPC fields */
|
||||
@@ -95,6 +96,7 @@ protected:
|
||||
int64_t nTargetTimespan;
|
||||
int64_t nTargetSpacing;
|
||||
int nMinerThreads;
|
||||
long nMaxTipAge;
|
||||
std::vector<CDNSSeedData> vSeeds;
|
||||
std::vector<unsigned char> base58Prefixes[MAX_BASE58_TYPES];
|
||||
CBaseChainParams::Network networkID;
|
||||
|
||||
77
src/main.cpp
77
src/main.cpp
@@ -1110,47 +1110,45 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa
|
||||
bool GetTransaction(const uint256 &hash, CTransaction &txOut, uint256 &hashBlock, bool fAllowSlow)
|
||||
{
|
||||
CBlockIndex *pindexSlow = NULL;
|
||||
|
||||
LOCK(cs_main);
|
||||
|
||||
if (mempool.lookup(hash, txOut))
|
||||
{
|
||||
LOCK(cs_main);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (fTxIndex) {
|
||||
CDiskTxPos postx;
|
||||
if (pblocktree->ReadTxIndex(hash, postx)) {
|
||||
CAutoFile file(OpenBlockFile(postx, true), SER_DISK, CLIENT_VERSION);
|
||||
if (file.IsNull())
|
||||
return error("%s: OpenBlockFile failed", __func__);
|
||||
CBlockHeader header;
|
||||
try {
|
||||
file >> header;
|
||||
fseek(file.Get(), postx.nTxOffset, SEEK_CUR);
|
||||
file >> txOut;
|
||||
} catch (std::exception &e) {
|
||||
return error("%s : Deserialize or I/O error - %s", __func__, e.what());
|
||||
}
|
||||
hashBlock = header.GetHash();
|
||||
if (txOut.GetHash() != hash)
|
||||
return error("%s : txid mismatch", __func__);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (fAllowSlow) { // use coin database to locate block that contains transaction, and scan it
|
||||
int nHeight = -1;
|
||||
{
|
||||
if (mempool.lookup(hash, txOut))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (fTxIndex) {
|
||||
CDiskTxPos postx;
|
||||
if (pblocktree->ReadTxIndex(hash, postx)) {
|
||||
CAutoFile file(OpenBlockFile(postx, true), SER_DISK, CLIENT_VERSION);
|
||||
if (file.IsNull())
|
||||
return error("%s: OpenBlockFile failed", __func__);
|
||||
CBlockHeader header;
|
||||
try {
|
||||
file >> header;
|
||||
fseek(file.Get(), postx.nTxOffset, SEEK_CUR);
|
||||
file >> txOut;
|
||||
} catch (std::exception &e) {
|
||||
return error("%s : Deserialize or I/O error - %s", __func__, e.what());
|
||||
}
|
||||
hashBlock = header.GetHash();
|
||||
if (txOut.GetHash() != hash)
|
||||
return error("%s : txid mismatch", __func__);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (fAllowSlow) { // use coin database to locate block that contains transaction, and scan it
|
||||
int nHeight = -1;
|
||||
{
|
||||
CCoinsViewCache &view = *pcoinsTip;
|
||||
const CCoins* coins = view.AccessCoins(hash);
|
||||
if (coins)
|
||||
nHeight = coins->nHeight;
|
||||
}
|
||||
if (nHeight > 0)
|
||||
pindexSlow = chainActive[nHeight];
|
||||
CCoinsViewCache &view = *pcoinsTip;
|
||||
const CCoins* coins = view.AccessCoins(hash);
|
||||
if (coins)
|
||||
nHeight = coins->nHeight;
|
||||
}
|
||||
if (nHeight > 0)
|
||||
pindexSlow = chainActive[nHeight];
|
||||
}
|
||||
|
||||
if (pindexSlow) {
|
||||
@@ -1250,6 +1248,7 @@ CAmount GetBlockValue(int nHeight, const CAmount& nFees)
|
||||
|
||||
bool IsInitialBlockDownload()
|
||||
{
|
||||
const CChainParams& chainParams = Params();
|
||||
LOCK(cs_main);
|
||||
if (fImporting || fReindex || chainActive.Height() < Checkpoints::GetTotalBlocksEstimate())
|
||||
return true;
|
||||
@@ -1257,7 +1256,7 @@ bool IsInitialBlockDownload()
|
||||
if (lockIBDState)
|
||||
return false;
|
||||
bool state = (chainActive.Height() < pindexBestHeader->nHeight - 24 * 6 ||
|
||||
pindexBestHeader->GetBlockTime() < GetTime() - 24 * 60 * 60);
|
||||
pindexBestHeader->GetBlockTime() < GetTime() - chainParams.MaxTipAge());
|
||||
if (!state)
|
||||
lockIBDState = true;
|
||||
return state;
|
||||
|
||||
@@ -537,7 +537,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
// Show help message immediately after parsing command-line options (for "-lang") and setting locale,
|
||||
// but before showing splash screen.
|
||||
if (mapArgs.count("-?") || mapArgs.count("-help") || mapArgs.count("-version"))
|
||||
if (mapArgs.count("-?") || mapArgs.count("-h") || mapArgs.count("-help") || mapArgs.count("-version"))
|
||||
{
|
||||
HelpMessageDialog help(NULL, mapArgs.count("-version"));
|
||||
help.showOrPrint();
|
||||
|
||||
@@ -207,11 +207,6 @@ BitcoinGUI::BitcoinGUI(const NetworkStyle *networkStyle, QWidget *parent) :
|
||||
statusBar()->addWidget(progressBar);
|
||||
statusBar()->addPermanentWidget(frameBlocks);
|
||||
|
||||
connect(openRPCConsoleAction, SIGNAL(triggered()), rpcConsole, SLOT(show()));
|
||||
|
||||
// prevents an open debug window from becoming stuck/unusable on client shutdown
|
||||
connect(quitAction, SIGNAL(triggered()), rpcConsole, SLOT(hide()));
|
||||
|
||||
// Install event filter to be able to catch status tip events (QEvent::StatusTip)
|
||||
this->installEventFilter(this);
|
||||
|
||||
@@ -334,6 +329,10 @@ void BitcoinGUI::createActions(const NetworkStyle *networkStyle)
|
||||
connect(optionsAction, SIGNAL(triggered()), this, SLOT(optionsClicked()));
|
||||
connect(toggleHideAction, SIGNAL(triggered()), this, SLOT(toggleHidden()));
|
||||
connect(showHelpMessageAction, SIGNAL(triggered()), this, SLOT(showHelpMessageClicked()));
|
||||
connect(openRPCConsoleAction, SIGNAL(triggered()), this, SLOT(showDebugWindow()));
|
||||
// prevents an open debug window from becoming stuck/unusable on client shutdown
|
||||
connect(quitAction, SIGNAL(triggered()), rpcConsole, SLOT(hide()));
|
||||
|
||||
#ifdef ENABLE_WALLET
|
||||
if(walletFrame)
|
||||
{
|
||||
@@ -569,6 +568,14 @@ void BitcoinGUI::aboutClicked()
|
||||
dlg.exec();
|
||||
}
|
||||
|
||||
void BitcoinGUI::showDebugWindow()
|
||||
{
|
||||
rpcConsole->showNormal();
|
||||
rpcConsole->show();
|
||||
rpcConsole->raise();
|
||||
rpcConsole->activateWindow();
|
||||
}
|
||||
|
||||
void BitcoinGUI::showHelpMessageClicked()
|
||||
{
|
||||
HelpMessageDialog *help = new HelpMessageDialog(this, false);
|
||||
|
||||
@@ -189,6 +189,8 @@ private slots:
|
||||
void optionsClicked();
|
||||
/** Show about dialog */
|
||||
void aboutClicked();
|
||||
/** Show debug window */
|
||||
void showDebugWindow();
|
||||
/** Show help message dialog */
|
||||
void showHelpMessageClicked();
|
||||
#ifndef Q_OS_MAC
|
||||
|
||||
@@ -390,7 +390,7 @@ void SubstituteFonts(const QString& language)
|
||||
{
|
||||
#if defined(Q_OS_MAC)
|
||||
// Background:
|
||||
// OSX's default font changed in 10.9 and QT is unable to find it with its
|
||||
// OSX's default font changed in 10.9 and Qt is unable to find it with its
|
||||
// usual fallback methods when building against the 10.7 sdk or lower.
|
||||
// The 10.8 SDK added a function to let it find the correct fallback font.
|
||||
// If this fallback is not properly loaded, some characters may fail to
|
||||
|
||||
@@ -16,6 +16,8 @@ their tests in a test suite called "<source_filename>_tests". For an
|
||||
examples of this pattern, examine uint160_tests.cpp and
|
||||
uint256_tests.cpp.
|
||||
|
||||
Add the source files to /src/Makefile.test.include to add them to the build.
|
||||
|
||||
For further reading, I found the following website to be helpful in
|
||||
explaining how the boost unit test framework works:
|
||||
[http://www.alittlemadness.com/2009/03/31/c-unit-testing-with-boosttest/](http://www.alittlemadness.com/2009/03/31/c-unit-testing-with-boosttest/).
|
||||
Reference in New Issue
Block a user