Update build docs with Blackcoin information
This commit is contained in:
@@ -1,9 +1,9 @@
|
|||||||
Contributing to Bitcoin Core
|
Contributing to Blackcoin More
|
||||||
============================
|
============================
|
||||||
|
|
||||||
The Bitcoin Core project operates an open contributor model where anyone is welcome to contribute towards development in the form of peer review, testing and patches. This document explains the practical process and guidelines for contributing.
|
The Blackcoin More project operates an open contributor model where anyone is welcome to contribute towards development in the form of peer review, testing and patches. This document explains the practical process and guidelines for contributing.
|
||||||
|
|
||||||
Firstly in terms of structure, there is no particular concept of “Core developers” in the sense of privileged people. Open source often naturally revolves around meritocracy where longer term contributors gain more trust from the developer community. However, some hierarchy is necessary for practical purposes. As such there are repository “maintainers” who are responsible for merging pull requests as well as a “lead maintainer” who is responsible for the release cycle, overall merging, moderation and appointment of maintainers.
|
Firstly in terms of structure, there is no particular concept of “Blackcoin More developers” in the sense of privileged people. Open source often naturally revolves around meritocracy where longer term contributors gain more trust from the developer community. However, some hierarchy is necessary for practical purposes. As such there are repository “maintainers” who are responsible for merging pull requests as well as a “lead maintainer” who is responsible for the release cycle, overall merging, moderation and appointment of maintainers.
|
||||||
|
|
||||||
|
|
||||||
Contributor Workflow
|
Contributor Workflow
|
||||||
@@ -81,9 +81,9 @@ Project maintainers aim for a quick turnaround on refactoring pull requests, so
|
|||||||
"Decision Making" Process
|
"Decision Making" Process
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
The following applies to code changes to the Bitcoin Core project (and related projects such as libsecp256k1), and is not to be confused with overall Bitcoin Network Protocol consensus changes.
|
The following applies to code changes to the Blackcoin More project, and is not to be confused with overall Blackcoin Network Protocol consensus changes.
|
||||||
|
|
||||||
Whether a pull request is merged into Bitcoin Core rests with the project merge maintainers and ultimately the project lead.
|
Whether a pull request is merged into Blackcoin More rests with the project merge maintainers and ultimately the project lead.
|
||||||
|
|
||||||
Maintainers will take into consideration if a patch is in line with the general principles of the project; meets the minimum standards for inclusion; and will judge the general consensus of contributors.
|
Maintainers will take into consideration if a patch is in line with the general principles of the project; meets the minimum standards for inclusion; and will judge the general consensus of contributors.
|
||||||
|
|
||||||
@@ -96,7 +96,7 @@ In general, all pull requests must:
|
|||||||
- not break the existing test suite;
|
- not break the existing test suite;
|
||||||
- where bugs are fixed, where possible, there should be unit tests demonstrating the bug and also proving the fix. This helps prevent regression.
|
- where bugs are fixed, where possible, there should be unit tests demonstrating the bug and also proving the fix. This helps prevent regression.
|
||||||
|
|
||||||
Patches that change Bitcoin consensus rules are considerably more involved than normal because they affect the entire ecosystem and so must be preceded by extensive mailing list discussions and have a numbered BIP. While each case will be different, one should be prepared to expend more time and effort than for other kinds of patches because of increased peer review and consensus building requirements.
|
Patches that change Blackcoin consensus rules are considerably more involved than normal because they affect the entire ecosystem and so must be preceded by extensive mailing list discussions and have a numbered BIP. While each case will be different, one should be prepared to expend more time and effort than for other kinds of patches because of increased peer review and consensus building requirements.
|
||||||
|
|
||||||
|
|
||||||
###Peer Review
|
###Peer Review
|
||||||
@@ -115,10 +115,10 @@ Project maintainers reserve the right to weigh the opinions of peer reviewers us
|
|||||||
|
|
||||||
Where a patch set affects consensus critical code, the bar will be set much higher in terms of discussion and peer review requirements, keeping in mind that mistakes could be very costly to the wider community. This includes refactoring of consensus critical code.
|
Where a patch set affects consensus critical code, the bar will be set much higher in terms of discussion and peer review requirements, keeping in mind that mistakes could be very costly to the wider community. This includes refactoring of consensus critical code.
|
||||||
|
|
||||||
Where a patch set proposes to change the Bitcoin consensus, it must have been discussed extensively on the mailing list and IRC, be accompanied by a widely discussed BIP and have a generally widely perceived technical consensus of being a worthwhile change based on the judgement of the maintainers.
|
Where a patch set proposes to change the Blackcoin consensus, it must have been discussed extensively on Gitter, be accompanied by a widely discussed BIP and have a generally widely perceived technical consensus of being a worthwhile change based on the judgement of the maintainers.
|
||||||
|
|
||||||
|
|
||||||
Release Policy
|
Release Policy
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
The project leader is the release manager for each Bitcoin Core release.
|
The project leader is the release manager for each Blackcoin More release.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
Building Bitcoin
|
Building Blackcoin
|
||||||
================
|
================
|
||||||
|
|
||||||
See doc/build-*.md for instructions on building the various
|
See doc/build-*.md for instructions on building the various
|
||||||
elements of the Bitcoin Core reference implementation of Bitcoin.
|
elements of the Blackcoin More reference implementation of Blackcoin.
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
Bitcoin Core 0.13.2
|
Blackcoin More 2.13.2.1
|
||||||
=====================
|
=====================
|
||||||
|
|
||||||
Intro
|
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
|
completely decentralized, without the need for a central server or trusted
|
||||||
parties. Users hold the crypto keys to their own money and transact directly
|
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.
|
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
|
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.
|
Blackcoin More is the original Blackcoin client and it builds the backbone of the network.
|
||||||
However, it downloads and stores the entire history of Bitcoin transactions;
|
However, it downloads and stores the entire history of Blackcoin transactions;
|
||||||
depending on the speed of your computer and network connection, the synchronization
|
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.
|
process can take anywhere from a few hours to a day or more.
|
||||||
|
|
||||||
See the bitcoin wiki at:
|
See the blackcoin website at:
|
||||||
https://en.bitcoin.it/wiki/Main_Page
|
https://blackcoin.org
|
||||||
for more help and information.
|
for more help and information.
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ OpenBSD build guide
|
|||||||
======================
|
======================
|
||||||
(updated for OpenBSD 5.9)
|
(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.
|
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)
|
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
|
GCC
|
||||||
-------
|
-------
|
||||||
@@ -39,10 +39,10 @@ Do not use `pkg_add boost`! The boost version installed thus is compiled using t
|
|||||||
...
|
...
|
||||||
Segmentation fault (core dumped)
|
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)
|
BITCOIN_ROOT=$(pwd)
|
||||||
BOOST_PREFIX="${BITCOIN_ROOT}/boost"
|
BOOST_PREFIX="${BITCOIN_ROOT}/boost"
|
||||||
mkdir -p $BOOST_PREFIX
|
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
|
# 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
|
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
|
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"
|
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
|
./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).
|
You cannot use the BerkeleyDB library from ports, for the same reason as boost above (g++/libstd++ incompatibility).
|
||||||
|
|
||||||
```bash
|
```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)
|
BITCOIN_ROOT=$(pwd)
|
||||||
BDB_PREFIX="${BITCOIN_ROOT}/db4"
|
BDB_PREFIX="${BITCOIN_ROOT}/build"
|
||||||
mkdir -p $BDB_PREFIX
|
mkdir -p $BDB_PREFIX
|
||||||
|
|
||||||
# Fetch the source and verify that it is not tampered with
|
# 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'
|
curl -o db-6.2.32.tar.gz 'http://download.oracle.com/berkeley-db/db-6.2.32.tar.gz'
|
||||||
echo '12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef db-4.8.30.NC.tar.gz' | sha256 -c
|
echo 'a9c5e2b004a5777aa03510cfe5cd766a4a3b777713406b02809c17c8e0e7a8fb db-6.2.32.tar.gz' | sha256 -c
|
||||||
# MUST output: (SHA256) db-4.8.30.NC.tar.gz: OK
|
# MUST output: (SHA256) db-6.2.32.tar.gz: OK
|
||||||
tar -xzf db-4.8.30.NC.tar.gz
|
tar -xzf db-6.2.32.tar.gz
|
||||||
|
|
||||||
# Build the library and install to specified prefix
|
# 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
|
# 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
|
../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
|
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
|
make the change system-wide, change `datasize-cur` and `datasize-max` in
|
||||||
`/etc/login.conf`, and reboot.
|
`/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.
|
**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.
|
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
|
git clone https://gitlab.com/blackcoin/blackcoin-more/
|
||||||
cd bitcoin
|
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.
|
You can disable the GUI build by passing `--without-gui` to configure.
|
||||||
|
|
||||||
@@ -49,37 +49,37 @@ Build Bitcoin Core
|
|||||||
Running
|
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.
|
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:
|
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:
|
Other commands:
|
||||||
-------
|
-------
|
||||||
|
|
||||||
./src/bitcoind -daemon # Starts the bitcoin daemon.
|
./src/blackmored -daemon # Starts the blackcoin daemon.
|
||||||
./src/bitcoin-cli --help # Outputs a list of command-line options.
|
./src/blackmore-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/blackmore-cli help # Outputs a list of RPC commands when the daemon is running.
|
||||||
|
|
||||||
Using Qt Creator as IDE
|
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/).
|
Download and install the community edition of [Qt Creator](https://www.qt.io/download/).
|
||||||
Uncheck everything except Qt Creator during the installation process.
|
Uncheck everything except Qt Creator 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 --enable-debug
|
2. Do a proper ./configure --enable-debug
|
||||||
3. In Qt Creator do "New Project" -> Import Project -> Import Existing Project
|
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
|
5. Leave the file selection as it is
|
||||||
6. Confirm the "summary page"
|
6. Confirm the "summary page"
|
||||||
7. In the "Projects" tab select "Manage Kits..."
|
7. In the "Projects" tab select "Manage Kits..."
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
UNIX BUILD NOTES
|
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))
|
(for OpenBSD specific instructions, see [build-openbsd.md](build-openbsd.md))
|
||||||
|
|
||||||
Note
|
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:
|
for example, when specifying the path of the dependency:
|
||||||
|
|
||||||
../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX
|
../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX
|
||||||
@@ -24,7 +24,7 @@ make
|
|||||||
make install # optional
|
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
|
Dependencies
|
||||||
---------------------
|
---------------------
|
||||||
@@ -42,7 +42,7 @@ Optional dependencies:
|
|||||||
Library | Purpose | Description
|
Library | Purpose | Description
|
||||||
------------|------------------|----------------------
|
------------|------------------|----------------------
|
||||||
miniupnpc | UPnP Support | Firewall-jumping support
|
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)
|
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)
|
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)
|
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
|
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:
|
tuned to conserve memory with additional CXXFLAGS:
|
||||||
|
|
||||||
|
|
||||||
@@ -79,20 +79,14 @@ install necessary parts of boost:
|
|||||||
|
|
||||||
sudo apt-get install libboost-all-dev
|
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).
|
BerkeleyDB 6.2 is required for the wallet.
|
||||||
You can add the repository and install using the following commands:
|
|
||||||
|
|
||||||
sudo apt-get install software-properties-common
|
Ubuntu and Debian have their own libdb-dev and libdb++-dev packages, but these will most likely install
|
||||||
sudo add-apt-repository ppa:bitcoin/bitcoin
|
BerkeleyDB 5.1, which break binary wallet compatibility with the distributed executables which
|
||||||
sudo apt-get update
|
are based on BerkeleyDB 6.2. If you do not care about wallet compatibility,
|
||||||
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,
|
|
||||||
pass `--with-incompatible-bdb` to configure.
|
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:
|
Optional:
|
||||||
|
|
||||||
@@ -105,7 +99,7 @@ ZMQ dependencies:
|
|||||||
Dependencies for the GUI: Ubuntu & Debian
|
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.
|
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.
|
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`.
|
To build without GUI pass `--without-gui`.
|
||||||
@@ -122,7 +116,7 @@ libqrencode (optional) can be installed with:
|
|||||||
|
|
||||||
sudo apt-get install libqrencode-dev
|
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.
|
built by default.
|
||||||
|
|
||||||
Dependency Build Instructions: Fedora
|
Dependency Build Instructions: Fedora
|
||||||
@@ -145,7 +139,7 @@ libqrencode (optional) can be installed with:
|
|||||||
|
|
||||||
Notes
|
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%.
|
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
|
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
|
```bash
|
||||||
BITCOIN_ROOT=$(pwd)
|
BITCOIN_ROOT=$(pwd)
|
||||||
|
|
||||||
# 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
|
||||||
BDB_PREFIX="${BITCOIN_ROOT}/db4"
|
BDB_PREFIX="${BITCOIN_ROOT}/build"
|
||||||
mkdir -p $BDB_PREFIX
|
mkdir -p $BDB_PREFIX
|
||||||
|
|
||||||
# Fetch the source and verify that it is not tampered with
|
# 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'
|
wget 'http://download.oracle.com/berkeley-db/db-6.2.32.tar.gz'
|
||||||
echo '12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef db-4.8.30.NC.tar.gz' | sha256sum -c
|
echo 'a9c5e2b004a5777aa03510cfe5cd766a4a3b777713406b02809c17c8e0e7a8fb db-6.2.32.tar.gz' | sha256sum -c
|
||||||
# -> db-4.8.30.NC.tar.gz: OK
|
# -> db-6.2.32.tar.gz: OK
|
||||||
tar -xzvf db-4.8.30.NC.tar.gz
|
tar -xzvf db-6.2.32.tar.gz
|
||||||
|
|
||||||
# Build the library and install to our prefix
|
# 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
|
# 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
|
../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX
|
||||||
make install
|
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
|
cd $BITCOIN_ROOT
|
||||||
./autogen.sh
|
./autogen.sh
|
||||||
./configure LDFLAGS="-L${BDB_PREFIX}/lib/" CPPFLAGS="-I${BDB_PREFIX}/include/" # (other args...)
|
./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
|
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.
|
exploit even if a vulnerability is found, binaries are hardened by default.
|
||||||
This can be disabled with:
|
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:
|
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:
|
The output should contain:
|
||||||
|
|
||||||
@@ -236,13 +230,13 @@ Hardening enables the following features:
|
|||||||
|
|
||||||
* Non-executable Stack
|
* Non-executable Stack
|
||||||
If the stack is executable then trivial stack based buffer overflow exploits are possible if
|
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
|
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
|
and uses a compiler extension which requires an executable stack, it will silently build an
|
||||||
executable without the non-executable stack protection.
|
executable without the non-executable stack protection.
|
||||||
|
|
||||||
To verify that the stack is non-executable after compiling use:
|
To verify that the stack is non-executable after compiling use:
|
||||||
`scanelf -e ./bitcoin`
|
`scanelf -e ./blackmore`
|
||||||
|
|
||||||
the output should contain:
|
the output should contain:
|
||||||
STK/REL/PTL
|
STK/REL/PTL
|
||||||
@@ -252,7 +246,7 @@ Hardening enables the following features:
|
|||||||
|
|
||||||
Disable-wallet mode
|
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:
|
disable-wallet mode with:
|
||||||
|
|
||||||
./configure --disable-wallet
|
./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:
|
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
|
pacman -S git base-devel boost libevent python
|
||||||
git clone https://github.com/bitcoin/bitcoin.git
|
git clone https://gitlab.com/blackcoin/blackcoin-more.git
|
||||||
cd bitcoin/
|
cd blackcoin-more/
|
||||||
./autogen.sh
|
./autogen.sh
|
||||||
./configure --disable-wallet --without-gui --without-miniupnpc
|
./configure --disable-wallet --without-gui --without-miniupnpc
|
||||||
make check
|
make check
|
||||||
|
|
||||||
Note:
|
Note:
|
||||||
Enabling wallet support requires either compiling against a Berkeley DB newer than 4.8 (package `db`) using `--with-incompatible-bdb`,
|
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 4.8. The readily available Arch Linux packages are currently built using
|
or building and depending on a local version of Berkeley DB 6.2.
|
||||||
`--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 Blackcoin More distributions and independently built
|
||||||
As mentioned above, when maintaining portability of the wallet between the standard Bitcoin Core distributions and independently built
|
node software is desired, Berkeley DB 6.2 must be used.
|
||||||
node software is desired, Berkeley DB 4.8 must be used.
|
|
||||||
|
|
||||||
|
|
||||||
ARM Cross-compilation
|
ARM Cross-compilation
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
WINDOWS BUILD NOTES
|
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
|
Most developers use cross-compilation from Ubuntu to build executables for
|
||||||
Windows. This is also used to build the release binaries.
|
Windows. This is also used to build the release binaries.
|
||||||
|
|||||||
Reference in New Issue
Block a user