Commit Graph

2179 Commits

Author SHA1 Message Date
Pieter Wuille
8adf48dc9b Preliminary undo file creation
Create files (one per block) with undo information for the transactions
in it.
2012-10-20 23:08:57 +02:00
Pieter Wuille
630fd8dcb6 One file per block
Refactor of the block storage code, which now stores one file per block.
This will allow easier pruning, as blocks can be removed individually.
2012-10-20 23:08:57 +02:00
Pieter Wuille
44ac1c0fe3 Add CTxUndo: transaction undo information
The CTxUndo class encapsulates data necessary to undo the effects of
a transaction on the txout set, namely the previous outputs consumed
by it (script + amount), and potentially transaction meta-data when
it is spent entirely.
2012-10-20 23:08:56 +02:00
Pieter Wuille
10fd8604d7 Add CCoins: pruned list of transaction outputs
The CCoins class represents a pruned set of transaction outputs from
a given transaction. It only retains information about its height in
the block chain, whether it was a coinbase transaction, and its
unspent outputs (script + amount).

It has a custom serializer that has very low redundancy.
2012-10-20 23:08:56 +02:00
Pieter Wuille
0fa593d0fb Compact serialization for amounts
Special serializer/deserializer for amount values. It is optimized for
values which have few non-zero digits in decimal representation. Most
amounts currently in the txout set take only 1 or 2 bytes to
represent.
2012-10-20 23:08:56 +02:00
Pieter Wuille
69fc8047a9 Compact serialization for scripts
Special serializers for script which detect common cases and encode
them much more efficiently. 3 special cases are defined:
* Pay to pubkey hash (encoded as 21 bytes)
* Pay to script hash (encoded as 21 bytes)
* Pay to pubkey starting with 0x02, 0x03 or 0x04 (encoded as 33 bytes)

Other scripts up to 121 bytes require 1 byte + script length. Above
that, scripts up to 16505 bytes require 2 bytes + script length.
2012-10-20 23:08:56 +02:00
Pieter Wuille
4d6144f97f Compact serialization for variable-length integers
Variable-length integers: bytes are a MSB base-128 encoding of the number.
The high bit in each byte signifies whether another digit follows. To make
the encoding is one-to-one, one is subtracted from all but the last digit.
Thus, the byte sequence a[] with length len, where all but the last byte
has bit 128 set, encodes the number:

  (a[len-1] & 0x7F) + sum(i=1..len-1, 128^i*((a[len-i-1] & 0x7F)+1))

Properties:
* Very small (0-127: 1 byte, 128-16511: 2 bytes, 16512-2113663: 3 bytes)
* Every integer has exactly one encoding
* Encoding does not depend on size of original integer type
2012-10-20 23:08:56 +02:00
Pieter Wuille
43b7905e98 LevelDB glue
Database-independent glue for supporting LevelDB databases.

Based on code from earlier commits by Mike Hearn in his leveldb
branch.
2012-10-20 23:08:56 +02:00
Pieter Wuille
3ff3a2bd60 Makefile integration of LevelDB 2012-10-20 23:08:56 +02:00
Pieter Wuille
9f56678fce Backport Win32 LevelDB env from C++0x to C++
Since the gitian mingw compiler doesn't support C++0x yet.
2012-10-20 23:08:56 +02:00
Pieter Wuille
9d503a7285 Disable libsnappy detection in LevelDB 2012-10-20 23:08:56 +02:00
justmoon
94a50fb339 Leveldb Windows port by Edouard Alligand, adapted for MingW by me. 2012-10-20 23:08:56 +02:00
Mike Hearn
5e650d6d2d Import LevelDB 1.5, it will be used for the transaction database. 2012-10-20 23:08:56 +02:00
Jeff Garzik
38ac953b9d Merge pull request #1880 from sipa/threadimport
Move external block import to separate thread
2012-10-20 13:36:36 -07:00
Jeff Garzik
dee0ee2ac9 Merge pull request #1742 from sipa/canonical
Check for canonical public keys and signatures
2012-10-20 10:56:04 -07:00
Pieter Wuille
66b02c93e6 Move external block import to separate thread 2012-10-20 01:54:10 +02:00
Pieter Wuille
8980a50924 Use CHashWriter also in SignatureHash(), and for message signing 2012-10-19 23:18:07 +02:00
Wladimir J. van der Laan
485d667748 Revert "Merge pull request #1931 from laanwj/2012_10_newicons"
This reverts commit 199d88cf90, reversing
changes made to 65bc1573e7.

License is worse instead of better. Will only accept public domain and
MIT-licensed icons from now on.
2012-10-14 20:49:06 +02:00
xanatos
cddda5d9f0 Changed connect?_16.png to non-GPL one and changed the assets attribution. 2012-10-14 13:01:38 +02:00
xanatos
b96238a9c9 Changed the spinner to a non-GPL one, added instructions on how to regenerate it, changed the assets attribution, removed old spinner + old spinner's sources. 2012-10-14 12:34:07 +02:00
Philip Kaufmann
34710818a7 Bitcoin-Qt: intregrate current translations from Transifex 2012-10-12 15:51:49 +02:00
Philip Kaufmann
0e005c3ddc Bitcoin-Qt: update english translation master file 2012-10-12 15:45:27 +02:00
Wladimir J. van der Laan
22bb049011 Fix a use-after-free problem in initialization (#1920)
Don't store the result of c_str().

Luckily, this only affects logging, though it could crash or leak
sensitive data to the log in rare cases.
2012-10-12 03:09:05 +02:00
Wladimir J. van der Laan
16f3618c13 Merge pull request #1879 from sipa/fdatasync
Use fdatasync instead of fsync on supported platforms
2012-10-11 00:42:47 -07:00
Wladimir J. van der Laan
24694e24ed Merge pull request #1913 from sipa/noi2p
Remove I2P support from netbase
2012-10-11 00:41:33 -07:00
Wladimir J. van der Laan
fae3989ffc Merge pull request #1900 from Diapolo/optionsmodel_getters
move most explicit getters in optionsmodel to header
2012-10-11 00:40:20 -07:00
Wladimir J. van der Laan
089b10a28a Merge pull request #1911 from Diapolo/fix_signed_unsigned
fix wrong (signed/unsigned) printf format specifier in bitcoinrpc.cpp
2012-10-11 00:40:08 -07:00
Wladimir J. van der Laan
ac0ad5dc63 Merge pull request #1901 from laanwj/2012_10_remove_strlcpy
get rid of strlcpy.h
2012-10-11 00:39:51 -07:00
Gavin Andresen
1d1f32d16d Bump versions for 0.7.1 release 2012-10-09 12:37:35 -04:00
Gavin Andresen
de038acd96 Fix bad merge, pszDataDir duplication 2012-10-09 12:28:00 -04:00
Gavin Andresen
673021410f Merge branch 'wallet_exceptions' of github.com:gavinandresen/bitcoin-git 2012-10-09 12:14:26 -04:00
Gavin Andresen
cf64347d70 Merge branch 'crash_at_exit' of github.com:gavinandresen/bitcoin-git 2012-10-09 12:10:18 -04:00
Wladimir J. van der Laan
0a5ce30bc1 Merge pull request #1915 from Diapolo/Qt5_compat_leftover
change Q_WS_MAC -> Q_OS_MAC (Qt5 compatibility)
2012-10-08 22:28:24 -07:00
Jeff Garzik
de2b9459bd Merge pull request #1834 from jgarzik/kickblocks
P2P: Do not request blocks from peers with fewer blocks than us
2012-10-08 15:15:58 -07:00
Jeff Garzik
b855abb8db Revert "Send 'mempool' P2P command at the start of each P2P session"
Fat-fingered on github, and merged this too early.

This reverts commit 22f9b06903.
2012-10-08 18:14:15 -04:00
Jeff Garzik
56caa38a67 Merge pull request #1833 from jgarzik/mempool-query
Send 'mempool' P2P command at the start of each P2P session
2012-10-08 15:12:25 -07:00
Gavin Andresen
d0b3e77a08 Don't try to verify a non-existent wallet.dat 2012-10-08 17:46:46 -04:00
Gavin Andresen
eed1785f70 Handle corrupt wallets gracefully.
Corrupt wallets used to cause a DB_RUNRECOVERY uncaught exception and a
crash. This commit does three things:

1) Runs a BDB verify early in the startup process, and if there is a
low-level problem with the database:
  + Moves the bad wallet.dat to wallet.timestamp.bak
  + Runs a 'salvage' operation to get key/value pairs, and
    writes them to a new wallet.dat
  + Continues with startup.

2) Much more tolerant of serialization errors. All errors in deserialization
are reported by tolerated EXCEPT for errors related to reading keypairs
or master key records-- those are reported and then shut down, so the user
can get help (or recover from a backup).

3) Adds a new -salvagewallet option, which:
 + Moves the wallet.dat to wallet.timestamp.bak
 + extracts ONLY keypairs and master keys into a new wallet.dat
 + soft-sets -rescan, to recreate transaction history

This was tested by randomly corrupting testnet wallets using a little
python script I wrote (https://gist.github.com/3812689)
2012-10-08 17:46:45 -04:00
Gavin Andresen
8d5f461cb6 Handle incompatible BDB environments
Before, opening a -datadir that was created with a new
version of Berkeley DB would result in an un-caught DB_RUNRECOVERY
exception.

After these changes, the error is caught and the user is told
that there is a problem and is told how to try to recover from
it.
2012-10-08 17:25:17 -04:00
Gavin Andresen
c2bb42168b Merge branch 'BDB_DOWNGRADE' 2012-10-08 17:18:17 -04:00
Gavin Andresen
e4954b1297 Handle incompatible BDB environments
Before, opening a -datadir that was created with a new
version of Berkeley DB would result in an un-caught DB_RUNRECOVERY
exception.

After these changes, the error is caught and the user is told
that there is a problem and is told how to try to recover from
it.
2012-10-08 15:51:59 -04:00
Jeff Garzik
bd2e140571 CAddrMan: verify pchMessageStart file marker, before reading address data
This avoids the case where you read the address data, before noticing it is
the wrong network.
2012-10-08 13:41:57 -04:00
Philip Kaufmann
ada2a39691 change Q_WS_MAC -> Q_OS_MAC (Qt5 compatibility)
- I missed that one in my former pull
2012-10-07 18:50:03 +02:00
Philip Kaufmann
5e5c102f2f make optionsmodel query real proxy state for ::data()
- don't rely on the QSettings for cases ProxyUse and ProxySocksVersion and
  query the real values via the GetProxy() call
- add a missing "succesful =" for case ProxyUse in ::setData()
2012-10-07 17:59:41 +02:00
Pieter Wuille
43de64949c Merge pull request #1859 from Diapolo/proxy_locks
add LOCK() for proxy related data-structures
2012-10-07 07:03:06 -07:00
Pieter Wuille
e996521390 Use fdatasync instead of fsync on supported platforms 2012-10-07 15:51:40 +02:00
Pieter Wuille
4e882b7960 Remove I2P support from netbase
I2P apparently needs 256 bits to store a fully routable address. Garlicat
requires a centralized lookup service to map the 80-bit addresses to fully
routable ones (as far as I understood), so that's not really usable in our
situation.

To support I2P routing and peer exchange for it, another solution is needed.
This will most likely imply a network protocol change, and extension of the
'addr' message.
2012-10-07 15:10:14 +02:00
Wladimir J. van der Laan
6032e4f4e7 get rid of strlcpy.h
Don't use hand-rolled string manipulation routine with a fixed
buffer in the bitcoin core, instead make use of c++ strings and boost.
2012-10-07 14:38:37 +02:00
Philip Kaufmann
95e625d235 fix wrong (signed/unsigned) printf format specifier in bitcoinrpc.cpp
- also includes the required bitcoinstrings.cpp update
2012-10-05 23:31:58 +02:00
Wladimir J. van der Laan
ee0b648536 Merge pull request #1906 from laanwj/2012_10_help_stdout
Send --help message to stdout i.s.o stderr
2012-10-05 11:24:09 -07:00
Wladimir J. van der Laan
a6be58d536 Merge pull request #1905 from laanwj/2012_10_startup_gui_error
When datadir missing, show messagebox instead of printing error to stderr
2012-10-04 22:28:44 -07:00
Pieter Wuille
39930ca6ae Merge pull request #1908 from laanwj/2012_10_rpcerrors
Document RPC error codes
2012-10-04 17:17:53 -07:00
Gavin Andresen
cac6b389d1 Avoid crashes at shutdown due to printf() in global destructors. 2012-10-04 16:35:08 -04:00
Wladimir J. van der Laan
285746d3db Add constants for HTTP status codes 2012-10-04 15:49:15 +02:00
Wladimir J. van der Laan
738835d7b8 Document RPC error codes
Replace all "magic values" in RPCError(...) by constants.
2012-10-04 15:49:15 +02:00
Wladimir J. van der Laan
61fd72695f When datadir missing, show messagebox instead of printing error to stderr 2012-10-04 12:04:12 +02:00
Philip Kaufmann
81bbef2609 add LOCK() for proxy related data-structures
- fix #1560 by properly locking proxy related data-structures
- update GetProxy() and introduce GetNameProxy() to be able to use a
  thread-safe local copy from proxyInfo and nameproxyInfo
- update usage of GetProxy() all over the source to match the new
  behaviour, as it now fills a full proxyType object
- rename GetNameProxy() into HaveNameProxy() to be more clear
2012-10-04 09:35:24 +02:00
Wladimir J. van der Laan
366944431b Pull changed translations from transifex
There was also a new translation available, "ja" (Japanese), however
almost nothing was filled in yet, so I'm not including it for this release.
2012-10-04 08:18:12 +02:00
Wladimir J. van der Laan
f1e262c8e1 Translation update for 0.7.1
Also clarify translation process that the package `gettext` is needed to run string extractor.
2012-10-04 08:13:37 +02:00
Wladimir J. van der Laan
bb353618f1 Send --help message to stdout i.s.o stderr
This allows fun stuff such as `bitcoin --help | less`, and more
easy piping to files.

Looking at other tools such as bash, gcc, they all send their help
text to stdout.
2012-10-04 07:56:57 +02:00
Wladimir J. van der Laan
529a4d4824 remove "checkorder" and "reply" P2P commands
These command are a leftover from send-to-IP transactions, which have been
removed a long time ago.
Also removes CNode::mapRequests and CNode::PushRequests, as these were
only used for the mentioned commands.
2012-10-03 20:09:33 +02:00
Philip Kaufmann
7bc65ff108 move most explicit getters in optionsmodel to header
- is more consistent and saves quite some lines of code
2012-10-02 18:49:57 +02:00
Gavin Andresen
0547b02af7 Merge branch '2012_09_fixwformat' of github.com:laanwj/bitcoin 2012-10-01 16:52:42 -04:00
Gavin Andresen
d2cc6f489c Merge branch 'master' of github.com:runeksvendsen/bitcoin 2012-10-01 16:51:24 -04:00
Gavin Andresen
da6e9fe634 Merge pull request #1893 from kjj2/issue1884
Issue 1884: Add a backup warning to the encryptwallet RPC command
2012-10-01 13:40:48 -07:00
Wladimir J. van der Laan
827d8c2e0c Revert "Remove -Wformat* warnings from makefiles"
This reverts commit 14ac0adcc7.
2012-10-01 19:45:42 +02:00
Philip Kaufmann
d210f4f5b8 fix -Wformat warnings all over the source 2012-10-01 19:45:42 +02:00
Wladimir J. van der Laan
bcc292b22d Extend printf warnings to error() 2012-10-01 19:45:41 +02:00
Gavin Andresen
00a757375c Merge branch '2012_09_base58tests' of github.com:laanwj/bitcoin 2012-10-01 11:22:38 -04:00
Wladimir J. van der Laan
d6b13283d1 data-driven base58 CBitcoinAddress/CBitcoinSecret tests
Arbitrary numbers of test vectors can be generated using the script
`gen_base58_test_vectors.py`.
2012-10-01 04:57:26 +02:00
Rune K. Svendsen
1bf66fcc0a When encrypting the wallet, warn user that old backups will become useless.
Don't include HTML in translation strings. Do split the huge message over several lines.

Prettier lines
2012-09-30 15:57:53 +02:00
kjj2
31a8b70ee3 Add a backup warning to the encryptwallet RPC command 2012-09-30 08:50:59 -05:00
Philip Kaufmann
9c8dc7caf1 harmonize printf format characters
- remove the "%" character from format characters for (s)size_t and
  ptrdiff_t and harmonize them with the ones for int64 and uint64
2012-09-30 11:57:25 +02:00
Wladimir J. van der Laan
018ec85ff7 Merge pull request #1875 from hsoft/master
Fix compilation with clang under OS X
2012-09-29 02:23:46 -07:00
Wladimir J. van der Laan
f72fd0e792 Merge pull request #1881 from xanatos/Tests
Removed a duplicated identical if
2012-09-29 01:00:55 -07:00
Wladimir J. van der Laan
552af52b45 Merge pull request #1851 from fanquake/OpenSSL-1.0.1c
Update to use OpenSSL 1.0.1c
2012-09-29 00:58:15 -07:00
Wladimir J. van der Laan
3b2eb49db9 Merge pull request #1883 from sipa/norandstack
Remove stack randomization
2012-09-29 00:56:25 -07:00
Jeff Garzik
3e37e7eca4 Merge pull request #1871 from jgarzik/wallet-deadcode
walletdb.h: remove dead code
2012-09-28 17:05:16 -07:00
Pieter Wuille
2e3ffb2d82 Remove stack randomization 2012-09-28 21:53:28 +02:00
Pieter Wuille
842a31ad1b Merge pull request #1862 from kjj2/testports
Fix: when testnet=1 specified, change default RPC port to 18332
2012-09-28 08:03:45 -07:00
xanatos
50e01ee620 toHTML won't add empty wtx.mapValue elements
As the code was before, toHTML added empty elements to mapValue to check for their existance. Now first it check for their existance and then for their non-emptiness.

Removed a duplicated identical if

There are two equal ifs, one inside another. If the first one is true, then the second one is true.
2012-09-28 15:50:48 +02:00
Wladimir J. van der Laan
035cb4781d Merge pull request #1868 from maaku/and_or_xor_sign_extension
Documented bug in sign-extension behavior of opcodes OP_AND, OP_OR, and OP_XOR
2012-09-27 22:48:27 -07:00
Virgil Dupras
fee10d800e Fixed compilation error with clang.
Previously, trying to compile with clang would result in the error: assigning to 'objc_object *' from incompatible type 'DockIconClickEventHandler *'
2012-09-27 15:06:16 -04:00
Wladimir J. van der Laan
14ac0adcc7 Remove -Wformat* warnings from makefiles
commit 5a1a3622 effectively enabled these warnings, but they need
to be fixed before being enabled in the general build scripts.
2012-09-27 04:10:21 +02:00
Jeff Garzik
189eb6a989 walletdb.h: remove dead code 2012-09-26 21:56:45 -04:00
Wladimir J. van der Laan
5a1a362215 Merge pull request #1807 from laanwj/2012_09_printf_warnings
Add printf-style warnings to strprintf() and OutputDebugStringF()
2012-09-25 22:56:29 -07:00
Mark Friedenbach
95d7f00295 Documented bug in sign-extension behavior of opcodes OP_AND, OP_OR, and OP_XOR.
Due to a bug in the implementation of MakeSameSize(), using OP_AND, OP_OR, or OP_XOR with signed values of unequal size will result in the sign-value becoming part of the smaller integer, with nonsensical results. This patch documents the unexpected behavior and provides the basis of a solution should decision be made to fix the bug in the future.
2012-09-25 16:40:34 -07:00
Jeff Garzik
1381ad2b21 Merge pull request #1684 from jgarzik/bootstrap
Import $DataDir/bootstrap.dat automatically, if it exists.
2012-09-25 13:53:40 -07:00
Wladimir J. van der Laan
4d369ec30c Update comment, we're no longer using boost::interprocess::scoped_lock 2012-09-25 12:16:37 +02:00
Wladimir J. van der Laan
1a52dd10a7 Merge pull request #1854 from Diapolo/fix_1843_V2
additional fix for #1843
2012-09-25 01:35:22 -07:00
kjj2
b202d43076 Fix: when testnet=1 specified, change default ports to 18332 and 18333 2012-09-24 15:26:04 -05:00
Jeff Garzik
22f9b06903 Send 'mempool' P2P command at the start of each P2P session
to query remote node mempool contents.
2012-09-24 13:53:44 -04:00
Jeff Garzik
52c90a2b2b Import $DataDir/bootstrap.dat automatically, if it exists.
As discussed on IRC. Intended to make using an external blockchain download
solution just a bit easier.
2012-09-24 13:37:03 -04:00
Jeff Garzik
93dd68e924 P2P: Do not request blocks from peers with fewer blocks than us
If the remote node has a shorter chain, do not waste our
special getblocks request on them.
2012-09-24 13:26:09 -04:00
Wladimir J. van der Laan
feec18e329 Merge pull request #1836 from kjj2/stopdetach
Adds a stopdetach <detach> RPC command.  <detach> defaults to true.  Wor...
2012-09-23 05:49:42 -07:00
Wladimir J. van der Laan
49b09ec04f Merge pull request #1853 from fanquake/qt-include
Update include for Qt5
2012-09-23 05:35:24 -07:00
kjj2
3731f5788e Adds a stopdetach <detach> RPC command. <detach> defaults to true. Works just like stop, but overrides the commandline/config file
-detachdb option.  Useful for upgrading, for example.  Lets you use fast stops usually, but force a detach when needed.  Also, allows
you to do a fast stop in a system normally configured for fast stops.
2012-09-22 18:17:29 -05:00
fanquake
ea9eaf9dec Update Qt include
Update Qmenu include

This is to be more consistent with the rest of the source

Update Qt Includes
2012-09-22 18:56:22 +08:00
Wladimir J. van der Laan
2f91373a0a Merge pull request #1852 from fanquake/bugreportlinks
Update links to Qt
2012-09-22 03:29:46 -07:00
Philip Kaufmann
bb86cffa56 additional fix for #1843
- a shortcut on "receive coins" was used twice
2012-09-22 12:15:41 +02:00
fanquake
e1eb3d4451 Update Bugreport Links
Update Qt Links

Revert Qt source link

Update Qt links
2012-09-22 18:05:25 +08:00
Wladimir J. van der Laan
f394f21594 Merge pull request #1844 from Diapolo/Qt5_compat1
enhance Qt5 compatibility
2012-09-22 02:21:06 -07:00
fanquake
0eaaa83ba5 Update Bitcoin to use OpenSSL 1.0.1c
Bump deps tp 0.0.5
Small docs corrections
2012-09-22 14:51:03 +08:00
Wladimir J. van der Laan
38682648c2 Remove unnecessary text from tooltip in AddressBookPage 2012-09-22 08:37:56 +02:00
Philip Kaufmann
da9413d913 fix #1843 by changing 2 GUI shortcuts 2012-09-21 19:31:53 +02:00
Philip Kaufmann
81605d90f5 enhance Qt5 compatibility
- replace Q_WS_MAC (not supported anymore in Qt5) with Q_OS_MAC (supported
  in Qt4/5)
2012-09-21 19:06:53 +02:00
Wladimir J. van der Laan
e96a8c7d86 Merge pull request #1793 from Diapolo/fix_signed_unsigned_strprintf
fix signed/unsigned in strprintf and CNetAddr::GetByte()
2012-09-21 06:04:27 -07:00
Wladimir J. van der Laan
3ccbaa56f4 comment update: it's -> its 2012-09-21 14:15:26 +02:00
Wladimir J. van der Laan
1ba4925755 Merge pull request #1705 from Diapolo/cleanup_bitcoingui
Qt: re-order GUI code and remove FIRST_CLASS_MESSAGING
2012-09-20 23:08:52 -07:00
Wladimir J. van der Laan
2dca98511f Merge pull request #1810 from laanwj/2012_09_rpcconsole_eventfilter
Improve RPC console key event behaviour
2012-09-20 23:02:52 -07:00
Pieter Wuille
58bc86e37f Check for canonical public keys and signatures
Only enabled inside tests for now.
2012-09-21 01:24:25 +02:00
Gavin Andresen
f2b066da70 Update gitignore and Makefiles for build.h move from src/ to src/obj 2012-09-20 10:28:13 -04:00
Wladimir J. van der Laan
bfc24bd4ce Merge pull request #1717 from Diapolo/Qt_change_TX_display
Qt: show mined transactions at depth 1
2012-09-20 00:42:31 -07:00
Gavin Andresen
6cbae37667 Merge branch 'testdata' of git://github.com/TheBlueMatt/bitcoin 2012-09-18 19:22:40 -04:00
Jeff Garzik
b1d3e95a0a When rejected TX relay due to lack of fees, log full txid 2012-09-18 15:24:31 -04:00
Jeff Garzik
ea0796bde3 Trim trailing whitespace for src/*.{h,cpp} 2012-09-18 15:07:58 -04:00
Gavin Andresen
8b371316c5 Merge branch 'master' of github.com:bitcoin/bitcoin 2012-09-18 12:20:01 -04:00
Gavin Andresen
8f09e4cac4 Give makefiles 'test' and 'check' targets to compile and run unit tests 2012-09-18 12:18:51 -04:00
Jeff Garzik
f8c449b5c8 Merge pull request #1812 from jgarzik/misc-07
Two minor generic cleanups done during OP_DROP hacking
2012-09-18 09:14:53 -07:00
Gavin Andresen
a0971337d0 Merge branch 'refactor_times' of git://github.com/luke-jr/bitcoin 2012-09-18 10:59:31 -04:00
Gavin Andresen
5add0b0d0f Bump client version to 0.7.0.99 now that 0.7.0 release is final. 2012-09-18 10:58:22 -04:00
Christian von Roques
48a10a3780 reimplement CBigNum's compact encoding of difficulty targets
Use shifts instead of going through the MPI representation of BIGNUMs.
Be careful to keep the meaning of 0x00800000 as sign bit.
2012-09-17 15:37:19 +02:00
Christian von Roques
6f0cecfc47 tests for SetCompact and GetCompact of CBigNum 2012-09-15 19:08:50 +02:00
Wladimir J. van der Laan
7fddf1210e update comment, secure_allocator is defined in allocators.h 2012-09-15 12:10:00 +02:00
Philip Kaufmann
463a1cab43 fix signed/unsigned in strprintf and CNetAddr::GetByte()
- I checked every occurance of strprintf() in the code and used %u, where
  unsigned vars are used
- the change to GetByte() was made, as ip is an unsigned char
2012-09-12 21:30:47 +02:00
Gavin Andresen
0a4e67afad Bump client version number for 0.7.0rc3 2012-09-12 14:07:22 -04:00
Pieter Wuille
c1d79812f4 Do not abort if RPC listening for IPv6 fails
Instead, fall back to IPv4 listening.
2012-09-12 16:45:09 +02:00
Wladimir J. van der Laan
3b3d999618 Add format characters for (s)size_t and ptrdiff_t 2012-09-10 04:25:26 +02:00
Wladimir J. van der Laan
ac4e7f6269 HexStr: don't build a vector<char> first
Also const correctness for lookup tables in hex functions throughout the code.
2012-09-10 04:24:57 +02:00
Gregory Maxwell
ab91bf39b7 Apply BIP30 checks to all blocks except the two historic violations.
Matt pointed out some time ago that there existed a minor DOS
attack where a node in its initial block download could be wedged
by an overwrite attack in a fork created between checkpoints before
a time where BIP30 was enforced. Now that the BIP30 timestamp
is irreversibly past the check can be more aggressive and apply to
all blocks except the two historic violations.
2012-09-09 20:11:04 -04:00
Jeff Garzik
17f8d6e400 Improve debug logging, for mempool TXs that do not include sufficient fees 2012-09-09 17:05:26 -04:00
Jeff Garzik
76970091f1 Cosmetic: move CTransaction::GetMinFee out of header file 2012-09-09 17:01:18 -04:00
Wladimir J. van der Laan
62904b33f3 Improve RPC console key event behaviour
- Paging using PageUp / PageDown now works when entry widget has focus
- Typing or pasting while the messages widget has focus auto-selects entry widget
2012-09-09 20:44:59 +02:00
Wladimir J. van der Laan
b019ea17ec Remove VC6 comment and pointless #ifdef'd benchmark code
We're in a wholly different world now, C++-compiler-wise.

Current std::stringstream implementations don't have the stated problem anymore,
and are just as fast as CDataStream.

The #ifdef'd block does not even compile anymore; CDataStream constructor changed,
and missing some std::. Also timing in whole seconds is also way too granular
to say anything sensible in such microbenchmarks. Just remove it,
it can always be found again in git history.
2012-09-09 17:24:00 +02:00
Wladimir J. van der Laan
963af6449f Cleanup some unused macros from util.h
Encapsulate _snprintf/sprintf difference in implementation not header
2012-09-09 15:47:29 +02:00
Wladimir J. van der Laan
b0a90fbb0c Add printf-style warnings to strprintf() and OutputDebugStringF()
This finds about ~150 potential problems with format characters on a 64 bit build.
2012-09-09 14:47:31 +02:00
Wladimir J. van der Laan
d8ecd21ff7 Merge pull request #1802 from luke-jr/bugfix_ts
Update translations from Transifex (100% coverage for Finnish and Chinese (China)
2012-09-09 00:04:03 -07:00
Luke Dashjr
85eb1e7e56 Update translations from Transifex (100% coverage for Finnish and Chinese (China) 2012-09-08 20:32:54 +00:00
Wladimir J. van der Laan
31fac119dc Merge pull request #1796 from luke-jr/bugfix_ts
Various translation fixups and restorations
2012-09-07 22:15:19 -07:00
Luke Dashjr
4ee706243c Partially Bugfix: Update English translation strings and translations from Transifex
Bugfix: Correct doubled-up &amp;amp; in translations
Bugfix: Remove extra spaces after ampersand in translations (this fixes hotkeys)
Restore copyright translations, now split up
Restore old translations lost due to changes to English structure
	Skipped: ca_ES et eu_ES fr_CA (under 10% coverage)
2012-09-08 04:59:13 +00:00
Luke Dashjr
da7b8c1260 Bugfix: Initialize CWallet::nOrderPosNext on an empty wallet, and save it in db 2012-09-08 04:55:36 +00:00
Wladimir J. van der Laan
db1967957d Merge pull request #1798 from xanatos/patch-19
Wrong address added to collection in test (address1 instead of address2)
2012-09-07 07:13:23 -07:00
Philip Kaufmann
f875921176 Bitcoin-Qt (Windows only): add version info to Resource File
- add version information to bitcoin-qt.rc, which is displayed on Windows, when looking in the executable properties and selecting "Details"
- introduce a new clientversion.h (used in bitcoin-qt.rc to generate
  version information), which takes only the version defines from
  version.h and is included in it (to allow usage with the windres rc-file
  compiler)
- move #define STRINGIFY(s) #s into clientversion.h as that is used in
  bitcoin-qt.rc and rename to DO_STRINGIZE(X)
- add #define STRINGIZE(X) DO_STRINGIZE(X), which is needed to convert the
  version defines into a version string in the rc-file
- this ensures we only need to update 1 file and have bitcoin-qt.exe
  version information

- for RC-file documentation see:
  http://msdn.microsoft.com/en-us/library/windows/desktop/aa381058%28v=vs.85%29.aspx
2012-09-07 16:08:18 +02:00
xanatos
af8c050bff Wrong address added to collection in test
The wrong address is added to the collection. As was written a second copy of address1 was added (and so address2 was useless).
2012-09-07 16:04:39 +03:00
Wladimir J. van der Laan
f106491fa2 Merge pull request #1786 from jgarzik/select-fix
select()'s first argument should be zero, if no file descriptors are selected
2012-09-06 23:30:22 -07:00
Gavin Andresen
1913b6e2fc Fix double-paren typo 2012-09-06 16:29:59 -04:00
Matt Corallo
65786afb05 Add various tests for CTransaction::CheckTransaction() 2012-09-05 22:33:59 -04:00
Matt Corallo
1fcebc16c5 check tx.CheckTransaction for data-driven tx tests.
(and change so that only one case has to fail to make a tx_invalid
test correct)
2012-09-05 22:33:59 -04:00
Philip Kaufmann
4bd34b4966 replace 2x WSAGetLastError() with 1x WSAGetLastError() call 2012-09-05 22:20:26 +02:00
Jeff Garzik
2387944782 select(): Use precise fd presence check, rather than imprecise hSocketMax test 2012-09-05 16:01:28 -04:00
Gavin Andresen
8788221761 Bump version number for 0.7.0rc2 2012-09-05 12:38:37 -04:00
Gavin Andresen
91c218a1cb Merge branch 'testnet_alert' of git://github.com/gavinandresen/bitcoin-git 2012-09-05 11:38:38 -04:00
xanatos
4f76be1dc5 Correct LoadWallet() return value (false -> DB_LOAD_OK)
Equivalent code. (false == 0 == DB_LOAD_OK). Fixes #1706.
2012-09-05 11:32:13 +03:00
Jeff Garzik
e271c1d3d0 Merge pull request #1789 from Diapolo/fix_double_Startuptime
remove double logging of startup time, when !fLogTimestamps
2012-09-04 23:39:15 -07:00
Philip Kaufmann
274b7ab123 remove double logging of startup time, when !fLogTimestamps 2012-09-05 08:36:50 +02:00
Philip Kaufmann
8d367c7e66 fix signed/unsigned usage in BlockFilePath() 2012-09-05 08:34:41 +02:00
Jeff Garzik
42613c97d5 Add block file naming helper, BlockFilePath() 2012-09-04 21:40:26 -04:00
Jeff Garzik
dcb14198bb init.cpp: fix build error, and possibly-uninit'd warning 2012-09-04 12:24:08 -04:00
Jeff Garzik
38e8f282d2 Merge pull request #1427 from rebroad/StartTimeFix
No need to log start time if it's already being done on every line.
2012-09-04 09:10:47 -07:00
Jeff Garzik
2fd6f067db Merge pull request #1777 from laanwj/2012_09_eliminate_sprintf
Remove last occurrence of potentially insecure function sprintf
2012-09-04 09:00:02 -07:00
Jeff Garzik
bec02998b4 Merge pull request #1779 from xanatos/patch-15
Useless vector declaration
2012-09-04 08:59:05 -07:00
Jeff Garzik
8c7b6c05db Merge pull request #1738 from laanwj/2012_08_boostthread
implement CreateThread with boost::thread
2012-09-04 08:53:05 -07:00
Wladimir J. van der Laan
9d7da11458 Merge pull request #1743 from xanatos/patch-14
Changed nprev->pprev
2012-09-03 08:11:36 -07:00
Wladimir J. van der Laan
acbe4a1f32 Merge pull request #1728 from xanatos/patch-11
Removed duplicated lock
2012-09-03 08:00:18 -07:00
xanatos
89fbd1f11c Useless vector declaration
The vector isn't referenced in the small code block it's declared. I don't see any "useful" side effect in its declaration.
2012-09-03 17:53:27 +03:00
Wladimir J. van der Laan
9c80909452 Remove last occurrence of potentially insecure function sprintf.
%d can return up to 11 characters. Move away from fixed buffer completely and
use our own safe function strprintf.
2012-09-03 16:18:16 +02:00
Gavin Andresen
eaf00a3a5d Merge pull request #1774 from luke-jr/refactor_times
Bugfix: Require OrderedTxItems to provide properly scoped accounting entry list
2012-09-02 16:47:58 -07:00
Wladimir J. van der Laan
4d0c2b6cf4 Merge pull request #1761 from Diapolo/timeout_desc
add default value in -timeout description
2012-09-02 06:19:10 -07:00
Philip Kaufmann
af7b88f29f clear history when using clear button in RPC console
- current code does not clear history, when using the clear button, this
  is added
- remove a currently unused variable but add a TODO comment
2012-09-02 13:18:34 +02:00
Luke Dashjr
ddb709e9de Bugfix: Require OrderedTxItems to provide properly scoped accounting entry list
OrderedTxItems returns a multimap of pointers, but needs a place to store the actual CAccountingEntries it points to.
It had been using a stack item, which was clobbered as soon as it returned, resulting in undefined behaviour.
This fixes at least bug #1768.
2012-09-02 08:02:46 +00:00
Jeff Garzik
0e1be81a4a Merge pull request #1771 from luke-jr/bugfix_bip22_mode
Bugfix: getblocktemplate: Accept optional "mode" parameter not being provided
2012-09-01 12:30:13 -07:00
R E Broadley
016178132e No need to log start time if it's already being done on every line. 2012-09-01 14:24:33 +01:00
Luke Dashjr
0689a7eb9c Bugfix: getblocktemplate: Accept optional "mode" parameter not being provided 2012-09-01 07:12:56 +00:00
Wladimir J. van der Laan
9c94bdac06 RPC console: escaping within ' and " now handled differently
Should now mimic bash quoting and escaping (see http://wiki.bash-hackers.org/syntax/quoting) exactly,
leaving out argument expansion and obscure syntax like $''.
2012-09-01 09:08:38 +02:00
Gregory Maxwell
ddbddcb31e Merge pull request #1758 from laanwj/2012_08_uiconsole_parsing
Fix RPC console parser to handle escaped arguments more like bash
2012-08-31 22:50:23 -07:00
Wladimir J. van der Laan
b5c1467a7d In RPC console, attempt to format errors
Try to display a nicer message instead of dumping raw JSON object when possible. If the error
somehow doesn't have the required 'code' and 'message' fields, fall back to printing raw JSON object.
2012-08-31 17:41:58 +02:00
Wladimir J. van der Laan
576b5efe93 Fix RPC console parser to handle escaped arguments more like bash
- Fix issue #1750
2012-08-31 17:23:48 +02:00
Philip Kaufmann
d93e5986d7 add default value in -timeout description 2012-08-30 23:28:19 +02:00
Philip Kaufmann
a4d4403a75 enable ASLR and DEP for bitcoind.exe via linker flags
- this is already active for bitcoin-qt.exe
2012-08-29 22:22:04 +02:00
Wladimir J. van der Laan
4d1d94c56c Rename CreateThread to NewThread
Prevent clash with win32 API symbol
2012-08-29 20:25:37 +02:00
Jeff Garzik
4445434a2d Merge pull request #1745 from gmaxwell/irc_fixes
Misc IRC fixes.
2012-08-29 11:02:21 -07:00
Wladimir J. van der Laan
61d8507140 implement CreateThread with boost::thread
I'm not sure why this wasn't done before.

- Removes typedef of pthread_t on Windows, which fixes a native compile issue on mingw.
2012-08-29 20:02:07 +02:00
Philip Kaufmann
382e9e25ff Qt: re-order GUI code
- re-order Qt Actions and connect() calls to match the real GUI layout,
  which makes things easier to read and understand
- remove signMessageAction and verifyMessageAction from tabGroup as we
  didn't use them anyway (as tooltips are not displayed in the menu remove
  these too)
- update 2 comments
2012-08-29 19:59:22 +02:00
Philip Kaufmann
5fc3a0f707 remove FIRST_CLASS_MESSAGING support from the client
- removes the FIRST_CLASS_MESSAGING support from the client, which was no
  default setting anyway
2012-08-29 19:57:51 +02:00
Wladimir J. van der Laan
6117afeeaa Update strings for 0.7.0rc2 2012-08-29 19:55:40 +02:00
Wladimir J. van der Laan
c7df832d7a Merge pull request #1617 from Diapolo/Show_Hide_string
Update string for Show/Hide in the tray
2012-08-29 10:52:01 -07:00
Wladimir J. van der Laan
fc52af2736 Merge pull request #1720 from Diapolo/Qt_about
Qt: add copyrightLabel to aboutdialog.ui
2012-08-29 10:50:17 -07:00
Philip Kaufmann
e273c51287 Update string for Show/Hide in the tray
- be clear we don't "Show/Hide Bitcoins", but just the client window
- remove the tooltip for toggleHideAction as this is not shown anyway
- update a comment to be more general
2012-08-29 07:39:35 +02:00
Gregory Maxwell
6a60c64c6b Don't retry a failing IRC nickname forever.
If our IRC nick is in use (because some other node thinks it has
the same address we think we have) don't fruitlessly try to reconnect
using that name forever. After three tries, give up and use a random
nick. Either we'll learn a new local address from IRC and switch
to that, or it was right and the other guy is advertising for us.

This avoids a pessimal case where a second testnet node behind
a nat is unable to get any peers because he can't get on IRC.
2012-08-28 22:04:38 -04:00
Gregory Maxwell
3595b18793 Don't force IRC off if not listening, do force it off if IPv4 is off.
Previously Bitcoin would refuse to use IRC if it was either not
accepting inbound connections or not making outbound. Instead this
changes it to not use IRC only if it's not doing either or if
IPv4 is off completely. If Bitcoin is not listening this will use
the default random nicks rather than the IP based ones.
2012-08-28 21:43:28 -04:00
Pieter Wuille
af4da4be3d Bugfix: increase score, not port 2012-08-29 02:33:25 +02:00
Gavin Andresen
286dbba2d2 Give testnet it's own alert key. 2012-08-28 17:13:11 -04:00
Gavin Andresen
f35c6c4fb9 Refactor: move alert code from main to alert.cpp/h 2012-08-28 17:04:54 -04:00
xanatos
9eb7fc5842 Changed nprev->pprev
It should be pprev, because the next one is pnext, and it's printing the memory address of the CBlockIndex (so pSomething).
2012-08-28 23:25:52 +03:00
Wladimir J. van der Laan
ba7ba84f07 Add boost chrono lib for windows builds (required for boost 1.50) 2012-08-27 22:16:24 +02:00
Gavin Andresen
03fa53a640 Version numbers -> 0.7.0 2012-08-27 14:20:56 -04:00
Matt Corallo
a1755ec426 Upgrade to Boost 1.50 2012-08-27 14:20:56 -04:00
Gavin Andresen
fde5c34bd8 Merge branch 'alert_fix' of git://github.com/gavinandresen/bitcoin-git 2012-08-27 12:39:13 -04:00
Gavin Andresen
ef8e821cf2 Fix compiler warning on mac 2012-08-27 12:37:35 -04:00
Gavin Andresen
8cd98a9a26 Merge branch 'bugfix_gitian' of git://github.com/luke-jr/bitcoin 2012-08-27 11:52:56 -04:00
Gavin Andresen
ea2fda46c3 Special-case the last alert for alert-key-compromised case
Hard-code a special nId=max int alert, to be broadcast if the
alert key is ever compromised. It applies to all versions, never
expires, cancels all previous alerts, and has a fixed message:
   URGENT: Alert key compromised, upgrade required

Variations are not allowed (ignored), so an attacker with
the private key cannot broadcast empty-message nId=max alerts.
2012-08-27 10:22:57 -04:00
xanatos
028ec224b8 Removed duplicated lock
Around line 167 there is already a LOCK(bitdb.cs_db) that covers everything. Re-locking is useless.
2012-08-27 15:08:20 +03:00
Luke Dashjr
1837696580 Bugfix: Move boost::interprocess Win32 workaround to Bitcoin-Qt sources, rather than hacking boost in gitian 2012-08-27 00:49:23 +00:00
Gavin Andresen
d5a52d9b3e Alert system DoS prevention
This fixes two alert system vulnerabilities found by
Sergio Lerner; you could send peers unlimited numbers
of invalid alert message to try to either fill up their
debug.log with messages and/or keep their CPU busy
checking signatures.

Fixed by disconnecting/banning peers if they send 10 or more
bad (invalid/expired/cancelled) alerts.
2012-08-26 17:08:18 -04:00
Gavin Andresen
772351b0d5 Merge branch '2012_08_progressbarwin' of git://github.com/laanwj/bitcoin 2012-08-25 11:14:11 -04:00
Gavin Andresen
9db9642db4 Merge branch 'nozeroout' of git://github.com/sipa/bitcoin 2012-08-25 11:05:59 -04:00
Gavin Andresen
b9c078ea96 Merge branch 'checkpoint' 2012-08-25 11:05:24 -04:00
Wladimir J. van der Laan
12324c1693 Update Czech translation from Transifex 2012-08-25 10:19:35 +02:00
Luke Dashjr
bc8d832335 Abstract all IPC communication to qtipcserver 2012-08-24 16:59:27 +00:00
Wladimir J. van der Laan
382b75f528 Override progress bar on platforms with segmented progress bars
Windows & WindowsXP style have a problem with displaying the block progress.
Add a custom stylesheet as workaround, but only when one of those renderers is active,
otherwise leave the theme alone (issue #1071).
2012-08-24 15:01:07 +02:00
Pieter Wuille
af1c6b93b7 Merge pull request #1699 from laanwj/2012_08_securealloc
Handle locked pages more robustly (Fixes issue #1462)
2012-08-24 04:38:57 -07:00
Philip Kaufmann
9fd537965d Qt: add copyrightLabel to aboutdialog.ui
- add a new label, which can be updated independently from the whole
  license information stuff
- the benefit is, we don't need to re-translate that whole wall of text
  every year the copyright info changes
- update to the same copyright string we use in the source and in the
  bitcoin-qt.exe meta-data information
- removes an obsolete entry from the ui-file
2012-08-24 13:04:10 +02:00
Pieter Wuille
65ce215641 Make 0-value outputs non-standard 2012-08-24 12:15:12 +02:00
Gregory Maxwell
c68c4bc7a4 Merge pull request #1672 from gmaxwell/filter_listunspent
Listunspent txout address filtering and listaddressgroupings
2012-08-24 00:46:24 -07:00
Gregory Maxwell
b1093efa83 Change CWallet addressgrouping to use CTxDestination instead of strings.
This is cleanup for the listaddressgroupings code. Also add some
real help text.
2012-08-24 03:28:45 -04:00
Philip Kaufmann
f09e8fcd33 Qt: show mined transactions at depth 1
- before, we used to show them in GUI when depth >= 2, which could lead to
  confusion of users, as the RPC behaviour already showed the Tx
2012-08-24 08:52:12 +02:00
Gregory Maxwell
bdab0cf58c Avoid leaving return types or function attributes on their own lines. 2012-08-24 02:48:19 -04:00
Luke Dashjr
e07c8e9123 Treat generation (mined) transactions less different from receive transactions
- Show address receiving the generation, and include it in the correct "account"
- Multiple entries in listtransactions output if the coinbase has multiple outputs to us
2012-08-23 23:20:01 +00:00
Gregory Maxwell
1bcd3f26c0 Merge pull request #1431 from luke-jr/opt_ipv6
Make IPv6 support optional again (defaults to enabled)
2012-08-23 14:17:35 -07:00
Luke Dashjr
9655d73f49 Allow building with IPv6 support, but it disabled by default 2012-08-23 21:01:01 +00:00
Luke Dashjr
45beb88966 Bugfix: Make USE_UPNP=- work with makefile.{linux-mingw,mingw,osx} too 2012-08-23 21:00:57 +00:00
Luke Dashjr
e422bebbdc Make IPv6 support buildtime-optional again (defaults to enabled) 2012-08-23 20:49:51 +00:00
Wladimir J. van der Laan
05fa0de6d8 Add icon for "About Qt" in menu
Use the built-in icon that is also used in the dialog box itself.
2012-08-23 21:57:20 +02:00
Gregory Maxwell
92735bca31 Add txout address filtering to listunspent.
This applies on top of the coincontrol listaddressgroupings patch
and makes finding eligible outputs from the groups returned
by listaddressgroupings possible.
2012-08-23 15:55:50 -04:00
coderrr
22dfd73598 Add address groupings RPC from the coincontrol patches.
Signed-off-by: Gregory Maxwell <greg@xiph.org>
2012-08-23 15:55:42 -04:00
Luke Dashjr
c3f95ef13f Choose reasonable "smart" times to display for transactions
Logic:
- If sending a transaction, assign its timestamp to the current time.
- If receiving a transaction outside a block, assign its timestamp to the current time.
- If receiving a block with a future timestamp, assign all its (not already known) transactions' timestamps to the current time.
- If receiving a block with a past timestamp, before the most recent known transaction (that we care about), assign all its (not already known) transactions' timestamps to the same timestamp as that most-recent-known transaction.
- If receiving a block with a past timestamp, but after the most recent known transaction, assign all its (not already known) transactions' timestamps to the block time.
2012-08-23 18:38:22 +00:00
Luke Dashjr
bdbfd2329a JSON-RPC: Add "blocktime" and (for wallet transactions) "timereceived" to transaction Object outputs 2012-08-23 18:30:30 +00:00
Luke Dashjr
9c7722b7c5 Store a fixed order of transactions (and accounting) in the wallet
For backward compatibility, new accounting data is stored after a \0 in the comment string.
This way, old versions and third-party software should load and store them, but all actual use (listtransactions, for example) ignores it.
2012-08-23 18:18:20 +00:00
Jeff Garzik
cf78183fad Merge pull request #1707 from xanatos/patch-7
Removed useless assignment
2012-08-23 06:41:02 -07:00
xanatos
331544bc37 Spaces in strings
One added space + one removed space.
2012-08-23 15:19:13 +03:00
xanatos
b765385a3e Removed useless assignment
nLoadWalletRet is already equal to DB_NEED_REWRITE (we are in an if)
2012-08-23 14:47:00 +03:00
Wladimir J. van der Laan
0b886ad1bd Make CCrypter use LockedPageManager to manage locked pages
Replace direct calls to mlock.

Also, change the class to lock the memory areas in the constructor and unlock them again in the destructor. This makes sure that locked pages won't leak.
2012-08-23 06:55:35 +02:00
Wladimir J. van der Laan
e95568b78d Handle locked pages more robustly (Fixes issue #1462)
Memory locks do not stack, that is, pages which have been locked several times by calls to mlock()
will be unlocked by a single call to munlock(). This can result in keying material ending up in swap when
those functions are used naively. In this commit a class "LockedPageManager" is added
that simulates stacking memory locks by keeping a counter per page.
2012-08-23 06:55:35 +02:00
Gregory Maxwell
a159d6caf0 Merge pull request #1694 from sipa/fix_netloops
Fix infinite loops in connection logic
2012-08-22 07:15:03 -07:00
Wladimir J. van der Laan
ba1cdb6883 Merge pull request #1701 from laanwj/2012_08_pull_transifex
Update translations from transifex
2012-08-22 05:09:29 -07:00
Wladimir J. van der Laan
d9725378b0 Update translations from transifex 2012-08-22 14:05:01 +02:00
Pieter Wuille
f161a2c211 Fix infinite loops in connection logic 2012-08-22 13:35:33 +02:00
Pieter Wuille
1a3dcca8f4 Merge pull request #1695 from sipa/noloadorphan
Do not accept orphan blocks in -loadblock mode
2012-08-22 04:32:39 -07:00
Gavin Andresen
80cfc3a485 Checkpoint at block 193,000 2012-08-21 22:50:00 -04:00
Gavin Andresen
f39ab4c8d0 Merge branch 'testdata' of git://github.com/TheBlueMatt/bitcoin 2012-08-21 13:58:24 -04:00
Pieter Wuille
5c88e3c108 Do not accept orphan blocks in -loadblock mode 2012-08-21 19:18:53 +02:00
Jeff Garzik
1954d40691 Merge pull request #1493 from jgarzik/unlocked-rpc
RPC: add facility to enable RPCs to run outside cs_main, wallet locks
2012-08-21 09:22:13 -07:00
Jeff Garzik
0e1d3551da RPC: add facility to enable RPCs to run outside cs_main, wallet locks
Use with 'stop' and 'help' RPCs.

This provides a facility to individually evaluate the locking for an RPC, and
potentially make it more parallel.
2012-08-21 12:03:52 -04:00
Gavin Andresen
cd58f05894 Restore OSX 10.5 compatibility (do not use pthread_setname_np) 2012-08-21 12:00:05 -04:00
Gavin Andresen
b4b7ed1915 Fix 32-bit build error: include util.h to get int64 typedef 2012-08-21 11:59:59 -04:00
Jeff Garzik
5f2b41d54d Merge pull request #1693 from jgarzik/rpcwallet
Move code to new modules rpcwallet.cpp, rpcblockchain.cpp
2012-08-21 08:44:21 -07:00
Jeff Garzik
c625ae04d2 RPC, cosmetic: move more RPC code to new rpcblockchain.cpp module 2012-08-21 11:03:38 -04:00
Jeff Garzik
e3bc569865 RPC, cosmetic: move wallet-related RPCs to new rpcwallet.cpp module 2012-08-21 10:38:57 -04:00
Pieter Wuille
143acc7672 Merge pull request #1687 from gavinandresen/quietunit
Suppress output when running unit tests.
2012-08-21 07:07:51 -07:00
Gregory Maxwell
4a4a0c1196 Merge pull request #1690 from gavinandresen/signrawtx_null
Allow signrawtransaction '...' null null 'hashtype'
2012-08-21 06:40:50 -07:00