Skip to content

The Venture Currency (VC) blockchain a libbitcoin + ethereum source code fork. Please use cashtag $VC

License

Notifications You must be signed in to change notification settings

VentureCurrency/vc-system

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BitcoinVC

The Bitcoin Venture Currency Development Library

BitcoinVC

Documentation is available on the wiki.

License Overview

All files in this repository fall under the license specified in COPYING. The project is licensed as AGPL with a lesser clause. It may be used within a proprietary project, but the core library and any changes to it must be published online. Source code for this library must always remain free for everybody to access.

About BitcoinVC

The BitcoinVC toolkit is a fork of bitcoinvc, a set of cross platform C++ libraries for building bitcoin applications, customized to work with the BitcoinVC Blockchain. The toolkit consists of several libraries, most of which depend on the foundational bitcoinvc library. Each library's repository can be cloned and built using common automake 1.14+ instructions. There are no packages yet in distribution however each library includes an installation script (described below) which is regularly verified in the automated build.

Installation

Clone the source code repository and checkout RELEASE BVC1

git clone https://github.com/VentureCurrency/bitcoinvc
git checkout BVC1

DEVELOPERS please use the master branch, which is a staging area for the next major release and should be used only by BitcoinVC developers. The current RELEASE BRANCH is BVC1.

Detailed installation instructions are provided below.

Autotools (advanced users)

On Linux and macOS BitcoinVC is built using Autotools as follows.

$ ./autogen.sh
$ ./configure
$ make
$ sudo make install
$ sudo ldconfig

A minimal BitcoinVC build requires boost and libsecp256k1. The VentureCurrency/secp256k1 repository is forked from bitcoin-core/secp256k1 in order to control for changes and to incorporate the necessary Visual Studio build. The original repository can be used directly but recent changes to the public interface may cause build breaks. The --enable-module-recovery switch is required.

Debian/Ubuntu

BitcoinVC requires a C++11 compiler, currently minimum GCC 4.8.0 or Clang based on LLVM 3.5.

To see your GCC version:

$ g++ --version
g++ (Ubuntu 4.8.2-19ubuntu1) 4.8.2
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

If necessary, upgrade your compiler as follows:

$ sudo apt-get install g++-4.8
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 50
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50
$ sudo update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-4.8 50

Next install the build system (Automake minimum 1.14) and git:

$ sudo apt-get install build-essential autoconf automake libtool pkg-config git

Next install the Boost (minimum 1.57.0) development package:

$ sudo apt-get install libboost-all-dev

Next download the install script and enable execution:

$ wget https://raw.githubusercontent.com/VentureCurrency/bitcoinvc/BVC1/install.sh
$ chmod +x install.sh

Finally install BitcoinVC with default build options:

$ ./install.sh --prefix=/home/me/myprefix --build-boost --disable-shared

BitcoinVC is now installed in /usr/local/.

Macintosh

The macOS installation differs from Linux in the installation of the compiler and packaged dependencies. BitcoinVC supports both Homebrew and MacPorts package managers. Both require Apple's Xcode command line tools. Neither requires Xcode as the tools may be installed independently.

BitcoinVC compiles with Clang on macOS and requires C++11 support. Installation has been verified using Clang based on LLVM 3.5. This version or newer should be installed as part of the Xcode command line tools.

To see your Clang/LLVM version:

$ clang++ --version

You may encounter a prompt to install the Xcode command line developer tools, in which case accept the prompt.

Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.0.0
Thread model: posix

If required update your version of the command line tools as follows:

$ xcode-select --install

Using Homebrew

First install Homebrew.

Next install the build system (Automake minimum 1.14) and wget:

$ brew install autoconf automake libtool pkgconfig wget

Next install the Boost (1.57.0 or newer) development package:

$ brew install boost

Next download the install script and enable execution:

$ wget https://raw.githubusercontent.com/VentureCurrency/bitcoinvc/BVC1/install.sh
$ chmod +x install.sh

Finally install BitcoinVC with default build options:

$ ./install.sh --prefix=/home/me/myprefix --build-boost --disable-shared

BitcoinVC is now installed in /usr/local/.

Installing from Formula

Instead of building, BitcoinVC can be installed from a formula:

$ brew install bitcoinvc

Using MacPorts

First install MacPorts.

Next install the build system (Automake minimum 1.14) and wget:

$ sudo port install autoconf automake libtool pkgconfig wget

Next install the Boost (1.57.0 or newer) development package. The - options remove MacPort defaults that are not Boost defaults:

$ sudo port install boost -no_single -no_static -python27

Next download the install script and enable execution:

$ wget https://raw.githubusercontent.com/VentureCurrency/bitcoinvc/BVC1/install.sh
$ chmod +x install.sh

Finally install BitcoinVC with default build options:

$ ./install.sh --prefix=/home/me/myprefix --build-boost --disable-shared

BitcoinVC is now installed in /usr/local/.

Build Notes for Linux / macOS

The install script itself is commented so that the manual build steps for each dependency can be inferred by a developer.

You can run the install script from any directory on your system. By default this will build BitcoinVC in a subdirectory named build-bitcoinvc and install it to /usr/local/. The install script requires sudo only if you do not have access to the installation location, which you can change using the --prefix option on the installer command line.

The build script clones, builds and installs two unpackaged repositories, namely:

The script builds from the head of their version4 and BVC1 branches respectively. The master branch is a staging area for changes. The version branches are considered release quality.

Build Options

Any set of ./configure options can be passed via the build script, for example:

$ ./install.sh CFLAGS="-Og -g" --prefix=/home/me/myprefix

Compiling with ICU (International Components for Unicode)

Since the addition of BIP-39 and later BIP-38 and Electrum mnemnoic support, BitcoinVC conditionally incorporates ICU. To use passphrase normalization for these features BitcoinVC must be compiled with the --with-icu option. Currently bitcoinvc-explorer is the only other library that accesses this feature, so if you do not intend to use passphrase normalization this dependency can be avoided.

$ ./install.sh --with-icu --build-icu --build-boost --disable-shared

Compiling with QR Code Support

Since the addition of qrcode support, BitcoinVC conditionally incorporates qrencode. This requires compiling with the --with-qrencode option. Currently bitcoinvc-explorer is the only other library that accesses this feature, so if you do not intend to use qrcode this dependency can be avoided.

$ ./install.sh --with-qrencode --build-qrencode --build-boost --disable-shared

Since the addition of png support, BitcoinVC conditionally incorporates libpng (which in turn requires zlib). This requires compiling with the --with-png option. Currently bitcoinvc-explorer is the only other library that accesses this feature, so if you do not intend to use png this dependency can be avoided.

$ ./install.sh --with-png --build-png --build-boost --disable-shared

Building ICU, ZLib, PNG, QREncode and/or Boost

The installer can download and install any or all of these dependencies. ICU is a large package that is not typically preinstalled at a sufficient level. Using these builds ensures compiler and configuration compatibility across all of the build components. It is recommended to use a prefix directory when building these components.

$ ./install.sh --prefix=/home/me/myprefix --with-icu --with-png --with-qrencode --build-icu --build-zlib --build-png --build-qrencode --build-boost --disable-shared

Windows

Visual Studio solutions are maintained for all bitcoinvc libraries. NuGet packages exist for dependencies with the exceptions of the optional ZLib, PNG, and QREncode (required for QR code functionality). ICU is integrated into Windows and therefore not required as an additional dependency when using ICU features.

The bitcoinvc execution environment supports Windows XP Service Pack 2 and newer.

Supported Compilers

BitcoinVC requires a C++11 compiler, which means Visual Studio 2013 (with a pre-release compiler update) or later. Download and install one of the following free tools as necessary:

NuGet Repository

Dependencies apart from the BitcoinVC libraries are available as NuGet packages:

The packages can be viewed using the NuGet package manager from the BitcoinVC solution. The package manager will prompt for download of any missing packages.

The BitcoinVC solution files are configured with references to these packages. The location of the NuGet repository is controlled by the nuget.config file repositoryPath setting and the NuGetPackageRoot element of each [project].props file.

Build BitcoinVC Projects

After cloning the repository the BitcoinVC build can be performed from within Visual Studio or using the build_all.bat script provided in the builds\msvc\build\ subdirectory. The script automatically downloads all required NuGet packages.

Tip: The build_all.bat script builds all valid configurations for all compilers. The build time can be significantly reduced by disabling all but the desired configuration in build_base.bat and build_all.bat.

The BitcoinVC dynamic link library (DLL) build configurations do not compile, as the exports have not yet been fully implemented. These are currently disabled in the build scripts but you will encounter numerous errors if you build them manually.

Optional: Building External Dependencies

The secp256k1 and libzmq package above are maintained using the same Visual Studio template as all BitcoinVC libraries. If so desired these can be built locally, in the same manner as BitcoinVC.

This change is properly accomplished by disabling the "NuGet Dependencies" in the Visual Studio properties user interface and then importing secp256k1.import.props, which references secp256k1.import.xml and libzmq.import.props, which references libzmq.import.xml.

See boost documentation for building boost libraries for Visual C++.

About

The Venture Currency (VC) blockchain a libbitcoin + ethereum source code fork. Please use cashtag $VC

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 93.9%
  • M4 4.4%
  • Other 1.7%