Compare commits

...

536 Commits

Author SHA1 Message Date
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
Matt Corallo
af531f0449 Fix GUI build on UNIX. 2011-05-27 12:38:10 +02:00
Matt Corallo
0649b6af90 Update to openssl-1.0.0d and enable RPC-SSL on Win32 2011-05-27 02:53:13 +02:00
Jeff Garzik
1d418728b0 Merge pull request #277 from TheBlueMatt/dpifix
Handle high DPI a bit more gracefully on Win32.
2011-05-26 17:24:56 -07:00
Matt Corallo
bd39b48f19 Handle high DPI a bit more gracefully on Win32. #243
Not ideal, icons for send and address book don't show, just the
standard bitcoin icon, and balance is still cut off, but the
number is readable.
2011-05-27 02:20:11 +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
Matt Corallo
db69432dcd Reset Last-Translator on de po to the proper value.
Sorry, Jakob, it was changed on accident by poedit.
2011-05-26 23:09:37 +02:00
xHire
7709ee622c Czech translation 2011-05-26 23:09:37 +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
Jakob Kramer
7609e35f10 Fixed some mistakes in the German translation. 2011-05-26 22:40:44 +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
HostFat
db3b14c960 Fixed 2 things on the italian translation 2011-05-26 22:31:08 +02:00
Jeff Garzik
20d28e6031 Merge pull request #268 from TheBlueMatt/deletefix
Fixes #240 and #244 - delete delete[] mismatch.
2011-05-26 13:25:58 -07:00
Matt Corallo
77172463a3 Fixes #240 and #244 - delete delete[] mismatch. 2011-05-26 02:24:01 +02: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
ariel
00af90ab3c Updated spanish translation 2011-05-25 19:47:31 +02:00
Pieter Wuille
a9ea3cd76d Updated dutch translation 2011-05-25 02:11:18 +02:00
Jeff Garzik
d21876cdb8 Merge branch 'chfix' of https://github.com/TheBlueMatt/bitcoin into tmp 2011-05-24 19:41:01 -04:00
Jeff Garzik
54c465f25d Merge pull request #250 from TheBlueMatt/macbuildfix
Revert "OSX build tweaks (laszlo)"
2011-05-24 16:31:15 -07:00
dabaopku
e295947d04 Chinese Translation 2011-05-25 01:28:25 +02:00
Jeff Garzik
32a1753e61 Merge pull request #249 from TheBlueMatt/nsisfix
Update NSIS Installer file to support the new directory structure.
2011-05-24 16:21:45 -07:00
Jeff Garzik
1fcf6f038e Merge pull request #251 from TheBlueMatt/itfix
Update Italian translation to latest git.
2011-05-24 16:21:23 -07:00
Jeff Garzik
ec39b59a03 Merge pull request #259 from TheBlueMatt/rufix
Update russian translation to latest git.
2011-05-24 16:20:38 -07:00
Jeff Garzik
95f748c54e Merge pull request #260 from TheBlueMatt/eotranslation
Add esperanto translation.
2011-05-24 16:20:08 -07:00
Danube
08cf0629f5 Add esperanto translation. 2011-05-25 01:13:58 +02:00
m0ray
11adda400f Update russian translation to latest git. 2011-05-24 17:15:17 +02:00
Federico Faggiano
e4c3232f42 Update Italian translation to latest git. 2011-05-21 16:16:33 +02:00
Matt Corallo
7ee8e5bf86 Revert "OSX build tweaks (laszlo)"
This reverts commit 69ae372b51 which
removes support for building the Mac version of Bitcoin with UPnP
support and UPnP disabled by default (which should be the default,
according to the community vote and as its the default on all
other platforms).
2011-05-21 14:14:34 +02:00
Matt Corallo
cbb2b59a90 Update NSIS Installer file to support the new directory structure. 2011-05-21 13:46:51 +02:00
Jeff Garzik
69a27a4ec6 irc: #bitcoin is overflowing. split up into 100 randomly-joined channels.
From laszlo
2011-05-20 20:54:51 -04:00
Jeff Garzik
69ae372b51 OSX build tweaks (laszlo) 2011-05-20 20:48:44 -04:00
Jeff Garzik
813a3b438f Merge pull request #229 from TheBlueMatt/esfix
Update spanish translation to newest git.
2011-05-18 10:37:11 -07:00
Jeff Garzik
fbe6d5defa Merge pull request #230 from TheBlueMatt/defix
Update German translation to latest git.
2011-05-18 10:36:43 -07:00
Jeff Garzik
98199faa0b Merge pull request #234 from TheBlueMatt/ltfix
Update Lithuanian Translation to latest git.
2011-05-18 10:36:22 -07:00
Jeff Garzik
010ca705df Merge pull request #235 from TheBlueMatt/gitianfix
Update Gitian Build Descriptor to match new directory layout.
2011-05-18 10:35:52 -07:00
Matt Corallo
6c5064b5c3 Update Gitian Build Descriptor to match new directory layout. 2011-05-18 16:04:38 +02:00
Anonymous
97c9d444ae Update Lithuanian Translation to latest git. 2011-05-18 15:52:35 +02:00
Pieter Wuille
b201c1f600 Bugfix for dnslookup: irc.cpp still used old CAddress constructor 2011-05-17 17:54:06 +02:00
Blitzboom
769e457d94 Update German translation to latest git. 2011-05-17 14:02:10 +02:00
Carlos Pizarro
b3ff4878f8 Update spanish translation to newest git. 2011-05-17 12:27:53 +02:00
Jeff Garzik
0c97aa9e14 Merge branch 'master' of git://github.com/bitcoin/bitcoin 2011-05-17 01:38:15 -04:00
Jeff Garzik
270e944e30 doc/README: bump version to 0.3.22 2011-05-17 01:36:31 -04:00
Jeff Garzik
112262cb24 Merge pull request #221 from gavinandresen/portoption
-port option to listen on arbitrary port
2011-05-16 22:29:28 -07:00
Jeff Garzik
6d62d2fb56 Merge pull request #222 from TheBlueMatt/lt
Add Lithuanian translation.
2011-05-16 22:24:59 -07:00
Gavin Andresen
f441949515 Build error mingw, missing std:: 2011-05-15 13:13:50 -04:00
Gavin Andresen
00bcfe0b7e -port option to listen on arbitrary port 2011-05-15 12:36:21 -04:00
Wladimir J. van der Laan
223b6f1ba4 make bitcoin include files more modular 2011-05-15 12:04:20 +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
Matt Corallo
bcb971f930 Fix MinGW build due to bad pointers to ui.rc pixmaps stuff. 2011-05-14 18:51:52 +02: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
mewantsbitcoins
95f5b36772 Add Lithuanian translation. 2011-05-14 01:07:22 +02:00
Jeff Garzik
efe06e1efd Merge pull request #215 from gavinandresen/negativemove
Allow move RPC to take account balances negative
2011-05-12 14:46:13 -07:00
Jeff Garzik
73eb306cfd Merge branch 'fUseUPnPfix' of https://github.com/TheBlueMatt/bitcoin into tmp 2011-05-12 17:36:42 -04:00
Jeff Garzik
9398bf946c Merge pull request #192 from sipa/dnslookup
Support for name lookups in -connect and -addnode
2011-05-12 14:31:25 -07:00
Daniel Holbert
5d1d69453a Add #ifdef USE_UPNP around usage of fUseUPnP to fix build failure. 2011-05-12 23:30:27 +02:00
Jeff Garzik
4b2e21e7ee Merge pull request #218 from jgarzik/fee-update
Update TX fee to 0.0005 BTC
2011-05-11 18:16:36 -07:00
Jeff Garzik
2a2487514a Decrease minimum TX fee to 0.0005 BTC. 2011-05-11 16:50:09 -04:00
Jeff Garzik
a630da6400 Replace CENT with new constant MIN_TX_FEE, where appropriate.
MIN_TX_FEE==CENT remains true (until next commit).
2011-05-11 16:48:51 -04: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
Jeff Garzik
04a667b076 Merge pull request #150 from jgarzik/settxfee
Add 'settxfee' RPC, to change TX fee setting at runtime
2011-05-09 11:54:16 -07:00
Gavin Andresen
832fb114a7 Allow move RPC to take account balances negative
Use case:  Customer owes you bitcoins, so you create a payment address
associated with an account with a negative balance (the amount they owe).
When customer pays, that account balance will go to zero.
2011-05-09 14:45:52 -04:00
Jeff Garzik
d9068ad5a1 Add settxfee RPC, to permit setting default TX fee at runtime. 2011-05-09 14:35:30 -04:00
Gavin Andresen
e8adcf88cd Help for sendtoaddress/sendfrom was wrong: amounts are rounded to 0.00000001 2011-05-09 14:26:41 -04:00
Gavin Andresen
91b8932eb1 Merge branch 'master' of github.com:bitcoin/bitcoin 2011-05-09 14:04:24 -04:00
Gavin Andresen
59d18adc4c listtransactions number-of-params check was wrong. 2011-05-09 14:03:54 -04:00
Jeff Garzik
b17be7e14b Manual merge of jaromil's source tree reorg commit.
Conflicts:
	src/sha256.cpp
2011-05-09 14:00:14 -04:00
Gavin Andresen
c0430f42b8 Fix broken build (invalid use of qualified name std::advance) 2011-05-09 13:31:10 -04:00
Gavin Andresen
6244e44999 Merge pull request #160 from CAFxX/listtransactions-from
add parameter "from" to listtransactions (range queries)
2011-05-09 09:42:29 -07:00
Gavin Andresen
752e598a16 Merge pull request #205 from forrestv/caseinsensitive_rpc_headers
Case-Insensitive JSON-RPC HTTP Headers
2011-05-09 09:37:31 -07:00
Forrest Voight
e6ad2c8792 Initial commit of changes to make JSON-RPC HTTP headers case-insensitive, as per RFC 2616 2011-05-08 20:33:46 -04:00
Carlo Alberto Ferraris
ec86134a0d Allow using the [from] parameter also from command-line 2011-05-07 18:34:32 +02:00
Jeff Garzik
2fb1124b0f Merge branch 'remove-4way' of github.com:jgarzik/bitcoin into tmp
Conflicts:
	makefile.unix
2011-05-06 08:04:50 -04:00
Jeff Garzik
4408034bcd Merge pull request #197 from TheBlueMatt/errorfix
Fix GUI crash
2011-05-06 04:33:44 -07:00
Matt Corallo
2f62b1299f When an error is returned, the client crashes as EndModal is called twice.
This fixes that and simply returns instead.  At least GTK won't complain.
2011-05-06 13:32:20 +02:00
Jeff Garzik
62b427ec55 Merge pull request #196 from amiryal/master
Improve UPNP build instructions
2011-05-06 04:24:32 -07:00
Amir Yalon
894031bbd9 Clarify the meaning of USE_UPNP in build-unix.txt 2011-05-06 10:55:38 +03:00
Gavin Andresen
5c4aeb779f Merge pull request #194 from johnmaguire2013/tray
Removed tooltip balance until it's fixed.
2011-05-05 08:17:14 -07:00
Gavin Andresen
5f56b28629 Merge pull request #193 from TheBlueMatt/nogenoption
Remove the option to generate coins from the Options Dialog.
2011-05-05 07:50:57 -07:00
John Maguire
d299c28ecc removed tooltip balance until it can be made to change without opening the UI 2011-05-05 10:49:20 -04:00
Matt Corallo
3451c5a9b3 Remove the option to generate coins from the Options Dialog. 2011-05-05 15:00:49 +02:00
Gavin Andresen
e5577d5541 Fix broken build (remove declarations of GUI generate methods) 2011-05-03 15:02:41 -04:00
Gavin Andresen
b99c23af40 Merge pull request #142 from jgarzik/remove-gui-gen.
Remove GUI 'generate coins' option.
2011-05-03 08:27:45 -07:00
Gavin Andresen
519365cfa5 Merge pull request #173 from gavinandresen/testnet_isstandard.
Accept non-standard transactions on testnet.
2011-05-03 08:24:57 -07:00
Gavin Andresen
8737e1ee20 Merge pull request #190 from johnmaguire2013/tray.
Added balance to tooltip and send coin option to tray menu
2011-05-03 08:16:13 -07: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
John Maguire
d67cfd146a fixed some translations which was... weird 2011-05-01 10:20:30 -04:00
John Maguire
bd3bd83dda added balance to tooltips 2011-05-01 10:20:29 -04:00
John Maguire
3b7925eb7d added "Send Bitcoins" option in the tray menu 2011-05-01 10:20:28 -04:00
Gavin Andresen
76160f784a Merge pull request #179 from wizeman/segfault-lockfile.
Fix segfault when we're unable to create the lock file.
2011-05-01 06:41:49 -07:00
Gavin Andresen
2296647e01 Merge pull request #181 from sipa/fixcheckconf.
Bugfix in recursive check in IsConfirmed()
2011-05-01 06:41:20 -07:00
Gavin Andresen
249aff45c2 Merge pull request #186 from TheBlueMatt/nopng.
Remove unnecessary line which creates a dependency on wx's png library.
2011-05-01 06:39:31 -07:00
Gavin Andresen
06d9156b8d Merge pull request #187 from devrandom/master.
New gitian descriptor for 0.3.21
2011-05-01 06:38:56 -07:00
Gavin Andresen
ddbc4647fa Bump version number to 0.3.22
Doing this now because I always forget to do it later.
(I'm hoping the next release will actually be 0.4.0)
2011-04-28 14:01:57 -04:00
devrandom
dec289e821 gitian: strip binaries 2011-04-28 11:01:28 -07:00
devrandom
26e0de41c3 gitian descriptor with miniupnpc 2011-04-27 16:26:14 -07:00
Matt Corallo
2d9b9fecd5 Remove unnecessary line which creates a dependency on wx's png library.
This should allow the bitcoin binaries to run on ever so slightly more installs,
specifically those who use a different libpng library (many distros use 1.4 which is imcompatible with 1.2.
2011-04-25 17:00:12 +02: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
Jaromil
84c3fb07b0 directory re-organization (keeps the old build system)
there is no internal modification of any file in this commit

files are moved into directories according to established standards in
sourcecode distribution; these directories contain:

 src - Files that are used in constructing the executable binaries,
       but are not installed.

 doc - Files in HTML and text format that document usage, quirks of
       the implementation, and contributor checklists.

 locale - Files that contain human language translation of strings
          used in the program

 contrib - Files contributed from distributions or other third party
 	   implementing scripts and auxiliary programs
2011-04-23 12:10:25 +02:00
Ricardo M. Correia
a925c32cca Fix segfault when we're unable to create the lock file. 2011-04-23 01:40:23 +02:00
Ricardo M. Correia
1a5364bd19 Link with libpthread on Linux, required by libboost_thread.
Fixes link failure when using the 'gold' linker.
2011-04-23 01:39:20 +02:00
Gavin Andresen
64ad448adc Better wording for transaction fee notification messages 2011-04-20 18:08:01 -04:00
Gavin Andresen
ca5884873e More 0.3.21 release prep
Bump version number in Windows installer file
Update READMEs.
2011-04-20 14:45:43 -04:00
Gavin Andresen
344888addd Update date in license.txt 2011-04-20 12:03:31 -04:00
Pieter Wuille
8857aeb223 Monitor incoming transactions for spends by (a copy of) your own wallet 2011-04-20 11:39:15 -04:00
Gavin Andresen
5ec05f0a28 Accept non-standard transactions on testnet. 2011-04-20 11:20:33 -04:00
Gavin Andresen
72e962cf55 getbalance '*' was ignoring minconf param. 2011-04-18 20:57:13 -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
Jeff Garzik
e93e5349cb Remove GUI's "Generate Coins" option from the menu.
CPU mining remains available via command line option [until/unless
the community decides to remove that completely].
2011-04-18 15:10:27 -04:00
Gavin Andresen
657cfe721b Merge branch 'upnpfix' of https://github.com/TheBlueMatt/bitcoin 2011-04-18 14:53:13 -04:00
Dan Helfman
f285d4f4f3 Fix for #156: UPnP segfault when no valid UPnP IGDs are found. 2011-04-16 21:58:42 +02:00
Gavin Andresen
bf3a0902ef Merge branch 'master' of https://github.com/gjs278/bitcoin 2011-04-15 12:09:50 -04:00
Gavin Andresen
9a189be740 Merge branch 'localefix' 2011-04-15 12:03:50 -04:00
Gavin Andresen
9ff411f7f7 Set time locale to POSIX in rfc1123Time so weekday/months in http responses are correct. 2011-04-15 12:01:34 -04:00
Gavin Andresen
a381eb8ddb Merge branch 'http-version' of https://github.com/jgarzik/bitcoin 2011-04-15 11:41:39 -04:00
Jeff Garzik
17616eac17 Send/return full bitcoin version string in Server and User-Agent HTTP headers 2011-04-15 03:58:42 -04:00
Jeff Garzik
a584320357 Ensure version number->string conversion is consistent 2011-04-15 03:58:28 -04:00
Carlo Alberto Ferraris
5aef2c0d55 add parameter from to listtransactions this allows querying for ranges, i.e. transactions [from, from+count) 2011-04-15 08:56:54 +02:00
Matt Corallo
973800b52f Exit when no UPnP router found and fUseUPnP gets set to 0. 2011-04-15 00:37:50 +02:00
Dan Loewenherz
d7f0287235 build: add note for Snow Leopard users and fix typos in linking instructions 2011-04-13 13:38:24 -07:00
Gavin Andresen
b37f09aa2e New checkpoint at block 118,000 2011-04-13 14:30:22 -04:00
gjs278
66fb32d267 pidfile support for daemon 2011-04-12 19:15:19 -05:00
Gavin Andresen
485dda9774 Merge branch 'listimmature' of /Users/gavin/src/gavin_btc 2011-04-12 17:31:31 -04:00
Gavin Andresen
d89d456655 Merge branch 'spentpertxout' of https://github.com/sipa/bitcoin 2011-04-12 17:27:15 -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
Gavin Andresen
79706a8e48 Merge branch 'upnp' of https://github.com/TheBlueMatt/bitcoin 2011-04-12 14:22:12 -04:00
Gavin Andresen
2e8b33824f Merge branch 'spentpertxout' of https://github.com/sipa/bitcoin 2011-04-12 13:31:44 -04: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
tcatm
d12ea887bc disable -daemon on windows; bitcoind forks only with -daemon set
[added setsid() call to ui.cpp, to regain consistency with init.cpp -jgarzik]
2011-04-08 23:59:32 -04:00
Jeff Garzik
d98beea894 rfc1123Time: increase buffer size for time string
Make sure we can accomodate all possibilities.
2011-04-08 22:50:14 -04:00
Gavin Andresen
198fd7b0bd Report immature coinbase transactions in listtransactions
Report coin generation transactions as 'category':'immature' until they have 120 confirmations (when they are reported as 'category':'generate', as before).
If the block they are in is not part of the main chain (you lost a 'block race'), then they are reported as 'category':'orphan' (with 0 confirmations).
2011-04-05 21:18:26 -04:00
Eric Swanson
0a4cb86976 Fixed issue 76 -- RPC error where addresses from addressbook's sending tab appear in listaccounts 2011-04-05 20:00:01 -04:00
Gavin Andresen
57b7fe4e6f Merge branch 'deadlock-fixes' of https://github.com/jgarzik/bitcoin 2011-04-05 19:34:06 -04:00
Jeff Garzik
6f074b71bb RPC sendmany must acquire cs_main lock 2011-04-05 15:15:20 -04:00
Jeff Garzik
f5f1878ba1 Fix deadlocks in setaccount, sendfrom RPC calls
SendMoney*() now requires caller to acquire cs_main.
GetAccountAddress() now requires caller to acquire cs_main, cs_mapWallet.

Ordering is intended to match these two callchains[1]:

1. CRITICAL_BLOCK(cs_main)
    ProcessMessage(pfrom, strCommand, vMsg)
        AddToWalletIfMine()
              AddToWallet(wtx)
                  CRITICAL_BLOCK(cs_mapWallet)

2. CRITICAL_BLOCK(cs_main)
    ProcessMessage(pfrom, strCommand, vMsg)
        AddToWalletIfMine()
              AddToWallet(wtx)
                  CRITICAL_BLOCK(cs_mapWallet)
                      walletdb.WriteName(PubKeyToAddress(vchDefaultKey), "")
                          CRITICAL_BLOCK(cs_mapAddressBook)

Spotted by ArtForz.  Additional deadlock fixes by Gavin.

[1] http://www.bitcoin.org/smf/index.php?topic=4904.msg71897#msg71897
2011-04-04 22:24:35 -04:00
Jeff Garzik
b26141e2c5 Remove 4way SSE2 scanhash implementation. 2011-04-03 14:21:52 -04:00
Jeff Garzik
a2b6c1930d Update DNS seed list 2011-04-01 11:33:35 -04:00
Matt Corallo
8bb5edc1c9 Allow UPnP mapping when USE_UPNP is defined and miniupnpc is installed at build time(statically linked).
Thanks joepie91 for the translation of the new copyright notices into Dutch.
Thanks sipa for the translation of the new copyright notices into French.
Thanks megu for the translation of the new copyright notices into Spanish.
Thanks justmoon/Blitzboom for the translation of the new copyright notices into German.
Thanks Joozero for the translation of the new copyright notices into Italian.
Remaining translations were provided by Google Translate.
2011-03-30 20:45:56 +02:00
tcatm
454bc86479 allow coredumps by not catching SIGSEGV 2011-03-25 13:23:43 +01:00
Jeff Garzik
3a47bf7265 Merge branch 'master' of git://github.com/bitcoin/bitcoin 2011-03-23 18:28:50 -04:00
Jeff Garzik
8203ec4b11 [locale] Regenerate es, nl binary message catalogs 2011-03-23 18:27:09 -04:00
Jeff Garzik
0b8e4738f9 Merge branch 'master' of https://github.com/smola/bitcoin into tmp 2011-03-23 18:21:22 -04:00
Jeff Garzik
d38e683a6f Merge branch 'dutchloc' of https://github.com/sipa/bitcoin into tmp 2011-03-23 18:21:10 -04:00
tcatm
c3f140033c catch SIGINT, SIGHUP and SIGSEGV and shutdown cleanly 2011-03-23 18:27:30 +01:00
tcatm
1c09a4adb2 daemon-mode: add sleep() loop to prevent defunct child process, call setsid() in child 2011-03-21 12:11:05 +01:00
Sven Slootweg
a07dca7cd2 Updated dutch translation 2011-03-19 00:58:16 +01:00
Gavin Andresen
b7ebc662eb Update copyright in About box from 2010 to 2011 2011-03-17 15:09:41 +01:00
Santiago M. Mola
f30dabb2ac Update Spanish translation. 2011-03-16 20:56:03 +01:00
Jeff Garzik
e2e5f5cd9d Fix -logtimestamps to only print time prefix once per output line
Incorporate BlueMatt's fix to only timestamp upon new line, and
move -logtimestamp checking outside OutputDebugPrintF() to better
future-proof it.
2011-03-16 15:42:04 -04:00
Gavin Andresen
27b7f3b43a Merge branch 'shy' 2011-03-14 09:15:06 -04:00
Gavin Andresen
4b88647966 Merge branch 'dns-seed' of https://github.com/jgarzik/bitcoin 2011-03-13 17:15:59 -04:00
Gavin Andresen
d43fd8a038 Merge branch 'log-timestamp' of https://github.com/TheBlueMatt/bitcoin 2011-03-13 17:15:57 -04:00
Gavin Andresen
2abd56f428 Merge branch 'limitfree' of /Users/gavin/src/integration_btc 2011-03-13 17:15:44 -04:00
Gavin Andresen
1bf9b3b06f Merge branch 'daemon-mode' of https://github.com/tcatm/bitcoin 2011-03-13 17:15:34 -04:00
Gavin Andresen
dfd059173d Merge branch 'subcent-change' of https://github.com/tcatm/bitcoin 2011-03-13 17:15:28 -04:00
Gavin Andresen
b931ed8563 sendmany RPC command, to send to multiple recipients in one transaction. 2011-03-13 17:11:49 -04:00
Gavin Andresen
88abf70386 Make sure rate-limiting code is thread-safe 2011-03-13 14:38:07 -04:00
Gavin Andresen
5de8b54c51 Continuously rate-limit free transactions.
Changed algorithm to use continuous exponential function instead of discrete 10-minute window.
Changed -limitfreerelay to be kilobytes-per-minute instead of boolean.
2011-03-13 13:38:09 -04:00
tcatm
f4f2987273 remove from/message field from uiproject 2011-03-13 18:35:39 +01:00
Jeff Garzik
8f58d0dbc8 Merge branch 'smalltxfix' of https://github.com/gavinandresen/bitcoin-git into tmp 2011-03-10 14:32:19 -05:00
Jeff Garzik
12e091842f Merge branch 'master' of https://github.com/devrandom/bitcoin into tmp 2011-03-10 12:58:49 -05:00
Gavin Andresen
81d3b1c825 Update copyright in About box from 2010 to 2011 2011-03-10 10:50:46 -05:00
Gavin Andresen
32fb5dfef7 Bump version number to 0.3.21 (lest we forget) 2011-03-10 10:50:46 -05:00
Matt Corallo
ca221e6c21 Only log timestamps if -logtimestamps is set. 2011-03-09 21:48:11 +01:00
Matt Corallo
fe460d47b0 Add timestamp prefix to each line in the debug log (this time with human-readable times) 2011-03-09 19:53:40 +01:00
Jeff Garzik
448b4516ff dnsseed: fix printf 2011-03-08 22:55:29 -05:00
Jeff Garzik
f684aec4f3 DNS seeding 2011-03-08 22:40:50 -05:00
Gavin Andresen
cbc920d474 shy patch from Hal 2011-03-05 17:13:07 -05:00
tcatm
b104df742d Merge branch 'TheBlueMatt-setaccountfix' into integration 2011-03-05 17:26:14 +01:00
tcatm
8e5aaada2e Merge branch 'setaccountfix' of https://github.com/TheBlueMatt/bitcoin into TheBlueMatt-setaccountfix 2011-03-05 17:24:34 +01:00
Matt Corallo
c1f74f152b throw JSONRPCError(-5, "Invalid bitcoin address") instead. 2011-03-05 16:45:56 +01:00
Matt Corallo
279ab5e62f setaccount should return if an invalid address is provided.
This prevents setaccount from creating new accounts which do not have any addresses.
2011-03-05 15:32:32 +01:00
tcatm
e1205e4d15 -help: do not show -server and -daemon in bitcoind 2011-03-03 22:34:13 +01:00
tcatm
ea7cd31751 force fDaemon in bitcoind 2011-03-03 22:31:44 +01:00
tcatm
a79409afa9 fix whitespace 2011-03-03 22:27:20 +01:00
tcatm
dda48ccd0f fix -daemon switch 2011-03-03 22:26:00 +01:00
Gavin Andresen
f36b494aeb Make send/receive limits bigger (10MB each) 2011-03-03 16:25:05 -05:00
Gavin Andresen
395c1f44bd Fix minimum transaction fee calculation mismatch between CreateTransaction and CreateBlock 2011-03-02 16:27:24 -05:00
Gavin Andresen
411493b1f7 Merge branch 'rounding' 2011-03-02 15:03:49 -05:00
Luke Dashjr
a14bf1946d Bugfix: avoid sub-cent change (lost in fees) whenever possible 2011-03-01 02:10:07 +01:00
Gavin Andresen
8a9cad44a5 Avoid sprintf decimal-point localization 2011-02-28 21:34:36 +00:00
tcatm
6665aca024 fix missing newline in help 2011-02-28 04:53:22 +01:00
tcatm
c993ac6932 Merge branch 'rounding' of https://github.com/gavinandresen/bitcoin-git into gavinandresen-rounding 2011-02-26 04:37:13 +01:00
Matt Giuca
a357424a25 Added .gitignore, which prevents 'bitcoin' and 'bitcoind' from showing up in git. 2011-02-26 11:50:23 +11:00
tcatm
5078a54b52 Merge branch 'mgiuca-wx-config' into integration 2011-02-26 00:59:55 +01:00
Matt Giuca
84711b18bc build-unix.txt: Updated (now OK to use wxWidgets > 2.9.0). 2011-02-26 09:17:49 +11:00
Matt Giuca
84778a5b46 makefile.unix: Fixed errors building bitcoind without wxWidgets installed.
WXINCLUDEPATHS and WXLIBS now assigned with '=' instead of ':='.
    This means they are only evaluated on-demand, and they will never be
    requested by 'make bitcoind', so it won't try to call wx-config.
2011-02-26 09:12:42 +11:00
Matt Giuca
3415b15a56 makefile.unix: WXINCLUDEPATHS now only used for building GUI object files.
Moved it out of CXXFLAGS and into the command-line for the GUI objects.
    It will no longer be invoked for non-GUI and crypto object files.
2011-02-26 09:10:10 +11:00
Matt Giuca
8314b7f5e6 makefile.unix: Removed redundant use of wx-config in DEFS (it was being included twice).
Also changed wx-config --cppflags to --cxxflags. I am not sure what the
    difference is supposed to be, but --cppflags does not include -pthread.
2011-02-26 08:58:15 +11:00
Matt Giuca
32e94947dc Merge https://github.com/ojab/bitcoin into wx-config 2011-02-26 08:45:38 +11:00
Gavin Andresen
b0ad55a08a ParseMoney: allow full precision 2011-02-23 16:26:15 -05:00
Gavin Andresen
87504abb07 FormatMoney: show full-precision values 2011-02-23 16:01:17 -05:00
Gavin Andresen
789259d2e7 Do not round input amounts; allow RPC full precision. 2011-02-23 14:41:19 -05:00
Gavin Andresen
83b9f42796 Use ValueFromAmount consistently 2011-02-23 14:24:16 -05:00
Gavin Andresen
ccd7fe8de5 Bump version to 0.3.20.02 2011-02-23 14:12:20 -05:00
tcatm
2175c9dae1 Set SO_REUSEADDR on JSON port 2011-02-23 01:08:27 +01:00
tcatm
10e135af70 Merge branch 'master' of https://github.com/sandos/bitcoin into sandos-master 2011-02-23 01:07:43 +01:00
tcatm
4d9b223ac2 remove From/Message fields from SendDialog 2011-02-23 00:48:30 +01:00
tcatm
6696beed45 Merge branch 'master' of https://github.com/tcatm/bitcoin into tcatm-master 2011-02-22 03:00:09 +01:00
Gavin Andresen
d787e00a3b Changed setup for mingw toolchain 2011-02-18 10:39:24 -05:00
Gavin Andresen
e6e87891a9 Windows mingw32 makefile and build notes (thanks m0mchil) 2011-02-18 09:49:00 -05:00
Gavin Andresen
930a07c3f5 Bump version to 0.3.20.01 2011-02-17 19:22:08 -05:00
devrandom
0d0bd331ae move gitian descriptor file 2011-02-17 01:53:52 -08:00
Gavin Andresen
5a3e82f9f5 Set maxconnections default to 125 2011-02-16 14:43:04 -05:00
Gavin Andresen
9cbae55a6e Denial-of-service flood control
Drop connections that are either sending messages too fast to handle or are processing messages so slowly data starts to back up.
Adds two new options:
  -maxreceivebuffer  Default: 2000 (2000*1000 bytes)
  -maxsendbuffer     Default: 256  (256*1000 bytes)
2011-02-16 13:18:11 -05:00
Gavin Andresen
cf7c1874fe Update windows build process for 0.3.20 release 2011-02-14 17:26:24 +00:00
Gavin Andresen
47908a8907 Visual C++ compatibility fixes 2011-02-10 19:24:22 -05:00
sandos
8fd402bfcf Set SO_REUSEADDR for JSON-RPC port 2011-02-10 09:25:42 +01:00
Daniel Folkinshteyn
d2e2cb0d27 Added 320 fresh seednodes to replace the old ones.
Thanks to MagicalTux for providing the data for node uptime
Thanks to sgornick for scapy script to test node connectivity

Closes https://github.com/bitcoin/bitcoin/issues#issue/22
2011-02-07 14:06:17 +01:00
David FRANCOIS
98ba262a48 Reset testnet with a new genesis block 2011-02-03 14:21:21 +01:00
devrandom
768b41017c add gitian build descriptor 2011-02-01 09:27:14 -08:00
Gavin Andresen
bd7d9140f9 new checkpoint at block 105,000 2011-01-31 11:26:02 -05:00
tcatm
b1ca5eb58a do not create 'Your Address' account 2011-01-31 17:13:02 +01:00
ojab
f0b7952caa 1. Change hardcoded g++ to $(CXX)
2. Change CFLAGS to CXXFLAGS
3. Add binaries to clean target
4. Generate wxWidgets includes/ldflags/etc from wx-config
2011-01-31 15:07:55 +03:00
Gavin Andresen
b1a657a00d Explicitly state that make -f makfile.unix is the way to build 2011-01-25 09:29:13 -05:00
Chris Moore
d9711a5798 Don't scan the time offsets vector repeatedly once we've displayed the warning that the user's clock may be wrong. 2011-01-24 16:25:41 -08:00
Chris Moore
10abe4f26e Repeatedly resetting the timestamp for seed nodes in the database was slow. Only update the database if it's a real change. 2011-01-24 14:47:36 -08:00
Gavin Andresen
84e7ad922b Bump version number to 0.3.20 2011-01-24 11:13:25 -05:00
Chris Moore
4698dd9a02 Fix -maxconnections. It used to account for the 8 outbound connections twice when calculating the number of slots left for incoming connections. 2011-01-23 00:08:09 -08:00
Gavin Andresen
c90ea2bd6d cpuid instruction clobbers eax/ebx/ecx/edx 2011-01-22 16:04:07 -05:00
Chris Moore
fdec7fe203 Merge branch show-version-in-help-2 of https://github.com/dooglus/bitcoin 2011-01-21 12:14:20 -08:00
Chris Moore
18cb92ab18 Merge branch 'display-version-in-help' of https://github.com/mhanne/bitcoin 2011-01-21 12:09:32 -08:00
Chris Moore
86c0af514b Merge branch 'rpcssl-help' of github.com:dooglus/bitcoin into dooglus-rpcssl-help 2011-01-21 11:59:56 -08:00
Chris Moore
2aadc8bb5b The -rpcssl command line option is a boolean, like -server, -daemon, -testnet, etc. Specifying -rpcssl=1 is the same as just -rpcssl, as for any other boolean flag, so let's show it the same in the help text. 2011-01-21 10:14:33 -08:00
Gavin Andresen
ae42d69d72 Updated development process description 2011-01-21 10:52:48 -05:00
Chris Moore
5284e1b60e Add const bool VERSION_IS_BETA to serialize.h and use it when formatting the version string. Show the version string in --help text too. 2011-01-21 02:37:34 -08:00
Gavin Andresen
05563e9ef2 Add -rescan option to --help output 2011-01-20 16:29:07 -05:00
Gavin Andresen
458cf9070b Merge branch 'printtoconsole' of https://github.com/dooglus/bitcoin into integration 2011-01-20 16:22:33 -05:00
Gavin Andresen
245e1b4fdb Merge branch '4wayswitch' of https://github.com/dooglus/bitcoin into integration 2011-01-20 16:21:59 -05:00
Gavin Andresen
87c1947d49 Merge branch 'showdefaultsinhelp' of https://github.com/dooglus/bitcoin into integration 2011-01-20 16:20:11 -05:00
Chris
8b8d59eefb Don't use GetBoolArg() and mapArgs; use one or the other. 2011-01-20 12:26:33 -08:00
Gavin Andresen
dbe79d3451 Fix bus error in DebugPrint if -datadir given non-existent directory. 2011-01-20 14:57:46 -05:00
Chris
10152506fe The --help text wasn't showing the default values for three of the options, as follows:
-rpcport (default: 8332)
    -rpcconnect (default: 127.0.0.1)
    -keypool (default: 100)

Edited the --help text to include the defaults.
2011-01-20 11:49:29 -08:00
Chris
aaac71d38f Add new command line argument "-printtoconsole" to send debugging output to the console instead of to debug.log. The code for this was already in place, but there was no way other than editing the source and rebuilding to turn it on. 2011-01-20 11:45:01 -08:00
Gavin Andresen
415535e47b Merge branch 'fix-statusbar-color' of https://github.com/mhanne/bitcoin into FIXES 2011-01-20 14:20:52 -05:00
Gavin Andresen
3475caf8f5 Merge branch 'issue34' of https://github.com/dooglus/bitcoin into FIXES 2011-01-20 14:18:51 -05:00
Gavin Andresen
f1307515b7 print -rescan timing info in debug.log 2011-01-20 14:12:10 -05:00
Chris
ab931be45b Fix issue 34: correct spelling of -rpcsslcertificatechainfile in --help text. 2011-01-20 10:49:44 -08:00
Gavin Andresen
d9574c2f14 Reconcile getbalance and listaccounts 0 in the shared-wallet case
If you copied your wallet and used it on two different machines, the balance reported by getbalance and the sum(listaccounts) could disagree, because you might receive payments for an address that is in your wallet but not your address book.  Now all such transactions are credited to the default empty-string account.
2011-01-20 13:10:01 -05:00
Gavin Andresen
1d23c74361 ReacceptWalletTransactions bugfix
Fix two bugs that can happen if you copy your wallet to another machine
and perform transactions on both.

First, ReacceptWalletTransactions would notice if the other wallet spent coins, and
would correctly mark the receiving transaction spent.  However, it did not add the spending
transaction to the wallet.  Now it does.

Second, account balances could get out of sync with 'getbalance' because coins received
by the other copy of the wallet were not necessarily detected.  Now ReacceptWalletTransactions
will scan the entire blockchain for transactions that should be in the wallet if it runs
across a 'spent in the other wallet' transaction.

Finally, there was a small bug in the accounts getbalance code-- generated coins with between
100 and 119 confirmations were not being counted in the balance of account "".
2011-01-19 16:50:20 -05:00
Marius Hanne
0654e1c4ef include version information in help output 2011-01-19 22:49:12 +01:00
Marius Hanne
ed4e8830d7 don't set statusbar background color
people with dark system theme otherwise have white text on light-grey bg
2011-01-19 01:27:58 +01:00
Gavin Andresen
c9f70b381d Merge branch 'integration' into FIXES 2011-01-18 14:46:46 -05:00
Gavin Andresen
b4671902f2 Merge branch 'listaccountsbug' of https://github.com/gavinandresen/bitcoin-git into integration 2011-01-18 14:35:50 -05:00
Gavin Andresen
76e97c4002 Merge branch 'gettransaction' of https://github.com/gavinandresen/bitcoin-git into integration 2011-01-18 14:35:03 -05:00
Gavin Andresen
1aefe491fb Merge branch 'setaccountbug' of https://github.com/gavinandresen/bitcoin-git into integration 2011-01-18 14:33:18 -05:00
David FRANCOIS
04a9217dcf Add the -keypool option description to help output 2011-01-14 20:55:36 +01:00
Gavin Andresen
fa446a563e Fix setaccount/getaccountaddress interaction bug
See https://github.com/bitcoin/bitcoin/issues#issue/29
2011-01-13 20:04:56 -05:00
Gavin Andresen
2eb09b66ef Fix so listaccounts with minconf works. 2011-01-10 13:54:39 -05:00
Gavin Andresen
80be6e69a9 Add account/address details to gettransaction output 2011-01-07 14:10:08 -05:00
Gavin Andresen
009d5fb41f Merge branch 'listaddresses' into integration 2011-01-06 08:56:10 -05:00
Gavin Andresen
f86655fddd Add time to category:move transactions. 2011-01-05 09:52:52 -05:00
Gavin Andresen
0ded557af6 Merge branch 'listaddresses' of https://github.com/gavinandresen/bitcoin-git 2011-01-03 14:45:49 -05:00
Witchspace
72b9861635 don't advertise on IRC if we don't allow external connections 2010-12-24 10:25:21 +01:00
Witchspace
5f88e8887a add -nolisten command line option 2010-12-22 14:08:00 +01:00
Gavin Andresen
ddb68acebe Add address to listtransactions output 2010-12-21 13:39:10 -05:00
Gavin Andresen
2d96276e24 EndModal fix for Mac from piotrp 2010-12-20 12:51:26 -05:00
Gavin Andresen
86c2bdfd5d EndModal fix for Mac from piotrp 2010-12-20 10:36:48 -05:00
Gavin Andresen
cba3a1741a Straw-man for dev process 2010-12-19 10:39:36 -05:00
Gavin Andresen
5568d82c26 Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-12-17 16:23:47 -05:00
gavinandresen
1c0bf23ba2 Missed a int64_t cast when I added transaction time output
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@205 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-12-17 20:16:27 +00:00
Gavin Andresen
8250760617 Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-12-16 13:24:47 -05:00
gavinandresen
59948a6e1c listtransactions was reporting address instead of account for 'receive'
setgenerate true 0  is now the same as setgenerate false
And return transaction time



git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@204 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-12-16 18:17:26 +00:00
Gavin Andresen
55c43da5d8 Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-12-16 11:36:47 -05:00
gavinandresen
809ee79592 New RPC command: listaccounts. New RPC setting -rpctimeout. And listtransactions '*'
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@203 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-12-16 01:06:03 +00:00
s_nakamoto
629e37dde1 get external ip from irc
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@202 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-12-15 22:43:51 +00:00
Gavin Andresen
bc530fe89f Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-12-13 14:28:59 -05:00
s_nakamoto
fc73ad644f -- version 0.3.19 release
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@201 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-12-13 16:26:14 +00:00
Gavin Andresen
9c17a685bd Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-12-12 16:03:42 -05:00
s_nakamoto
986b5e257e correction
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@200 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-12-12 18:38:02 +00:00
s_nakamoto
97ee01ad89 added some DoS limits, removed safe mode
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@199 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-12-12 18:20:36 +00:00
Gavin Andresen
d12e53ea09 Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-12-08 20:06:44 -05:00
s_nakamoto
8220180133 -- version 0.3.18 release
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@198 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-12-08 23:23:48 +00:00
gavinandresen
a206a23980 IsStandard() check for CScripts: only relay/include in blocks CScripts we can understand.
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@197 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-12-07 13:43:31 +00:00
Gavin Andresen
0a87c91692 Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-12-06 18:58:31 -05:00
s_nakamoto
865c3a2383 fix wallet.dat compatibility problem if you downgrade from 0.3.17 and then upgrade again
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@196 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-12-06 15:59:28 +00:00
s_nakamoto
f03304a9c7 preps for future client-only mode,
jgarzik's initial download speedup

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@195 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-12-05 09:29:30 +00:00
gavinandresen
bdde31d787 All boolean options/flags now work the same way.
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@194 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-12-03 19:38:09 +00:00
Gavin Andresen
0575c0a667 Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-12-01 09:20:49 -05:00
gavinandresen
bfd471f53e JSON methods: listtransactions, gettransaction, move, sendfrom and getbalance <account>
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@193 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-11-30 18:58:11 +00:00
Gavin Andresen
6f8ba620c2 Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-11-28 10:56:51 -05:00
s_nakamoto
84d7c981dc added boost tuples to serialize.h
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@192 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-11-27 23:12:41 +00:00
s_nakamoto
24324d83e8 -- version 0.3.17 release
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@191 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-11-25 20:41:57 +00:00
s_nakamoto
b7ccd48dd8 still working on account-based commands getbalance, move and sendfrom, they're only for testing for now
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@190 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-11-25 16:40:25 +00:00
Gavin Andresen
94073ecf7b Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-11-23 15:01:34 -05:00
s_nakamoto
776d0f3459 new getwork
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@189 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-11-23 19:16:36 +00:00
Gavin Andresen
262430f705 Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-11-22 11:34:13 -05:00
gavinandresen
e4ff4e6898 Depracate "label" API, replacing with account
New RPC methods: move, sendfrom
Change to getbalance (now takes optional [account] argument)
Renamed methods with "label" in their names.
sendtoaddress returns hexadecimal transaction ID instead of "sent".



git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@188 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-11-22 15:53:20 +00:00
Gavin Andresen
593f74b9cb Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-11-22 00:06:42 -05:00
s_nakamoto
298a771494 added transaction fee setting in UI options menu,
cut free transaction area from 50KB to 26KB

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@187 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-11-21 22:46:19 +00:00
Gavin Andresen
2d8b65e837 Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-11-21 15:48:48 -05:00
s_nakamoto
51d9b435cd small bugfix
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@186 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-11-20 02:12:03 +00:00
s_nakamoto
f35e21e2e4 require some minimal priority for free transactions to slow down transaction spam
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@185 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-11-19 23:37:05 +00:00
s_nakamoto
683bcb9154 efficiently sort transaction dependencies in one pass
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@184 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-11-19 20:22:46 +00:00
Gavin Andresen
11c570cfb4 Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-11-17 20:51:36 -05:00
gavinandresen
c4679ad0f1 OutputDebugStringF fix for Mac FileVault problem, take 3
(cannot use a CRITICAL_BLOCK because of undefined order calling static destructors;
instead, keep debug.log open, and tell people to use copytruncate when doing
log rotation)


git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@183 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-11-18 00:11:33 +00:00
gavinandresen
2f7a9997c8 Make OutputDebugStringF thread-safe again (thanks ArtForz for catching)
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@182 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-11-16 17:41:44 +00:00
Gavin Andresen
8595d31ee8 Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-11-16 09:04:24 -05:00
gavinandresen
026c5f7617 Re-open debug.log every ten minutes instead of every printf; fixes performance problem with Mac FileVault.
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@181 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-11-16 02:32:36 +00:00
gavinandresen
222e3de4be Update websites used for GetMyExternalIP
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@180 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-11-15 21:37:33 +00:00
s_nakamoto
910bd45756 -- version 0.3.15 release
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@179 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-11-14 00:06:10 +00:00
Gavin Andresen
a0cd439788 Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-11-10 11:45:51 -05:00
gavinandresen
838e8c9166 Add paytxfee to getinfo output
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@178 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-11-10 16:43:31 +00:00
Gavin Andresen
695aa2d5a2 Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-11-09 17:10:43 -05:00
s_nakamoto
e2a186af10 SelectCoins first pass tries not to use coins with less than 6 confirmations
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@177 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-11-09 19:47:07 +00:00
Gavin Andresen
5d4b0c9026 Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-11-08 18:05:34 -05:00
s_nakamoto
461764cbbe -paytxfee is now per KB,
BitcoinMiner prioritise transactions by how old their dependencies are

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@176 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-11-08 22:06:07 +00:00
Gavin Andresen
de374ba6b1 Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-11-03 20:24:50 -04:00
gavinandresen
3b8848fa4e Fix IsInitialBlockDownload if running on testnet
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@175 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-11-04 00:23:00 +00:00
gavinandresen
3cac997e19 Prevent double-sends from quick double-button-clicks
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@174 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-11-03 23:40:43 +00:00
Gavin Andresen
be7eecafd2 Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-10-23 21:32:19 -04:00
s_nakamoto
c891967b6f bugfixes from Dean Gores,
addr system changes,
make sure no gen before block 74000

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@173 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-10-23 17:43:53 +00:00
Gavin Andresen
2ea321d85a Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-10-22 11:23:12 -04:00
gavinandresen
c285051c08 testnet and keypoololdest added to RPC getinfo output. And RPC now sends proper HTTP Date headers.
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@172 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-10-22 15:15:20 +00:00
s_nakamoto
2ce73dbe85 -- version 0.3.14 release
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@171 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-10-21 16:47:16 +00:00
Gavin Andresen
07c46dac87 Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-10-20 12:35:35 -04:00
s_nakamoto
d9c6b09ac4 Gavin Andresen: multiple instance check, -testnet use port 18333
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@170 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-10-20 16:12:23 +00:00
gavinandresen
2ea5fa0710 validateaddress RPC command
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@169 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-10-20 15:58:16 +00:00
Gavin Andresen
bcd88403e2 Update README now that main svn has -testnet built in 2010-10-19 16:43:50 -04:00
Gavin Andresen
d1e4a866ad Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-10-19 14:17:18 -04:00
s_nakamoto
5cbf75324d Gavin's TEST network as -testnet switch, misc fixes
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@168 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-10-19 17:16:51 +00:00
Gavin Andresen
2bda554be4 Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-10-14 16:46:16 -04:00
gavinandresen
2fad3d34b7 makefile.unix tweak from Xunie so bitcoind links on Ubuntu 10.04 x86_64
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@167 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-10-14 13:33:03 +00:00
Gavin Andresen
cc8005b4e7 Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-10-11 15:15:09 -04:00
gavinandresen
77cd030ac3 Fixed description of -rpcuser/-rpcpassword options.
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@166 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-10-11 18:32:33 +00:00
gavinandresen
ed54768f5f -rpcssl=1 option, allowing secure HTTPS JSON-RPC connections on OSX/Unix.
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@165 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-10-11 18:23:41 +00:00
s_nakamoto
83082f04a4 dkaparis: boost::bind build fix for c++0x
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@164 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-10-11 15:12:17 +00:00
Gavin Andresen
687c5ef794 Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-10-09 17:59:38 -04:00
s_nakamoto
103849419a key pool for safer wallet backup
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@163 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-10-09 19:33:35 +00:00
Gavin Andresen
7d5d89856d Merge remote branch 'remotes/svn/trunk' into svn 2010-10-06 21:20:16 -04:00
s_nakamoto
0a27bd065e updated Russian translation
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@162 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-10-06 15:43:04 +00:00
Gavin Andresen
1b5e57e935 Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-10-05 23:27:30 -04:00
s_nakamoto
b22c884231 recursive function to determine if own unconfirmed transaction can be spent
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@161 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-10-06 02:19:47 +00:00
Gavin Andresen
a2ae4a8a0f Merge remote branch 'remotes/svn/trunk' into svn 2010-10-05 14:14:17 -04:00
s_nakamoto
dc8adc3b48 Russian translation by eurekafag
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@160 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-10-04 01:40:50 +00:00
Gavin Andresen
5ccee900a0 Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-10-01 11:25:09 -04:00
s_nakamoto
178152f604 fixed linux build,
dkaparis: _WIN32_WINNT 0x500
-- version 0.3.13 release

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@159 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-09-30 23:54:15 +00:00
Gavin Andresen
369010406e Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-09-30 14:28:23 -04:00
s_nakamoto
a790fa46f4 don't count or spend payments until they have 1 confirmation,
misc cleanup,
changed internal version number from 312 to 31300
-- version 0.3.13

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@158 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-09-30 16:23:07 +00:00
Gavin Andresen
6ce5af574f Merge commit 'svn/trunk' into svn 2010-09-23 18:15:51 +00:00
Gavin Andresen
81b2d877fb Update README.md 2010-09-23 18:06:50 +00:00
Gavin Andresen
3764c12b1f Merge remote branch 'svn/trunk' into svn 2010-09-23 13:14:52 -04:00
s_nakamoto
9b8eb4d690 changed free transactions per block threshold
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@157 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-09-23 16:01:44 +00:00
s_nakamoto
8d13ca1f11 changed free transactions per block threshold
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@157 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-09-23 16:01:44 +00:00
Gavin Andresen
645cc8cf49 Add branch README.md 2010-09-23 14:56:43 +00:00
Gavin Andresen
1c21b7943d Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-09-19 19:29:03 -04:00
s_nakamoto
172f006020 only accept transactions sent by IP address if -allowreceivebyip is specified
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@156 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-09-19 21:20:34 +00:00
s_nakamoto
6aeb45187b only accept transactions sent by IP address if -allowreceivebyip is specified
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@156 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-09-19 21:20:34 +00:00
Gavin Andresen
a43a7dfa58 Merge remote branch 'remotes/svn/trunk' into svn 2010-09-15 22:31:09 -04:00
s_nakamoto
efae3da41d config option -rpcallowip= to accept json-rpc connections from another machine
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@155 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-09-15 22:10:13 +00:00
s_nakamoto
fe37c35018 config option -rpcallowip= to accept json-rpc connections from another machine
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@155 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-09-15 22:10:13 +00:00
Gavin Andresen
4b36f34d6d Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-09-15 10:47:41 -04:00
s_nakamoto
3df62878c3 reorganize BitcoinMiner to make it easier to add different SHA256 routines
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@154 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-09-13 22:14:24 +00:00
s_nakamoto
71cc095cb2 reorganize BitcoinMiner to make it easier to add different SHA256 routines
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@154 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-09-13 22:14:24 +00:00
Gavin Andresen
43e4a2a289 Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-09-13 10:46:31 -04:00
s_nakamoto
fdbf76d4f4 dropped DB_PRIVATE from dbenv.open
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@153 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-09-12 17:30:15 +00:00
s_nakamoto
c8ad9b8375 dropped DB_PRIVATE from dbenv.open
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@153 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-09-12 17:30:15 +00:00
Gavin Andresen
41016bfc46 Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-09-10 19:18:27 -04:00
s_nakamoto
c39b06866e fix build on non-intel architectures, thanks teknohog
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@152 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-09-10 18:07:48 +00:00
s_nakamoto
2323664a37 fix build on non-intel architectures, thanks teknohog
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@152 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-09-10 18:07:48 +00:00
s_nakamoto
4968232490 fix problem sending the last cent with sub-cent fractional change
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@151 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-09-10 16:58:59 +00:00
s_nakamoto
00728c24e7 fix problem sending the last cent with sub-cent fractional change
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@151 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-09-10 16:58:59 +00:00
Gavin Andresen
90e165aa0c Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-09-09 14:26:53 -04:00
s_nakamoto
7629d36a53 try to auto-detect whether to use 128-bit 4-way SSE2
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@150 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-09-09 01:00:40 +00:00
s_nakamoto
8555125a1a try to auto-detect whether to use 128-bit 4-way SSE2
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@150 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-09-09 01:00:40 +00:00
s_nakamoto
3f64753779 Gavin Andresen: clean shutdown on SIGTERM
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@149 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-09-08 19:24:32 +00:00
s_nakamoto
14002c8eba Gavin Andresen: clean shutdown on SIGTERM
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@149 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-09-08 19:24:32 +00:00
Gavin Andresen
a2120986ff Merge remote branch 'refs/remotes/svn/trunk' into svn 2010-09-06 21:51:27 -04:00
s_nakamoto
f1e1fb4bde cleanup,
catch some recoverable exceptions and continue

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@148 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-09-07 01:12:53 +00:00
s_nakamoto
8c9479c6bb cleanup,
catch some recoverable exceptions and continue
-- version 0.3.12 release

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@148 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-09-07 01:12:53 +00:00
Gavin Andresen
6690680538 Merge remote branch 'remotes/svn/trunk' into svn 2010-09-06 19:05:27 -04:00
s_nakamoto
d743f03552 Gavin Andresen: json-rpc return standard error objects with error code numbers,
json-rpc command line client return exit code,
added rpc backupwallet command

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@147 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-09-06 21:03:04 +00:00
Gavin Andresen
2742fdfda2 Merge remote branch 'remotes/svn/trunk' into svn 2010-09-02 13:42:31 -04:00
s_nakamoto
0a61b0df12 propset svn:eol-style native
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@146 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-08-29 16:58:15 +00:00
Satoshi Nakamoto
343328c6b8 added -testsafemode switch
-- version 0.3.11 release
2010-08-28 00:55:50 +00:00
Satoshi Nakamoto
d3631907d6 change switch name to -disablesafemode 2010-08-28 00:55:19 +00:00
Satoshi Nakamoto
87cfcfd374 more rpc methods allowed in safe mode 2010-08-28 00:54:37 +00:00
Satoshi Nakamoto
522dfe3422 alert system
-- version 0.3.11
2010-08-28 00:51:52 +00:00
Satoshi Nakamoto
c545563d46 warning message if clock is too far off 2010-08-28 00:50:40 +00:00
Satoshi Nakamoto
7a37c906a1 block index checking on load, extra redundant checks, misc refactoring 2010-08-28 00:49:30 +00:00
s_nakamoto
5b721607b1 added -testsafemode switch
-- version 0.3.11 release

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@145 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-08-25 17:53:09 +00:00
s_nakamoto
2ef9cfa5b8 change switch name to -disablesafemode
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@144 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-08-25 16:33:38 +00:00
s_nakamoto
7d7797b141 more rpc methods allowed in safe mode
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@143 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-08-25 14:18:56 +00:00
s_nakamoto
401926283a alert system
-- version 0.3.11

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@142 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-08-25 00:05:37 +00:00
s_nakamoto
2201a0808e warning message if clock is too far off
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@141 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-08-20 16:55:14 +00:00
s_nakamoto
05454818dc block index checking on load, extra redundant checks, misc refactoring
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@140 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-08-19 22:43:19 +00:00
Satoshi Nakamoto
43deefa435 do an extra CheckBlock in ConnectBlock 2010-08-16 20:55:54 +00:00
Satoshi Nakamoto
21ca2d833b erase the bad chain after disconnecting it 2010-08-16 20:54:47 +00:00
Satoshi Nakamoto
bb3fd02930 blocks-1,
verify block chain on load, so wouldn't have needed to delete blk*.dat, it would have done a reorg automatically
2010-08-16 20:53:49 +00:00
Satoshi Nakamoto
c923cdbd5b wrap sha256.cpp in FOURWAYSSE2 #ifdef 2010-08-16 20:52:36 +00:00
Satoshi Nakamoto
019b456605 added -march=amdfam10 to sha256.cpp in makefile.unix 2010-08-16 20:51:46 +00:00
Satoshi Nakamoto
7d489192fd makefile.unix to build with option to enable tcatm's 4-way SSE2 SHA-256 with -4way switch on Linux 2010-08-16 20:50:37 +00:00
s_nakamoto
44a0de1861 do an extra CheckBlock in ConnectBlock
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@139 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-08-16 18:46:02 +00:00
s_nakamoto
a01d5876fa erase the bad chain after disconnecting it
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@138 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-08-16 17:51:10 +00:00
s_nakamoto
15399da9fe blocks-1,
verify block chain on load, so wouldn't have needed to delete blk*.dat, it would have done a reorg automatically

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@137 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-08-16 17:05:50 +00:00
s_nakamoto
6da916d4ac wrap sha256.cpp in FOURWAYSSE2 #ifdef
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@136 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-08-16 13:37:00 +00:00
s_nakamoto
e540144b2e added -march=amdfam10 to sha256.cpp in makefile.unix
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@135 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-08-16 13:11:32 +00:00
Satoshi Nakamoto
76793dc969 fix for block 74638 overflow output transaction 2010-08-15 23:09:29 +00:00
Satoshi Nakamoto
6ac7f9f144 misc changes 2010-08-15 23:06:05 +00:00
s_nakamoto
08fee75201 makefile.unix to build with option to enable tcatm's 4-way SSE2 SHA-256 with -4way switch on Linux
-- version 0.3.10 release

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@134 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-08-15 22:46:58 +00:00
s_nakamoto
85de7d7c0c scanback check to prevent adding to the 74638 overflow chain
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@133 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-08-15 22:21:03 +00:00
s_nakamoto
d4c6b90ca3 fix for block 74638 overflow output transaction
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@132 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-08-15 21:35:24 +00:00
s_nakamoto
4bd188c438 misc changes
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@131 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-08-15 21:05:16 +00:00
Gavin Andresen
2d12315c94 Quick fix: bad block 74,652 2010-08-15 20:28:01 +00:00
Satoshi Nakamoto
7f71fd13ae fix -datadir=./subdir relative path,
autostart off by default except on windows,
fix occasional "vector iterator not dereferencable" assertion with msvc,
fix readlink compile warning on linux build,
use sys/param.h and BSD define instead of __BSD__,
-paytxfee switch
2010-08-13 02:23:46 +00:00
s_nakamoto
01cd2fdaf3 fix -datadir=./subdir relative path,
autostart off by default except on windows,
fix occasional "vector iterator not dereferencable" assertion with msvc,
fix readlink compile warning on linux build,
use sys/param.h and BSD define instead of __BSD__,
-paytxfee switch

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@130 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-08-12 21:13:43 +00:00
Satoshi Nakamoto
819adfff6f fix build, thanks jgarzik 2010-08-12 13:28:22 +00:00
Satoshi Nakamoto
f5d2bc8a36 disable SSE2 on 32-bit 2010-08-12 13:26:20 +00:00
Satoshi Nakamoto
9db7bf5f52 gethashespersec and added version and hashespersec to getinfo 2010-08-12 13:23:02 +00:00
Satoshi Nakamoto
410b618d18 json-spirit print reals with 8 decimal places,
bitcoind help <command> instead of bitcoind <command> -?
2010-08-12 13:20:57 +00:00
s_nakamoto
4287732797 fix build, thanks jgarzik
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@129 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-08-11 01:38:24 +00:00
s_nakamoto
0cff7a8aa7 disable SSE2 on 32-bit
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@128 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-08-10 23:43:37 +00:00
s_nakamoto
fb83d28768 gethashespersec and added version and hashespersec to getinfo
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@127 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-08-10 22:55:23 +00:00
s_nakamoto
342e1b7338 json-spirit print reals with 8 decimal places,
bitcoind help <command> instead of bitcoind <command> -?

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@126 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-08-10 19:21:17 +00:00
Satoshi Nakamoto
c2fa70ddfd always make 8 outbound connections even if have inbound,
limit one outbound connection per a.b.?.? range,
switch -maxconnections=#
2010-08-10 16:03:01 +00:00
Satoshi Nakamoto
8a38d5663a enable SSE2 in all builds to fix crypto++ SHA-256 on 64-bit 2010-08-10 16:01:23 +00:00
Satoshi Nakamoto
dd9e71843b correct typo for mac compile, update makefile to use llvm 2010-08-10 15:57:38 +00:00
s_nakamoto
94cfec07fd always make 8 outbound connections even if have inbound,
limit one outbound connection per a.b.?.? range,
switch -maxconnections=#

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@125 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-08-09 20:00:17 +00:00
s_nakamoto
e6b7ab5749 enable SSE2 in all builds to fix crypto++ SHA-256 on 64-bit
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@124 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-08-09 19:54:40 +00:00
laszloh
0c50722270 correct typo for mac compile, update makefile to use llvm
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@123 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-08-04 04:15:38 +00:00
s_nakamoto
2c06be915d new safety feature displays a warning message and locks down RPC if it detects a problem that may require an upgrade
-- version 0.3.8

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@122 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-08-03 18:25:05 +00:00
s_nakamoto
6ff5f718b6 fixed segfault in bignum.h,
additional security limits,
refactoring
-- version 0.3.7

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@121 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-07-31 19:15:48 +00:00
s_nakamoto
01bed1828b simplified makefile.unix, updated build-unix.txt instructions to include boost 1.37
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@120 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-07-30 23:22:55 +00:00
s_nakamoto
757f0769d8 reverted makefile.unix wx-config -- version 0.3.6
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@119 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-07-29 20:27:12 +00:00
s_nakamoto
17b2740289 Fredrik Roubert: simplified makefile.unix with wx-config,
misc

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@118 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-07-29 15:34:48 +00:00
s_nakamoto
f6f8237a74 fixed makefile.osx
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@117 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-07-28 21:17:35 +00:00
s_nakamoto
0bd084011a fixed makefile.vc
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@116 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-07-28 21:11:09 +00:00
s_nakamoto
f79751c299 better IsInitialBlockDownload
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@115 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-07-27 19:43:04 +00:00
s_nakamoto
813505cc13 added a subset of Crypto++ 5.6.0 with 48% faster ASM SHA-256, combined speedup 2.5x faster vs 0.3.3, thanks BlackEye for figuring out the alignment problem
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@114 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-07-27 18:14:32 +00:00
s_nakamoto
520f367319 tcatm's cached SHA256 state idea, about 70% faster generating
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@113 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-07-27 01:14:33 +00:00
s_nakamoto
793200e5e9 bitcoind now compiles without wxWidgets or wxBase
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@112 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-07-26 17:15:18 +00:00
s_nakamoto
6966768a55 Gavin: BIO_FLAGS_BASE64_NO_NL
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@111 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-07-25 21:49:21 +00:00
s_nakamoto
7d46f9250c Lachesis: remove newlines every 64 characters in EncodeBase64
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@110 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-07-25 21:29:07 +00:00
s_nakamoto
3b7cd5d89a Gavin Andresen's JSON-RPC HTTP authentication,
faster initial block download
-- version 0.3.3

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@109 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-07-25 16:45:21 +00:00
s_nakamoto
e8bff10f07 minor UI tweaks, removed some outdated txt files,
(and json-rpc password -rpcpw= switch, which we're going to revert)

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@108 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-07-18 20:47:29 +00:00
s_nakamoto
ae922a36a4 security safeguards,
limited addr messages
-- version 0.3.2

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@107 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-07-17 23:51:16 +00:00
s_nakamoto
673a6d15d9 version 0.3.1 release
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@106 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-07-16 23:12:58 +00:00
s_nakamoto
0bbc812f48 Spanish translation by milkiway,
French translation by aidos

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@105 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-07-15 19:11:51 +00:00
s_nakamoto
d01eaf0421 version 0.3.1 rc1
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@104 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-07-15 16:46:46 +00:00
s_nakamoto
a30b56ebe7 fix openssl linkage problems,
disable minimize to tray on Linux because it has too many problems including a CPU peg bug

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@103 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-07-15 00:18:45 +00:00
s_nakamoto
6e5d67e827 switched from wxStandardPaths to GetDefaultDataDir, fixes bug reported by m0mchil when username contains non-lower-ASCII characters
-- version 0.3.1

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@102 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-07-09 15:29:48 +00:00
s_nakamoto
20c6bfad1e Gavin Andresen: implementation of autostart on system startup option on Linux
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@101 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-07-09 02:11:50 +00:00
s_nakamoto
50d49d9c2e Portuguese translation by Tiago Faria
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@100 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-07-08 18:07:14 +00:00
s_nakamoto
d882773789 Laszlo's fix to make generate threads idle priority on Linux,
replaced some wxBase dependencies: wxMutex, wxFileExists, wxStandardPaths, wxGetLocalTimeMillis

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@99 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-07-08 16:14:56 +00:00
s_nakamoto
d77eac25b2 version 0.3 release
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@97 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-07-04 06:15:06 +00:00
s_nakamoto
f077bc0f48 reduced max outbound connections from 15 to 8 --version 0.3 rc4
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@96 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-07-02 23:43:29 +00:00
s_nakamoto
06c4716396 version 0.3 rc2
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@95 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-06-26 15:47:45 +00:00
s_nakamoto
8700fae12a build-unix.txt: updated a few version numbers
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@94 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-06-26 00:23:16 +00:00
s_nakamoto
340120853f updated build-unix.txt instructions: sudo apt-get install libboost-all-dev
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@93 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-06-24 16:07:51 +00:00
s_nakamoto
3c3fc50c79 added instructions to build-unix.txt for building wxBase, which is needed to compile bitcoind
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@92 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-06-23 22:51:31 +00:00
s_nakamoto
6344edc36f version 0.3 rc1
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@91 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-06-22 17:59:00 +00:00
s_nakamoto
445520bf38 added new files to setup.nsi, updated version numbers
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@90 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-06-22 16:28:15 +00:00
s_nakamoto
8efd8f7f47 re-enable hiding taskbar button on minimize on linux, though it doesn't work cleanly
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@89 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-06-22 03:45:37 +00:00
s_nakamoto
36bb88e1b9 fix system tray icon on windows
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@88 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-06-21 18:41:34 +00:00
s_nakamoto
161c38ba60 80x80 xpm icon for ubuntu, alignment tweaked to scale nicely to 20x20 and 16x16
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@87 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-06-21 17:11:26 +00:00
s_nakamoto
68b973a913 fixed colors on ubuntu lucid,
enabled -O2 in makefile.unix,
boost removed -mt from their library names in 1.40,
updated bitcoin icon,
hashmeter,
generated and hashmeter log entries
-- version 0.2.13

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@86 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-06-21 01:33:44 +00:00
s_nakamoto
24ba1b64e9 use seed nodes as fallback if IRC fails or with TOR
-- version 0.2.12

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@85 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-06-18 03:14:24 +00:00
s_nakamoto
6a4a35549b German translation by DataWraith
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@84 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-06-16 16:35:34 +00:00
s_nakamoto
e5681bb121 more addr message error checking
-- version 0.2.11

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@83 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-06-15 18:26:32 +00:00
s_nakamoto
bed005b639 revert makefile.unix from -02 back to -00 to fix compile on linux, -02 doesn't really help on linux anyway
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@82 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-06-14 22:34:33 +00:00
s_nakamoto
f93d5f9ffe automatically change displayed address whenever it receives anything,
added help and -? for daemon command line rpc commands,
only relay addr messages to 5 random nodes to save bandwidth,
started setting wtx.fFromMe flag,
trickle out tx inventory messages to protect privacy
 -- version 0.2.10

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@81 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-06-10 23:10:30 +00:00
s_nakamoto
2ca1758832 Dutch translation by Xunie (93% complete)
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@80 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-06-02 22:10:06 +00:00
s_nakamoto
1da44d2e96 Italian translation by Joozero
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@79 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-05-27 14:11:03 +00:00
s_nakamoto
42605ce8bc better prevention of inventory relaying during initial download,
message checksum between nodes with 0.2.9 or higher,
optimization level up from -O0 to -O2,
rpc functions: setlabel, getlabel, getaddressesbylabel, getreceivedbyaddress, getreceivedbylabel, listreceivedbyaddress, listreceivedbylabel
 -- version 0.2.9

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@78 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-05-26 00:05:26 +00:00
s_nakamoto
124baa4ccb build-osx.txt build instructions and makefile.osx from Laszlo
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@77 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-05-25 23:58:27 +00:00
s_nakamoto
2d98de1b3a Mac OS build fixes by laszlo
-- version 0.2.8

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@76 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-05-19 00:26:56 +00:00
s_nakamoto
966cca4bd4 misc
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@75 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-03-05 02:55:09 +00:00
s_nakamoto
2cffa7ce31 fixed runaway memory alloc bug on 64-bit in ParseString found by sirius-m
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@74 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-03-05 01:13:27 +00:00
s_nakamoto
d7d80a74d5 fix unsafe string handling in wxGetTranslation
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@73 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-02-28 15:00:32 +00:00
s_nakamoto
6557910ccf wx/utils.h and wx/clipbrd.h not needed on bitcoind wxbase build
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@72 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-02-26 16:09:43 +00:00
s_nakamoto
c2430126d7 GUI-less build target bitcoind that links to wxBase and shouldn't need GTK,
split init and shutdown from ui.cpp into init.cpp,
support wxUSE_GUI=0
-- version 0.2.7

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@71 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-02-25 21:55:27 +00:00
s_nakamoto
cb420a1dfc run as daemon without GUI,
hooked wxApp::Initialize to ignore gtk-init-check failure if no GUI,
fork to daemonize,
rpc getinfo, getconnectioncount, getbalance, getgenerate, setgenerate,
-- version 0.2.6

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@70 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-02-23 22:01:39 +00:00
s_nakamoto
0184604aaf transaction filter tabs instead of view->show generated
-- version 0.2.5

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@69 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-02-21 21:42:01 +00:00
s_nakamoto
75199de534 Address Book with tabs instead of separate Your Address book,
with live update of default address in main window, 
New... button on main window for creating new receiving address, 
made receiving address labels more visible, 
ask user before paying transaction fee, 
when sending to bitcoin address also use a bitcoin address for the change, 
added some event.Skip() to fix UI glitches 
-- version 0.2.4

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@68 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-02-20 21:59:59 +00:00
s_nakamoto
c6ab3cf6d9 safer wxGetTranslation wrapper
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@67 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-02-17 23:55:43 +00:00
s_nakamoto
e480659765 all builds are now with wxWidgets-2.9.0, we are now using UTF-8,
added support for language translation file locale/<lang>/LC_MESSAGES/bitcoin.mo 
-- version 0.2.2

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@66 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-02-17 17:22:01 +00:00
s_nakamoto
2b63e68bbf fix mingw makefile to use correct wxWidgets include,
this is the last version of makefile and makefile.vc for wxWidgets-2.8

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@65 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-02-15 20:36:55 +00:00
s_nakamoto
5253d1ab77 strip out unfinished product, review and market stuff,
enable _() instead of wxT() in uiproject.fbp so it uses wxGetTranslation for the wxFormBuilder generated part of the UI

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@64 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-02-15 04:03:07 +00:00
s_nakamoto
64a474a49b renamed a few rpc methods
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@63 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-02-14 22:27:13 +00:00
s_nakamoto
c4319e678f Workaround for bug on wxWidgets 2.9.0 Ubuntu 9.10 64-bit where first character of the hidden columns were displayed so status column had three numbers overprinted. Fixed by adding a leading space to the hidden columns. 64-bit compile with wxWidgets 2.9.0 seems to be fully working normally now.
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@62 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-02-14 00:08:27 +00:00
s_nakamoto
c85dfb148a updated build-unix.txt
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@61 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-02-13 02:09:07 +00:00
s_nakamoto
98500d70a8 command line and JSON-RPC first draft, requires Boost 1.35 or higher for boost::asio,
added SetBitcoinAddress and GetBitcoinAddress methods on CScript, 
critsect interlocks around mapAddressBook, 
added some random delays in tx broadcast to improve privacy, 
now compiles with MSVC 8.0

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@60 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-02-12 20:38:44 +00:00
s_nakamoto
fa9dbd6b62 better error message in check_type(), tell the types by name instead of by number
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@59 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-02-10 19:46:04 +00:00
s_nakamoto
75990a46a7 JSON Spirit library from http://www.codeproject.com/KB/recipes/JSON_Spirit.aspx, MIT license
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@58 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-02-10 19:41:22 +00:00
s_nakamoto
c41226d847 revert revision 56, going in different direction with boost::asio and JSON-RPC
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@57 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-02-10 19:33:04 +00:00
sirius-m
082e725b33 Added some basic IPC functionality using wxServer, wxClient and wxConnection.
Added the -blockamount command line option for an example of usage.


git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@56 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-02-04 15:31:46 +00:00
s_nakamoto
53d508072b update fSpent flag on wallet transactions if they're seen spent in case copy of wallet.dat was used elsewhere or restored from backup,
better error dialog box if try to spend already spent coins, 
got rid of unused notebook with only one tab on main dialog, 
nicer looking About dialog, 
resize About dialog better on linux

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@55 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-02-03 22:58:40 +00:00
s_nakamoto
8be979d9ae now compiles on 64-bit Ubuntu Karmic with wxWidgets-2.9.0,
fixes for wxWidgets-2.9.0, 
added superfluous GetEventHandler()'s, 
there's still a bug on wx2.9.0 that the status number is mashed up for some reason otherwise seems to run fine

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@54 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-01-28 21:49:20 +00:00
s_nakamoto
cb0f89646f simplify AddAddress,
readcompactsize limit, 
fixed a 64-bit compile error in serialize.h, 
change status "# blocks" to "# confirmations" and widen the column.

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@53 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2010-01-28 00:31:00 +00:00
s_nakamoto
9a36562347 command line switch -noui
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@52 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-12-17 23:16:27 +00:00
s_nakamoto
312c2c42b6 a few header changes for freebsd from madhatter
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@51 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-12-17 18:15:50 +00:00
s_nakamoto
e2c2648c14 filter out duplicate getblocks and don't relay inv messages during initial block download -- 0.2 rc2
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@49 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-12-14 02:12:01 +00:00
s_nakamoto
adb50ffe32 misc
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@48 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-12-13 02:34:45 +00:00
s_nakamoto
e899779450 restrict file permissions on linux to the user only
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@47 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-12-13 02:13:43 +00:00
s_nakamoto
e39bc50eb4 misc exit code, updated setup.nsi
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@46 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-12-13 00:13:16 +00:00
s_nakamoto
651d335569 misc
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@45 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-12-11 17:19:51 +00:00
s_nakamoto
4ea3f3da1a retry IRC if name in use,
resize to fit ubuntu's giant default font, 
scroll debug.log, 
pause gen during initial block download

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@44 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-12-11 16:49:21 +00:00
s_nakamoto
b075bbf986 misc
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@43 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-12-06 00:38:11 +00:00
s_nakamoto
107d9e288d fix transaction fee bug in CreateTransaction, higher size cutoff for free transactions in GetMinFee
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@42 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-12-06 00:29:09 +00:00
s_nakamoto
52f4cb4859 minor fix to batched initial download in case requester has more than 500 block non-main branch
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@41 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-11-24 21:04:50 +00:00
s_nakamoto
c5c7911dab bugfix Db::open/close and zombie sockets bugs fix double-close of socket handle,
keep databases open,
close db cursors,
initial block download in batches of 500 blocks,
fix misc warnings,
subver linux-test8

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@40 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-11-18 19:19:41 +00:00
s_nakamoto
b349e3dca8 misc compile error
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@39 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-11-14 18:04:08 +00:00
s_nakamoto
70e79525c9 monitor ThreadSocketHandler and terminate and restart if hung, convert _beginthread to CreateThread wrapper, disconnect inactive connections, ping, break up long messages to speed up initial download, better priorities for initiating connections, track how many nodes have requested our blocks and transactions, status #/offline and warning message on unsent blocks, minimize on close as separate option -- linux-test5
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@38 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-11-13 01:23:08 +00:00
s_nakamoto
956468c29a Get local host IP on Linux, Shutdown() a little cleaner -- linux-0.1.6-test1 waypoint
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@37 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-11-08 04:24:52 +00:00
s_nakamoto
b4e235f9f2 ui tweaks, multiple xpm icon sizes
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@36 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-11-07 18:51:41 +00:00
s_nakamoto
8b4cefd324 UI tweaks, use BindListenPort to detect instance already running, setsockopt(SO_REUSEADDR) so can bind during TIME_WAIT after exit and restart
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@35 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-11-07 05:05:03 +00:00
s_nakamoto
8acda009d9 UIThreadCall, ThreadSafeMessageBox
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@34 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-11-06 18:53:26 +00:00
s_nakamoto
300d4608f2 got rid of CheckForShutdown, replaced some thread-unsafe wxWidgets calls, Linux fixes, socket send MSG_NOSIGNAL, bind INADDR_ANY, works reliably on Linux now except if wxMessageBox is used in a thread other than the GUI thread
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@33 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-11-06 05:50:05 +00:00
s_nakamoto
e4c05d3177 unix build merged in, bitmap resources from xpm instead of rc, better addr relay, better selection of addrs by time last seen for faster connect
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@32 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-11-05 04:41:36 +00:00
s_nakamoto
b7362c07ae renamed build.txt to build-msw.txt
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@28 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-11-04 04:58:46 +00:00
s_nakamoto
4ac57f013e move debug.log and db.log to data dir, portable GetDataDir, optimize GetBalance, fix repaint bogdown, -addnode and -? switches
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@25 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-11-01 01:16:51 +00:00
sirius-m
5750932cdf added wx/stdpaths.h
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@24 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-10-31 09:52:24 +00:00
sirius-m
fe9f3d626d Linux alternatives for the Windows headers and PerformanceCounter. Some typedefs and #defines for the Linux build. Fixed GetDataDir.
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@23 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-10-31 09:11:43 +00:00
s_nakamoto
32d490313b make CheckDiskSpace portable
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@22 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-10-30 00:57:05 +00:00
sirius-m
a0c17c03eb setup script removes startup shortcut and runs with highest exec level
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@21 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-10-30 00:45:35 +00:00
s_nakamoto
e8474beb6f better wallet.dat flush, consolidated QueryPerformanceCounter, PRI64d printf portability
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@20 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-10-29 20:10:46 +00:00
s_nakamoto
dc73b326f9 CCriticalSection using wxWidgets instead of Windows OS calls
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@19 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-10-29 05:55:56 +00:00
s_nakamoto
dd519206a6 addr relaying fixes, proxy option and privacy patches, detect connect to self, non-final tx locktime changes, fix hide unconfirmed generated
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@18 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-10-29 02:52:48 +00:00
s_nakamoto
fa2a0338d3 fix display of new generated coins, fix assertion in bitcoinminer
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@17 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-10-25 04:35:01 +00:00
sirius-m
e39dfe8ea6 Removed autorun regkey creation
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@16 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-10-24 16:50:39 +00:00
s_nakamoto
99cef996c7 flush wallet.dat, multi-proc, reorg options, revert to startup folder shortcut
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@15 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-10-21 01:08:05 +00:00
sirius-m
0cc05617d1 Fixed the installer script and made the autostart registry based.
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@14 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-10-04 11:38:29 +00:00
sirius-m
661f878002 Added NSIS installer generation script
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@13 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-10-03 17:02:59 +00:00
sirius-m
429187c6a8 Startup folder shortcut opens the program minimized. Restoring a minimized-to-tray window works correctly.
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@12 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-10-03 11:52:21 +00:00
sirius-m
6d97df0e99 startup shortcut works
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@11 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-10-02 10:14:05 +00:00
sirius-m
dba0fd9b6a tray icon + ask before closing
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@10 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-09-24 04:09:56 +00:00
sirius-m
8dca7864f7 No dll's here
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@8 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-09-16 13:26:04 +00:00
sirius-m
465e1d99f2 Added changelog.txt
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@2 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-08-30 03:50:53 +00:00
sirius-m
e071a3f6c0 First commit
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@1 1a98c847-1fd6-4fd8-948a-caf3550aa51b
2009-08-30 03:46:39 +00:00
130 changed files with 24012 additions and 13874 deletions

3
.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
src/*.exe
src/bitcoin
src/bitcoind

View File

@@ -1,4 +1,4 @@
Copyright (c) 2009-2010 Satoshi Nakamoto
Copyright (c) 2009-2011 Bitcoin Developers
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

1
README Symbolic link
View File

@@ -0,0 +1 @@
README.md

16
README.md Normal file
View File

@@ -0,0 +1,16 @@
Bitcoin integration/staging tree
Development process
===================
Developers work in their own trees, then submit pull requests when they think their feature or bug fix is ready.
If it is a simple/trivial/non-controversial change, then one of the bitcoin development team members simply pulls it.
If it is a more complicated or potentially controversial change, then the patch submitter will be asked to start a discussion (if they haven't already) on the development forums: http://www.bitcoin.org/smf/index.php?board=6.0
The patch will be accepted if there is broad consensus that it is a good thing. Developers should expect to rework and resubmit patches if they don't match the project's coding conventions (see coding.txt) or are controversial.
The master branch is regularly built and tested (by who? need people willing to be quality assurance testers), and periodically pushed to the subversion repo to become the official, stable, released bitcoin.
Feature branches are created when there are major new features being worked on by several people.

View File

@@ -1,114 +0,0 @@
Copyright (c) 2009-2010 Satoshi Nakamoto
Distributed under the MIT/X11 software license, see the accompanying
file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in
the OpenSSL Toolkit (http://www.openssl.org/). This product includes
cryptographic software written by Eric Young (eay@cryptsoft.com).
WINDOWS BUILD NOTES
===================
Compilers Supported
-------------------
MinGW GCC (recommended)
MSVC 6.0 SP6: You'll need Boost version 1.34 because they dropped support
for MSVC 6.0 after that. However, they didn't add Asio until 1.35.
You should still be able to build with MSVC 6.0 by adding Asio to 1.34 by
unpacking boost_asio_*.zip into the boost directory:
http://sourceforge.net/projects/asio/files/asio
MSVC 8.0 (2005) SP1 has been tested. Note: MSVC 7.0 and up have a habit of
linking to runtime DLLs that are not installed on XP by default.
Dependencies
------------
Libraries you need to download separately and build:
default path download
wxWidgets-2.9 \wxwidgets http://www.wxwidgets.org/downloads/
OpenSSL \openssl http://www.openssl.org/source/
Berkeley DB \db http://www.oracle.com/technology/software/products/berkeley-db/index.html
Boost \boost http://www.boost.org/users/download/
Their licenses:
wxWidgets LGPL 2.1 with very liberal exceptions
OpenSSL Old BSD license with the problematic advertising requirement
Berkeley DB New BSD license with additional requirement that linked software must be free open source
Boost MIT-like license
Versions used in this release:
MinGW GCC 3.4.5
wxWidgets 2.9.0
OpenSSL 0.9.8k
Berkeley DB 4.7.25.NC
Boost 1.42.1
Notes
-----
The UI layout is edited with wxFormBuilder. The project file is
uiproject.fbp. It generates uibase.cpp and uibase.h, which define base
classes that do the rote work of constructing all the UI elements.
The release is built with GCC and then "strip bitcoin.exe" to strip the debug
symbols, which reduces the executable size by about 90%.
wxWidgets
---------
cd \wxwidgets\build\msw
make -f makefile.gcc
or
nmake -f makefile.vc
OpenSSL
-------
Bitcoin does not use any encryption. If you want to do a no-everything
build of OpenSSL to exclude encryption routines, a few patches are required.
(instructions for OpenSSL v0.9.8k)
Edit engines\e_gmp.c and engines\e_capi.c and add this #ifndef around
the openssl/rsa.h include:
#ifndef OPENSSL_NO_RSA
#include <openssl/rsa.h>
#endif
Edit ms\mingw32.bat and replace the Configure line's parameters with this
no-everything list. You have to put this in the batch file because batch
files can't take more than nine command line parameters.
perl Configure mingw threads no-rc2 no-rc4 no-rc5 no-idea no-des no-bf no-cast no-aes no-camellia no-seed no-rsa no-dh
Also REM out the following line in ms\mingw32.bat after the mingw32-make
line. The build fails after it's already finished building libeay32, which
is all we care about, but the failure aborts the script before it runs
dllwrap to generate libeay32.dll.
REM if errorlevel 1 goto end
Build
cd \openssl
ms\mingw32.bat
If you want to use it with MSVC, generate the .lib file
lib /machine:i386 /def:ms\libeay32.def /out:out\libeay32.lib
Berkeley DB
-----------
Using MinGW and MSYS:
cd \db\build_unix
sh ../dist/configure --enable-mingw --enable-cxx
make
Boost
-----
download bjam.exe from
http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=72941
cd \boost
bjam toolset=gcc --build-type=complete stage
or
bjam toolset=msvc --build-type=complete stage

48
contrib/gitian.yml Normal file
View File

@@ -0,0 +1,48 @@
---
name: "bitcoin"
suites:
- "lucid"
architectures:
- "i386"
- "amd64"
packages:
- "libdb4.8++-dev"
- "libxxf86vm-dev"
- "libgtk2.0-dev"
- "libboost-all-dev"
- "libssl-dev"
- "git-core"
reference_datetime: "2011-01-30 00:00:00"
remotes:
- "url": "https://github.com/bitcoin/bitcoin.git"
"dir": "bitcoin"
files:
- "wxWidgets-2.9.1.tar.bz2"
- "miniupnpc-1.5.tar.gz"
script: |
INSTDIR="$HOME/install"
export LIBRARY_PATH="$INSTDIR/lib"
#
tar xzf miniupnpc-1.5.tar.gz
cd miniupnpc-1.5
INSTALLPREFIX=$INSTDIR make $MAKEOPTS install
cd ..
#
tar xjf wxWidgets-2.9.1.tar.bz2
cd wxWidgets-2.9.1
./configure --prefix=$INSTDIR --enable-monolithic --disable-shared
perl -i -p -e "s/__TIME__/\"$REFERENCE_TIME\"/;s/__DATE__/\"$REFERENCE_DATE\"/" include/wx/chartype.h
make $MAKEOPTS install
cd ..
#
cd bitcoin
mkdir -p $OUTDIR/src
cp -a . $OUTDIR/src
rm -rf $OUTDIR/src/.git
mv $OUTDIR/src/locale $OUTDIR
cp $OUTDIR/src/doc/README $OUTDIR
cp $OUTDIR/src/COPYING $OUTDIR
cd src
PATH=$INSTDIR/bin:$PATH make -f makefile.unix CXX="g++ -I$INSTDIR/include -L$INSTDIR/lib" $MAKEOPTS bitcoin bitcoind
mkdir -p $OUTDIR/bin/$GBUILD_BITS
install -s bitcoin bitcoind $OUTDIR/bin/$GBUILD_BITS

30
doc/README Normal file
View File

@@ -0,0 +1,30 @@
Bitcoin 0.3.22 BETA
Copyright (c) 2009-2011 Bitcoin Developers
Distributed under the MIT/X11 software license, see the accompanying
file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in
the OpenSSL Toolkit (http://www.openssl.org/). This product includes
cryptographic software written by Eric Young (eay@cryptsoft.com).
Intro
-----
Bitcoin is a free open source peer-to-peer electronic cash system that is
completely decentralized, without the need for a central server or trusted
parties. Users hold the crypto keys to their own money and transact directly
with each other, with the help of a P2P network to check for double-spending.
Setup
-----
Unpack the files into a directory and run:
bin/32/bitcoin (GUI, 32-bit)
bin/32/bitcoind (headless, 32-bit)
bin/64/bitcoin (GUI, 64-bit)
bin/64/bitcoind (headless, 64-bit)
See the documentation at the bitcoin wiki:
https://en.bitcoin.it/wiki/Main_Page
... for help and more information.

34
doc/README_windows.txt Normal file
View File

@@ -0,0 +1,34 @@
Bitcoin 0.3.22 BETA
Copyright (c) 2009-2011 Bitcoin Developers
Distributed under the MIT/X11 software license, see the accompanying
file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in
the OpenSSL Toolkit (http://www.openssl.org/). This product includes
cryptographic software written by Eric Young (eay@cryptsoft.com).
Intro
-----
Bitcoin is a free open source peer-to-peer electronic cash system that is
completely decentralized, without the need for a central server or trusted
parties. Users hold the crypto keys to their own money and transact directly
with each other, with the help of a P2P network to check for double-spending.
Setup
-----
Unpack the files into a directory and run bitcoin.exe.
If you have Microsoft Security Essentials, you need to add bitcoin.exe to its
"Excluded processes" list. Microsoft Security Essentials->Settings tab,
select Excluded processes, press Add, select bitcoin.exe, OK, Save changes.
The software automatically finds other nodes to connect to. You can
enable Universal Plug and Play using a menu entry or set your firewall
to forward port 8333 (TCP) to your computer so you can receive
incoming connections. Bitcoin work without incoming connections,
but allowing incoming connections helps the Bitcoin network.
See the bitcoin wiki at: https://en.bitcoin.it/wiki/Main_Page
for more help and information.

107
doc/build-msw.txt Normal file
View File

@@ -0,0 +1,107 @@
Copyright (c) 2009-2011 Bitcoin Developers
Distributed under the MIT/X11 software license, see the accompanying
file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in
the OpenSSL Toolkit (http://www.openssl.org/). This product includes
cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP
software written by Thomas Bernard.
WINDOWS BUILD NOTES
===================
Compilers Supported
-------------------
MinGW GCC http://tdm-gcc.tdragon.net/
TDM-GCC with gcc 4.5.1 was used to build this release.
MSYS 1.0.11 was also used (sh needed to compile some dependencies)
Candidate releases were built with MSVC 10.0 (2010), but
compiling with Visual C++ caused rendering artifacts when
bitcoin was run.
Dependencies
------------
Libraries you need to download separately and build:
default path download
wxWidgets \wxwidgets-2.9.1-mgw http://www.wxwidgets.org/downloads/
OpenSSL \openssl-1.0.0d-mgw http://www.openssl.org/source/
Berkeley DB \db-4.7.25.NC-mgw http://www.oracle.com/technology/software/products/berkeley-db/index.html
Boost \boost-1.43.0-mgw http://www.boost.org/users/download/
miniupnpc \upnpc-exe-win32-20110215 http://miniupnp.tuxfamily.org/files/
Their licenses:
wxWidgets LGPL 2.1 with very liberal exceptions
OpenSSL Old BSD license with the problematic advertising requirement
Berkeley DB New BSD license with additional requirement that linked software must be free open source
Boost MIT-like license
miniupnpc New (3-clause) BSD license
Versions used in this release:
wxWidgets 2.9.1
OpenSSL 1.0.0d
Berkeley DB 4.7.25.NC
Boost 1.43.0
miniupnpc 1.5-20110215
Notes
-----
The UI layout is edited with wxFormBuilder. The project file is
uiproject.fbp. It generates uibase.cpp and uibase.h, which define base
classes that do the rote work of constructing all the UI elements.
wxWidgets
---------
DOS shell:
cd \wxWidgets-2.9.1-mgw\build\msw
mingw32-make -f makefile.gcc
OpenSSL
-------
MSYS shell:
un-tar sources with MSYS 'tar xfz' to avoid issue with symlinks (OpenSSL ticket 2377)
change 'MAKE' env. variable from 'C:\MinGW32\bin\mingw32-make.exe' to '/c/MinGW32/bin/mingw32-make.exe'
cd /c/openssl-1.0.0d-mgw
./config
make
Berkeley DB
-----------
MSYS shell:
cd /c/db-4.7.25.NC-mgw/build_unix
sh ../dist/configure --enable-mingw --enable-cxx
make
Boost
-----
DOS prompt:
downloaded boost jam 3.1.18
cd \boost-1.43.0-mgw
bjam toolset=gcc --build-type=complete stage
Note:
building with boost 1.45.0 failed because of boost ticket 4614, 4258
builds fine with boost 1.43.0
MiniUPnPc
---------
Building miniupnpc failed on Windows Server 2003, thus it is expected that a binary copy will be used.
See http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=642
UPnP support is optional, make with USE_UPNP= to disable it.
Get upnpc-exe-win32-20110215.zip and unzip it to \upnpc-exe-win32-20110215
Get miniupnpc-1.5.20110215.tar.gz and copy *.h to \upnpc-exe-win32-20110215\miniupnpc
Bitcoin
-------
DOS prompt:
cd \bitcoin\src
mingw32-make bitcoin.exe bitcoind.exe -f makefile.mingw
strip bitcoin.exe
strip bitcoind.exe

View File

@@ -1,9 +1,10 @@
Copyright (c) 2009-2010 Satoshi Nakamoto
Copyright (c) 2010 Laszlo Hanyecz
Distributed under the MIT/X11 software license, see the accompanying
file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in
the OpenSSL Toolkit (http://www.openssl.org/). This product includes
cryptographic software written by Eric Young (eay@cryptsoft.com).
cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP
software written by Thomas Bernard.
Mac OS X build instructions
@@ -58,7 +59,10 @@ cd ~/bitcoin/deps
tar xvjf ~/Downloads/boost_1_42_0.tar.bz2
cd boost_1_42_0
./bootstrap.sh
./bjam architecture=combined address-model=32_64 macosx-version=10.6 macosx-version-min=10.5 link=static runtime-link=static --toolset=darwin --prefix=/Users/macosuser/bitcoin/deps install
./bjam architecture=combined address-model=32_64 macosx-version=10.5 macosx-version-min=10.5 link=static runtime-link=static --toolset=darwin --prefix=/Users/macosuser/bitcoin/deps install
If you're using Snow Leopard, you will need to specify 10.6 as your Mac OS X
version instead of 10.5.
This part takes a while.. use your judgement and fix it if something doesn't
build for some reason.
@@ -89,12 +93,12 @@ tar xvf ~/Downloads/openssl-1.0.0.tar
mv openssl-1.0.0 openssl-1.0.0-x86_64
# build i386 (32 bit intel) binary
cd openssl-1.0.0-i386
./Configure --prefix=/Users/macosuser/bitcoin/deps --openssldir=/Users/macosuser/deps/openssl darwin-i386-cc && make
./Configure --prefix=/Users/macosuser/bitcoin/deps --openssldir=/Users/macosuser/bitcoin/deps/openssl darwin-i386-cc && make
make install # only do this on one of the architectures, to install the headers
cd ..
# build x86_64 (64 bit intel) binary
cd openssl-1.0.0-x86_64
./Configure --prefix=/Users/macosuser/bitcoin/deps --openssldir=/Users/macosuser/deps/openssl darwin64-x86_64-cc && make
./Configure --prefix=/Users/macosuser/bitcoin/deps --openssldir=/Users/macosuser/bitcoin/deps/openssl darwin64-x86_64-cc && make
cd ..
# combine the libs
@@ -108,11 +112,51 @@ file lib/libcrypto.a
output should look like this:
ib/libcrypto.a: Mach-O universal binary with 2 architectures
lib/libcrypto.a: Mach-O universal binary with 2 architectures
lib/libcrypto.a (for architecture i386): current ar archive random library
lib/libcrypto.a (for architecture x86_64): current ar archive random library
miniupnpc
---------
The process for miniupnpc (optional) is similar to that of OpenSSL.
Download from http://miniupnp.tuxfamily.org/files/.
cd ~/bitcoin/deps
tar xvf ~/Downloads/miniupnpc-1.5.tar
mv miniupnpc-1.5 miniupnpc-1.5-x86_64
tar xvf ~/Downloads/miniupnpc-1.5.tar
mv miniupnpc-1.5 miniupnpc-1.5-i386
# build x86_64 (64 bit intel) binary
cd miniupnpc-1.5-x86_64
export CFLAGS="-arch x86_64"
export LDFLAGS="-arch x86_64"
export PREFIX="/Users/macuser/bitcoin/deps"
make && make install
# build i386 (32 bit intel) binary
cd miniupnpc-1.5-i386
export CFLAGS="-arch i386"
export LDFLAGS="-arch i386"
export PREFIX="/Users/macuser/bitcoin/deps"
make
# combine the libs
cd ~/bitcoin/deps
lipo -arch i386 miniupnpc-1.5-i386/libminiupnpc.a -arch x86_64 miniupnpc-1.5-x86_64/libminiupnpc.a -o lib/libminiupnpc.a -create
Verify your binaries
file lib/libminiupnpc.a
output should look like this:
lib/libminiupnpc.a: Mach-O universal binary with 2 architectures
lib/libminiupnpc.a (for architecture i386): current ar archive random library
lib/libminiupnpc.a (for architecture x86_64): current ar archive random library
Berkeley DB
-----------

View File

@@ -3,12 +3,23 @@ Distributed under the MIT/X11 software license, see the accompanying
file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in
the OpenSSL Toolkit (http://www.openssl.org/). This product includes
cryptographic software written by Eric Young (eay@cryptsoft.com).
cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP
software written by Thomas Bernard.
UNIX BUILD NOTES
================
To Build
--------
cd src/
make -f makefile.unix # Bitcoin with wxWidgets GUI
or
make -f makefile.unix bitcoind # Headless bitcoin
Dependencies
------------
sudo apt-get install build-essential
@@ -21,16 +32,25 @@ or Boost 1.37: sudo apt-get install libboost1.37-dev
If using Boost 1.37, append -mt to the boost libraries in the makefile.
We're now using wxWidgets 2.9, which uses UTF-8. Don't try 2.8, it won't work.
Requires wxWidgets 2.9.0 or greater, which uses UTF-8. Don't try 2.8, it
won't work.
You need to download wxWidgets from http://www.wxwidgets.org/downloads/
and build it yourself. See the build instructions and configure parameters
below.
Requires miniupnpc for UPnP port mapping. It can be downloaded from
http://miniupnp.tuxfamily.org/files/. UPnP support is compiled in and
turned off by default. Set USE_UPNP to a different value to control this:
USE_UPNP= no UPnP support, miniupnp not required;
USE_UPNP=0 (the default) UPnP support turned off by default at runtime;
USE_UPNP=1 UPnP support turned on by default at runtime.
Licenses of statically linked libraries:
wxWidgets LGPL 2.1 with very liberal exceptions
Berkeley DB New BSD license with additional requirement that linked software must be free open source
Boost MIT-like license
miniupnpc New (3-clause) BSD license
Versions used in this release:
GCC 4.3.3
@@ -38,6 +58,7 @@ OpenSSL 0.9.8g
wxWidgets 2.9.0
Berkeley DB 4.7.25.NC
Boost 1.37
miniupnpc 1.5
Notes
@@ -57,17 +78,33 @@ tar -xzvf wxWidgets-2.9.0.tar.gz
cd wxWidgets-2.9.0
mkdir buildgtk
cd buildgtk
../configure --with-gtk --enable-debug --disable-shared --enable-monolithic
../configure --with-gtk --enable-debug --disable-shared --enable-monolithic --without-libpng --disable-svg
make
sudo su
make install
ldconfig
miniupnpc
---------
tar -xzvf miniupnpc-1.5.tar.gz
cd miniupnpc-1.5
make
sudo su
make install
Berkeley DB
-----------
You need Berkeley DB 4.7. Don't use 4.8, the database/log0000* files
are incompatible. If you have to build Berkeley DB yourself:
../dist/configure --enable-cxx
make
Boost
-----
If you want to build Boost yourself,
cd /usr/local/boost_1_40_0
su
If you need to build Boost yourself:
sudo su
./bootstrap.sh
./bjam install

41
doc/coding.txt Normal file
View File

@@ -0,0 +1,41 @@
Please be consistent with the existing coding style.
Block style:
bool Function(char* psz, int n)
{
// Comment summarising what this section of code does
for (int i = 0; i < n; i++)
{
// When something fails, return early
if (!Something())
return false;
...
}
// Success return is usually at the end
return true;
}
- ANSI/Allman block style
- 4 space indenting, no tabs
- No extra spaces inside parenthesis; please don't do ( this )
- No space after function names, one space after if, for and while
Variable names begin with the type in lowercase, like nSomeVariable.
Please don't put the first word of the variable name in lowercase like
someVariable.
Common types:
n integer number: short, unsigned short, int, unsigned int,
int64, uint64, sometimes char if used as a number
d double, float
f flag
hash uint256
p pointer or array, one p for each level of indirection
psz pointer to null terminated string
str string object
v vector or similar list objects
map map or multimap
set set or multiset
bn CBigNum

Binary file not shown.

View File

@@ -0,0 +1,975 @@
# This file is distributed under the same license as the Bitcoin package.
# xHire <xhire@mujmalysvet.cz>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-26 21:44+0200\n"
"PO-Revision-Date: 2011-05-26 22:31+0100\n"
"Last-Translator: xHire <xhire@mujmalysvet.cz>\n"
"Language-Team: \n"
"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
"X-Poedit-Basepath: .\n"
"X-Poedit-SearchPath-0: ../../..\n"
#: ../../../src/net.cpp:1503
#, c-format
msgid "Unable to bind to port %d on this computer. Bitcoin is probably already running."
msgstr "Nedaří se mi připojit na port %d na tomhle počítači. Bitcoin už pravděpodobně jednou běží."
#: ../../../src/ui.cpp:204
#, c-format
msgid "This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?"
msgstr "Tahle transakce přesahuje velikostní limit. Pořád ji ale můžeš poslat, pokud za ni zaplatíš poplatek %s, který půjde uzlům, které tvou transakci zpracují, a navíc tak podpoříš síť. Chceš zaplatit poplatek?"
#: ../../../src/ui.cpp:303
msgid "Status"
msgstr "Stav"
#: ../../../src/ui.cpp:304
msgid "Date"
msgstr "Datum"
#: ../../../src/ui.cpp:305
msgid "Description"
msgstr "Popis"
#: ../../../src/ui.cpp:306
msgid "Debit"
msgstr "Výdaje"
#: ../../../src/ui.cpp:307
msgid "Credit"
msgstr "Příjmy"
#: ../../../src/ui.cpp:513
#, c-format
msgid "Open for %d blocks"
msgstr "Otevřeno pro %d bloků"
#: ../../../src/ui.cpp:515
#, c-format
msgid "Open until %s"
msgstr "Otřevřeno dokud %s"
#: ../../../src/ui.cpp:521
#, c-format
msgid "%d/offline?"
msgstr "%d/offline?"
#: ../../../src/ui.cpp:523
#, c-format
msgid "%d/unconfirmed"
msgstr "%d/nepotvrzeno"
#: ../../../src/ui.cpp:525
#, c-format
msgid "%d confirmations"
msgstr "%d potvrzení"
#: ../../../src/ui.cpp:610
msgid "Generated"
msgstr "Vygenerováno"
#: ../../../src/ui.cpp:618
#, c-format
msgid "Generated (%s matures in %d more blocks)"
msgstr "Vygenerováno (%s dozraje po %d blocích)"
#: ../../../src/ui.cpp:622
msgid "Generated - Warning: This block was not received by any other nodes and will probably not be accepted!"
msgstr "Vygenerovaný - Varování: Tehnle blok nebyl obdržen žádným jiným uzlem a pravděpodobně nebude akceptován!"
#: ../../../src/ui.cpp:626
msgid "Generated (not accepted)"
msgstr "Vygenerováno (neakceptováno)"
#: ../../../src/ui.cpp:636
msgid "From: "
msgstr "Od: "
#: ../../../src/ui.cpp:660
msgid "Received with: "
msgstr "Přijato adresou: "
#: ../../../src/ui.cpp:706
msgid "Payment to yourself"
msgstr "Platba pro sebe sama"
#: ../../../src/ui.cpp:740
msgid "To: "
msgstr "Pro: "
#: ../../../src/ui.cpp:1055
msgid " Generating"
msgstr " Generuji"
#: ../../../src/ui.cpp:1057
msgid "(not connected)"
msgstr "(nepřipojen)"
#: ../../../src/ui.cpp:1060
#, c-format
msgid " %d connections %d blocks %d transactions"
msgstr " %d spojení %d bloků %d transakcí"
#: ../../../src/ui.cpp:1165
#: ../../../src/ui.cpp:2529
msgid "New Receiving Address"
msgstr "Nová Bitcoinová adresa"
#: ../../../src/ui.cpp:1166
#: ../../../src/ui.cpp:2530
msgid ""
"You should use a new address for each payment you receive.\n"
"\n"
"Label"
msgstr ""
"Měl bys vždy použít novou adresu pro každou platbu, kterou přijímáš.\n"
"\n"
"Označení"
#: ../../../src/ui.cpp:1235
msgid "<b>Status:</b> "
msgstr "<b>Stav:</b> "
#: ../../../src/ui.cpp:1240
msgid ", has not been successfully broadcast yet"
msgstr ", ještě nebylo rozesláno"
#: ../../../src/ui.cpp:1242
#, c-format
msgid ", broadcast through %d node"
msgstr ", rozesláno přes %d uzel"
#: ../../../src/ui.cpp:1244
#, c-format
msgid ", broadcast through %d nodes"
msgstr ", rozesláno přes %d uzlů"
#: ../../../src/ui.cpp:1248
msgid "<b>Date:</b> "
msgstr "<b>Datum:</b> "
#: ../../../src/ui.cpp:1256
msgid "<b>Source:</b> Generated<br>"
msgstr "<b>Zdroj:</b> Vygenerováno<br>"
#: ../../../src/ui.cpp:1262
#: ../../../src/ui.cpp:1280
msgid "<b>From:</b> "
msgstr "<b>Od:</b> "
#: ../../../src/ui.cpp:1280
msgid "unknown"
msgstr "neznámo"
#: ../../../src/ui.cpp:1281
#: ../../../src/ui.cpp:1305
#: ../../../src/ui.cpp:1364
msgid "<b>To:</b> "
msgstr "<b>Pro:</b> "
#: ../../../src/ui.cpp:1284
msgid " (yours, label: "
msgstr " (tvoje, označení: "
#: ../../../src/ui.cpp:1286
msgid " (yours)"
msgstr " (tvoje)"
#: ../../../src/ui.cpp:1323
#: ../../../src/ui.cpp:1335
#: ../../../src/ui.cpp:1381
#: ../../../src/ui.cpp:1398
msgid "<b>Credit:</b> "
msgstr "<b>Příjem:</b> "
#: ../../../src/ui.cpp:1325
#, c-format
msgid "(%s matures in %d more blocks)"
msgstr "(%s dozraje po %d blocích)"
#: ../../../src/ui.cpp:1327
msgid "(not accepted)"
msgstr "(neakceptováno)"
#: ../../../src/ui.cpp:1372
#: ../../../src/ui.cpp:1380
#: ../../../src/ui.cpp:1395
msgid "<b>Debit:</b> "
msgstr "<b>Výdaj:</b> "
#: ../../../src/ui.cpp:1386
msgid "<b>Transaction fee:</b> "
msgstr "<b>Transakční poplatek:</b> "
#: ../../../src/ui.cpp:1402
msgid "<b>Net amount:</b> "
msgstr "<b>Čistá částka:</b> "
#: ../../../src/ui.cpp:1409
msgid "Message:"
msgstr "Zpráva:"
#: ../../../src/ui.cpp:1411
msgid "Comment:"
msgstr "Komentář:"
#: ../../../src/ui.cpp:1414
msgid "Generated coins must wait 120 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, it will change to \"not accepted\" and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours."
msgstr "Vygenerované mince musí čekat 120 bloků, než mohou být utraceny. Když jsi vygeneroval tenhle blok, tak byl rozposlán do sítě, aby byl přidán do řetězce bloků. Pokud se mu nepodaří dostat se do řetězce, změní se na \"neakceptovaný\" a nebude utratitelný. To se občas může přihodit, pokud jiný uzel vygeneruje blok zhruba ve stejném okamžiku jako ty."
#: ../../../src/ui.cpp:1594
msgid "Cannot write autostart/bitcoin.desktop file"
msgstr "Nemohu zapisovat do souboru autostart/bitcoin.desktop"
#: ../../../src/ui.cpp:1630
msgid "Main"
msgstr "Hlavní"
#: ../../../src/ui.cpp:1638
msgid "&Start Bitcoin on window system startup"
msgstr "&Spustit Bitcoin při startu okenního systému"
#: ../../../src/ui.cpp:1645
msgid "&Minimize on close"
msgstr "&Zavřením pouze skrýt"
#: ../../../src/ui.cpp:1787
#, c-format
msgid "version %s"
msgstr "verze %s"
#: ../../../src/ui.cpp:1899
msgid "Error in amount "
msgstr "Chyba v částce"
#: ../../../src/ui.cpp:1899
#: ../../../src/ui.cpp:1904
#: ../../../src/ui.cpp:1909
#: ../../../src/ui.cpp:1944
#: ../../../src/uibase.cpp:55
msgid "Send Coins"
msgstr "Pošli mince"
#: ../../../src/ui.cpp:1904
msgid "Amount exceeds your balance "
msgstr "Částka překračuje stav účtu"
#: ../../../src/ui.cpp:1909
msgid "Total exceeds your balance when the "
msgstr "Celková částka přesahuje stav tvého účtu, když "
#: ../../../src/ui.cpp:1909
msgid " transaction fee is included "
msgstr " transakční poplatek je zahrnut"
#: ../../../src/ui.cpp:1927
msgid "Payment sent "
msgstr "Platba odeslána"
#: ../../../src/ui.cpp:1927
#: ../../../src/ui.cpp:1932
#: ../../../src/ui.cpp:2076
#: ../../../src/ui.cpp:2229
#: ../../../src/main.cpp:3997
msgid "Sending..."
msgstr "Posílám..."
#: ../../../src/ui.cpp:1944
msgid "Invalid address "
msgstr "Neplatná adresa"
#: ../../../src/ui.cpp:1997
#, c-format
msgid "Sending %s to %s"
msgstr "Posílám %s %s"
#: ../../../src/ui.cpp:2070
#: ../../../src/ui.cpp:2103
msgid "CANCELLED"
msgstr "ZRUŠENO"
#: ../../../src/ui.cpp:2074
msgid "Cancelled"
msgstr "Zrušeno"
#: ../../../src/ui.cpp:2076
msgid "Transfer cancelled "
msgstr "Převod zrušen"
#: ../../../src/ui.cpp:2129
msgid "Error: "
msgstr "Chyba: "
#: ../../../src/ui.cpp:2143
#: ../../../src/ui.cpp:2214
#: ../../../src/main.cpp:4016
msgid "Insufficient funds"
msgstr "Nedostatek peněz"
#: ../../../src/ui.cpp:2148
msgid "Connecting..."
msgstr "Připojuji..."
#: ../../../src/ui.cpp:2153
msgid "Unable to connect"
msgstr "Nemohu se připojit"
#: ../../../src/ui.cpp:2158
msgid "Requesting public key..."
msgstr "Požaduji veřejný klíč..."
#: ../../../src/ui.cpp:2170
msgid "Received public key..."
msgstr "Přijat veřejný klíč..."
#: ../../../src/ui.cpp:2184
msgid "Recipient is not accepting transactions sent by IP address"
msgstr "Příjemce neakceptuje transakce poslané IP adresou"
#: ../../../src/ui.cpp:2186
msgid "Transfer was not accepted"
msgstr "Převod nebyl akceptován"
#: ../../../src/ui.cpp:2195
msgid "Invalid response received"
msgstr "Přišla neplatná odpověď"
#: ../../../src/ui.cpp:2210
msgid "Creating transaction..."
msgstr "Vytvářím transakci..."
#: ../../../src/ui.cpp:2222
#, c-format
msgid "This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds"
msgstr "Tato transakce vyžaduje transakční poplatek nejméně %s kvůli svému objemu, komplexnosti nebo utrácení nedávno přijaté hotovosti"
#: ../../../src/ui.cpp:2224
msgid "Transaction creation failed"
msgstr "Vytvoření transakce selhalo"
#: ../../../src/ui.cpp:2231
msgid "Transaction aborted"
msgstr "Transakce zrušena"
#: ../../../src/ui.cpp:2239
msgid "Lost connection, transaction cancelled"
msgstr "Spojení se ztratilo, takže transakce byla zrušena"
#: ../../../src/ui.cpp:2255
msgid "Sending payment..."
msgstr "Posílám platbu..."
#: ../../../src/ui.cpp:2261
msgid "The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."
msgstr "Transakce byla odmítnuta. Tohle může nastat, pokud nějaké mince z tvé peněženky už jednou byly utraceny, například pokud používáš kopii souboru wallet.dat a mince byly utraceny v druhé kopii, ale nebyly označeny jako utracené v této."
#: ../../../src/ui.cpp:2270
msgid "Waiting for confirmation..."
msgstr "Čekám na potvrzení..."
#: ../../../src/ui.cpp:2288
msgid ""
"The payment was sent, but the recipient was unable to verify it.\n"
"The transaction is recorded and will credit to the recipient,\n"
"but the comment information will be blank."
msgstr ""
"Platba byla poslána, ale příjemce není schopen ji ověřit.\n"
"Transakce je zaznamenána a bude připsána příjemci,\n"
"ale poznámka u platby bude prázdná."
#: ../../../src/ui.cpp:2297
msgid "Payment was sent, but an invalid response was received"
msgstr "Platba byla odeslána, ale přišla neplatná odpověď"
#: ../../../src/ui.cpp:2303
msgid "Payment completed"
msgstr "Platba je kompletní"
#: ../../../src/ui.cpp:2334
#: ../../../src/ui.cpp:2480
#: ../../../src/ui.cpp:2517
msgid "Name"
msgstr "Jméno"
#: ../../../src/ui.cpp:2335
#: ../../../src/ui.cpp:2480
#: ../../../src/ui.cpp:2517
msgid "Address"
msgstr "Adresa"
#: ../../../src/ui.cpp:2337
#: ../../../src/ui.cpp:2492
msgid "Label"
msgstr "Označení"
#: ../../../src/ui.cpp:2338
#: ../../../src/uibase.cpp:837
msgid "Bitcoin Address"
msgstr "Bitcoinová adresa"
#: ../../../src/ui.cpp:2462
msgid "This is one of your own addresses for receiving payments and cannot be entered in the address book. "
msgstr "Tohle je jedna z tvých vlastních adres pro příjem plateb a nemůže být zadána do adresáře."
#: ../../../src/ui.cpp:2480
#: ../../../src/ui.cpp:2486
msgid "Edit Address"
msgstr "Upravit adresu"
#: ../../../src/ui.cpp:2492
msgid "Edit Address Label"
msgstr "Upravit označení adresy"
#: ../../../src/ui.cpp:2517
#: ../../../src/ui.cpp:2523
msgid "Add Address"
msgstr "Přidat adresu"
#: ../../../src/ui.cpp:2600
msgid "Bitcoin"
msgstr "Bitcoin"
#: ../../../src/ui.cpp:2602
msgid "Bitcoin - Generating"
msgstr "Bitcoin - Generování"
#: ../../../src/ui.cpp:2604
msgid "Bitcoin - (not connected)"
msgstr "Bitcoin - (nepřipojen)"
#: ../../../src/ui.cpp:2683
msgid "&Open Bitcoin"
msgstr "&Otevřít Bitcoin"
#: ../../../src/ui.cpp:2684
msgid "&Send Bitcoins"
msgstr "&Poslat Bitcoiny"
#: ../../../src/ui.cpp:2685
msgid "O&ptions..."
msgstr "&Možnosti..."
#: ../../../src/ui.cpp:2688
#: ../../../src/uibase.cpp:25
msgid "E&xit"
msgstr "&Konec"
#: ../../../src/ui.cpp:2904
msgid "Program has crashed and will terminate. "
msgstr "Program havaroval a bude ukončen."
#: ../../../src/main.cpp:1866
msgid "Warning: Disk space is low "
msgstr "Upozornění: Na disku je málo místa"
#: ../../../src/main.cpp:3990
#, c-format
msgid "Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds "
msgstr "Chyba: Tato transakce vyžaduje transakční poplatek nejméně %s kvůli svému objemu, komplexnosti nebo utrácení nedávno přijaté hotovosti"
#: ../../../src/main.cpp:3992
msgid "Error: Transaction creation failed "
msgstr "Chyba: Vytvoření transakce selhalo"
#: ../../../src/main.cpp:4001
msgid "Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."
msgstr "Chyba: Transakce byla odmítnuta. Tohle může nastat, pokud nějaké mince z tvé peněženky už jednou byly utraceny, například pokud používáš kopii souboru wallet.dat a mince byly utraceny v druhé kopii, ale nebyly označeny jako utracené v této."
#: ../../../src/main.cpp:4014
msgid "Invalid amount"
msgstr "Neplatná částka"
#: ../../../src/main.cpp:4021
msgid "Invalid bitcoin address"
msgstr "Neplatná Bitcoinová adresa"
#: ../../../src/rpc.cpp:1802
#: ../../../src/rpc.cpp:1804
#, c-format
msgid "To use the %s option"
msgstr "Pro použití volby %s"
#: ../../../src/rpc.cpp:1806
#, c-format
msgid ""
"Warning: %s, you must set rpcpassword=<password>\n"
"in the configuration file: %s\n"
"If the file does not exist, create it with owner-readable-only file permissions.\n"
msgstr ""
"Varování: %s, musíš nastavit rpcpassword=<heslo>\n"
"v konfiguračním souboru: %s\n"
"Pokud tenhle soubor neexistuje, vytvoř ho s oprávněním pro čtení pouze pro vlastníka.\n"
#: ../../../src/rpc.cpp:1974
#, c-format
msgid ""
"You must set rpcpassword=<password> in the configuration file:\n"
"%s\n"
"If the file does not exist, create it with owner-readable-only file permissions."
msgstr ""
"Musíš nastavit rpcpassword=<heslo> v konfiguračním souboru:\n"
"%s\n"
"Pokud tenhle soubor neexistuje, vytvoř ho s oprávněním pro čtení pouze pro vlastníka."
#: ../../../src/util.cpp:866
msgid "Warning: Please check that your computer's date and time are correct. If your clock is wrong Bitcoin will not work properly."
msgstr "Varování: Prosím zkontroluj, že datum a čas jsou na tvém počítači správně nastaveny. Pokud jsou nastaveny špatně, Bitcoin nebude fungovat správně."
#: ../../../src/util.cpp:899
msgid "-beta"
msgstr "-beta"
#: ../../../src/uibase.cpp:28
msgid "&File"
msgstr "&Soubor"
#: ../../../src/uibase.cpp:32
msgid "&Your Receiving Addresses..."
msgstr "Tvá Bitcoinová &adresa..."
#: ../../../src/uibase.cpp:36
msgid "&Options..."
msgstr "M&ožnosti"
#: ../../../src/uibase.cpp:39
msgid "&Settings"
msgstr "Nas&tavení"
#: ../../../src/uibase.cpp:43
msgid "&About..."
msgstr "&O programu"
#: ../../../src/uibase.cpp:46
msgid "&Help"
msgstr "&Nápověda"
#: ../../../src/uibase.cpp:56
msgid "Address Book"
msgstr "Adresář"
#: ../../../src/uibase.cpp:69
msgid "Your Bitcoin Address:"
msgstr "Tvá Bitcoinová adresa:"
#: ../../../src/uibase.cpp:76
msgid " &New... "
msgstr " &Nová..."
#: ../../../src/uibase.cpp:79
#: ../../../src/uibase.cpp:780
#: ../../../src/uibase.cpp:883
msgid " &Copy to Clipboard "
msgstr " &Kopírovat do schránky"
#: ../../../src/uibase.cpp:93
msgid "Balance:"
msgstr "Stav účtu:"
#: ../../../src/uibase.cpp:109
msgid " All"
msgstr " Vše"
#: ../../../src/uibase.cpp:109
msgid " Sent"
msgstr " Odeslané"
#: ../../../src/uibase.cpp:109
msgid " Received"
msgstr " Přijaté"
#: ../../../src/uibase.cpp:109
msgid " In Progress"
msgstr " Pracuje se na tom"
#: ../../../src/uibase.cpp:130
msgid "All Transactions"
msgstr "Všechny transakce"
#: ../../../src/uibase.cpp:141
msgid "Sent/Received"
msgstr "Odeslané/Přijaté"
#: ../../../src/uibase.cpp:152
msgid "Sent"
msgstr "Odeslané"
#: ../../../src/uibase.cpp:163
msgid "Received"
msgstr "Přijaté"
#: ../../../src/uibase.cpp:302
#: ../../../src/uibase.cpp:443
#: ../../../src/uibase.cpp:542
#: ../../../src/uibase.cpp:722
#: ../../../src/uibase.cpp:783
#: ../../../src/uibase.cpp:892
#: ../../../src/uibase.cpp:981
msgid "OK"
msgstr "&Budiž"
#: ../../../src/uibase.cpp:345
msgid "&Start Bitcoin on system startup"
msgstr "&Spustit Bitcoin při startu systému"
#: ../../../src/uibase.cpp:348
msgid "&Minimize to the tray instead of the taskbar"
msgstr "&Minimalizovávat do ikony v panelu"
#: ../../../src/uibase.cpp:351
msgid "Map port using &UPnP"
msgstr "Namapovat port přes &UPnP"
#: ../../../src/uibase.cpp:354
msgid "M&inimize to the tray on close"
msgstr "Zavřením &minimalizovat do ikony"
#: ../../../src/uibase.cpp:360
msgid "&Connect through socks4 proxy: "
msgstr "&Připojit přes socks4 proxy:"
#: ../../../src/uibase.cpp:371
msgid "Proxy &IP:"
msgstr "&IP adresa proxy:"
#: ../../../src/uibase.cpp:379
msgid " &Port:"
msgstr " &Port:"
#: ../../../src/uibase.cpp:392
msgid "Optional transaction fee per KB that helps make sure your transactions are processed quickly. Most transactions are 1KB. Fee 0.01 recommended."
msgstr "Dobrovolný transakční poplatek za každý započatý KB napomáhá tomu, aby tvé transakce byly rychle zpracovány. Většina transakcí má do 1 KB. Doporučená výše poplatku je 0.01."
#: ../../../src/uibase.cpp:399
msgid "Pay transaction fee:"
msgstr "Výše transakčního poplatku:"
#: ../../../src/uibase.cpp:420
msgid "// [don't translate] Test panel 2 for future expansion"
msgstr ""
#: ../../../src/uibase.cpp:424
msgid "// [don't translate] Let's not start multiple pages until the first page is filled up"
msgstr ""
#: ../../../src/uibase.cpp:446
#: ../../../src/uibase.cpp:668
#: ../../../src/uibase.cpp:727
#: ../../../src/uibase.cpp:786
#: ../../../src/uibase.cpp:895
#: ../../../src/uibase.cpp:984
msgid "Cancel"
msgstr "&Zrušit"
#: ../../../src/uibase.cpp:449
msgid "&Apply"
msgstr "&Použít"
#: ../../../src/uibase.cpp:508
msgid "Bitcoin "
msgstr "Bitcoin"
#: ../../../src/uibase.cpp:514
msgid "version"
msgstr "verze"
#: ../../../src/uibase.cpp:525
msgid ""
"Copyright (c) 2009-2011 Bitcoin Developers\n"
"\n"
"This is experimental software.\n"
"\n"
"Distributed under the MIT/X11 software license, see the accompanying file \n"
"license.txt or http://www.opensource.org/licenses/mit-license.php.\n"
"\n"
"This product includes software developed by the OpenSSL Project for use in the \n"
"OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
msgstr ""
"Copyright (c) 2009-2011 Vývojáři Bitcoinu\n"
"\n"
"Tohle je experimentální program.\n"
"\n"
"Šířen pod licencí MIT/X11, viz přiložený soubor license.txt nebo \n"
"http://www.opensource.org/licenses/mit-license.php.\n"
"\n"
"Tento produkt zahrnuje programy vyvinuté OpenSSL Projektem pro použití \n"
"v OpenSSL Toolkitu (http://www.openssl.org/) a kryptografický program od \n"
"Erika Younga (eay@cryptsoft.com) a program UPnP od Thomase Bernarda."
#: ../../../src/uibase.cpp:581
msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
msgstr "Vlož Bitcoinovou adresu (např. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
#: ../../../src/uibase.cpp:595
msgid "Pay &To:"
msgstr "&Komu:"
#: ../../../src/uibase.cpp:610
msgid "&Paste"
msgstr "&Vložit"
#: ../../../src/uibase.cpp:613
msgid " Address &Book..."
msgstr " &Adresář..."
#: ../../../src/uibase.cpp:620
msgid "&Amount:"
msgstr "&Částka"
#: ../../../src/uibase.cpp:630
msgid "T&ransfer:"
msgstr "&Převod:"
#: ../../../src/uibase.cpp:636
msgid " Standard"
msgstr " Standard"
#: ../../../src/uibase.cpp:663
msgid "&Send"
msgstr "&Poslat"
#: ../../../src/uibase.cpp:711
msgid ""
"\n"
"\n"
"Connecting..."
msgstr ""
"\n"
"\n"
"Připojuji..."
#: ../../../src/uibase.cpp:761
msgid "These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you. The highlighted address is displayed in the main window."
msgstr "Tohle jsou tvé Bitcoinové adresy na příjem plateb. Asi budeš chtít dát jinou adresu každému odesílateli, abys věděl, kdo ti kolik platil. Označená adresa bude zobrazena v hlavním okně."
#: ../../../src/uibase.cpp:774
#: ../../../src/uibase.cpp:886
msgid "&Edit..."
msgstr "&Upravit..."
#: ../../../src/uibase.cpp:777
#: ../../../src/uibase.cpp:889
msgid " &New Address... "
msgstr " &Nová adresa..."
#: ../../../src/uibase.cpp:849
msgid "Sending"
msgstr "Cizí adresy (pro odesílání)"
#: ../../../src/uibase.cpp:857
msgid "These are your Bitcoin addresses for receiving payments. You can give a different one to each sender to keep track of who is paying you. The highlighted address will be displayed in the main window."
msgstr "Tohle jsou tvé Bitcoinové adresy na příjem plateb. Můžeš dát jinou adresu každému odesílateli, abys věděl, kdo ti kolik platil. Označená adresa bude zobrazena v hlavním okně."
#: ../../../src/uibase.cpp:870
msgid "Receiving"
msgstr "Tvoje adresy (pro příjem)"
#: ../../../src/uibase.cpp:880
msgid "&Delete"
msgstr "&Smazat"
#: ../../../src/init.cpp:140
msgid " beta"
msgstr " beta"
#: ../../../src/init.cpp:142
msgid "Bitcoin version"
msgstr "Bitcoin verze"
#: ../../../src/init.cpp:143
msgid "Usage:"
msgstr "Užití:"
#: ../../../src/init.cpp:145
msgid "Send command to -server or bitcoind\n"
msgstr "Poslat příkaz pro -server nebo bitcoind\n"
#: ../../../src/init.cpp:146
msgid "List commands\n"
msgstr "Výpis příkazů\n"
#: ../../../src/init.cpp:147
msgid "Get help for a command\n"
msgstr "Získat nápovědu pro příkaz\n"
#: ../../../src/init.cpp:148
msgid "Options:\n"
msgstr "Možnosti:\n"
#: ../../../src/init.cpp:149
msgid "Specify configuration file (default: bitcoin.conf)\n"
msgstr "Konfigurační soubor (výchozí: bitcoin.conf)\n"
#: ../../../src/init.cpp:150
msgid "Specify pid file (default: bitcoind.pid)\n"
msgstr "PID soubor (výchozí: bitcoind.pid)\n"
#: ../../../src/init.cpp:151
msgid "Generate coins\n"
msgstr "Generovat mince\n"
#: ../../../src/init.cpp:152
msgid "Don't generate coins\n"
msgstr "Negenerovat mince\n"
#: ../../../src/init.cpp:153
msgid "Start minimized\n"
msgstr "Startovat minimalizovaně\n"
#: ../../../src/init.cpp:154
msgid "Specify data directory\n"
msgstr "Adresář pro data\n"
#: ../../../src/init.cpp:155
msgid "Connect through socks4 proxy\n"
msgstr "Připojovat se skrz socks4 proxy\n"
#: ../../../src/init.cpp:156
msgid "Allow DNS lookups for addnode and connect\n"
msgstr "Povolit DNS dotazy pro addnode (přidání uzlu) a connect (připojení)\n"
#: ../../../src/init.cpp:157
msgid "Add a node to connect to\n"
msgstr "Přidat uzel, ke kterému se připojit\n"
#: ../../../src/init.cpp:158
msgid "Connect only to the specified node\n"
msgstr "Připojovat se pouze k udanému uzlu\n"
#: ../../../src/init.cpp:159
msgid "Don't accept connections from outside\n"
msgstr "Nepřijímat připojení zvenčí\n"
#: ../../../src/init.cpp:162
msgid "Don't attempt to use UPnP to map the listening port\n"
msgstr "Nesnažit se použít UPnP k namapování naslouchacího portu\n"
#: ../../../src/init.cpp:164
msgid "Attempt to use UPnP to map the listening port\n"
msgstr "Snažit se použít UPnP k namapování naslouchacího portu\n"
#: ../../../src/init.cpp:167
msgid "Fee per KB to add to transactions you send\n"
msgstr "Poplatek za KB, který se přidá ke každé odeslané transakci\n"
#: ../../../src/init.cpp:169
msgid "Accept command line and JSON-RPC commands\n"
msgstr "Akceptovat příkazy z příkazové řádky a přes JSON-RPC\n"
#: ../../../src/init.cpp:172
msgid "Run in the background as a daemon and accept commands\n"
msgstr "Běžet na pozadí jako démon a akceptovat příkazy\n"
#: ../../../src/init.cpp:174
msgid "Use the test network\n"
msgstr "Použít testovací síť\n"
#: ../../../src/init.cpp:175
msgid "Username for JSON-RPC connections\n"
msgstr "Uživatelské jméno pro JSON-RPC spojení\n"
#: ../../../src/init.cpp:176
msgid "Password for JSON-RPC connections\n"
msgstr "Heslo pro JSON-RPC spojení\n"
#: ../../../src/init.cpp:177
msgid "Listen for JSON-RPC connections on <port> (default: 8332)\n"
msgstr "Čekat na JSON-RPC spojení na <portu> (výchozí: 8332)\n"
#: ../../../src/init.cpp:178
msgid "Allow JSON-RPC connections from specified IP address\n"
msgstr "Povolit JSON-RPC spojení ze specifikované IP adresy\n"
#: ../../../src/init.cpp:179
msgid "Send commands to node running on <ip> (default: 127.0.0.1)\n"
msgstr "Posílat příkazy uzlu běžícím na <ip> (výchozí: 127.0.0.1)\n"
#: ../../../src/init.cpp:180
msgid "Set key pool size to <n> (default: 100)\n"
msgstr "Nastavit zásobník klíčů na velikost <n> (výchozí: 100)\n"
#: ../../../src/init.cpp:181
msgid "Rescan the block chain for missing wallet transactions\n"
msgstr "Přeskenovat řetězec bloků na chybějící transakce peněženky\n"
#: ../../../src/init.cpp:185
msgid ""
"\n"
"SSL options: (see the Bitcoin Wiki for SSL setup instructions)\n"
msgstr ""
"\n"
"Možnosti SSL: (viz instrukce nastavení SSL v Bitcoin Wiki)\n"
#: ../../../src/init.cpp:186
msgid "Use OpenSSL (https) for JSON-RPC connections\n"
msgstr "Použít OpenSSL (https) pro JSON-RPC spojení\n"
#: ../../../src/init.cpp:187
msgid "Server certificate file (default: server.cert)\n"
msgstr "Soubor se serverovým certifikátem (výchozí: server.cert)\n"
#: ../../../src/init.cpp:188
msgid "Server private key (default: server.pem)\n"
msgstr "Soubor se serverovým soukromým klíčem (výchozí: server.pem)\n"
#: ../../../src/init.cpp:189
msgid "Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
msgstr "Akceptovatelné šifry (výchozí: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
#: ../../../src/init.cpp:193
msgid "This help message\n"
msgstr "Tato nápověda\n"
#: ../../../src/init.cpp:330
#, c-format
msgid "Cannot obtain a lock on data directory %s. Bitcoin is probably already running."
msgstr "Nedaří se mi získat zámek na datový adresář %s. Bitcoin pravděpodobně už jednou běží."
#: ../../../src/init.cpp:356
msgid "Error loading addr.dat \n"
msgstr "Chyba při načítání addr.dat \n"
#: ../../../src/init.cpp:362
msgid "Error loading blkindex.dat \n"
msgstr "Chyba při načítání blkindex.dat \n"
#: ../../../src/init.cpp:369
msgid "Error loading wallet.dat \n"
msgstr "Chyba při načítání wallet.dat \n"
#: ../../../src/init.cpp:449
msgid "Invalid -proxy address"
msgstr "Neplatná -proxy adresa"
#: ../../../src/init.cpp:472
msgid "Invalid amount for -paytxfee=<amount>"
msgstr "Neplatná částka pro -paytxfee=<částka>"
#: ../../../src/init.cpp:476
msgid "Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction."
msgstr "Varování: -paytxfee je nastaveno velmi vysoko. Toto je transakční poplatek, který zaplatíš za každou poslanou transakci."
#: ../../../src/uibase.h:147
msgid "Transaction Details"
msgstr "Detaily transakce"
#: ../../../src/uibase.h:199
msgid "Options"
msgstr "Možnosti"
#: ../../../src/uibase.h:228
msgid "About Bitcoin"
msgstr "O Bitcoinu"
#: ../../../src/uibase.h:337
msgid "Your Bitcoin Addresses"
msgstr "Tvá Bitcoinová adresa"

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -210,8 +210,8 @@ msgid "From: "
msgstr "De: "
#: ../../../ui.cpp:634
msgid "From: unknown, Received with: "
msgstr "De: Inconnu, reçu depuis: "
msgid "Received with: "
msgstr "Reçu depuis: "
#: ../../../ui.cpp:676
msgid "Payment to yourself"
@@ -351,13 +351,21 @@ msgstr "&Réduire à la fermeture"
#: ../../../ui.cpp:1610
#, c-format
msgid "version %d.%d.%d beta"
msgstr "version %d.%d.%d beta"
msgid "version %s%s BETA"
msgstr "version %s%s BETA"
#: ../../../ui.cpp:1696
msgid "Will appear as \"From: Unknown\""
msgstr "Apparaîtra ainsi \"De: Inconnu\""
#: ../../../ui.cpp:1681
msgid "n/a"
msgstr "Inconnu"
#: ../../../ui.cpp:1681
msgid "Unknown"
msgstr "Inconnu"
#: ../../../ui.cpp:1697
msgid "Can't include a message when sending to a Bitcoin address"
msgstr "Impossible d'inclure un message lors d'un envoi à une adresse Bitcoin"
@@ -551,11 +559,6 @@ msgstr "&Ouvrir Bitcoin"
msgid "O&ptions..."
msgstr "O&ptions..."
#: ../../../ui.cpp:2521
#: ../../../uibase.cpp:32
msgid "&Generate Coins"
msgstr "&Générer des pièces"
#: ../../../ui.cpp:2524
#: ../../../uibase.cpp:25
msgid "E&xit"
@@ -722,7 +725,7 @@ msgstr "version"
#: ../../../uibase.cpp:557
msgid ""
"Copyright (c) 2009-2010 Satoshi Nakamoto.\n"
"Copyright (c) 2009-2010 Bitcoin Developers\n"
"\n"
"This is experimental software.\n"
"\n"
@@ -731,9 +734,9 @@ msgid ""
"\n"
"This product includes software developed by the OpenSSL Project for use in the \n"
"OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
"Eric Young (eay@cryptsoft.com)."
"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
msgstr ""
"Copyright (c) 2009-2010 Satoshi Nakamoto.\n"
"Copyright (c) 2009-2010 Bitcoin Developers\n"
"\n"
"Ceci est un logiciel expérimental.\n"
"\n"
@@ -742,7 +745,7 @@ msgstr ""
"\n"
"Ce produit comprend des composants logiciels développés pour le Projet OpenSSL \n"
"OpenSSL Toolkit (http://www.openssl.org/) ainsi que des composants cryptographiques \n"
"écrits par Eric Young (eay@cryptsoft.com)."
"écrits par Eric Young (eay@cryptsoft.com) et des logiciels UPnP écrits par Thomas Bernard.."
#: ../../../uibase.cpp:613
msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJED9L) or IP address (e.g. 123.45.6.7)"

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
put bitcoin.po and bitcoin.mo files at:
locale/<langcode>/LC_MESSAGES/bitcoin.mo and .po
.po is the sourcefile
.mo is the compiled translation
put bitcoin.po and bitcoin.mo files at:
locale/<langcode>/LC_MESSAGES/bitcoin.mo and .po
.po is the sourcefile
.mo is the compiled translation

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -1,77 +0,0 @@
# Copyright (c) 2009-2010 Satoshi Nakamoto
# Distributed under the MIT/X11 software license, see the accompanying
# file license.txt or http://www.opensource.org/licenses/mit-license.php.
INCLUDEPATHS= \
-I"/boost" \
-I"/db/build_unix" \
-I"/openssl/include" \
-I"/wxwidgets/lib/gcc_lib/mswud" \
-I"/wxwidgets/include"
LIBPATHS= \
-L"/boost/stage/lib" \
-L"/db/build_unix" \
-L"/openssl/out" \
-L"/wxwidgets/lib/gcc_lib"
WXLIBS= \
-l wxmsw29ud_html -l wxmsw29ud_core -l wxmsw29ud_adv -l wxbase29ud -l wxtiffd -l wxjpegd -l wxpngd -l wxzlibd
LIBS= \
-l libboost_system-mgw34-mt-d \
-l libboost_filesystem-mgw34-mt-d \
-l libboost_program_options-mgw34-mt-d \
-l libboost_thread-mgw34-mt-d \
-l db_cxx \
-l eay32 \
-l kernel32 -l user32 -l gdi32 -l comdlg32 -l winspool -l winmm -l shell32 -l comctl32 -l ole32 -l oleaut32 -l uuid -l rpcrt4 -l advapi32 -l ws2_32 -l shlwapi
DEFS=-DWIN32 -D__WXMSW__ -D_WINDOWS -DNOPCH
DEBUGFLAGS=-g -D__WXDEBUG__
CFLAGS=-mthreads -O2 -w -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h \
script.h db.h net.h irc.h main.h rpc.h uibase.h ui.h noui.h init.h
OBJS= \
obj/util.o \
obj/script.o \
obj/db.o \
obj/net.o \
obj/irc.o \
obj/main.o \
obj/rpc.o \
obj/init.o \
cryptopp/obj/sha.o \
cryptopp/obj/cpu.o
all: bitcoin.exe
obj/%.o: %.cpp $(HEADERS)
g++ -c $(CFLAGS) -DGUI -o $@ $<
cryptopp/obj/%.o: cryptopp/%.cpp
g++ -c $(CFLAGS) -O3 -DCRYPTOPP_X86_ASM_AVAILABLE -DCRYPTOPP_DISABLE_SSE2 -o $@ $<
obj/ui_res.o: ui.rc rc/bitcoin.ico rc/check.ico rc/send16.bmp rc/send16mask.bmp rc/send16masknoshadow.bmp rc/send20.bmp rc/send20mask.bmp rc/addressbook16.bmp rc/addressbook16mask.bmp rc/addressbook20.bmp rc/addressbook20mask.bmp
windres $(DEFS) $(INCLUDEPATHS) -o $@ -i $<
bitcoin.exe: $(OBJS) obj/ui.o obj/uibase.o obj/ui_res.o
g++ $(CFLAGS) -mwindows -Wl,--subsystem,windows -o $@ $(LIBPATHS) $^ $(WXLIBS) $(LIBS)
obj/nogui/%.o: %.cpp $(HEADERS)
g++ -c $(CFLAGS) -o $@ $<
bitcoind.exe: $(OBJS:obj/%=obj/nogui/%) obj/ui_res.o
g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS)
clean:
-del /Q obj\*
-del /Q obj\nogui\*
-del /Q cryptopp\obj\*
-del /Q headers.h.gch

34
noui.h
View File

@@ -1,34 +0,0 @@
// Copyright (c) 2010 Satoshi Nakamoto
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
inline int MyMessageBox(const string& message, const string& caption="Message", int style=4, void* parent=NULL, int x=-1, int y=-1)
{
printf("%s: %s\n", caption.c_str(), message.c_str());
fprintf(stderr, "%s: %s\n", caption.c_str(), message.c_str());
return 4;
}
#define wxMessageBox MyMessageBox
inline int ThreadSafeMessageBox(const string& message, const string& caption, int style, void* parent, int x, int y)
{
return MyMessageBox(message, caption, style, parent, x, y);
}
inline bool ThreadSafeAskFee(int64 nFeeRequired, const string& strCaption, void* parent)
{
return true;
}
inline void CalledSetStatusBar(const string& strText, int nField)
{
}
inline void UIThreadCall(boost::function0<void> fn)
{
}
inline void MainFrameRepaint()
{
}

1174
rpc.cpp

File diff suppressed because it is too large Load Diff

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 126 B

After

Width:  |  Height:  |  Size: 126 B

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 142 B

After

Width:  |  Height:  |  Size: 142 B

View File

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

View File

Before

Width:  |  Height:  |  Size: 766 B

After

Width:  |  Height:  |  Size: 766 B

View File

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 126 B

After

Width:  |  Height:  |  Size: 126 B

View File

Before

Width:  |  Height:  |  Size: 126 B

After

Width:  |  Height:  |  Size: 126 B

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 142 B

After

Width:  |  Height:  |  Size: 142 B

View File

@@ -1,156 +1,149 @@
# Auto-generated by EclipseNSIS Script Wizard
# 3.10.2009 19:00:28
Name Bitcoin
RequestExecutionLevel highest
# General Symbol Definitions
!define REGKEY "SOFTWARE\$(^Name)"
!define VERSION 0.3.8
!define COMPANY "Bitcoin project"
!define URL http://www.bitcoin.org/
# MUI Symbol Definitions
!define MUI_ICON "src\rc\bitcoin.ico"
!define MUI_FINISHPAGE_NOAUTOCLOSE
!define MUI_STARTMENUPAGE_REGISTRY_ROOT HKLM
!define MUI_STARTMENUPAGE_REGISTRY_KEY ${REGKEY}
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME StartMenuGroup
!define MUI_STARTMENUPAGE_DEFAULTFOLDER Bitcoin
!define MUI_FINISHPAGE_RUN $INSTDIR\bitcoin.exe
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
!define MUI_UNFINISHPAGE_NOAUTOCLOSE
# Included files
!include Sections.nsh
!include MUI2.nsh
# Variables
Var StartMenuGroup
# Installer pages
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_STARTMENU Application $StartMenuGroup
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
# Installer languages
!insertmacro MUI_LANGUAGE English
# Installer attributes
OutFile bitcoin-0.3.8-win32-setup.exe
InstallDir $PROGRAMFILES\Bitcoin
CRCCheck on
XPStyle on
ShowInstDetails show
VIProductVersion 0.3.8.0
VIAddVersionKey ProductName Bitcoin
VIAddVersionKey ProductVersion "${VERSION}"
VIAddVersionKey CompanyName "${COMPANY}"
VIAddVersionKey CompanyWebsite "${URL}"
VIAddVersionKey FileVersion "${VERSION}"
VIAddVersionKey FileDescription ""
VIAddVersionKey LegalCopyright ""
InstallDirRegKey HKCU "${REGKEY}" Path
ShowUninstDetails show
# Installer sections
Section -Main SEC0000
SetOutPath $INSTDIR
SetOverwrite on
File bitcoin.exe
File libeay32.dll
File mingwm10.dll
File license.txt
File readme.txt
SetOutPath $INSTDIR\daemon
File /r daemon\*.*
SetOutPath $INSTDIR\locale
File /r locale\*.*
SetOutPath $INSTDIR\src
File /r src\*.*
SetOutPath $INSTDIR
WriteRegStr HKCU "${REGKEY}\Components" Main 1
SectionEnd
Section -post SEC0001
WriteRegStr HKCU "${REGKEY}" Path $INSTDIR
SetOutPath $INSTDIR
WriteUninstaller $INSTDIR\uninstall.exe
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
CreateDirectory $SMPROGRAMS\$StartMenuGroup
CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Bitcoin.lnk" $INSTDIR\bitcoin.exe
CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Uninstall Bitcoin.lnk" $INSTDIR\uninstall.exe
!insertmacro MUI_STARTMENU_WRITE_END
WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayName "$(^Name)"
WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayVersion "${VERSION}"
WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" Publisher "${COMPANY}"
WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" URLInfoAbout "${URL}"
WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayIcon $INSTDIR\uninstall.exe
WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" UninstallString $INSTDIR\uninstall.exe
WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoModify 1
WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoRepair 1
SectionEnd
# Macro for selecting uninstaller sections
!macro SELECT_UNSECTION SECTION_NAME UNSECTION_ID
Push $R0
ReadRegStr $R0 HKCU "${REGKEY}\Components" "${SECTION_NAME}"
StrCmp $R0 1 0 next${UNSECTION_ID}
!insertmacro SelectSection "${UNSECTION_ID}"
GoTo done${UNSECTION_ID}
next${UNSECTION_ID}:
!insertmacro UnselectSection "${UNSECTION_ID}"
done${UNSECTION_ID}:
Pop $R0
!macroend
# Uninstaller sections
Section /o -un.Main UNSEC0000
Delete /REBOOTOK $INSTDIR\bitcoin.exe
Delete /REBOOTOK $INSTDIR\libeay32.dll
Delete /REBOOTOK $INSTDIR\mingwm10.dll
Delete /REBOOTOK $INSTDIR\license.txt
Delete /REBOOTOK $INSTDIR\readme.txt
RMDir /r /REBOOTOK $INSTDIR\daemon
RMDir /r /REBOOTOK $INSTDIR\locale
RMDir /r /REBOOTOK $INSTDIR\src
DeleteRegValue HKCU "${REGKEY}\Components" Main
SectionEnd
Section -un.post UNSEC0001
DeleteRegKey HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)"
Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Uninstall Bitcoin.lnk"
Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Bitcoin.lnk"
Delete /REBOOTOK "$SMSTARTUP\Bitcoin.lnk"
Delete /REBOOTOK $INSTDIR\uninstall.exe
Delete /REBOOTOK $INSTDIR\debug.log
Delete /REBOOTOK $INSTDIR\db.log
DeleteRegValue HKCU "${REGKEY}" StartMenuGroup
DeleteRegValue HKCU "${REGKEY}" Path
DeleteRegKey /IfEmpty HKCU "${REGKEY}\Components"
DeleteRegKey /IfEmpty HKCU "${REGKEY}"
RmDir /REBOOTOK $SMPROGRAMS\$StartMenuGroup
RmDir /REBOOTOK $INSTDIR
Push $R0
StrCpy $R0 $StartMenuGroup 1
StrCmp $R0 ">" no_smgroup
no_smgroup:
Pop $R0
SectionEnd
# Installer functions
Function .onInit
InitPluginsDir
FunctionEnd
# Uninstaller functions
Function un.onInit
ReadRegStr $INSTDIR HKCU "${REGKEY}" Path
!insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuGroup
!insertmacro SELECT_UNSECTION Main ${UNSEC0000}
FunctionEnd
Name Bitcoin
RequestExecutionLevel highest
# General Symbol Definitions
!define REGKEY "SOFTWARE\$(^Name)"
!define VERSION 0.3.22
!define COMPANY "Bitcoin project"
!define URL http://www.bitcoin.org/
# MUI Symbol Definitions
!define MUI_ICON "../share/pixmaps/bitcoin.ico"
!define MUI_FINISHPAGE_NOAUTOCLOSE
!define MUI_STARTMENUPAGE_REGISTRY_ROOT HKLM
!define MUI_STARTMENUPAGE_REGISTRY_KEY ${REGKEY}
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME StartMenuGroup
!define MUI_STARTMENUPAGE_DEFAULTFOLDER Bitcoin
!define MUI_FINISHPAGE_RUN $INSTDIR\bitcoin.exe
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
!define MUI_UNFINISHPAGE_NOAUTOCLOSE
# Included files
!include Sections.nsh
!include MUI2.nsh
# Variables
Var StartMenuGroup
# Installer pages
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_STARTMENU Application $StartMenuGroup
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
# Installer languages
!insertmacro MUI_LANGUAGE English
# Installer attributes
OutFile bitcoin-0.3.22-win32-setup.exe
InstallDir $PROGRAMFILES\Bitcoin
CRCCheck on
XPStyle on
ShowInstDetails show
VIProductVersion 0.3.22.0
VIAddVersionKey ProductName Bitcoin
VIAddVersionKey ProductVersion "${VERSION}"
VIAddVersionKey CompanyName "${COMPANY}"
VIAddVersionKey CompanyWebsite "${URL}"
VIAddVersionKey FileVersion "${VERSION}"
VIAddVersionKey FileDescription ""
VIAddVersionKey LegalCopyright ""
InstallDirRegKey HKCU "${REGKEY}" Path
ShowUninstDetails show
# Installer sections
Section -Main SEC0000
SetOutPath $INSTDIR
SetOverwrite on
File ../src/bitcoin.exe
File /oname=license.txt ../COPYING
File /oname=readme.txt ../doc/README_windows.txt
SetOutPath $INSTDIR\daemon
File ../src/bitcoind.exe
SetOutPath $INSTDIR\locale
File /r ../locale/*.*
SetOutPath $INSTDIR\src
File /r /x *.exe /x *.o ../src\*.*
SetOutPath $INSTDIR
WriteRegStr HKCU "${REGKEY}\Components" Main 1
SectionEnd
Section -post SEC0001
WriteRegStr HKCU "${REGKEY}" Path $INSTDIR
SetOutPath $INSTDIR
WriteUninstaller $INSTDIR\uninstall.exe
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
CreateDirectory $SMPROGRAMS\$StartMenuGroup
CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Bitcoin.lnk" $INSTDIR\bitcoin.exe
CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Uninstall Bitcoin.lnk" $INSTDIR\uninstall.exe
!insertmacro MUI_STARTMENU_WRITE_END
WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayName "$(^Name)"
WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayVersion "${VERSION}"
WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" Publisher "${COMPANY}"
WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" URLInfoAbout "${URL}"
WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayIcon $INSTDIR\uninstall.exe
WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" UninstallString $INSTDIR\uninstall.exe
WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoModify 1
WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoRepair 1
SectionEnd
# Macro for selecting uninstaller sections
!macro SELECT_UNSECTION SECTION_NAME UNSECTION_ID
Push $R0
ReadRegStr $R0 HKCU "${REGKEY}\Components" "${SECTION_NAME}"
StrCmp $R0 1 0 next${UNSECTION_ID}
!insertmacro SelectSection "${UNSECTION_ID}"
GoTo done${UNSECTION_ID}
next${UNSECTION_ID}:
!insertmacro UnselectSection "${UNSECTION_ID}"
done${UNSECTION_ID}:
Pop $R0
!macroend
# Uninstaller sections
Section /o -un.Main UNSEC0000
Delete /REBOOTOK $INSTDIR\bitcoin.exe
Delete /REBOOTOK $INSTDIR\license.txt
Delete /REBOOTOK $INSTDIR\readme.txt
RMDir /r /REBOOTOK $INSTDIR\daemon
RMDir /r /REBOOTOK $INSTDIR\locale
RMDir /r /REBOOTOK $INSTDIR\src
DeleteRegValue HKCU "${REGKEY}\Components" Main
SectionEnd
Section -un.post UNSEC0001
DeleteRegKey HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)"
Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Uninstall Bitcoin.lnk"
Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Bitcoin.lnk"
Delete /REBOOTOK "$SMSTARTUP\Bitcoin.lnk"
Delete /REBOOTOK $INSTDIR\uninstall.exe
Delete /REBOOTOK $INSTDIR\debug.log
Delete /REBOOTOK $INSTDIR\db.log
DeleteRegValue HKCU "${REGKEY}" StartMenuGroup
DeleteRegValue HKCU "${REGKEY}" Path
DeleteRegKey /IfEmpty HKCU "${REGKEY}\Components"
DeleteRegKey /IfEmpty HKCU "${REGKEY}"
RmDir /REBOOTOK $SMPROGRAMS\$StartMenuGroup
RmDir /REBOOTOK $INSTDIR
Push $R0
StrCpy $R0 $StartMenuGroup 1
StrCmp $R0 ">" no_smgroup
no_smgroup:
Pop $R0
SectionEnd
# Installer functions
Function .onInit
InitPluginsDir
FunctionEnd
# Uninstaller functions
Function un.onInit
ReadRegStr $INSTDIR HKCU "${REGKEY}" Path
!insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuGroup
!insertmacro SELECT_UNSECTION Main ${UNSEC0000}
FunctionEnd

15
share/ui.rc Normal file
View File

@@ -0,0 +1,15 @@
bitcoin ICON "pixmaps/bitcoin.ico"
#include "wx/msw/wx.rc"
check ICON "pixmaps/check.ico"
send16 BITMAP "pixmaps/send16.bmp"
send16mask BITMAP "pixmaps/send16mask.bmp"
send16masknoshadow BITMAP "pixmaps/send16masknoshadow.bmp"
send20 BITMAP "pixmaps/send20.bmp"
send20mask BITMAP "pixmaps/send20mask.bmp"
addressbook16 BITMAP "pixmaps/addressbook16.bmp"
addressbook16mask BITMAP "pixmaps/addressbook16mask.bmp"
addressbook20 BITMAP "pixmaps/addressbook20.bmp"
addressbook20mask BITMAP "pixmaps/addressbook20mask.bmp"
favicon ICON "pixmaps/favicon.ico"

File diff suppressed because it is too large Load Diff

View File

@@ -11,12 +11,17 @@
// - E-mail usually won't line-break if there's no punctuation to break at.
// - Doubleclicking selects the whole number as one word if it's all alphanumeric.
//
#ifndef BITCOIN_BASE58_H
#define BITCOIN_BASE58_H
#include <string>
#include <vector>
#include "bignum.h"
static const char* pszBase58 = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
inline string EncodeBase58(const unsigned char* pbegin, const unsigned char* pend)
inline std::string EncodeBase58(const unsigned char* pbegin, const unsigned char* pend)
{
CAutoBN_CTX pctx;
CBigNum bn58 = 58;
@@ -24,15 +29,15 @@ inline string EncodeBase58(const unsigned char* pbegin, const unsigned char* pen
// Convert big endian data to little endian
// Extra zero at the end make sure bignum will interpret as a positive number
vector<unsigned char> vchTmp(pend-pbegin+1, 0);
std::vector<unsigned char> vchTmp(pend-pbegin+1, 0);
reverse_copy(pbegin, pend, vchTmp.begin());
// Convert little endian data to bignum
CBigNum bn;
bn.setvch(vchTmp);
// Convert bignum to string
string str;
// Convert bignum to std::string
std::string str;
str.reserve((pend - pbegin) * 138 / 100 + 1);
CBigNum dv;
CBigNum rem;
@@ -49,17 +54,17 @@ inline string EncodeBase58(const unsigned char* pbegin, const unsigned char* pen
for (const unsigned char* p = pbegin; p < pend && *p == 0; p++)
str += pszBase58[0];
// Convert little endian string to big endian
// Convert little endian std::string to big endian
reverse(str.begin(), str.end());
return str;
}
inline string EncodeBase58(const vector<unsigned char>& vch)
inline std::string EncodeBase58(const std::vector<unsigned char>& vch)
{
return EncodeBase58(&vch[0], &vch[0] + vch.size());
}
inline bool DecodeBase58(const char* psz, vector<unsigned char>& vchRet)
inline bool DecodeBase58(const char* psz, std::vector<unsigned char>& vchRet)
{
CAutoBN_CTX pctx;
vchRet.clear();
@@ -88,7 +93,7 @@ inline bool DecodeBase58(const char* psz, vector<unsigned char>& vchRet)
}
// Get bignum as little endian data
vector<unsigned char> vchTmp = bn.getvch();
std::vector<unsigned char> vchTmp = bn.getvch();
// Trim off sign byte if present
if (vchTmp.size() >= 2 && vchTmp.end()[-1] == 0 && vchTmp.end()[-2] >= 0x80)
@@ -105,7 +110,7 @@ inline bool DecodeBase58(const char* psz, vector<unsigned char>& vchRet)
return true;
}
inline bool DecodeBase58(const string& str, vector<unsigned char>& vchRet)
inline bool DecodeBase58(const std::string& str, std::vector<unsigned char>& vchRet)
{
return DecodeBase58(str.c_str(), vchRet);
}
@@ -114,16 +119,16 @@ inline bool DecodeBase58(const string& str, vector<unsigned char>& vchRet)
inline string EncodeBase58Check(const vector<unsigned char>& vchIn)
inline std::string EncodeBase58Check(const std::vector<unsigned char>& vchIn)
{
// add 4-byte hash check to the end
vector<unsigned char> vch(vchIn);
std::vector<unsigned char> vch(vchIn);
uint256 hash = Hash(vch.begin(), vch.end());
vch.insert(vch.end(), (unsigned char*)&hash, (unsigned char*)&hash + 4);
return EncodeBase58(vch);
}
inline bool DecodeBase58Check(const char* psz, vector<unsigned char>& vchRet)
inline bool DecodeBase58Check(const char* psz, std::vector<unsigned char>& vchRet)
{
if (!DecodeBase58(psz, vchRet))
return false;
@@ -142,7 +147,7 @@ inline bool DecodeBase58Check(const char* psz, vector<unsigned char>& vchRet)
return true;
}
inline bool DecodeBase58Check(const string& str, vector<unsigned char>& vchRet)
inline bool DecodeBase58Check(const std::string& str, std::vector<unsigned char>& vchRet)
{
return DecodeBase58Check(str.c_str(), vchRet);
}
@@ -152,19 +157,19 @@ inline bool DecodeBase58Check(const string& str, vector<unsigned char>& vchRet)
static const unsigned char ADDRESSVERSION = 0;
#define ADDRESSVERSION ((unsigned char)(fTestNet ? 111 : 0))
inline string Hash160ToAddress(uint160 hash160)
inline std::string Hash160ToAddress(uint160 hash160)
{
// add 1-byte version number to the front
vector<unsigned char> vch(1, ADDRESSVERSION);
std::vector<unsigned char> vch(1, ADDRESSVERSION);
vch.insert(vch.end(), UBEGIN(hash160), UEND(hash160));
return EncodeBase58Check(vch);
}
inline bool AddressToHash160(const char* psz, uint160& hash160Ret)
{
vector<unsigned char> vch;
std::vector<unsigned char> vch;
if (!DecodeBase58Check(psz, vch))
return false;
if (vch.empty())
@@ -176,7 +181,7 @@ inline bool AddressToHash160(const char* psz, uint160& hash160Ret)
return (nVersion <= ADDRESSVERSION);
}
inline bool AddressToHash160(const string& str, uint160& hash160Ret)
inline bool AddressToHash160(const std::string& str, uint160& hash160Ret)
{
return AddressToHash160(str.c_str(), hash160Ret);
}
@@ -187,7 +192,7 @@ inline bool IsValidBitcoinAddress(const char* psz)
return AddressToHash160(psz, hash160);
}
inline bool IsValidBitcoinAddress(const string& str)
inline bool IsValidBitcoinAddress(const std::string& str)
{
return IsValidBitcoinAddress(str.c_str());
}
@@ -195,7 +200,9 @@ inline bool IsValidBitcoinAddress(const string& str)
inline string PubKeyToAddress(const vector<unsigned char>& vchPubKey)
inline std::string PubKeyToAddress(const std::vector<unsigned char>& vchPubKey)
{
return Hash160ToAddress(Hash160(vchPubKey));
}
#endif

View File

@@ -1,14 +1,14 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_BIGNUM_H
#define BITCOIN_BIGNUM_H
#include <stdexcept>
#include <vector>
#include <openssl/bn.h>
#include "util.h"
class bignum_error : public std::runtime_error
{
@@ -308,7 +308,7 @@ public:
CAutoBN_CTX pctx;
CBigNum bnBase = nBase;
CBigNum bn0 = 0;
string str;
std::string str;
CBigNum bn = *this;
BN_set_negative(&bn, false);
CBigNum dv;
@@ -348,7 +348,7 @@ public:
template<typename Stream>
void Unserialize(Stream& s, int nType=0, int nVersion=VERSION)
{
vector<unsigned char> vch;
std::vector<unsigned char> vch;
::Unserialize(s, vch, nType, nVersion);
setvch(vch);
}
@@ -530,3 +530,5 @@ inline bool operator<=(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a,
inline bool operator>=(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) >= 0); }
inline bool operator<(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) < 0); }
inline bool operator>(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) > 0); }
#endif

View File

@@ -1,6 +1,13 @@
#ifndef CRYPTOPP_CONFIG_H
#define CRYPTOPP_CONFIG_H
//// Bitcoin: disable SSE2 on 32-bit
#if !defined(_M_X64) && !defined(__x86_64__)
#define CRYPTOPP_DISABLE_SSE2 1
#endif
//////////// end of Bitcoin changes
// ***************** Important Settings ********************
// define this if running on a big-endian CPU

View File

@@ -184,7 +184,8 @@ public:
void deallocate(void *p, size_type n)
{
assert(false);
//// Bitcoin: don't know why this trips, probably a false alarm, depends on the compiler used.
//assert(false);
}
size_type max_size() const {return 0;}

View File

@@ -4,11 +4,14 @@
#include "headers.h"
using namespace std;
using namespace boost;
void ThreadFlushWalletDB(void* parg);
unsigned int nWalletDBUpdated;
uint64 nAccountingEntryNumber = 0;
@@ -77,11 +80,10 @@ CDB::CDB(const char* pszFile, const char* pszMode) : pdb(NULL)
DB_INIT_MPOOL |
DB_INIT_TXN |
DB_THREAD |
DB_PRIVATE |
DB_RECOVER,
S_IRUSR | S_IWUSR);
if (ret > 0)
throw runtime_error(strprintf("CDB() : error %d opening database environment\n", ret));
throw runtime_error(strprintf("CDB() : error %d opening database environment", ret));
fDbEnvInit = true;
}
@@ -106,7 +108,7 @@ CDB::CDB(const char* pszFile, const char* pszMode) : pdb(NULL)
CRITICAL_BLOCK(cs_db)
--mapFileUseCount[strFile];
strFile = "";
throw runtime_error(strprintf("CDB() : can't open database file %s, error %d\n", pszFile, ret));
throw runtime_error(strprintf("CDB() : can't open database file %s, error %d", pszFile, ret));
}
if (fCreate && !Exists(string("version")))
@@ -133,6 +135,8 @@ void CDB::Close()
// Flush database activity from memory pool to disk log
unsigned int nMinutes = 0;
if (fReadOnly)
nMinutes = 1;
if (strFile == "addr.dat")
nMinutes = 2;
if (strFile == "blkindex.dat" && IsInitialBlockDownload() && nBestHeight % 500 != 0)
@@ -419,6 +423,9 @@ bool CTxDB::LoadBlockIndex()
// Watch for genesis block
if (pindexGenesisBlock == NULL && diskindex.GetBlockHash() == hashGenesisBlock)
pindexGenesisBlock = pindexNew;
if (!pindexNew->CheckIndex())
return error("LoadBlockIndex() : CheckIndex failed at %d", pindexNew->nHeight);
}
else
{
@@ -430,13 +437,13 @@ bool CTxDB::LoadBlockIndex()
// Calculate bnChainWork
vector<pair<int, CBlockIndex*> > vSortedByHeight;
vSortedByHeight.reserve(mapBlockIndex.size());
foreach(const PAIRTYPE(uint256, CBlockIndex*)& item, mapBlockIndex)
BOOST_FOREACH(const PAIRTYPE(uint256, CBlockIndex*)& item, mapBlockIndex)
{
CBlockIndex* pindex = item.second;
vSortedByHeight.push_back(make_pair(pindex->nHeight, pindex));
}
sort(vSortedByHeight.begin(), vSortedByHeight.end());
foreach(const PAIRTYPE(int, CBlockIndex*)& item, vSortedByHeight)
BOOST_FOREACH(const PAIRTYPE(int, CBlockIndex*)& item, vSortedByHeight)
{
CBlockIndex* pindex = item.second;
pindex->bnChainWork = (pindex->pprev ? pindex->pprev->bnChainWork : 0) + pindex->GetBlockWork();
@@ -454,11 +461,37 @@ bool CTxDB::LoadBlockIndex()
pindexBest = mapBlockIndex[hashBestChain];
nBestHeight = pindexBest->nHeight;
bnBestChainWork = pindexBest->bnChainWork;
printf("LoadBlockIndex(): hashBestChain=%s height=%d\n", hashBestChain.ToString().substr(0,16).c_str(), nBestHeight);
printf("LoadBlockIndex(): hashBestChain=%s height=%d\n", hashBestChain.ToString().substr(0,20).c_str(), nBestHeight);
// Load bnBestInvalidWork, OK if it doesn't exist
ReadBestInvalidWork(bnBestInvalidWork);
// Verify blocks in the best chain
CBlockIndex* pindexFork = NULL;
for (CBlockIndex* pindex = pindexBest; pindex && pindex->pprev; pindex = pindex->pprev)
{
if (pindex->nHeight < nBestHeight-2500 && !mapArgs.count("-checkblocks"))
break;
CBlock block;
if (!block.ReadFromDisk(pindex))
return error("LoadBlockIndex() : block.ReadFromDisk failed");
if (!block.CheckBlock())
{
printf("LoadBlockIndex() : *** found bad block at %d, hash=%s\n", pindex->nHeight, pindex->GetBlockHash().ToString().c_str());
pindexFork = pindex->pprev;
}
}
if (pindexFork)
{
// Reorg back to the fork
printf("LoadBlockIndex() : *** moving best chain pointer back to block %d\n", pindexFork->nHeight);
CBlock block;
if (!block.ReadFromDisk(pindexFork))
return error("LoadBlockIndex() : block.ReadFromDisk failed");
CTxDB txdb;
block.SetBestChain(txdb, pindexFork);
}
return true;
}
@@ -475,6 +508,11 @@ bool CAddrDB::WriteAddress(const CAddress& addr)
return Write(make_pair(string("addr"), addr.GetKey()), addr);
}
bool CAddrDB::EraseAddress(const CAddress& addr)
{
return Erase(make_pair(string("addr"), addr.GetKey()));
}
bool CAddrDB::LoadAddresses()
{
CRITICAL_BLOCK(cs_mapAddresses)
@@ -526,11 +564,6 @@ bool CAddrDB::LoadAddresses()
pcursor->close();
printf("Loaded %d addresses\n", mapAddresses.size());
// Fix for possible bug that manifests in mapAddresses.count in irc.cpp,
// just need to call count here and it doesn't happen there. The bug was the
// pack pragma in irc.cpp and has been fixed, but I'm not in a hurry to delete this.
mapAddresses.count(vector<unsigned char>(18));
}
return true;
@@ -548,10 +581,87 @@ bool LoadAddresses()
// CWalletDB
//
static set<int64> setKeyPool;
static CCriticalSection cs_setKeyPool;
bool CWalletDB::ReadAccount(const string& strAccount, CAccount& account)
{
account.SetNull();
return Read(make_pair(string("acc"), strAccount), account);
}
bool CWalletDB::WriteAccount(const string& strAccount, const CAccount& account)
{
return Write(make_pair(string("acc"), strAccount), account);
}
bool CWalletDB::WriteAccountingEntry(const CAccountingEntry& acentry)
{
return Write(make_tuple(string("acentry"), acentry.strAccount, ++nAccountingEntryNumber), acentry);
}
int64 CWalletDB::GetAccountCreditDebit(const string& strAccount)
{
list<CAccountingEntry> entries;
ListAccountCreditDebit(strAccount, entries);
int64 nCreditDebit = 0;
BOOST_FOREACH (const CAccountingEntry& entry, entries)
nCreditDebit += entry.nCreditDebit;
return nCreditDebit;
}
void CWalletDB::ListAccountCreditDebit(const string& strAccount, list<CAccountingEntry>& entries)
{
int64 nCreditDebit = 0;
bool fAllAccounts = (strAccount == "*");
Dbc* pcursor = GetCursor();
if (!pcursor)
throw runtime_error("CWalletDB::ListAccountCreditDebit() : cannot create DB cursor");
unsigned int fFlags = DB_SET_RANGE;
loop
{
// Read next record
CDataStream ssKey;
if (fFlags == DB_SET_RANGE)
ssKey << make_tuple(string("acentry"), (fAllAccounts? string("") : strAccount), uint64(0));
CDataStream ssValue;
int ret = ReadAtCursor(pcursor, ssKey, ssValue, fFlags);
fFlags = DB_NEXT;
if (ret == DB_NOTFOUND)
break;
else if (ret != 0)
{
pcursor->close();
throw runtime_error("CWalletDB::ListAccountCreditDebit() : error scanning DB");
}
// Unserialize
string strType;
ssKey >> strType;
if (strType != "acentry")
break;
CAccountingEntry acentry;
ssKey >> acentry.strAccount;
if (!fAllAccounts && acentry.strAccount != strAccount)
break;
ssValue >> acentry;
entries.push_back(acentry);
}
pcursor->close();
}
bool CWalletDB::LoadWallet()
{
vchDefaultKey.clear();
int nFileVersion = 0;
vector<uint256> vWalletUpgrade;
// Modify defaults
#ifndef __WXMSW__
@@ -561,8 +671,8 @@ bool CWalletDB::LoadWallet()
#endif
//// todo: shouldn't we catch exceptions and try to recover and continue?
CRITICAL_BLOCK(cs_mapKeys)
CRITICAL_BLOCK(cs_mapWallet)
CRITICAL_BLOCK(cs_mapKeys)
{
// Get cursor
Dbc* pcursor = GetCursor();
@@ -601,14 +711,42 @@ bool CWalletDB::LoadWallet()
if (wtx.GetHash() != hash)
printf("Error in wallet.dat, hash mismatch\n");
// Undo serialize changes in 31600
if (31404 <= wtx.fTimeReceivedIsTxTime && wtx.fTimeReceivedIsTxTime <= 31703)
{
if (!ssValue.empty())
{
char fTmp;
char fUnused;
ssValue >> fTmp >> fUnused >> wtx.strFromAccount;
printf("LoadWallet() upgrading tx ver=%d %d '%s' %s\n", wtx.fTimeReceivedIsTxTime, fTmp, wtx.strFromAccount.c_str(), hash.ToString().c_str());
wtx.fTimeReceivedIsTxTime = fTmp;
}
else
{
printf("LoadWallet() repairing tx ver=%d %s\n", wtx.fTimeReceivedIsTxTime, hash.ToString().c_str());
wtx.fTimeReceivedIsTxTime = 0;
}
vWalletUpgrade.push_back(hash);
}
//// debug print
//printf("LoadWallet %s\n", wtx.GetHash().ToString().c_str());
//printf(" %12I64d %s %s %s\n",
// wtx.vout[0].nValue,
// DateTimeStrFormat("%x %H:%M:%S", wtx.nTime).c_str(),
// wtx.hashBlock.ToString().substr(0,16).c_str(),
// DateTimeStrFormat("%x %H:%M:%S", wtx.GetBlockTime()).c_str(),
// wtx.hashBlock.ToString().substr(0,20).c_str(),
// wtx.mapValue["message"].c_str());
}
else if (strType == "acentry")
{
string strAccount;
ssKey >> strAccount;
uint64 nNumber;
ssKey >> nNumber;
if (nNumber > nAccountingEntryNumber)
nAccountingEntryNumber = nNumber;
}
else if (strType == "key" || strType == "wkey")
{
vector<unsigned char> vchPubKey;
@@ -626,6 +764,12 @@ bool CWalletDB::LoadWallet()
{
ssValue >> vchDefaultKey;
}
else if (strType == "pool")
{
int64 nIndex;
ssKey >> nIndex;
setKeyPool.insert(nIndex);
}
else if (strType == "version")
{
ssValue >> nFileVersion;
@@ -637,10 +781,10 @@ bool CWalletDB::LoadWallet()
string strKey;
ssKey >> strKey;
// Menu state
if (strKey == "fGenerateBitcoins") ssValue >> fGenerateBitcoins;
// Options
#ifndef GUI
if (strKey == "fGenerateBitcoins") ssValue >> fGenerateBitcoins;
#endif
if (strKey == "nTransactionFee") ssValue >> nTransactionFee;
if (strKey == "addrIncoming") ssValue >> addrIncoming;
if (strKey == "fLimitProcessors") ssValue >> fLimitProcessors;
@@ -649,12 +793,15 @@ bool CWalletDB::LoadWallet()
if (strKey == "fMinimizeOnClose") ssValue >> fMinimizeOnClose;
if (strKey == "fUseProxy") ssValue >> fUseProxy;
if (strKey == "addrProxy") ssValue >> addrProxy;
if (fHaveUPnP && strKey == "fUseUPnP") ssValue >> fUseUPnP;
}
}
pcursor->close();
}
BOOST_FOREACH(uint256 hash, vWalletUpgrade)
WriteTx(hash, mapWallet[hash]);
printf("nFileVersion = %d\n", nFileVersion);
printf("fGenerateBitcoins = %d\n", fGenerateBitcoins);
printf("nTransactionFee = %"PRI64d"\n", nTransactionFee);
@@ -663,16 +810,10 @@ bool CWalletDB::LoadWallet()
printf("fMinimizeOnClose = %d\n", fMinimizeOnClose);
printf("fUseProxy = %d\n", fUseProxy);
printf("addrProxy = %s\n", addrProxy.ToString().c_str());
if (fHaveUPnP)
printf("fUseUPnP = %d\n", fUseUPnP);
// The transaction fee setting won't be needed for many years to come.
// Setting it to zero here in case they set it to something in an earlier version.
if (nTransactionFee != 0)
{
nTransactionFee = 0;
WriteSetting("nTransactionFee", nTransactionFee);
}
// Upgrade
if (nFileVersion < VERSION)
{
@@ -683,6 +824,7 @@ bool CWalletDB::LoadWallet()
WriteVersion(VERSION);
}
return true;
}
@@ -706,7 +848,7 @@ bool LoadWallet(bool& fFirstRunRet)
keyUser.MakeNewKey();
if (!AddKey(keyUser))
return false;
if (!SetAddressBookName(PubKeyToAddress(keyUser.GetPubKey()), "Your Address"))
if (!SetAddressBookName(PubKeyToAddress(keyUser.GetPubKey()), ""))
return false;
CWalletDB().WriteDefaultKey(keyUser.GetPubKey());
}
@@ -774,3 +916,111 @@ void ThreadFlushWalletDB(void* parg)
}
}
}
void BackupWallet(const string& strDest)
{
while (!fShutdown)
{
CRITICAL_BLOCK(cs_db)
{
const string strFile = "wallet.dat";
if (!mapFileUseCount.count(strFile) || mapFileUseCount[strFile] == 0)
{
// Flush log data to the dat file
CloseDb(strFile);
dbenv.txn_checkpoint(0, 0, 0);
dbenv.lsn_reset(strFile.c_str(), 0);
mapFileUseCount.erase(strFile);
// Copy wallet.dat
filesystem::path pathSrc(GetDataDir() + "/" + strFile);
filesystem::path pathDest(strDest);
if (filesystem::is_directory(pathDest))
pathDest = pathDest / strFile;
#if BOOST_VERSION >= 104000
filesystem::copy_file(pathSrc, pathDest, filesystem::copy_option::overwrite_if_exists);
#else
filesystem::copy_file(pathSrc, pathDest);
#endif
printf("copied wallet.dat to %s\n", pathDest.string().c_str());
return;
}
}
Sleep(100);
}
}
void CWalletDB::ReserveKeyFromKeyPool(int64& nIndex, CKeyPool& keypool)
{
nIndex = -1;
keypool.vchPubKey.clear();
CRITICAL_BLOCK(cs_main)
CRITICAL_BLOCK(cs_mapWallet)
CRITICAL_BLOCK(cs_setKeyPool)
{
// Top up key pool
int64 nTargetSize = max(GetArg("-keypool", 100), (int64)0);
while (setKeyPool.size() < nTargetSize+1)
{
int64 nEnd = 1;
if (!setKeyPool.empty())
nEnd = *(--setKeyPool.end()) + 1;
if (!Write(make_pair(string("pool"), nEnd), CKeyPool(GenerateNewKey())))
throw runtime_error("ReserveKeyFromKeyPool() : writing generated key failed");
setKeyPool.insert(nEnd);
printf("keypool added key %"PRI64d", size=%d\n", nEnd, setKeyPool.size());
}
// Get the oldest key
assert(!setKeyPool.empty());
nIndex = *(setKeyPool.begin());
setKeyPool.erase(setKeyPool.begin());
if (!Read(make_pair(string("pool"), nIndex), keypool))
throw runtime_error("ReserveKeyFromKeyPool() : read failed");
if (!mapKeys.count(keypool.vchPubKey))
throw runtime_error("ReserveKeyFromKeyPool() : unknown key in key pool");
assert(!keypool.vchPubKey.empty());
printf("keypool reserve %"PRI64d"\n", nIndex);
}
}
void CWalletDB::KeepKey(int64 nIndex)
{
// Remove from key pool
CRITICAL_BLOCK(cs_main)
CRITICAL_BLOCK(cs_mapWallet)
{
Erase(make_pair(string("pool"), nIndex));
}
printf("keypool keep %"PRI64d"\n", nIndex);
}
void CWalletDB::ReturnKey(int64 nIndex)
{
// Return to key pool
CRITICAL_BLOCK(cs_setKeyPool)
setKeyPool.insert(nIndex);
printf("keypool return %"PRI64d"\n", nIndex);
}
vector<unsigned char> GetKeyFromKeyPool()
{
CWalletDB walletdb;
int64 nIndex = 0;
CKeyPool keypool;
walletdb.ReserveKeyFromKeyPool(nIndex, keypool);
walletdb.KeepKey(nIndex);
return keypool.vchPubKey;
}
int64 GetOldestKeyPoolTime()
{
CWalletDB walletdb;
int64 nIndex = 0;
CKeyPool keypool;
walletdb.ReserveKeyFromKeyPool(nIndex, keypool);
walletdb.ReturnKey(nIndex);
return keypool.nTime;
}

View File

@@ -1,6 +1,16 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_DB_H
#define BITCOIN_DB_H
#include "key.h"
#include <map>
#include <string>
#include <vector>
#include <db_cxx.h>
class CTransaction;
class CTxIndex;
@@ -11,10 +21,13 @@ class CUser;
class CReview;
class CAddress;
class CWalletTx;
class CAccount;
class CAccountingEntry;
class CBlockLocator;
extern map<string, string> mapAddressBook;
extern std::map<std::string, std::string> mapAddressBook;
extern CCriticalSection cs_mapAddressBook;
extern vector<unsigned char> vchDefaultKey;
extern std::vector<unsigned char> vchDefaultKey;
extern bool fClient;
extern int nBestHeight;
@@ -24,6 +37,8 @@ extern DbEnv dbenv;
extern void DBFlush(bool fShutdown);
extern std::vector<unsigned char> GetKeyFromKeyPool();
extern int64 GetOldestKeyPoolTime();
@@ -32,8 +47,8 @@ class CDB
{
protected:
Db* pdb;
string strFile;
vector<DbTxn*> vTxn;
std::string strFile;
std::vector<DbTxn*> vTxn;
bool fReadOnly;
explicit CDB(const char* pszFile, const char* pszMode="r+");
@@ -242,12 +257,12 @@ public:
bool ReadVersion(int& nVersion)
{
nVersion = 0;
return Read(string("version"), nVersion);
return Read(std::string("version"), nVersion);
}
bool WriteVersion(int nVersion)
{
return Write(string("version"), nVersion);
return Write(std::string("version"), nVersion);
}
};
@@ -261,7 +276,7 @@ public:
class CTxDB : public CDB
{
public:
CTxDB(const char* pszMode="r+") : CDB(!fClient ? "blkindex.dat" : NULL, pszMode) { }
CTxDB(const char* pszMode="r+") : CDB("blkindex.dat", pszMode) { }
private:
CTxDB(const CTxDB&);
void operator=(const CTxDB&);
@@ -271,7 +286,7 @@ public:
bool AddTxIndex(const CTransaction& tx, const CDiskTxPos& pos, int nHeight);
bool EraseTxIndex(const CTransaction& tx);
bool ContainsTx(uint256 hash);
bool ReadOwnerTxes(uint160 hash160, int nHeight, vector<CTransaction>& vtx);
bool ReadOwnerTxes(uint160 hash160, int nHeight, std::vector<CTransaction>& vtx);
bool ReadDiskTx(uint256 hash, CTransaction& tx, CTxIndex& txindex);
bool ReadDiskTx(uint256 hash, CTransaction& tx);
bool ReadDiskTx(COutPoint outpoint, CTransaction& tx, CTxIndex& txindex);
@@ -298,6 +313,7 @@ private:
void operator=(const CAddrDB&);
public:
bool WriteAddress(const CAddress& addr);
bool EraseAddress(const CAddress& addr);
bool LoadAddresses();
};
@@ -308,99 +324,203 @@ bool LoadAddresses();
class CKeyPool
{
public:
int64 nTime;
std::vector<unsigned char> vchPubKey;
CKeyPool()
{
nTime = GetTime();
}
CKeyPool(const std::vector<unsigned char>& vchPubKeyIn)
{
nTime = GetTime();
vchPubKey = vchPubKeyIn;
}
IMPLEMENT_SERIALIZE
(
if (!(nType & SER_GETHASH))
READWRITE(nVersion);
READWRITE(nTime);
READWRITE(vchPubKey);
)
};
class CWalletDB : public CDB
{
public:
CWalletDB(const char* pszMode="r+") : CDB("wallet.dat", pszMode) { }
CWalletDB(const char* pszMode="r+") : CDB("wallet.dat", pszMode)
{
}
private:
CWalletDB(const CWalletDB&);
void operator=(const CWalletDB&);
public:
bool ReadName(const string& strAddress, string& strName)
bool ReadName(const std::string& strAddress, std::string& strName)
{
strName = "";
return Read(make_pair(string("name"), strAddress), strName);
return Read(std::make_pair(std::string("name"), strAddress), strName);
}
bool WriteName(const string& strAddress, const string& strName)
bool WriteName(const std::string& strAddress, const std::string& strName)
{
CRITICAL_BLOCK(cs_mapAddressBook)
mapAddressBook[strAddress] = strName;
nWalletDBUpdated++;
return Write(make_pair(string("name"), strAddress), strName);
return Write(std::make_pair(std::string("name"), strAddress), strName);
}
bool EraseName(const string& strAddress)
bool EraseName(const std::string& strAddress)
{
// This should only be used for sending addresses, never for receiving addresses,
// receiving addresses must always have an address book entry if they're not change return.
CRITICAL_BLOCK(cs_mapAddressBook)
mapAddressBook.erase(strAddress);
nWalletDBUpdated++;
return Erase(make_pair(string("name"), strAddress));
return Erase(std::make_pair(std::string("name"), strAddress));
}
bool ReadTx(uint256 hash, CWalletTx& wtx)
{
return Read(make_pair(string("tx"), hash), wtx);
return Read(std::make_pair(std::string("tx"), hash), wtx);
}
bool WriteTx(uint256 hash, const CWalletTx& wtx)
{
nWalletDBUpdated++;
return Write(make_pair(string("tx"), hash), wtx);
return Write(std::make_pair(std::string("tx"), hash), wtx);
}
bool EraseTx(uint256 hash)
{
nWalletDBUpdated++;
return Erase(make_pair(string("tx"), hash));
return Erase(std::make_pair(std::string("tx"), hash));
}
bool ReadKey(const vector<unsigned char>& vchPubKey, CPrivKey& vchPrivKey)
bool ReadKey(const std::vector<unsigned char>& vchPubKey, CPrivKey& vchPrivKey)
{
vchPrivKey.clear();
return Read(make_pair(string("key"), vchPubKey), vchPrivKey);
return Read(std::make_pair(std::string("key"), vchPubKey), vchPrivKey);
}
bool WriteKey(const vector<unsigned char>& vchPubKey, const CPrivKey& vchPrivKey)
bool WriteKey(const std::vector<unsigned char>& vchPubKey, const CPrivKey& vchPrivKey)
{
nWalletDBUpdated++;
return Write(make_pair(string("key"), vchPubKey), vchPrivKey, false);
return Write(std::make_pair(std::string("key"), vchPubKey), vchPrivKey, false);
}
bool ReadDefaultKey(vector<unsigned char>& vchPubKey)
bool WriteBestBlock(const CBlockLocator& locator)
{
nWalletDBUpdated++;
return Write(std::string("bestblock"), locator);
}
bool ReadBestBlock(CBlockLocator& locator)
{
return Read(std::string("bestblock"), locator);
}
bool ReadDefaultKey(std::vector<unsigned char>& vchPubKey)
{
vchPubKey.clear();
return Read(string("defaultkey"), vchPubKey);
return Read(std::string("defaultkey"), vchPubKey);
}
bool WriteDefaultKey(const vector<unsigned char>& vchPubKey)
bool WriteDefaultKey(const std::vector<unsigned char>& vchPubKey)
{
vchDefaultKey = vchPubKey;
nWalletDBUpdated++;
return Write(string("defaultkey"), vchPubKey);
return Write(std::string("defaultkey"), vchPubKey);
}
template<typename T>
bool ReadSetting(const string& strKey, T& value)
bool ReadSetting(const std::string& strKey, T& value)
{
return Read(make_pair(string("setting"), strKey), value);
return Read(std::make_pair(std::string("setting"), strKey), value);
}
template<typename T>
bool WriteSetting(const string& strKey, const T& value)
bool WriteSetting(const std::string& strKey, const T& value)
{
nWalletDBUpdated++;
return Write(make_pair(string("setting"), strKey), value);
return Write(std::make_pair(std::string("setting"), strKey), value);
}
bool ReadAccount(const std::string& strAccount, CAccount& account);
bool WriteAccount(const std::string& strAccount, const CAccount& account);
bool WriteAccountingEntry(const CAccountingEntry& acentry);
int64 GetAccountCreditDebit(const std::string& strAccount);
void ListAccountCreditDebit(const std::string& strAccount, std::list<CAccountingEntry>& acentries);
bool LoadWallet();
protected:
void ReserveKeyFromKeyPool(int64& nIndex, CKeyPool& keypool);
void KeepKey(int64 nIndex);
static void ReturnKey(int64 nIndex);
friend class CReserveKey;
friend std::vector<unsigned char> GetKeyFromKeyPool();
friend int64 GetOldestKeyPoolTime();
};
bool LoadWallet(bool& fFirstRunRet);
void BackupWallet(const std::string& strDest);
inline bool SetAddressBookName(const string& strAddress, const string& strName)
inline bool SetAddressBookName(const std::string& strAddress, const std::string& strName)
{
return CWalletDB().WriteName(strAddress, strName);
}
class CReserveKey
{
protected:
int64 nIndex;
std::vector<unsigned char> vchPubKey;
public:
CReserveKey()
{
nIndex = -1;
}
~CReserveKey()
{
if (!fShutdown)
ReturnKey();
}
std::vector<unsigned char> GetReservedKey()
{
if (nIndex == -1)
{
CKeyPool keypool;
CWalletDB().ReserveKeyFromKeyPool(nIndex, keypool);
vchPubKey = keypool.vchPubKey;
}
assert(!vchPubKey.empty());
return vchPubKey;
}
void KeepKey()
{
if (nIndex != -1)
CWalletDB().KeepKey(nIndex);
nIndex = -1;
vchPubKey.clear();
}
void ReturnKey()
{
if (nIndex != -1)
CWalletDB::ReturnKey(nIndex);
nIndex = -1;
vchPubKey.clear();
}
};
#endif

View File

@@ -11,13 +11,21 @@
#ifdef _WIN32_WINNT
#undef _WIN32_WINNT
#endif
#define _WIN32_WINNT 0x0400
#define _WIN32_WINNT 0x0500
#ifdef _WIN32_IE
#undef _WIN32_IE
#endif
#define _WIN32_IE 0x0400
#define WIN32_LEAN_AND_MEAN 1
#define __STDC_LIMIT_MACROS // to enable UINT64_MAX from stdint.h
#if (defined(__unix__) || defined(unix)) && !defined(USG)
#include <sys/param.h> // to get BSD define
#endif
#ifdef __WXMAC_OSX__
#ifndef BSD
#define BSD 1
#endif
#endif
#ifdef GUI
#include <wx/wx.h>
#include <wx/stdpaths.h>
@@ -25,12 +33,6 @@
#include <wx/utils.h>
#include <wx/clipbrd.h>
#include <wx/taskbar.h>
#else
#ifdef __WXMAC_OSX__
#define __WXMAC__ 1
#define __WXOSX__ 1
#define __BSD__ 1
#endif
#endif
#include <openssl/buffer.h>
#include <openssl/ecdsa.h>
@@ -41,6 +43,7 @@
#include <db_cxx.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#include <limits.h>
#include <float.h>
@@ -68,6 +71,7 @@
#include <boost/filesystem/fstream.hpp>
#include <boost/algorithm/string.hpp>
#include <boost/thread.hpp>
#include <boost/interprocess/sync/file_lock.hpp>
#include <boost/interprocess/sync/interprocess_mutex.hpp>
#include <boost/interprocess/sync/interprocess_recursive_mutex.hpp>
#include <boost/date_time/gregorian/gregorian_types.hpp>
@@ -97,15 +101,14 @@
#include <net/if.h>
#include <ifaddrs.h>
#include <fcntl.h>
#include <signal.h>
#endif
#ifdef __BSD__
#ifdef BSD
#include <netinet/in.h>
#endif
#pragma hdrstop
using namespace std;
using namespace boost;
#include "strlcpy.h"
#include "serialize.h"
@@ -128,6 +131,7 @@ using namespace boost;
#endif
#include "init.h"
#ifdef GUI
#include "xpm/addressbook16.xpm"
#include "xpm/addressbook20.xpm"
#include "xpm/bitcoin16.xpm"
@@ -140,3 +144,4 @@ using namespace boost;
#include "xpm/send16noshadow.xpm"
#include "xpm/send20.xpm"
#include "xpm/about.xpm"
#endif

View File

@@ -1,15 +1,10 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
#include "headers.h"
using namespace std;
using namespace boost;
//////////////////////////////////////////////////////////////////////////////
//
@@ -42,6 +37,7 @@ void Shutdown(void* parg)
DBFlush(false);
StopNode();
DBFlush(true);
boost::filesystem::remove(GetPidFile());
CreateThread(ExitTimeout, NULL);
Sleep(50);
printf("Bitcoin exiting\n\n");
@@ -57,6 +53,11 @@ void Shutdown(void* parg)
}
}
void HandleSIGTERM(int)
{
fRequestShutdown = true;
}
@@ -66,36 +67,16 @@ void Shutdown(void* parg)
//
// Start
//
#ifndef GUI
int main(int argc, char* argv[])
{
for (int i = 1; i < argc; i++)
if (!IsSwitchChar(argv[i][0]))
fCommandLine = true;
fDaemon = !fCommandLine;
bool fRet = false;
fRet = AppInit(argc, argv);
#ifdef __WXGTK__
if (!fCommandLine)
{
// Daemonize
pid_t pid = fork();
if (pid < 0)
{
fprintf(stderr, "Error: fork() returned %d errno %d\n", pid, errno);
return 1;
}
if (pid > 0)
pthread_exit((void*)0);
}
#endif
if (fRet && fDaemon)
return 0;
if (!AppInit(argc, argv))
return 1;
while (!fShutdown)
Sleep(1000000);
return 0;
return 1;
}
#endif
@@ -130,6 +111,16 @@ bool AppInit2(int argc, char* argv[])
#ifndef __WXMSW__
umask(077);
#endif
#ifndef __WXMSW__
// Clean shutdown on SIGTERM
struct sigaction sa;
sa.sa_handler = HandleSIGTERM;
sigemptyset(&sa.sa_mask);
sa.sa_flags = 0;
sigaction(SIGTERM, &sa, NULL);
sigaction(SIGINT, &sa, NULL);
sigaction(SIGHUP, &sa, NULL);
#endif
//
// Parameters
@@ -137,30 +128,69 @@ bool AppInit2(int argc, char* argv[])
ParseParameters(argc, argv);
if (mapArgs.count("-datadir"))
strlcpy(pszSetDataDir, mapArgs["-datadir"].c_str(), sizeof(pszSetDataDir));
{
filesystem::path pathDataDir = filesystem::system_complete(mapArgs["-datadir"]);
strlcpy(pszSetDataDir, pathDataDir.string().c_str(), sizeof(pszSetDataDir));
}
ReadConfigFile(mapArgs, mapMultiArgs); // Must be done after processing datadir
if (mapArgs.count("-?") || mapArgs.count("--help"))
{
string beta = VERSION_IS_BETA ? _(" beta") : "";
string strUsage = string() +
_("Bitcoin version") + " " + FormatFullVersion() + "\n\n" +
_("Usage:") + "\t\t\t\t\t\t\t\t\t\t\n" +
" bitcoin [options] \t " + "\n" +
" bitcoin [options] <command> [params]\t " + _("Send command to -server or bitcoind\n") +
" bitcoin [options] <command> -? \t\t " + _("Get help for a command\n") +
" bitcoin help \t\t\t " + _("List commands\n") +
" bitcoin [options] help \t\t " + _("List commands\n") +
" bitcoin [options] help <command> \t\t " + _("Get help for a command\n") +
_("Options:\n") +
" -conf=<file> \t " + _("Specify configuration file (default: bitcoin.conf)\n") +
" -gen \t " + _("Generate coins\n") +
" -gen=0 \t " + _("Don't generate coins\n") +
" -min \t " + _("Start minimized\n") +
" -datadir=<dir> \t " + _("Specify data directory\n") +
" -proxy=<ip:port>\t " + _("Connect through socks4 proxy\n") +
" -addnode=<ip> \t " + _("Add a node to connect to\n") +
" -connect=<ip> \t " + _("Connect only to the specified node\n") +
" -server \t " + _("Accept command line and JSON-RPC commands\n") +
" -daemon \t " + _("Run in the background as a daemon and accept commands\n") +
" -? \t " + _("This help message\n");
" -conf=<file> \t\t " + _("Specify configuration file (default: bitcoin.conf)\n") +
" -pid=<file> \t\t " + _("Specify pid file (default: bitcoind.pid)\n") +
" -gen \t\t " + _("Generate coins\n") +
" -gen=0 \t\t " + _("Don't generate coins\n") +
" -min \t\t " + _("Start minimized\n") +
" -datadir=<dir> \t\t " + _("Specify data directory\n") +
" -proxy=<ip:port> \t " + _("Connect through socks4 proxy\n") +
" -dns \t " + _("Allow DNS lookups for addnode and connect\n") +
" -addnode=<ip> \t " + _("Add a node to connect to\n") +
" -connect=<ip> \t\t " + _("Connect only to the specified node\n") +
" -nolisten \t " + _("Don't accept connections from outside\n") +
#ifdef USE_UPNP
#if USE_UPNP
" -noupnp \t " + _("Don't attempt to use UPnP to map the listening port\n") +
#else
" -upnp \t " + _("Attempt to use UPnP to map the listening port\n") +
#endif
#endif
" -paytxfee=<amt> \t " + _("Fee per KB to add to transactions you send\n") +
#ifdef GUI
" -server \t\t " + _("Accept command line and JSON-RPC commands\n") +
#endif
#ifndef __WXMSW__
" -daemon \t\t " + _("Run in the background as a daemon and accept commands\n") +
#endif
" -testnet \t\t " + _("Use the test network\n") +
" -rpcuser=<user> \t " + _("Username for JSON-RPC connections\n") +
" -rpcpassword=<pw>\t " + _("Password for JSON-RPC connections\n") +
" -rpcport=<port> \t\t " + _("Listen for JSON-RPC connections on <port> (default: 8332)\n") +
" -rpcallowip=<ip> \t\t " + _("Allow JSON-RPC connections from specified IP address\n") +
" -rpcconnect=<ip> \t " + _("Send commands to node running on <ip> (default: 127.0.0.1)\n") +
" -keypool=<n> \t " + _("Set key pool size to <n> (default: 100)\n") +
" -rescan \t " + _("Rescan the block chain for missing wallet transactions\n");
#ifdef USE_SSL
strUsage += string() +
_("\nSSL options: (see the Bitcoin Wiki for SSL setup instructions)\n") +
" -rpcssl \t " + _("Use OpenSSL (https) for JSON-RPC connections\n") +
" -rpcsslcertificatechainfile=<file.cert>\t " + _("Server certificate file (default: server.cert)\n") +
" -rpcsslprivatekeyfile=<file.pem> \t " + _("Server private key (default: server.pem)\n") +
" -rpcsslciphers=<ciphers> \t " + _("Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n");
#endif
strUsage += string() +
" -? \t\t " + _("This help message\n");
#if defined(__WXMSW__) && defined(GUI)
// Tabs make the columns line up in the message box
@@ -173,11 +203,35 @@ bool AppInit2(int argc, char* argv[])
return false;
}
if (mapArgs.count("-debug"))
fDebug = true;
fDebug = GetBoolArg("-debug");
fAllowDNS = GetBoolArg("-dns");
if (mapArgs.count("-printtodebugger"))
fPrintToDebugger = true;
#ifndef __WXMSW__
fDaemon = GetBoolArg("-daemon");
#else
fDaemon = false;
#endif
if (fDaemon)
fServer = true;
else
fServer = GetBoolArg("-server");
/* force fServer when running without GUI */
#ifndef GUI
fServer = true;
#endif
fPrintToConsole = GetBoolArg("-printtoconsole");
fPrintToDebugger = GetBoolArg("-printtodebugger");
fTestNet = GetBoolArg("-testnet");
fNoListen = GetBoolArg("-nolisten");
fLogTimestamps = GetBoolArg("-logtimestamps");
for (int i = 1; i < argc; i++)
if (!IsSwitchChar(argv[i][0]))
fCommandLine = true;
if (fCommandLine)
{
@@ -185,10 +239,32 @@ bool AppInit2(int argc, char* argv[])
exit(ret);
}
#ifndef __WXMSW__
if (fDaemon)
{
// Daemonize
pid_t pid = fork();
if (pid < 0)
{
fprintf(stderr, "Error: fork() returned %d errno %d\n", pid, errno);
return false;
}
if (pid > 0)
{
CreatePidFile(GetPidFile(), pid);
return true;
}
pid_t sid = setsid();
if (sid < 0)
fprintf(stderr, "Error: setsid() returned %d errno %d\n", sid, errno);
}
#endif
if (!fDebug && !pszSetDataDir[0])
ShrinkDebugFile();
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
printf("Bitcoin version %d.%d.%d%s beta\n", VERSION/10000, (VERSION/100)%100, VERSION%100, pszSubVer);
printf("Bitcoin version %s\n", FormatFullVersion().c_str());
#ifdef GUI
printf("OS version %s\n", ((string)wxGetOsDescription()).c_str());
printf("System default language is %d %s\n", g_locale.GetSystemLanguage(), ((string)g_locale.GetSysName()).c_str());
@@ -196,7 +272,7 @@ bool AppInit2(int argc, char* argv[])
#endif
printf("Default data directory %s\n", GetDefaultDataDir().c_str());
if (mapArgs.count("-loadblockindextest"))
if (GetBoolArg("-loadblockindextest"))
{
CTxDB txdb("r");
txdb.LoadBlockIndex();
@@ -209,8 +285,7 @@ bool AppInit2(int argc, char* argv[])
// Required to protect the database files if we're going to keep deleting log.*
//
#if defined(__WXMSW__) && defined(GUI)
// todo: wxSingleInstanceChecker wasn't working on Linux, never deleted its lock file
// maybe should go by whether successfully bind port 8333 instead
// wxSingleInstanceChecker doesn't work on Linux
wxString strMutexName = wxString("bitcoin_running.") + getenv("HOMEPATH");
for (int i = 0; i < strMutexName.size(); i++)
if (!isalnum(strMutexName[i]))
@@ -222,7 +297,6 @@ bool AppInit2(int argc, char* argv[])
unsigned int nStart = GetTime();
loop
{
// TODO: find out how to do this in Linux, or replace with wxWidgets commands
// Show the previous instance and exit
HWND hwndPrev = FindWindowA("wxWindowClassNR", "Bitcoin");
if (hwndPrev)
@@ -246,15 +320,28 @@ bool AppInit2(int argc, char* argv[])
}
#endif
// Bind to the port early so we can tell if another instance is already running.
// This is a backup to wxSingleInstanceChecker, which doesn't work on Linux.
string strErrors;
if (!BindListenPort(strErrors))
// Make sure only a single bitcoin process is using the data directory.
string strLockFile = GetDataDir() + "/.lock";
FILE* file = fopen(strLockFile.c_str(), "a"); // empty lock file; created if it doesn't exist.
if (file) fclose(file);
static boost::interprocess::file_lock lock(strLockFile.c_str());
if (!lock.try_lock())
{
wxMessageBox(strErrors, "Bitcoin");
wxMessageBox(strprintf(_("Cannot obtain a lock on data directory %s. Bitcoin is probably already running."), GetDataDir().c_str()), "Bitcoin");
return false;
}
// Bind to the port early so we can tell if another instance is already running.
string strErrors;
if (!fNoListen)
{
if (!BindListenPort(strErrors))
{
wxMessageBox(strErrors, "Bitcoin");
return false;
}
}
//
// Load data files
//
@@ -282,6 +369,24 @@ bool AppInit2(int argc, char* argv[])
strErrors += _("Error loading wallet.dat \n");
printf(" wallet %15"PRI64d"ms\n", GetTimeMillis() - nStart);
CBlockIndex *pindexRescan = pindexBest;
if (GetBoolArg("-rescan"))
pindexRescan = pindexGenesisBlock;
else
{
CWalletDB walletdb;
CBlockLocator locator;
if (walletdb.ReadBestBlock(locator))
pindexRescan = locator.GetBlockIndex();
}
if (pindexBest != pindexRescan)
{
printf("Rescanning last %i blocks (from block %i)...\n", pindexBest->nHeight - pindexRescan->nHeight, pindexRescan->nHeight);
nStart = GetTimeMillis();
ScanForWalletTransactions(pindexRescan);
printf(" rescan %15"PRI64d"ms\n", GetTimeMillis() - nStart);
}
printf("Done loading\n");
//// debug print
@@ -294,7 +399,7 @@ bool AppInit2(int argc, char* argv[])
if (!strErrors.empty())
{
wxMessageBox(strErrors, "Bitcoin");
wxMessageBox(strErrors, "Bitcoin", wxOK | wxICON_ERROR);
return false;
}
@@ -304,7 +409,7 @@ bool AppInit2(int argc, char* argv[])
//
// Parameters
//
if (mapArgs.count("-printblockindex") || mapArgs.count("-printblocktree"))
if (GetBoolArg("-printblockindex") || GetBoolArg("-printblocktree"))
{
PrintBlockTree();
return false;
@@ -333,13 +438,7 @@ bool AppInit2(int argc, char* argv[])
return false;
}
if (mapArgs.count("-gen"))
{
if (mapArgs["-gen"].empty())
fGenerateBitcoins = true;
else
fGenerateBitcoins = (atoi(mapArgs["-gen"].c_str()) != 0);
}
fGenerateBitcoins = GetBoolArg("-gen");
if (mapArgs.count("-proxy"))
{
@@ -354,15 +453,40 @@ bool AppInit2(int argc, char* argv[])
if (mapArgs.count("-addnode"))
{
foreach(string strAddr, mapMultiArgs["-addnode"])
BOOST_FOREACH(string strAddr, mapMultiArgs["-addnode"])
{
CAddress addr(strAddr, NODE_NETWORK);
CAddress addr(strAddr, fAllowDNS);
addr.nTime = 0; // so it won't relay unless successfully connected
if (addr.IsValid())
AddAddress(addr);
}
}
if (mapArgs.count("-dnsseed"))
DNSAddressSeed();
if (mapArgs.count("-paytxfee"))
{
if (!ParseMoney(mapArgs["-paytxfee"], nTransactionFee))
{
wxMessageBox(_("Invalid amount for -paytxfee=<amount>"), "Bitcoin");
return false;
}
if (nTransactionFee > 0.25 * COIN)
wxMessageBox(_("Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction."), "Bitcoin", wxOK | wxICON_EXCLAMATION);
}
if (fHaveUPnP)
{
#if USE_UPNP
if (GetBoolArg("-noupnp"))
fUseUPnP = false;
#else
if (GetBoolArg("-upnp"))
fUseUPnP = true;
#endif
}
//
// Create the main window and start the node
//
@@ -379,13 +503,18 @@ bool AppInit2(int argc, char* argv[])
if (!CreateThread(StartNode, NULL))
wxMessageBox("Error: CreateThread(StartNode) failed", "Bitcoin");
if (mapArgs.count("-server") || fDaemon)
if (fServer)
CreateThread(ThreadRPCServer, NULL);
#ifdef GUI
#if defined(__WXMSW__) && defined(GUI)
if (fFirstRun)
SetStartOnSystemStartup(true);
#endif
#ifndef GUI
while (1)
Sleep(5000);
#endif
return true;
}

View File

@@ -1,7 +1,11 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_INIT_H
#define BITCOIN_INIT_H
void Shutdown(void* parg);
bool AppInit(int argc, char* argv[]);
bool AppInit2(int argc, char* argv[]);
#endif

View File

@@ -4,7 +4,14 @@
#include "headers.h"
using namespace std;
using namespace boost;
int nGotIRCAddresses = 0;
bool fGotExternalIP = false;
void ThreadIRCSeed2(void* parg);
@@ -37,7 +44,7 @@ bool DecodeAddress(string str, CAddress& addr)
return false;
memcpy(&tmp, &vch[0], sizeof(tmp));
addr = CAddress(tmp.ip, tmp.port, NODE_NETWORK);
addr = CAddress(tmp.ip, ntohs(tmp.port), NODE_NETWORK);
return true;
}
@@ -81,18 +88,31 @@ bool RecvLine(SOCKET hSocket, string& strLine)
}
else if (nBytes <= 0)
{
if (fShutdown)
return false;
if (nBytes < 0)
{
int nErr = WSAGetLastError();
if (nErr == WSAEMSGSIZE)
continue;
if (nErr == WSAEWOULDBLOCK || nErr == WSAEINTR || nErr == WSAEINPROGRESS)
{
Sleep(10);
continue;
}
}
if (!strLine.empty())
return true;
// socket closed
printf("IRC socket closed\n");
return false;
}
else
{
// socket error
int nErr = WSAGetLastError();
if (nErr != WSAEMSGSIZE && nErr != WSAEINTR && nErr != WSAEINPROGRESS)
if (nBytes == 0)
{
// socket closed
printf("IRC socket closed\n");
return false;
}
else
{
// socket error
int nErr = WSAGetLastError();
printf("IRC recv failed: %d\n", nErr);
return false;
}
@@ -123,11 +143,12 @@ bool RecvLineIRC(SOCKET hSocket, string& strLine)
}
}
int RecvUntil(SOCKET hSocket, const char* psz1, const char* psz2=NULL, const char* psz3=NULL)
int RecvUntil(SOCKET hSocket, const char* psz1, const char* psz2=NULL, const char* psz3=NULL, const char* psz4=NULL)
{
loop
{
string strLine;
strLine.reserve(10000);
if (!RecvLineIRC(hSocket, strLine))
return 0;
printf("IRC %s\n", strLine.c_str());
@@ -137,6 +158,8 @@ int RecvUntil(SOCKET hSocket, const char* psz1, const char* psz2=NULL, const cha
return 2;
if (psz3 && strLine.find(psz3) != -1)
return 3;
if (psz4 && strLine.find(psz4) != -1)
return 4;
}
}
@@ -154,13 +177,84 @@ bool Wait(int nSeconds)
return true;
}
bool RecvCodeLine(SOCKET hSocket, const char* psz1, string& strRet)
{
strRet.clear();
loop
{
string strLine;
if (!RecvLineIRC(hSocket, strLine))
return false;
vector<string> vWords;
ParseString(strLine, ' ', vWords);
if (vWords.size() < 2)
continue;
if (vWords[1] == psz1)
{
printf("IRC %s\n", strLine.c_str());
strRet = strLine;
return true;
}
}
}
bool GetIPFromIRC(SOCKET hSocket, string strMyName, unsigned int& ipRet)
{
Send(hSocket, strprintf("USERHOST %s\r", strMyName.c_str()).c_str());
string strLine;
if (!RecvCodeLine(hSocket, "302", strLine))
return false;
vector<string> vWords;
ParseString(strLine, ' ', vWords);
if (vWords.size() < 4)
return false;
string str = vWords[3];
if (str.rfind("@") == string::npos)
return false;
string strHost = str.substr(str.rfind("@")+1);
// Hybrid IRC used by lfnet always returns IP when you userhost yourself,
// but in case another IRC is ever used this should work.
printf("GetIPFromIRC() got userhost %s\n", strHost.c_str());
if (fUseProxy)
return false;
CAddress addr(strHost, 0, true);
if (!addr.IsValid())
return false;
ipRet = addr.ip;
return true;
}
void ThreadIRCSeed(void* parg)
{
if (mapArgs.count("-connect"))
IMPLEMENT_RANDOMIZE_STACK(ThreadIRCSeed(parg));
try
{
ThreadIRCSeed2(parg);
}
catch (std::exception& e) {
PrintExceptionContinue(&e, "ThreadIRCSeed()");
} catch (...) {
PrintExceptionContinue(NULL, "ThreadIRCSeed()");
}
printf("ThreadIRCSeed exiting\n");
}
void ThreadIRCSeed2(void* parg)
{
/* Dont advertise on IRC if we don't allow incoming connections */
if (mapArgs.count("-connect") || fNoListen)
return;
if (mapArgs.count("-noirc"))
if (GetBoolArg("-noirc"))
return;
printf("ThreadIRCSeed started\n");
int nErrorWait = 10;
@@ -171,13 +265,13 @@ void ThreadIRCSeed(void* parg)
while (!fShutdown)
{
//CAddress addrConnect("216.155.130.130:6667"); // chat.freenode.net
CAddress addrConnect("92.243.23.21:6667"); // irc.lfnet.org
CAddress addrConnect("92.243.23.21", 6667); // irc.lfnet.org
if (!fTOR)
{
//struct hostent* phostent = gethostbyname("chat.freenode.net");
struct hostent* phostent = gethostbyname("irc.lfnet.org");
if (phostent && phostent->h_addr_list && phostent->h_addr_list[0])
addrConnect = CAddress(*(u_long*)phostent->h_addr_list[0], htons(6667));
CAddress addrIRC("irc.lfnet.org", 6667, true);
if (addrIRC.IsValid())
addrConnect = addrIRC;
}
SOCKET hSocket;
@@ -191,7 +285,7 @@ void ThreadIRCSeed(void* parg)
return;
}
if (!RecvUntil(hSocket, "Found your hostname", "using your IP address instead", "Couldn't look up your hostname"))
if (!RecvUntil(hSocket, "Found your hostname", "using your IP address instead", "Couldn't look up your hostname", "ignoring hostname"))
{
closesocket(hSocket);
hSocket = INVALID_SOCKET;
@@ -231,11 +325,34 @@ void ThreadIRCSeed(void* parg)
}
Sleep(500);
Send(hSocket, "JOIN #bitcoin\r");
Send(hSocket, "WHO #bitcoin\r");
// Get our external IP from the IRC server and re-nick before joining the channel
CAddress addrFromIRC;
if (GetIPFromIRC(hSocket, strMyName, addrFromIRC.ip))
{
printf("GetIPFromIRC() returned %s\n", addrFromIRC.ToStringIP().c_str());
if (!fUseProxy && addrFromIRC.IsRoutable())
{
// IRC lets you to re-nick
fGotExternalIP = true;
addrLocalHost.ip = addrFromIRC.ip;
strMyName = EncodeAddress(addrLocalHost);
Send(hSocket, strprintf("NICK %s\r", strMyName.c_str()).c_str());
}
}
if (fTestNet) {
Send(hSocket, "JOIN #bitcoinTEST\r");
Send(hSocket, "WHO #bitcoinTEST\r");
} else {
// randomly join #bitcoin00-#bitcoin99
int channel_number = GetRandInt(100);
Send(hSocket, strprintf("JOIN #bitcoin%02d\r", channel_number).c_str());
Send(hSocket, strprintf("WHO #bitcoin%02d\r", channel_number).c_str());
}
int64 nStart = GetTime();
string strLine;
strLine.reserve(10000);
while (!fShutdown && RecvLineIRC(hSocket, strLine))
{
if (strLine.empty() || strLine.size() > 900 || strLine[0] != ':')
@@ -271,9 +388,9 @@ void ThreadIRCSeed(void* parg)
CAddress addr;
if (DecodeAddress(pszName, addr))
{
addr.nTime = GetAdjustedTime() - 51 * 60;
if (AddAddress(addr))
printf("IRC got new address\n");
addr.nTime = GetAdjustedTime();
if (AddAddress(addr, 51 * 60))
printf("IRC got new address: %s\n", addr.ToString().c_str());
nGotIRCAddresses++;
}
else

View File

@@ -1,8 +1,13 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_IRC_H
#define BITCOIN_IRC_H
bool RecvLine(SOCKET hSocket, string& strLine);
bool RecvLine(SOCKET hSocket, std::string& strLine);
void ThreadIRCSeed(void* parg);
extern int nGotIRCAddresses;
extern bool fGotExternalIP;
#endif

View File

@@ -342,7 +342,7 @@ namespace json_spirit
{
std::ostringstream os;
/// satoshi: tell the types by name instead of by number
///// Bitcoin: Tell the types by name instead of by number
os << "value is type " << Value_type_name[type()] << ", expected " << Value_type_name[vtype];
throw std::runtime_error( os.str() );

View File

@@ -124,8 +124,11 @@ namespace json_spirit
case str_type: output( value.get_str() ); break;
case bool_type: output( value.get_bool() ); break;
case int_type: output_int( value ); break;
case real_type: os_ << std::showpoint << std::setprecision( 16 )
/// Bitcoin: Added std::fixed and changed precision from 16 to 8
case real_type: os_ << std::showpoint << std::fixed << std::setprecision(8)
<< value.get_real(); break;
case null_type: os_ << "null"; break;
default: assert( false );
}

View File

@@ -1,7 +1,12 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_KEY_H
#define BITCOIN_KEY_H
#include <openssl/ec.h>
#include <openssl/ecdsa.h>
#include <openssl/obj_mac.h>
// secp160k1
// const unsigned int PRIVATE_KEY_SIZE = 192;
@@ -36,7 +41,7 @@ public:
// secure_allocator is defined in serialize.h
typedef vector<unsigned char, secure_allocator<unsigned char> > CPrivKey;
typedef std::vector<unsigned char, secure_allocator<unsigned char> > CPrivKey;
@@ -109,7 +114,7 @@ public:
return vchPrivKey;
}
bool SetPubKey(const vector<unsigned char>& vchPubKey)
bool SetPubKey(const std::vector<unsigned char>& vchPubKey)
{
const unsigned char* pbegin = &vchPubKey[0];
if (!o2i_ECPublicKey(&pkey, &pbegin, vchPubKey.size()))
@@ -118,19 +123,19 @@ public:
return true;
}
vector<unsigned char> GetPubKey() const
std::vector<unsigned char> GetPubKey() const
{
unsigned int nSize = i2o_ECPublicKey(pkey, NULL);
if (!nSize)
throw key_error("CKey::GetPubKey() : i2o_ECPublicKey failed");
vector<unsigned char> vchPubKey(nSize, 0);
std::vector<unsigned char> vchPubKey(nSize, 0);
unsigned char* pbegin = &vchPubKey[0];
if (i2o_ECPublicKey(pkey, &pbegin) != nSize)
throw key_error("CKey::GetPubKey() : i2o_ECPublicKey returned unexpected size");
return vchPubKey;
}
bool Sign(uint256 hash, vector<unsigned char>& vchSig)
bool Sign(uint256 hash, std::vector<unsigned char>& vchSig)
{
vchSig.clear();
unsigned char pchSig[10000];
@@ -142,7 +147,7 @@ public:
return true;
}
bool Verify(uint256 hash, const vector<unsigned char>& vchSig)
bool Verify(uint256 hash, const std::vector<unsigned char>& vchSig)
{
// -1 = error, 0 = bad sig, 1 = good
if (ECDSA_verify(0, (unsigned char*)&hash, sizeof(hash), &vchSig[0], vchSig.size(), pkey) != 1)
@@ -150,7 +155,7 @@ public:
return true;
}
static bool Sign(const CPrivKey& vchPrivKey, uint256 hash, vector<unsigned char>& vchSig)
static bool Sign(const CPrivKey& vchPrivKey, uint256 hash, std::vector<unsigned char>& vchSig)
{
CKey key;
if (!key.SetPrivKey(vchPrivKey))
@@ -158,7 +163,7 @@ public:
return key.Sign(hash, vchSig);
}
static bool Verify(const vector<unsigned char>& vchPubKey, uint256 hash, const vector<unsigned char>& vchSig)
static bool Verify(const std::vector<unsigned char>& vchPubKey, uint256 hash, const std::vector<unsigned char>& vchSig)
{
CKey key;
if (!key.SetPubKey(vchPubKey))
@@ -166,3 +171,5 @@ public:
return key.Verify(hash, vchSig);
}
};
#endif

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

87
src/makefile.mingw Normal file
View File

@@ -0,0 +1,87 @@
# Copyright (c) 2009-2010 Satoshi Nakamoto
# Distributed under the MIT/X11 software license, see the accompanying
# file license.txt or http://www.opensource.org/licenses/mit-license.php.
USE_UPNP:=0
INCLUDEPATHS= \
-I"C:\boost-1.43.0-mgw" \
-I"C:\db-4.7.25.NC-mgw\build_unix" \
-I"C:\openssl-1.0.0d-mgw\include" \
-I"C:\wxWidgets-2.9.1-mgw\lib\gcc_lib\mswud" \
-I"C:\wxWidgets-2.9.1-mgw\include"
LIBPATHS= \
-L"C:\boost-1.43.0-mgw\stage\lib" \
-L"C:\db-4.7.25.NC-mgw\build_unix" \
-L"C:\openssl-1.0.0d-mgw" \
-L"C:\wxWidgets-2.9.1-mgw\lib\gcc_lib"
WXLIBS= \
-l wxmsw29ud_html -l wxmsw29ud_core -l wxmsw29ud_adv -l wxbase29ud -l wxtiffd -l wxjpegd -l wxpngd -l wxzlibd
LIBS= \
-l boost_system-mgw45-mt-s-1_43 \
-l boost_filesystem-mgw45-mt-s-1_43 \
-l boost_program_options-mgw45-mt-s-1_43 \
-l boost_thread-mgw45-mt-s-1_43 \
-l db_cxx \
-l ssl \
-l crypto
DEFS=-DWIN32 -D__WXMSW__ -D_WINDOWS -DNOPCH -DUSE_SSL
DEBUGFLAGS=-g -D__WXDEBUG__
CFLAGS=-mthreads -O2 -w -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h \
script.h db.h net.h irc.h main.h rpc.h uibase.h ui.h noui.h init.h
ifdef USE_UPNP
INCLUDEPATHS += -I"C:\upnpc-exe-win32-20110215"
LIBPATHS += -L"C:\upnpc-exe-win32-20110215"
LIBS += -l miniupnpc -l iphlpapi
DEFS += -DSTATICLIB -DUSE_UPNP=$(USE_UPNP)
endif
LIBS += -l kernel32 -l user32 -l gdi32 -l comdlg32 -l winspool -l winmm -l shell32 -l comctl32 -l ole32 -l oleaut32 -l uuid -l rpcrt4 -l advapi32 -l ws2_32 -l shlwapi
OBJS= \
obj/util.o \
obj/script.o \
obj/db.o \
obj/net.o \
obj/irc.o \
obj/main.o \
obj/rpc.o \
obj/init.o \
cryptopp/obj/sha.o \
cryptopp/obj/cpu.o
all: bitcoin.exe
obj/%.o: %.cpp $(HEADERS)
g++ -c $(CFLAGS) -DGUI -o $@ $<
cryptopp/obj/%.o: cryptopp/%.cpp
g++ -c $(CFLAGS) -O3 -DCRYPTOPP_X86_ASM_AVAILABLE -o $@ $<
obj/ui_res.o: ../share/ui.rc ../share/pixmaps/bitcoin.ico ../share/pixmaps/check.ico ../share/pixmaps/send16.bmp ../share/pixmaps/send16mask.bmp ../share/pixmaps/send16masknoshadow.bmp ../share/pixmaps/send20.bmp ../share/pixmaps/send20mask.bmp ../share/pixmaps/addressbook16.bmp ../share/pixmaps/addressbook16mask.bmp ../share/pixmaps/addressbook20.bmp ../share/pixmaps/addressbook20mask.bmp
windres $(DEFS) $(INCLUDEPATHS) -o $@ -i $<
bitcoin.exe: $(OBJS) obj/ui.o obj/uibase.o obj/ui_res.o
g++ $(CFLAGS) -mwindows -Wl,--subsystem,windows -o $@ $(LIBPATHS) $^ $(WXLIBS) $(LIBS)
obj/nogui/%.o: %.cpp $(HEADERS)
g++ -c $(CFLAGS) -o $@ $<
bitcoind.exe: $(OBJS:obj/%=obj/nogui/%) obj/ui_res.o
g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS)
clean:
-del /Q obj\*
-del /Q obj\nogui\*
-del /Q cryptopp\obj\*
-del /Q headers.h.gch

View File

@@ -1,10 +1,11 @@
# Copyright (c) 2009-2010 Satoshi Nakamoto
# Copyright (c) 2010 Laszlo Hanyecz
# Distributed under the MIT/X11 software license, see the accompanying
# file license.txt or http://www.opensource.org/licenses/mit-license.php.
# Mac OS X makefile for bitcoin
# Laszlo Hanyecz (solar@heliacal.net)
CXX=llvm-g++
DEPSDIR=/Users/macosuser/bitcoin/deps
INCLUDEPATHS= \
@@ -15,19 +16,22 @@ LIBPATHS= \
WXLIBS=$(shell $(DEPSDIR)/bin/wx-config --libs --static)
USE_UPNP:=0
LIBS= -dead_strip \
$(DEPSDIR)/lib/libdb_cxx-4.8.a \
$(DEPSDIR)/lib/libboost_system.a \
$(DEPSDIR)/lib/libboost_filesystem.a \
$(DEPSDIR)/lib/libboost_program_options.a \
$(DEPSDIR)/lib/libboost_thread.a \
$(DEPSDIR)/lib/libssl.a \
$(DEPSDIR)/lib/libcrypto.a
DEFS=$(shell $(DEPSDIR)/bin/wx-config --cxxflags) -D__WXMAC_OSX__ -DNOPCH -DMSG_NOSIGNAL=0
DEFS=$(shell $(DEPSDIR)/bin/wx-config --cxxflags) -D__WXMAC_OSX__ -DNOPCH -DMSG_NOSIGNAL=0 -DUSE_SSL
DEBUGFLAGS=-g -DwxDEBUG_LEVEL=0
# ppc doesn't work because we don't support big-endian
CFLAGS=-mmacosx-version-min=10.5 -arch i386 -arch x86_64 -O2 -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
CFLAGS=-mmacosx-version-min=10.5 -arch i386 -arch x86_64 -O3 -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h \
script.h db.h net.h irc.h main.h rpc.h uibase.h ui.h noui.h init.h
@@ -42,28 +46,35 @@ OBJS= \
obj/init.o \
cryptopp/obj/sha.o \
cryptopp/obj/cpu.o
ifdef USE_UPNP
LIBS += $(DEPSDIR)/lib/libminiupnpc.a
DEFS += -DUSE_UPNP=$(USE_UPNP)
endif
all: bitcoin
obj/%.o: %.cpp $(HEADERS)
g++ -c $(CFLAGS) -DGUI -o $@ $<
$(CXX) -c $(CFLAGS) -DGUI -o $@ $<
cryptopp/obj/%.o: cryptopp/%.cpp
g++ -c $(CFLAGS) -O3 -DCRYPTOPP_DISABLE_ASM -o $@ $<
$(CXX) -c $(CFLAGS) -O3 -DCRYPTOPP_DISABLE_ASM -o $@ $<
bitcoin: $(OBJS) obj/ui.o obj/uibase.o
g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ $(WXLIBS) $(LIBS)
$(CXX) $(CFLAGS) -o $@ $(LIBPATHS) $^ $(WXLIBS) $(LIBS)
obj/nogui/%.o: %.cpp $(HEADERS)
g++ -c $(CFLAGS) -o $@ $<
$(CXX) -c $(CFLAGS) -o $@ $<
bitcoind: $(OBJS:obj/%=obj/nogui/%)
g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS)
$(CXX) $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS)
clean:
-rm -f bitcoin bitcoind
-rm -f obj/*.o
-rm -f obj/nogui/*.o
-rm -f cryptopp/obj/*.o

View File

@@ -2,16 +2,15 @@
# Distributed under the MIT/X11 software license, see the accompanying
# file license.txt or http://www.opensource.org/licenses/mit-license.php.
CXX=g++
INCLUDEPATHS= \
-I"/usr/local/include/wx-2.9" \
-I"/usr/local/lib/wx/include/gtk2-unicode-debug-static-2.9"
WXINCLUDEPATHS=$(shell wx-config --cxxflags)
WXLIBS= \
-Wl,-Bstatic \
-l wx_gtk2ud-2.9 \
-Wl,-Bdynamic \
-l gtk-x11-2.0 -l SM
WXLIBS=$(shell wx-config --libs)
USE_UPNP:=0
DEFS=-DNOPCH -DFOURWAYSSE2 -DUSE_SSL
# for boost 1.37, add -mt to the boost libraries
LIBS= \
@@ -21,13 +20,24 @@ LIBS= \
-l boost_program_options \
-l boost_thread \
-l db_cxx \
-l crypto \
-Wl,-Bdynamic \
-l gthread-2.0
-l ssl \
-l crypto
ifdef USE_UPNP
LIBS += -l miniupnpc
DEFS += -DUSE_UPNP=$(USE_UPNP)
endif
LIBS+= \
-Wl,-Bdynamic \
-l gthread-2.0 \
-l z \
-l dl \
-l pthread
DEFS=-D__WXGTK__ -DNOPCH
DEBUGFLAGS=-g -D__WXDEBUG__
CFLAGS=-O2 -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
CXXFLAGS=-O2 -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(DEFS)
HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h \
script.h db.h net.h irc.h main.h rpc.h uibase.h ui.h noui.h init.h
@@ -48,20 +58,20 @@ all: bitcoin
obj/%.o: %.cpp $(HEADERS)
g++ -c $(CFLAGS) -DGUI -o $@ $<
$(CXX) -c $(CXXFLAGS) $(WXINCLUDEPATHS) -DGUI -o $@ $<
cryptopp/obj/%.o: cryptopp/%.cpp
g++ -c $(CFLAGS) -O3 -DCRYPTOPP_DISABLE_SSE2 -o $@ $<
$(CXX) -c $(CXXFLAGS) -O3 -o $@ $<
bitcoin: $(OBJS) obj/ui.o obj/uibase.o
g++ $(CFLAGS) -o $@ $^ $(WXLIBS) $(LIBS)
$(CXX) $(CXXFLAGS) -o $@ $^ $(WXLIBS) $(LIBS)
obj/nogui/%.o: %.cpp $(HEADERS)
g++ -c $(CFLAGS) -o $@ $<
$(CXX) -c $(CXXFLAGS) -o $@ $<
bitcoind: $(OBJS:obj/%=obj/nogui/%)
g++ $(CFLAGS) -o $@ $^ $(LIBS)
$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS)
clean:
@@ -69,3 +79,5 @@ clean:
-rm -f obj/nogui/*.o
-rm -f cryptopp/obj/*.o
-rm -f headers.h.gch
-rm -f bitcoin
-rm -f bitcoind

View File

@@ -7,29 +7,32 @@ INCLUDEPATHS= \
/I"/boost" \
/I"/db/build_windows" \
/I"/openssl/include" \
/I"/wxwidgets/lib/vc_lib/mswud" \
/I"/wxwidgets/lib/vc_lib/mswu" \
/I"/wxwidgets/include"
LIBPATHS= \
/LIBPATH:"/boost/stage/lib" \
/LIBPATH:"/db/build_windows/debug" \
/LIBPATH:"/openssl/out" \
/LIBPATH:"/wxwidgets/lib/vc_lib"
/LIBPATH:"/db/build_windows/Release" \
/LIBPATH:"/openssl/lib" \
/LIBPATH:"/wxwidgets/lib/vc_lib" \
/NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmt.lib \
/NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libcmtd.lib \
/NODEFAULTLIB:msvcrtd.lib
WXLIBS=wxmsw29ud_html.lib wxmsw29ud_core.lib wxmsw29ud_adv.lib wxbase29ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib
WXLIBS=wxmsw29u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib
LIBS= \
libboost_system-vc80-mt-gd.lib \
libboost_filesystem-vc80-mt-gd.lib \
libboost_program_options-vc80-mt-gd.lib \
libboost_thread-vc80-mt-gd.lib \
libdb47sd.lib \
libboost_system-vc100-mt.lib \
libboost_filesystem-vc100-mt.lib \
libboost_program_options-vc100-mt.lib \
libboost_thread-vc100-mt.lib \
libdb47s.lib \
libeay32.lib \
kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib ws2_32.lib shlwapi.lib
DEFS=/DWIN32 /D__WXMSW__ /D_WINDOWS /DNOPCH
DEBUGFLAGS=/Zi /D__WXDEBUG__
CFLAGS=/c /nologo /MDd /EHsc /GR /Zm300 $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
DEBUGFLAGS=/Os
CFLAGS=/MD /c /nologo /EHsc /GR /Zm300 $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h \
script.h db.h net.h irc.h main.h rpc.h uibase.h ui.h noui.h init.h
@@ -82,7 +85,7 @@ obj\ui.res: ui.rc rc/bitcoin.ico rc/check.ico rc/send16.bmp rc/send16mask.bmp r
rc $(INCLUDEPATHS) $(DEFS) /Fo$@ %s
bitcoin.exe: $(OBJS) obj\ui.obj obj\uibase.obj obj\ui.res
link /nologo /DEBUG /SUBSYSTEM:WINDOWS /OUT:$@ $(LIBPATHS) $** $(WXLIBS) $(LIBS)
link /nologo /SUBSYSTEM:WINDOWS /OUT:$@ $(LIBPATHS) $** $(WXLIBS) $(LIBS)
.cpp{obj\nogui}.obj:
@@ -105,7 +108,7 @@ obj\nogui\rpc.obj: $(HEADERS)
obj\nogui\init.obj: $(HEADERS)
bitcoind.exe: $(OBJS:obj\=obj\nogui\) obj\ui.res
link /nologo /DEBUG /OUT:$@ $(LIBPATHS) $** $(LIBS)
link /nologo /OUT:$@ $(LIBPATHS) $** $(LIBS)
clean:

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More