Commit Graph
100 Commits
Author SHA1 Message Date
Matt Corallo 0ec76d834e Fix URI link to bitcoin-qt.exe instead of bitcoin.exe 2012-03-25 13:23:35 -04:00
Matt Corallo ecf07f2729 Limit getheaders to a hard 2000.
Previously getheaders would return any number of headers up to
2000 + the distance the locator parameter was back (which is up to
~ the number of items in the locator ^ 2).

The only client I was able to find which actually handles the headers
message is BitcoinJ, and it clearly expects no more than 2000 headers
See:
http://code.google.com/p/bitcoinj/source/browse/core/src/main/java/com/google/bitcoin/core/HeadersMessage.java#35

Additionally, the wiki clearly states that getheaders will only ever
return 2000 headers: https://en.bitcoin.it/wiki/Network#Messages
2012-03-19 00:13:15 -04:00
Matt Corallo 8864019f6d Fix Win32 RPC Crashes. 2012-03-16 14:28:54 -04:00
Matt Corallo 95486d5c48 Fix release-process.txt for new deps zip. 2012-02-29 16:12:36 -05:00
Matt Corallo 3d0a0a9b9e Make deps build deterministic and upgrade to libpng 1.5.9. 2012-02-22 22:09:06 -05:00
Matt Corallo db1a5609a0 Fix compilation warning. 2012-02-18 01:22:22 -05:00
Matt Corallo 7dcd200489 Properly include $*_LIB_PATH in makefile.unix 2012-02-15 16:39:02 -05:00
Matt Corallo b03cb15789 Make bitcoin-qt static-link libqrcode and add it for debian pkgs. 2012-02-15 16:39:01 -05:00
Matt Corallo 32af6b16f1 Fix compilation warning. 2012-02-15 16:38:57 -05:00
Matt Corallo 245484679a Add Bitcoin-Qt test suite with some bitcoin: URL Tests to start. 2012-02-10 17:47:00 -05:00
Matt Corallo cce89ead18 Add -req prefixes to comply with BIP21. 2012-02-10 17:44:52 -05:00
Matt Corallo baba6e7de2 Get ext. IP from UPnP, make sure addrMe IsRoutable() in version.
This fixes a potential bug where some NATs may replace the node's
interal IP with its external IP in version messages, causing
incorrect checksums when version messages begin being checksummed
on February 14, 2012.
2012-02-10 00:54:11 -05:00
Matt Corallo 177dbcaace Fix UPnP by reannouncing every 20 minutes. 2012-01-31 17:42:15 -05:00
Matt Corallo 198fb229a4 Add DEBUG_LOCKCONTENTION, to warn each time a thread waits to lock.
If compiled with -DDEBUG_LOCKCONTENTION, Bitcoin will print to
debug.log each time a thread has to wait for a lock to continue.
2012-01-21 16:16:28 -05:00
Matt Corallo 10ba0a3efc Minor code cleanup to use fHaveUPnP instead of #ifdef 2012-01-12 22:13:16 -05:00
Matt Corallo b24e6e4d1b Add -keepnode which attempts to -addnode and keep a connection open 2012-01-12 22:13:16 -05:00
Matt Corallo 65c82be021 Remove mentions on anonymity in debian folder.
These should never have been there, bitcoin isnt anonymous without
a ton of work that virtually no users will ever be willing and
capable of doing.
2012-01-07 13:38:43 -05:00
Matt Corallo 7d145a0f59 Add support for opening bitcoin: URIs directly. 2012-01-05 00:29:28 -05:00
Matt Corallo 9a93c4c024 Automatically refocus on new SendCoinsEntrys and scroll to them. 2012-01-05 00:29:28 -05:00
Matt Corallo f7a9a11391 Fix horrific performance found by gmaxwell. 2012-01-04 19:46:16 -05:00
Matt Corallo 0b5d6f1e26 Add QR Code support to Win32 Gitian build. 2011-12-25 02:15:16 -08:00
Matt Corallo 1194739745 Fix Linux gitian descriptor to use QRCode support. 2011-12-23 15:35:59 -08:00
Matt Corallo cad5745138 Add libqrencode-dev to the debian/ubuntu apt-get lines. 2011-12-23 15:34:48 -08:00
Matt Corallo 56690a69d6 No reason to have any qrcode stuff in the bitcoind osx makefile. 2011-12-23 15:28:35 -08:00
Matt Corallo 7415b805c4 Fix #722. 2011-12-23 02:24:46 -08:00
Matt Corallo f18a119ac0 Implement "Start on window system startup" on Win32 + Linux. 2011-12-20 13:51:06 -05:00
Matt Corallo fdaf1dfd2e Add laanwj to gitian download scripts. 2011-12-16 15:06:17 -05:00
Matt Corallo 4051e79887 Update debian changelog to 0.5.1. 2011-12-16 13:27:52 -05:00
Matt Corallo 61a8c0569e Add sipa's new dnsseed. 2011-12-16 11:30:36 -05:00
Matt Corallo 7ca47cece7 Fix status bar not displaying Alerts. 2011-12-13 15:29:17 -05:00
Matt Corallo a22535144c Re-enable RPCSSL in gitian builds. 2011-12-07 10:28:01 -05:00
Matt Corallo 3f9144d42c Move -lgdi32 after -lcrypto (fixes #681). 2011-12-03 21:51:50 -05:00
Matt Corallo 2bc6cecebb Move DNS Seed lookup to a new thread. 2011-11-26 14:28:46 -05:00
Matt Corallo 555d1cd02f Update contrib/debian/ for 0.5.0 release and fix copyright file. 2011-11-21 11:55:45 -05:00
Matt Corallo 38f33ce4a3 Add debian build folder 2011-11-08 11:57:05 -05:00
Matt Corallo 2b814d6eb0 Re-add bitcoin(32&80).xpm 2011-11-08 11:43:37 -05:00
Matt Corallo fca0e799c2 Update Win32 gitian descriptor for bitcoin-qt. 2011-11-01 10:49:11 -04:00
Matt Corallo 2f91039c70 Add gitian descriptor for qt cross compile via MinGW. 2011-11-01 10:49:02 -04:00
Matt Corallo 472bbb750c Update openssl to 1.0.0e. 2011-10-25 11:54:46 -04:00
Matt Corallo d1df571746 Update setup.nsi for bitcoin-qt. 2011-10-25 11:53:00 -04:00
Matt Corallo 438adb6c25 Decrease number of installed packages for Linux Gitian build. 2011-10-25 11:52:51 -04:00
Matt Corallo f5e760268b Remove wxWidgets gitian descriptors. 2011-10-25 11:52:36 -04:00
Matt Corallo 8ab246297b Update Linux gitian descriptor for bitcoin-qt. 2011-10-25 11:52:15 -04:00
Matt Corallo aaf71d8453 Allow miniupnpc include path specificaiton and fix link on Win32. 2011-10-25 11:51:57 -04:00
Matt Corallo 5f2e76b8c7 Optionally include additional QT plugins when required to build. 2011-10-25 11:51:34 -04:00
Matt Corallo 3f197952bd Add BOOST_THREAD_USE_LIB define. 2011-10-25 11:51:19 -04:00
Matt Corallo 0e569e4a27 Add option to specify a different suffix for boost_thread. 2011-10-25 11:47:10 -04:00
Matt Corallo 0767e69199 Add returns to avoid annoying compile-time warnings. 2011-10-25 11:40:59 -04:00
Matt Corallo d041590218 Add -Wno-strict-aliasing because boost breaks that too much. 2011-10-25 11:39:56 -04:00
Matt Corallo 25a9a1f62b Only define __STDC_LIMIT_MACROS if not already defined. 2011-10-25 11:39:17 -04:00
Matt Corallo f891cc9415 Update qt readme to indicate Qt is now the primary GUI. 2011-10-25 11:38:46 -04:00
Matt Corallo c923fe71b4 Update release-process to point to gitian.sigs repo. 2011-10-03 12:59:37 -04:00
Matt Corallo 45723584c5 Update release-process.txt with gitian release instructions. 2011-09-28 11:19:09 -04:00
Matt Corallo 36eccc5174 Output build temp files in build/ instead of current directory. 2011-09-26 13:14:34 -04:00
Matt Corallo 3fc4c3a9f1 Add win32 gitian download config. 2011-09-23 00:52:08 -04:00
Matt Corallo 0920ad152f Restructure gitian files and add download config files. 2011-09-22 16:52:49 -04:00
Matt Corallo 2fc80399b7 Update binary mo to match latest po translation. 2011-09-22 12:45:52 -04:00
Matt Corallo 6083295f46 Update bitcoin icon to make nsis setup exe deterministic.
This adds a 32x32 16-bit icon to the bitcoin.ico file.
Though this realistically probably looks worse than the 32-bit
32x32 being displayed on a 16-bit monitor, it makes the nsis
setup exe deterministic in gitian output (go figure) which makes
the slight visual loss for users of very old monitors/computers
worth it.
2011-09-14 10:59:54 -04:00
Matt Corallo 0295912479 Update gitian build descriptors to produce proper builds.
Thanks to makomk for finding the bugs here and devrandom
for passing them along (see
https://bitcointalk.org/index.php?topic=42198.msg514312#msg514312)
2011-09-09 12:35:42 -04:00
Matt Corallo fd5eaf323f Add binary mo for new translation. 2011-09-06 15:01:58 -04:00
Matt Corallo 7b7d46be89 Fix build process to actually work. 2011-09-03 12:38:20 -04:00
Matt Corallo fb462ab272 Update binary mos to latest translations. 2011-09-02 12:26:18 -04:00
Matt Corallo b4ada906c0 Upgrade dependancies and tweak build process.
* Upgrade to use miniupnpc 1.6
* Upgrade to wxWidgets 2.9.2
* Upgrade to Bost 1.47 for Win32 Builds
2011-08-23 13:00:34 -04:00
Matt Corallo 59ed5cb398 Add specific wallet encryption details to doc/README 2011-08-11 19:41:21 +02:00
Matt Corallo 8acb491eef Fix incorrect RPC error messages 2011-08-11 19:41:21 +02:00
Matt Corallo 2f8f51d1e4 Missed a 'password' should be 'passphrase'. 2011-08-11 19:41:21 +02:00
Matt Corallo b2120e223a Unify copyright notices.
To a variation on:
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2011 The Bitcoin developers
2011-08-09 13:32:52 +02:00
Matt Corallo 2c3691d53d Cleanup test suite output to be more useful. 2011-08-08 14:31:08 -04:00
Matt Corallo 3c8cecda1f Add file for transaction tests. 2011-08-08 14:31:08 -04:00
Matt Corallo 02962ba848 Add missing include to serialize.h 2011-08-08 14:31:08 -04:00
Matt Corallo 01a509fa26 Don't listen if on TOR (resolves #441). 2011-08-03 22:16:29 +02:00
Matt Corallo 918150048a Make it clear that setting proxy requires restart to fully apply. 2011-08-03 21:02:07 +02:00
Matt Corallo 33208fb557 Check for duplicate txins in CheckTransaction. 2011-07-31 14:20:10 +02:00
Matt Corallo 687c82558c Fix EncryptKeys crash introduced by a9ba4710, identified by TD. 2011-07-27 18:02:39 +02:00
Matt Corallo 643160f6e7 Actually use mapAlreadyAskedFor.
Previously, mapAlreadyAskedFor was read from, but never added to.
The original intent was to use mapAlreadyAskedFor to keep track
of the time an item was requested and "Each retry is 2 minutes
after the last".
This implements that intent.
2011-07-21 22:06:20 +02:00
Matt Corallo 3a10d1c493 Fix bad return values in LoadWallet. 2011-07-14 18:15:50 +02:00
Matt Corallo a2606bad09 Fix Build in GetReservedKey() in wallet.cpp 2011-07-14 03:34:07 +02:00
Matt Corallo cee69980b0 Generate Warning when using default key. 2011-07-14 03:28:31 +02:00
Matt Corallo 0d7b28e52e Fix crashes when a wallet is locked and GetReservedKey() is called 2011-07-14 03:11:40 +02:00
Matt Corallo d5e9d0000d Fix makefile.linux-mingw 2011-07-13 13:12:49 +02:00
Matt Corallo 0ca8324f59 Update makefile.linux-mingw to work with crypter and UPnP fix. 2011-07-12 22:44:00 -04:00
Matt Corallo 7414733bea Make an invalid addrIncoming so that old clients crash.
This prevents old clients from opening, and thus corrupting
or otherwise causing harm to encrypted wallets.
2011-07-13 02:11:25 +02:00
Matt Corallo 96f34cd5c4 Use DB Transactions when encrypting wallet.
This speeds up the encryption process significantly.
2011-07-13 02:11:25 +02:00
Matt Corallo b6b039d84e Add Wallet Encryption section to README 2011-07-13 02:11:25 +02:00
Matt Corallo fbeb5fb483 Add the walletlock RPC method to lock the wallet manually. 2011-07-13 02:11:25 +02:00
Matt Corallo 81598083e7 Dynamically remove/insert the Options for encryption in the menus. 2011-07-13 02:11:25 +02:00
Matt Corallo 98545d2cdf Push unlocked_until in getinfo. 2011-07-13 02:11:25 +02:00
Matt Corallo ddebdd9a8f Set the number of SHA512 rounds based on the speed of the computer. 2011-07-13 02:11:25 +02:00
Matt Corallo 4e87d341f7 Add wallet privkey encryption.
This commit adds support for ckeys, or enCrypted private keys, to the wallet.
All keys are stored in memory in their encrypted form and thus the passphrase
is required from the user to spend coins, or to create new addresses.

Keys are encrypted with AES-256-CBC using OpenSSL's EVP library. The key is
calculated via EVP_BytesToKey using SHA512 with (by default) 25000 rounds and
a random salt.

By default, the user's wallet remains unencrypted until they call the RPC
command encryptwallet <passphrase> or, from the GUI menu, Options->
Encrypt Wallet.

When the user is attempting to call RPC functions which require the password
to unlock the wallet, an error will be returned unless they call
walletpassphrase <passphrase> <time to keep key in memory> first.

A keypoolrefill command has been added which tops up the users keypool
(requiring the passphrase via walletpassphrase first).
keypoolsize has been added to the output of getinfo to show the user the
number of keys left before they need to specify their passphrase (and call
keypoolrefill).

Note that walletpassphrase will automatically fill keypool in a separate
thread which it spawns when the passphrase is set. This could cause some
delays in other threads waiting for locks on the wallet passphrase, including
one which could cause the passphrase to be stored longer than expected,
however it will not allow the passphrase to be used longer than expected as
ThreadCleanWalletPassphrase will attempt to get a lock on the key as soon
as the specified lock time has arrived.

When the keypool runs out (and wallet is locked) GetOrReuseKeyFromPool
returns vchDefaultKey, meaning miners may start to generate many blocks to
vchDefaultKey instead of a new key each time.

A walletpassphrasechange <oldpassphrase> <newpassphrase> has been added to
allow the user to change their password via RPC.

Whenever keying material (unencrypted private keys, the user's passphrase,
the wallet's AES key) is stored unencrypted in memory, any reasonable attempt
is made to mlock/VirtualLock that memory before storing the keying material.
This is not true in several (commented) cases where mlock/VirtualLocking the
memory is not possible.

Although encryption of private keys in memory can be very useful on desktop
systems (as some small amount of protection against stupid viruses), on an
RPC server, the password is entered fairly insecurely. Thus, the only main
advantage encryption has for RPC servers is for RPC servers that do not spend
coins, except in rare cases, eg. a webserver of a merchant which only receives
payment except for cases of manual intervention.

Thanks to jgarzik for the original patch and sipa, gmaxwell and many others
for all their input.

Conflicts:

	src/wallet.cpp
2011-07-13 02:11:25 +02:00
Matt Corallo 7ec552676c Add minversion to wallet. 2011-07-05 18:36:01 +02:00
Matt Corallo 09923991e5 Enable UPnP by default on bitcoin, but not on bitcoind (on gitian)
Also fix a minor type in gitian.yml
2011-07-05 18:21:35 +02:00
Matt Corallo 3f0950ea01 Revert "Make UPnP default on Bitcoin but not on Bitcoind."
This reverts commit ee1f884229.

Stupid, stupid me...there is exactly 0 way to convince make to
execute a conditional based on a target-specific variable.
2011-07-05 18:19:34 +02:00
Matt Corallo fa105b1d3a Added a couple minor things to match newer build process.
This adds the relevent patches which are applied to wx,
and updates for cross compiling.
2011-07-05 00:59:00 +02:00
Matt Corallo 013df1cc3b Give more detailed error messages for connection failure. 2011-07-02 13:25:18 +02:00
Matt Corallo ee1f884229 Make UPnP default on Bitcoin but not on Bitcoind.
This is a bit of an ugly hack, but its the only way to do it.
2011-07-02 01:46:22 +02:00
Matt Corallo ce8f78a7bb Only use dnsseeds and static seeds when not on testnet. 2011-07-01 17:33:19 +02:00
Matt Corallo f03c31db82 Add new DNSSeed dnsseed.bluematt.me.
This seed will pull a random set of 20 nodes from the network which
are tested to be online instead of a static list.
2011-06-30 23:42:59 +02:00
Matt Corallo 4acfe655d5 Update translations and remove obsolete translations. 2011-06-18 15:56:12 +01:00
Matt Corallo c6710c7a70 Fix CPU Usage bug when using -nolisten and have no connections. 2011-06-07 00:54:41 +02:00
Matt Corallo af531f0449 Fix GUI build on UNIX. 2011-05-27 12:38:10 +02:00