Commit Graph
56 Commits
Author SHA1 Message Date
Pieter Wuille 90efeb5ddb Updated dutch translation 2011-09-22 19:22:17 +02:00
Pieter Wuille 88367a5fb8 SocketHandler thread can be detached 2011-09-19 13:08:22 +02:00
Pieter Wuille 4d2ef6e5b6 avoid strAddress + validity checks
Avoid references to addresses using strings, and use CBitcoinAddress
as much as possible. Also added some validity checks on addresses
entered using RPC.
2011-08-03 13:01:09 +02:00
Pieter Wuille ce364b2d7a Merge pull request #444 from Jeroenz0r/patch-2
Translation from "Open Bitcoin" to "Verstuur Bitcoins"
2011-08-01 13:41:43 -07:00
Pieter Wuille e1f13129e8 Merge pull request #436 from TheBlueMatt/master
Fix EncryptKeys crash introduced by a9ba471, identified by TD.
2011-07-27 13:10:47 -07:00
Pieter Wuille aa7c5e7ceb Merge pull request #435 from sipa/fixextract
Bugfix: don't overuse limited ExtractAddress
2011-07-26 10:43:00 -07:00
Pieter Wuille b63241d451 Bugfix: don't overuse limited ExtractAddress
ExtractAddress was called with the keystore as argument in RPC and
UI, limiting results to own keys. This caused empty "address"
fields.
2011-07-26 19:41:47 +02:00
Pieter Wuille a0eb1d151f Merge pull request #434 from laanwj/addkey_retval
make SetHash160 return a value (as specified in the function signature)
2011-07-26 08:46:48 -07:00
Pieter Wuille b6d19aefa0 Merge pull request #428 from sipa/mintxfeefix
Fix for small change outputs
2011-07-24 08:08:33 -07:00
Pieter Wuille a7dd11c6da Fix for small change outputs
With the separation of CENT and MIN_TX_FEE, it is now reasonable
to create change outputs between 0.01 and 0.0005, as these are
spendable according to the policy, even though they require a fee
to be paid.

Also, when enough fee was already present, everything can go into
a change output, without further increasing the fee.
2011-07-24 16:37:09 +02:00
Pieter Wuille ca40e581eb Merge pull request #1 from AbrahamJewowich/cbitcoinaddress
Cbitcoinaddress
2011-07-18 06:38:54 -07:00
Pieter Wuille cb61b8dc4c split off CBase58Data from CBitcoinAddress
Split off features unrelated to addresses from CBitcoinAddress to
CBase58Data, so they can be reused.
2011-07-17 12:09:17 +02:00
Pieter Wuille 2ffba736e9 Use CBitcoinAddress instead of string/uint160
Instead of conversion functions between pubkey/uint160/address in
base58.h, have a fully fledged class CBitcoinAddress (CAddress was
already taken) to represent addresses.
2011-07-17 12:09:14 +02:00
Pieter Wuille 03fbd79049 get rid of mapPubKeys
Make CKeyStore's interface work on uint160's instead of pubkeys, so
no separate global mapPubKeys is necessary anymore.
2011-07-17 12:07:59 +02:00
Pieter Wuille 24271c542b Merge pull request #412 from sgimenez/db-transactions
Single DB transactions
2011-07-14 05:29:09 -07:00
Pieter Wuille 225e60ce34 Merge pull request #404 from TheBlueMatt/newenc
Fix makefile.linux-mingw
2011-07-13 04:14:16 -07:00
Pieter Wuille d5115a71a1 Bugfix: add autogenerated addresses to address book 2011-07-13 13:05:08 +02:00
Pieter Wuille 0efda1a79e Do not use obsolete CPrivKey for passing keys around 2011-07-13 02:11:25 +02:00
Pieter Wuille acd6501610 Prepare codebase for Encrypted Keys. 2011-07-08 15:46:47 +02:00
Pieter Wuille e9f61c8787 Fix synchronization of default key 2011-07-05 17:42:44 +02:00
Pieter Wuille 4973174534 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.
2011-07-01 09:39:44 +02:00
Pieter Wuille 3a3eabb57a Merge pull request #362 from ius/issue340
Fix connection failure debug output
2011-06-28 13:47:08 -07:00
Pieter Wuille d0d80170a2 Merge pull request #347 from sipa/delkeyuser
Fix segfault when creating new wallet
2011-06-26 03:04:39 -07:00
Pieter Wuille d3800d59d5 Fix segfault when creating new wallet
The initialization of the default key used keyUser instead
of vchDefaultKey. keyUser is now complete removed.
2011-06-26 02:37:52 +02:00
Pieter Wuille 1179257bfd Merge pull request #334 from sipa/walletclass
Bugfixes walletclass
2011-06-20 11:10:58 -07:00
Pieter Wuille 98705aa51c 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()
2011-06-20 20:07:28 +02:00
Pieter Wuille a6b2115963 Merge pull request #288 from sipa/walletclass
CWallet class
2011-06-18 17:36:25 -07:00
Pieter Wuille 64c7ee7e6b 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.
2011-06-15 11:05:55 +02:00
Pieter Wuille e89b9f6a2a 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.
2011-06-15 11:05:55 +02:00
Pieter Wuille 76d660ebd3 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.
2011-06-12 00:29:05 +02:00
Pieter Wuille e104c79374 Bugfix for dnsseed introduced by dnslookup 2011-06-02 16:22:49 +02:00
Pieter Wuille 7c05877df2 Merge remote branch 'upstream/master' 2011-06-02 16:17:37 +02:00
Pieter Wuille 5fecb27c1e Merge pull request #278 from TheBlueMatt/win32ssl
Update to openssl-1.0.0d and enable RPC-SSL on Win32
2011-05-28 13:00:33 -07:00
Pieter Wuille 12a1256c1d bugfix: accept free transactions 2011-05-28 16:43:49 +02:00
Pieter Wuille a452d9ee2d Merge remote branch 'bluematt/dpifix' 2011-05-27 12:44:56 +02:00
Pieter Wuille 5e1e458ecb loss of significance in difficulty (by lfm)
For instance any nBits compressed value from 0x1a44b800 thru
0x1a44b9ff will show as difficulty 244139.4816. This patch will
more accurately convert the nBits compressed values to the double
difficulty.

This will display any of the recent difficulty levels slightly
differently though. Early difficulties and testnet difficulties are
not large enough to trigger this bug.

None of the actual targets or compressed targets are changed, only
the conversion to the floating point difficulty is changed and afaik
it is only ever displayed, never converted back so the patch does not
effect the target calculations, binary files, databases nor the binary
protocol.
2011-05-26 23:35:00 +02:00
Pieter Wuille a757ed886a Merge remote branch 'bluematt/itfix2' 2011-05-26 22:44:41 +02:00
Pieter Wuille 6740ad3706 Merge remote branch 'bluematt/defix2' 2011-05-26 22:44:35 +02:00
Pieter Wuille 3d962315f2 Merge pull request #267 from sipa/mintxrelay
Separate required fee for relaying and creation
2011-05-26 13:33:51 -07:00
Pieter Wuille 2bfda1be11 Separate required fee for relaying and creation
Transactions created with the new minimal fee policy would not be
relayed by the network. Therefore, we separate the minimal fee that
is necessary to relay and to create, leaving the creation one at
the old amount, for now.
2011-05-26 00:54:58 +02:00
Pieter Wuille e426776598 Merge pull request #265 from TheBlueMatt/esfix2
Updated spanish translation
2011-05-25 12:31:16 -07:00
Pieter Wuille ca253d5911 Fix for small change outputs
With the separation of CENT and MIN_TX_FEE, it is now reasonable
to create change outputs between 0.01 and 0.0005, as these are
spendable according to the policy, even though they require a fee
to be paid.

Also, when enough fee was already present, everything can go into
a change output, without further increasing the fee.
2011-05-25 21:30:14 +02:00
Pieter Wuille a9ea3cd76d Updated dutch translation 2011-05-25 02:11:18 +02:00
Pieter Wuille 1c528eeee9 Update transactions already in the wallet when rescanning.
When rescanning, if the scanned transaction is already in the wallet, it
is skipped. However, if someone sends a transaction, does not wait for
confirmation, switches wallets, waits for a block that contains his original
transaction, and switches wallets again, a rescan will leave his wallet
transaction (which has no merkle branch, so no confirmations) untouched.
2011-05-22 17:12:20 +02:00
Pieter Wuille b201c1f600 Bugfix for dnslookup: irc.cpp still used old CAddress constructor 2011-05-17 17:54:06 +02:00
Pieter Wuille c22feee634 Merge pull request #224 from TheBlueMatt/mingwbuildfix
Fix MinGW build due to bad pointers to ui.rc pixmaps stuff.
2011-05-14 10:09:05 -07:00
Pieter Wuille f53faffb91 Merge pull request #223 from sipa/dnslookup
bugfix in dnslookup code: didn't compile in mingw
2011-05-14 09:48:42 -07:00
Pieter Wuille 545a679aed bugfix in dnslookup code: didn't compile in mingw 2011-05-14 18:13:58 +02:00
Pieter Wuille a6a5bb7c20 Support for name lookups in -connect and -addnode
* A new option -dns is introduced that enables name lookups in
  -connect and -addnode, which is not enabled by default,
  as it may be considered a security issue.
* A Lookup function is added that supports retrieving one or
  more addresses based on a host name
* CAddress constructors (optionally) support name lookups.
* The different places in the source code that did name lookups
  are refactored to use NameLookup or CAddress instead (dns seeding,
  irc server lookup, getexternalip, ...).
* Removed ToStringLog() from CAddress, and switched to ToString(),
  since it was empty.
2011-05-10 23:49:30 +02:00
Pieter Wuille fbfbf94deb Merge pull request #178 from wizeman/link-pthread.
Link with libpthread on Linux, required by libboost_thread.
2011-05-01 09:33:40 -07:00
Pieter Wuille be2fa90b94 Bugfix in recursive check in IsConfirmed()
When one single dependency of an unconfirmed transaction is already verified, this does not mean the parent is confirmed. We can skip checking its own dependencies though.
2011-04-23 15:33:52 +02:00
Pieter Wuille 8857aeb223 Monitor incoming transactions for spends by (a copy of) your own wallet 2011-04-20 11:39:15 -04:00
Pieter Wuille 6a76c60e6c Automatically rescan after restoring wallet.dat
Information about the best known chain is added to wallet.dat. If this
information does not match the data in blkindex.dat, a rescan is automatically
performed, starting from the the last known block. When upgrading from a wallet
which does not have this information, no rescan is done automatically.
2011-04-18 17:37:47 -04:00
Pieter Wuille c59b6f704c Bugfix for spentpertxout: slow startup
When starting the client, ReacceptWalletTransaction didn't skip spent transactions in its loop, and processed all old spent transactions again.
2011-04-12 21:01:11 +02:00
Pieter Wuille aca3f961db select transaction outputs separately
Update to SelectCoins and CreateTransaction to select source transaction outputs separately instead of per whole transaction.
2011-04-12 19:29:36 +02:00
Pieter Wuille 335e878be8 Spent per txout
Change some internal data structures to keep track of spentness of each wallet transaction output separately, to support partially-spent transactions:
* an update to the data structures (vfSpent in CWalletTx instead of fSpent)
* a backward-compatible update to the wallet disk format. Old clients reading back an updated wallet will ignore partially spent transactions when creating new ones, and may report a wrong balance, though.
* some helper functions (CWalletTx: IsSpent, MarkSpent, MarkDirty to reset cached values, GetAvailableCredit which only counts unredeemed outputs)
2011-04-12 19:29:36 +02:00