Update build docs with Blackcoin information

This commit is contained in:
lateminer
2018-11-18 16:28:51 +03:00
parent e3ca82293b
commit 5ee1e64b07
7 changed files with 80 additions and 87 deletions

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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..."

View File

@@ -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

View File

@@ -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.