Pieter Wuille [Sun, 3 Jul 2011 13:33:01 +0000]
Do not use obsolete CPrivKey for passing keys around
Matt Corallo [Sat, 2 Jul 2011 21:08:35 +0000]
Add Wallet Encryption section to README
Matt Corallo [Thu, 30 Jun 2011 00:09:47 +0000]
Add the walletlock RPC method to lock the wallet manually.
Matt Corallo [Tue, 28 Jun 2011 23:08:48 +0000]
Dynamically remove/insert the Options for encryption in the menus.
Matt Corallo [Tue, 28 Jun 2011 22:47:41 +0000]
Push unlocked_until in getinfo.
Matt Corallo [Tue, 28 Jun 2011 13:31:09 +0000]
Set the number of SHA512 rounds based on the speed of the computer.
Matt Corallo [Fri, 8 Jul 2011 13:47:35 +0000]
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
Jay Weisskopf [Tue, 12 Jul 2011 06:18:57 +0000]
Remove NSIS branding from bottom divider.
Jay Weisskopf [Mon, 11 Jul 2011 07:11:15 +0000]
Set default compression for NSIS installer to LZMA.
Use of LZMA (versus the current zlib) shaves a few MB off the installer.
Jay Weisskopf [Mon, 11 Jul 2011 07:09:07 +0000]
Add logos/branding currently found on bitcoin.org into NSIS installer.
Doug Huff [Thu, 30 Jun 2011 00:04:44 +0000]
Make mlock() and munlock() portable to systems that require the address to be on a page boundary.
Jeff Garzik [Sat, 9 Jul 2011 17:09:13 +0000]
Merge pull request #392 from laanwj/antimagic
Remove another magic number: change threshold for nLockTime to constant
Wladimir J. van der Laan [Sat, 9 Jul 2011 08:06:49 +0000]
remove magic number: change threshold for nLockTime to constant
Jeff Garzik [Fri, 8 Jul 2011 17:38:24 +0000]
Compile 'sv' translation
Jeff Garzik [Fri, 8 Jul 2011 17:36:49 +0000]
Merge pull request #376 from codler/translate
Minor translation changes for latest build (Swedish)
Dylan Noblesmith [Fri, 24 Jun 2011 03:03:17 +0000]
mlock() all private keys in memory
Inline comment and idea come from the encprivkeys branch
by Matt Corallo <matt@bluematt.me>.
Pieter Wuille [Sat, 25 Jun 2011 12:57:32 +0000]
Prepare codebase for Encrypted Keys.
Jeff Garzik [Tue, 5 Jul 2011 18:52:13 +0000]
Merge pull request #383 from sipa/syncdefault
Fix synchronization of default key
Jeff Garzik [Tue, 5 Jul 2011 17:10:26 +0000]
Merge pull request #384 from TheBlueMatt/upnp
Fix UPnP building, entirely my fault.
Matt Corallo [Tue, 5 Jul 2011 01:06:19 +0000]
Add minversion to wallet.
Matt Corallo [Tue, 5 Jul 2011 16:21:35 +0000]
Enable UPnP by default on bitcoin, but not on bitcoind (on gitian)
Also fix a minor type in gitian.yml
Matt Corallo [Tue, 5 Jul 2011 16:19:34 +0000]
Revert "Make UPnP default on Bitcoin but not on Bitcoind."
This reverts commit
ee1f884229736da6f5443157ccba97f4e8f50f82.
Stupid, stupid me...there is exactly 0 way to convince make to
execute a conditional based on a target-specific variable.
Pieter Wuille [Tue, 5 Jul 2011 15:42:44 +0000]
Fix synchronization of default key
Gavin Andresen [Tue, 5 Jul 2011 02:26:10 +0000]
Merge pull request #379 from gavinandresen/nocommas
Do not use comma as thousands separator
Jeff Garzik [Mon, 4 Jul 2011 23:34:18 +0000]
Merge pull request #380 from TheBlueMatt/buildupdates
Added a couple minor things to match newer build process.
Matt Corallo [Sun, 3 Jul 2011 12:41:09 +0000]
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.
Gavin Andresen [Mon, 4 Jul 2011 13:41:58 +0000]
Do not use comma as thousands separator
Using the comma as thousands separator causes problems for parts of the world
where comma == decimal point. Germans sending 0,001 bitcoins are unpleasantly
surprised when that results in 1 BTC getting sent.
Gavin Andresen [Sun, 3 Jul 2011 15:20:39 +0000]
Block-chain lock-in at 134444
Han Lin Yap [Sun, 3 Jul 2011 13:24:47 +0000]
Minor translation changes for latest build
Jeff Garzik [Sat, 2 Jul 2011 20:57:45 +0000]
Bump OSX version to 0.3.24 (missed in previous commit)
Jeff Garzik [Sat, 2 Jul 2011 20:55:11 +0000]
Bump version to 0.3.24.
Jeff Garzik [Sat, 2 Jul 2011 20:46:07 +0000]
Merge branch 'tmp2' into tmp3
Jeff Garzik [Sat, 2 Jul 2011 19:04:09 +0000]
Merge pull request #374 from TheBlueMatt/neterror
Give more detailed error messages for connection failure.
Matt Corallo [Sat, 2 Jul 2011 01:59:37 +0000]
Give more detailed error messages for connection failure.
Jeff Garzik [Sat, 2 Jul 2011 02:39:05 +0000]
Merge pull request #372 from TheBlueMatt/upnp
Make UPnP default on Bitcoin but not on Bitcoind.
Jeff Garzik [Sat, 2 Jul 2011 00:38:24 +0000]
Merge pull request #373 from EricJ2190/master
Another Visual C++ Makefile Update
Eric Hosmer [Sat, 2 Jul 2011 00:17:10 +0000]
Add keystore.h to makefile.vs's header list.
Eric Hosmer [Sat, 2 Jul 2011 00:14:02 +0000]
Further updated Visual C++ makefile.
Matt Corallo [Fri, 1 Jul 2011 23:03:07 +0000]
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.
Jeff Garzik [Fri, 1 Jul 2011 23:34:49 +0000]
Merge pull request #343 from muggenhor/proper-http-server-rejection
rpc server: send '403 Forbidden' to rejected clients
Jeff Garzik [Fri, 1 Jul 2011 23:33:28 +0000]
Merge pull request #368 from TheBlueMatt/dnsseed
Only use dnsseeds when not on testnet.
Jeff Garzik [Fri, 1 Jul 2011 23:31:33 +0000]
Merge pull request #371 from EricJ2190/master
Updated Visual C++ Makefile
Jeff Garzik [Fri, 1 Jul 2011 21:58:03 +0000]
Enable DNS seeding by default.
Jeff Garzik [Fri, 1 Jul 2011 21:51:48 +0000]
Merge pull request #369 from sipa/limitblocksend
Limit size of response to getblocks
Eric Hosmer [Fri, 1 Jul 2011 16:58:48 +0000]
Updated Visual C++ makefile.
Matt Corallo [Fri, 1 Jul 2011 00:09:51 +0000]
Only use dnsseeds and static seeds when not on testnet.
Pieter Wuille [Thu, 30 Jun 2011 21:29:44 +0000]
Limit response to getblocks to half of output buffer size
Introduce SendBufferSize() and ReceiveBufferSize(), and limit
the blocks sent as response to the "getblocks" message to
half of the active send buffer size.
Jeff Garzik [Thu, 30 Jun 2011 21:51:55 +0000]
Merge pull request #367 from TheBlueMatt/dnsseed
Add new DNSSeed dnsseed.bluematt.me.
Matt Corallo [Thu, 30 Jun 2011 21:42:59 +0000]
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.
Gavin Andresen [Wed, 29 Jun 2011 14:52:14 +0000]
Merge pull request #357 from jrmithdobbs/osx-appbundle
Add OSX App bundle and correct build instructions to reflect reality.
Gavin Andresen [Wed, 29 Jun 2011 14:13:04 +0000]
Merge pull request #361 from spiechu/polish-translation
added polish translation
Pieter Wuille [Tue, 28 Jun 2011 20:47:08 +0000]
Merge pull request #362 from ius/issue340
Fix connection failure debug output
Joerie de Gram [Tue, 28 Jun 2011 20:16:12 +0000]
Fix connection failure debug output
Dawid Spiechowicz [Tue, 28 Jun 2011 18:37:51 +0000]
added polish translation
Stéphane Gimenez [Mon, 27 Jun 2011 21:22:30 +0000]
Fix AddressBook syncrhonization between a CWallet and CWalletDB
This problem was reported independently by laanwj in Issue #350.
Gavin Andresen [Mon, 27 Jun 2011 20:30:44 +0000]
Merge pull request #356 from gavinandresen/unitTest
Boost unit-testing framework. Thanks to Steve (gasteve in irc) for original code.
Doug Huff [Mon, 27 Jun 2011 20:11:35 +0000]
Add OSX App bundle and correct build instructions to reflect reality.
Gavin Andresen [Mon, 27 Jun 2011 18:05:02 +0000]
Boost unit-testing framework.
make -f makefile.{unix,osx,mingw} test_bitcoin
to compile dumb, do-almost-nothing placeholder unit tests.
Giel van Schijndel [Sat, 25 Jun 2011 02:31:48 +0000]
rpc: don't send 403 when using SSL to prevent DoS
Signed-off-by: Giel van Schijndel <me@mortis.eu>
Giel van Schijndel [Fri, 24 Jun 2011 17:26:47 +0000]
rpc server: send '403 Forbidden' to rejected clients
In order to be a proper HTTP implementation clients that aren't allowed
to connect to the RPC server (using -rpcallowip), should receive a
proper HTTP response. So instead of closing the connection on them send
a '403 Forbidden' status.
Signed-off-by: Giel van Schijndel <me@mortis.eu>
Pieter Wuille [Sun, 26 Jun 2011 10:04:39 +0000]
Merge pull request #347 from sipa/delkeyuser
Fix segfault when creating new wallet
Pieter Wuille [Sun, 26 Jun 2011 00:37:52 +0000]
Fix segfault when creating new wallet
The initialization of the default key used keyUser instead
of vchDefaultKey. keyUser is now complete removed.
Gavin Andresen [Fri, 24 Jun 2011 15:17:22 +0000]
Merge branch 'totalblocksestimate1' of https://github.com/laanwj/bitcoin
Jeff Garzik [Fri, 24 Jun 2011 04:43:30 +0000]
Merge pull request #342 from jburkle/datadir_check
Edited init.cpp to include a check that -datadir exists
James Burkle [Fri, 24 Jun 2011 03:43:26 +0000]
Edited init.cpp to include a check that -datadir exists
Pieter Wuille [Mon, 20 Jun 2011 18:10:58 +0000]
Merge pull request #334 from sipa/walletclass
Bugfixes walletclass
Pieter Wuille [Sun, 19 Jun 2011 16:32:36 +0000]
Bugfixes walletclass
Some problems found by ius:
* compiler complains with no return after critical section block
* CKeyStore::GetPrivKey(key) was undefined for unknown key
* missing return statement in GetChange()
Jeff Garzik [Mon, 20 Jun 2011 03:04:24 +0000]
Merge pull request #332 from shanew/master
Include missing Boost header
Jeff Garzik [Mon, 20 Jun 2011 03:03:08 +0000]
Merge pull request #331 from TheBlueMatt/translatefix
Update translations and remove obsolete translations.
Shane Wegner [Sun, 19 Jun 2011 22:12:31 +0000]
Fix missing includes needed for Boost 1.46.
Jeff Garzik [Sun, 19 Jun 2011 01:50:05 +0000]
CWalletTx::GetAmounts(): pass NULL for CKeyStore*, rather than false
to fix warning.
Pieter Wuille [Sun, 19 Jun 2011 00:36:25 +0000]
Merge pull request #288 from sipa/walletclass
CWallet class
Wladimir J. van der Laan [Sat, 18 Jun 2011 17:05:39 +0000]
add GetTotalBlocksEstimate() function, move magic number to constant
Matt Corallo [Sat, 18 Jun 2011 13:06:24 +0000]
Update translations and remove obsolete translations.
Jeff Garzik [Thu, 16 Jun 2011 21:52:38 +0000]
doc/release-process.txt: minor updates
Pieter Wuille [Wed, 1 Jun 2011 16:28:20 +0000]
CWallet class
* A new class CKeyStore manages private keys, and script.cpp depends on access to CKeyStore.
* A new class CWallet extends CKeyStore, and contains all former wallet-specific globals; CWallet depends on script.cpp, not the other way around.
* Wallet-specific functions in CTransaction/CTxIn/CTxOut (GetDebit, GetCredit, GetChange, IsMine, IsFromMe), are moved to CWallet, taking their former 'this' argument as an explicit parameter
* CWalletTx objects know which CWallet they belong to, for convenience, so they have their own direct (and caching) GetDebit/... functions.
* Some code was moved from CWalletDB to CWallet, such as handling of reserve keys.
* Main.cpp keeps a set of all 'registered' wallets, which should be informed about updates to the block chain, and does not have any notion about any 'main' wallet. Function in main.cpp that require a wallet (such as GenerateCoins), take an explicit CWallet* argument.
* The actual CWallet instance used by the application is defined in init.cpp as "CWallet* pwalletMain". rpc.cpp and ui.cpp use this variable.
* Functions in main.cpp and db.cpp that are not used by other modules are marked static.
* The code for handling the 'submitorder' message is removed, as it not really compatible with the idea that a node is independent from the wallet(s) connected to it, and obsolete anyway.
Pieter Wuille [Wed, 1 Jun 2011 16:27:05 +0000]
move wallet code to separate file
This introduces two new source files, keystore.cpp and wallet.cpp with
corresponding headers. Code is moved from main and db, in a preparation
for a follow-up commit which introduces the classes CWallet and CKeyStore.
Jeff Garzik [Tue, 14 Jun 2011 09:05:57 +0000]
Merge pull request #226 from jordanlewis/betterheaders
Optimize header dependencies; improve Makefile dependency graph
Jeff Garzik [Tue, 14 Jun 2011 08:50:51 +0000]
FormatFullVersion: build fix related to recent translation improvement
Jeff Garzik [Tue, 14 Jun 2011 08:33:04 +0000]
Merge pull request #314 from codler/translate
Update swedish translation
Jeff Garzik [Tue, 14 Jun 2011 08:32:40 +0000]
Merge pull request #315 from codler/consistent-address
Consistent Bitcoin example address
Han Lin Yap [Tue, 14 Jun 2011 08:17:07 +0000]
Consistent Bitcoin example address
Han Lin Yap [Tue, 14 Jun 2011 07:07:30 +0000]
Update swedish translation
Jeff Garzik [Sat, 11 Jun 2011 23:17:13 +0000]
Merge pull request #300 from sipa/connecttimeout
non-blocking connect (by phantomcircuit)
Pieter Wuille [Mon, 6 Jun 2011 18:35:01 +0000]
Faster timeout when connecting
Use non-blocking connects, and a select() call to wait a predefined
time (5s by default, but configurable with -timeout) for either
success or failure. This allows much more connections to be tried
per time unit.
Based on a patch by phantomcircuit.
Han Lin Yap [Sat, 11 Jun 2011 22:18:34 +0000]
Double check translation and improved a translation string
Jeff Garzik [Sat, 11 Jun 2011 16:58:02 +0000]
Merge pull request #312 from codler/patch-1
Remove unused variable
Han Lin Yap [Sat, 11 Jun 2011 10:21:32 +0000]
Remove unused variable
Jeff Garzik [Sat, 11 Jun 2011 07:27:16 +0000]
Merge pull request #311 from codler/master
Added Swedish translation
Han Lin Yap [Sat, 11 Jun 2011 06:52:07 +0000]
Added Swedish translation
Jeff Garzik [Fri, 10 Jun 2011 06:14:56 +0000]
Add minimal release process docs.
Jeff Garzik [Fri, 10 Jun 2011 06:07:13 +0000]
Lower minimum relay TX fee to 0.0001 (from 0.0005) BTC.
Jeff Garzik [Fri, 10 Jun 2011 05:42:25 +0000]
Merge pull request #304 from TheBlueMatt/cpufix
Fix CPU Usage bug when using -nolisten and have no connections.
Jeff Garzik [Thu, 9 Jun 2011 19:11:07 +0000]
Merge pull request #310 from xslidian/master
Updated Chinese Simp translation
Dean Lee [Thu, 9 Jun 2011 08:47:17 +0000]
Updated Chinese Simp translation
Gavin Andresen [Tue, 7 Jun 2011 18:38:35 +0000]
Merge pull request #293 from tcatm/keypool-fix
create keypool in LoadWallet()
Matt Corallo [Mon, 6 Jun 2011 22:48:37 +0000]
Fix CPU Usage bug when using -nolisten and have no connections.
Jeff Garzik [Mon, 6 Jun 2011 18:17:39 +0000]
Merge pull request #303 from jrmithdobbs/demystify-magic-numbers
Demystify a few magic numbers.
Doug Huff [Mon, 6 Jun 2011 17:47:19 +0000]
Demystify a few magic numbers.
Jeff Garzik [Sun, 5 Jun 2011 18:28:14 +0000]
Reduce minimum TX fee for new transactions, to 0.0005.