Update build docs with Blackcoin information
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
Bitcoin Core 0.13.2
|
||||
Blackcoin More 2.13.2.1
|
||||
=====================
|
||||
|
||||
Intro
|
||||
-----
|
||||
Bitcoin is a free open source peer-to-peer electronic cash system that is
|
||||
Blackcoin 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.
|
||||
@@ -11,13 +11,13 @@ with each other, with the help of a P2P network to check for double-spending.
|
||||
|
||||
Setup
|
||||
-----
|
||||
Unpack the files into a directory and run bitcoin-qt.exe.
|
||||
Unpack the files into a directory and run blackmore-qt.exe.
|
||||
|
||||
Bitcoin Core is the original Bitcoin client and it builds the backbone of the network.
|
||||
However, it downloads and stores the entire history of Bitcoin transactions;
|
||||
Blackcoin More is the original Blackcoin client and it builds the backbone of the network.
|
||||
However, it downloads and stores the entire history of Blackcoin transactions;
|
||||
depending on the speed of your computer and network connection, the synchronization
|
||||
process can take anywhere from a few hours to a day or more.
|
||||
|
||||
See the bitcoin wiki at:
|
||||
https://en.bitcoin.it/wiki/Main_Page
|
||||
See the blackcoin website at:
|
||||
https://blackcoin.org
|
||||
for more help and information.
|
||||
|
||||
@@ -2,7 +2,7 @@ OpenBSD build guide
|
||||
======================
|
||||
(updated for OpenBSD 5.9)
|
||||
|
||||
This guide describes how to build bitcoind and command-line utilities on OpenBSD.
|
||||
This guide describes how to build blackmored and command-line utilities on OpenBSD.
|
||||
|
||||
As OpenBSD is most common as a server OS, we will not bother with the GUI.
|
||||
|
||||
@@ -18,7 +18,7 @@ pkg_add automake # (select highest version, e.g. 1.15)
|
||||
pkg_add python # (select highest version, e.g. 3.5)
|
||||
```
|
||||
|
||||
The default C++ compiler that comes with OpenBSD 5.9 is g++ 4.2. This version is old (from 2007), and is not able to compile the current version of Bitcoin Core, primarily as it has no C++11 support, but even before there were issues. So here we will be installing a newer compiler.
|
||||
The default C++ compiler that comes with OpenBSD 5.9 is g++ 4.2. This version is old (from 2007), and is not able to compile the current version of Blackcoin More, primarily as it has no C++11 support, but even before there were issues. So here we will be installing a newer compiler.
|
||||
|
||||
GCC
|
||||
-------
|
||||
@@ -39,10 +39,10 @@ Do not use `pkg_add boost`! The boost version installed thus is compiled using t
|
||||
...
|
||||
Segmentation fault (core dumped)
|
||||
|
||||
This makes it necessary to build boost, or at least the parts used by Bitcoin Core, manually:
|
||||
This makes it necessary to build boost, or at least the parts used by Blackcoin More, manually:
|
||||
|
||||
```
|
||||
# Pick some path to install boost to, here we create a directory within the bitcoin directory
|
||||
# Pick some path to install boost to, here we create a directory within the blackcoin directory
|
||||
BITCOIN_ROOT=$(pwd)
|
||||
BOOST_PREFIX="${BITCOIN_ROOT}/boost"
|
||||
mkdir -p $BOOST_PREFIX
|
||||
@@ -58,7 +58,7 @@ cd boost_1_61_0
|
||||
# Also here: https://gist.githubusercontent.com/laanwj/bf359281dc319b8ff2e1/raw/92250de8404b97bb99d72ab898f4a8cb35ae1ea3/patch-boost_test_impl_execution_monitor_ipp.patch
|
||||
patch -p0 < /usr/ports/devel/boost/patches/patch-boost_test_impl_execution_monitor_ipp
|
||||
|
||||
# Build w/ minimum configuration necessary for bitcoin
|
||||
# Build w/ minimum configuration necessary for blackcoin
|
||||
echo 'using gcc : : eg++ : <cxxflags>"-fvisibility=hidden -fPIC" <linkflags>"" <archiver>"ar" <striper>"strip" <ranlib>"ranlib" <rc>"" : ;' > user-config.jam
|
||||
config_opts="runtime-link=shared threadapi=pthread threading=multi link=static variant=release --layout=tagged --build-type=complete --user-config=user-config.jam -sNO_BZIP2=1"
|
||||
./bootstrap.sh --without-icu --with-libraries=chrono,filesystem,program_options,system,thread,test
|
||||
@@ -74,19 +74,19 @@ See "Berkeley DB" in [build_unix.md](build_unix.md) for instructions on how to b
|
||||
You cannot use the BerkeleyDB library from ports, for the same reason as boost above (g++/libstd++ incompatibility).
|
||||
|
||||
```bash
|
||||
# Pick some path to install BDB to, here we create a directory within the bitcoin directory
|
||||
# Pick some path to install BDB to, here we create a directory within the blackcoin directory
|
||||
BITCOIN_ROOT=$(pwd)
|
||||
BDB_PREFIX="${BITCOIN_ROOT}/db4"
|
||||
BDB_PREFIX="${BITCOIN_ROOT}/build"
|
||||
mkdir -p $BDB_PREFIX
|
||||
|
||||
# Fetch the source and verify that it is not tampered with
|
||||
curl -o db-4.8.30.NC.tar.gz 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz'
|
||||
echo '12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef db-4.8.30.NC.tar.gz' | sha256 -c
|
||||
# MUST output: (SHA256) db-4.8.30.NC.tar.gz: OK
|
||||
tar -xzf db-4.8.30.NC.tar.gz
|
||||
curl -o db-6.2.32.tar.gz 'http://download.oracle.com/berkeley-db/db-6.2.32.tar.gz'
|
||||
echo 'a9c5e2b004a5777aa03510cfe5cd766a4a3b777713406b02809c17c8e0e7a8fb db-6.2.32.tar.gz' | sha256 -c
|
||||
# MUST output: (SHA256) db-6.2.32.tar.gz: OK
|
||||
tar -xzf db-6.2.32.tar.gz
|
||||
|
||||
# Build the library and install to specified prefix
|
||||
cd db-4.8.30.NC/build_unix/
|
||||
cd db-6.2.32/build_unix/
|
||||
# Note: Do a static build so that it can be embedded into the executable, instead of having to find a .so at runtime
|
||||
../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX CC=egcc CXX=eg++ CPP=ecpp
|
||||
make install # do NOT use -jX, this is broken
|
||||
@@ -108,7 +108,7 @@ The change will only affect the current shell and processes spawned by it. To
|
||||
make the change system-wide, change `datasize-cur` and `datasize-max` in
|
||||
`/etc/login.conf`, and reboot.
|
||||
|
||||
### Building Bitcoin Core
|
||||
### Building Blackcoin More
|
||||
|
||||
**Important**: use `gmake`, not `make`. The non-GNU `make` will exit with a horrible error.
|
||||
|
||||
|
||||
@@ -20,17 +20,17 @@ Dependencies
|
||||
|
||||
NOTE: Building with Qt4 is still supported, however, could result in a broken UI. Building with Qt5 is recommended.
|
||||
|
||||
Build Bitcoin Core
|
||||
Build Blackcoin More
|
||||
------------------------
|
||||
|
||||
1. Clone the bitcoin source code and cd into `bitcoin`
|
||||
1. Clone the blackcoin source code and cd into `blackcoin-more`
|
||||
|
||||
git clone https://github.com/bitcoin/bitcoin
|
||||
cd bitcoin
|
||||
git clone https://gitlab.com/blackcoin/blackcoin-more/
|
||||
cd blackcoin-more
|
||||
|
||||
2. Build bitcoin-core:
|
||||
2. Build blackcoin-more:
|
||||
|
||||
Configure and build the headless bitcoin binaries as well as the GUI (if Qt is found).
|
||||
Configure and build the headless blackcoin binaries as well as the GUI (if Qt is found).
|
||||
|
||||
You can disable the GUI build by passing `--without-gui` to configure.
|
||||
|
||||
@@ -49,37 +49,37 @@ Build Bitcoin Core
|
||||
Running
|
||||
-------
|
||||
|
||||
Bitcoin Core is now available at `./src/bitcoind`
|
||||
Blackcoin More is now available at `./src/blackmored`
|
||||
|
||||
Before running, it's recommended you create an RPC configuration file.
|
||||
|
||||
echo -e "rpcuser=bitcoinrpc\nrpcpassword=$(xxd -l 16 -p /dev/urandom)" > "/Users/${USER}/Library/Application Support/Bitcoin/bitcoin.conf"
|
||||
echo -e "rpcuser=blackcoinrpc\nrpcpassword=$(xxd -l 16 -p /dev/urandom)" > "/Users/${USER}/Library/Application Support/Blackmore/blackmore.conf"
|
||||
|
||||
chmod 600 "/Users/${USER}/Library/Application Support/Bitcoin/bitcoin.conf"
|
||||
chmod 600 "/Users/${USER}/Library/Application Support/Blackmore/blackmore.conf"
|
||||
|
||||
The first time you run bitcoind, it will start downloading the blockchain. This process could take several hours.
|
||||
The first time you run blackmored, it will start downloading the blockchain. This process could take several hours.
|
||||
|
||||
You can monitor the download process by looking at the debug.log file:
|
||||
|
||||
tail -f $HOME/Library/Application\ Support/Bitcoin/debug.log
|
||||
tail -f $HOME/Library/Application\ Support/Blackmore/debug.log
|
||||
|
||||
Other commands:
|
||||
-------
|
||||
|
||||
./src/bitcoind -daemon # Starts the bitcoin daemon.
|
||||
./src/bitcoin-cli --help # Outputs a list of command-line options.
|
||||
./src/bitcoin-cli help # Outputs a list of RPC commands when the daemon is running.
|
||||
./src/blackmored -daemon # Starts the blackcoin daemon.
|
||||
./src/blackmore-cli --help # Outputs a list of command-line options.
|
||||
./src/blackmore-cli help # Outputs a list of RPC commands when the daemon is running.
|
||||
|
||||
Using Qt Creator as IDE
|
||||
------------------------
|
||||
You can use Qt Creator as an IDE, for bitcoin development.
|
||||
You can use Qt Creator as an IDE, for blackcoin development.
|
||||
Download and install the community edition of [Qt Creator](https://www.qt.io/download/).
|
||||
Uncheck everything except Qt Creator during the installation process.
|
||||
|
||||
1. Make sure you installed everything through Homebrew mentioned above
|
||||
2. Do a proper ./configure --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
|
||||
4. Enter "blackmore-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..."
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
UNIX BUILD NOTES
|
||||
====================
|
||||
Some notes on how to build Bitcoin Core in Unix.
|
||||
Some notes on how to build Blackcoin More in Unix.
|
||||
|
||||
(for OpenBSD specific instructions, see [build-openbsd.md](build-openbsd.md))
|
||||
|
||||
Note
|
||||
---------------------
|
||||
Always use absolute paths to configure and compile bitcoin and the dependencies,
|
||||
Always use absolute paths to configure and compile blackcoin and the dependencies,
|
||||
for example, when specifying the path of the dependency:
|
||||
|
||||
../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX
|
||||
@@ -24,7 +24,7 @@ make
|
||||
make install # optional
|
||||
```
|
||||
|
||||
This will build bitcoin-qt as well if the dependencies are met.
|
||||
This will build blackmore-qt as well if the dependencies are met.
|
||||
|
||||
Dependencies
|
||||
---------------------
|
||||
@@ -42,7 +42,7 @@ Optional dependencies:
|
||||
Library | Purpose | Description
|
||||
------------|------------------|----------------------
|
||||
miniupnpc | UPnP Support | Firewall-jumping support
|
||||
libdb4.8 | Berkeley DB | Wallet storage (only needed when wallet enabled)
|
||||
libdb6.2 | 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)
|
||||
@@ -55,7 +55,7 @@ Memory Requirements
|
||||
--------------------
|
||||
|
||||
C++ compilers are memory-hungry. It is recommended to have at least 1.5 GB of
|
||||
memory available when compiling Bitcoin Core. On systems with less, gcc can be
|
||||
memory available when compiling Blackcoin More. On systems with less, gcc can be
|
||||
tuned to conserve memory with additional CXXFLAGS:
|
||||
|
||||
|
||||
@@ -79,20 +79,14 @@ install necessary parts of boost:
|
||||
|
||||
sudo apt-get install libboost-all-dev
|
||||
|
||||
BerkeleyDB is required for the wallet. db4.8 packages are available [here](https://launchpad.net/~bitcoin/+archive/bitcoin).
|
||||
You can add the repository and install using the following commands:
|
||||
BerkeleyDB 6.2 is required for the wallet.
|
||||
|
||||
sudo apt-get install software-properties-common
|
||||
sudo add-apt-repository ppa:bitcoin/bitcoin
|
||||
sudo apt-get update
|
||||
sudo apt-get install libdb4.8-dev libdb4.8++-dev
|
||||
|
||||
Ubuntu and Debian have their own libdb-dev and libdb++-dev packages, but these will install
|
||||
BerkeleyDB 5.1 or later, which break binary wallet compatibility with the distributed executables which
|
||||
are based on BerkeleyDB 4.8. If you do not care about wallet compatibility,
|
||||
Ubuntu and Debian have their own libdb-dev and libdb++-dev packages, but these will most likely install
|
||||
BerkeleyDB 5.1, which break binary wallet compatibility with the distributed executables which
|
||||
are based on BerkeleyDB 6.2. If you do not care about wallet compatibility,
|
||||
pass `--with-incompatible-bdb` to configure.
|
||||
|
||||
See the section "Disable-wallet mode" to build Bitcoin Core without wallet.
|
||||
See the section "Disable-wallet mode" to build Blackcoin More without wallet.
|
||||
|
||||
Optional:
|
||||
|
||||
@@ -105,7 +99,7 @@ ZMQ dependencies:
|
||||
Dependencies for the GUI: Ubuntu & Debian
|
||||
-----------------------------------------
|
||||
|
||||
If you want to build Bitcoin-Qt, make sure that the required packages for Qt development
|
||||
If you want to build Blackmore-Qt, make sure that the required packages for Qt development
|
||||
are installed. Either Qt 5 or Qt 4 are necessary to build the GUI.
|
||||
If both Qt 4 and Qt 5 are installed, Qt 5 will be used. Pass `--with-gui=qt4` to configure to choose Qt4.
|
||||
To build without GUI pass `--without-gui`.
|
||||
@@ -122,7 +116,7 @@ libqrencode (optional) can be installed with:
|
||||
|
||||
sudo apt-get install libqrencode-dev
|
||||
|
||||
Once these are installed, they will be found by configure and a bitcoin-qt executable will be
|
||||
Once these are installed, they will be found by configure and a blackmore-qt executable will be
|
||||
built by default.
|
||||
|
||||
Dependency Build Instructions: Fedora
|
||||
@@ -145,7 +139,7 @@ libqrencode (optional) can be installed with:
|
||||
|
||||
Notes
|
||||
-----
|
||||
The release is built with GCC and then "strip bitcoind" to strip the debug
|
||||
The release is built with GCC and then "strip blackmored" to strip the debug
|
||||
symbols, which reduces the executable size by about 90%.
|
||||
|
||||
|
||||
@@ -163,28 +157,28 @@ turned off by default. See the configure options for upnp behavior desired:
|
||||
|
||||
Berkeley DB
|
||||
-----------
|
||||
It is recommended to use Berkeley DB 4.8. If you have to build it yourself:
|
||||
It is recommended to use Berkeley DB 6.2. If you have to build it yourself:
|
||||
|
||||
```bash
|
||||
BITCOIN_ROOT=$(pwd)
|
||||
|
||||
# Pick some path to install BDB to, here we create a directory within the bitcoin directory
|
||||
BDB_PREFIX="${BITCOIN_ROOT}/db4"
|
||||
# Pick some path to install BDB to, here we create a directory within the blackcoin directory
|
||||
BDB_PREFIX="${BITCOIN_ROOT}/build"
|
||||
mkdir -p $BDB_PREFIX
|
||||
|
||||
# Fetch the source and verify that it is not tampered with
|
||||
wget 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz'
|
||||
echo '12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef db-4.8.30.NC.tar.gz' | sha256sum -c
|
||||
# -> db-4.8.30.NC.tar.gz: OK
|
||||
tar -xzvf db-4.8.30.NC.tar.gz
|
||||
wget 'http://download.oracle.com/berkeley-db/db-6.2.32.tar.gz'
|
||||
echo 'a9c5e2b004a5777aa03510cfe5cd766a4a3b777713406b02809c17c8e0e7a8fb db-6.2.32.tar.gz' | sha256sum -c
|
||||
# -> db-6.2.32.tar.gz: OK
|
||||
tar -xzvf db-6.2.32.tar.gz
|
||||
|
||||
# Build the library and install to our prefix
|
||||
cd db-4.8.30.NC/build_unix/
|
||||
cd db-6.2.32/build_unix/
|
||||
# Note: Do a static build so that it can be embedded into the executable, instead of having to find a .so at runtime
|
||||
../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX
|
||||
make install
|
||||
|
||||
# Configure Bitcoin Core to use our own-built instance of BDB
|
||||
# Configure Blackcoin More to use our own-built instance of BDB
|
||||
cd $BITCOIN_ROOT
|
||||
./autogen.sh
|
||||
./configure LDFLAGS="-L${BDB_PREFIX}/lib/" CPPFLAGS="-I${BDB_PREFIX}/include/" # (other args...)
|
||||
@@ -203,7 +197,7 @@ If you need to build Boost yourself:
|
||||
|
||||
Security
|
||||
--------
|
||||
To help make your bitcoin installation more secure by making certain attacks impossible to
|
||||
To help make your blackcoin installation more secure by making certain attacks impossible to
|
||||
exploit even if a vulnerability is found, binaries are hardened by default.
|
||||
This can be disabled with:
|
||||
|
||||
@@ -227,7 +221,7 @@ Hardening enables the following features:
|
||||
|
||||
To test that you have built PIE executable, install scanelf, part of paxutils, and use:
|
||||
|
||||
scanelf -e ./bitcoin
|
||||
scanelf -e ./blackmore
|
||||
|
||||
The output should contain:
|
||||
|
||||
@@ -236,13 +230,13 @@ Hardening enables the following features:
|
||||
|
||||
* Non-executable Stack
|
||||
If the stack is executable then trivial stack based buffer overflow exploits are possible if
|
||||
vulnerable buffers are found. By default, bitcoin should be built with a non-executable stack
|
||||
vulnerable buffers are found. By default, blackcoin should be built with a non-executable stack
|
||||
but if one of the libraries it uses asks for an executable stack or someone makes a mistake
|
||||
and uses a compiler extension which requires an executable stack, it will silently build an
|
||||
executable without the non-executable stack protection.
|
||||
|
||||
To verify that the stack is non-executable after compiling use:
|
||||
`scanelf -e ./bitcoin`
|
||||
`scanelf -e ./blackmore`
|
||||
|
||||
the output should contain:
|
||||
STK/REL/PTL
|
||||
@@ -252,7 +246,7 @@ Hardening enables the following features:
|
||||
|
||||
Disable-wallet mode
|
||||
--------------------
|
||||
When the intention is to run only a P2P node without a wallet, bitcoin may be compiled in
|
||||
When the intention is to run only a P2P node without a wallet, blackcoin may be compiled in
|
||||
disable-wallet mode with:
|
||||
|
||||
./configure --disable-wallet
|
||||
@@ -274,18 +268,17 @@ Setup and Build Example: Arch Linux
|
||||
This example lists the steps necessary to setup and build a command line only, non-wallet distribution of the latest changes on Arch Linux:
|
||||
|
||||
pacman -S git base-devel boost libevent python
|
||||
git clone https://github.com/bitcoin/bitcoin.git
|
||||
cd bitcoin/
|
||||
git clone https://gitlab.com/blackcoin/blackcoin-more.git
|
||||
cd blackcoin-more/
|
||||
./autogen.sh
|
||||
./configure --disable-wallet --without-gui --without-miniupnpc
|
||||
make check
|
||||
|
||||
Note:
|
||||
Enabling wallet support requires either compiling against a Berkeley DB newer than 4.8 (package `db`) using `--with-incompatible-bdb`,
|
||||
or building and depending on a local version of Berkeley DB 4.8. The readily available Arch Linux packages are currently built using
|
||||
`--with-incompatible-bdb` according to the [PKGBUILD](https://projects.archlinux.org/svntogit/community.git/tree/bitcoin/trunk/PKGBUILD).
|
||||
As mentioned above, when maintaining portability of the wallet between the standard Bitcoin Core distributions and independently built
|
||||
node software is desired, Berkeley DB 4.8 must be used.
|
||||
Enabling wallet support requires either compiling against a Berkeley DB newer than 6.2 (package `db`) using `--with-incompatible-bdb`,
|
||||
or building and depending on a local version of Berkeley DB 6.2.
|
||||
As mentioned above, when maintaining portability of the wallet between the standard Blackcoin More distributions and independently built
|
||||
node software is desired, Berkeley DB 6.2 must be used.
|
||||
|
||||
|
||||
ARM Cross-compilation
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
WINDOWS BUILD NOTES
|
||||
====================
|
||||
|
||||
Some notes on how to build Bitcoin Core for Windows.
|
||||
Some notes on how to build Blackcoin More for Windows.
|
||||
|
||||
Most developers use cross-compilation from Ubuntu to build executables for
|
||||
Windows. This is also used to build the release binaries.
|
||||
|
||||
Reference in New Issue
Block a user