-Copyright (c) 2009-2010 Satoshi Nakamoto
-Copyright (c) 2011 Bitcoin Developers
+Copyright (c) 2009-2012 Bitcoin Developers
+Copyright (c) 2013 NovaCoin Developers
Distributed under the MIT/X11 software license, see the accompanying
file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in
--------
cd src/
-make -f makefile.unix # Headless bitcoin
+make -f makefile.unix # Headless novacoin
-See readme-qt.rst for instructions on building Bitcoin QT,
-the graphical bitcoin.
+See readme-qt.rst for instructions on building NovaCoin QT,
+the graphical novacoin.
Dependencies
------------
+
+ Library Purpose Description
+ ------- ------- -----------
+ libssl SSL Support Secure communications
+ libdb4.8 Berkeley DB Blockchain & wallet storage
+ libboost Boost C++ Library
+ miniupnpc UPnP Support Optional firewall-jumping support
+ libqrencode QRCode generation Optional QRCode generation
+
+Note that libexecinfo should be installed, if you building under *BSD systems.
+This library provides backtrace facility.
+
+miniupnpc may be used for UPnP port mapping. It can be downloaded from
+http://miniupnp.tuxfamily.org/files/. UPnP support is compiled in and
+turned off by default. Set USE_UPNP to a different value to control this:
+ USE_UPNP=- No UPnP support - miniupnp not required
+ USE_UPNP=0 (the default) UPnP support turned off by default at runtime
+ USE_UPNP=1 UPnP support turned on by default at runtime
+
+libqrencode may be used for QRCode image generation. It can be downloaded
+from http://fukuchi.org/works/qrencode/index.html.en, or installed via
+your package manager. Set USE_QRCODE to control this:
+ USE_QRCODE=0 (the default) No QRCode support - libqrcode not required
+ USE_QRCODE=1 QRCode support enabled
+
+Licenses of statically linked libraries:
+ Berkeley DB New BSD license with additional requirement that linked
+ software must be free open source
+ Boost MIT-like license
+ miniupnpc New (3-clause) BSD license
+
+Versions used in this release:
+ GCC 4.3.3
+ OpenSSL 0.9.8g
+ Berkeley DB 4.8.30.NC
+ Boost 1.37
+ miniupnpc 1.6
+
+Dependency Build Instructions: Ubuntu & Debian
+----------------------------------------------
sudo apt-get install build-essential
sudo apt-get install libssl-dev
sudo apt-get install libdb4.8-dev
sudo apt-get install libdb4.8++-dev
-Boost 1.40+: sudo apt-get install libboost-all-dev
-or Boost 1.37: sudo apt-get install libboost1.37-dev
+ Boost 1.40+: sudo apt-get install libboost-all-dev
+ or Boost 1.37: sudo apt-get install libboost1.37-dev
+sudo apt-get install libqrencode-dev
If using Boost 1.37, append -mt to the boost libraries in the makefile.
-Requires miniupnpc for UPnP port mapping. It can be downloaded from
-http://miniupnp.tuxfamily.org/files/. UPnP support is compiled in and
-turned off by default. Set USE_UPNP to a different value to control this:
-USE_UPNP= no UPnP support, miniupnp not required;
-USE_UPNP=0 (the default) UPnP support turned off by default at runtime;
-USE_UPNP=1 UPnP support turned on by default at runtime.
-Licenses of statically linked libraries:
-Berkeley DB New BSD license with additional requirement that linked software must be free open source
-Boost MIT-like license
-miniupnpc New (3-clause) BSD license
+Dependency Build Instructions: Gentoo
+-------------------------------------
-Versions used in this release:
-GCC 4.3.3
-OpenSSL 0.9.8g
-Berkeley DB 4.8.30.NC
-Boost 1.37
-miniupnpc 1.6
+Note: If you just want to install novacoind on Gentoo, you can add the Novacoin
+ overlay and use your package manager:
+ layman -a novacoin && emerge novacoind
+
+emerge -av1 --noreplace boost glib openssl sys-libs/db:4.8
+
+Take the following steps to build (no UPnP support):
+ cd ${NOVACOIN_DIR}/src
+ make -f makefile.unix USE_UPNP= BDB_INCLUDE_PATH='/usr/include/db4.8'
+ strip novacoind
Notes
-----
-The release is built with GCC and then "strip bitcoin" to strip the debug
+The release is built with GCC and then "strip novacoind" to strip the debug
symbols, which reduces the executable size by about 90%.
Security
--------
-To help make your bitcoin installation more secure by making certain attacks impossible to
+To help make your novacoin installation more secure by making certain attacks impossible to
exploit even if a vulnerability is found, you can take the following measures:
* Position Independent Executable
make -f makefile.unix ... -e PIE=1
To test that you have built PIE executable, install scanelf, part of paxutils, and use:
- scanelf -e ./bitcoin
+ scanelf -e ./novacoin
The output should contain:
TYPE
* 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, novacoin 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 ./novacoin
the output should contain:
STK/REL/PTL