1 { lib, stdenv, fetchFromGitLab, pkg-config, autoreconfHook, openssl, db48, boost
2 , zlib, miniupnpc, util-linux, protobuf, qrencode, libevent, python3
3 , withGui, wrapQtAppsHook ? null, qtbase ? null, qttools ? null
4 , Foundation, ApplicationServices, AppKit }:
6 stdenv.mkDerivation rec {
7 pname = "bitcoin" + lib.optionalString (!withGui) "d" + "-unlimited";
10 src = fetchFromGitLab {
11 owner = "bitcoinunlimited";
12 repo = "BCHUnlimited";
13 rev = "BCHunlimited${version}";
14 sha256 = "sha256-d+giTXq/6HpysRAPT7yOl/B1x4zie9irs4O7cJsBqHg=";
17 nativeBuildInputs = [ pkg-config autoreconfHook python3 ]
18 ++ lib.optionals withGui [ wrapQtAppsHook qttools ];
19 buildInputs = [ openssl db48 boost zlib
20 miniupnpc util-linux protobuf libevent ]
21 ++ lib.optionals withGui [ qtbase qttools qrencode ]
22 ++ lib.optionals stdenv.isDarwin [ Foundation ApplicationServices AppKit ];
24 configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
25 ++ lib.optionals withGui [ "--with-gui=qt5"
26 "--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin"
28 enableParallelBuilding = true;
31 description = "Peer-to-peer electronic cash system (Unlimited client)";
33 Bitcoin is a free open source peer-to-peer electronic cash system that is
34 completely decentralized, without the need for a central server or trusted
35 parties. Users hold the crypto keys to their own money and transact directly
36 with each other, with the help of a P2P network to check for double-spending.
38 The Bitcoin Unlimited (BU) project seeks to provide a voice to all
39 stakeholders in the Bitcoin ecosystem.
41 Every node operator or miner can currently choose their own blocksize limit
42 by modifying their client. Bitcoin Unlimited makes the process easier by
43 providing a configurable option for the accepted and generated blocksize via
44 a GUI menu. Bitcoin Unlimited further provides a user-configurable failsafe
45 setting allowing you to accept a block larger than your maximum accepted
46 blocksize if it reaches a certain number of blocks deep in the chain.
48 The Bitcoin Unlimited client is not a competitive block scaling proposal
49 like BIP-101, BIP-102, etc. Instead it tracks consensus. This means that it
50 tracks the blockchain that the hash power majority follows, irrespective of
51 blocksize, and signals its ability to accept larger blocks via protocol and
52 block versioning fields.
54 If you support an increase in the blocksize limit by any means - or just
55 support Bitcoin conflict resolution as originally envisioned by its founder -
56 consider running a Bitcoin Unlimited client.
58 homepage = "https://www.bitcoinunlimited.info/";
59 maintainers = with maintainers; [ DmitryTsygankov ];
60 license = licenses.mit;
62 platforms = platforms.unix;