Commit graph

3479 commits

Author SHA1 Message Date
Pieter Wuille
75f51f2a63 Prepare block connection logic for headers-first.
This changes the block processing logic from "try to atomically switch
to a new block" to a continuous "(dis)connect a block, aiming for the
assumed best chain".

This means the smallest atomic operations on the chainstate become
individual block connections or disconnections, instead of entire
reorganizations. It may mean that we try to reorganize to one block,
fail, and rereorganize again to the old block. This is slower, but
doesn't require unbounded RAM.

It also means that a ConnectBlock which fails may be no longer called
from the ProcessBlock which knows which node sent it. To deal with that,
a mapBlockSource is kept, and invalid blocks cause asynchronous "reject"
messages and banning (if necessary).
2014-01-27 21:20:41 +01:00
Pieter Wuille
0ec16f35d6 Move only: extract WriteChainState and UpdatedTip from SetBestChain. 2014-01-27 21:13:48 +01:00
Cozz Lovan
edd735da4e [Qt] Fix coin control labels update 2014-01-27 19:16:31 +01:00
Philip Kaufmann
df966d1b24 log parameter interactions to debug.log 2014-01-27 12:08:48 +01:00
Wladimir J. van der Laan
ca1913e8f6
Merge pull request #2342
665bdd3 Fix off-by-one errors in use of IsFinalTx() (Peter Todd)
2014-01-27 10:16:54 +01:00
Wladimir J. van der Laan
b571a8c708 qt: Translation update
Update English .ts file from source as well as pull changes from transifex
to current translation.
2014-01-27 09:56:35 +01:00
Wladimir J. van der Laan
86fa1c9cf2
Merge pull request #3579
f3005c8 [Qt] harmonize strings used when exporting in addressbookpage (Philip Kaufmann)
2014-01-27 09:53:51 +01:00
Philip Kaufmann
f3005c82b1 [Qt] harmonize strings used when exporting in addressbookpage 2014-01-27 08:36:14 +01:00
Peter Todd
665bdd3bc9
Fix off-by-one errors in use of IsFinalTx()
Previously CreateNewBlock() didn't take into account the fact that
IsFinalTx() without any arguments tests if the transaction is considered
final in the *current* block, when both those functions really needed to
know if the transaction would be final in the *next* block.

Additionally the UI had a similar misunderstanding.

Also adds some basic tests to check that CreateNewBlock() is in fact
mining nLockTime-using transactions correctly.

Thanks to Wladimir J. van der Laan for rebase.
2014-01-26 21:50:15 -05:00
Gavin Andresen
e5aadb25c5 Updated fallback seed nodes from sipa's DNS seeds 2014-01-24 17:09:20 -05:00
Gavin Andresen
fd67424c82 Unit test fixes for AssertLockHeld / -DDEBUG_LOCKORDER
Unit tests would fail if compiled with -DDEBUG_LOCKORDER (AssertLockHeld()
would fail; AssertLockHeld() relies on the DEBUG_LOCKORDER code to keep
track of locks held).

Fixed by LOCK'ing the wallet mutex in the unit tests that manipulate the
wallet.
2014-01-24 10:47:29 -05:00
Wladimir J. van der Laan
d0a94f2c2f
Merge pull request #3571
57feb1b ui: Clarify help messages for 'message' fields (Wladimir J. van der Laan)
2014-01-24 11:38:13 +01:00
Wladimir J. van der Laan
57feb1ba5a ui: Clarify help messages for 'message' fields
Add or amend tooltips to clarify what the message is for and that it
doesn't go over the network.
2014-01-24 11:37:20 +01:00
Wladimir J. van der Laan
7d9d134bf9 Remove redundant .c_str()s
After the tinyformat switch sprintf() family functions support passing
actual std::string objects.

Remove unnecessary c_str calls (236 of them) in logging and formatting.
2014-01-23 16:05:01 +01:00
Wladimir J. van der Laan
b77dfdc9e3 Typesafe strprintf/error/LogPrint functions
Switch to tinyformat-based formatting.

Tinyformat is a typesafe drop-in replacement for C99 printf functions:
https://github.com/c42f/tinyformat
2014-01-23 16:05:00 +01:00
Wladimir J. van der Laan
53e9d3aa44
build: fix typo in configure help message
--with-qt-libdir etc, not --with-gui-libdir.
The typo was introduced in a9dbcf036b.
2014-01-23 14:05:43 +01:00
Wladimir J. van der Laan
17b409b2e6 qt: Fix richtext detection hang issue on very old Qt versions
Alternative implementation. Thanks to @awoland for the original.
Fixes #3486.
2014-01-23 12:44:28 +01:00
Wladimir J. van der Laan
8b2cf12b53
Merge pull request #3553
a8db31c qt: allow `walletpassphrase` in debug console without -server (Wladimir J. van der Laan)
2014-01-23 08:44:31 +01:00
Wladimir J. van der Laan
6746787a0c
Merge pull request #3560
fe14e8d build: Change package name to Bitcoin Core (Wladimir J. van der Laan)
6c980c7 build: Package docs/ and don't package source. (Wladimir J. van der Laan)
39db27c build: Add bitcoin-cli.exe to installer (Wladimir J. van der Laan)
2f87b38 Adapt Windows installer for 64 bit (Wladimir J. van der Laan)
f622232 gitian: Windows 64 bit support (Wladimir J. van der Laan)
2014-01-23 08:26:11 +01:00
Philip Kaufmann
f0219813d5 [Qt] move helpmessage from debug window to main menu
- the option to show our help message dialog resides now in main menu
  under help
2014-01-22 15:28:50 +01:00
Wladimir J. van der Laan
fe87b20717
Merge pull request #3568
4bee715 [Qt] very minor style cleanups (Philip Kaufmann)
2014-01-22 13:36:31 +01:00
Wladimir J. van der Laan
7dbe9ac1f3
Merge pull request #3567
22a5120 [Qt] Show and store message of normal bitcoin:URI (Cozz Lovan)
2014-01-22 13:33:15 +01:00
Philip Kaufmann
4bee715bfd [Qt] very minor style cleanups
- rebuilt some ui file layout to remove unreal values from the files
- remove an unneeded attribute from an ui file
- add / remove some spaces in files
2014-01-22 09:46:15 +01:00
Wladimir J. van der Laan
2f06b5965a
Merge pull request #3452
1ba3560 [Qt] let OptionsModel::getProxySettings() directly query proxy (Philip Kaufmann)
2014-01-22 08:55:57 +01:00
Wladimir J. van der Laan
ceab53b41d
Merge pull request #3521
4d90102 [Qt] Add sorting feature to the requested payments table (Cozz Lovan)
8476d5d [Qt] Permanently store requested payments in wallet (Cozz Lovan)
b10e147 wallet: add interface for storing generic data on destinations (Wladimir J. van der Laan)
2014-01-22 08:07:56 +01:00
Wladimir J. van der Laan
6586bc3b51
Merge pull request #3502
1f12844 Fix importprivkey / rescan (Cozz Lovan)
2014-01-22 08:06:11 +01:00
Cozz Lovan
22a51207ae [Qt] Show and store message of normal bitcoin:URI 2014-01-21 23:54:49 +01:00
Wladimir J. van der Laan
d0a7c682c6
build: Fix warning about space after trailing backslash 2014-01-21 14:32:05 +01:00
Wladimir J. van der Laan
f622232bcf gitian: Windows 64 bit support
- Build a 64 bit version of all dependencies
- Show 32/64 bit version in "About..." for x86
- Export 64-bit .exes and installer from gitian build
2014-01-21 14:02:13 +01:00
Wladimir J. van der Laan
77a1607ce8
Merge pull request #3548
7b50bb2 [Qt] add utilitydialog.cpp/h and helpmessage class (Philip Kaufmann)
2014-01-21 09:01:38 +01:00
Wladimir J. van der Laan
a682bc7e46
Merge pull request #3242
2041365 Bugfix: Use BOOST_CPPFLAGS when testing for boost sleep vs sleep_for (Luke Dashjr)
e18e100 configure: Minor grammatical changes to be more clear (Luke Dashjr)
a9dbcf0 configure: Change --with[out]-qt to --with[out]-gui and add --with[out]-cli and --with[out]-daemon to support more build configurations (Luke Dashjr)
f472990 Bugfix: Correct captitalisation of Qt (Luke Dashjr)
f930341 configure: Internal changes to make building bitcoind and bitcoin-cli optional (Luke Dashjr)
4a290b5 Cleanup LevelDB library dependencies (Luke Dashjr)
9b4e03b Bugfix: Undefine _FORTIFY_SOURCE before redefining it, to avoid warnings on compilers that define it by default (Luke Dashjr)
123e4f8 Bugfix: configure: Allow user-provided CXXFLAGS to override default optimisation, debug, and warning flags (Luke Dashjr)
2014-01-21 08:55:07 +01:00
Cozz Lovan
4d901023b7 [Qt] Add sorting feature to the requested payments table 2014-01-19 18:21:54 +01:00
Cozz Lovan
8476d5d407 [Qt] Permanently store requested payments in wallet 2014-01-19 18:21:54 +01:00
Wladimir J. van der Laan
b10e147096 wallet: add interface for storing generic data on destinations 2014-01-19 18:21:54 +01:00
Luke Dashjr
2041365c8c Bugfix: Use BOOST_CPPFLAGS when testing for boost sleep vs sleep_for 2014-01-18 21:10:56 +00:00
Luke Dashjr
e18e1001eb configure: Minor grammatical changes to be more clear 2014-01-18 21:10:52 +00:00
Luke Dashjr
a9dbcf036b configure: Change --with[out]-qt to --with[out]-gui and add --with[out]-cli and --with[out]-daemon to support more build configurations 2014-01-18 20:11:05 +00:00
Luke Dashjr
f47299038d Bugfix: Correct captitalisation of Qt 2014-01-18 20:10:07 +00:00
Luke Dashjr
f930341d81 configure: Internal changes to make building bitcoind and bitcoin-cli optional 2014-01-18 19:54:50 +00:00
Micha
e7906d18cf
Add a new checkpoint at block 279,000
From a cursory glance, it looks like block 279,000 meets the criteria for
a checkpoint block, and it's also what the bootstrap.dat torrent is at. This closes #3530.
2014-01-18 21:52:46 +02:00
Luke Dashjr
4a290b526c Cleanup LevelDB library dependencies 2014-01-18 19:47:21 +00:00
Cozz Lovan
1f12844fc0 Fix importprivkey / rescan 2014-01-18 18:47:32 +01:00
Philip Kaufmann
7b50bb2f1b [Qt] add utilitydialog.cpp/h and helpmessage class
- adds a nice and well formated dialog, which displays our -? help message
  (all options/paramaters)
- moves aboutdialog.cpp/h to the new utilitydialog
- move GUI shutdown window to utilitydialog
2014-01-18 16:57:02 +01:00
Pieter Wuille
b9d384a45d Merge src/leveldb changes: temporarily revert to writing .sst files. 2014-01-18 14:32:29 +01:00
Wladimir J. van der Laan
6c19ca1f92
Merge pull request #3490
7e08e29 better std::exception logging for block/undo files (Philip Kaufmann)
2014-01-18 12:25:05 +01:00
Wladimir J. van der Laan
a8db31c83d qt: allow walletpassphrase in debug console without -server
Currently it is only possible to use `walletpassphrase` to unlock the
wallet when bitcoin is started in server mode.

Almost everything that manipulates the wallet in the RPC console
needs the wallet to be unlocked and is thus unusable without -server.

This is pretty unintuitive to me, and I'm sure it's even more confusing
to users.

Solve this with a very minimal change: by making the GUI start a
dummy RPC thread just to handle timeouts.
2014-01-17 16:55:20 +01:00
Philip Kaufmann
1ba3560fe8 [Qt] let OptionsModel::getProxySettings() directly query proxy
- as a proxy set via GUI can be overridden via -proxy, directly query the
  core to get active proxy
- give a warning, if active proxy is not SOCKS5 (needs to be SOCKS5 for
  the Qt networking code to work)
- also remove an obsolete connect() call from optionsdialog.cpp and a
  reference to Bitcoin-Qt (now just GUI)
2014-01-17 15:43:44 +01:00
Wladimir J. van der Laan
08ede8ef5e
Merge pull request #3512
04aa828 [Qt] don't regenerate autostart link on every client startup (Philip Kaufmann)
2014-01-17 10:11:46 +01:00
Gavin Andresen
8c31f037b1 Merge pull request #3527 from laanwj/2014_01_gitian_win32_qt5
build: update win32 deps
2014-01-15 04:20:58 -08:00
Wladimir J. van der Laan
f8b48ed297
Merge pull request #3426
16ec904 Don't create empty transactions when reading corrupted wallet (Wladimir J. van der Laan)
2014-01-14 18:59:07 +01:00
Wladimir J. van der Laan
1aac1448de
Merge pull request #3538
81bad8b [Qt] 2 minor translation changes (Philip Kaufmann)
2014-01-14 18:55:39 +01:00
Wladimir J. van der Laan
6b5fbc9073
Merge pull request #3541
c704532 [Qt] small paymentserver header cleanup (Philip Kaufmann)
2014-01-14 18:48:02 +01:00
Wladimir J. van der Laan
b0e8c4b0b9
Merge pull request #3540
57d8e3f [Qt] add missing lock in walletmodel (Cozz Lovan)
2014-01-14 18:33:27 +01:00
Philip Kaufmann
c704532294 [Qt] small paymentserver header cleanup 2014-01-14 17:57:32 +01:00
Philip Kaufmann
81bad8b386 [Qt] 2 minor translation changes 2014-01-14 17:43:38 +01:00
Cozz Lovan
57d8e3f88f [Qt] add missing lock in walletmodel 2014-01-14 17:41:57 +01:00
Philip Kaufmann
8c20bbbed9 update copyright year to 2014 2014-01-14 17:11:38 +01:00
Wladimir J. van der Laan
b26de9d951
qt: Update remaining "The Bitcoin Core Developers" 2014-01-14 11:19:52 +01:00
Wladimir J. van der Laan
1e3abb4e3d build: upgrade Qt used by windows build to 5.2.0 2014-01-14 11:03:21 +01:00
Wladimir J. van der Laan
dbafb99472
Merge pull request #3526
f10b2d7 qt: use series of pngs for spinner (Wladimir J. van der Laan)
2014-01-14 07:55:47 +01:00
Gavin Andresen
266921e70f Merge pull request #3516 from sipa/serorphans-head
Store orphan blocks in serialized form
2014-01-13 08:54:33 -08:00
Wladimir J. van der Laan
f087ce8891 qt: English translation update 2014-01-13 17:36:24 +01:00
Wladimir J. van der Laan
c7930c859e
Merge pull request #3528
66a8829 qt: Minor message updates (Wladimir J. van der Laan)
2014-01-13 17:35:17 +01:00
Wladimir J. van der Laan
f126973fd0
Merge pull request #3374
bd70562 [Qt] add messages when handling local payment request files (Philip Kaufmann)
2014-01-13 17:11:05 +01:00
Wladimir J. van der Laan
66a8829a33 qt: Minor message updates
Used sending/receiving addresses -> Sending/receiving addresses
Previously requested payments -> Requested payments (idea from @cozz in #3521)
2014-01-13 17:05:55 +01:00
Wladimir J. van der Laan
f10b2d70d0 qt: use series of pngs for spinner
Use a series of .png frames for the spinner instead of a .mng.
`mng` is an obscure image format and is not built by default into Qt5.

This appears to improve the crispness of the spinner as well.

Does not noticably increase the size (still ~27k) and the code
is not more complicated either.
2014-01-13 14:45:23 +01:00
Wladimir J. van der Laan
67d60f7031 build: fix MacOSX build after ec41342
Fix regression introduced in ec41342.

Also use a less ugly solution, by defining the value of
`MOC_DEFS` in the configure script instead of `Makefile.include`.
2014-01-13 10:33:12 +01:00
Wladimir J. van der Laan
0e469b5167
Merge pull request #3513
d464edf [Qt] fix alphabetical ordering in Makefile.am (Philip Kaufmann)
2014-01-12 10:03:02 +01:00
Wladimir J. van der Laan
0a4fefe18f
Merge pull request #3511
245a6ab [Qt] guard bitcoin-config.h and remove dublicated help message code (Philip Kaufmann)
2014-01-12 10:01:31 +01:00
Wladimir J. van der Laan
b68c618c6d
Merge pull request #3507
9b146cd GUI: Fix design in overview page (Cozz Lovan)
2014-01-12 10:00:39 +01:00
Philip Kaufmann
d464edfb8c [Qt] fix alphabetical ordering in Makefile.am
- also change to 1 file per line for more stuff in Makefile.am
2014-01-12 03:00:53 +01:00
Pieter Wuille
da0fecffa7 Store orphan blocks in serialized form 2014-01-11 23:39:29 +01:00
Philip Kaufmann
04aa828728 [Qt] don't regenerate autostart link on every client startup
- allows users to add additional paramaters via the autostart link
- related to #2197
2014-01-11 18:58:26 +01:00
Philip Kaufmann
245a6ab1ae [Qt] guard bitcoin-config.h and remove dublicated help message code 2014-01-11 18:56:24 +01:00
Philip Kaufmann
c037531d69 small headers ordering cleanup
- keep headers in alphabetical order
- fix Makefile.am (2 files in 1 line - leftover)
- remove some spaces etc.
2014-01-11 18:17:09 +01:00
Cozz Lovan
9b146cd3ca GUI: Fix design in overview page 2014-01-11 16:30:14 +01:00
Wladimir J. van der Laan
5a407bd095
makefile.am: split long lines into one file per line
This makes it easier to read diffs.
Cosmetic change to build system only.
2014-01-11 15:23:15 +01:00
Wladimir J. van der Laan
b7f4b6d35d GUI for --disable-wallet compiles and -disablewallet mode
There is not much in the GUI to be done without wallet,
though it's possible to change options, watch the sync process,
and use the debug console.

So embed the debug console in the main window.
2014-01-11 12:36:20 +01:00
Wladimir J. van der Laan
ec41342e3d build: pass correct defs and include path to moc
To make sure the right slots are generated, MOC needs -DHAVE_CONFIG_H
and correct include path to include bitcoin-config.h.
2014-01-11 12:23:00 +01:00
Wladimir J. van der Laan
9a2305a1b3 qt: Stop shutdown detection timer during shutdown
Stop the shutdown timer from exiting the main loop
when shutdown is already in progress.

Fixes seeming hanging window after typing 'stop' in debug console.

Also hide the debug console during shutdown as it is useless without
a core to connect to.
2014-01-11 10:20:28 +01:00
Wladimir J. van der Laan
35ecf854c0 qt: Remove global references in bitcoin.cpp
Remove the need for global references `guiref` and
`splashref` by making the BitcoinGUI and SplashScreen
classes register for the UI interface signals themselves.
2014-01-11 10:20:28 +01:00
Wladimir J. van der Laan
55fe4de960 qt: Show window while shutting down
Makes it clear to the user that the application is still wrapping up
and the computer should not be turned off until it is finished.
2014-01-11 10:20:28 +01:00
Wladimir J. van der Laan
202d853bbe qt: Move initialization/shutdown to a thread
Move AppInit2 and Shutdown to a thread.

This allows a more responsive splash screen, prevents 'process does not respond'
messages from the window system and will allow for showing a user friendly
window while shutting down.
2014-01-11 10:20:28 +01:00
Cory Fields
42cc96737c qt5: fix typo causing broken selection logic 2014-01-10 16:30:34 -05:00
Cory Fields
371f3f6ba5 qt5: fix --with-qt with no arguments 2014-01-10 16:30:33 -05:00
Cory Fields
8b0f608815 qt5: tests: Make sure static plugin symbols are pulled in
Since we're now properly linking against static plugins for qt binaries,
we need to ensure that they're Imported properly.

Without these Imports, the linker drops some of the unused linked libs, causing
undefined symbols in QtCore.
2014-01-10 16:30:33 -05:00
Cory Fields
47ffb50533 qt5: Use QT_SELECT for debian-based distros.
At least Debian/Ubuntu use 'qtchooser' for switching between qt4/qt5 binaries.
It is a wrapper for all qt tools, and calls the named tool of the default
version unless overridden by the -qt= option or QT_SELECT environment variable.
QT_SELECT is set by configure once the qt version has been chosen.

Take for example, moc.

$ which moc
    /usr/bin/moc

$ ls -go /usr/bin/moc
    lrwxrwxrwx 1 9 Jul  3 21:33 /usr/bin/moc -> qtchooser

$ qtchooser -print-env
    QT_SELECT="default"
    QTTOOLDIR="/usr/lib/x86_64-linux-gnu/qt4/bin"
    QTLIBDIR="/usr/lib/x86_64-linux-gnu"

$ QT_SELECT=qt5 qtchooser -print-env
    QT_SELECT="qt5"
    QTTOOLDIR="/usr/lib/x86_64-linux-gnu/qt5/bin"
    QTLIBDIR="/usr/lib/x86_64-linux-gnu"

$ moc -v
    Qt Meta Object Compiler version 63 (Qt 4.8.4)

$ QT_SELECT=qt5 moc -v
    Qt Meta Object Compiler version 67 (Qt 5.0.1)

This should be harmless elsewhere.
2014-01-10 16:30:33 -05:00
Cory Fields
60dc589477 qt5: Use the info gleaned from configure for plugin importing 2014-01-10 16:30:33 -05:00
Cory Fields
c8ba8ef654 qt5: split out qt config and add qt5 support
Qt5 detection is a big ugly mess, but at least we can fence it off.
2014-01-10 16:30:33 -05:00
Cory Fields
c614bd718b qt5: fix a build issue with osx and qtdbus
See comment in notificator.cpp for details.
2014-01-10 16:30:33 -05:00
Cory Fields
328bdb1cd6 qt5: Ensure correct link order
If optional libs don't appear in QT_LIBS, they need to be listed first for
proper static linking.
2014-01-10 16:30:33 -05:00
Wladimir J. van der Laan
a036b796d1
Merge pull request #3347
7e195e8 [Qt] massive options/settings rework (no core changes) (Philip Kaufmann)
2014-01-10 12:55:12 +01:00
Philip Kaufmann
6a1bf00425 [Qt] display native dir separators in select dadatir dialog
- fixes display on Windows now \ instead of / before
2014-01-10 11:43:29 +01:00
Wladimir J. van der Laan
5b45bf400e
Merge pull request #3488
2102ab9 ui: Fix GUI initialization order (Wladimir J. van der Laan)
2014-01-10 11:39:42 +01:00
Wladimir J. van der Laan
c07dd453e4
Merge pull request #3432
b960fcb [Qt] update bitcoin-qt.pro and assets-attribution.md (Philip Kaufmann)
2014-01-10 08:56:33 +01:00
Wladimir J. van der Laan
eaafa23cbd Add test for GetTime()
Test for mingw/wine issue #3494, where the upper word of time(NULL)
return value gets clobbered.
2014-01-09 11:35:38 +01:00
Wladimir J. van der Laan
13e99e463d
Merge pull request #3491
04f58ff qt: Better status text for mined transactions (Wladimir J. van der Laan)
2014-01-09 10:08:41 +01:00
Philip Kaufmann
b960fcb86a [Qt] update bitcoin-qt.pro and assets-attribution.md
- remove unused and unmentioned file notsynced.png (we use an animation
  for this)
- add missing coincontroldialog.ui to bitcoin-qt.pro
- also unify formating in assets-attribution.md
2014-01-09 07:38:08 +01:00
Wladimir J. van der Laan
6d697e9fa4
qt: Update translations
Update current translations, and add new languages:

- es_MX: Spanish (Mexico)
- pam: Kapampangan

Also update translation process for autoconf-based build system.
2014-01-08 18:48:39 +01:00
Wladimir J. van der Laan
549e69a558
Merge pull request #3449
8b9adca Allow `-noserver` with bitcoind (Wladimir J. van der Laan)
2014-01-08 14:42:07 +01:00