Gavin Andresen
15047f5af0
Merge pull request #2851 from TheBlueMatt/master
...
Prepare for mempool testing in pull-tester and fix multi-block transaction resurrection
2013-08-05 01:53:17 -07:00
Gavin Andresen
2af267c150
Merge pull request #2857 from Diapolo/compat_cleanup
...
cleanup compat.h Windows stuff
2013-08-05 01:48:35 -07:00
Gavin Andresen
e622f3f195
Merge pull request #2855 from Diapolo/guard_CreatePidFile
...
exclude CreatePidFile() function on WIN32 as it is unused
2013-08-05 01:05:59 -07:00
Gavin Andresen
a4ae02969e
Merge pull request #2827 from Diapolo/rpccon_winpos
...
Bitcoin-Qt: save and restore position of debug window
2013-08-05 00:58:05 -07:00
Gavin Andresen
d687aaa311
Merge pull request #2865 from Diapolo/fix_intro_translation
...
fix string in intro.cpp, which is untranslatable on Transifex
2013-08-05 00:24:49 -07:00
Gavin Andresen
159bc48193
Simplify storage of orphan transactions
...
Orphan transactions were stored as a CDataStream pointer;
this changes the mapOrphanTransactions data structures to
store orphans as a CTransaction.
This also fixes CVE-2013-4627 by always re-serializing
transactions before relaying them.
2013-08-02 16:10:25 +10:00
Gavin Andresen
8f6f92c72b
Revert "Truncate oversize 'tx' messages before relaying/storing."
...
This reverts commit c40a5aaaf4
.
2013-08-02 15:50:04 +10:00
Wladimir J. van der Laan
6d89611c3a
Merge pull request #2850 from Diapolo/fix_intro
...
fix possible infinite loop in intro.cpp thread
2013-07-31 22:15:05 -07:00
Jeff Garzik
d247a5d130
Move internal miner/block creation to separate miner.cpp module.
...
Public functions referenced elsewhere are added to miner.h.
2013-07-31 09:43:35 -04:00
Jeff Garzik
18946846d5
Minor miner fixes (hey hey it's fun to say)
...
* Fix UpdateCoins() definition in main.h
* Remove pwalletMain reference from BitcoinMiner(), as it is passed
a wallet argument.
2013-07-31 08:45:49 -04:00
Gavin Andresen
050d2e953f
Remove #define loop from util.h
...
Replace the loop macro with while (true). The #define caused
problems for Qt.
2013-07-31 14:06:44 +10:00
Philip Kaufmann
bef9f573b5
fix string in intro.cpp, which is untranslatable on Transifex
...
- seems the code tags in the original string cause errors, when using the
Transifex site for translation
2013-07-29 16:56:03 +02:00
Philip Kaufmann
c431e9f1f0
Bitcoin-Qt: save and restore position of debug window
...
- move the code for saving and restoring window positions from BitcoinGUI
to GUIUtil, make it more generic and also use it for saving/restoring
debug window positions
2013-07-29 16:22:46 +02:00
Pieter Wuille
c4316fefa5
Make sure new wallet variables are initialized
2013-07-29 02:34:01 +02:00
Pieter Wuille
4bb77b4963
Merge pull request #2541 from luke-jr/bugfix_wallet_resend
...
Bugfix: Store last/next wallet resend times unique per CWallet object
2013-07-28 17:21:21 -07:00
Pieter Wuille
83a3597071
Merge pull request #2702 from vinniefalco/leveldb-subtree-at-1-10-0
...
Leveldb subtree at 1 12 0
2013-07-28 03:57:17 -07:00
Philip Kaufmann
5bc6d8e580
fix possible infinite loop in intro.cpp thread
...
- it was possible to trigger an infinite loop in FreespaceChecker::check() by
simply removing the drive letter on Windows (which leads to an infinite
loop in the FreespaceChecker thread)
- this was caused by not checking if we make progress with
parentDir.parent_path()
2013-07-26 09:17:24 +02:00
Wladimir J. van der Laan
2b894bceac
Merge pull request #2847 from Diapolo/fix_QApplication_include
...
Bitcoin-Qt: fix QApplication includes to match our include defaults
2013-07-25 22:42:16 -07:00
Wladimir J. van der Laan
7d3a50ddbe
Merge pull request #2848 from Diapolo/translations
...
update bitcoin_en.ts to current master (2013-07-23)
2013-07-25 22:41:51 -07:00
Gavin Andresen
5e67e124cf
Merge pull request #1889 from tcatm/multi-wallet
...
let user select wallet file with -wallet=foo.dat
2013-07-24 22:52:21 -07:00
Philip Kaufmann
852605d8d1
remove windows.h from crypter.cpp includes
...
- remove an unneeded windows.h include (comes from allocators.h, which is
included in crypter.h)
2013-07-24 22:35:44 +02:00
Philip Kaufmann
dd833a4cd8
cleanup compat.h Windows stuff
...
- remove an unneded include for mswsock.h as we use winsock2.h anyway
- move typedef u_int SOCKET; into the #ifndef WIN32 part
- remove typedef int socklen_t; as this is defined in ws2tcpip.h
2013-07-24 16:24:38 +02:00
Philip Kaufmann
a034c7ebb6
exclude CreatePidFile() function on WIN32 as it is unused
2013-07-24 09:30:09 +02:00
Matt Corallo
9bf2a4aba2
Fix multi-block reorg transaction resurrection
2013-07-23 18:02:27 +02:00
Matt Corallo
d9ace8abe8
Don't use checkpoints and accept nonstd txn on -regtest
2013-07-23 18:02:26 +02:00
Peter Todd
aff83e9c02
Add unittests for multiple ELSEs in a row
...
IF ELSE ELSE ENDIF is a valid construct; execution or non-execution
inverts on each ELSE encountered.
2013-07-23 05:12:38 -04:00
Philip Kaufmann
3960d2e4ab
update bitcoin_en.ts to current master (2013-07-23)
2013-07-23 09:10:57 +02:00
Philip Kaufmann
84ef729aa1
Bitcoin-Qt: fix QApplication includes to match our include defaults
...
- move all QApplication includes to top of included Qt headers
- undef our loop macro where it would cause compilation errors otherwise
2013-07-23 08:52:24 +02:00
Jeff Garzik
0a740650a5
Merge pull request #2795 from fanquake/log_aborted_rebuilds
...
Log aborted block database rebuilds
2013-07-22 08:32:59 -07:00
Jeff Garzik
0cb6d67e46
Merge pull request #2832 from luke-jr/bugfix_wdb_boostver
...
Bugfix: Move boost/version include from db.cpp to walletdb.cpp where BOOST_VERSION is used
2013-07-22 08:08:27 -07:00
Jeff Garzik
6c6255edb5
Merge pull request #2826 from Diapolo/fix_mingw481
...
fix invalid conversion error with MinGW 4.8.1 in net.cpp
2013-07-22 08:05:05 -07:00
Jeff Garzik
ac6561322f
Merge pull request #2836 from phelixbtc/patch-3
...
makefile.mingw: Use normal boost libraries instead of debug for Windows
2013-07-22 08:02:53 -07:00
Matt Corallo
f65e7092a2
Better warning/"alert" messages for large-work forks.
2013-07-22 12:12:45 +02:00
Matt Corallo
f89faa2584
Call the -alertnotify script when we see a long or invalid fork.
2013-07-22 12:11:46 +02:00
Matt Corallo
b8585384da
Detect any sufficiently long fork and add a warning.
...
Such a fork is defined as being at least 7 blocks long and
having a tip which is within 72 blocks of our best block.
2013-07-22 12:10:57 +02:00
Luke Dashjr
dabd4bd48e
Bugfix: Include block creation and SSL options headings in usage
2013-07-21 16:13:00 +00:00
phelixbtc
eda7605dfe
makefile.mingw: Use normal boost libraries instead of debug for Windows
...
https://github.com/bitcoin/bitcoin/pull/2835#issuecomment-21231694
2013-07-19 10:20:13 +02:00
Wladimir J. van der Laan
4eab2dcc81
Merge pull request #2670 from laanwj/2013_05_datadir
...
qt: allow user to choose data directory
2013-07-18 22:42:50 -07:00
Luke Dashjr
203d1ae69b
Bugfix: Store last/next wallet resend times unique per CWallet object
2013-07-17 03:00:59 +00:00
Luke Dashjr
d4e2b040ed
Bugfix: Move boost/version include from db.cpp to walletdb.cpp where BOOST_VERSION is used
2013-07-15 22:16:42 +00:00
Pieter Wuille
a59db19ee3
BIP32 test vectors
2013-07-15 01:07:19 +02:00
Pieter Wuille
eb2c999050
BIP32 derivation implementation
2013-07-15 01:05:25 +02:00
Philip Kaufmann
b3e0aaf36e
fix invalid conversion error with MinGW 4.8.1 in net.cpp
...
- fixes src\net.cpp:1601: Error:invalid conversion from 'void*' to
'const char*' [-fpermissive] in a setsockopt() call on Win32 that was
found by using MinGW 4.8.1 compiler suite
2013-07-13 13:05:04 +02:00
Pieter Wuille
fb83a79b21
Fix minor backward incompatibility
...
The key refactor changed the way unencrypted private keys with compressed
public key are stored in the wallet. Apparently older versions relied on
this to verify the correctness of stored keys.
Note that earlier pre-release versions do risk creating wallets that can
not be opened by 0.8.3 and earlier.
2013-07-13 12:57:19 +02:00
Jeff Garzik
d598872726
Merge pull request #2743 from jgarzik/reject-reason
...
Log reason for non-standard transaction rejection
2013-07-10 08:50:49 -07:00
Jeff Garzik
3b837d5679
Merge pull request #2812 from jgarzik/rpcbestblock
...
RPC: add getbestblockhash, to return tip of best chain
2013-07-10 08:49:50 -07:00
Gregory Maxwell
204b8af6dc
Merge pull request #2796 from gmaxwell/remove_overactive_rand_tests
...
Make the rand tests determinstic.
2013-07-07 10:09:03 -07:00
Gregory Maxwell
e5c4dfdfc0
Make the rand tests determinstic. ( fixes #2714 )
...
This avoids spurious errors with the old tests but still tests
enough that if the rng is replaced with a totally broken one
it should still fail.
2013-07-07 09:54:47 -07:00
Nils Schneider
674cb304b3
let user select wallet file with -wallet=foo.dat
...
use std::string instead of psz for WalletFile
only allow wallets within $DATADIR
Use strWalletFile in salvage/recover
fix: remove unused variable pszWalletFile
move strWalletFile to init.h/init.cpp
avoid conversion of strWalletfile to c-string
2013-07-04 17:19:36 +02:00
Jeff Garzik
091aa8dae9
RPC: add getbestblockhash, to return tip of best chain
2013-07-03 11:02:29 -04:00
Vinnie Falco
fb1da62318
Merge commit 'adae78ea9940f4d44382967d1296e7db0b54a4de' into leveldb-squashed
2013-07-01 08:36:32 -07:00
Pieter Wuille
21cc8bdcbe
Fix build date for from-tarball builds
2013-06-29 14:16:50 +02:00
Pieter Wuille
a4f43075d6
Merge pull request #2793 from Diapolo/translations
...
translation update 2013-06-25
2013-06-26 15:02:28 -07:00
Pieter Wuille
1f2d739ac1
Merge pull request #2174 from CodeShark/sync_macro_clarification
...
Added comments to sync.h to make it easier to understand the macros
2013-06-26 10:51:33 -07:00
Eric Lombrozo
042da8bc0d
Added comments to sync.h to make it easier to understand the macros
2013-06-25 16:54:58 -07:00
Pieter Wuille
4ad73c6b08
Merge pull request #2209 from CodeShark/WalletRegistrationLocks
...
Wallet registration locks in main.cpp + UnregisterAllWallet() function
2013-06-25 16:33:16 -07:00
Jeff Garzik
36bd46f1c4
RPC: keypoolrefill gains optional size parameter
2013-06-25 16:21:42 -04:00
Jeff Garzik
13dd2d090e
CWallet::TopUpKeyPool() takes optional pool size argument
...
Also, GetKeyPoolSize() now returns an accurate type, unsigned int.
2013-06-25 16:07:29 -04:00
Jeff Garzik
481d899794
Merge pull request #2792 from sipa/coreimpl
...
Move core implementations to core.cpp
2013-06-25 11:52:18 -07:00
Michael Ford
664aeb2871
Log aborted block database rebuilds
2013-06-25 23:54:17 +08:00
Peter Todd
c40a5aaaf4
Truncate oversize 'tx' messages before relaying/storing.
...
Fixes a memory exhaustion attack on low-memory peers.
2013-06-25 10:37:50 -04:00
Gavin Andresen
2e01ec3207
Merge pull request #2679 from vhf/patch-1
...
Too many bitcoins allowed as amount. (Issue #2401 )
2013-06-25 06:47:53 -07:00
Philip Kaufmann
dae158132d
translation update 2013-06-25
...
- updates bitcoinstrings.cpp and bitcoin_en.ts so new translations can be
made on Transifex
2013-06-25 11:31:29 +02:00
Pieter Wuille
f121db58e4
Move core implementations to core.cpp
2013-06-25 10:33:29 +02:00
Eric Lombrozo
e6fe8e77fb
Calling UnregisterAllWallets() instead of UnregisterWallet(pwalletMain) in init.cpp
2013-06-24 09:33:15 -07:00
Eric Lombrozo
e5cefb9be1
Added locks on the setpwalletRegistered functions in main.cpp and added an UnregisterAllWallets function.
2013-06-24 09:25:23 -07:00
Jeff Garzik
79f6925fac
main.h->core.h include dependency improvements.
2013-06-24 10:41:16 -04:00
Jeff Garzik
396485b14d
Merge pull request #2789 from sipa/overdump
...
Dump addresses every 15 minutes instead of 10 seconds
2013-06-24 07:32:20 -07:00
Pieter Wuille
c43da3f183
Dump addresses every 15 minutes instead of 10 seconds
2013-06-24 11:48:14 +02:00
Eric Lombrozo
33944573ca
Moved CBlock from main.h to core.h
2013-06-23 19:59:35 -07:00
Eric Lombrozo
2a4d3464fd
Pulled AcceptBlock out of CBlock.
2013-06-23 19:59:35 -07:00
Eric Lombrozo
38991ffa8a
Pulled CheckBlock out of CBlock.
2013-06-23 19:59:35 -07:00
Eric Lombrozo
1959997afb
Pulled AddToBlockIndex out of CBlock.
2013-06-23 19:59:35 -07:00
Eric Lombrozo
f3ae51dcce
Pulled ConnectBlock out of CBlock.
2013-06-23 19:59:35 -07:00
Eric Lombrozo
5c363ed622
Pulled DisconnectBlock out of CBlock.
2013-06-23 19:59:34 -07:00
Eric Lombrozo
8031399494
Moved ReadBlockFromDisk implementation to main.cpp
2013-06-23 19:59:34 -07:00
Eric Lombrozo
7db120d531
Moved CBlock::ReadFromDisk out of CBlock to functions ReadBlockFromDisk in main.h
2013-06-23 19:59:34 -07:00
Eric Lombrozo
226f821942
Moved WriteBlockToDisk implementation from main.h to main.cpp
2013-06-23 19:59:32 -07:00
Eric Lombrozo
a6dba0fdb2
Moved CBlock::WriteToDisk out of CBlock to inline function WriteBlockToDisk in main.h
2013-06-23 19:58:23 -07:00
Pieter Wuille
8388289eb6
Generalize version bytes
2013-06-24 00:56:46 +02:00
Pieter Wuille
12dff9801f
Add HMAC-SHA512 to hash
2013-06-24 00:56:45 +02:00
Pieter Wuille
fd967fed89
Merge pull request #2783 from sipa/newtxindex
...
Initialize database before checking changed txindex
2013-06-23 15:49:08 -07:00
Pieter Wuille
ee4949794b
Merge pull request #2592 from sipa/dumpwallet
...
Add dumpwallet and importwallet RPC commands
2013-06-23 12:10:17 -07:00
Philip Kaufmann
336a53ddbc
fix makefiles and init.cpp after chainparams merge
...
- add missing chainparams.o to some makefiles
- remove a double-include of chainparams.h in init.cpp
2013-06-23 17:39:39 +02:00
Jeff Garzik
4be2aba302
Merge pull request #2778 from jgarzik/rpc-verifydb
...
RPC: add 'verifychain' to verify chain database at runtime
2013-06-22 23:08:13 -07:00
Jeff Garzik
980bfe6ef8
Log reason for non-standard transaction rejection
2013-06-23 02:05:25 -04:00
Pieter Wuille
b4a8a326c0
Merge pull request #2660 from TheBlueMatt/gmfrefactor
...
Refactor fee rules to make them actually readable.
2013-06-22 10:08:57 -07:00
Pieter Wuille
48628fd98c
Merge pull request #2765 from vobornik/master
...
recognize Debian kFreeBSD port by build_detect_platform script
2013-06-22 10:05:18 -07:00
Pieter Wuille
4e534aa9d8
Add dumpwallet and importwallet RPCs
...
dumpwallet: produce a dump of all keys in a wallet, in a format
compatible with Bitcoin Wallet for Android and Multibit.
importwallet: import such a dump
2013-06-22 17:30:56 +02:00
Pieter Wuille
434e4273b9
Add GetKeyBirthTimes to wallet
...
Compute safe lower bounds on the birth times of all wallet keys. For
pool keys or keys with metadata, the actually stored birth time is
used. For all others, the birth times are inferred from the wallet
transactions.
2013-06-22 17:30:56 +02:00
Pieter Wuille
acc775c554
Add ExtractAffectedKeys to script
...
This function finds all keys affected by a particular output script,
supporting everything ExtractDestinations supports (pay-to-pubkey,
pay-to-pubkeyhash, multisig) and recurses into subscripts (P2SH).
2013-06-22 16:49:30 +02:00
Pieter Wuille
067a6092ac
Initialize database before checking changed txindex
...
In case no database exists yet, and -txindex(=1) is passed, we currently first
check whether fTxIndex differs from -txindex (and ask the user to reindex in
that case), and only afterwards initialize the database. By swapping these
around (the initialization is a no-op in case the database already exists),
we allow it to be born in txindex mode, without warning.
That also means we don't need to check -reindex anymore, as the wiping/reinit
of the databases happens before checking.
2013-06-22 16:14:26 +02:00
Pieter Wuille
01b45731b7
Merge pull request #2632 from mikehearn/chainparams
...
Refactor chain-specific tweaks into a CChainParams class and introduce a regtest mode
2013-06-22 06:56:14 -07:00
Pieter Wuille
4addb2c066
Refactor keytime/metadata and wallet encryption bugfix
...
Refactor keytime:
* Key metadata is kept in a CWallet::mapKeyMetadata (std::map<CKeyId,CKeyMetadata>).
* When generating a new key, time is put in that map, and new key is written.
* AddKeyPubKey and AddCryptedKey do not take a creation time argument, but instead
pull it from that map, if it exists there.
Bugfix:
* AddKeyPubKey and AddCryptedKey in CWallet didn't override the CKeyStore
definition anymore. This is fixed, as they no longed need the nCreationTime
argument now.
Also a few related other changes:
* Metadata can be overwritten.
* Only GenerateNewKey calls GetTime(), as it's the only place where we know for
sure a key was not constructed earlier.
* When the nTimeFirstKey is known to be inaccurate, it is set to the value 1
(instead of 0, which would mean unknown).
* Use CPubKey instead of std::vector<unsigned char> where possible.
2013-06-20 01:31:18 +02:00
Jeff Garzik
f590653377
RPC: add 'verifychain', to verify chain database at runtime
2013-06-19 11:53:02 -04:00
Jeff Garzik
168ba99392
Pass check level, check depth to VerifyDB()
2013-06-19 11:32:49 -04:00
Mike Hearn
0e4b317555
Introduce a CChainParameters singleton class and regtest mode.
...
The new class is accessed via the Params() method and holds
most things that vary between main, test and regtest networks.
The regtest mode has two purposes, one is to run the
bitcoind/bitcoinj comparison tool which compares two separate
implementations of the Bitcoin protocol looking for divergence.
The other is that when run, you get a local node which can mine
a single block instantly, which is highly convenient for testing
apps during development as there's no need to wait 10 minutes for
a block on the testnet.
2013-06-19 16:28:52 +02:00
Mike Hearn
70e7fba06d
Move implementation of some CBlockLocator methods
...
Move out of main.h to improve compile times and add documentation
for what the methods do.
2013-06-19 15:39:45 +02:00
Jeff Garzik
25dbb92860
Merge pull request #2760 from cozz/cozz2
...
fix comment about dust logic
2013-06-18 06:23:58 -07:00
Pieter Wuille
5e6f7cc8ad
Merge pull request #2763 from bitsofproof/master
...
Send tx relay flag with version message
2013-06-17 01:43:11 -07:00