lbrycrd/src/qt
Pieter Wuille 450cbb0944 Ultraprune
This switches bitcoin's transaction/block verification logic to use a
"coin database", which contains all unredeemed transaction output scripts,
amounts and heights.

The name ultraprune comes from the fact that instead of a full transaction
index, we only (need to) keep an index with unspent outputs. For now, the
blocks themselves are kept as usual, although they are only necessary for
serving, rescanning and reorganizing.

The basic datastructures are CCoins (representing the coins of a single
transaction), and CCoinsView (representing a state of the coins database).
There are several implementations for CCoinsView. A dummy, one backed by
the coins database (coins.dat), one backed by the memory pool, and one
that adds a cache on top of it. FetchInputs, ConnectInputs, ConnectBlock,
DisconnectBlock, ... now operate on a generic CCoinsView.

The block switching logic now builds a single cached CCoinsView with
changes to be committed to the database before any changes are made.
This means no uncommitted changes are ever read from the database, and
should ease the transition to another database layer which does not
support transactions (but does support atomic writes), like LevelDB.

For the getrawtransaction() RPC call, access to a txid-to-disk index
would be preferable. As this index is not necessary or even useful
for any other part of the implementation, it is not provided. Instead,
getrawtransaction() uses the coin database to find the block height,
and then scans that block to find the requested transaction. This is
slow, but should suffice for debug purposes.
2012-10-20 23:08:57 +02:00
..
forms additional fix for #1843 2012-09-22 12:15:41 +02:00
locale Bitcoin-Qt: intregrate current translations from Transifex 2012-10-12 15:51:49 +02:00
res Revert "Merge pull request #1931 from laanwj/2012_10_newicons" 2012-10-14 20:49:06 +02:00
test Fix Win32 compiling of qt/test/uritests.cpp 2012-08-07 19:36:59 +02:00
aboutdialog.cpp Build identification strings 2012-04-10 18:16:53 +02:00
aboutdialog.h Improve documentation for UI classes 2011-11-13 14:12:44 +01:00
addressbookpage.cpp enhance Qt5 compatibility 2012-09-21 19:06:53 +02:00
addressbookpage.h replace some ugly code in addressbookpage.cpp 2012-07-08 18:49:07 +02:00
addresstablemodel.cpp Refactor: split CKeyID/CScriptID/CTxDestination from CBitcoinAddress 2012-05-24 20:26:19 +02:00
addresstablemodel.h Process address book updates incrementally 2012-05-20 10:44:50 +02:00
askpassphrasedialog.cpp Merge branch 'master' of github.com:runeksvendsen/bitcoin 2012-10-01 16:51:24 -04:00
askpassphrasedialog.h Merge commit '7298ebb' 2011-12-12 15:03:16 -05:00
bitcoin.cpp When datadir missing, show messagebox instead of printing error to stderr 2012-10-04 12:04:12 +02:00
bitcoin.qrc update translation files (fetched from Transifex) and remove translation for fr_FR, which was removed / renamed on TX 2012-06-13 18:04:27 +02:00
bitcoinaddressvalidator.cpp Bugfix: Fix a variety of misspellings 2012-08-01 17:49:51 +00:00
bitcoinaddressvalidator.h increase BitcoinAddressValidator::MaxAddressLength from 34 to 35 2012-02-15 17:09:47 +01:00
bitcoinamountfield.cpp Change up/down increment in UI to 0.001 BTC (issue #760) 2012-02-05 12:15:16 +01:00
bitcoinamountfield.h Update Bugreport Links 2012-09-22 18:05:25 +08:00
bitcoingui.cpp Move external block import to separate thread 2012-10-20 01:54:10 +02:00
bitcoingui.h Merge pull request #1852 from fanquake/bugreportlinks 2012-09-22 03:29:46 -07:00
bitcoinstrings.cpp fix wrong (signed/unsigned) printf format specifier in bitcoinrpc.cpp 2012-10-05 23:31:58 +02:00
bitcoinunits.cpp Bugfix: Correct English grammar regarding "'s" 2012-08-01 17:50:00 +00:00
bitcoinunits.h Bugfix: Fix a variety of misspellings 2012-08-01 17:49:51 +00:00
clientmodel.cpp Move external block import to separate thread 2012-10-20 01:54:10 +02:00
clientmodel.h Move external block import to separate thread 2012-10-20 01:54:10 +02:00
csvmodelwriter.cpp Properly escape " in strings when exporting CSV 2012-05-11 20:17:09 +02:00
csvmodelwriter.h Improve documentation for UI classes 2011-11-13 14:12:44 +01:00
editaddressdialog.cpp change strings to Bitcoin (uppercase), where it is used as a noun and update strings to use "Qt" (and not qt or QT) / update initialisation of notificator to use qApp->applicationName() instead of a static string 2012-05-18 23:13:58 +02:00
editaddressdialog.h Improve documentation for UI classes 2011-11-13 14:12:44 +01:00
guiconstants.h IPC-server hardening and update 2012-07-17 09:37:12 +02:00
guiutil.cpp Send --help message to stdout i.s.o stderr 2012-10-04 07:56:57 +02:00
guiutil.h Bugfix: Fix a variety of misspellings 2012-08-01 17:49:51 +00:00
macdockiconhandler.h Fixed compilation error with clang. 2012-09-27 15:06:16 -04:00
macdockiconhandler.mm Update Qt include 2012-09-22 18:56:22 +08:00
monitoreddatamapper.cpp don't include <QDebug> 2011-08-07 16:09:49 +02:00
monitoreddatamapper.h Improve documentation for UI classes 2011-11-13 14:12:44 +01:00
notificator.cpp enhance Qt5 compatibility 2012-09-21 19:06:53 +02:00
notificator.h enhance Qt5 compatibility 2012-09-21 19:06:53 +02:00
optionsdialog.cpp change Q_WS_MAC -> Q_OS_MAC (Qt5 compatibility) 2012-10-07 18:50:03 +02:00
optionsdialog.h small UX update for optionsdialog 2012-08-02 09:05:10 +02:00
optionsmodel.cpp Merge pull request #1900 from Diapolo/optionsmodel_getters 2012-10-11 00:40:20 -07:00
optionsmodel.h move most explicit getters in optionsmodel to header 2012-10-02 18:49:57 +02:00
overviewpage.cpp add the slot updateDisplayUnit() to overviewpage, sendcoinsdialog, sendcoinsentry and connect it to displayUnitChanged() - this ensures all fields in the GUI, who use a display unit are imediately updated, when the user changes this setting in the optionsdialog / ensure used fields init with the current set display unit 2012-06-17 15:20:42 +02:00
overviewpage.h add the slot updateDisplayUnit() to overviewpage, sendcoinsdialog, sendcoinsentry and connect it to displayUnitChanged() - this ensures all fields in the GUI, who use a display unit are imediately updated, when the user changes this setting in the optionsdialog / ensure used fields init with the current set display unit 2012-06-17 15:20:42 +02:00
qrcodedialog.cpp update QRCodeDialog 2012-07-06 18:51:30 +02:00
qrcodedialog.h update QRCodeDialog 2012-07-06 18:51:30 +02:00
qtipcserver.cpp Remove stack randomization 2012-09-28 21:53:28 +02:00
qtipcserver.h Abstract all IPC communication to qtipcserver 2012-08-24 16:59:27 +00:00
qvalidatedlineedit.cpp put color constants in guiconstants.h 2011-07-25 18:39:52 +02:00
qvalidatedlineedit.h Improve documentation for UI classes 2011-11-13 14:12:44 +01:00
qvaluecombobox.cpp Make it possible to set user interface language from options dialog 2012-05-09 07:45:47 +02:00
qvaluecombobox.h Make it possible to set user interface language from options dialog 2012-05-09 07:45:47 +02:00
rpcconsole.cpp enhance Qt5 compatibility 2012-09-21 19:06:53 +02:00
rpcconsole.h move class HelpMessageBox to guiutil.cpp/.h / add button to show Bitcoin command-line options (in RPC Console -> Information) / resize Debug window a little to allow for a non-breaking display of the welcome message with non-english translation 2012-06-01 16:29:54 +02:00
sendcoinsdialog.cpp enhance Qt5 compatibility 2012-09-21 19:06:53 +02:00
sendcoinsdialog.h Update Bugreport Links 2012-09-22 18:05:25 +08:00
sendcoinsentry.cpp enhance Qt5 compatibility 2012-09-21 19:06:53 +02:00
sendcoinsentry.h Update Bugreport Links 2012-09-22 18:05:25 +08:00
signverifymessagedialog.cpp Bugfix: Fix a variety of misspellings 2012-08-01 17:49:51 +00:00
signverifymessagedialog.h GUI: merge sign/verify message into a single window with tabbed UI 2012-07-06 11:31:27 +02:00
transactiondesc.cpp Ultraprune 2012-10-20 23:08:57 +02:00
transactiondesc.h Move HtmlEscape (escape for qt rich text controls) to qt gui utilities 2011-12-23 12:07:23 +01:00
transactiondescdialog.cpp move back to original directory structure 2011-06-11 22:11:58 +02:00
transactiondescdialog.h Improve documentation for UI classes 2011-11-13 14:12:44 +01:00
transactionfilterproxy.cpp Revert "Use standard C99 (and Qt) types for 64-bit integers" 2011-12-21 22:33:19 +01:00
transactionfilterproxy.h Bugfix: Fix a variety of misspellings 2012-08-01 17:49:51 +00:00
transactionrecord.cpp Qt: show mined transactions at depth 1 2012-08-24 08:52:12 +02:00
transactionrecord.h Fix transaction type in UI: not all tx'es with "from"/"to" field are necessarily IP tx'es 2011-12-28 11:14:05 +01:00
transactiontablemodel.cpp Treat generation (mined) transactions less different from receive transactions 2012-08-23 23:20:01 +00:00
transactiontablemodel.h GUI: ensure a changed bitcoin unit immediately updates the tx list amounts 2012-06-20 06:51:38 +02:00
transactionview.cpp enhance Qt5 compatibility 2012-09-21 19:06:53 +02:00
transactionview.h When a transaction is clicked on overview page, focus it on history page 2012-05-12 15:32:22 +02:00
walletmodel.cpp Persistently poll for balance change when number of blocks changed 2012-07-11 09:01:11 +02:00
walletmodel.h Add a timer to check for changes in immature or unconfirmed balances, 2012-07-06 03:05:35 +10:00