BTCPrivate / BitcoinPrivate-legacy

Bitcoin Private is a Bitcoin and Zclassic fork which uses ZK-SNARK technology for privacy and fungibility.
Other
283 stars 132 forks source link
bitcoin bitcoin-private btcp hacktoberfest zcash zclassic

Bitcoin Private

10/8/2020 - Current chain offline - New code and chain coming soon

Bitcoin Private v1.0.15

P2P Port: 7933

RPC Port: 7932

Bitcoin Private is a fork of Zclassic, merging in a snapshotted UTXO set of Bitcoin. BTCP is financial freedom.

Build

Linux

Get dependencies:

sudo apt-get install \
      build-essential pkg-config libc6-dev m4 g++-multilib \
      autoconf libtool ncurses-dev unzip git python \
      zlib1g-dev wget bsdmainutils automake

Build:

# Checkout
git clone https://github.com/BTCPrivate/BitcoinPrivate.git
cd BitcoinPrivate
# Build
./btcputil/build.sh -j$(nproc)
# Fetch Zcash ceremony keys
./btcputil/fetch-params.sh

Create Config File:

mkdir ~/.btcprivate
touch ~/.btcprivate/btcprivate.conf
vi ~/.btcprivate/btcprivate.conf

Add following lines to btcprivate.conf and be sure to change the rpcpassword:

rpcuser=btcprivaterpc
rpcpassword=set-a-password
rpcallowip=127.0.0.1
#addnode=dnsseed.btcprivate.org
#addnode=dnsseed.btcprivate.co

Get backup chain parameters (this will speed up syncing and is optional) (Ideally this step would be skipped to ensure integrity throughout the network) (However, this is a backup from the official Electrumx server 29th September 2019)

cd ~/.btcprivate 
wget https://params.btcprivate.org/chainstate.tar.gz 
tar -zxvf chainstate.tar.gz 
cd ~/BitcoinPrivate 

Run:

./src/btcpd

Windows

Windows is not a fully supported build - however there are two ways to build BTCP for Windows:

With Windows 10, Microsoft released a feature called WSL. It basically allows you to run a bash shell directly on Windows in an ubuntu environment. WSL can be installed with other Linux variants, but as mentioned before, the distro proven to work is Ubuntu. Follow this link for installing WSL first

Building for Windows 64-Bit

  1. Get the usual dependencies:

    sudo apt-get install \
      build-essential pkg-config libc6-dev m4 g++-multilib \
      autoconf libtool ncurses-dev unzip git python \
      zlib1g-dev wget bsdmainutils automake make cmake mingw-w64
  2. Set the default mingw32 gcc/g++ compiler option to posix, fix problem with packages in Xenial

    sudo apt install software-properties-common
    sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu zesty universe"
    sudo apt update
    sudo apt upgrade
    sudo update-alternatives --config x86_64-w64-mingw32-gcc
    sudo update-alternatives --config x86_64-w64-mingw32-g++
  3. Install Rust

    curl https://sh.rustup.rs -sSf | sh
    source ~/.cargo/env
    rustup install stable-x86_64-unknown-linux-gnu
    rustup install stable-x86_64-pc-windows-gnu
    rustup target add x86_64-pc-windows-gnu
    vi  ~/.cargo/config

    and add:

    [target.x86_64-pc-windows-gnu]
    linker = "/usr/bin/x86_64-w64-mingw32-gcc"

Note that in WSL, the BTCPrivate source code must be somewhere in the default mount file system. i.e /usr/src/BTCPrivate, and not on /mnt/d/. What this means is that you cannot build directly on the windows system

  1. Build for Windows
PATH=$(echo "$PATH" | sed -e 's/:\/mnt.*//g') # strip out problematic Windows %PATH% imported var
./btcputil/build-win.sh -j$(nproc)
  1. Installation

If compiling on linux, use the following command to build the executables in `./depends/x86_64-w64-mingw32/bin/

sudo make install DESTDIR=

If compiling using WSL, use the following command to build the executables in `c:\btcp\BTCPrivate

sudo make install DESTDIR=/mnt/c/btcp/BTCPrivate

Building for Mac

  1. Install xcode.
    xcode-select --install
  2. Install HomeBrew.
    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  3. Install Dependencies with HomeBrew.
    brew install cmake autoconf libtool automake coreutils pkgconfig gmp wget
  4. Install gcc5 with HomeBrew. ( IF USING XCODE 10+ remove --without-multilib flag)
    brew install gcc5 --without-multilib
  5. Clone the Bitcoin Private repo to your computer.
    git clone https://github.com/BTCPrivate/BitcoinPrivate.git
  6. Change to BitcoinPrivate Directory.
    cd BitcoinPrivate
  7. Build Bitcoin Private Daemon code.
    ./btcputil/build-mac.sh -j$(sysctl -n hw.physicalcpu)
  8. Fetch key & Params.
    ./btcputil/fetch-params.sh
  9. Run the Bitcoin Private Daemon that was just built.
    ./src/btcpd

Additional notes

If you plan to build for windows and linux at the same time, be sure to delete all the built files for whatever you build first. An easy way to do this is by taking the binaries out of the repo, delete all files except the .git folder and then do a git hard reset.

Testnet

Build the latest version of BTCP using the instructions below, then follow the testnet guide

About

Bitcoin Private, like Zclassic and Zcash, is an implementation of the "Zerocash" protocol. Based on Zclassic's code, it intends to offer a far higher standard of privacy through a sophisticated zero-knowledge proving scheme that preserves confidentiality of transaction metadata. Technical details are available in the Zcash Protocol Specification.

This software is the Bitcoin Private client. It downloads and stores the entire history of Bitcoin Private transactions. Depending on the speed of your computer and network connection, the synchronization process could take a day or more once the blockchain has reached a significant size.

It includes both btcpd (the daemon) and btcp-cli (the command line tools).

Security Warnings

See important security warnings in doc/security-warnings.md.

Bitcoin Private is unfinished and highly experimental. Use at your own risk.

Deprecation Policy

This release is considered deprecated 16 weeks after the release day. There is an automatic deprecation shutdown feature which will halt the node some time after this 16 week time period. The automatic feature is based on block height and can be explicitly disabled.

Where do I begin?

We have a guide for joining the main Bitcoin Private network: https://github.com/zcash/zcash/wiki/1.0-User-Guide

Need Help?

Want to participate in development?

Participation in the Bitcoin Private project is subject to a Code of Conduct.

Building

Build BTCP along with most dependencies from source by running ./btcputil/build.sh. Currently only Linux is officially supported.

License

For license information see the file COPYING.