Work in progress. DO NOT USE.
Clone or download
Latest commit c8c7fe6 Oct 25, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Merge remote-tracking branch 'btc/master' into upstream-merge Oct 17, 2018
.travis travis: set codespell version to avoid breakage Oct 3, 2018
.tx tx: Update transifex slug 016x→017x Aug 2, 2018
build-aux/m4 Merge remote-tracking branch 'btc/master' into upstream-merge Oct 17, 2018
build_msvc appveyor: Use clcache to speed up build Sep 3, 2018
contrib Merge remote-tracking branch 'btc/master' into upstream-merge Oct 17, 2018
depends Merge remote-tracking branch 'btc/master' into upstream-merge Oct 17, 2018
doc Merge remote-tracking branch 'btc/master' into upstream-merge Oct 17, 2018
scripts Remove pow/tromp/* for Travis err 'No rule to make target 'pow/tromp/… Oct 15, 2018
share Merge remote-tracking branch 'btc/master' into upstream-merge Oct 17, 2018
src Update chainparams.cpp Oct 25, 2018
test Merge remote-tracking branch 'btc/master' into upstream-merge Oct 17, 2018
.appveyor.yml appveyor: trivial build cache modifications Oct 5, 2018
.gitattributes Separate protocol versioning from clientversion Oct 29, 2014
.gitignore [build] Remove .vscode and add to .gitignore Aug 2, 2018
.gitmodules [primitives] Add Joinsplit primitives Jun 3, 2018
.travis.yml qa: Run more tests with wallet disabled Sep 25, 2018
CONTRIBUTING.md doc: add note to contributor docs about warranted PR's Jul 30, 2018
COPYING [cleanup] replace brackets in includes, update copyrights and use std… Jun 4, 2018
INSTALL.md Update INSTALL landing redirection notice for build instructions. Oct 5, 2016
Makefile.am Merge remote-tracking branch 'btc/master' into upstream-merge Oct 17, 2018
README.md Merge remote-tracking branch 'btc/master' into upstream-merge Oct 17, 2018
autogen.sh Add "export LC_ALL=C" to all shell scripts Jun 14, 2018
configure.ac Merge remote-tracking branch 'btc/master' into upstream-merge Oct 17, 2018
libbitcoinconsensus.pc.in Unify package name to as few places as possible without major changes Dec 14, 2015

README.md

Bitcoin Private Rebase

IN DEVELOPMENT - FOR TESTING ONLY - DO NOT USE IN PRODUCTION

This is currently in development software, not all consensus rules have been implemented. You should NOT rely on this in production yet, for production use cases please use https://github.com/BTCPrivate/BitcoinPrivate/

Development Status

Build Status

This Bitcoin Private cryptocurrency daemon and cli tools should build on linux and sync the full BTCP mainnet chain. Z addresses, wallet code, and tests are not fully working yet and should be considered unstable.

Build Instructions

Linux (>= Ubuntu 16.04):

sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils python3 libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev
cd scripts
./build.sh

Or alternatively:

./autogen.sh
cd depends
make HOST=x86_64-unknown-linux-gnu
cd ..
./configure --prefix=$PWD/depends/x86_64-unknown-linux-gnu
make

This will build all the dependencies and bootstrap a linux build. There are several options you can use:

  • --disable-wallet
  • --without-gui
  • --help

MacOS (High Sierra):

You must first install libomp (Apple's version of Clang does not have support for OpenMP included); you can do that via the following Terminal commands:

Install XCode:

xcode-select --install

Install Homebrew:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Install libomp:

brew install libomp

Then, run scripts/build-mac.sh to compile.

What is the Bitcoin Private Rebase?

Bitcoin Private is currently based primarily on the Zcash codebase, which itself is a snapshot of Bitcoin dating to mid-2015. Most z protocol coins all rely on this same code, which is now missing roughly 3 years of blockchain upgrades that have been integrated into Bitcoin. Based on the structure of Zcash, and because there’s now a 3 year code divergence, integrating blockchain upgrades developed in bitcoin core into any z protocol coin has become increasingly cumbersome.

We endeavor a complete refactoring of Bitcoin Private to allow for more facile incorporation of Bitcoin upstream changes. This release will coincide with activation of full SegWit support, giving the BTCP more scale both on chain as well as enabling off-chain protocols such as the lightning network and cross-chain swaps. Additionally, it will bring another 3 years of upgrades to the core node including stability and speed improvements as well as a number of usability enhancements to the reference wallet including support for hierarchical deterministic wallets (for shielded and transparent addresses) and wallet encryption.

Learn more about the rebase at https://btcprivate.org/roadmap.

License

Bitcoin Private is released under the terms of the MIT license. See COPYING for more information or see https://opensource.org/licenses/MIT.

Automated Testing

Developers are strongly encouraged to write unit tests for new code, and to submit new unit tests for old code. Unit tests can be compiled and run (assuming they weren't disabled in configure) with: make check. Further details on running and extending unit tests can be found in /src/test/README.md.

There are also regression and integration tests, written in Python, that are run automatically on the build server. These tests can be run (if the test dependencies are installed) with: test/functional/test_runner.py

The Travis CI system makes sure that every pull request is built for Windows, Linux, and macOS, and that unit/sanity tests are run automatically.

Manual Quality Assurance (QA) Testing

Changes should be tested by somebody other than the developer who wrote the code. This is especially important for large or high-risk changes. It is useful to add a test plan to the pull request description if testing the changes is not straightforward.

Translations

Changes to translations as well as new translations can be submitted to the issue tracker. We will be adding transifex support at a later point in time, and for now porting those changes directly from Bitcoin Core.