Bitcoin-qt: Qt4 based GUI replacement for Bitcoin
=================================================
-**Warning** **Warning** **Warning**
+Features
+========
-Pre-alpha stuff! I'm using this client myself on the production network, and I haven't noticed any glitches, but remember: always backup your wallet! Testing on the testnet is recommended.
+- All functionality of the original client, including wallet encryption
-This has been implemented:
+- Compatibility with Linux (both GNOME and KDE), MacOSX and Windows
-- qmake / QtCreator project (.pro)
+- Notification on incoming / outgoing transactions (compatible with FreeDesktop and other desktop notification schemes)
-- All dialogs (main GUI, address book, send coins) and menus
+- General interface improvements: Splash screen, tabbed interface
-- Taskbar icon/menu
+- Overview page with current balance, unconfirmed balance, and such
-- GUI only functionality (copy to clipboard, select address, address/transaction filter proxys)
+- Better transaction list with status icons, real-time filtering and a context menu
-- Bitcoin core is made compatible with Qt4
+- Asks for confirmation before sending coins, for your own safety
-- Send coins dialog: address and input validation
+- CSV export of transactions and address book (for Excel bookkeeping)
+
+- Shows alternative icon when connected to testnet, so you never accidentally send real coins during testing
-- Address book and transactions views and models
+- Shows a progress bar on initial block download, so that you don't have to wonder how many blocks it needs to download to be up to date
-- Options dialog
+- Sendmany support, send to multiple recipients at the same time
-- Sending coins (including ask for fee when needed)
+- Multiple unit support, can show subdivided bitcoins (uBTC, mBTC) for users that like large numbers
-- Show error messages from core
+- Support for English, German, Russian and Dutch languages
-- Show details dialog for transactions (on double click)
+- Address books and transaction table can be sorted by any column
-This has to be done:
+- Accepts "bitcoin:" URLs from browsers and other sources through drag and drop
-- Integrate with main bitcoin tree
-
-- Start at system start
-
-- Internationalization (convert WX language files)
-
-- Build on Windows
-
-Build instructions
+Build instructions
===================
+Debian
+-------
+
First, make sure that the required packages for Qt4 development of your
distribution are installed, for Debian and Ubuntu these are:
An executable named `bitcoin-qt` will be built.
+
+Windows
+--------
+
+Windows build instructions:
+
+- Download the `QT Windows SDK`_ and install it. You don't need the Symbian stuff, just the desktop Qt.
+
+- Download and extract the `dependencies archive`_ [#]_, or compile openssl, boost and dbcxx yourself.
+
+- Copy the contents of the folder "deps" to "X:\\QtSDK\\mingw", replace X:\\ with the location where you installed the Qt SDK. Make sure that the contents of "deps\\include" end up in the current "include" directory.
+
+- Open the .pro file in QT creator and build as normal (ctrl-B)
+
+.. _`QT Windows SDK`: http://qt.nokia.com/downloads/sdk-windows-cpp
+.. _`dependencies archive`: http://download.visucore.com/bitcoin/qtgui_deps_1.zip
+.. [#] PGP signature: http://download.visucore.com/bitcoin/qtgui_deps_1.zip.sig (signed with RSA key ID `610945D0`_)
+.. _`610945D0`: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x610945D0
+
+Build configuration options
+============================
+
+UPNnP port forwarding
+---------------------
+
+To use UPnP for port forwarding behind a NAT router (recommended, as more connections overall allow for a faster and more stable bitcoin experience), pass the following argument to qmake:
+
+::
+
+ qmake "USE_UPNP=1"
+
+(in **Qt Creator**, you can find the setting for additional qmake arguments under "Projects" -> "Build Settings" -> "Build Steps", then click "Details" next to **qmake**)
+
+This requires miniupnpc for UPnP port mapping. It can be downloaded from
+http://miniupnp.tuxfamily.org/files/. UPnP support is not compiled in by default.
+
+Set USE_UPNP to a different value to control this:
+
++------------+--------------------------------------------------------------+
+| USE_UPNP= | (the default) no UPnP support, miniupnp not required; |
++------------+--------------------------------------------------------------+
+| USE_UPNP=0 | UPnP support turned off by default at runtime; |
++------------+--------------------------------------------------------------+
+| USE_UPNP=1 | UPnP support turned on by default at runtime. |
++------------+--------------------------------------------------------------+
+
+Notification support for recent (k)ubuntu versions
+---------------------------------------------------
+
+To see desktop notifications on (k)ubuntu versions starting from 10.04, enable usage of the
+FreeDesktop notification interface through DBUS using the following qmake option:
+
+::
+
+ qmake "USE_DBUS=1"
+
Berkely DB version warning
==========================
-A warning for people using the *static binary* version of Bitcoin (tl;dr: **Berkely DB databases are not forward compatible**).
+A warning for people using the *static binary* version of Bitcoin on a Linux/UNIX-ish system (tl;dr: **Berkely DB databases are not forward compatible**).
The static binary version of Bitcoin is linked against libdb4.7 or libdb4.8 (see also `this Debian issue`_).