Compare commits

...

657 Commits

Author SHA1 Message Date
Gavin Andresen
ef49d8a6ca Add spanish translation to TRANSLATIONS 2011-10-10 11:25:51 -04:00
Gavin Andresen
e99b8eae65 Merge pull request #577 from paraipanakos/master
Spanish translation for new qt gui
2011-10-10 08:20:53 -07:00
Gavin Andresen
ab877a2dde Merge pull request #576 from luke-jr/bitcoind_build_improvements
bitcoind build improvements
2011-10-10 08:20:28 -07:00
Gavin Andresen
b50ac8f73e Mac OSX release process changes
Rename App Bundle "Bitcoin-Qt.app" instead of "Bitcoin Qt" for
consistency with Windows/Linux.
Update create_osx_dmg.sh script to use macdeployqt tool.
Add ifdef STATIC to makefile.osx to build bitcoind static or dynamic.
2011-10-10 11:13:32 -04:00
Alex B
53f21f6ee7 Added Spanish translation for qt 2011-10-09 23:54:07 +02:00
Luke Dashjr
b4d0588d06 Add support to makefile.unix for the same parameters used by bitcoin-qt.pro, dynamic linking unless STATIC=1 is passed 2011-10-09 14:23:20 -04:00
Gavin Andresen
eab61cd0b2 Merge branch 'master' of github.com:bitcoin/bitcoin 2011-10-09 13:36:10 -04:00
Gavin Andresen
4db9705dd8 Merge pull request #573 from luke-jr/bugfix_bits_string
Bugfix: getmemorypool "bits" should be a hex-string
2011-10-09 10:32:22 -07:00
Gavin Andresen
ddd9b39bd4 Merge pull request #575 from globalcitizen/master
Unix build documentation improvements
2011-10-09 10:27:34 -07:00
globalcitizen
bdf2f7e711 Fix typo. Improve Gentoo instructions. 2011-10-09 17:18:34 +08:00
globalcitizen
4adf78bad3 Improved Gentoo instructions. 2011-10-09 17:16:53 +08:00
globalcitizen
c60aec9c20 Fix extraneous directory specifier, beautify bash syntax $VAR -> ${VAR} 2011-10-09 17:10:43 +08:00
globalcitizen
7b465b663a Collate generic dependency information. Segregate distribution-specific (Ubuntu/Debian) information. Add Gentoo information. 2011-10-09 17:04:35 +08:00
Gavin Andresen
94eaab7710 Bump version to 0.5.0.0 2011-10-08 17:29:47 -04:00
Gavin Andresen
0b3f3657c8 Remove old wx translations, updated qt translations 2011-10-08 17:29:21 -04:00
Gavin Andresen
c1131a28ad Remove ui_res from makefiles 2011-10-07 14:35:36 -04:00
Gavin Andresen
6853e627f1 Fix build on windows and mac
Replaced all occurrences of #if* __WXMSW__ with WIN32,
and all occurrences of __WXMAC_OSX__ with MAC_OSX, and made
sure those are defined appropriately in the makefile and bitcoin-qt.pro.
2011-10-07 11:02:21 -04:00
Gavin Andresen
e9b95e4f6c Merge pull request #572 from delirium---/master
Fix for win64 build
2011-10-06 12:11:07 -07:00
Luke Dashjr
903a255836 Bugfix: "bits" should be a hex-string, not a number (that just doesn't make sense) 2011-10-06 12:47:28 -04:00
Victor Leschuk
b95e6376d0 Fix for 64bit build 2011-10-06 19:53:42 +04:00
Gavin Andresen
32ebde4612 Merge pull request #564 from luke-jr/optimize_remove_CheckWork_delay
Remove 2 second sleep from CheckWork
2011-10-06 07:54:50 -07:00
Gavin Andresen
e653578db3 Merge pull request #566 from luke-jr/optimize_http_status
Optimize HTTP status messages
2011-10-05 12:19:34 -07:00
David Joel Schwartz
ae81b82fb8 Use C's const char* for status strings rather than C++'s std::string, which is slower 2011-10-05 14:48:33 -04:00
Gavin Andresen
9e5322d23a Fix miner_test unit test bug 2011-10-05 14:33:49 -04:00
Gavin Andresen
3a6e468d9a Merge branch 'listsinceblock' of https://github.com/cdhowie/bitcoin 2011-10-05 11:38:24 -04:00
Gavin Andresen
4ffbdcc0f5 Auto-build dependencies 2011-10-05 11:28:08 -04:00
Gavin Andresen
e9e7bb968b Update mac Makefile and build instructions to use MacPorts 2011-10-05 11:10:06 -04:00
Gavin Andresen
ff3b235580 Merge pull request #545 from tcatm/remove-addr.txt
remove code that reads addr.txt in LoadAddreses()
2011-10-05 07:41:07 -07:00
Gavin Andresen
b898c8fce6 Merge branch 'no-cryptopp' of https://github.com/tcatm/bitcoin 2011-10-05 10:38:10 -04:00
Gavin Andresen
8bc52d0692 Merge pull request #558 from luke-jr/bugfix_CreateThread_ThreadSocketHandler_errReporting
Bugfix: ThreadSocketHandler creation error
2011-10-05 07:27:56 -07:00
Gavin Andresen
9ec4fa7b50 Merge pull request #561 from luke-jr/optimize_conn_adjtime
Only GetAdjustedTime once for the retry loop
2011-10-05 07:22:52 -07:00
Luke Dashjr
3552497ae5 Send "Connection: close" HTTP header with JSON-RPC requests (client) 2011-10-05 10:15:07 -04:00
Gavin Andresen
5c5d310a0a Merge pull request #549 from enmaku/master
Python scripts demonstrating using RPC to keep passphrases out of shell history/etc.
2011-10-04 07:41:00 -07:00
Gavin Andresen
887b9d4113 Merge pull request #547 from TheBlueMatt/build-updates
Update release-process to point to gitian.sigs repo.
2011-10-04 07:38:06 -07:00
David Joel Schwartz
514b18722a Remove 2 second sleep from CheckWork 2011-10-04 00:04:43 -04:00
Luke Dashjr
65ba3e2f50 Bugfix: report error creating ThreadSocketHandler thread just like the rest 2011-10-03 23:45:42 -04:00
Luke Dashjr
a4e6ae101a Only GetAdjustedTime once for the retry loop 2011-10-03 23:41:47 -04:00
David Perry
5a105cdb7d Added bitrpc.py which allows for sending of all standard Bitcoin commands via RPC rather than as command line args.
Signed-off-by: David Perry <enmaku@gmail.com>
2011-10-03 16:10:03 -07:00
David Perry
8ad100a55b Added wallet tools
Signed-off-by: David Perry <enmaku@gmail.com>
2011-10-03 14:04:11 -07:00
Gavin Andresen
3504801778 Declare integer constant LL 2011-10-03 13:10:31 -04:00
Matt Corallo
c923fe71b4 Update release-process to point to gitian.sigs repo. 2011-10-03 12:59:37 -04:00
Nils Schneider
74567f7ef1 remove code that reads addr.txt in LoadAddreses() 2011-10-01 22:27:02 +02:00
Gavin Andresen
1ff3583e41 Merge pull request #543 from laanwj/utiltests
Remove possibility of 63 bit overflow in ParseMoney
2011-10-01 12:00:24 -07:00
Gavin Andresen
ad9ceecf9c Merge pull request #476 from forrestv/getmemorypool
Added RPC call 'getmemorypool' for p2p mining pools
2011-10-01 11:57:51 -07:00
Forrest Voight
074d584a04 Added RPC call 'getmemorypool' that provides everything needed to construct a block with a custom generation transaction and submit a solution
getmemorypool [data]
If [data] is not specified, returns data needed to construct a block to work on:
  "version" : block version
  "previousblockhash" : hash of current highest block
  "transactions" : contents of non-coinbase transactions that should be included in the next block
  "coinbasevalue" : maximum allowable input to coinbase transaction, including the generation award and transaction fees
  "time" : timestamp appropriate for next block
  "bits" : compressed target of next block
If [data] is specified, tries to solve the block and returns true if it was successful.
2011-10-01 14:42:54 -04:00
Wladimir J. van der Laan
2f7f2a5fca remove possibility of 63 bit overflow in ParseMoney
- also, add unit tests for various functions in util.cpp/util.h
2011-10-01 17:29:46 +02:00
Nils Schneider
452506fc41 simpler ByteReverse 2011-09-30 20:00:30 +02:00
Nils Schneider
6ccff2cbde remove cryptopp dependency, add simple unittest for SHA256Transform() 2011-09-30 20:00:22 +02:00
Gavin Andresen
f4769e44a3 Merge pull request #524 from sipa/signandverif
Sign and verify message with bitcoin address
2011-09-30 05:04:26 -07:00
Gavin Andresen
e297ea999e Merge pull request #542 from laanwj/qt2
qmake build system improvements
2011-09-29 12:06:03 -07:00
Wladimir J. van der Laan
07e2882366 qmake build system improvements
- USE_SSL=1 to support RPC SSL
- BDB_LIB_SUFFIX= to link against specific BDB version
- Fix typo
- Start lrelease during qmake phase to prevent errors/warnings
2011-09-29 20:39:56 +02:00
Gavin Andresen
9a7e5ed3b0 Merge pull request #539 from laanwj/qt2
Qt GUI updates
2011-09-29 10:50:40 -07:00
Nils Schneider
7dd4001b40 Merge pull request #537 from tcatm/remove-deprecated-rpcs
remove deprecated RPCs
2011-09-29 09:39:11 -07:00
Wladimir J. van der Laan
20091df725 Add assertion size>0 to MedianFilter 2011-09-29 17:17:42 +02:00
Gavin Andresen
e8e0e23d20 Merge pull request #538 from tcatm/deprecate-midstate
deprecate midstate and hash1 in getwork
2011-09-29 07:57:22 -07:00
Wladimir J. van der Laan
f33a43efdf Update "other files" in Qt Creator with all documentation now that the projects merged 2011-09-28 22:01:47 +02:00
Wladimir J. van der Laan
002a4dcad0 Merge branch 'master' of https://github.com/bitcoin/bitcoin
Conflicts:
	.gitignore (used upstream version)
	bitcoin-qt.pro
2011-09-28 21:52:32 +02:00
Wladimir J. van der Laan
a8b95ce6ed use median filter for peer-reported reported number of blocks
- fixes problem that one misconfigured or malicious node can mess up progress bar
- implementation in src/util.h
- testcase in src/test/util_tests.cpp
2011-09-28 21:35:58 +02:00
Jeff Garzik
4dcad1d294 Merge pull request #536 from TheBlueMatt/build-updates
Update release-process.txt with gitian release instructions.
2011-09-28 09:27:25 -07:00
Nils Schneider
f8acc29fca deprecate midstate and hash1 in getwork 2011-09-28 17:54:44 +02:00
Nils Schneider
eec44dad17 remove deprecated RPCs 2011-09-28 17:43:31 +02:00
Matt Corallo
45723584c5 Update release-process.txt with gitian release instructions. 2011-09-28 11:19:09 -04:00
Jeff Garzik
ab1bbe5492 Merge pull request #533 from alexwaters/readme
Updated readme file with timers.
2011-09-27 20:47:06 -07:00
Wladimir J. van der Laan
5902040874 translation handling improvements
- automatically build binary translation files in qmake/make
- roll translations into resource file and executable, to simply installation
2011-09-27 20:47:51 +02:00
Pieter Wuille
3a570dc80a Use key recovery for message signatures
Instead of encoding the public key inside the signature string, use
key recovery to do verification. This allows 88-character base64-encoded
signature strings instead of 188-character ones.
2011-09-27 19:48:22 +02:00
Pieter Wuille
01cc526318 Compact signatures and key recovery
Introduce a new type of signatures that are only 65 bytes long, and allow
reconstruction of the public key that was used to create the signature.
2011-09-27 19:48:22 +02:00
Pieter Wuille
d9867551fc base64-based sign/verify 2011-09-27 19:48:22 +02:00
Pieter Wuille
b53d6284eb Incorporate pubkey in signature, check based on address
Include the public key in the signature string, to allow verification
based on address.
2011-09-27 19:48:22 +02:00
Khalahan
cc2567e32f Sign and verify message with bitcoin address and public key
Add padding to input (fixed string + address) before hashing
2011-09-27 19:48:22 +02:00
Pieter Wuille
e93bf37e86 Test case for base64 encode/decode 2011-09-27 19:48:10 +02:00
Pieter Wuille
4b603f1cd6 Inline base64 encoder/decoder
This replaces the openssl-based base64 encoder and decoder with a more
efficient internal one. Tested against the rfc4648 test vectors.

Decoder is based on JoelKatz' version.
2011-09-27 19:47:35 +02:00
JoelKatz
4e67a6216b Faster Base64 decoder. 2011-09-27 19:47:34 +02:00
Wladimir J. van der Laan
d28ed9c98e Merge pull request #25 from Matoking/master
Send Coins page changes
2011-09-27 09:34:25 -07:00
Janne Pulkkinen
a1ef0d19b1 Removing the if statement entirely - not needed. 2011-09-27 19:20:24 +03:00
Gavin Andresen
a8c108bca1 Remove DoS penalty for SigOpCount or immature transactions 2011-09-27 11:19:57 -04:00
Janne Pulkkinen
609acbf43d Send Coins page not cleared when changing tabs. Clear all button for clearing the entries 2011-09-27 17:46:19 +03:00
Alex Waters
13945b2a61 Updated readme file with timers. 2011-09-26 22:22:19 -04:00
Gavin Andresen
9a1ce86969 Merge pull request #532 from TheBlueMatt/build-updates
Output build temp files in build/ instead of current directory.
2011-09-26 10:16:03 -07:00
Matt Corallo
36eccc5174 Output build temp files in build/ instead of current directory. 2011-09-26 13:14:34 -04:00
Gavin Andresen
adea540e38 Update build instructions for the new, no-wxwidgets world 2011-09-26 11:40:43 -04:00
Gavin Andresen
81cadd74d2 Fix build: put back rules to build cryptopp files 2011-09-26 11:15:01 -04:00
Gavin Andresen
565c4771b6 Remove wxWidgets
Makefiles now build bitcoind only.
qmake/make in top-level directory is used to build Bitcoin QT
Deleted almost all #ifdef GUI from the code (left one possibly controversial one)
Deleted xpm/ files.
2011-09-26 10:04:04 -04:00
Gavin Andresen
ee1d6e4ed0 Merge pull request #492 from gavinandresen/fasterinitialdownload
Skip verifying transaction signatures during initial block-chain download
2011-09-26 06:21:13 -07:00
Gavin Andresen
b14bd4df58 Skip verifying transaction signatures during initial block-chain download 2011-09-26 09:20:22 -04:00
Gavin Andresen
6b8a5ab622 Bump version to 0.4.1 2011-09-26 09:16:56 -04:00
Gavin Andresen
5df25e78db Merge pull request #513 from cjdelisle/feature-hardening
Hardening
2011-09-26 06:12:59 -07:00
Gavin Andresen
17e2c24645 Merge pull request #517 from gavinandresen/DoSprevention
Denial-of-service prevention
2011-09-26 06:06:16 -07:00
Gavin Andresen
f7f2a36925 Merge pull request #521 from laanwj/qt
Qt GUI
2011-09-26 06:05:11 -07:00
Wladimir J. van der Laan
010c4fc0b5 Change define to determine use of DBUS to USE_DBUS, to prevent overlap with Qt-defined QT_DBUS 2011-09-24 11:56:33 +02:00
Wladimir J. van der Laan
99cec89cb3 make qmake build system more configurable (as suggested by lukejr) 2011-09-24 11:43:58 +02:00
Jeff Garzik
f8937b2d3b Merge pull request #528 from TheBlueMatt/gitian-downloader
Add win32 gitian download config.
2011-09-23 10:56:25 -07:00
Gavin Andresen
c1ffdc5801 Update release process for repackaging gitian builds, and osx dmg 2011-09-23 11:18:22 -04:00
Wladimir J. van der Laan
0961c2fc0d Merge branch 'master' of https://github.com/bitcoin/bitcoin 2011-09-23 13:42:04 +02:00
Matt Corallo
3fc4c3a9f1 Add win32 gitian download config. 2011-09-23 00:52:08 -04:00
Gavin Andresen
a4f2c8419f Script to create OSX .dmg diskimage file. 2011-09-22 17:16:13 -04:00
Gavin Andresen
c7eb151ad0 Merge pull request #527 from TheBlueMatt/gitian-downloader
Restructure gitian files and add download config files.
2011-09-22 13:54:42 -07:00
Matt Corallo
0920ad152f Restructure gitian files and add download config files. 2011-09-22 16:52:49 -04:00
Gavin Andresen
16d6963ef6 Fix QA email address 2011-09-22 16:50:32 -04:00
Gavin Andresen
da799d92fa Merge pull request #526 from sipa/nl
Updated dutch translation
2011-09-22 13:45:48 -07:00
Pieter Wuille
90efeb5ddb Updated dutch translation 2011-09-22 19:22:17 +02:00
Wladimir J. van der Laan
b8afa21fad show balance in sendcoins screen (issue #24) 2011-09-22 19:05:04 +02:00
Jeff Garzik
864e49a12c Merge pull request #525 from TheBlueMatt/master
Update binary mo to match latest po translation.
2011-09-22 09:48:02 -07:00
Matt Corallo
2fc80399b7 Update binary mo to match latest po translation. 2011-09-22 12:45:52 -04:00
Gavin Andresen
806704c237 More denial-of-service misbehavior detection: version/addr/inv/getdata messages 2011-09-21 12:50:13 -04:00
Gavin Andresen
3e52aaf212 Transaction/Block denial-of-service detection/response 2011-09-21 12:50:12 -04:00
Gavin Andresen
15f3ad4dbd Framework for banning mis-behaving peers 2011-09-21 12:49:53 -04:00
Gavin Andresen
54d02f158d SetMockTime() for cleaner unit testing 2011-09-21 12:01:56 -04:00
Jeff Garzik
700f942692 Merge pull request #522 from sipa/minorfix
SocketHandler thread can be detached
2011-09-20 11:47:02 -07:00
Nils Schneider
2d294e080c Merge pull request #520 from tcatm/less-logging
log low-level network messages only when fDebug is set
2011-09-19 12:19:15 -07:00
Wladimir J. van der Laan
9b490f71b0 put Q_OBJECT everywhere it should be (removes warnings when running lupdate) 2011-09-19 13:08:24 +02:00
Pieter Wuille
88367a5fb8 SocketHandler thread can be detached 2011-09-19 13:08:22 +02:00
Wladimir J. van der Laan
0465c41c84 move current qt specific readme to doc/, restore original README.md 2011-09-18 12:47:49 +02:00
Wladimir J. van der Laan
e122e42354 assure that base bitcoind and bitcoin still build 2011-09-18 12:44:38 +02:00
Wladimir J. van der Laan
3c66913cd2 move qt-specific scripts to qt-specific directory in scripts/ 2011-09-18 12:44:32 +02:00
Nils Schneider
e674680ddd missed printf in AbortMessage(); merged printfs in EndMessage 2011-09-17 21:36:58 +02:00
Nils Schneider
59090133c0 log low-level network messages only when fDebug is set 2011-09-17 18:29:41 +02:00
Jeff Garzik
7337b343cd Merge pull request #519 from dabaopku/master
Chinese Simp translation update
2011-09-17 09:24:54 -07:00
Dean Lee
67c6994370 Update to the Chinese Simp translation 2011-09-17 19:11:29 +08:00
Wladimir J. van der Laan
5dd7318db7 Merge branch 'master' of https://github.com/bitcoin/bitcoin 2011-09-16 06:55:47 +02:00
Gavin Andresen
217208a36d Merge pull request #516 from TheBlueMatt/nsisiconfix
Update bitcoin icon to make nsis setup exe deterministic.
2011-09-14 08:03:36 -07:00
Matt Corallo
6083295f46 Update bitcoin icon to make nsis setup exe deterministic.
This adds a 32x32 16-bit icon to the bitcoin.ico file.
Though this realistically probably looks worse than the 32-bit
32x32 being displayed on a 16-bit monitor, it makes the nsis
setup exe deterministic in gitian output (go figure) which makes
the slight visual loss for users of very old monitors/computers
worth it.
2011-09-14 10:59:54 -04:00
Jeff Garzik
53c6c12886 Merge pull request #512 from paraipanakos/master
Spanish translation update
2011-09-13 13:21:09 -07:00
flower
c1e667222a make German translation up-to-date 2011-09-13 18:55:50 +02:00
cjdelisle
3f94dfa25f Add some hardening to protect against unknown/future exploits. 2011-09-12 17:09:55 -04:00
Jeff Garzik
38fd861fff Merge pull request #511 from mibe/translation-de
Updated German translation
2011-09-11 18:45:00 -07:00
Michael Bemmerl
c4149423f9 Updated German translation 2011-09-12 01:16:44 +02:00
Alex B
b4af75c07f Spanish translation update 2011-09-11 22:08:43 +02:00
Wladimir J. van der Laan
83312d7c6c remove transparency effect and windows-specific code for now, it's not working as supposed 2011-09-11 21:06:23 +02:00
Wladimir J. van der Laan
1837644c4a Merge pull request #22 from p2k/master
Some improvements for Mac OS X
2011-09-11 08:52:57 -07:00
p2k
2c1fd3c395 Some Mac OS X specific things
* Added application icon for Mac OS X * Added instructions for compiling
under Mac OS X * Added Portfile for compiling miniupnpc with MacPorts
2011-09-11 17:42:20 +02:00
Wladimir J. van der Laan
d33cc2b5e3 clarify function signature (GetNumBlocksOfPeers) and use number of 'frozen' blocks as initial value for number of peer blocks 2011-09-11 10:49:30 +02:00
Janne Pulkkinen
78b3bf56f7 The synchronization progress bar now compares the amount of total blocks to amount of blocks downloaded at application start-up. Could be probably implemented better. 2011-09-11 10:29:29 +02:00
Gavin Andresen
95cea79e39 Merge pull request #509 from cjdelisle/walletCrypto-wx-minVersion
wxWidgets needs to be at least version 2.9.1 because wallet crypto uses T
2011-09-09 11:46:04 -07:00
Gavin Andresen
b56658bdad Merge pull request #508 from TheBlueMatt/master
Update gitian build descriptors to produce proper builds.
2011-09-09 11:45:46 -07:00
Matt Corallo
0295912479 Update gitian build descriptors to produce proper builds.
Thanks to makomk for finding the bugs here and devrandom
for passing them along (see
https://bitcointalk.org/index.php?topic=42198.msg514312#msg514312)
2011-09-09 12:35:42 -04:00
Gavin Andresen
b7598ceefa Merge pull request #505 from gavinandresen/unique_coinbase
Unique coinbase: Fixes #482
2011-09-09 06:34:37 -07:00
cjdelisle
3448ce56f4 wxWidgets needs to be at least version 2.9.1 because wallet crypto uses ToStdString() which is not in 2.9.0 2011-09-08 20:50:00 -04:00
Wladimir J. van der Laan
9b9e2f1748 http -> https 2011-09-08 18:07:07 +02:00
Wladimir J. van der Laan
a0d2f9a12d Merge branch 'master' of https://github.com/bitcoin/bitcoin
Conflicts:
	.gitignore
2011-09-07 18:57:11 +02:00
Wladimir J. van der Laan
f077d1ad62 fix the build (moved code use 'this' instead of 'window') 2011-09-07 18:16:38 +02:00
Janne Pulkkinen
94723e27ad Pull request #21: windows fixes/cleanup by Matoking 2011-09-07 17:45:07 +02:00
Gavin Andresen
5a3dea451d Merge branch 'unique_coinbase' of git://gitorious.org/~Luke-Jr/bitcoin/luke-jr-bitcoin into unique_coinbase 2011-09-07 10:51:57 -04:00
Gavin Andresen
f92f022eda Merge pull request #500 from gavinandresen/txndeadlock
Fix AddAddress cs_mapaddresses/db transaction deadlock
2011-09-07 07:29:44 -07:00
Gavin Andresen
9406696578 Fix AddAddress cs_mapaddresses/db transaction deadlock 2011-09-06 20:28:15 -04:00
Luke Dashjr
83f4cd156e Bugfix: Use timestamp in coinbase rather than "bits", needed to ensure coinbase txn is unique even if address is the same 2011-09-06 16:43:40 -04:00
Luke Dashjr
49c8e53ee2 Save coinbase, not just extraNonce 2011-09-06 16:43:35 -04:00
Luke Dashjr
b760e25458 Merge branch 'getwork_dedupe' into unique_coinbase 2011-09-06 16:43:32 -04:00
Jeff Garzik
0535644b30 Merge branch 'master' of git://github.com/bitcoin/bitcoin 2011-09-06 16:20:24 -04:00
Jeff Garzik
cbd959c473 Revert "Define MSG_NOSIGNAL to 0 on platforms where it is unavailable."
This reverts commit 6a0296791d.

The change breaks build on Fedora Linux.
2011-09-06 16:19:54 -04:00
Jeff Garzik
ff4bd3977a Merge pull request #503 from TheBlueMatt/translatefix
Add binary mo for new translation.
2011-09-06 12:03:08 -07:00
Matt Corallo
fd5eaf323f Add binary mo for new translation. 2011-09-06 15:01:58 -04:00
Jeff Garzik
074653973e Merge pull request #502 from vsrinivas/master
Define MSG_NOSIGNAL to 0 when it is not defined.  Gets OpenBSD building.
2011-09-06 11:58:42 -07:00
Venkatesh Srinivas
6a0296791d Define MSG_NOSIGNAL to 0 on platforms where it is unavailable.
Enables building bitcoind on OpenBSD.
2011-09-06 14:54:10 -04:00
Jeff Garzik
04f9a37c71 Merge pull request #501 from paraipanakos/master
Added Romanian translation
2011-09-06 11:50:56 -07:00
Alex B
905cbf0bf8 Romanian translation added 2011-09-06 20:41:33 +02:00
Luke Dashjr
e39f925655 ignore stuff 2011-09-06 13:53:04 -04:00
Gavin Andresen
e4626e94f4 Merge pull request #491 from gavinandresen/manytxfix
Optimize database writes for transactions with lots of TxIns.
2011-09-06 10:47:27 -07:00
Gavin Andresen
dc0c768760 Merge pull request #499 from codler/patch-3
Add a note to only include .po file
2011-09-06 10:20:22 -07:00
Han Lin Yap
e03209979b Add a note to only include .po file 2011-09-06 20:13:43 +03:00
Gavin Andresen
c5eed9a1ae Merge pull request #490 from TheBlueMatt/master
Fix build process to actually work (yet again).
2011-09-06 05:26:23 -07:00
Gavin Andresen
a79401b31d Merge pull request #496 from alexwaters/boost_fs3
Support for boost filesystem version 3
2011-09-06 05:25:29 -07:00
Jeff Garzik
cc558f0603 README.md: word wrap text file 2011-09-05 23:02:35 -04:00
Jeff Garzik
3a7c4d89de Merge pull request #495 from alexwaters/readme
Updated readme file
2011-09-05 20:01:55 -07:00
Alex Waters
adb8a55b46 Updated readme file 2011-09-05 21:16:46 -04:00
Gavin Andresen
e077cce617 Optimize database writes for transactions with lots of TxIns.
Patch from ArtForz, who discovered the problem.
2011-09-05 14:33:07 -04:00
Wladimir J. van der Laan
cf9195c808 (k)ubuntu 10.04+ notification support (based on @zwierzak his code) 2011-09-03 21:05:12 +02:00
Wladimir J. van der Laan
69e87633bc Merge branch 'master' of github.com:laanwj/bitcoin-qt 2011-09-03 20:51:48 +02:00
Matt Corallo
7b7d46be89 Fix build process to actually work. 2011-09-03 12:38:20 -04:00
Luke Dashjr
a687d4f574 Support for boost filesystem version 3 2011-09-03 11:24:45 -04:00
Wladimir J. van der Laan
0a70a3f4d8 Merge branch 'master' of https://github.com/bitcoin/bitcoin 2011-09-03 09:09:34 +02:00
Gavin Andresen
7464e647de Bumped version numbers to 0.4.0rc1 2011-09-02 13:34:56 -04:00
Jeff Garzik
712077a760 Merge pull request #486 from TheBlueMatt/translatefix
Update binary mos to latest translations.
2011-09-02 10:12:20 -07:00
Gavin Andresen
ec74e8a443 Versions 0.3.20 THROUGH 0.3.23 have trouble with blockchain downloads; avoid them 2011-09-02 12:56:10 -04:00
Wladimir J. van der Laan
4785e6df74 Edited README.rst via GitHub 2011-09-02 19:42:59 +03:00
Wladimir J. van der Laan
0aca8577b5 support USE_UPNP setting 2011-09-02 18:33:09 +02:00
Matt Corallo
fb462ab272 Update binary mos to latest translations. 2011-09-02 12:26:18 -04:00
Gavin Andresen
b53e277ba1 Stay connected to seed nodes; disconnecting causes problems if you are trying to make the initial blockchain download. 2011-09-02 12:25:25 -04:00
Wladimir J. van der Laan
b2d1129f27 bitcoin-qt cannot be used as command line rpc client 2011-09-02 18:05:08 +02:00
Wladimir J. van der Laan
c5aa1b139a update to work with new lock system, add protocol.* to build system 2011-09-02 18:02:22 +02:00
Gavin Andresen
c591cc50eb If compiled -DDEBUG_LOCKORDER and run with -debug, print out every mutex lock/unlock (helpful for debugging something-is-holding-a-mutex-too-long problems) 2011-09-02 12:01:42 -04:00
Gavin Andresen
fb45259967 Do not try to download blockchain from 0.3.23 nodes 2011-09-02 12:00:01 -04:00
Wladimir J. van der Laan
7a15d4ff67 Merge branch 'master' of https://github.com/bitcoin/bitcoin
Conflicts:
	src/main.cpp
2011-09-02 17:35:30 +02:00
Gavin Andresen
86fd7c5af6 Give hard-coded seed nodes a random last-seen time, to randomize order they're tried. 2011-09-02 11:01:45 -04:00
Daniel Folkinshteyn
bca179e8bd Update the list of seednodes.
Nodes culled from MagicalTux's database of bitcoin nodes,
http://dump.bitcoin.it/misc/
by version and longevity, and tested for connectivity.
2011-09-02 00:02:45 -04:00
Gavin Andresen
2f4c30fd85 Fix bad merge: getaccountaddress was broken for new accounts 2011-09-01 18:40:18 -04:00
Gavin Andresen
36d9b2311d Fixed regression I introduced: wallets with lots of transactions were unusable in GUI. 2011-09-01 15:44:47 -04:00
Gavin Andresen
783c636c73 Merge pull request #467 from gavinandresen/keypoolzero
Logic running with -keypool=0 was wrong (empty keys were being returned).
2011-09-01 12:01:29 -07:00
Gavin Andresen
dd7868364d Merge branch 'code-cleanup' of git://github.com/muggenhor/bitcoin 2011-09-01 11:52:07 -04:00
Gavin Andresen
ed02c95d50 obtain cs_wallet mutex to protect vchDefaultKey 2011-09-01 10:58:08 -04:00
Gavin Andresen
123e5bd998 Fix RPC call name in error message. 2011-09-01 10:12:59 -04:00
Gavin Andresen
7db3b75b3e Logic running with -keypool=0 was wrong (empty keys were being returned). Fixes #445
Renames GetOrReuseKeyFromKeyPool to GetKeyFromPool, with fAllowReuse arg and bool result.
2011-09-01 10:12:59 -04:00
Gavin Andresen
f662cefd85 Merge pull request #470 from fabianhjr/master
Checkpoints
2011-09-01 06:58:14 -07:00
Gavin Andresen
e3c26b2573 SetCrypted() obtains keystore lock, to be safe. 2011-08-31 14:00:41 -04:00
Gavin Andresen
541e585d8e Fix typo ("you own security") 2011-08-31 14:28:14 -03:00
Gavin Andresen
cb6c4b883d Merge pull request #480 from gavinandresen/deadlocks
Simplify mutex locking, fix deadlocks. Fixes issue #453
2011-08-31 10:24:45 -07:00
Gavin Andresen
471426fb3b Fixed potential deadlocks in GUI code.
Also changed semantics of CWalletTx::GetTxTime(); now always returns the time the transaction was received by this node, not the average block time.
And added information about -DDEBUG_LOCKORDER to coding.txt.
2011-08-31 12:55:16 -04:00
Gavin Andresen
6cc4a62c0e Fix rpc-hanging deadlocks
Collapsed multiple wallet mutexes to a single cs_wallet, to avoid deadlocks with wallet methods that acquired locks in different order.
Also change master RPC call handler to acquire cs_main and cs_wallet locks before executing RPC calls; requiring each RPC call to acquire the right set of locks in the right order was too error-prone.
2011-08-31 12:55:16 -04:00
Gavin Andresen
b0243da77c Highlight mis-matching locks 2011-08-31 12:53:57 -04:00
Jeff Garzik
21189a42a7 Merge pull request #463 from TheBlueMatt/encreadme
Encryption readme update and minor rpc.cpp fixes
2011-08-31 09:32:42 -07:00
Jeff Garzik
927aaa0f27 Add reference python miner, in contrib/pyminer/ 2011-08-31 12:27:41 -04:00
Jeff Garzik
ce39dfe425 Merge pull request #475 from ovdeathiam/patch-1
Edited locale/pl/LC_MESSAGES/bitcoin.po via GitHub
2011-08-31 09:23:30 -07:00
Jeff Garzik
8af99d1893 Merge pull request #464 from TheBlueMatt/upnp1.6
Upgrade dependancies and tweak build process.
2011-08-31 09:16:56 -07:00
Wladimir J. van der Laan
f43f46c175 Merge branch 'master' of https://github.com/bitcoin/bitcoin 2011-08-31 17:06:38 +02:00
Wladimir J. van der Laan
6c85cbecf1 comments and readme update 2011-08-31 16:08:31 +02:00
Wladimir J. van der Laan
b7bcaf940d Wallet encryption part 2: ask passphrase when needed, add menu options 2011-08-31 14:19:43 +02:00
Misbakh-Soloviev Vadim A
3f0816e3d9 add russian translation and add unicode compatibility (merges pull request #20) 2011-08-28 14:14:29 +02:00
Gavin Andresen
829e21733b CHECKMULTISIG unit tests. 2011-08-26 18:43:58 -04:00
Dev Random
e40bef3c0a Add Gitian Build descriptors for Boost and wxWidgets. 2011-08-25 14:34:41 -04:00
Gavin Andresen
1224a14ae4 Merge pull request #474 from xHire/master
Updated czech translation [only .po]
2011-08-24 07:37:38 -07:00
Wladimir J. van der Laan
ae8adeb90a Wallet encryption part 1: show wallet encryption status 2011-08-23 20:08:42 +02:00
Dev Random
3bb23e5c8b Mingw gitian build with deterministic bitcoin.exe by use of faketime 2011-08-23 13:00:34 -04:00
Dev Random
bef41ada0d Mingw gitian with separate wxWidgets and boost 2011-08-23 13:00:34 -04:00
Dev Random
d2cbb14d7c Linux gitian config with separate wxWidgets build 2011-08-23 13:00:34 -04:00
Matt Corallo
b4ada906c0 Upgrade dependancies and tweak build process.
* Upgrade to use miniupnpc 1.6
* Upgrade to wxWidgets 2.9.2
* Upgrade to Bost 1.47 for Win32 Builds
2011-08-23 13:00:34 -04:00
Wladimir J. van der Laan
adce862c27 Merge branch 'master' of https://github.com/bitcoin/bitcoin 2011-08-22 14:43:37 +02:00
ovdeathiam
98deeaef15 Edited locale/pl/LC_MESSAGES/bitcoin.po via GitHub 2011-08-22 01:55:41 +03:00
Giel van Schijndel
e4dde849ae Move CInv to protocol.[ch]pp
This commit does *not* and should not modify *any* code, it only moves
it from net.h and splits it across protocol.cpp and protocol.hpp.

Signed-off-by: Giel van Schijndel <me@mortis.eu>
2011-08-19 07:24:38 +02:00
Giel van Schijndel
33e28c9948 Move CAddress to protocol.[ch]pp
This commit does *not* and should not modify *any* code, it only moves
it from net.h and splits it across protocol.cpp and protocol.hpp.

Signed-off-by: Giel van Schijndel <me@mortis.eu>
2011-08-19 07:24:38 +02:00
Giel van Schijndel
507fd9d15b Start moving protocol-specific code to protocol.[ch]pp
Move CMessageHeader from net.h to protocol.[ch]pp, with the
implementation in the .cpp compilation unit (compiling once is enough).

This commit does *not* and should not modify *any* code, it only moves
it from net.h and splits it across protocol.cpp and protocol.hpp.

Indentation changes aside the closest thing to a modification of code is
the addition of the 'TODO' comment (the execution of which requires code
modifications and thus doesn't belong in this commit).

Signed-off-by: Giel van Schijndel <me@mortis.eu>
2011-08-19 07:24:38 +02:00
Giel van Schijndel
82dc6426b4 Move func 'REF' from util.h to serialize.h
util.h doesn't use REF, serialize.h does, creating a dependency of
serialize.h on util.h, but util.h already depends on serialize.h.  To
resolve this circular dependency the function 'REF' has now been moved
closer to one of its two points of use.

Signed-off-by: Giel van Schijndel <me@mortis.eu>
2011-08-19 07:24:38 +02:00
Giel van Schijndel
e49b83bb12 Cleanup makefiles such that diffs to them are smaller
Signed-off-by: Giel van Schijndel <me@mortis.eu>
2011-08-19 07:24:37 +02:00
Giel van Schijndel
99860de3c9 Make some global variables less-global (static)
Explicitly make these global variables less-global to reduce the maximum
scope of this global state.

In my experience global variables tend to be a major source of bugs. As
such the less accessible they are the less likely they are to be the
source of a bug.

Signed-off-by: Giel van Schijndel <me@mortis.eu>
2011-08-19 07:24:37 +02:00
Gavin Andresen
865ed8a1e5 Compile with DEBUG_LOCKORDER to detect inconsistent lock orderings that can cause deadlocks 2011-08-17 10:22:28 -04:00
Michal Zima
dac48972d5 Updated czech translation 2011-08-17 11:45:13 +02:00
Wladimir J. van der Laan
872b1f3e4c update README for issue #15 2011-08-16 17:37:01 +02:00
Wladimir J. van der Laan
317c733572 add russian translation by msva 2011-08-16 17:30:58 +02:00
Gavin Andresen
c7286112ef Remove unused ScanMessageStart function 2011-08-16 11:20:56 -04:00
Jeff Garzik
b2fd0ca1cb src/makefile.unix: remove -DFOURWAYSSE2
Spotted by Venkatesh Srinivas <me@endeavour.zapto.org>
2011-08-16 10:10:39 -04:00
Wladimir J. van der Laan
8c4738d5a7 fix issue #13 2011-08-16 11:18:27 +02:00
Wladimir J. van der Laan
b90c9ecb13 Merge branch 'master' of https://github.com/bitcoin/bitcoin 2011-08-16 10:28:24 +02:00
Fabian H jr.
d0d9486f44 Updated checkpoints, maybe Tx fee should be reduced to 0.0001 from 0.0005 and maximum minimum tx should be 0.0010. 2011-08-15 21:33:00 -03:00
Gavin Andresen
eb72eae304 Don't std::advance past beginning of transactions array. Fixes #465 2011-08-12 15:39:12 -04:00
Matt Corallo
59ed5cb398 Add specific wallet encryption details to doc/README 2011-08-11 19:41:21 +02:00
Matt Corallo
8acb491eef Fix incorrect RPC error messages 2011-08-11 19:41:21 +02:00
Matt Corallo
2f8f51d1e4 Missed a 'password' should be 'passphrase'. 2011-08-11 19:41:21 +02:00
Gavin Andresen
498a2c9b16 Merge pull request #458 from TheBlueMatt/copyright
Unify copyright notices.
2011-08-11 10:34:29 -07:00
Wladimir J. van der Laan
0a76546ae9 Merge branch 'master' of https://github.com/bitcoin/bitcoin 2011-08-11 10:17:21 +02:00
Gavin Andresen
c648b589be Merge pull request #459 from jgarzik/char-msgstart
Use 'unsigned char' rather than 'char' for pchMessageStart.
2011-08-10 20:01:37 -07:00
Gavin Andresen
72173ffaca Merge pull request #460 from jgarzik/make-tuple
Qualify make_tuple with boost:: namespace.
2011-08-10 20:01:14 -07:00
Venkatesh Srinivas
25133bd74b Use 'unsigned char' rather than 'char' for pchMessageStart.
Regarding https://bitcointalk.org/index.php?topic=28022.0

main.cpp has: "char pchMessageStart[4] = { 0xf9, 0xbe, 0xb4, 0xd9 };"
Per discussion on the thread linked, leaving the signedness of
pchMessageStart is unsafe for values > 0x80. This patch specifies
'unsigned char' in main.cpp and net.h.

Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2011-08-10 22:42:43 -04:00
Venkatesh Srinivas
7c3002bf27 Qualify make_tuple with boost:: namespace.
db.cpp has a number of uses of make_tuple and has 'using namespace
std' and 'using namespace boost'. Without qualifying make_tuple,
std::make_tuple is preferred, which is incorrect. This patch qualifies
make_tuple.

Signed-off-by: Jeff Garzik <jgarzik@exmulti.com>
2011-08-10 22:40:10 -04:00
Venkatesh Srinivas
ec93a0e219 Test for SO_NOSIGPIPE rather than assuming all BSDs support it.
Signed-off-by: Jeff Garzik <jgarzik@exmulti.com>
2011-08-10 22:36:20 -04:00
Gavin Andresen
9f0ac16942 Do-nothing MapPort() ifndef USE_UPNP. fixes #450 2011-08-09 12:38:17 -04:00
Matt Corallo
b2120e223a Unify copyright notices.
To a variation on:
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2011 The Bitcoin developers
2011-08-09 13:32:52 +02:00
Matt Corallo
2c3691d53d Cleanup test suite output to be more useful. 2011-08-08 14:31:08 -04:00
Matt Corallo
3c8cecda1f Add file for transaction tests. 2011-08-08 14:31:08 -04:00
Vegard Nossum
a8330e0049 Add a file for script tests 2011-08-08 14:31:08 -04:00
Vegard Nossum
5f6a654d3e Add prototype for EvalScript() to script.h
This is needed for the script unit tests.
2011-08-08 14:31:08 -04:00
Vegard Nossum
e707d29dd6 Fix testing setup
There were some problems with the existing testing setup:

 - Makefile rules for test-file compilation used CFLAGS instead of
   CXXFLAGS in makefile.unix
2011-08-08 14:31:08 -04:00
Matt Corallo
02962ba848 Add missing include to serialize.h 2011-08-08 14:31:08 -04:00
Vegard Nossum
8a62fec3ee Add missing includes to net.h 2011-08-08 14:31:08 -04:00
Vegard Nossum
437173f430 Add missing include to script.h 2011-08-08 14:31:08 -04:00
Vegard Nossum
fcedd45c3c Add missing includes to key.h 2011-08-08 14:31:07 -04:00
Gavin Andresen
4e5d88ce26 Merge pull request #443 from TheBlueMatt/dupin
Check for duplicate txins in CheckTransaction.
2011-08-08 11:16:40 -07:00
Wladimir J. van der Laan
b0849613bf QtUI code cleanup / comment improvements 2011-08-08 17:38:17 +02:00
Wladimir J. van der Laan
fb390d3505 add TODOs in parseBitcoinURL 2011-08-07 17:07:04 +02:00
Wladimir J. van der Laan
f839f96578 update readme 2011-08-07 16:21:09 +02:00
Wladimir J. van der Laan
c359ac9128 allow empty/missing amounts in URL 2011-08-07 16:17:02 +02:00
Wladimir J. van der Laan
856aacf388 don't include <QDebug> 2011-08-07 16:09:49 +02:00
Wladimir J. van der Laan
db7f023417 Accept "bitcoin:" URL drops from browsers 2011-08-07 16:04:48 +02:00
Wladimir J. van der Laan
330c190958 Merge branch 'master' of https://github.com/bitcoin/bitcoin 2011-08-06 18:45:15 +02:00
Wladimir J. van der Laan
e74e8a184a reorganize transaction model data function, and transaction tooltip 2011-08-06 18:40:45 +02:00
Wladimir J. van der Laan
d4e3cb4c03 improve sync spinner 2011-08-05 20:32:26 +02:00
Wladimir J. van der Laan
00f4f8d54c speling fix 2011-08-05 15:37:49 +02:00
Wladimir J. van der Laan
126185aaa7 improve tooltip over transactions 2011-08-05 15:35:52 +02:00
Wladimir J. van der Laan
ffccb56914 select new address immediately after creation 2011-08-04 21:36:14 +02:00
Jeff Garzik
bd1e54bc0b Merge branch 'tmp2' 2011-08-04 15:22:05 -04:00
Jeff Garzik
eb20f3c8f5 Merge pull request #448 from sipa/cbitcoinaddress
avoid strAddress + validity checks
2011-08-04 11:47:15 -07:00
Jeff Garzik
95699e1730 Merge pull request #446 from WakiMiko/upnp-desc
Identify as "Bitcoin + version number" when mapping UPnP port
2011-08-04 11:40:44 -07:00
Jeff Garzik
32de8cd062 Merge pull request #451 from TheBlueMatt/tornolisten
Don't listen if on TOR (resolves #441).
2011-08-04 11:40:06 -07:00
Wladimir J. van der Laan
2351a3fc9f minimize amount of text in status bar; show only icons, if the user wants explanation they can view the tooltip 2011-08-04 19:04:42 +02:00
Wladimir J. van der Laan
1b39201966 when clicking a transaction on the overview page, send the user to the transactions page 2011-08-04 04:41:01 +02:00
Wladimir J. van der Laan
186f3e2f0c Clarity: change definition of "confirmed" to "counts towards balance" 2011-08-04 04:40:01 +02:00
Matt Corallo
01a509fa26 Don't listen if on TOR (resolves #441). 2011-08-03 22:16:29 +02:00
Wladimir J. van der Laan
2ccd47596b fix drawing on gtk 2011-08-03 21:28:11 +02:00
Wladimir J. van der Laan
82303fc3ca unconfirmed amount = grey 2011-08-03 21:04:15 +02:00
Matt Corallo
918150048a Make it clear that setting proxy requires restart to fully apply. 2011-08-03 21:02:07 +02:00
Wladimir J. van der Laan
a99ac8d3f4 show last few transactions on overview page 2011-08-03 20:52:18 +02:00
Wladimir J. van der Laan
2566b30c38 make amount field the same width as decimals field 2011-08-03 14:06:13 +02:00
Pieter Wuille
4d2ef6e5b6 avoid strAddress + validity checks
Avoid references to addresses using strings, and use CBitcoinAddress
as much as possible. Also added some validity checks on addresses
entered using RPC.
2011-08-03 13:01:09 +02:00
Wladimir J. van der Laan
6e903b0b32 add attribution for wallet image 2011-08-02 22:08:59 +02:00
Wladimir J. van der Laan
5762295ec3 update readme and splash screen text 2011-08-02 22:03:41 +02:00
Wladimir J. van der Laan
10d680cff4 add splash screen 2011-08-02 21:48:59 +02:00
Pieter Wuille
ce364b2d7a Merge pull request #444 from Jeroenz0r/patch-2
Translation from "Open Bitcoin" to "Verstuur Bitcoins"
2011-08-01 13:41:43 -07:00
Johannes Henninger
1565698169 Identify as "Bitcoin + version number" when mapping UPnP port
Makes Bitcoin identify itself as "Bitcoin + version number" instead of
the nondescript "libminiupnpc" when forwarding a port via UPnP.
2011-08-01 16:34:59 +02:00
Gavin Andresen
9326234109 Merge pull request #437 from codler/patch-2
Comment "deprecated"
2011-07-31 16:56:56 -07:00
Jeroenz0r
364685e195 Translation from "Open Bitcoin" to "Verstuur Bitcoins" 2011-08-01 02:03:19 +03:00
Wladimir J. van der Laan
d8f5c59a59 show n/a for mined transactions (and send to self) instead of empty field 2011-07-31 17:43:46 +02:00
Wladimir J. van der Laan
05bcf7089e address icons 2011-07-31 17:05:34 +02:00
Matt Corallo
33208fb557 Check for duplicate txins in CheckTransaction. 2011-07-31 14:20:10 +02:00
Wladimir J. van der Laan
dedf83a19b Properly html-escape labels 2011-07-31 12:56:46 +02:00
Wladimir J. van der Laan
a5e1325879 comment update 2011-07-30 19:28:41 +02:00
Wladimir J. van der Laan
f0ec774d9c make sure address book model is up to date after sending coins 2011-07-30 19:21:46 +02:00
Han Lin Yap
8c2143d4d8 Comment "deprecated" 2011-07-30 19:58:22 +03:00
Wladimir J. van der Laan
04f38adf73 Remove unused variable 2011-07-30 18:48:05 +02:00
Wladimir J. van der Laan
2f5d380943 Hide addresses in transaction overview by default, they can be re-shown as a configuration option 2011-07-30 17:42:02 +02:00
Wladimir J. van der Laan
1aafe34a08 Make dot in amount field more apparent 2011-07-30 17:01:31 +02:00
Wladimir J. van der Laan
19fba3cd24 Make debug info more interesting (show SHA160 addresses for inputs) 2011-07-29 23:11:40 +02:00
Wladimir J. van der Laan
3b59297b36 Remove no longer valid comment 2011-07-29 16:16:12 +02:00
Wladimir J. van der Laan
53d65b5500 Merge branch 'master' of https://github.com/bitcoin/bitcoin 2011-07-29 14:45:54 +02:00
Wladimir J. van der Laan
ee014e5b10 Full support for other units, add configuration option for default unit (used when displaying amounts) 2011-07-29 14:36:35 +02:00
Pieter Wuille
e1f13129e8 Merge pull request #436 from TheBlueMatt/master
Fix EncryptKeys crash introduced by a9ba471, identified by TD.
2011-07-27 13:10:47 -07:00
Wladimir J. van der Laan
b5b1d1a66b Merge branch 'master' of https://github.com/bitcoin/bitcoin
Conflicts:
	src/script.cpp
2011-07-27 21:44:55 +02:00
Wladimir J. van der Laan
7df001be94 normalize SIGNAL/SLOT signatures (http://marcmutz.wordpress.com/effective-qt/prefer-to-use-normalised-signalslot-signatures/) 2011-07-27 20:54:10 +02:00
Wladimir J. van der Laan
384625c1a6 also accept numbers without dot/decimals for parsing, fixes transaction filter row 2011-07-27 20:52:00 +02:00
Matt Corallo
687c82558c Fix EncryptKeys crash introduced by a9ba4710, identified by TD. 2011-07-27 18:02:39 +02:00
Jeff Garzik
a139ed74f2 CAddrDB::LoadAddresses: properly initialize CAddress
Fixes issue #424
2011-07-26 15:15:55 -04:00
Pieter Wuille
aa7c5e7ceb Merge pull request #435 from sipa/fixextract
Bugfix: don't overuse limited ExtractAddress
2011-07-26 10:43:00 -07:00
Pieter Wuille
b63241d451 Bugfix: don't overuse limited ExtractAddress
ExtractAddress was called with the keystore as argument in RPC and
UI, limiting results to own keys. This caused empty "address"
fields.
2011-07-26 19:41:47 +02:00
Pieter Wuille
a0eb1d151f Merge pull request #434 from laanwj/addkey_retval
make SetHash160 return a value (as specified in the function signature)
2011-07-26 08:46:48 -07:00
Wladimir J. van der Laan
dd61035645 show amounts in <b>bold</b> in confirmation dialog 2011-07-26 17:37:26 +02:00
Wladimir J. van der Laan
1e89d5d2fe Re-apply pull request #10, it got lost for some reason 2011-07-26 17:12:06 +02:00
Wladimir J. van der Laan
690c723e5f make SetHash160 return a value (as specified in the function signature) 2011-07-26 16:59:31 +02:00
Wladimir J. van der Laan
5326a31249 make SetHash160 return a value (as specified in the function signature) 2011-07-26 16:54:32 +02:00
Wladimir J. van der Laan
491ad6db50 Merge remote branch 'upstream/master'
Conflicts:
	src/bitcoinrpc.cpp
2011-07-26 16:47:23 +02:00
Wladimir J. van der Laan
c0b892fee8 update readme 2011-07-26 13:43:54 +02:00
Wladimir J. van der Laan
83c8d678aa Reset unit to default when clearing the field, to prevent confusion 2011-07-26 13:31:59 +02:00
Wladimir J. van der Laan
f2b10f6469 refuse to format nor parse invalid units 2011-07-26 13:27:33 +02:00
Wladimir J. van der Laan
587e52855a allow multiple units in bitcoin amount widget (for example, for sending) using a combobox 2011-07-26 13:08:34 +02:00
Wladimir J. van der Laan
ca1dbe10ed Negative transaction color changed to red (was grey due to mistake) 2011-07-26 09:16:50 +02:00
JoelKatz
67ed7d9d49 Fix UNIX-specific thread handle leak. 2011-07-25 15:06:45 -07:00
Wladimir J. van der Laan
e780b94bd3 fix unit names (μBTC) 2011-07-25 22:28:12 +02:00
Wladimir J. van der Laan
e285ffcd05 preparations for multiple unit (uBTC, mBTC, BTC) support, fix amount entry issue 2011-07-25 21:38:54 +02:00
Wladimir J. van der Laan
bbae0fc9ef put color constants in guiconstants.h 2011-07-25 18:39:52 +02:00
Jeff Garzik
a9ba47101a Merge pull request #403 from sipa/cbitcoinaddress
keys indexed by address + introduced CBitcoinaddress
2011-07-24 15:38:38 -07:00
celil-kj
a8c50c06e3 Clean up the project file. 2011-07-24 14:54:40 -07:00
Celil
2af40a5013 On Mac OS X do not link aginst the boost libraries in UNIX:LIBS 2011-07-24 14:45:51 -07:00
Wladimir J. van der Laan
daa1a7398f better exit icon 2011-07-24 19:09:29 +02:00
Wladimir J. van der Laan
f5472574a7 make all tab icons blue/gray for more consistencyx 2011-07-24 18:32:21 +02:00
Wladimir J. van der Laan
591dcaf681 improve tooltip texts 2011-07-24 18:06:07 +02:00
Pieter Wuille
b6d19aefa0 Merge pull request #428 from sipa/mintxfeefix
Fix for small change outputs
2011-07-24 08:08:33 -07:00
Pieter Wuille
a7dd11c6da Fix for small change outputs
With the separation of CENT and MIN_TX_FEE, it is now reasonable
to create change outputs between 0.01 and 0.0005, as these are
spendable according to the policy, even though they require a fee
to be paid.

Also, when enough fee was already present, everything can go into
a change output, without further increasing the fee.
2011-07-24 16:37:09 +02:00
Wladimir J. van der Laan
8a13456f3a add windows program (.exe) icon 2011-07-24 15:53:27 +02:00
Wladimir J. van der Laan
1a925b8e60 Merge pull request #9 from celil-kj/master
allow decimals such as .05 for amount of bitcoins to send
2011-07-24 02:41:19 +02:00
Celil
2eac3a6dec Allow ammount field to be empty so that one can specify .05 instead of
having to type the leading zero as in 0.05
2011-07-22 16:55:50 -07:00
Celil
64c991da2a Merge branch 'master' of https://github.com/laanwj/bitcoin-qt 2011-07-22 15:44:53 -07:00
Wladimir J. van der Laan
7beada58cd Merge branch 'master' of https://github.com/bitcoin/bitcoin 2011-07-22 21:41:24 +02:00
Wladimir J. van der Laan
8b936b617f Implement range... transaction filter 2011-07-22 18:30:25 +02:00
Wladimir J. van der Laan
73cd5e5212 fix clear() (clear red/invalid status) 2011-07-22 17:06:37 +02:00
Jeff Garzik
c2da35319d Merge pull request #423 from TheBlueMatt/mapalreadyaskedforfix
Actually use mapAlreadyAskedFor.
2011-07-21 19:05:38 -07:00
Matt Corallo
643160f6e7 Actually use mapAlreadyAskedFor.
Previously, mapAlreadyAskedFor was read from, but never added to.
The original intent was to use mapAlreadyAskedFor to keep track
of the time an item was requested and "Each retry is 2 minutes
after the last".
This implements that intent.
2011-07-21 22:06:20 +02:00
Celil
29f9e4e400 Merge branch 'master' of https://github.com/laanwj/bitcoin-qt 2011-07-18 15:45:55 -07:00
Wladimir J. van der Laan
174b3eddc0 one remove/delete icon is enough and the red minus better matches the add icon 2011-07-18 21:02:17 +02:00
Wladimir J. van der Laan
8ea1c9a418 Merge branch 'notebook' 2011-07-18 18:50:35 +02:00
Wladimir J. van der Laan
68e327ae7b move buttons to bottom of send coins tab, outside of scroll area 2011-07-18 18:39:49 +02:00
Wladimir J. van der Laan
24c835b0b6 windows build fix 2011-07-18 18:34:53 +02:00
Pieter Wuille
ca40e581eb Merge pull request #1 from AbrahamJewowich/cbitcoinaddress
Cbitcoinaddress
2011-07-18 06:38:54 -07:00
Abraham Jewowich
03f8b54565 Fix bug with accessing vchData[0] when vchData is empty.
Fix typo in CBase58Data::CompareTo
2011-07-18 06:26:54 -07:00
Wladimir J. van der Laan
a75e1e3292 Fix "Last received block was generated Up to date" 2011-07-18 06:55:05 +02:00
Gavin Andresen
9e3e21efeb Merge pull request #419 from mibe/translation-de
Updated German translation
2011-07-17 17:52:40 -07:00
Gavin Andresen
993d37b90b Merge pull request #395 from mibe/issue-395
Error in Russian Translation
2011-07-17 17:51:08 -07:00
Wladimir J. van der Laan
1907b96d69 put sendcoins entries in scroll area, so that window does not become bigger than screen with many recipients 2011-07-17 17:42:41 +02:00
Wladimir J. van der Laan
8dcffd4d07 show rotating spinner when block download out of date, tick otherwise 2011-07-17 17:31:37 +02:00
Wladimir J. van der Laan
5df0b03c95 make initial block download reporting somewhat better by tracking version responses 2011-07-17 14:17:13 +02:00
Pieter Wuille
cb61b8dc4c split off CBase58Data from CBitcoinAddress
Split off features unrelated to addresses from CBitcoinAddress to
CBase58Data, so they can be reused.
2011-07-17 12:09:17 +02:00
Pieter Wuille
2ffba736e9 Use CBitcoinAddress instead of string/uint160
Instead of conversion functions between pubkey/uint160/address in
base58.h, have a fully fledged class CBitcoinAddress (CAddress was
already taken) to represent addresses.
2011-07-17 12:09:14 +02:00
Pieter Wuille
03fbd79049 get rid of mapPubKeys
Make CKeyStore's interface work on uint160's instead of pubkeys, so
no separate global mapPubKeys is necessary anymore.
2011-07-17 12:07:59 +02:00
Michael Bemmerl
6801782096 Changed Russian translation according to comment in issue 395 2011-07-17 04:22:50 +02:00
Michael Bemmerl
e609c468d9 Added German wallet encryption messages translation. 2011-07-17 02:56:10 +02:00
Michael Bemmerl
241844eab0 Basically some grammatical fixes of the German translation. 2011-07-17 02:19:49 +02:00
Wladimir J. van der Laan
b5f918cbd6 readme update 2011-07-16 19:54:44 +02:00
Wladimir J. van der Laan
2a429030ff update readme 2011-07-16 19:47:22 +02:00
Wladimir J. van der Laan
9b9cd3dd20 add missing icon 2011-07-16 19:35:41 +02:00
Wladimir J. van der Laan
9958e09dbc Revert "Now that send coins / receive coins etc are tabs, remove them from menu, and reorganize menu bar"
This reverts commit ea37fb9187.
2011-07-16 19:28:15 +02:00
Wladimir J. van der Laan
a5e6d72339 add sendmany support 2011-07-16 19:25:02 +02:00
Jeff Garzik
133ccbe408 Merge pull request #418 from EricJ2190/master
Update makefile.vc for wallet encryptions.
2011-07-15 21:11:34 -07:00
Eric Hosmer
88cab1e4a3 Added crypter to makefile.vc. 2011-07-15 23:38:46 -04:00
Celil
97f908e483 Suppress uninitialized warnings. 2011-07-15 16:10:48 -07:00
Wladimir J. van der Laan
d421117620 Merge branch 'master' of https://github.com/bitcoin/bitcoin 2011-07-15 16:42:44 +02:00
Wladimir J. van der Laan
a24b23622e move README.md out of the way for now 2011-07-15 15:42:02 +02:00
Wladimir J. van der Laan
19366be186 Merge remote-tracking branch 'satoshi/qtui'
Conflicts (resolved by copying files from remote branch):
	.gitignore
	src/cryptopp/cpu.cpp
	src/cryptopp/cpu.h
	src/cryptopp/cryptlib.h
	src/cryptopp/iterhash.h
	src/cryptopp/misc.h
	src/cryptopp/secblock.h
	src/cryptopp/sha.cpp
	src/cryptopp/sha.h
	src/cryptopp/smartptr.h
	src/json/json_spirit_reader.cpp
	src/json/json_spirit_value.cpp
	src/json/json_spirit_writer.cpp
2011-07-15 15:12:17 +02:00
Wladimir J. van der Laan
a35ee96336 Add call to request unconfirmed balance 2011-07-15 15:09:49 +02:00
Wladimir J. van der Laan
249c6818f1 fix quoting 2011-07-15 15:06:28 +02:00
Wladimir J. van der Laan
ea37fb9187 Now that send coins / receive coins etc are tabs, remove them from menu, and reorganize menu bar 2011-07-15 14:55:21 +02:00
Wladimir J. van der Laan
f8be324ace Merge pull request #8 from celil-kj/master
fix error when cancelling export
2011-07-15 01:30:54 -07:00
Jeff Garzik
5b0fc31b1c Merge pull request #414 from spiechu/polish-translation
added polish wallet encryption messages
2011-07-14 20:43:22 -07:00
Celil
608810a3e7 Fix error when export is cancelled without specifying a filename. 2011-07-14 17:11:11 -07:00
Chris Howie
76aed0141c listsinceblock now shows txns with 0 confirms, as well as allows the lastblock return property to be targeted to the block with the specified depth 2011-07-14 15:56:29 -04:00
Chris Howie
5b2f35167f Add listsinceblock command for retrieving all wallet transactions in blocks after the specified block 2011-07-14 15:56:21 -04:00
Wladimir J. van der Laan
77b615ceba solve warnings at startup 2011-07-14 21:21:17 +02:00
Dawid Spiechowicz
494fc9a857 added polish wallet encryption messages 2011-07-14 19:13:26 +02:00
Jeff Garzik
065d743019 Merge pull request #413 from TheBlueMatt/loadwalletret
Fix bad return values in LoadWallet.
2011-07-14 09:37:50 -07:00
Matt Corallo
3a10d1c493 Fix bad return values in LoadWallet. 2011-07-14 18:15:50 +02:00
Pieter Wuille
24271c542b Merge pull request #412 from sgimenez/db-transactions
Single DB transactions
2011-07-14 05:29:09 -07:00
Stéphane Gimenez
d655a26c9d Single DB transaction for addresses from DNS seeds 2011-07-14 03:50:06 +02:00
Gavin Andresen
36cd1ad5c9 Merge pull request #411 from TheBlueMatt/master
Fix Build in GetReservedKey() in wallet.cpp
2011-07-13 18:36:56 -07:00
Matt Corallo
a2606bad09 Fix Build in GetReservedKey() in wallet.cpp 2011-07-14 03:34:07 +02:00
Gavin Andresen
3fd18faaf6 Merge pull request #410 from TheBlueMatt/master
Generate Warning when using default key.
2011-07-13 18:29:55 -07:00
Patrick Varilly
8c41469140 Single DB transaction for all addresses in a message
Cuts disk activity at startup immensely
2011-07-14 03:29:07 +02:00
Matt Corallo
cee69980b0 Generate Warning when using default key. 2011-07-14 03:28:31 +02:00
Jeff Garzik
60d2f8662c Merge pull request #409 from TheBlueMatt/master
Fix crashes when a wallet is locked and GetReservedKey() is called
2011-07-13 18:22:19 -07:00
Matt Corallo
0d7b28e52e Fix crashes when a wallet is locked and GetReservedKey() is called 2011-07-14 03:11:40 +02:00
Jeff Garzik
9cd22ab862 Merge pull request #406 from muggenhor/warning-fixes
Warning fixes
2011-07-13 08:55:49 -07:00
Jeff Garzik
b8cbbc2c28 Merge pull request #405 from sipa/syncdefault
Bugfix: add autogenerated addresses to address book
2011-07-13 08:53:57 -07:00
Giel van Schijndel
84c3c2ebe7 fix warning: control reaches end of non-void function [-Wreturn-type]
Signed-off-by: Giel van Schijndel <me@mortis.eu>
2011-07-13 14:25:45 +02:00
Giel van Schijndel
93752b8a39 fix warning: variable ‘nMinDepth’ set but not used [-Wunused-but-set-variable]
Signed-off-by: Giel van Schijndel <me@mortis.eu>
2011-07-13 13:43:24 +02:00
Pieter Wuille
225e60ce34 Merge pull request #404 from TheBlueMatt/newenc
Fix makefile.linux-mingw
2011-07-13 04:14:16 -07:00
Matt Corallo
d5e9d0000d Fix makefile.linux-mingw 2011-07-13 13:12:49 +02:00
Pieter Wuille
d5115a71a1 Bugfix: add autogenerated addresses to address book 2011-07-13 13:05:08 +02:00
Wladimir J. van der Laan
2a097fc5ed Update mac build (alkor on forums) 2011-07-13 08:27:41 +02:00
Jeff Garzik
e9fd7d9fad doc/README: word wrap into something readable 2011-07-13 01:21:49 -04:00
Jeff Garzik
24a0def8cd Bump version to 0.3.25
Yes, we might release as v0.4, but let's just do a simple increment
for now.
2011-07-13 01:19:26 -04:00
Jeff Garzik
116df55e21 Update CWallet::LoadWallet for proper return type. 2011-07-13 01:07:49 -04:00
Jeff Garzik
4ea952d5c0 Merge pull request #399 from muggenhor/warning-fixes
Warning fixes
2011-07-12 20:22:38 -07:00
Giel van Schijndel
d0538a81bb fix warning: unused function 'SigIllHandlerSSE2' [-Wunused-function]
Only declare & define SigIllHandlerSSE2 when its used.

Signed-off-by: Giel van Schijndel <me@mortis.eu>
2011-07-13 05:10:15 +02:00
Giel van Schijndel
858cebed7d fix warning: unused variable 'X' [-Wunused-variable]
Remove several unused variables.

Signed-off-by: Giel van Schijndel <me@mortis.eu>
2011-07-13 05:10:15 +02:00
Giel van Schijndel
225f222c9f fix warning: X enumeration values not handled in switch [-Wswitch-enum]
Add default cases to opcode switches to assert that they should never
occur.

Signed-off-by: Giel van Schijndel <me@mortis.eu>
2011-07-13 05:10:15 +02:00
Giel van Schijndel
d7f1d200ab fix warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
Don't check for a negative parameter count, because not only will it
never happen, it doesn't make any sense either.

Invalid sockets (as returned by socket(2)) are always exactly -1 (not
just negative as negative file descriptors are technically not
prohibited by POSIX) on POSIX systems.  Since we store them in SOCKET
(unsigned int), however, that really is ~0U (or MAX_UINT) which happens
to be what INVALID_SOCKET is already defined to, so an additional check
for being negative is not only unnecessary (unsigned integers aren't
*ever* negative) its redundant as well (the INVALID_SOCKET comparison is
enough).

Signed-off-by: Giel van Schijndel <me@mortis.eu>
2011-07-13 05:07:44 +02:00
Giel van Schijndel
f85c097449 fix warnings: using the result of an assignment as a condition without parentheses [-Wparentheses]
Don't unnecessarily assign to variables within the *boolean* expression
of a conditional.

Signed-off-by: Giel van Schijndel <me@mortis.eu>
2011-07-13 05:07:44 +02:00
Giel van Schijndel
ecf1c79aad fix warnings: expression result unused [-Wunused-value]
In the assert()s take advantage of the fact that string constants
("string") are effectively of type 'const char []', which when used in
an expression yield a non-NULL pointer.

An assertion that should always fail can thus be formulated as:
  assert(!"fail);

An assertion where a text message should be added to the expression can
be written as such:
  assert("message" && expression);

Signed-off-by: Giel van Schijndel <me@mortis.eu>
2011-07-13 05:07:44 +02:00
Giel van Schijndel
df40181417 fix warning on 64bit systems: cast to pointer from integer of different size [-Wint-to-pointer-cast]
Signed-off-by: Giel van Schijndel <me@mortis.eu>
2011-07-13 05:07:44 +02:00
Matt Corallo
0ca8324f59 Update makefile.linux-mingw to work with crypter and UPnP fix. 2011-07-12 22:44:00 -04:00
Jeff Garzik
0fa89d8e81 Merge pull request #381 from TheBlueMatt/nminversion
Add minversion to wallet.
2011-07-12 19:34:30 -07:00
Jeff Garzik
61e3c011f5 Merge pull request #402 from jayschwa/hirez-icon
High resolution Windows icon
2011-07-12 19:18:52 -07:00
Jeff Garzik
696d34069a Merge pull request #396 from jayschwa/nsis-branding
Add bitcoin.org logos/branding to NSIS installer.
2011-07-12 19:18:21 -07:00
Jeff Garzik
0bad8e4237 Merge pull request #352 from TheBlueMatt/newenc
Wallet Private Key Encryption (on CWallet)
2011-07-12 19:10:12 -07:00
Jay Weisskopf
aaa468563b Increase resolution of Windows icon.
The .ico file has changed in the following ways:
* Added 64x64 layer (max size for "Classic Mode").
* Added 256x256 layer (max size for Vista and 7).
* Removed copies with no alpha channel:
  * Display depths lower than 32-bits are rare nowadays.
  * 8-bit alpha channels in icons has been supported since XP.
  * If the display depth is lowered, they look no better than the
    downsampled versions that Windows automatically generates.

Tested various sizes on both XP and Win 7. It looks fine
(unchanged) on XP and downright sexy on Win 7.
2011-07-12 20:13:44 -05:00
Matt Corallo
7414733bea Make an invalid addrIncoming so that old clients crash.
This prevents old clients from opening, and thus corrupting
or otherwise causing harm to encrypted wallets.
2011-07-13 02:11:25 +02:00
Matt Corallo
96f34cd5c4 Use DB Transactions when encrypting wallet.
This speeds up the encryption process significantly.
2011-07-13 02:11:25 +02:00
Pieter Wuille
0efda1a79e Do not use obsolete CPrivKey for passing keys around 2011-07-13 02:11:25 +02:00
Matt Corallo
b6b039d84e Add Wallet Encryption section to README 2011-07-13 02:11:25 +02:00
Matt Corallo
fbeb5fb483 Add the walletlock RPC method to lock the wallet manually. 2011-07-13 02:11:25 +02:00
Matt Corallo
81598083e7 Dynamically remove/insert the Options for encryption in the menus. 2011-07-13 02:11:25 +02:00
Matt Corallo
98545d2cdf Push unlocked_until in getinfo. 2011-07-13 02:11:25 +02:00
Matt Corallo
ddebdd9a8f Set the number of SHA512 rounds based on the speed of the computer. 2011-07-13 02:11:25 +02:00
Matt Corallo
4e87d341f7 Add wallet privkey encryption.
This commit adds support for ckeys, or enCrypted private keys, to the wallet.
All keys are stored in memory in their encrypted form and thus the passphrase
is required from the user to spend coins, or to create new addresses.

Keys are encrypted with AES-256-CBC using OpenSSL's EVP library. The key is
calculated via EVP_BytesToKey using SHA512 with (by default) 25000 rounds and
a random salt.

By default, the user's wallet remains unencrypted until they call the RPC
command encryptwallet <passphrase> or, from the GUI menu, Options->
Encrypt Wallet.

When the user is attempting to call RPC functions which require the password
to unlock the wallet, an error will be returned unless they call
walletpassphrase <passphrase> <time to keep key in memory> first.

A keypoolrefill command has been added which tops up the users keypool
(requiring the passphrase via walletpassphrase first).
keypoolsize has been added to the output of getinfo to show the user the
number of keys left before they need to specify their passphrase (and call
keypoolrefill).

Note that walletpassphrase will automatically fill keypool in a separate
thread which it spawns when the passphrase is set. This could cause some
delays in other threads waiting for locks on the wallet passphrase, including
one which could cause the passphrase to be stored longer than expected,
however it will not allow the passphrase to be used longer than expected as
ThreadCleanWalletPassphrase will attempt to get a lock on the key as soon
as the specified lock time has arrived.

When the keypool runs out (and wallet is locked) GetOrReuseKeyFromPool
returns vchDefaultKey, meaning miners may start to generate many blocks to
vchDefaultKey instead of a new key each time.

A walletpassphrasechange <oldpassphrase> <newpassphrase> has been added to
allow the user to change their password via RPC.

Whenever keying material (unencrypted private keys, the user's passphrase,
the wallet's AES key) is stored unencrypted in memory, any reasonable attempt
is made to mlock/VirtualLock that memory before storing the keying material.
This is not true in several (commented) cases where mlock/VirtualLocking the
memory is not possible.

Although encryption of private keys in memory can be very useful on desktop
systems (as some small amount of protection against stupid viruses), on an
RPC server, the password is entered fairly insecurely. Thus, the only main
advantage encryption has for RPC servers is for RPC servers that do not spend
coins, except in rare cases, eg. a webserver of a merchant which only receives
payment except for cases of manual intervention.

Thanks to jgarzik for the original patch and sipa, gmaxwell and many others
for all their input.

Conflicts:

	src/wallet.cpp
2011-07-13 02:11:25 +02:00
Jay Weisskopf
aa0bcaaf2b Remove NSIS branding from bottom divider. 2011-07-12 01:18:57 -05:00
Jay Weisskopf
230b894779 Set default compression for NSIS installer to LZMA.
Use of LZMA (versus the current zlib) shaves a few MB off the installer.
2011-07-11 17:44:44 -05:00
Wladimir J. van der Laan
4a843976e0 also show balloon on sent transaction, to notify when coins sent 2011-07-11 21:01:53 +02:00
Wladimir J. van der Laan
df5ccbd2b2 Show unconfirmed balance on overview page 2011-07-11 20:42:10 +02:00
Wladimir J. van der Laan
eee0d2391c Make tooltip on refresh more clear 2011-07-11 19:35:08 +02:00
Jay Weisskopf
6c9498147f Add logos/branding currently found on bitcoin.org into NSIS installer. 2011-07-11 02:09:07 -05:00
Doug Huff
a48c671957 Make mlock() and munlock() portable to systems that require the address to be on a page boundary. 2011-07-10 18:15:05 +02:00
Jeff Garzik
354f2dd094 Merge pull request #392 from laanwj/antimagic
Remove another magic number: change threshold for nLockTime to constant
2011-07-09 10:09:13 -07:00
Wladimir J. van der Laan
c87cdc9160 wxp/mingw build fixes 2011-07-09 15:58:05 +02:00
Wladimir J. van der Laan
0b814f9ea3 add better windows7/vista look by nico_w 2011-07-09 15:26:57 +02:00
Wladimir J. van der Laan
7668631d1b remove placeholder text from ui form, code generator screws up on older qt 2011-07-09 14:00:00 +02:00
Wladimir J. van der Laan
ea8440d742 Add -fstack-protector to gcc CXX flags 2011-07-09 11:54:25 +02:00
Wladimir J. van der Laan
adad8e46c9 README update 2011-07-09 10:55:46 +02:00
Wladimir J. van der Laan
f54d59ba4a add export functionality for address book / receiving addresses 2011-07-09 10:54:17 +02:00
Wladimir J. van der Laan
2eace48d9a remove magic number: change threshold for nLockTime to constant 2011-07-09 10:30:23 +02:00
Wladimir J. van der Laan
fa989f42c1 remove magic number: change threshold for nLockTime to constant 2011-07-09 10:25:12 +02:00
Wladimir J. van der Laan
aa496b75c2 remove magic number: change threshold for nLockTime to constant 2011-07-09 10:11:28 +02:00
Wladimir J. van der Laan
460cd40aa5 Readme update 2011-07-08 22:45:15 +02:00
Wladimir J. van der Laan
51d7cc07f1 Add context menu on transaction list: copy label, copy address, edit label, show details 2011-07-08 22:27:36 +02:00
Wladimir J. van der Laan
35105534e7 Transaction list: less terse tooltip 2011-07-08 19:56:28 +02:00
Wladimir J. van der Laan
3ddf10e5ca send coins dialog: make sure send button remain default button (triggered with enter) 2011-07-08 19:51:24 +02:00
Wladimir J. van der Laan
83b8237046 forgot synced icons 2011-07-08 19:25:35 +02:00
Wladimir J. van der Laan
d8aeb8dd2a Reorganize "send coins" tab 2011-07-08 19:09:13 +02:00
Wladimir J. van der Laan
84c8506e90 Display a "freshness" indicator instead of nr of blocks 2011-07-08 18:05:23 +02:00
Dylan Noblesmith
c1aacf0be3 mlock() all private keys in memory
Inline comment and idea come from the encprivkeys branch
by Matt Corallo <matt@bluematt.me>.
2011-07-08 15:46:47 +02:00
Pieter Wuille
acd6501610 Prepare codebase for Encrypted Keys. 2011-07-08 15:46:47 +02:00
Wladimir J. van der Laan
8ffec99b07 update README 2011-07-07 21:26:46 +02:00
Wladimir J. van der Laan
610121480c "Status" doesn't fit into narrow first column in transaction history, make the header empty 2011-07-07 21:25:17 +02:00
Wladimir J. van der Laan
ba3d0255fc Add German translation by nico_w 2011-07-07 21:19:25 +02:00
Wladimir J. van der Laan
0002bdddfa add [testnet] to whatever the current window title is 2011-07-07 18:38:37 +02:00
Wladimir J. van der Laan
a7e506d698 clarify todo/dones in readme 2011-07-07 18:32:47 +02:00
Wladimir J. van der Laan
94fe42a945 Selection/tab navigation fixes 2011-07-07 18:25:27 +02:00
Wladimir J. van der Laan
3479849dc4 convert to full tab-based ui 2011-07-07 17:33:15 +02:00
Wladimir J. van der Laan
5eaa1b435c Qt handles the "..." for too long table rows. Remove this functionality from TransactionTableModel... 2011-07-07 16:57:19 +02:00
Wladimir J. van der Laan
ae3d0aba15 Sync to bitcoin git e94010b239 2011-07-07 15:22:54 +02:00
Wladimir J. van der Laan
42c405ad23 temp patch for qtui 2011-07-07 15:18:35 +02:00
Wladimir J. van der Laan
33c75fd9aa CKeyStore::AddKey must return a boolean 2011-07-07 15:16:26 +02:00
Wladimir J. van der Laan
fbaee7a853 Export functionality for transaction list 2011-07-07 14:27:16 +02:00
Wladimir J. van der Laan
d52a0f3bca Rename "History" tab to more logical "Transactions", move "Number of transactions" from status bar to overview page 2011-07-07 10:59:00 +02:00
Wladimir J. van der Laan
fac047480d minor language/text updates 2011-07-07 10:43:04 +02:00
Wladimir J. van der Laan
e599246803 Improve view of generated transactions (show clock icon when still maturing) 2011-07-07 10:29:07 +02:00
Wladimir J. van der Laan
393adf7acd Address book: Disable "copy to clipboard" and "Delete" buttons when nothing selected 2011-07-06 21:52:23 +02:00
Wladimir J. van der Laan
8bca4099c7 Remove code for no longer existing edit button in address book dialog 2011-07-06 20:52:31 +02:00
Wladimir J. van der Laan
e1f3d64c4a Add "BTC" to all amount widgets, to make clear what the unit is 2011-07-06 20:41:13 +02:00
Wladimir J. van der Laan
64c8b69948 tab reorg phase 1: split main gui into "overview" and "history" 2011-07-05 22:09:39 +02:00
Wladimir J. van der Laan
825aa7d8d8 make balance selectable / copyable 2011-07-05 20:21:33 +02:00
Matt Corallo
7ec552676c Add minversion to wallet. 2011-07-05 18:36:01 +02:00
Wladimir J. van der Laan
b8f174a5ce as there is no "default receiving address" in this GUI, don't autogenerate new addresses on receiving 2011-07-04 20:12:58 +02:00
Wladimir J. van der Laan
9dfb2d2814 add windows build instructions 2011-07-04 07:45:28 +02:00
Wladimir J. van der Laan
3913c387c9 Eliminate useless padding 2011-07-03 22:29:26 +02:00
Wladimir J. van der Laan
8fe2308b34 windows build fixes 2011-07-03 22:29:26 +02:00
Wladimir J. van der Laan
482e57812b move another setPlaceHolderText to 4.7+ only code 2011-07-03 08:24:07 +02:00
Wladimir J. van der Laan
21e47f8d04 remove libboostall-dev is not needed dependency 2011-07-03 07:51:20 +02:00
Wladimir J. van der Laan
ecde936aee remove "edit" button, document double-click behaviour to edit 2011-07-02 18:30:41 +02:00
Wladimir J. van der Laan
154e25ff60 ui improvements: allow inline editing of labels/addresses in address book table, better tab order in send dialog, set focus on sending address table when coming from send coins dialog 2011-07-02 17:31:27 +02:00
Wladimir J. van der Laan
c1ffa5b1c5 make tooltip equal to placeholder 2011-07-02 15:42:12 +02:00
Wladimir J. van der Laan
669b0a5835 Check addresses in address book for validity 2011-07-02 15:11:40 +02:00
Wladimir J. van der Laan
ebff5c40a2 Send: dialog redesign (automatically look up label for entered address) 2011-07-02 13:45:59 +02:00
Wladimir J. van der Laan
05da981f05 update build instructions (thanks tschaboo) 2011-07-02 10:33:36 +02:00
Wladimir J. van der Laan
bb82fdb543 "Receive coins" instead of "Receiving addresses" 2011-07-02 10:13:29 +02:00
Wladimir J. van der Laan
f48b4c8897 Placeholder text can only be used for Qt 4.7+ 2011-07-02 09:21:16 +02:00
Wladimir J. van der Laan
e5b47b4328 Remove "default address" from main GUI screen, it only confuses people 2011-07-01 21:41:14 +02:00
Wladimir J. van der Laan
05bae43c3c Add "last month" filter 2011-07-01 20:28:11 +02:00
Wladimir J. van der Laan
b5384e93ed make amount column wider, so that more decimals fit in 2011-07-01 18:55:13 +02:00
Wladimir J. van der Laan
cdff41c12e cleanup unused constants 2011-07-01 18:31:10 +02:00
Wladimir J. van der Laan
ab90d6e62a reverse address and label (suggestion by Danube) 2011-07-01 17:26:57 +02:00
Wladimir J. van der Laan
0052fe7bbc General cleanups 2011-07-01 17:06:36 +02:00
Wladimir J. van der Laan
c60015a260 Fix detailed transaction information on doubleclick 2011-06-30 21:34:00 +02:00
Wladimir J. van der Laan
64f125f353 Address book: show unlabeled addresses as (no label) 2011-06-30 21:29:20 +02:00
Wladimir J. van der Laan
8b040f812a fix sorting in address table dialog 2011-06-30 21:11:51 +02:00
Wladimir J. van der Laan
c16eb94945 add icons to address book dialog buttons 2011-06-30 20:20:46 +02:00
Wladimir J. van der Laan
d61b7d13e4 Add "receiving addresses" to toolbar 2011-06-30 19:43:44 +02:00
Wladimir J. van der Laan
d56c6f312c Make it very clear when on testnet (green icon, add [testnet] to title) 2011-06-30 19:14:42 +02:00
Wladimir J. van der Laan
ef079e183b Split off WalletModel from ClientModel, to be able to support multi-wallets in future 2011-06-30 18:05:29 +02:00
Wladimir J. van der Laan
929eb9dc6c show an error if amount is not valid (either the amount or decimals is empty) 2011-06-30 17:32:19 +02:00
Wladimir J. van der Laan
6ed283946c Make it more clear what the "New" button does 2011-06-30 17:22:03 +02:00
Wladimir J. van der Laan
ceb6d4e11d Implement filter row instead of tabs, allows for more expressive filters 2011-06-29 23:09:55 +02:00
Wladimir J. van der Laan
19a5975d5a add "BTC" to balance for clarity 2011-06-29 20:50:21 +02:00
Wladimir J. van der Laan
3cfe12c1b7 use 256x256 window icon, to prevent uglyness on OSes that show full-size icons for apps 2011-06-28 18:29:58 +02:00
Wladimir J. van der Laan
7aff3d5852 add icons to "New..." and "Copy to clipboard" buttons 2011-06-26 23:09:41 +02:00
Wladimir J. van der Laan
34fa178243 Change transaction table:
- Split "Description" column into "Type" and "Address", to make sorting easier (and facilitate filtering in the future)
- Merged "credit" and "debit" columns into one "amount" column that can be black (positive) or red (negative)
2011-06-26 22:47:02 +02:00
Wladimir J. van der Laan
e8ef3da713 update core to d0d80170a2 (CWallet class) 2011-06-26 19:23:24 +02:00
Wladimir J. van der Laan
d99f5a470c reduce spacing between "Add to address book as" and the text field 2011-06-26 12:01:25 +02:00
Wladimir J. van der Laan
cae5264a4c fix typo in dutch translation 2011-06-25 23:27:19 +02:00
Wladimir J. van der Laan
42e950aa69 update dutch translation 2011-06-25 23:20:42 +02:00
Wladimir J. van der Laan
0030c1bd6c compile fixes by Unthinkingbit 2011-06-25 23:14:10 +02:00
Wladimir J. van der Laan
a404b1512a Improve look/usablity of send coins dialog 2011-06-25 22:57:24 +02:00
Wladimir J. van der Laan
38deedc1b5 allow adding address to address book in send dialog 2011-06-25 19:32:36 +02:00
Wladimir J. van der Laan
c88e14fe26 Call "initial download" "synchronizing with network" instead 2011-06-25 12:39:08 +02:00
Wladimir J. van der Laan
40951d81a7 finish nl translation 2011-06-24 21:45:33 +02:00
Wladimir J. van der Laan
6665c2431b use buttonbox for options dialog 2011-06-24 21:23:43 +02:00
Wladimir J. van der Laan
daaee738fc experiment with internationalization (nl), unbreak build (externui.h->qtui.h) 2011-06-23 22:35:55 +02:00
Wladimir J. van der Laan
47c6215c22 use #ifdef QT_UI to distinguish Qt UI instead of hardcoded #if 0 2011-06-22 20:11:35 +02:00
Wladimir J. van der Laan
5f280ff557 clarify text 2011-06-21 20:39:37 +02:00
Wladimir J. van der Laan
b9e80983a5 Allow changing default address (fixes issue #6) 2011-06-21 20:36:03 +02:00
Wladimir J. van der Laan
f5927f5b32 highlight default address 2011-06-21 19:54:09 +02:00
Wladimir J. van der Laan
c92fc340a2 when going to decimals field using ./, select it all, so that entry starts from scratch instead of appending to previous value 2011-06-21 19:14:35 +02:00
Wladimir J. van der Laan
50d08dc1e1 fix issue #7 2011-06-21 15:33:10 +02:00
Wladimir J. van der Laan
54e903a543 Add comment to tooltip that only sending addresses can be deleted 2011-06-21 07:56:44 +02:00
Wladimir J. van der Laan
84114e341d Fix some padding and focus issues with the new BitcoinAmountWidget 2011-06-21 07:36:49 +02:00
Wladimir J. van der Laan
f193c57a63 introduce bitcoin amount field with split amount/decimals, to protect against mistakes (https://forum.bitcoin.org/index.php?topic=19168.0) 2011-06-20 21:34:43 +02:00
Wladimir J. van der Laan
18b99e3f69 number of confirmations is no longer magic value 2011-06-20 21:34:31 +02:00
Wladimir J. van der Laan
679592720a Merge pull request #5 from mjmvisser/master
mac fixes
2011-06-20 08:17:31 -07:00
mark
3c7ebaedcd fixes for mac build 2011-06-20 07:30:54 -04:00
Wladimir J. van der Laan
0f9ee792d9 initial block download spans total blocks minus threshold 2011-06-19 00:15:28 +02:00
Wladimir J. van der Laan
6cab66354d On initial block chain download, show a progress bar 2011-06-18 21:25:38 +02:00
Wladimir J. van der Laan
0eeb4f5d5b update bitcoin core from git (eeac8727bc) 2011-06-18 18:46:01 +02:00
Wladimir J. van der Laan
245ab4d0ac add configure and receive icon 2011-06-18 17:26:31 +02:00
Wladimir J. van der Laan
45c4a0b354 Use explicit resource initialization, apparently needed on some platforms 2011-06-18 14:25:46 +02:00
Wladimir J. van der Laan
7df70c000a Prevent notification balloon-spam on initial block download, const-correctness in client model 2011-06-18 13:13:48 +02:00
Wladimir J. van der Laan
0f3981bea9 remove commented code, use // for one-line comments and comments inside functions 2011-06-18 11:53:25 +02:00
Wladimir J. van der Laan
aa52972660 fix issue #3 (dark theme compat) 2011-06-17 22:44:15 +02:00
Wladimir J. van der Laan
e4347a43b9 add license for md2k7's icons 2011-06-17 20:35:22 +02:00
Wladimir J. van der Laan
553af2f702 remove unused icons 2011-06-17 18:43:08 +02:00
Wladimir J. van der Laan
e61cfaf5c1 add svg sources for icons 2011-06-17 18:25:29 +02:00
Wladimir J. van der Laan
89c94b5578 better icons for confirmations 2011-06-17 17:47:40 +02:00
Wladimir J. van der Laan
8c69f1fb25 show connection meter "full" only at 10+ connections 2011-06-16 09:10:05 +02:00
Wladimir J. van der Laan
aec8763a8e add attribution for icons 2011-06-15 21:06:51 +02:00
Wladimir J. van der Laan
58557b5aff transaction status icons 2011-06-15 21:03:17 +02:00
Wladimir J. van der Laan
cf450e1b4c icons test 2011-06-15 20:07:21 +02:00
Wladimir J. van der Laan
b1ef1b24ce add connection meter 2011-06-14 21:34:51 +02:00
Wladimir J. van der Laan
a790ec5884 Make status column narrow (icon only, details on tooltip) 2011-06-14 21:06:00 +02:00
Wladimir J. van der Laan
5363cb05f6 Add berkelydb version warning 2011-06-14 08:18:31 +02:00
Wladimir J. van der Laan
f15df6bb7a link to -lcrypto as well 2011-06-13 21:40:07 +02:00
Wladimir J. van der Laan
6315130e60 Internationalization -- conversion of strings from bitcoin core 2011-06-13 19:29:35 +02:00
Wladimir J. van der Laan
39cf857db9 Internationalization -- initial step, make _ return a std::string to prevent memory leaks 2011-06-13 16:56:37 +02:00
Wladimir J. van der Laan
e83474f2eb Address book: select action (edit/select) based on context 2011-06-13 12:07:32 +02:00
Wladimir J. van der Laan
249300aebe Status column reorganization 2011-06-13 09:05:48 +02:00
Luke Dashjr
02d87b3aa3 Reset extraNonce only when prevBlock changes, so miners can continue updating the time on their work until it's stale 2011-06-12 20:17:01 -04:00
Wladimir J. van der Laan
92ab03afc8 new icons -- test 2011-06-12 19:22:06 +02:00
Wladimir J. van der Laan
d066e25744 replace icons 2011-06-12 18:53:02 +02:00
Wladimir J. van der Laan
3ac5aa4a95 add svg version of icon, so that it can be scaled to bigger sizes later 2011-06-12 14:37:14 +02:00
Wladimir J. van der Laan
ab2fe68fd8 prepare internationalization; rename project to bitcoin-qt 2011-06-12 14:32:36 +02:00
Wladimir J. van der Laan
18cf214528 update bitcoin core to git ce148944c7 2011-06-12 12:27:01 +02:00
Wladimir J. van der Laan
0424613ba2 add the bitcoin (MIT?) license 2011-06-12 11:27:15 +02:00
Wladimir J. van der Laan
c428d9e76a remove wallet updating debug output 2011-06-12 11:22:44 +02:00
Wladimir J. van der Laan
37f793c631 use stylized icon by bitboy 2011-06-12 11:16:08 +02:00
Wladimir J. van der Laan
0304f4a759 add build instructions to doc 2011-06-11 23:13:29 +02:00
Wladimir J. van der Laan
ba4081c1fc move back to original directory structure 2011-06-11 22:11:58 +02:00
Wladimir J. van der Laan
5813089e0b Somewhat confident now, tested on GNOME+KDE, with all types of transactions. Next step is integration into bitcoin tree. 2011-06-11 13:33:59 +02:00
Wladimir J. van der Laan
5e1feddcb6 Add tooltips, make "amount" entry consistent in Options dialog 2011-06-11 12:46:09 +02:00
Wladimir J. van der Laan
4181184acf Merge branch 'master' of github.com:laanwj/bitcoin-qt 2011-06-10 22:39:47 +02:00
Wladimir J. van der Laan
725d460e4b show notification balloon on incoming transaction 2011-06-10 21:59:29 +02:00
Wladimir J. van der Laan
a777f7b9b5 show transaction details on doubleclick 2011-06-10 20:49:50 +02:00
Wladimir J. van der Laan
c30075142f address book edit: edit the right row 2011-06-10 20:06:59 +02:00
Wladimir J. van der Laan
5b0dc80bf7 use real copyright sign in about dialog 2011-06-10 16:16:43 +02:00
Wladimir J. van der Laan
66d536ed07 transaction details dialog on doubleclick 2011-06-10 15:05:51 +02:00
Wladimir J. van der Laan
8e86dca256 consistent bracing style 2011-06-07 18:59:01 +02:00
Wladimir J. van der Laan
6717457390 align "amount" input in send coins dialog to the right 2011-06-05 21:40:28 +02:00
Wladimir J. van der Laan
822f2e3ddf update to newest git bitcoin core 2011-06-05 20:25:56 +02:00
Wladimir J. van der Laan
b7726d924e ask fee 2011-06-05 17:36:52 +02:00
Wladimir J. van der Laan
00b8acdf49 fix 2011-06-05 16:24:23 +02:00
Wladimir J. van der Laan
9e0576587b Merge branch 'master' of ssh://amethyst/home/orion/projects2/bitcoin/bitcoin-qt 2011-06-05 16:11:44 +02:00
Wladimir J. van der Laan
467c31ea0a show messages from core/net thread 2011-06-05 16:03:29 +02:00
Wladimir J. van der Laan
352083cb23 Implement Minimize to tray / Minimize on close 2011-06-05 14:19:57 +02:00
Wladimir J. van der Laan
cddc003e70 Disable map upnp option if built without USE_UPNP 2011-06-05 12:43:18 +02:00
Wladimir J. van der Laan
e29b623db3 save changed options in database 2011-06-05 11:45:42 +02:00
Wladimir J. van der Laan
4663e339b8 show actual version nr in about dialog 2011-06-05 11:15:40 +02:00
Wladimir J. van der Laan
afacb3406d comment update 2011-06-05 11:15:40 +02:00
Wladimir J. van der Laan
a4b4cc290c comment update 2011-06-05 11:04:14 +02:00
Wladimir J. van der Laan
75ff9d841b update most importent TODOs in readme 2011-06-04 22:02:30 +02:00
Wladimir J. van der Laan
b9e41844c0 fix "send to" address book 2011-06-04 21:54:49 +02:00
Wladimir J. van der Laan
64bca50d54 update transaction status as new blocks come in 2011-06-04 21:41:31 +02:00
Wladimir J. van der Laan
2547f1f7e5 create new address from main gui, move address book model to client model 2011-06-03 21:18:05 +02:00
Wladimir J. van der Laan
9d9a4e874d support incremental wallet updates 2011-06-03 20:48:03 +02:00
Wladimir J. van der Laan
48208883de Finish implementation of address book 2011-06-03 15:16:11 +02:00
Wladimir J. van der Laan
dab03e34f5 Make base58 validator explicit 2011-06-03 13:05:34 +02:00
Wladimir J. van der Laan
44384a4602 edit address dialog: basic data/widget binding 2011-06-02 17:56:51 +02:00
Wladimir J. van der Laan
5c94371f9a resolve dependency issues 2011-06-02 17:37:03 +02:00
Wladimir J. van der Laan
e457b02142 namespacing, user friendly base58 entry, addressbook work 2011-06-02 15:57:23 +02:00
Wladimir J. van der Laan
ef1b844e7b monospace font for bitcoin addresses 2011-06-01 20:08:21 +02:00
Wladimir J. van der Laan
df6dfb4ab8 readme fix 2011-06-01 18:24:22 +02:00
Wladimir J. van der Laan
9357dcf68e update readme 2011-06-01 17:42:31 +02:00
Wladimir J. van der Laan
9aef9bca3d define PAIR_TYPE as std::pair 2011-06-01 17:15:43 +02:00
Wladimir J. van der Laan
f96681c5e4 beginning of address model 2011-06-01 17:15:43 +02:00
Wladimir J. van der Laan
c51f051257 Add addresses that we've sent to to the address book 2011-06-01 17:15:43 +02:00
Wladimir J. van der Laan
5d5990dc8f Impl->Priv 2011-06-01 17:15:42 +02:00
Wladimir J. van der Laan
c3e0734dbc implement options model / improve view with validators 2011-06-01 17:15:42 +02:00
Wladimir J. van der Laan
c6dd35f03d Apply button 2011-06-01 17:15:42 +02:00
Wladimir J. van der Laan
968d55aafa move getTransactionFee to OptionsModel 2011-06-01 09:34:12 +02:00
Wladimir J. van der Laan
92f20d53fb implement options model, show current options in options dialog 2011-05-31 22:24:53 +02:00
Wladimir J. van der Laan
6630c1cbf5 sending support 2011-05-30 20:20:12 +02:00
Wladimir J. van der Laan
1d7e321c10 mark specific warnings to disable for the cases where bitcoin core "sins" 2011-05-29 21:39:49 +02:00
Wladimir J. van der Laan
8c937da5f2 "Receive with" i.s.o. "Receive from" address 2011-05-28 22:31:27 +02:00
Wladimir J. van der Laan
63760fa1cd auto-update transaction list 2011-05-28 20:32:19 +02:00
Wladimir J. van der Laan
f6c18bc9ed documentation, small fixes 2011-05-28 16:09:23 +02:00
Wladimir J. van der Laan
3e1ea1c025 Generated transactions are 'other', and only show up in All tab 2011-05-27 22:09:22 +02:00
Wladimir J. van der Laan
e923f8188d extend generation descriptions 2011-05-27 22:06:30 +02:00
Wladimir J. van der Laan
0eba00447e use real ParseMoney function to parse input to Send dialog 2011-05-27 21:43:05 +02:00
Wladimir J. van der Laan
dd8e82f797 fix balance display, display number of transactions 2011-05-27 21:24:17 +02:00
Wladimir J. van der Laan
f79efbab6f look up addresses in address book 2011-05-27 20:36:58 +02:00
Wladimir J. van der Laan
f488e7358d transaction color based on confirmed/not confirmed, basic transaction model impl 2011-05-27 19:48:42 +02:00
Wladimir J. van der Laan
0856c1a03e work on transaction list model 2011-05-27 18:38:30 +02:00
Wladimir J. van der Laan
213f763630 bind transactionmodel 2011-05-27 08:20:23 +02:00
Wladimir J. van der Laan
8968bf2e36 use user roles instead of hidden columns for model sort/filter keys 2011-05-22 19:32:37 +02:00
Wladimir J. van der Laan
858ff187f5 don't start in server mode 2011-05-22 19:32:18 +02:00
Wladimir J. van der Laan
18cab09a95 core initialisation, client model binding 2011-05-22 17:19:43 +02:00
Wladimir van der Laan
ad88e7626b go on testnet for now 2011-05-22 14:54:13 +02:00
Wladimir J. van der Laan
29bbcab6b4 update build system for macosx 2011-05-16 08:14:04 +02:00
Wladimir J. van der Laan
b90626021b add readme file 2011-05-15 20:17:19 +02:00
Wladimir J. van der Laan
fb7e2901b7 remove debug stuff for implemented methods 2011-05-15 19:39:21 +02:00
Wladimir J. van der Laan
992ff49b43 make send coins dialog more user friendly (better checking) 2011-05-15 19:31:20 +02:00
Wladimir J. van der Laan
85663f2c18 update to bitcoin-git 2011-05-15 16:50:28 +02:00
Wladimir J. van der Laan
6a8062a30d todo update 2011-05-15 08:32:30 +02:00
Wladimir J. van der Laan
69d605f410 integration of core bitcoin 2011-05-14 20:10:21 +02:00
Wladimir J. van der Laan
2097c09a9b integrate a few extra .h files 2011-05-14 17:25:05 +02:00
Wladimir J. van der Laan
c24d047b9c core is a more appropriate name for the bitcoin library 2011-05-14 11:25:37 +02:00
Wladimir J. van der Laan
6644d98d9e integration phase 2011-05-14 11:18:39 +02:00
Wladimir J. van der Laan
1f2e0df865 begin integration with bitcoin upstream 2011-05-14 10:31:46 +02:00
Wladimir J. van der Laan
4d1bb15e31 more improvements 2011-05-13 22:00:27 +02:00
Wladimir J. van der Laan
b8e302eb53 improve address book, add less conspicious toolbar icon 2011-05-13 15:58:27 +02:00
Wladimir J. van der Laan
871f9979c6 make address settable from outside 2011-05-13 08:30:20 +02:00
Wladimir J. van der Laan
1a6d504a38 make balance/blocks/connections/transactions settable through slots 2011-05-12 20:28:07 +02:00
Wladimir J. van der Laan
3f323a61fe clipboard handling 2011-05-12 20:16:42 +02:00
Wladimir J. van der Laan
d5da2f7b37 rename UI controls 2011-05-12 18:27:20 +02:00
Wladimir J. van der Laan
3a7abc2c77 update 2011-05-12 17:55:24 +02:00
Wladimir J. van der Laan
0fd01780e9 lowercase 2011-05-12 14:49:42 +02:00
Wladimir J. van der Laan
df577886e4 rename to qt standard 2011-05-12 14:44:52 +02:00
Wladimir J. van der Laan
8812ce7b27 add options dialog, spawn dialogs at the right place 2011-05-12 09:40:40 +02:00
Luke Dashjr
aa4a9c5250 Reset extraNonce only every 15 seconds, just in case some miner is updating time himself and stuff 2011-05-11 17:13:04 -04:00
Luke Dashjr
3a8029f033 Update nTime after nExtraNonce to avoid potential race
(extraNonce being reset due to just-occurred time change after nTime is set)
2011-05-11 16:50:18 -04:00
Wladimir J. van der Laan
af94377667 implement filtering, action listeners 2011-05-10 19:03:10 +02:00
Wladimir J. van der Laan
0522725754 ignore generated resource file 2011-05-10 13:33:48 +02:00
Wladimir J. van der Laan
de11d82856 update model 2011-05-10 13:32:56 +02:00
Wladimir J. van der Laan
94ccfa8c5d new resource location 2011-05-09 20:45:22 +02:00
Wladimir J. van der Laan
053980bb19 moved files 2011-05-09 20:45:09 +02:00
Wladimir J. van der Laan
13740b7ed1 Use resource system 2011-05-09 20:44:46 +02:00
Wladimir J. van der Laan
1355cfe131 add all (unpopulated) dialogs 2011-05-08 22:23:31 +02:00
Wladimir J. van der Laan
4d27c96033 update 2011-05-08 16:30:10 +02:00
Wladimir J. van der Laan
f79405b5e1 restore orig send image 2011-05-07 22:18:24 +02:00
Wladimir J. van der Laan
aaa1c3c400 initial commit 2011-05-07 22:13:39 +02:00
278 changed files with 27224 additions and 35385 deletions

16
.gitignore vendored
View File

@@ -3,3 +3,19 @@ src/bitcoin
src/bitcoind
.*.swp
*.*~*
*.bak
*.rej
*.orig
*.o
*.patch
.bitcoin
#compilation and Qt preprocessor part
*.qm
Makefile
bitcoin-qt
#resources cpp
qrc_*.cpp
#qt creator
*.pro.user
#mac specific
.DS_Store

9
INSTALL Normal file
View File

@@ -0,0 +1,9 @@
Building Bitcoin
See doc/readme-qt.rst for instructions on building Bitcoin QT,
the intended-for-end-users, nice-graphical-interface, reference
implementation of Bitcoin.
See doc/build-*.txt for instructions on building bitcoind,
the intended-for-services, no-graphical-interface, reference
implementation of Bitcoin.

View File

@@ -1,16 +1,42 @@
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.
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 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.
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 mailing list:
http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development
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.
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, but is not guaranteed
to be completely stable. Tags are regularly created to indicate new
official, stable release versions of Bitcoin. If you would like to
help test the Bitcoin core, please contact QA@BitcoinTesting.org.
Feature branches are created when there are major new features being worked on by several people.
Feature branches are created when there are major new features being
worked on by several people.
From time to time a pull request will become outdated. If this occurs, and
the pull is no longer automatically mergeable; a comment on the pull will
be used to issue a warning of closure. The pull will be closed 15 days
after the warning if action is not taken by the author. Pull requests closed
in this manner will have their corresponding issue labeled 'stagnant'.
Issues with no commits will be given a similar warning, and closed after
15 days from their last activity. Issues closed in this manner will be
labeled 'stale'.
Requests to reopen closed pull requests and/or issues can be submitted to
QA@BitcoinTesting.org.

234
bitcoin-qt.pro Normal file
View File

@@ -0,0 +1,234 @@
TEMPLATE = app
TARGET =
VERSION = 0.5.0
INCLUDEPATH += src src/json src/qt
DEFINES += QT_GUI
CONFIG += no_include_pwd
# for boost 1.37, add -mt to the boost libraries
# use: qmake BOOST_LIB_SUFFIX=-mt
# or when linking against a specific BerkelyDB version: BDB_LIB_SUFFIX=-4.8
# Dependency library locations can be customized with BOOST_INCLUDE_PATH,
# BOOST_LIB_PATH, BDB_INCLUDE_PATH, BDB_LIB_PATH
# OPENSSL_INCLUDE_PATH and OPENSSL_LIB_PATH respectively
OBJECTS_DIR = build
MOC_DIR = build
UI_DIR = build
# use: qmake "USE_UPNP=0" (disable by default) or "USE_UPNP=1" (enable by default)
# miniupnpc (http://miniupnp.free.fr/files/) must be installed
count(USE_UPNP, 1) {
message(Building with UPNP support)
DEFINES += USE_UPNP=$$USE_UPNP
LIBS += -lminiupnpc
}
# use: qmake "USE_DBUS=1"
contains(USE_DBUS, 1) {
message(Building with DBUS (Freedesktop notifications) support)
DEFINES += USE_DBUS
QT += dbus
}
# use: qmake "USE_SSL=1"
contains(USE_DBUS, 1) {
message(Building with SSL support for RPC)
DEFINES += USE_SSL
}
# for extra security against potential buffer overflows
QMAKE_CXXFLAGS += -fstack-protector
QMAKE_LFLAGS += -fstack-protector
# disable quite some warnings because bitcoin core "sins" a lot
QMAKE_CXXFLAGS_WARN_ON = -fdiagnostics-show-option -Wall -Wno-invalid-offsetof -Wno-unused-variable -Wno-unused-parameter -Wno-sign-compare -Wno-char-subscripts -Wno-unused-value -Wno-sequence-point -Wno-parentheses -Wno-unknown-pragmas -Wno-switch
# Input
DEPENDPATH += src/qt src src json/include
HEADERS += src/qt/bitcoingui.h \
src/qt/transactiontablemodel.h \
src/qt/addresstablemodel.h \
src/qt/optionsdialog.h \
src/qt/sendcoinsdialog.h \
src/qt/addressbookpage.h \
src/qt/aboutdialog.h \
src/qt/editaddressdialog.h \
src/qt/bitcoinaddressvalidator.h \
src/base58.h \
src/bignum.h \
src/util.h \
src/uint256.h \
src/serialize.h \
src/strlcpy.h \
src/main.h \
src/net.h \
src/key.h \
src/db.h \
src/script.h \
src/noui.h \
src/init.h \
src/headers.h \
src/irc.h \
src/json/json_spirit_writer_template.h \
src/json/json_spirit_writer.h \
src/json/json_spirit_value.h \
src/json/json_spirit_utils.h \
src/json/json_spirit_stream_reader.h \
src/json/json_spirit_reader_template.h \
src/json/json_spirit_reader.h \
src/json/json_spirit_error_position.h \
src/json/json_spirit.h \
src/qt/clientmodel.h \
src/qt/guiutil.h \
src/qt/transactionrecord.h \
src/qt/guiconstants.h \
src/qt/optionsmodel.h \
src/qt/monitoreddatamapper.h \
src/qtui.h \
src/qt/transactiondesc.h \
src/qt/transactiondescdialog.h \
src/qt/bitcoinamountfield.h \
src/wallet.h \
src/keystore.h \
src/qt/transactionfilterproxy.h \
src/qt/transactionview.h \
src/qt/walletmodel.h \
src/bitcoinrpc.h \
src/qt/overviewpage.h \
src/qt/csvmodelwriter.h \
src/crypter.h \
src/qt/sendcoinsentry.h \
src/qt/qvalidatedlineedit.h \
src/qt/bitcoinunits.h \
src/qt/qvaluecombobox.h \
src/qt/askpassphrasedialog.h \
src/protocol.h \
src/qt/notificator.h
SOURCES += src/qt/bitcoin.cpp src/qt/bitcoingui.cpp \
src/qt/transactiontablemodel.cpp \
src/qt/addresstablemodel.cpp \
src/qt/optionsdialog.cpp \
src/qt/sendcoinsdialog.cpp \
src/qt/addressbookpage.cpp \
src/qt/aboutdialog.cpp \
src/qt/editaddressdialog.cpp \
src/qt/bitcoinaddressvalidator.cpp \
src/util.cpp \
src/script.cpp \
src/main.cpp \
src/init.cpp \
src/net.cpp \
src/irc.cpp \
src/db.cpp \
src/json/json_spirit_writer.cpp \
src/json/json_spirit_value.cpp \
src/json/json_spirit_reader.cpp \
src/qt/clientmodel.cpp \
src/qt/guiutil.cpp \
src/qt/transactionrecord.cpp \
src/qt/optionsmodel.cpp \
src/qt/monitoreddatamapper.cpp \
src/qt/transactiondesc.cpp \
src/qt/transactiondescdialog.cpp \
src/qt/bitcoinstrings.cpp \
src/qt/bitcoinamountfield.cpp \
src/wallet.cpp \
src/keystore.cpp \
src/qt/transactionfilterproxy.cpp \
src/qt/transactionview.cpp \
src/qt/walletmodel.cpp \
src/bitcoinrpc.cpp \
src/qt/overviewpage.cpp \
src/qt/csvmodelwriter.cpp \
src/crypter.cpp \
src/qt/sendcoinsentry.cpp \
src/qt/qvalidatedlineedit.cpp \
src/qt/bitcoinunits.cpp \
src/qt/qvaluecombobox.cpp \
src/qt/askpassphrasedialog.cpp \
src/protocol.cpp \
src/qt/notificator.cpp
RESOURCES += \
src/qt/bitcoin.qrc
FORMS += \
src/qt/forms/sendcoinsdialog.ui \
src/qt/forms/addressbookpage.ui \
src/qt/forms/aboutdialog.ui \
src/qt/forms/editaddressdialog.ui \
src/qt/forms/transactiondescdialog.ui \
src/qt/forms/overviewpage.ui \
src/qt/forms/sendcoinsentry.ui \
src/qt/forms/askpassphrasedialog.ui
CODECFORTR = UTF-8
# for lrelease/lupdate
TRANSLATIONS = src/qt/locale/bitcoin_de.ts \
src/qt/locale/bitcoin_es.ts \
src/qt/locale/bitcoin_nl.ts \
src/qt/locale/bitcoin_ru.ts
isEmpty(QMAKE_LRELEASE) {
win32:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\lrelease.exe
else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease
}
isEmpty(TS_DIR):TS_DIR = src/qt/locale
# automatically build translations, so they can be included in resource file
TSQM.name = lrelease ${QMAKE_FILE_IN}
TSQM.input = TRANSLATIONS
TSQM.output = $$TS_DIR/${QMAKE_FILE_BASE}.qm
TSQM.commands = $$QMAKE_LRELEASE ${QMAKE_FILE_IN}
TSQM.CONFIG = no_link
QMAKE_EXTRA_COMPILERS += TSQM
PRE_TARGETDEPS += compiler_TSQM_make_all
# "Other files" to show in Qt Creator
OTHER_FILES += \
doc/*.rst doc/*.txt doc/README README.md
# platform specific defaults, if not overridden on command line
isEmpty(BOOST_LIB_SUFFIX) {
macx:BOOST_LIB_SUFFIX = -mt
windows:BOOST_LIB_SUFFIX = -mgw44-mt-1_43
}
isEmpty(BDB_LIB_PATH) {
macx:BDB_LIB_PATH = /opt/local/lib/db48
}
isEmpty(BDB_LIB_SUFFIX) {
macx:BDB_LIB_SUFFIX = -4.8
}
isEmpty(BDB_INCLUDE_PATH) {
macx:BDB_INCLUDE_PATH = /opt/local/include/db48
}
isEmpty(BOOST_LIB_PATH) {
macx:BOOST_LIB_PATH = /opt/local/lib
}
isEmpty(BOOST_INCLUDE_PATH) {
macx:BOOST_INCLUDE_PATH = /opt/local/include
}
windows:LIBS += -lws2_32 -lgdi32
windows:DEFINES += WIN32
windows:RC_FILE = src/qt/res/bitcoin-qt.rc
macx:DEFINES += MAC_OSX MSG_NOSIGNAL=0 BOOST_FILESYSTEM_VERSION=3
macx:ICON = src/qt/res/icons/bitcoin.icns
macx:TARGET = "Bitcoin-Qt"
# Set libraries and includes at end, to use platform-defined defaults if not overridden
INCLUDEPATH += $$BOOST_INCLUDE_PATH $$BDB_INCLUDE_PATH $$OPENSSL_INCLUDE_PATH
LIBS += $$join(BOOST_LIB_PATH,,-L,) $$join(BDB_LIB_PATH,,-L,) $$join(OPENSSL_LIB_PATH,,-L,)
LIBS += -lssl -lcrypto -ldb_cxx$$BDB_LIB_SUFFIX
LIBS += -lboost_system$$BOOST_LIB_SUFFIX -lboost_filesystem$$BOOST_LIB_SUFFIX -lboost_program_options$$BOOST_LIB_SUFFIX -lboost_thread$$BOOST_LIB_SUFFIX
system($$QMAKE_LRELEASE -silent $$_PRO_FILE_)

View File

@@ -17,11 +17,11 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>0.3.24</string>
<string>0.4.1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>324</string>
<string>400</string>
<key>LSMinimumSystemVersion</key>
<string>10.5</string>
<key>CFBundleIconFile</key>

324
contrib/bitrpc/bitrpc.py Normal file
View File

@@ -0,0 +1,324 @@
from jsonrpc import ServiceProxy
import sys
import string
# ===== BEGIN USER SETTINGS =====
# if you do not set these you will be prompted for a password for every command
rpcuser = ""
rpcpass = ""
# ====== END USER SETTINGS ======
if rpcpass == "":
access = ServiceProxy("http://127.0.0.1:8332")
else:
access = ServiceProxy("http://"+rpcuser+":"+rpcpass+"@127.0.0.1:8332")
cmd = sys.argv[1].lower()
if cmd == "backupwallet":
try:
path = raw_input("Enter destination path/filename: ")
print access.backupwallet(path)
except:
print "\n---An error occurred---\n"
elif cmd == "getaccount":
try:
addr = raw_input("Enter a Bitcoin address: ")
print access.getaccount(addr)
except:
print "\n---An error occurred---\n"
elif cmd == "getaccountaddress":
try:
acct = raw_input("Enter an account name: ")
print access.getaccountaddress(acct)
except:
print "\n---An error occurred---\n"
elif cmd == "getaddressesbyaccount":
try:
acct = raw_input("Enter an account name: ")
print access.getaddressesbyaccount(acct)
except:
print "\n---An error occurred---\n"
elif cmd == "getbalance":
try:
acct = raw_input("Enter an account (optional): ")
mc = raw_input("Minimum confirmations (optional): ")
try:
print access.getbalance(acct, mc)
except:
print access.getbalance()
except:
print "\n---An error occurred---\n"
elif cmd == "getblockbycount":
try:
height = raw_input("Height: ")
print access.getblockbycount(height)
except:
print "\n---An error occurred---\n"
elif cmd == "getblockcount":
try:
print access.getblockcount()
except:
print "\n---An error occurred---\n"
elif cmd == "getblocknumber":
try:
print access.getblocknumber()
except:
print "\n---An error occurred---\n"
elif cmd == "getconnectioncount":
try:
print access.getconnectioncount()
except:
print "\n---An error occurred---\n"
elif cmd == "getdifficulty":
try:
print access.getdifficulty()
except:
print "\n---An error occurred---\n"
elif cmd == "getgenerate":
try:
print access.getgenerate()
except:
print "\n---An error occurred---\n"
elif cmd == "gethashespersec":
try:
print access.gethashespersec()
except:
print "\n---An error occurred---\n"
elif cmd == "getinfo":
try:
print access.getinfo()
except:
print "\n---An error occurred---\n"
elif cmd == "getnewaddress":
try:
acct = raw_input("Enter an account name: ")
try:
print access.getnewaddress(acct)
except:
print access.getnewaddress()
except:
print "\n---An error occurred---\n"
elif cmd == "getreceivedbyaccount":
try:
acct = raw_input("Enter an account (optional): ")
mc = raw_input("Minimum confirmations (optional): ")
try:
print access.getreceivedbyaccount(acct, mc)
except:
print access.getreceivedbyaccount()
except:
print "\n---An error occurred---\n"
elif cmd == "getreceivedbyaddress":
try:
addr = raw_input("Enter a Bitcoin address (optional): ")
mc = raw_input("Minimum confirmations (optional): ")
try:
print access.getreceivedbyaddress(addr, mc)
except:
print access.getreceivedbyaddress()
except:
print "\n---An error occurred---\n"
elif cmd == "gettransaction":
try:
txid = raw_input("Enter a transaction ID: ")
print access.gettransaction(txid)
except:
print "\n---An error occurred---\n"
elif cmd == "getwork":
try:
data = raw_input("Data (optional): ")
try:
print access.gettransaction(data)
except:
print access.gettransaction()
except:
print "\n---An error occurred---\n"
elif cmd == "help":
try:
cmd = raw_input("Command (optional): ")
try:
print access.help(cmd)
except:
print access.help()
except:
print "\n---An error occurred---\n"
elif cmd == "listaccounts":
try:
mc = raw_input("Minimum confirmations (optional): ")
try:
print access.listaccounts(mc)
except:
print access.listaccounts()
except:
print "\n---An error occurred---\n"
elif cmd == "listreceivedbyaccount":
try:
mc = raw_input("Minimum confirmations (optional): ")
incemp = raw_input("Include empty? (true/false, optional): ")
try:
print access.listreceivedbyaccount(mc, incemp)
except:
print access.listreceivedbyaccount()
except:
print "\n---An error occurred---\n"
elif cmd == "listreceivedbyaddress":
try:
mc = raw_input("Minimum confirmations (optional): ")
incemp = raw_input("Include empty? (true/false, optional): ")
try:
print access.listreceivedbyaddress(mc, incemp)
except:
print access.listreceivedbyaddress()
except:
print "\n---An error occurred---\n"
elif cmd == "listtransactions":
try:
acct = raw_input("Account (optional): ")
count = raw_input("Number of transactions (optional): ")
frm = raw_input("Skip (optional):")
try:
print access.listtransactions(acct, count, frm)
except:
print access.listtransactions()
except:
print "\n---An error occurred---\n"
elif cmd == "move":
try:
frm = raw_input("From: ")
to = raw_input("To: ")
amt = raw_input("Amount:")
mc = raw_input("Minimum confirmations (optional): ")
comment = raw_input("Comment (optional): ")
try:
print access.move(frm, to, amt, mc, comment)
except:
print access.move(frm, to, amt)
except:
print "\n---An error occurred---\n"
elif cmd == "sendfrom":
try:
frm = raw_input("From: ")
to = raw_input("To: ")
amt = raw_input("Amount:")
mc = raw_input("Minimum confirmations (optional): ")
comment = raw_input("Comment (optional): ")
commentto = raw_input("Comment-to (optional): ")
try:
print access.sendfrom(frm, to, amt, mc, comment, commentto)
except:
print access.sendfrom(frm, to, amt)
except:
print "\n---An error occurred---\n"
elif cmd == "sendmany":
try:
frm = raw_input("From: ")
to = raw_input("To (in format address1:amount1,address2:amount2,...): ")
mc = raw_input("Minimum confirmations (optional): ")
comment = raw_input("Comment (optional): ")
try:
print access.sendmany(frm,to,mc,comment)
except:
print access.sendmany(frm,to)
except:
print "\n---An error occurred---\n"
elif cmd == "sendtoaddress":
try:
to = raw_input("To (in format address1:amount1,address2:amount2,...): ")
amt = raw_input("Amount:")
comment = raw_input("Comment (optional): ")
commentto = raw_input("Comment-to (optional): ")
try:
print access.sendtoaddress(to,amt,comment,commentto)
except:
print access.sendtoaddress(to,amt)
except:
print "\n---An error occurred---\n"
elif cmd == "setaccount":
try:
addr = raw_input("Address: ")
acct = raw_input("Account:")
print access.setaccount(addr,acct)
except:
print "\n---An error occurred---\n"
elif cmd == "setgenerate":
try:
gen= raw_input("Generate? (true/false): ")
cpus = raw_input("Max processors/cores (-1 for unlimited, optional):")
try:
print access.setgenerate(gen, cpus)
except:
print access.setgenerate(gen)
except:
print "\n---An error occurred---\n"
elif cmd == "settxfee":
try:
amt = raw_input("Amount:")
print access.settxfee(amt)
except:
print "\n---An error occurred---\n"
elif cmd == "stop":
try:
print access.stop()
except:
print "\n---An error occurred---\n"
elif cmd == "validateaddress":
try:
addr = raw_input("Address: ")
print access.validateaddress(addr)
except:
print "\n---An error occurred---\n"
elif cmd == "walletpassphrase":
try:
pwd = raw_input("Enter wallet passphrase: ")
access.walletpassphrase(pwd, 60)
print "\n---Wallet unlocked---\n"
except:
print "\n---An error occurred---\n"
elif cmd == "walletpassphrasechange":
try:
pwd = raw_input("Enter old wallet passphrase: ")
pwd2 = raw_input("Enter new wallet passphrase: ")
access.walletpassphrasechange(pwd, pwd2)
print
print "\n---Passphrase changed---\n"
except:
print
print "\n---An error occurred---\n"
print
else:
print "Command not found or not supported"

47
contrib/create_osx_dmg.sh Executable file
View File

@@ -0,0 +1,47 @@
#!/usr/bin/env bash
#
# Creates a Bitcoin.dmg OSX file from the contrib/BitcoinTemplate.dmg file
#
# Recipe from: http://digital-sushi.org/entry/how-to-create-a-disk-image-installer-for-apple-mac-os-x/
#
# To make a prettier BitcoinTemplate.dmg:
# + open (mount) BitcoinTemplate.dmg
# + change the file properties, icon positions, background image, etc
# + eject, then commit the changed BitcoinTemplate.dmg
#
CWD=$(pwd)
if [ $# -lt 1 ]; then
if [ $(basename $CWD) == "contrib" ]
then
TOP=$(dirname $CWD)
else
echo "Usage: $0 /path/to/bitcoin/tree"
exit 1
fi
else
TOP=$1
fi
# Create Bitcoin-Qt.app
cd "$TOP"
if [ ! -e Makefile ]; then qmake bitcoin-qt.pro; fi
make
macdeployqt Bitcoin-Qt.app
# Workaround a bug in macdeployqt: https://bugreports.qt.nokia.com/browse/QTBUG-21913
# (when fixed, this won't be necessary)
cp /opt/local/lib/db48/libdb_cxx-4.8.dylib Bitcoin-Qt.app/Contents/Frameworks/
install_name_tool -id @executable_path/../Frameworks/libdb_cxx-4.8.dylib \
Bitcoin-Qt.app/Contents/Frameworks/libdb_cxx-4.8.dylib
install_name_tool -change libqt.3.dylib \
@executable_path/../Frameworks/libqt.3.dylib \
Bitcoin-Qt.app/Contents/MacOS/Bitcoin-Qt
# Create a .dmg
macdeployqt Bitcoin-Qt.app -dmg
# Compile bitcoind
cd "$TOP/src"
STATIC=1 make -f makefile.osx

View File

@@ -0,0 +1,38 @@
---
name: "boost"
suites:
- "lucid"
architectures:
- "i386"
packages:
- "mingw32"
- "faketime"
- "zip"
reference_datetime: "2011-01-30 00:00:00"
remotes: []
files:
- "boost_1_47_0.tar.bz2"
script: |
TMPDIR="$HOME/tmpdir"
mkdir -p $TMPDIR/bin/$GBUILD_BITS $TMPDIR/include
tar xjf boost_1_47_0.tar.bz2
cd boost_1_47_0
echo "using gcc : 4.4 : i586-mingw32msvc-g++
:
<rc>i586-mingw32msvc-windres
<archiver>i586-mingw32msvc-ar
<cxxflags>-frandom-seed=boost1
;" > user-config.jam
./bootstrap.sh --without-icu
./bjam toolset=gcc target-os=windows threadapi=win32 threading=multi variant=release link=static --user-config=user-config.jam --without-mpi --without-python -sNO_BZIP2=1 -sNO_ZLIB=1 --layout=tagged --build-type=complete $MAKEOPTS stage
for lib in chrono date_time exception filesystem graph iostreams math_c99f math_c99l math_c99 math_tr1f math_tr1l math_tr1 prg_exec_monitor program_options random regex serialization signals system test_exec_monitor thread_win32 unit_test_framework wave wserialization; do
mkdir $lib
(cd $lib ; ar xf ../stage/lib/libboost_${lib}-mt-s.a)
mv $lib $TMPDIR/bin/$GBUILD_BITS
done
cp -a boost $TMPDIR/include
cd $TMPDIR
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
export FAKETIME=$REFERENCE_DATETIME
zip -r boost-win32-1.47.0-gitian.zip *
cp boost-win32-1.47.0-gitian.zip $OUTDIR

View File

@@ -0,0 +1,92 @@
---
name: "bitcoin"
suites:
- "lucid"
architectures:
- "i386"
packages:
- "mingw32"
- "git-core"
- "unzip"
- "nsis"
- "faketime"
- "wine"
reference_datetime: "2011-01-30 00:00:00"
remotes:
- "url": "https://github.com/bitcoin/bitcoin.git"
"dir": "bitcoin"
files:
- "wxwidgets-win32-2.9.2-gitian.zip"
- "boost-win32-1.47.0-gitian.zip"
- "openssl-1.0.0d.tar.gz"
- "db-4.8.30.NC.tar.gz"
- "miniupnpc-1.6.tar.gz"
script: |
#
mkdir wxWidgets-2.9.2
cd wxWidgets-2.9.2
mkdir lib
unzip ../wxwidgets-win32-2.9.2-gitian.zip
cd bin/$GBUILD_BITS
for lib in wx_mswu; do
i586-mingw32msvc-ar rc ../../lib/lib${lib}-2.9-i586-mingw32msvc.a $lib/*.o
i586-mingw32msvc-ranlib ../../lib/lib${lib}-2.9-i586-mingw32msvc.a
done
cp -a wx ../../lib
cd ../..
mv include/wx-2.9/wx include
cd ..
#
mkdir boost_1_47_0
cd boost_1_47_0
mkdir -p stage/lib
unzip ../boost-win32-1.47.0-gitian.zip
cd bin/$GBUILD_BITS
for lib in *; do
i586-mingw32msvc-ar rc ../../stage/lib/libboost_${lib}-mt-s.a $lib/*.o
i586-mingw32msvc-ranlib ../../stage/lib/libboost_${lib}-mt-s.a
done
cd ../..
mv include/boost .
cd ..
#
tar xzf openssl-1.0.0d.tar.gz
cd openssl-1.0.0d
./Configure --cross-compile-prefix=i586-mingw32msvc- mingw
make
cd ..
#
tar xzf db-4.8.30.NC.tar.gz
cd db-4.8.30.NC/build_unix
../dist/configure --enable-mingw --enable-cxx --host=i586-mingw32msvc CFLAGS="-I/usr/i586-mingw32msvc/include"
make $MAKEOPTS
cd ../..
#
tar xzf miniupnpc-1.6.tar.gz
cd miniupnpc-1.6
sed 's/dllwrap -k --driver-name gcc/$(DLLWRAP) -k --driver-name $(CC)/' -i Makefile.mingw
sed 's|wingenminiupnpcstrings $< $@|./wingenminiupnpcstrings $< $@|' -i Makefile.mingw
make -f Makefile.mingw DLLWRAP=i586-mingw32msvc-dllwrap CC=i586-mingw32msvc-gcc AR=i586-mingw32msvc-ar
cd ..
mv miniupnpc-1.6 miniupnpc
#
cd bitcoin
mkdir -p $OUTDIR/src
cp -a . $OUTDIR/src
rm -rf $OUTDIR/src/.git
cp -a $OUTDIR/src/locale $OUTDIR
cp $OUTDIR/src/doc/README_windows.txt $OUTDIR/readme.txt
cp $OUTDIR/src/COPYING $OUTDIR/license.txt
cd src
sed 's/$(DEBUGFLAGS)/-frandom-seed=bitcoin/' -i makefile.linux-mingw
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
export FAKETIME=$REFERENCE_DATETIME
export TZ=UTC
make -f makefile.linux-mingw $MAKEOPTS DEPSDIR=$HOME/build bitcoin.exe USE_UPNP=1
make -f makefile.linux-mingw $MAKEOPTS DEPSDIR=$HOME/build bitcoind.exe USE_UPNP=0
i586-mingw32msvc-strip bitcoin.exe
i586-mingw32msvc-strip bitcoind.exe
makensis ../share/setup.nsi
cp bitcoin.exe ../share/bitcoin-*-win32-setup.exe $OUTDIR/
mkdir $OUTDIR/daemon
cp bitcoind.exe $OUTDIR/daemon

View File

@@ -0,0 +1,59 @@
---
name: "bitcoin"
suites:
- "lucid"
architectures:
- "i386"
- "amd64"
packages:
- "libdb4.8++-dev"
- "libxxf86vm-dev"
- "libgtk2.0-dev"
- "libboost-all-dev"
- "libssl-dev"
- "git-core"
- "unzip"
reference_datetime: "2011-01-30 00:00:00"
remotes:
- "url": "https://github.com/bitcoin/bitcoin.git"
"dir": "bitcoin"
files:
- "wxWidgets-2.9.2-x64-gitian.zip"
- "wxWidgets-2.9.2-x32-gitian.zip"
- "miniupnpc-1.6.tar.gz"
script: |
INSTDIR="$HOME/install"
export LIBRARY_PATH="$INSTDIR/lib"
#
tar xzf miniupnpc-1.6.tar.gz
cd miniupnpc-1.6
INSTALLPREFIX=$INSTDIR make $MAKEOPTS install
cd ..
#
mkdir -p $INSTDIR/bin $INSTDIR/lib/wx $INSTDIR/include
mkdir wxWidgets-2.9.2
cd wxWidgets-2.9.2
unzip ../wxWidgets-2.9.2-x32-gitian.zip
unzip -o ../wxWidgets-2.9.2-x64-gitian.zip
cp -a bin/$GBUILD_BITS/wx/config/gtk2-unicode-static-2.9 $INSTDIR/bin/wx-config
for lib in wx_gtk2u wxregexu wxtiff; do
ar rc $INSTDIR/lib/lib${lib}-2.9.a bin/$GBUILD_BITS/$lib/*.o
ranlib $INSTDIR/lib/lib${lib}-2.9.a
done
cp -a include/wx-2.9/* $INSTDIR/include
cp -a bin/$GBUILD_BITS/wx/include $INSTDIR/lib/wx
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
sed 's/$(DEBUGFLAGS)//' -i makefile.unix
PATH=$INSTDIR/bin:$PATH make -f makefile.unix STATIC=1 CXX="g++ -I$INSTDIR/include -L$INSTDIR/lib" $MAKEOPTS bitcoin USE_UPNP=1
PATH=$INSTDIR/bin:$PATH make -f makefile.unix STATIC=1 CXX="g++ -I$INSTDIR/include -L$INSTDIR/lib" $MAKEOPTS bitcoind USE_UPNP=0
mkdir -p $OUTDIR/bin/$GBUILD_BITS
install -s bitcoin bitcoind $OUTDIR/bin/$GBUILD_BITS

View File

@@ -0,0 +1,40 @@
---
name: "wxwidgets"
suites:
- "lucid"
architectures:
- "i386"
packages:
- "mingw32"
- "faketime"
- "zip"
reference_datetime: "2011-01-30 00:00:00"
remotes: []
files:
- "wxWidgets-2.9.2.tar.bz2"
script: |
INSTDIR="$HOME/install"
TMPDIR="$HOME/tmpdir"
export LIBRARY_PATH="$INSTDIR/lib"
#
tar xjf wxWidgets-2.9.2.tar.bz2
cd wxWidgets-2.9.2
CXXFLAGS=-frandom-seed=wx1 ./configure --host=i586-mingw32msvc --build=i686-linux --prefix=$INSTDIR --disable-shared --enable-monolithic --without-libpng --disable-svg
perl -i -p -e "s/__TIME__/\"$REFERENCE_TIME\"/;s/__DATE__/\"$REFERENCE_DATE\"/" include/wx/chartype.h
make $MAKEOPTS install
mkdir $TMPDIR
cd $TMPDIR
cp -af $INSTDIR/include .
mkdir -p $TMPDIR/bin/$GBUILD_BITS
cd $TMPDIR/bin/$GBUILD_BITS
cp -af $INSTDIR/lib/wx .
for lib in wx_mswu; do
mkdir $lib
(cd $lib ; ar xf $INSTDIR/lib/lib${lib}-2.9-i586-mingw32msvc.a)
done
chmod -R +w $TMPDIR
cd $TMPDIR
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
export FAKETIME=$REFERENCE_DATETIME
zip -r wxwidgets-win32-2.9.2-gitian.zip *
cp wxwidgets-win32-2.9.2-gitian.zip $OUTDIR

View File

@@ -0,0 +1,42 @@
---
name: "wxwidgets"
suites:
- "lucid"
architectures:
- "i386"
- "amd64"
packages:
- "libxxf86vm-dev"
- "libgtk2.0-dev"
- "faketime"
- "zip"
reference_datetime: "2011-01-30 00:00:00"
remotes: []
files:
- "wxWidgets-2.9.2.tar.bz2"
script: |
INSTDIR="$HOME/install"
TMPDIR="$HOME/tmpdir"
export LIBRARY_PATH="$INSTDIR/lib"
#
tar xjf wxWidgets-2.9.2.tar.bz2
cd wxWidgets-2.9.2
./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
mkdir $TMPDIR
cd $TMPDIR
cp -af $INSTDIR/include .
mkdir -p $TMPDIR/bin/$GBUILD_BITS
cd $TMPDIR/bin/$GBUILD_BITS
cp -af $INSTDIR/lib/wx .
for lib in wxtiff wxregexu wx_gtk2u; do
mkdir $lib
(cd $lib ; ar xf $INSTDIR/lib/lib${lib}-2.9.a)
done
chmod -R +w $TMPDIR
cd $TMPDIR
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
export FAKETIME=$REFERENCE_DATETIME
zip -r wxWidgets-2.9.2-x$GBUILD_BITS-gitian.zip *
cp wxWidgets-2.9.2-x$GBUILD_BITS-gitian.zip $OUTDIR

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,30 @@
---
name: bitcoin
urls:
- http://bitcoin.org/bitcoin-latest-linux-gitian.zip
rss:
- url: http://sourceforge.net/api/file/index/project-id/244765/mtime/desc/limit/100/rss
xpath: //item/link/text()
pattern: bitcoin-\d+.\d+.\d+-linux-gitian.zip
signers:
0A82509767C7D4A5D14DA2301AE1D35043E08E54:
weight: 40
name: BlueMatt
key: bluematt
BF6273FAEF7CC0BA1F562E50989F6B3048A116B5:
weight: 40
name: Devrandom
key: devrandom
D762373D24904A3E42F33B08B9A408E71DAAC974:
weight: 40
name: Sipa
key: sipa
77E72E69DA7EE0A148C06B21B34821D4944DE5F7:
weight: 40
name: tcatm
key: tcatm
01CDF4627A3B88AAE4A571C87588242FBE38D3A8:
weight: 40
name: "Gavin Andresen"
key: gavinandresen
minimum_weight: 120

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,30 @@
---
name: bitcoin
urls:
- http://bitcoin.org/bitcoin-latest-win32-gitian.zip
rss:
- url: http://sourceforge.net/api/file/index/project-id/244765/mtime/desc/limit/100/rss
xpath: //item/link/text()
pattern: bitcoin-\d+.\d+.\d+-win32-gitian.zip
signers:
0A82509767C7D4A5D14DA2301AE1D35043E08E54:
weight: 40
name: BlueMatt
key: bluematt
BF6273FAEF7CC0BA1F562E50989F6B3048A116B5:
weight: 40
name: Devrandom
key: devrandom
D762373D24904A3E42F33B08B9A408E71DAAC974:
weight: 40
name: Sipa
key: sipa
77E72E69DA7EE0A148C06B21B34821D4944DE5F7:
weight: 40
name: tcatm
key: tcatm
01CDF4627A3B88AAE4A571C87588242FBE38D3A8:
weight: 40
name: "Gavin Andresen"
key: gavinandresen
minimum_weight: 120

View File

@@ -1,84 +0,0 @@
---
name: "bitcoin"
suites:
- "lucid"
architectures:
- "i386"
packages:
- "mingw32"
- "git-core"
- "unzip"
- "nsis"
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"
- "boost_1_43_0.tar.bz2"
- "openssl-1.0.0d.tar.gz"
- "db-4.7.25.NC.tar.gz"
- "upnpc-exe-win32-20110215.zip"
- "miniupnpc-1.5.20110215.tar.gz"
- "WSPiApi.h"
script: |
#
tar xjf wxWidgets-2.9.1.tar.bz2
cd wxWidgets-2.9.1
./configure --host=i586-mingw32msvc --build=i686-linux --disable-shared --enable-monolithic --without-libpng --disable-svg
perl -i -p -e "s/__TIME__/\"$REFERENCE_TIME\"/;s/__DATE__/\"$REFERENCE_DATE\"/" include/wx/chartype.h
make $MAKEOPTS
cd ..
#
tar xzf openssl-1.0.0d.tar.gz
cd openssl-1.0.0d
./Configure --cross-compile-prefix=i586-mingw32msvc- mingw
make
cd ..
#
tar xzf db-4.7.25.NC.tar.gz
cd db-4.7.25.NC/build_unix
../dist/configure --enable-mingw --enable-cxx --host=i586-mingw32msvc CFLAGS="-I/usr/i586-mingw32msvc/include"
make $MAKEOPTS
cd ../..
#
tar xjf boost_1_43_0.tar.bz2
cd boost_1_43_0
echo "using gcc : 4.4 : i586-mingw32msvc-g++
:
<rc>i586-mingw32msvc-windres
<archiver>i586-mingw32msvc-ar
;" > user-config.jam
./bootstrap.sh --without-icu
./bjam toolset=gcc target-os=windows threadapi=win32 threading=multi --user-config=user-config.jam --without-mpi --without-python -sNO_BZIP2=1 -sNO_ZLIB=1 --layout=tagged --build-type=complete $MAKEOPTS stage
cd ..
#
mkdir upnpc-exe-win32-20110215
cd upnpc-exe-win32-20110215
unzip ../upnpc-exe-win32-20110215.zip
mkdir miniupnpc
cd miniupnpc
tar xzf ../../miniupnpc-1.5.20110215.tar.gz
mv ./miniupnpc-1.5.20110215/* ./
cd ../..
#
cp WSPiApi.h $HOME/build
#
cd bitcoin
mkdir -p $OUTDIR/src
cp -a . $OUTDIR/src
rm -rf $OUTDIR/src/.git
cp -a $OUTDIR/src/locale $OUTDIR
cp $OUTDIR/src/doc/README_windows.txt $OUTDIR/readme.txt
cp $OUTDIR/src/COPYING $OUTDIR/license.txt
cd src
sed 's/$(DEBUGFLAGS)//' < makefile.linux-mingw > makefile.linux-mingw.2 && mv makefile.linux-mingw.2 makefile.linux-mingw
sed 's|//#include <WSPiApi.h>|#include <WSPiApi.h>|' < net.cpp > net.cpp.2 && mv net.cpp.2 net.cpp
make -f makefile.linux-mingw $MAKEOPTS DEPSDIR=$HOME/build bitcoin.exe USE_UPNP=1
make -f makefile.linux-mingw $MAKEOPTS DEPSDIR=$HOME/build bitcoind.exe USE_UPNP=0
i586-mingw32msvc-strip bitcoin.exe
i586-mingw32msvc-strip bitcoind.exe
makensis ../share/setup.nsi
cp bitcoin.exe ../share/bitcoin-*-win32-setup.exe $OUTDIR/
mkdir $OUTDIR/daemon
cp bitcoind.exe $OUTDIR/daemon

View File

@@ -1,57 +0,0 @@
---
name: "bitcoin"
suites:
- "lucid"
architectures:
- "i386"
- "amd64"
packages:
- "libdb4.7++-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"
- "toplevel.h.diff"
- "toplevel.cpp.diff"
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
cd include/wx/gtk
patch < ../../../../toplevel.h.diff
cd ../../../src/gtk
patch < ../../../toplevel.cpp.diff
cd ../..
./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
sed 's/$(DEBUGFLAGS)//' < makefile.unix > makefile.unix.2 && mv makefile.unix.2 makefile.unix
PATH=$INSTDIR/bin:$PATH make -f makefile.unix CXX="g++ -I$INSTDIR/include -L$INSTDIR/lib" $MAKEOPTS bitcoin USE_UPNP=1
PATH=$INSTDIR/bin:$PATH make -f makefile.unix CXX="g++ -I$INSTDIR/include -L$INSTDIR/lib" $MAKEOPTS bitcoind USE_UPNP=0
mkdir -p $OUTDIR/bin/$GBUILD_BITS
install -s bitcoin bitcoind $OUTDIR/bin/$GBUILD_BITS

View File

@@ -0,0 +1,43 @@
# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4
# $Id$
PortSystem 1.0
name miniupnpc
epoch 2
version 1.6
revision 2
categories net
platforms darwin
license BSD
maintainers singingwolfboy openmaintainer
description Lightweight client for UPnP protocol
long_description \
${description}
homepage http://miniupnp.free.fr/
master_sites http://miniupnp.free.fr/files/download.php?file=${distname}${extract.suffix}&dummy=
checksums md5 88055f2d4a061cfd4cfe25a9eae22f67 \
sha1 ef8f2edb17f2e7c5b8dc67ee80a65c199d823e0a \
rmd160 d86b75b331a3fb5525c71708548f311977c0598f
use_configure no
variant universal {}
if {[variant_isset universal]} {
set archflags ${configure.universal_cflags}
} else {
set archflags ${configure.cc_archflags}
}
build.args-append CC="${configure.cc} ${archflags}"
post-patch {
reinplace "s|-Wl,-install_name,|-Wl,-install_name,${prefix}/lib/|" ${worksrcpath}/Makefile
}
destroot.destdir PREFIX=${prefix} INSTALLPREFIX=${destroot}${prefix}
livecheck.type regex
livecheck.url http://miniupnp.free.fr/files/
livecheck.regex ${name}-(\\d+(\\.\\d{1,4})+)${extract.suffix}

6
contrib/pyminer/README Normal file
View File

@@ -0,0 +1,6 @@
This is a 'getwork' CPU mining client for bitcoin.
It is pure-python, and therefore very, very slow. The purpose is to
provide a reference implementation of a miner, for study.

View File

@@ -0,0 +1,32 @@
#
# RPC login details
#
host=127.0.0.1
port=8332
rpcuser=myusername
rpcpass=mypass
#
# mining details
#
threads=4
# periodic rate for requesting new work, if solution not found
scantime=60
#
# misc.
#
# not really used right now
logdir=/tmp/pyminer
# set to 1, to enable hashmeter output
hashmeter=0

252
contrib/pyminer/pyminer.py Executable file
View File

@@ -0,0 +1,252 @@
#!/usr/bin/python
#
# Copyright (c) 2011 The Bitcoin developers
# Distributed under the MIT/X11 software license, see the accompanying
# file license.txt or http://www.opensource.org/licenses/mit-license.php.
#
import time
import json
import pprint
import hashlib
import struct
import re
import base64
import httplib
import sys
from multiprocessing import Process
ERR_SLEEP = 15
MAX_NONCE = 1000000L
settings = {}
pp = pprint.PrettyPrinter(indent=4)
class BitcoinRPC:
OBJID = 1
def __init__(self, host, port, username, password):
authpair = "%s:%s" % (username, password)
self.authhdr = "Basic %s" % (base64.b64encode(authpair))
self.conn = httplib.HTTPConnection(host, port, False, 30)
def rpc(self, method, params=None):
self.OBJID += 1
obj = { 'version' : '1.1',
'method' : method,
'id' : self.OBJID }
if params is None:
obj['params'] = []
else:
obj['params'] = params
self.conn.request('POST', '/', json.dumps(obj),
{ 'Authorization' : self.authhdr,
'Content-type' : 'application/json' })
resp = self.conn.getresponse()
if resp is None:
print "JSON-RPC: no response"
return None
body = resp.read()
resp_obj = json.loads(body)
if resp_obj is None:
print "JSON-RPC: cannot JSON-decode body"
return None
if 'error' in resp_obj and resp_obj['error'] != None:
return resp_obj['error']
if 'result' not in resp_obj:
print "JSON-RPC: no result in object"
return None
return resp_obj['result']
def getblockcount(self):
return self.rpc('getblockcount')
def getwork(self, data=None):
return self.rpc('getwork', data)
def uint32(x):
return x & 0xffffffffL
def bytereverse(x):
return uint32(( ((x) << 24) | (((x) << 8) & 0x00ff0000) |
(((x) >> 8) & 0x0000ff00) | ((x) >> 24) ))
def bufreverse(in_buf):
out_words = []
for i in range(0, len(in_buf), 4):
word = struct.unpack('@I', in_buf[i:i+4])[0]
out_words.append(struct.pack('@I', bytereverse(word)))
return ''.join(out_words)
def wordreverse(in_buf):
out_words = []
for i in range(0, len(in_buf), 4):
out_words.append(in_buf[i:i+4])
out_words.reverse()
return ''.join(out_words)
class Miner:
def __init__(self, id):
self.id = id
self.max_nonce = MAX_NONCE
def work(self, datastr, targetstr):
# decode work data hex string to binary
static_data = datastr.decode('hex')
static_data = bufreverse(static_data)
# the first 76b of 80b do not change
blk_hdr = static_data[:76]
# decode 256-bit target value
targetbin = targetstr.decode('hex')
targetbin = targetbin[::-1] # byte-swap and dword-swap
targetbin_str = targetbin.encode('hex')
target = long(targetbin_str, 16)
# pre-hash first 76b of block header
static_hash = hashlib.sha256()
static_hash.update(blk_hdr)
for nonce in xrange(self.max_nonce):
# encode 32-bit nonce value
nonce_bin = struct.pack("<I", nonce)
# hash final 4b, the nonce value
hash1_o = static_hash.copy()
hash1_o.update(nonce_bin)
hash1 = hash1_o.digest()
# sha256 hash of sha256 hash
hash_o = hashlib.sha256()
hash_o.update(hash1)
hash = hash_o.digest()
# quick test for winning solution: high 32 bits zero?
if hash[-4:] != '\0\0\0\0':
continue
# convert binary hash to 256-bit Python long
hash = bufreverse(hash)
hash = wordreverse(hash)
hash_str = hash.encode('hex')
l = long(hash_str, 16)
# proof-of-work test: hash < target
if l < target:
print time.asctime(), "PROOF-OF-WORK found: %064x" % (l,)
return (nonce + 1, nonce_bin)
else:
print time.asctime(), "PROOF-OF-WORK false positive %064x" % (l,)
# return (nonce + 1, nonce_bin)
return (nonce + 1, None)
def submit_work(self, rpc, original_data, nonce_bin):
nonce_bin = bufreverse(nonce_bin)
nonce = nonce_bin.encode('hex')
solution = original_data[:152] + nonce + original_data[160:256]
param_arr = [ solution ]
result = rpc.getwork(param_arr)
print time.asctime(), "--> Upstream RPC result:", result
def iterate(self, rpc):
work = rpc.getwork()
if work is None:
time.sleep(ERR_SLEEP)
return
if 'data' not in work or 'target' not in work:
time.sleep(ERR_SLEEP)
return
time_start = time.time()
(hashes_done, nonce_bin) = self.work(work['data'],
work['target'])
time_end = time.time()
time_diff = time_end - time_start
self.max_nonce = long(
(hashes_done * settings['scantime']) / time_diff)
if self.max_nonce > 0xfffffffaL:
self.max_nonce = 0xfffffffaL
if settings['hashmeter']:
print "HashMeter(%d): %d hashes, %.2f Khash/sec" % (
self.id, hashes_done,
(hashes_done / 1000.0) / time_diff)
if nonce_bin is not None:
self.submit_work(rpc, work['data'], nonce_bin)
def loop(self):
rpc = BitcoinRPC(settings['host'], settings['port'],
settings['rpcuser'], settings['rpcpass'])
if rpc is None:
return
while True:
self.iterate(rpc)
def miner_thread(id):
miner = Miner(id)
miner.loop()
if __name__ == '__main__':
if len(sys.argv) != 2:
print "Usage: pyminer.py CONFIG-FILE"
sys.exit(1)
f = open(sys.argv[1])
for line in f:
# skip comment lines
m = re.search('^\s*#', line)
if m:
continue
# parse key=value lines
m = re.search('^(\w+)\s*=\s*(\S.*)$', line)
if m is None:
continue
settings[m.group(1)] = m.group(2)
f.close()
if 'host' not in settings:
settings['host'] = '127.0.0.1'
if 'port' not in settings:
settings['port'] = 8332
if 'threads' not in settings:
settings['threads'] = 1
if 'hashmeter' not in settings:
settings['hashmeter'] = 0
if 'scantime' not in settings:
settings['scantime'] = 30L
if 'rpcuser' not in settings or 'rpcpass' not in settings:
print "Missing username and/or password in cfg file"
sys.exit(1)
settings['port'] = int(settings['port'])
settings['threads'] = int(settings['threads'])
settings['hashmeter'] = int(settings['hashmeter'])
settings['scantime'] = long(settings['scantime'])
thr_list = []
for thr_id in range(settings['threads']):
p = Process(target=miner_thread, args=(thr_id,))
p.start()
thr_list.append(p)
time.sleep(1) # stagger threads
print settings['threads'], "mining threads started"
print time.asctime(), "Miner Starts - %s:%s" % (settings['host'], settings['port'])
try:
for thr_proc in thr_list:
thr_proc.join()
except KeyboardInterrupt:
pass
print time.asctime(), "Miner Stops - %s:%s" % (settings['host'], settings['port'])

View File

@@ -0,0 +1,5 @@
from jsonrpc import ServiceProxy
access = ServiceProxy("http://127.0.0.1:8332")
pwd = raw_input("Enter old wallet passphrase: ")
pwd2 = raw_input("Enter new wallet passphrase: ")
access.walletpassphrasechange(pwd, pwd2)

View File

@@ -0,0 +1,4 @@
from jsonrpc import ServiceProxy
access = ServiceProxy("http://127.0.0.1:8332")
pwd = raw_input("Enter wallet passphrase: ")
access.walletpassphrase(pwd, 60)

View File

@@ -1,4 +0,0 @@
This folder contains two patches which are applied to wxWidgets
2.9.1 before building the wxWidgets which is used for release
versions of bitcoin. They make the GUI show up on newer OSs
with new libgtks, such as Ubuntu 11.04.

View File

@@ -1,86 +0,0 @@
--- /wxWidgets/trunk/src/gtk/toplevel.cpp (revision 67326)
+++ /wxWidgets/trunk/src/gtk/toplevel.cpp (revision 67496)
@@ -72,4 +72,8 @@
// send any activate events at all
static int g_sendActivateEvent = -1;
+
+// Whether _NET_REQUEST_FRAME_EXTENTS support is working
+// 0 == not tested yet, 1 == working, 2 == broken
+static int gs_requestFrameExtentsStatus;
//-----------------------------------------------------------------------------
@@ -432,4 +436,12 @@
if (event->state == GDK_PROPERTY_NEW_VALUE && event->atom == property)
{
+ if (win->m_netFrameExtentsTimerId)
+ {
+ // WM support for _NET_REQUEST_FRAME_EXTENTS is working
+ gs_requestFrameExtentsStatus = 1;
+ g_source_remove(win->m_netFrameExtentsTimerId);
+ win->m_netFrameExtentsTimerId = 0;
+ }
+
wxSize decorSize = win->m_decorSize;
int left, right, top, bottom;
@@ -439,4 +451,22 @@
win->GTKUpdateDecorSize(decorSize);
}
+ return false;
+}
+}
+
+extern "C" {
+static gboolean request_frame_extents_timeout(void* data)
+{
+ // WM support for _NET_REQUEST_FRAME_EXTENTS is broken
+ gs_requestFrameExtentsStatus = 2;
+ gdk_threads_enter();
+ wxTopLevelWindowGTK* win = static_cast<wxTopLevelWindowGTK*>(data);
+ win->m_netFrameExtentsTimerId = 0;
+ wxSize decorSize = win->m_decorSize;
+ int left, right, top, bottom;
+ if (wxGetFrameExtents(gtk_widget_get_window(win->m_widget), &left, &right, &top, &bottom))
+ decorSize.Set(left + right, top + bottom);
+ win->GTKUpdateDecorSize(decorSize);
+ gdk_threads_leave();
return false;
}
@@ -459,4 +489,5 @@
m_deferShowAllowed = true;
m_updateDecorSize = true;
+ m_netFrameExtentsTimerId = 0;
m_urgency_hint = -2;
@@ -811,5 +842,6 @@
if (deferShow)
{
- deferShow = m_deferShowAllowed && !GTK_WIDGET_REALIZED(m_widget);
+ deferShow = gs_requestFrameExtentsStatus != 2 &&
+ m_deferShowAllowed && !gtk_widget_get_realized(m_widget);
if (deferShow)
{
@@ -829,11 +861,4 @@
// GetSize()/SetSize() because it makes window bigger between each
// restore and save.
- m_updateDecorSize = deferShow;
- }
- if (deferShow)
- {
- // Fluxbox support for _NET_REQUEST_FRAME_EXTENTS is broken
- const char* name = gdk_x11_screen_get_window_manager_name(screen);
- deferShow = strcmp(name, "Fluxbox") != 0;
m_updateDecorSize = deferShow;
}
@@ -875,4 +900,12 @@
(XEvent*)&xevent);
+ if (gs_requestFrameExtentsStatus == 0)
+ {
+ // if WM does not respond to request within 1 second,
+ // we assume support for _NET_REQUEST_FRAME_EXTENTS is not working
+ m_netFrameExtentsTimerId =
+ g_timeout_add(1000, request_frame_extents_timeout, this);
+ }
+
// defer calling gtk_widget_show()
m_isShown = true;

View File

@@ -1,9 +0,0 @@
--- /wxWidgets/trunk/include/wx/gtk/toplevel.h (revision 65373)
+++ /wxWidgets/trunk/include/wx/gtk/toplevel.h (revision 67496)
@@ -114,4 +114,6 @@
// wxUSER_ATTENTION_ERROR difference, -2 for no hint, -1 for ERROR hint, rest for GtkTimeout handle.
int m_urgency_hint;
+ // timer for detecting WM with broken _NET_REQUEST_FRAME_EXTENTS handling
+ unsigned m_netFrameExtentsTimerId;
// return the size of the window without WM decorations

View File

@@ -1,4 +1,4 @@
Bitcoin 0.3.24 BETA
Bitcoin 0.4.1 BETA
Copyright (c) 2009-2011 Bitcoin Developers
Distributed under the MIT/X11 software license, see the accompanying
@@ -24,6 +24,93 @@ Unpack the files into a directory and run:
bin/64/bitcoin (GUI, 64-bit)
bin/64/bitcoind (headless, 64-bit)
Wallet Encryption
-----------------
Bitcoin supports native wallet encryption so that people who steal your
wallet file don't automatically get access to all of your Bitcoins.
In order to enable this feature, chose "Encrypt Wallet" from the
Options menu. You will be prompted to enter a passphrase, which
will be used as the key to encrypt your wallet and will be needed
every time you wish to send Bitcoins. If you lose this passphrase,
you will lose access to spend all of the bitcoins in your wallet,
no one, not even the Bitcoin developers can recover your Bitcoins.
This means you are responsible for your own security, store your
passphrase in a secure location and do not forget it.
Remember that the encryption built into bitcoin only encrypts the
actual keys which are required to send your bitcoins, not the full
wallet. This means that someone who steals your wallet file will
be able to see all the addresses which belong to you, as well as the
relevant transactions, you are only protected from someone spending
your coins.
It is recommended that you backup your wallet file before you
encrypt your wallet. To do this, close the Bitcoin client and
copy the wallet.dat file from ~/.bitcoin/ on Linux, /Users/(user
name)/Application Support/Bitcoin/ on Mac OSX, and %APPDATA%/Bitcoin/
on Windows (that is /Users/(user name)/AppData/Roaming/Bitcoin on
Windows Vista and 7 and /Documents and Settings/(user name)/Application
Data/Bitcoin on Windows XP). Once you have copied that file to a
safe location, reopen the Bitcoin client and Encrypt your wallet.
If everything goes fine, delete the backup and enjoy your encrypted
wallet. Note that once you encrypt your wallet, you will never be
able to go back to a version of the Bitcoin client older than 0.4.
Keep in mind that you are always responsible for your own security.
All it takes is a slightly more advanced wallet-stealing trojan which
installs a keylogger to steal your wallet passphrase as you enter it
in addition to your wallet file and you have lost all your Bitcoins.
Wallet encryption cannot keep you safe if you do not practice
good security, such as running up-to-date antivirus software, only
entering your wallet passphrase in the Bitcoin client and using the
same passphrase only as your wallet passphrase.
Technical details of wallet encryption
--------------------------------------
Wallet encryption uses AES-256-CBC to encrypt only the private keys
that are held in a wallet. The keys are encrypted with a master key
which is entirely random. This master key is then encrypted with
AES-256-CBC with a key derived from the passphrase using SHA512 and
OpenSSL's EVP_BytesToKey and a dynamic number of rounds determined by
the speed of the machine which does the initial encryption (and is
updated based on the speed of a computer which does a subsequent
passphrase change). Although the underlying code supports multiple
encrypted copies of the same master key (and thus multiple passphrases)
the client does not yet have a method to add additional passphrases.
At runtime, the client loads the wallet as it normally would, however
the keystore stores the keys in encrypted form. When the passphrase
is required (to top up keypool or send coins) it will either be queried
by a GUI prompt, or must first be entered with the walletpassphrase
RPC command. This will change the wallet to "unlocked" state where the
unencrypted master key is stored in memory (in the case of GUI, only for
long enough to complete the requested operation, in RPC, for as long as
is specified by the second parameter to walletpassphrase). The wallet is
then locked (or can be manually locked using the walletlock RPC command)
and the unencrypted master key is removed from memory.
Implementation details of wallet encryption
-------------------------------------------
When the wallet is locked, calls to sendtoaddress, sendfrom, sendmany,
and keypoolrefill will return Error -13: "Error: Please enter the wallet
passphrase with walletpassphrase first."
When the wallet is unlocked, calls to walletpassphrase will fail.
When a wallet is encrypted, the passphrase is required to top up the
keypool, thus, if the passphrase is rarely entered, it is possible that
keypool might run out. In this case, the default key will be used as the
target for payouts for mining, and calls to getnewaddress and getaccount
address will return an error. In order to prevent such cases, the keypool
is automatically refilled when walletpassphrase is called with a correct
passphrase and when topupkeypool is called (while the wallet is unlocked).
Note that the keypool continues to be topped up on various occasions when
a new key from pool is used and the wallet is unlocked (or unencrypted).
See the documentation at the bitcoin wiki:
https://en.bitcoin.it/wiki/Main_Page

View File

@@ -1,4 +1,4 @@
Bitcoin 0.3.24 BETA
Bitcoin 0.4.1 BETA
Copyright (c) 2009-2011 Bitcoin Developers
Distributed under the MIT/X11 software license, see the accompanying

View File

@@ -0,0 +1,73 @@
Icon: src/qt/res/icons/clock*.png, src/qt/res/icons/tx*.png,
src/qt/res/src/*.svg
Designer: Wladimir van der Laan
License: Creative Commons Attribution
Icon: src/qt/res/icons/send.png
Icon Pack: Vista Style Arrow
Designer: Icons Land
License: Freeware Non-commercial
Site: http://findicons.com/icon/231371/right3green
Icon: src/qt/res/icons/address-book.png
Icon Pack: Farm-Fresh Web
Designer: FatCow Web Hosting
License: Creative Commons Attribution (by)
Site: http://findicons.com/icon/163938/book_open
Icon: src/qt/res/icons/connect*.png, src/qt/res/icons/synced.png, src/qt/res/icons/lock_*.png
Icon Pack: Human-O2
Designer: schollidesign
License: GNU/GPL
Site: http://findicons.com/icon/93743/blocks_gnome_netstatus_0
Icon: src/qt/res/icons/transaction*.png
Designer: md2k7
Site: https://forum.bitcoin.org/index.php?topic=15276.0
License: You are free to do with these icons as you wish, including selling,
copying, modifying etc.
Icon: src/qt/res/icons/configure.png, src/qt/res/icons/quit.png,
src/qt/res/icons/editcopy.png, src/qt/res/icons/editpaste.png,
src/qt/res/icons/add.png, src/qt/res/icons/edit.png,
src/qt/res/icons/remove.png (edited)
Designer: http://www.everaldo.com
Icon Pack: Crystal SVG
License: LGPL
Icon: src/qt/res/icons/receive.png, src/qt/res/icons/history.png,
src/qt/res/icons/export.png
Designer: Oxygen team
Icon Pack: Oxygen
License: Creative Common Attribution-ShareAlike 3.0 License or LGPL
Site: http://www.oxygen-icons.org/
Icon: src/qt/res/icons/bitcoin.png, src/qt/res/icons/toolbar.png
Designer: Bitboy (optimized for 16x16 by Wladimir van der Laan)
License: Public Domain
Site: http://forum.bitcoin.org/?topic=1756.0
Icon: src/qt/res/icons/overview.png
Icon Pack: Primo
Designer: Jack Cai
License: Creative Commons Attribution No Derivatives (by-nd)
Site: http://findicons.com/icon/175944/home?id=176221#
Icon: scripts/img/reload.xcf (modified),src/qt/res/movies/update_spinner.mng
Icon Pack: Kids
Designer: Everaldo (Everaldo Coelho)
License: GNU/GPL
Site: http://findicons.com/icon/17102/reload?id=17102
Image: src/qt/res/images/splash2.jpg (Wallet image)
Designer: Crobbo (forum)
Site: https://bitcointalk.org/index.php?topic=32273.0
License: Public domain
Icon: src/qt/res/icons/key.png
Designer: VisualPharm (Ivan Boyko)
Icon Pack: Must Have
Site: http://findicons.com/icon/51009/key?id=51009
License: Creative Commons Attribution (by)

View File

@@ -7,6 +7,9 @@ cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP
software written by Thomas Bernard.
See readme-qt.rst for instructions on building Bitcoin QT, the
graphical user interface.
WINDOWS BUILD NOTES
===================
@@ -27,39 +30,24 @@ 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/
Berkeley DB \db-4.8.30.NC-mgw http://www.oracle.com/technology/software/products/berkeley-db/index.html
Boost \boost-1.47.0-mgw http://www.boost.org/users/download/
miniupnpc \miniupnpc-1.6-mgw 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
Berkeley DB 4.8.30.NC
Boost 1.47.0
miniupnpc 1.6
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:
@@ -73,35 +61,30 @@ make
Berkeley DB
-----------
MSYS shell:
cd /c/db-4.7.25.NC-mgw/build_unix
cd /c/db-4.8.30.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
cd \boost-1.47.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
MSYS shell:
cd /c/miniupnpc-1.6-mgw
make -f Makefile.mingw
mkdir miniupnpc
cp *.h miniupnpc/
Bitcoin
-------
DOS prompt:
cd \bitcoin\src
mingw32-make bitcoin.exe bitcoind.exe -f makefile.mingw
strip bitcoin.exe
mingw32-make bitcoind.exe -f makefile.mingw
strip bitcoind.exe

View File

@@ -1,5 +1,4 @@
Copyright (c) 2010 Laszlo Hanyecz
Portions Copyright (c) 2011 Douglas Huff
Copyright (c) 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
@@ -8,11 +7,14 @@ software written by Eric Young (eay@cryptsoft.com) and UPnP software written by
Thomas Bernard.
Mac OS X build instructions
Mac OS X bitcoind build instructions
Laszlo Hanyecz <solar@heliacal.net>
Douglas Huff <dhuff@jrbobdobbs.org>
See readme-qt.rst for instructions on building Bitcoin QT, the
graphical user interface.
Tested on 10.5 and 10.6 intel. PPC is not supported because it's big-endian.
All of the commands should be executed in Terminal.app.. it's in
@@ -23,256 +25,29 @@ everything is available in /usr not just /Developer I think it comes on the DVD
but you can get the current version from http://developer.apple.com
1. Pick a directory to work inside.. something like ~/bitcoin works. The
structure I use looks like this:
1. Clone the github tree to get the source code:
(~ is your home directory)
git clone git@github.com:bitcoin/bitcoin.git bitcoin
~/bitcoin
~/bitcoin/bitcoin # Upstream source tree
~/bitcoin/src # source code (symlink to ~/bitcoin/bitcoin/src)
~/bitcoin/deps # dependencies.. like libraries and headers needed to compile
~/bitcoin/Bitcoin.app # the application bundle where you can run the app
2. Download and install MacPorts from http://www.macports.org/
Just execute: mkdir ~/bitcoin
This will create the top dir for you..
3. Install dependencies from MacPorts
WARNING: do not use the ~ notation with the configure scripts.. use the full
name of the directory, for example /Users/james/bitcoin/deps for a user named
'james'. In my examples I am using 'macosuser' so make sure you change that.
sudo port install boost db48 openssl
2. Check out the bitcoin code from github:
Install the right version of miniupnpc:
pushd bitcoin/contrib/minipupnpc; sudo port install; popd
(this will be unnecessary soon, you will just port install miniupnpc
along with the rest of the dependencies).
cd ~/bitcoin
git clone https://github.com/bitcoin/bitcoin.git
ln -s bitcoin/src src
4. Now you should be able to build bitcoind:
This will make ~/bitcoin/bitcoin for you with all the files from git. This puts
the actual sources in ~/bitcoin/bitcoin/src and create a symlink src in
~/bitcoin to this location.
3. Get and build the dependencies
Boost
-----
Download from http://www.boost.org/users/download/
I'm assuming it ended up in ~/Downloads..
mkdir ~/bitcoin/deps
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.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.
Change the prefix to whatever your directory is (my username in this example
is macosuser). I'm also running on 10.6 so i have macosx-version=10.6 change
to 10.5 if you're using leopard.
This is what my output looked like at the end:
...failed updating 2 targets...
...skipped 144 targets...
...updated 8074 targets...
OpenSSL
-------
(System or MacPorts openssl will work fine. Optional.)
Download from http://www.openssl.org/source/
We would like to build this as a 32 bit/64 bit library so we actually build it
2 times and join it together here.. If you downloaded with safari it already
uncompressed it so it will just be a tar not a tar.gz
cd ~/bitcoin/deps
tar xvf ~/Downloads/openssl-1.0.0.tar
mv openssl-1.0.0 openssl-1.0.0-i386
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/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/bitcoin/deps/openssl darwin64-x86_64-cc && make
cd ..
# combine the libs
cd ~/bitcoin/deps
lipo -arch i386 openssl-1.0.0-i386/libcrypto.a -arch x86_64 openssl-1.0.0-x86_64/libcrypto.a -o lib/libcrypto.a -create
lipo -arch i386 openssl-1.0.0-i386/libssl.a -arch x86_64 openssl-1.0.0-x86_64/libssl.a -o lib/libssl.a -create
Verify your binaries
file lib/libcrypto.a
output should look like this:
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
---------
(MacPorts miniupnpc package works fine. You will need to modify makefile.)
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
-----------
(System or MacPorts version work fine.)
Download from http://freshmeat.net/projects/berkeleydb/
cd ~/bitcoin/deps
tar xvf ~/Downloads/db-4.8.26.tar
cd db-4.8.26/build_unix
../dist/configure --prefix=/Users/macosuser/bitcoin/deps --enable-cxx && make && make install
wxWidgets
---------
(The wxWidgets-devel MacPorts package will work but will throw annoying assertion dialogs.)
This is the big one..
Check it out from svn
cd ~/bitcoin/deps
svn checkout http://svn.wxwidgets.org/svn/wx/wxWidgets/trunk wxWidgets-trunk
This will make a wxWidgets-trunk directory in deps.
Use this script snippet, change your prefix to whatever your dir is:
PREFIX=~/bitcoin/deps
SRCDIR="$PREFIX/wxWidgets-trunk"
BUILDDIR="$SRCDIR/macbuild"
cd "$PREFIX" &&
#svn checkout http://svn.wxwidgets.org/svn/wx/wxWidgets/trunk wxWidgets-trunk &&
cd "$SRCDIR" &&
[ -f include/wx/hashmap.h.orig ] || cp include/wx/hashmap.h include/wx/hashmap.h.orig &&
sed 's/if wxUSE_STL/if 0 \&\& wxUSE_STL/g' < include/wx/hashmap.h.orig > include/wx/hashmap.h &&
[ -f include/wx/hashset.h.orig ] || cp include/wx/hashset.h include/wx/hashset.h.orig &&
sed 's/if wxUSE_STL/if 0 \&\& wxUSE_STL/g' < include/wx/hashset.h.orig > include/wx/hashset.h &&
rm -vrf "$BUILDDIR" &&
mkdir "$BUILDDIR" &&
cd "$BUILDDIR" &&
../configure --prefix="$PREFIX" \
--with-osx_cocoa \
--disable-shared \
--disable-debug_flag \
--with-macosx-version-min=10.5 \
--enable-stl \
--enable-utf8 \
--enable-universal_binary \
--with-libjpeg=builtin \
--with-libpng=builtin \
--with-regex=builtin \
--with-libtiff=builtin \
--with-zlib=builtin \
--with-expat=builtin \
--with-macosx-sdk=/Developer/SDKs/MacOSX10.5.sdk &&
find . -name Makefile |
while read i; do
echo $i;
sed 's/-arch i386/-arch i386 -arch x86_64/g' < "$i" > "$i".new &&
mv "$i" "$i".old &&
mv "$i".new "$i";
done
make &&
make install
Now you should be able to build bitcoin
cd ~/bitcoin/src
make -f makefile.osx bitcoin
Before you can run it, you need to create an application bundle for Mac OS.
A bundle is provided in contrib/Bitcoin.app.
Copy the bitcoin binary in to it like this:
cp -pR ~/bitcoin/bitcoin/contrib/Bitcoin.app ~/bitcoin/
cp ~/bitcoin/src/bitcoin ~/bitcoin/Bitcoin.app/Contents/MacOS/
To run it you can just click the Bitcoin.app in Finder, or just do:
open ~/bitcoin/Bitcoin.app
If you want to run it with arguments you can just run it without backgrounding
by specifying the full name in terminal:
~/bitcoin/Bitcoin.app/Contents/MacOS/bitcoin -addnode=192.75.207.66
You can also run it with arguments in the background with output going to the
normal places for apps (Console) like this:
open ~/bitcoin/Bitcoin.app --args -connect=192.75.207.66
It is advisable to relocate Bitcoin.app to /Applications or $HOME/Applications.
cd bitcoin/src
make -f makefile.osx
Run:
./bitcoind --help # for a list of command-line options.
Run
./bitcoind -daemon # to start the bitcoin daemon.
Run
./bitcoind help # When the daemon is running, to get a list of RPC commands

View File

@@ -1,4 +1,5 @@
Copyright (c) 2009-2010 Satoshi Nakamoto
Copyright (c) 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
@@ -14,81 +15,79 @@ To Build
--------
cd src/
make -f makefile.unix # Headless bitcoin
make -f makefile.unix # Bitcoin with wxWidgets GUI
or
make -f makefile.unix bitcoind # Headless bitcoin
See readme-qt.rst for instructions on building Bitcoin QT,
the graphical bitcoin.
Dependencies
------------
Library Purpose Description
------- ------- -----------
libssl SSL Support Secure communications
libdb4.8 Berkeley DB Blockchain & wallet storage
libboost Boost C++ Library
miniupnpc UPnP Support Optional firewall-jumping support
miniupnpc may be used 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:
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
OpenSSL 0.9.8g
Berkeley DB 4.8.30.NC
Boost 1.37
miniupnpc 1.6
Dependency Build Instructions: Ubuntu & Debian
----------------------------------------------
sudo apt-get install build-essential
sudo apt-get install libgtk2.0-dev
sudo apt-get install libssl-dev
sudo apt-get install libdb4.7-dev
sudo apt-get install libdb4.7++-dev
Boost 1.40+: sudo apt-get install libboost-all-dev
or Boost 1.37: sudo apt-get install libboost1.37-dev
sudo apt-get install libdb4.8-dev
sudo apt-get install libdb4.8++-dev
Boost 1.40+: sudo apt-get install libboost-all-dev
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.
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.
Dependency Build Instructions: Gentoo
-------------------------------------
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.
Note: If you just want to install bitcoind on Gentoo, you can add the Bitcoin
overlay and use your package manager:
layman -a bitcoin && emerge bitcoind
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
emerge -av1 --noreplace boost glib openssl sys-libs/db:4.8
Versions used in this release:
GCC 4.3.3
OpenSSL 0.9.8g
wxWidgets 2.9.0
Berkeley DB 4.7.25.NC
Boost 1.37
miniupnpc 1.5
Take the following steps to build (no UPnP support):
cd ${BITCOIN_DIR}/src
make -f makefile.unix USE_UPNP= BDB_INCLUDE_PATH='/usr/include/db4.8'
strip bitcoind
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" to strip the debug
The release is built with GCC and then "strip bitcoind" to strip the debug
symbols, which reduces the executable size by about 90%.
wxWidgets
---------
cd /usr/local
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 --without-libpng --disable-svg
make
sudo su
make install
ldconfig
miniupnpc
---------
tar -xzvf miniupnpc-1.5.tar.gz
cd miniupnpc-1.5
tar -xzvf miniupnpc-1.6.tar.gz
cd miniupnpc-1.6
make
sudo su
make install
@@ -96,8 +95,7 @@ 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:
You need Berkeley DB 4.8. If you have to build Berkeley DB yourself:
../dist/configure --enable-cxx
make
@@ -108,3 +106,45 @@ If you need to build Boost yourself:
sudo su
./bootstrap.sh
./bjam install
Security
--------
To help make your bitcoin installation more secure by making certain attacks impossible to
exploit even if a vulnerability is found, you can take the following measures:
* Position Independent Executable
Build position independent code to take advantage of Address Space Layout Randomization
offered by some kernels. An attacker who is able to cause execution of code at an arbitrary
memory location is thwarted if he doesn't know where anything useful is located.
The stack and heap are randomly located by default but this allows the code section to be
randomly located as well.
On an Amd64 processor where a library was not compiled with -fPIC, this will cause an error
such as: "relocation R_X86_64_32 against `......' can not be used when making a shared object;"
To build with PIE, use:
make -f makefile.unix ... -e PIE=1
To test that you have built PIE executable, install scanelf, part of paxutils, and use:
scanelf -e ./bitcoin
The output should contain:
TYPE
ET_DYN
* Non-executable Stack
If the stack is executable then trivial stack based buffer overflow exploits are possible if
vulnerable buffers are found. By default, bitcoin should be built with a non-executable stack
but if one of the libraries it uses asks for an executable stack or someone makes a mistake
and uses a compiler extension which requires an executable stack, it will silently build an
executable without the non-executable stack protection.
To verify that the stack is non-executable after compiling use:
scanelf -e ./bitcoin
the output should contain:
STK/REL/PTL
RW- R-- RW-
The STK RW- means that the stack is readable and writeable but not executable.

View File

@@ -39,3 +39,61 @@ v vector or similar list objects
map map or multimap
set set or multiset
bn CBigNum
-------------------------
Locking/mutex usage notes
The code is multi-threaded, and uses mutexes and the
CRITICAL_BLOCK/TRY_CRITICAL_BLOCK macros to protect data structures.
Deadlocks due to inconsistent lock ordering (thread 1 locks cs_main
and then cs_wallet, while thread 2 locks them in the opposite order:
result, deadlock as each waits for the other to release its lock) are
a problem. Compile with -DDEBUG_LOCKORDER to get lock order
inconsistencies reported in the debug.log file.
Re-architecting the core code so there are better-defined interfaces
between the various components is a goal, with any necessary locking
done by the components (e.g. see the self-contained CKeyStore class
and its cs_KeyStore lock for example).
-------
Threads
StartNode : Starts other threads.
ThreadGetMyExternalIP : Determines outside-the-firewall IP address,
sends addr message to connected peers when it determines it.
ThreadIRCSeed : Joins IRC bootstrapping channel, watching for new
peers and advertising this node's IP address.
ThreadSocketHandler : Sends/Receives data from peers on port 8333.
ThreadMessageHandler : Higher-level message handling (sending and
receiving).
ThreadOpenConnections : Initiates new connections to peers.
ThreadTopUpKeyPool : replenishes the keystore's keypool.
ThreadCleanWalletPassphrase : re-locks an encrypted wallet after user
has unlocked it for a period of time.
SendingDialogStartTransfer : used by pay-via-ip-address code (obsolete)
ThreadDelayedRepaint : repaint the gui
ThreadFlushWalletDB : Close the wallet.dat file if it hasn't been used
in 500ms.
ThreadRPCServer : Remote procedure call handler, listens on port 8332
for connections and services them.
ThreadBitcoinMiner : Generates bitcoins
ThreadMapPort : Universal plug-and-play startup/shutdown
Shutdown : Does an orderly shutdown of everything
ExitTimeout : Windows-only, sleeps 5 seconds then exits application

162
doc/readme-qt.rst Normal file
View File

@@ -0,0 +1,162 @@
Bitcoin-qt: Qt4 based GUI replacement for Bitcoin
=================================================
Features
========
- All functionality of the Wx GUI, including wallet encryption
- Compatibility with Linux (both GNOME and KDE), MacOSX and Windows
- Notification on incoming / outgoing transactions (compatible with FreeDesktop and other desktop notification schemes)
- General interface improvements: Splash screen, tabbed interface
- Overview page with current balance, unconfirmed balance, and such
- Better transaction list with status icons, real-time filtering and a context menu
- Asks for confirmation before sending coins, for your own safety
- CSV export of transactions and address book (for Excel bookkeeping)
- Shows alternative icon when connected to testnet, so you never accidentally send real coins during testing
- Shows a progress bar on initial block download, so that you don't have to wonder how many blocks it needs to download to be up to date
- Sendmany support, send to multiple recipients at the same time
- Multiple unit support, can show subdivided bitcoins (uBTC, mBTC) for users that like large numbers
- Support for English, German, Russian and Dutch languages
- Address books and transaction table can be sorted by any column
- Accepts "bitcoin:" URLs from browsers and other sources through drag and drop
Build instructions
===================
Debian
-------
First, make sure that the required packages for Qt4 development of your
distribution are installed, for Debian and Ubuntu these are:
::
apt-get install qt4-qmake libqt4-dev build-essential libboost-dev libboost-system-dev \
libboost-filesystem-dev libboost-program-options-dev libboost-thread-dev \
libssl-dev libdb4.8++-dev
then execute the following:
::
qmake
make
Alternatively, install Qt Creator and open the `bitcoin-qt.pro` file.
An executable named `bitcoin-qt` will be built.
Windows
--------
Windows build instructions:
- Download the `QT Windows SDK`_ and install it. You don't need the Symbian stuff, just the desktop Qt.
- Download and extract the `dependencies archive`_ [#]_, or compile openssl, boost and dbcxx yourself.
- Copy the contents of the folder "deps" to "X:\\QtSDK\\mingw", replace X:\\ with the location where you installed the Qt SDK. Make sure that the contents of "deps\\include" end up in the current "include" directory.
- Open the .pro file in QT creator and build as normal (ctrl-B)
.. _`QT Windows SDK`: http://qt.nokia.com/downloads/sdk-windows-cpp
.. _`dependencies archive`: https://download.visucore.com/bitcoin/qtgui_deps_1.zip
.. [#] PGP signature: https://download.visucore.com/bitcoin/qtgui_deps_1.zip.sig (signed with RSA key ID `610945D0`_)
.. _`610945D0`: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x610945D0
Mac OS X
--------
- Download and install the `Qt Mac OS X SDK`_. It is recommended to also install Apple's Xcode with UNIX tools.
- Download and install `MacPorts`_.
- Execute the following commands in a terminal to get the dependencies:
::
sudo port selfupdate
sudo port install boost db48
- Open the .pro file in Qt Creator and build as normal (cmd-B)
.. _`Qt Mac OS X SDK`: http://qt.nokia.com/downloads/sdk-mac-os-cpp
.. _`MacPorts`: http://www.macports.org/install.php
Build configuration options
============================
UPNnP port forwarding
---------------------
To use UPnP for port forwarding behind a NAT router (recommended, as more connections overall allow for a faster and more stable bitcoin experience), pass the following argument to qmake:
::
qmake "USE_UPNP=1"
(in **Qt Creator**, you can find the setting for additional qmake arguments under "Projects" -> "Build Settings" -> "Build Steps", then click "Details" next to **qmake**)
This requires miniupnpc for UPnP port mapping. It can be downloaded from
http://miniupnp.tuxfamily.org/files/. UPnP support is not compiled in by default.
Set USE_UPNP to a different value to control this:
+------------+--------------------------------------------------------------+
| USE_UPNP= | (the default) no UPnP support, miniupnpc not required; |
+------------+--------------------------------------------------------------+
| USE_UPNP=0 | UPnP support turned off by default at runtime; |
+------------+--------------------------------------------------------------+
| USE_UPNP=1 | UPnP support turned on by default at runtime. |
+------------+--------------------------------------------------------------+
Mac OS X users: miniupnpc is currently outdated on MacPorts. An updated Portfile is provided in contrib/miniupnpc within this project.
You can execute the following commands in a terminal to install it:
::
cd <location of bitcoin-qt>/contrib/miniupnpc
sudo port install
Notification support for recent (k)ubuntu versions
---------------------------------------------------
To see desktop notifications on (k)ubuntu versions starting from 10.04, enable usage of the
FreeDesktop notification interface through DBUS using the following qmake option:
::
qmake "USE_DBUS=1"
Berkely DB version warning
==========================
A warning for people using the *static binary* version of Bitcoin on a Linux/UNIX-ish system (tl;dr: **Berkely DB databases are not forward compatible**).
The static binary version of Bitcoin is linked against libdb4.7 or libdb4.8 (see also `this Debian issue`_).
Now the nasty thing is that databases from 5.X are not compatible with 4.X.
If the globally installed development package of Berkely DB installed on your system is 5.X, any source you
build yourself will be linked against that. The first time you run with a 5.X version the database will be upgraded,
and 4.X cannot open the new format. This means that you cannot go back to the old statically linked version without
significant hassle!
.. _`this Debian issue`: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=621425

View File

@@ -1,6 +1,9 @@
* update (commit) version in sources
src/serialize.h
share/setup.nsi
* update (commit) version in OSX app bundle
contrib/Bitcoin.app/Contents/Info.plist
* CFBundleShortVersionString should have value like 0.3.23
* CFBundleVersion should have value like 323
@@ -20,15 +23,45 @@
* perform gitian builds
* From the bitcoin source dir
$ cd ../gitian-builder
$ ./bin/gbuild --commit bitcoin=v0.3.23 ../bitcoin/contrib/gitian.yml
$ ./bin/gbuild --commit bitcoin=v0.3.23 ../bitcoin/contrib/gitian-win32.yml
* From a directory containing the bitcoin source, gitian-builder and gitian.sigs
$ export VERSION=0.3.23
$ cd ./gitian-builder
$ ./bin/gbuild --commit bitcoin=v$VERSION ../bitcoin/contrib/gitian-descriptors/gitian.yml
$ ./bin/gsign --signer (your gitian key, ie bluematt, sipa, etc) --release $VERSION --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian.yml
$ cd build/out
$ zip bitcoin-$VERSION-linux-gitian.zip *
$ mv bitcoin-$VERSION-linux-gitian.zip ../../
$ ./bin/gbuild --commit bitcoin=v$VERSION ../bitcoin/contrib/gitian-descriptors/gitian-win32.yml
$ ./bin/gsign --signer (your gitian key, ie bluematt, sipa, etc) --release $VERSION-win32 --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-win32.yml
$ cd build/out
$ zip bitcoin-$VERSION-win32-gitian.zip *
$ mv bitcoin-$VERSION-win32-gitian.zip ../../
Build output expected:
1. linux 32-bit and 64-bit binaries + source
2. windows 32-bit binary + source
3. windows installer
1. linux 32-bit and 64-bit binaries + source (bitcoin-$VERSION-linux-gitian.zip)
2. windows 32-bit binary, installer + source (bitcoin-$VERSION-win32-gitian.zip)
3. Gitian signatures (in gitian.sigs/$VERSION[-win32]/(your gitian key)/
* repackage gitian builds for release as stand-alone zip/tar/installer exe
* Windows .zip and setup.exe:
$ mkdir bitcoin-$VERSION-win32
$ cd bitcoin-$VERSION-win32
$ unzip bitcoin-$VERSION-win32-gitian.zip
$ mv bitcoin-$VERSION-win32-setup.exe ..
$ cd ..; zip bitcoin-$VERSION-win32.zip bitcoin-$VERSION-win32
* Linux .tar.gz:
$ mkdir bitcoin-$VERSION-linux
$ cd bitcoin-$VERSION-linux
$ unzip bitcoin-$VERSION-linux-gitian.zip
$ cd ..; tar czvf bitcoin-$VERSION-linux.tar.gz bitcoin-$VERSION-linux
* perform Mac build
* From the bitcoin source dir
$ cd contrib
$ ./create_osx_dmg.sh
$ mv Bitcoin.dmg bitcoin-$VERSION-macosx.dmg
* upload source and builds to SF
@@ -42,4 +75,34 @@
* update wiki download links
* release gitian-signed gitian archives
* Collect enough gitian signatures to meet minimum_weight (see contrib/gitian-downloader/*-download-config)
* From a directory containing bitcoin source, gitian.sigs and gitian zips
$ export VERSION=0.3.23
$ mkdir bitcoin-$VERSION-win32-gitian; cd bitcoin-$VERSION-win32-gitian
$ unzip ../bitcoin-$VERSION-win32-gitian.zip
$ mkdir gitian
$ cp ../bitcoin/contrib/gitian-downloader/*.pgp ./gitian/
$ for file in `ls ../gitian.sigs/$VERSION-win32/`; do
$ cp ../gitian.sigs/$VERSION-win32/$file/bitcoin-build.assert ./gitian/$file-build.assert
$ cp ../gitian.sigs/$VERSION-win32/$file/bitcoin-build.assert.sig ./gitian/$file-build.assert.sig
$ done
$ zip bitcoin-$VERSION-win32-gitian.zip *
$ cp bitcoin-$VERSION-win32-gitian.zip ../
$ cd ..
$ mkdir bitcoin-$VERSION-linux-gitian; cd bitcoin-$VERSION-linux-gitian
$ unzip ../bitcoin-$VERSION-linux-gitian.zip
$ mkdir gitian
$ cp ../bitcoin/contrib/gitian-downloader/*.pgp ./gitian/
$ for file in `ls ../gitian.sigs/$VERSION/`; do
$ cp ../gitian.sigs/$VERSION/$file/bitcoin-build.assert ./gitian/$file-build.assert
$ cp ../gitian.sigs/$VERSION/$file/bitcoin-build.assert.sig ./gitian/$file-build.assert.sig
$ done
$ zip bitcoin-$VERSION-linux-gitian.zip *
$ cp bitcoin-$VERSION-linux-gitian.zip ../
* Upload gitian zips to SF

Binary file not shown.

View File

@@ -1,971 +0,0 @@
# 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: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.

View File

@@ -1,975 +0,0 @@
# Jakob Kramer <censored@gmail.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-15 18:18+0100\n"
"PO-Revision-Date: 2011-05-26 22:34+0100\n"
"Last-Translator: Jakob Kramer <censored@gmail.com>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Virtaal 0.6.1\n"
"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
"X-Poedit-Basepath: .\n"
"X-Poedit-SearchPath-0: ../../..\n"
#: ../../../src/net.cpp:1499
#, c-format
msgid "Unable to bind to port %d on this computer. Bitcoin is probably already running."
msgstr "Kann nicht zu Port %d auf diesem Computer verbinden. Bitcoin läuft wahrscheinlich bereits."
#: ../../../src/ui.cpp:202
#, 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 "Diese Überweisung übersteigt das Betragslimit. Sie können sie trotzdem tätigen, aber es wird eine Gebühr von %s erhoben, die an den Teilnehmer ausgeschüttet wird, der Ihre Überweisung bearbeitet und dadurch hilft, das Netzwerk am laufen zu halten. Möchten Sie die Gebühr entrichten?"
#: ../../../src/ui.cpp:301
msgid "Status"
msgstr "Status"
#: ../../../src/ui.cpp:302
msgid "Date"
msgstr "Datum"
#: ../../../src/ui.cpp:303
msgid "Description"
msgstr "Beschreibung"
#: ../../../src/ui.cpp:304
msgid "Debit"
msgstr "Belastungen"
#: ../../../src/ui.cpp:305
msgid "Credit"
msgstr "Gutschriften"
#: ../../../src/ui.cpp:511
#, c-format
msgid "Open for %d blocks"
msgstr "Offen für %d Blöcke"
#: ../../../src/ui.cpp:513
#, c-format
msgid "Open until %s"
msgstr "Offen bis %s"
#: ../../../src/ui.cpp:519
#, c-format
msgid "%d/offline?"
msgstr "%d/Offline?"
#: ../../../src/ui.cpp:521
#, c-format
msgid "%d/unconfirmed"
msgstr "%d/nicht bestätigt"
#: ../../../src/ui.cpp:523
#, c-format
msgid "%d confirmations"
msgstr "%d Bestätigungen"
#: ../../../src/ui.cpp:608
msgid "Generated"
msgstr "Erzeugt"
#: ../../../src/ui.cpp:616
#, c-format
msgid "Generated (%s matures in %d more blocks)"
msgstr "Erzeugt (%s reifen nach %d weiteren Blöcken)"
#: ../../../src/ui.cpp:620
msgid "Generated - Warning: This block was not received by any other nodes and will probably not be accepted!"
msgstr "Erzeugt - Warnung: Dieser Block wurde von keinem anderen Teilnehmer empfangen und wird wahrscheinlich nicht akzeptiert werden!"
#: ../../../src/ui.cpp:624
msgid "Generated (not accepted)"
msgstr "Erzeugt (nicht akzeptiert)"
#: ../../../src/ui.cpp:634
msgid "From: "
msgstr "Von: "
#: ../../../src/ui.cpp:658
msgid "Received with: "
msgstr "Empfangen durch: "
#: ../../../src/ui.cpp:704
msgid "Payment to yourself"
msgstr "Überweisung an Sie selbst"
#: ../../../src/ui.cpp:738
msgid "To: "
msgstr "An: "
#: ../../../src/ui.cpp:1053
msgid " Generating"
msgstr " Erzeugen"
#: ../../../src/ui.cpp:1055
msgid "(not connected)"
msgstr "(nicht verbunden)"
#: ../../../src/ui.cpp:1058
#, c-format
msgid " %d connections %d blocks %d transactions"
msgstr " %d Verbindungen %d Blöcke %d Überweisungen"
#: ../../../src/ui.cpp:1163
#: ../../../src/ui.cpp:2527
msgid "New Receiving Address"
msgstr "&Neue Empfangs-Adresse"
#: ../../../src/ui.cpp:1164
#: ../../../src/ui.cpp:2528
msgid ""
"You should use a new address for each payment you receive.\n"
"\n"
"Label"
msgstr ""
"Am besten verwenden Sie für jede Zahlung, die Sie erhalten, eine neue Adresse.\n"
"\n"
"Beschreibung"
#: ../../../src/ui.cpp:1233
msgid "<b>Status:</b> "
msgstr "<b>Status:</b> "
#: ../../../src/ui.cpp:1238
msgid ", has not been successfully broadcast yet"
msgstr ", wurde noch nicht erfolgreich übertragen"
#: ../../../src/ui.cpp:1240
#, c-format
msgid ", broadcast through %d node"
msgstr ", durch %d Teilnehmer übertragen"
#: ../../../src/ui.cpp:1242
#, c-format
msgid ", broadcast through %d nodes"
msgstr ", durch %d Teilnehmer übertragen"
#: ../../../src/ui.cpp:1246
msgid "<b>Date:</b> "
msgstr "<b>Datum</b> "
#: ../../../src/ui.cpp:1254
msgid "<b>Source:</b> Generated<br>"
msgstr "<b>Quelle:</b> Erzeugt<br>"
#: ../../../src/ui.cpp:1260
#: ../../../src/ui.cpp:1278
msgid "<b>From:</b> "
msgstr "<b>Von:</b> "
#: ../../../src/ui.cpp:1278
msgid "unknown"
msgstr "Unbekannt"
#: ../../../src/ui.cpp:1279
#: ../../../src/ui.cpp:1303
#: ../../../src/ui.cpp:1362
msgid "<b>To:</b> "
msgstr "<b>An:</b> "
#: ../../../src/ui.cpp:1282
msgid " (yours, label: "
msgstr " (Eigene, Beschreibung: "
#: ../../../src/ui.cpp:1284
msgid " (yours)"
msgstr " (Eigene)"
#: ../../../src/ui.cpp:1321
#: ../../../src/ui.cpp:1333
#: ../../../src/ui.cpp:1379
#: ../../../src/ui.cpp:1396
msgid "<b>Credit:</b> "
msgstr "<b>Gutschrift:</b> "
#: ../../../src/ui.cpp:1323
#, c-format
msgid "(%s matures in %d more blocks)"
msgstr "(%s reifen nach %d weiteren Blöcken)"
#: ../../../src/ui.cpp:1325
msgid "(not accepted)"
msgstr "(nicht akzeptiert)"
#: ../../../src/ui.cpp:1370
#: ../../../src/ui.cpp:1378
#: ../../../src/ui.cpp:1393
msgid "<b>Debit:</b> "
msgstr "<b>Belastung:</b> "
#: ../../../src/ui.cpp:1384
msgid "<b>Transaction fee:</b> "
msgstr "<b>Überweisungsgebühr:</b> "
#: ../../../src/ui.cpp:1400
msgid "<b>Net amount:</b> "
msgstr "<b>Nettobetrag:</b> "
#: ../../../src/ui.cpp:1407
msgid "Message:"
msgstr "Nachricht:"
#: ../../../src/ui.cpp:1409
msgid "Comment:"
msgstr "Kommentar:"
#: ../../../src/ui.cpp:1412
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 "Erzeugte Münzen müssen 120 Blöcke lang reifen. Als Sie diesen Block erzeugt haben, wurde er an alle Teilnehmer übertragen, damit er zur Block-Kette hinzugefügt werden kann. Falls der Block es nicht in die Block-Kette schafft, wird die Beschreibung zu \"nicht akzeptiert\" geändert, und Sie können die Münzen nicht ausgeben. Dies kann manchmal passieren, wenn Sie und ein anderer Teilnehmer annähernd zeitgleich einen Block erzeugen."
#: ../../../src/ui.cpp:1592
msgid "Cannot write autostart/bitcoin.desktop file"
msgstr "Kann Datei autostart/bitcoin.desktop nicht schreiben"
#: ../../../src/ui.cpp:1628
msgid "Main"
msgstr "Haupt"
#: ../../../src/ui.cpp:1636
msgid "&Start Bitcoin on window system startup"
msgstr "Bitcoin beim &Systemstart ausführen"
#: ../../../src/ui.cpp:1643
msgid "&Minimize on close"
msgstr "Beim schließen &Minimieren"
#: ../../../src/ui.cpp:1785
#, c-format
msgid "version %s"
msgstr "version %s"
#: ../../../src/ui.cpp:1897
msgid "Error in amount "
msgstr "Fehler in Betrag "
#: ../../../src/ui.cpp:1897
#: ../../../src/ui.cpp:1902
#: ../../../src/ui.cpp:1907
#: ../../../src/ui.cpp:1942
#: ../../../src/uibase.cpp:55
msgid "Send Coins"
msgstr "Überweisen"
#: ../../../src/ui.cpp:1902
msgid "Amount exceeds your balance "
msgstr "Der Betrag übersteigt Ihr Guthaben "
#: ../../../src/ui.cpp:1907
msgid "Total exceeds your balance when the "
msgstr "Der Betrag übersteigt Ihr Guthaben, wenn man die "
#: ../../../src/ui.cpp:1907
msgid " transaction fee is included "
msgstr " Überweisungsgebühr berücksichtigt "
#: ../../../src/ui.cpp:1925
msgid "Payment sent "
msgstr "Zahlung überwiesen "
#: ../../../src/ui.cpp:1925
#: ../../../src/ui.cpp:1930
#: ../../../src/ui.cpp:2074
#: ../../../src/ui.cpp:2227
#: ../../../src/main.cpp:3999
msgid "Sending..."
msgstr "Überweise ..."
#: ../../../src/ui.cpp:1942
msgid "Invalid address "
msgstr "Ungültige Adresse "
#: ../../../src/ui.cpp:1995
#, c-format
msgid "Sending %s to %s"
msgstr "Überweise %s an %s"
#: ../../../src/ui.cpp:2068
#: ../../../src/ui.cpp:2101
msgid "CANCELLED"
msgstr "ANNULLIERT"
#: ../../../src/ui.cpp:2072
msgid "Cancelled"
msgstr "Annulliert"
#: ../../../src/ui.cpp:2074
msgid "Transfer cancelled "
msgstr "Überweisung annulliert "
#: ../../../src/ui.cpp:2127
msgid "Error: "
msgstr "Fehler: "
#: ../../../src/ui.cpp:2141
#: ../../../src/ui.cpp:2212
#: ../../../src/main.cpp:4018
msgid "Insufficient funds"
msgstr "Unzureichende Geldmittel"
#: ../../../src/ui.cpp:2146
msgid "Connecting..."
msgstr "Verbinde ..."
#: ../../../src/ui.cpp:2151
msgid "Unable to connect"
msgstr "Kann nicht verbinden"
#: ../../../src/ui.cpp:2156
msgid "Requesting public key..."
msgstr "Fordere öffentlichen Schlüssel an ..."
#: ../../../src/ui.cpp:2168
msgid "Received public key..."
msgstr "Öffentlicher Schlüssel empfangen ..."
#: ../../../src/ui.cpp:2182
msgid "Recipient is not accepting transactions sent by IP address"
msgstr "Empfänger akzeptiert keine Überweisungen von IP-Adressen"
#: ../../../src/ui.cpp:2184
msgid "Transfer was not accepted"
msgstr "Überweisung wurde nicht akzeptiert"
#: ../../../src/ui.cpp:2193
msgid "Invalid response received"
msgstr "Ungültige Antwort erhalten"
#: ../../../src/ui.cpp:2208
msgid "Creating transaction..."
msgstr "Erstelle Überweisung ..."
#: ../../../src/ui.cpp:2220
#, 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 "Diese Überweisung benötigt eine Überweisungsgebühr von mindestens %s wegen ihres Betrags, Komplexität oder der Benutzung kürzlich erhaltener Geldmittel"
#: ../../../src/ui.cpp:2222
msgid "Transaction creation failed"
msgstr "Überweisung konnte nicht erzeugt werden."
#: ../../../src/ui.cpp:2229
msgid "Transaction aborted"
msgstr "Überweisung abgebrochen"
#: ../../../src/ui.cpp:2237
msgid "Lost connection, transaction cancelled"
msgstr "Verbindung verloren, Überweisungsvorgang abgebrochen"
#: ../../../src/ui.cpp:2253
msgid "Sending payment..."
msgstr "Überweise Zahlung ..."
#: ../../../src/ui.cpp:2259
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 "Die Überweisung wurde abgelehnt. Das kann passieren, wenn einige der Münzen in Ihrer Brieftasche bereits ausgegeben wurden, z.B. weil Sie eine Kopie der Brieftasche (wallet.dat) gemacht haben. Bitcoins, die mithilfe der Kopie ausgegeben wurden, sind in dieser Brieftasche noch nicht als ausgegeben markiert worden."
#: ../../../src/ui.cpp:2268
msgid "Waiting for confirmation..."
msgstr "Warte auf Bestätigung ..."
#: ../../../src/ui.cpp:2286
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 ""
"Die Zahlung wurde überwiesen, aber der Empfänger konnte sie nicht bestätigen.\n"
"Die Überweisung wurde gespeichert und wird dem Empfänger gutgeschrieben,\n"
"aber die begleitende Nachricht wird nicht ankommen."
#: ../../../src/ui.cpp:2295
msgid "Payment was sent, but an invalid response was received"
msgstr "Die Zahlung wurde überwiesen, aber die Antwort war fehlerhaft"
#: ../../../src/ui.cpp:2301
msgid "Payment completed"
msgstr "Zahlung ausgeführt"
#: ../../../src/ui.cpp:2332
#: ../../../src/ui.cpp:2478
#: ../../../src/ui.cpp:2515
msgid "Name"
msgstr "Name"
#: ../../../src/ui.cpp:2333
#: ../../../src/ui.cpp:2478
#: ../../../src/ui.cpp:2515
msgid "Address"
msgstr "Adresse"
#: ../../../src/ui.cpp:2335
#: ../../../src/ui.cpp:2490
msgid "Label"
msgstr "Beschreibung"
#: ../../../src/ui.cpp:2336
#: ../../../src/uibase.cpp:837
msgid "Bitcoin Address"
msgstr "Bitcoin-Adresse"
#: ../../../src/ui.cpp:2460
msgid "This is one of your own addresses for receiving payments and cannot be entered in the address book. "
msgstr "Dies ist eine Ihrer eigenen Adressen für den Zahlungseingang und kann deshalb nicht in das Adressbuch übernommen werden. "
#: ../../../src/ui.cpp:2478
#: ../../../src/ui.cpp:2484
msgid "Edit Address"
msgstr "Adresse bearbeiten"
#: ../../../src/ui.cpp:2490
msgid "Edit Address Label"
msgstr "Beschreibung der Adresse bearbeiten"
#: ../../../src/ui.cpp:2515
#: ../../../src/ui.cpp:2521
msgid "Add Address"
msgstr "Adresse hinzufügen"
#: ../../../src/ui.cpp:2598
msgid "Bitcoin"
msgstr "Bitcoin"
#: ../../../src/ui.cpp:2600
msgid "Bitcoin - Generating"
msgstr "Bitcoin - Erzeuge"
#: ../../../src/ui.cpp:2602
msgid "Bitcoin - (not connected)"
msgstr "Bitcoin - (nicht verbunden)"
#: ../../../src/ui.cpp:2681
msgid "&Open Bitcoin"
msgstr "Bitcoin Ö&ffnen"
#: ../../../src/ui.cpp:2682
msgid "&Send Bitcoins"
msgstr "Bitcoins &senden"
#: ../../../src/ui.cpp:2683
msgid "O&ptions..."
msgstr "O&ptionen ..."
#: ../../../src/ui.cpp:2686
#: ../../../src/uibase.cpp:25
msgid "E&xit"
msgstr "B&eenden"
#: ../../../src/ui.cpp:2902
msgid "Program has crashed and will terminate. "
msgstr "Das Programm ist abgestürzt und wird beendet. "
#: ../../../src/main.cpp:1868
msgid "Warning: Disk space is low "
msgstr "Warnung: Festplatte fast voll "
#: ../../../src/main.cpp:3992
#, 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 "Fehler: Diese Überweisung benötigt eine Überweisungsgebühr von mindestens %s wegen ihrer Größe, Komplexität oder der Benutzung erst kürzlich erhaltener Geldmittel "
#: ../../../src/main.cpp:3994
msgid "Error: Transaction creation failed "
msgstr "Fehler: Überweisung konnte nicht erzeugt werden. "
#: ../../../src/main.cpp:4003
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 "Fehler: Die Überweisung wurde abgelehnt. Das kann passieren, wenn einige der Münzen in Ihrer Brieftasche bereits ausgegeben wurden, z.B. weil Sie eine Kopie der Brieftasche (wallet.dat) gemacht haben. Bitcoins, die mithilfe der Kopie ausgegeben wurden, sind in dieser Brieftasche noch nicht als ausgegeben markiert worden."
#: ../../../src/main.cpp:4016
msgid "Invalid amount"
msgstr "Ungültiger Betrag"
#: ../../../src/main.cpp:4023
msgid "Invalid bitcoin address"
msgstr "Ungültige Bitcoin-Adresse"
#: ../../../src/rpc.cpp:1800
#: ../../../src/rpc.cpp:1802
#, c-format
msgid "To use the %s option"
msgstr "Um die %s Option zu nutzen"
#: ../../../src/rpc.cpp:1804
#, 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 ""
"Warnung: %s, Sie müssen rpcpassword=<password> einstellen\n"
"in der Konfigurationsdatei: %s\n"
"Wenn die Datei nicht existiert, erstellen Sie sie mit ausschließlich Besitzer-Leserechten.\n"
#: ../../../src/rpc.cpp:1972
#, 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 ""
"Sie müssen rpcpassword=<password> in der Konfigurationsdatei einstellen:\n"
"%s\n"
"Wenn die Datei nicht existiert, erstellen Sie sie mit ausschließlich Besitzer-Leserechten."
#: ../../../src/util.cpp:865
msgid "Warning: Please check that your computer's date and time are correct. If your clock is wrong Bitcoin will not work properly."
msgstr "Warnung: Bitte überprüfen Sie die Richtigkeit des Datums und der Uhrzeit Ihres Computers. Falls Ihre Uhr falsch läuft, wird Bitcoin nicht richtig funktionieren."
#: ../../../src/util.cpp:898
msgid "beta"
msgstr "Beta"
#: ../../../src/uibase.cpp:28
msgid "&File"
msgstr "&Datei"
#: ../../../src/uibase.cpp:32
msgid "&Your Receiving Addresses..."
msgstr "&Ihre Empfangs-Adressen ..."
#: ../../../src/uibase.cpp:36
msgid "&Options..."
msgstr "&Optionen ..."
#: ../../../src/uibase.cpp:39
msgid "&Settings"
msgstr "&Einstellungen"
#: ../../../src/uibase.cpp:43
msgid "&About..."
msgstr "Ü&ber..."
#: ../../../src/uibase.cpp:46
msgid "&Help"
msgstr "&Hilfe"
#: ../../../src/uibase.cpp:56
msgid "Address Book"
msgstr "Adressbuch"
#: ../../../src/uibase.cpp:69
msgid "Your Bitcoin Address:"
msgstr "Ihre Bitcoin-Adresse:"
#: ../../../src/uibase.cpp:76
msgid " &New... "
msgstr " &Neu ... "
#: ../../../src/uibase.cpp:79
#: ../../../src/uibase.cpp:780
#: ../../../src/uibase.cpp:883
msgid " &Copy to Clipboard "
msgstr " In die Zwischenablage &kopieren "
#: ../../../src/uibase.cpp:93
msgid "Balance:"
msgstr "Kontostand:"
#: ../../../src/uibase.cpp:109
msgid " All"
msgstr " Alle"
#: ../../../src/uibase.cpp:109
msgid " Sent"
msgstr " Überwiesen"
#: ../../../src/uibase.cpp:109
msgid " Received"
msgstr " Erhalten"
#: ../../../src/uibase.cpp:109
msgid " In Progress"
msgstr " In Bearbeitung"
#: ../../../src/uibase.cpp:130
msgid "All Transactions"
msgstr "Alle Überweisungen"
#: ../../../src/uibase.cpp:141
msgid "Sent/Received"
msgstr "Überwiesen/Erhalten"
#: ../../../src/uibase.cpp:152
msgid "Sent"
msgstr "Überwiesen"
#: ../../../src/uibase.cpp:163
msgid "Received"
msgstr "Erhalten"
#: ../../../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 "OK"
#: ../../../src/uibase.cpp:345
msgid "&Start Bitcoin on system startup"
msgstr "Bitcoin beim &Systemstart ausführen"
#: ../../../src/uibase.cpp:348
msgid "&Minimize to the tray instead of the taskbar"
msgstr "In den Infobereich statt in die Taskleiste &minimieren"
#: ../../../src/uibase.cpp:351
msgid "Map port using &UPnP"
msgstr "Portweiterleitung via &UPnP"
#: ../../../src/uibase.cpp:354
msgid "M&inimize to the tray on close"
msgstr "Beim Schließen in den Infobereich m&inimieren"
#: ../../../src/uibase.cpp:360
msgid "&Connect through socks4 proxy: "
msgstr "&Per Socks4-Proxy verbinden: "
#: ../../../src/uibase.cpp:371
msgid "Proxy &IP:"
msgstr "Proxy &IP:"
#: ../../../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 "Eine freiwillige Überweisungsgebühr pro KB, die dabei hilft, dass Ihre Überweisungen schnell durchgeführt werden. Die meisten Überweisungen sind 1 KB groß. Eine Gebühr von 0,01 ist empfohlen."
#: ../../../src/uibase.cpp:399
msgid "Pay transaction fee:"
msgstr "Überweisungsgebühr:"
#: ../../../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 "Abbrechen"
#: ../../../src/uibase.cpp:449
msgid "&Apply"
msgstr "&Anwenden"
#: ../../../src/uibase.cpp:508
msgid "Bitcoin "
msgstr "Bitcoin "
#: ../../../src/uibase.cpp:514
msgid "version"
msgstr "Version"
#: ../../../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 Bitcoin Developers\n"
"\n"
"Dies ist experimentelle Software.\n"
"\n"
"Lizensiert unter der MIT/X11 Software-Lizenz. Beachten Sie die beiliegende\n"
"Datei license.txt oder http://www.opensource.org/licenses/mit-license.php.\n"
"\n"
"Dieses Produkt enthält Software, die vom OpenSSL-Projekt zur Nutzung im\n"
"OpenSSL Toolkit (http://www.openssl.org/) geschrieben wurde, sowie\n"
"kryptographische Software von Eric Young (eay@cryptsoft.com)\n"
"und UPnP-Software, entwickelt von Thomas Bernard."
#: ../../../src/uibase.cpp:581
msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
msgstr "Geben Sie eine Bitcoin-Adresse ein (z.B. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
#: ../../../src/uibase.cpp:595
msgid "Pay &To:"
msgstr "Überweisen &An:"
#: ../../../src/uibase.cpp:610
msgid "&Paste"
msgstr "&Einfügen"
#: ../../../src/uibase.cpp:613
msgid " Address &Book..."
msgstr " Address&buch..."
#: ../../../src/uibase.cpp:620
msgid "&Amount:"
msgstr "&Betrag:"
#: ../../../src/uibase.cpp:630
msgid "T&ransfer:"
msgstr "Ü&berweisung:"
#: ../../../src/uibase.cpp:636
msgid " Standard"
msgstr " Standard"
#: ../../../src/uibase.cpp:663
msgid "&Send"
msgstr "Ü&berweisen"
#: ../../../src/uibase.cpp:711
msgid ""
"\n"
"\n"
"Connecting..."
msgstr ""
"\n"
"\n"
"Verbinde ..."
#: ../../../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 "Dies sind Ihre Bitcoin-Adressen zum Empfang von Zahlungen. Sie sollten vielleicht jedem Überweisenden eine andere Adresse geben um nachvollziehen zu können von wem eine Zahlung stammt. Die markierte Adresse wird im Hauptfenster angezeigt."
#: ../../../src/uibase.cpp:774
#: ../../../src/uibase.cpp:886
msgid "&Edit..."
msgstr "&Bearbeiten ..."
#: ../../../src/uibase.cpp:777
#: ../../../src/uibase.cpp:889
msgid " &New Address... "
msgstr " &Neue Adresse ... "
#: ../../../src/uibase.cpp:849
msgid "Sending"
msgstr "Überweise"
#: ../../../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 "Dies sind Ihre Bitcoin-Adressen zum Empfang von Zahlungen. Sie können jedem Überweisenden eine andere Adresse geben um nachvollziehen zu können von wem eine Zahlung stammt. Die markierte Adresse wird im Hauptfenster angezeigt."
#: ../../../src/uibase.cpp:870
msgid "Receiving"
msgstr "Empfange"
#: ../../../src/uibase.cpp:880
msgid "&Delete"
msgstr "&Löschen"
#: ../../../src/init.cpp:147
msgid "Bitcoin version"
msgstr "Bitcoin "
#: ../../../src/init.cpp:148
msgid "Usage:"
msgstr "Benutz:"
#: ../../../src/init.cpp:150
msgid "Send command to -server or bitcoind\n"
msgstr "Sende Befehl zu -server oder bitcoind\n"
#: ../../../src/init.cpp:151
msgid "List commands\n"
msgstr "Liste Befehle auf\n"
#: ../../../src/init.cpp:152
msgid "Get help for a command\n"
msgstr "Hilfe für einen Befehl erhalten\n"
#: ../../../src/init.cpp:153
msgid "Options:\n"
msgstr "Optionen:\n"
#: ../../../src/init.cpp:154
msgid "Specify configuration file (default: bitcoin.conf)\n"
msgstr "Konfigurationsdatei bestimmen (Standard: bitcoin.conf)\n"
#: ../../../src/init.cpp:155
msgid "Specify pid file (default: bitcoind.pid)\n"
msgstr "pid-Datei bestimmen (Standard: bitcoind.pid)\n"
#: ../../../src/init.cpp:156
msgid "Generate coins\n"
msgstr "Münzen erzeugen\n"
#: ../../../src/init.cpp:157
msgid "Don't generate coins\n"
msgstr "Keine Münzen erzeugen\n"
#: ../../../src/init.cpp:158
msgid "Start minimized\n"
msgstr "Minimiert starten\n"
#: ../../../src/init.cpp:159
msgid "Specify data directory\n"
msgstr "Datenverzeichnis festlegen\n"
#: ../../../src/init.cpp:160
msgid "Connect through socks4 proxy\n"
msgstr "Socks4-Proxy verwenden\n"
#: ../../../src/init.cpp:161
msgid "Specify connection timeout (in milliseconds)\n"
msgstr "Verbindungs-Timeout in Milisekunden\n"
#: ../../../src/init.cpp:161
msgid "Allow DNS lookups for addnode and connect\n"
msgstr "DNS-Auflösung für addnode und connect erlauben\n"
#: ../../../src/init.cpp:162
msgid "Add a node to connect to\n"
msgstr "Einen Teilnehmer hinzufügen, zu dem verbunden werden soll\n"
#: ../../../src/init.cpp:163
msgid "Connect only to the specified node\n"
msgstr "Nur zu dem angegebenen Teilnehmer verbinden\n"
#: ../../../src/init.cpp:164
msgid "Don't accept connections from outside\n"
msgstr "Akzeptiere keine externen Verbindungen\n"
#: ../../../src/init.cpp:167
msgid "Don't attempt to use UPnP to map the listening port\n"
msgstr "Versuche nicht, UPnP zur Portweiterleitung zu nutzen\n"
#: ../../../src/init.cpp:169
msgid "Attempt to use UPnP to map the listening port\n"
msgstr "Versuche, UPnP zur Portweiterleitung zu nutzen\n"
#: ../../../src/init.cpp:172
msgid "Fee per KB to add to transactions you send\n"
msgstr "Gebühr pro KB für Überweisungen, die Sie tätigen\n"
#: ../../../src/init.cpp:174
msgid "Accept command line and JSON-RPC commands\n"
msgstr "Akzeptiere Kommandozeile und JSON-RPC-Befehle\n"
#: ../../../src/init.cpp:177
msgid "Run in the background as a daemon and accept commands\n"
msgstr "Laufe im Hintergrund als Daemon und akzeptiere Befehle\n"
#: ../../../src/init.cpp:179
msgid "Use the test network\n"
msgstr "Nutze das Testnetzwerk\n"
#: ../../../src/init.cpp:180
msgid "Username for JSON-RPC connections\n"
msgstr "Benutzername für JSON-RPC-Verbindungen\n"
#: ../../../src/init.cpp:181
msgid "Password for JSON-RPC connections\n"
msgstr "Passwort für JSON-RPC-Verbindungen\n"
#: ../../../src/init.cpp:182
msgid "Listen for JSON-RPC connections on <port> (default: 8332)\n"
msgstr "Horche für JSON-RPC-Verbindungen auf <port> (Standard: 8332)\n"
#: ../../../src/init.cpp:183
msgid "Allow JSON-RPC connections from specified IP address\n"
msgstr "Erlaube JSON-RPC-Verbindungen von bestimmter IP-Adresse\n"
#: ../../../src/init.cpp:184
msgid "Send commands to node running on <ip> (default: 127.0.0.1)\n"
msgstr "Sende Befehle zum Knoten mit <ip> (Standard: 127.0.0.1)\n"
#: ../../../src/init.cpp:185
msgid "Set key pool size to <n> (default: 100)\n"
msgstr "Setze Key-Pool-Größe auf <n> (Standard: 100)\n"
#: ../../../src/init.cpp:186
msgid "Rescan the block chain for missing wallet transactions\n"
msgstr "Frage die Block-Kette nach fehlenden Brieftaschen-Überweisungen ab\n"
#: ../../../src/init.cpp:190
msgid ""
"\n"
"SSL options: (see the Bitcoin Wiki for SSL setup instructions)\n"
msgstr ""
"\n"
"SSL-Optionen: (siehe das Bitcoin-Wiki für SSL-Installationsanleitungen)\n"
#: ../../../src/init.cpp:191
msgid "Use OpenSSL (https) for JSON-RPC connections\n"
msgstr "Nutze OpenSSL (https) für JSON-RPC-Verbindungen\n"
#: ../../../src/init.cpp:192
msgid "Server certificate file (default: server.cert)\n"
msgstr "Server-Zertifikatsdatei (Standard: server.cert)\n"
#: ../../../src/init.cpp:193
msgid "Server private key (default: server.pem)\n"
msgstr "Server-Geheimschlüssel (Standard: server.pem)\n"
#: ../../../src/init.cpp:194
msgid "Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
msgstr "Anzunehmende Verschlüsselungen (Standard: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
#: ../../../src/init.cpp:198
msgid "This help message\n"
msgstr "Diese Anleitung\n"
#: ../../../src/init.cpp:335
#, c-format
msgid "Cannot obtain a lock on data directory %s. Bitcoin is probably already running."
msgstr "Erhalte keinen Lock für Datenverzeichnis %s. Bitcoin läuft wahrscheinlich bereits."
#: ../../../src/init.cpp:361
msgid "Error loading addr.dat \n"
msgstr "Fehler beim Laden von addr.dat \n"
#: ../../../src/init.cpp:367
msgid "Error loading blkindex.dat \n"
msgstr "Fehler beim Laden von blkindex.dat \n"
#: ../../../src/init.cpp:374
msgid "Error loading wallet.dat \n"
msgstr "Fehler beim Laden von wallet.dat \n"
#: ../../../src/init.cpp:454
msgid "Invalid -proxy address"
msgstr "Ungültige -Proxy Adresse"
#: ../../../src/init.cpp:477
msgid "Invalid amount for -paytxfee=<amount>"
msgstr "Ungültiger Betrag für -paytxfee=<amount>"
#: ../../../src/init.cpp:481
msgid "Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction."
msgstr "Warnung: -paytxfee ist sehr hoch gesetzt. Das ist die Überweisungsgebühr, die Sie fürs Senden einer Überweisung zahlen."
#: ../../../src/uibase.h:147
msgid "Transaction Details"
msgstr "Überweisungsdetails"
#: ../../../src/uibase.h:199
msgid "Options"
msgstr "Optionen"
#: ../../../src/uibase.h:228
msgid "About Bitcoin"
msgstr "Über Bitcoin"
#: ../../../src/uibase.h:337
msgid "Your Bitcoin Addresses"
msgstr "Ihre Bitcoin-Adressen"

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -1,967 +0,0 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-24 20:21-0500\n"
"PO-Revision-Date: 2011-05-24 20:23-0500\n"
"Last-Translator: Ariel Patiño <ariel@ficticio.com>\n"
"Language-Team: \n"
"Language: \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 "No es posible escuchar en el puerto %d en este computador. Probablemente el cliente Bitcoin ya se está ejecutando."
#: ../../../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 "Esta transacción supera el límite. Puede seguir enviandola con una comisión de %s, que va a los nodos que procesan su transacción y ayuda a mantener la red. ¿Quiere pagar la comisión?"
#: ../../../src/ui.cpp:303
msgid "Status"
msgstr "Estado"
#: ../../../src/ui.cpp:304
msgid "Date"
msgstr "Fecha"
#: ../../../src/ui.cpp:305
msgid "Description"
msgstr "Descripción"
#: ../../../src/ui.cpp:306
msgid "Debit"
msgstr "Débito"
#: ../../../src/ui.cpp:307
msgid "Credit"
msgstr "Crédito"
#: ../../../src/ui.cpp:513
#, c-format
msgid "Open for %d blocks"
msgstr "Abrir para %d bloques"
#: ../../../src/ui.cpp:515
#, c-format
msgid "Open until %s"
msgstr "Abrir hasta %s"
#: ../../../src/ui.cpp:521
#, c-format
msgid "%d/offline?"
msgstr "%d/desconectado?"
#: ../../../src/ui.cpp:523
#, c-format
msgid "%d/unconfirmed"
msgstr "%d/no confirmado"
#: ../../../src/ui.cpp:525
#, c-format
msgid "%d confirmations"
msgstr "%d confirmaciones"
#: ../../../src/ui.cpp:610
msgid "Generated"
msgstr "Generado"
#: ../../../src/ui.cpp:618
#, c-format
msgid "Generated (%s matures in %d more blocks)"
msgstr "Generado (%s madura en %d bloques)"
#: ../../../src/ui.cpp:622
msgid "Generated - Warning: This block was not received by any other nodes and will probably not be accepted!"
msgstr "Generado - Cuidado: Este bloque no se recibió de otros nodos y probablemente no sea aceptado!"
#: ../../../src/ui.cpp:626
msgid "Generated (not accepted)"
msgstr "Generado (no aceptado)"
#: ../../../src/ui.cpp:636
msgid "From: "
msgstr "De: "
#: ../../../src/ui.cpp:660
msgid "Received with: "
msgstr "Recibido con: "
#: ../../../src/ui.cpp:706
msgid "Payment to yourself"
msgstr "Pago para usted mismo"
#: ../../../src/ui.cpp:740
msgid "To: "
msgstr "Para: "
#: ../../../src/ui.cpp:1055
msgid " Generating"
msgstr " Generando"
#: ../../../src/ui.cpp:1057
msgid "(not connected)"
msgstr "(no conectado)"
#: ../../../src/ui.cpp:1060
#, c-format
msgid " %d connections %d blocks %d transactions"
msgstr " %d conexiones %d bloques %d transacciones"
#: ../../../src/ui.cpp:1165
#: ../../../src/ui.cpp:2529
msgid "New Receiving Address"
msgstr "Nueva dirección de recepción"
#: ../../../src/ui.cpp:1166
#: ../../../src/ui.cpp:2530
msgid ""
"You should use a new address for each payment you receive.\n"
"\n"
"Label"
msgstr ""
"Debes usar una nueva dirección para cada pago que usted recibe.\n"
"\n"
"Etiqueta"
#: ../../../src/ui.cpp:1235
msgid "<b>Status:</b> "
msgstr "<b>Estado:</b> "
#: ../../../src/ui.cpp:1240
msgid ", has not been successfully broadcast yet"
msgstr ", no ha sido emitido satisfactoriamente todavía"
#: ../../../src/ui.cpp:1242
#, c-format
msgid ", broadcast through %d node"
msgstr ", emitido mediante %d nodo"
#: ../../../src/ui.cpp:1244
#, c-format
msgid ", broadcast through %d nodes"
msgstr ", emitido mediante %d nodos"
#: ../../../src/ui.cpp:1248
msgid "<b>Date:</b> "
msgstr "<b>Fecha:</b> "
#: ../../../src/ui.cpp:1256
msgid "<b>Source:</b> Generated<br>"
msgstr "<b>Fuente:</b> Generado<br>"
#: ../../../src/ui.cpp:1262
#: ../../../src/ui.cpp:1280
msgid "<b>From:</b> "
msgstr "<b>De:</b> "
#: ../../../src/ui.cpp:1280
msgid "unknown"
msgstr "desconocido"
#: ../../../src/ui.cpp:1281
#: ../../../src/ui.cpp:1305
#: ../../../src/ui.cpp:1364
msgid "<b>To:</b> "
msgstr "<b>Para:</b> "
#: ../../../src/ui.cpp:1284
msgid " (yours, label: "
msgstr "(suya, etiqueta: "
#: ../../../src/ui.cpp:1286
msgid " (yours)"
msgstr "(suya)"
#: ../../../src/ui.cpp:1323
#: ../../../src/ui.cpp:1335
#: ../../../src/ui.cpp:1381
#: ../../../src/ui.cpp:1398
msgid "<b>Credit:</b> "
msgstr "<b>Crédito:</b> "
#: ../../../src/ui.cpp:1325
#, c-format
msgid "(%s matures in %d more blocks)"
msgstr "(%s madura en %d bloques)"
#: ../../../src/ui.cpp:1327
msgid "(not accepted)"
msgstr "(no aceptada)"
#: ../../../src/ui.cpp:1372
#: ../../../src/ui.cpp:1380
#: ../../../src/ui.cpp:1395
msgid "<b>Debit:</b> "
msgstr "<b>Débito:</b> "
#: ../../../src/ui.cpp:1386
msgid "<b>Transaction fee:</b> "
msgstr "<b>Comisión transacción:</b> "
#: ../../../src/ui.cpp:1402
msgid "<b>Net amount:</b> "
msgstr "<b>Cantidad de la red:</b> "
#: ../../../src/ui.cpp:1409
msgid "Message:"
msgstr "Mensaje:"
#: ../../../src/ui.cpp:1411
msgid "Comment:"
msgstr "Comentario:"
#: ../../../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 "Las monedas generadas deben esperar 120 bloques antes de ser gastadas. Cuando usted generó este bloque, fue emitido a la red para ser agregado a la cadena de bloques. Si falla al incluirse en la cadena, cambiará a \"no aceptado\" y no se podrá gastar. Esto puede ocurrir ocasionalmente si otro nodo genera un bloque apenas a unos segundos del suyo."
#: ../../../src/ui.cpp:1594
msgid "Cannot write autostart/bitcoin.desktop file"
msgstr "No se puede escribir el fichero autostart/bitcoin.desktop"
#: ../../../src/ui.cpp:1630
msgid "Main"
msgstr "Principal"
#: ../../../src/ui.cpp:1638
msgid "&Start Bitcoin on window system startup"
msgstr "&Arrancar Bitcoin al iniciar el sistema"
#: ../../../src/ui.cpp:1645
msgid "&Minimize on close"
msgstr "&Minimizar al cerrar"
#: ../../../src/ui.cpp:1787
#, c-format
msgid "version %s"
msgstr "versión %s"
#: ../../../src/ui.cpp:1899
msgid "Error in amount "
msgstr "Error en la cantidad "
#: ../../../src/ui.cpp:1899
#: ../../../src/ui.cpp:1904
#: ../../../src/ui.cpp:1909
#: ../../../src/ui.cpp:1944
#: ../../../src/uibase.cpp:55
msgid "Send Coins"
msgstr "Enviar monedas"
#: ../../../src/ui.cpp:1904
msgid "Amount exceeds your balance "
msgstr "La cantidad excede su balance "
#: ../../../src/ui.cpp:1909
msgid "Total exceeds your balance when the "
msgstr "El total excede su balance cuando el "
#: ../../../src/ui.cpp:1909
msgid " transaction fee is included "
msgstr " la comisión de la transaccion está incluida "
#: ../../../src/ui.cpp:1927
msgid "Payment sent "
msgstr "Pago enviado "
#: ../../../src/ui.cpp:1927
#: ../../../src/ui.cpp:1932
#: ../../../src/ui.cpp:2076
#: ../../../src/ui.cpp:2229
#: ../../../src/main.cpp:3997
msgid "Sending..."
msgstr "Enviando..."
#: ../../../src/ui.cpp:1944
msgid "Invalid address "
msgstr "Dirección inválida "
#: ../../../src/ui.cpp:1997
#, c-format
msgid "Sending %s to %s"
msgstr "Enviando %s a %s"
#: ../../../src/ui.cpp:2070
#: ../../../src/ui.cpp:2103
msgid "CANCELLED"
msgstr "CANCELADO"
#: ../../../src/ui.cpp:2074
msgid "Cancelled"
msgstr "Cancelado"
#: ../../../src/ui.cpp:2076
msgid "Transfer cancelled "
msgstr "Transferencia cancelada "
#: ../../../src/ui.cpp:2129
msgid "Error: "
msgstr "Error: "
#: ../../../src/ui.cpp:2143
#: ../../../src/ui.cpp:2214
#: ../../../src/main.cpp:4016
msgid "Insufficient funds"
msgstr "Fondos insuficientes"
#: ../../../src/ui.cpp:2148
msgid "Connecting..."
msgstr "Conectando..."
#: ../../../src/ui.cpp:2153
msgid "Unable to connect"
msgstr "No es posible conectar"
#: ../../../src/ui.cpp:2158
msgid "Requesting public key..."
msgstr "Pidiendo clave pública..."
#: ../../../src/ui.cpp:2170
msgid "Received public key..."
msgstr "Clave pública recibida..."
#: ../../../src/ui.cpp:2184
msgid "Recipient is not accepting transactions sent by IP address"
msgstr "El destinatario no está aceptando transacciones enviadas por direcciones IP"
#: ../../../src/ui.cpp:2186
msgid "Transfer was not accepted"
msgstr "La transferencia no fue aceptada"
#: ../../../src/ui.cpp:2195
msgid "Invalid response received"
msgstr "Respuesta inválida recibida"
#: ../../../src/ui.cpp:2210
msgid "Creating transaction..."
msgstr "Creando transacción..."
#: ../../../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 "Esta transacción requiere de una comisión de al menos %s por su cantidad, complejidad o uso de fondos recibidos recientemente"
#: ../../../src/ui.cpp:2224
msgid "Transaction creation failed"
msgstr "Fallo al crear la transacción."
#: ../../../src/ui.cpp:2231
msgid "Transaction aborted"
msgstr "Transacción abortada"
#: ../../../src/ui.cpp:2239
msgid "Lost connection, transaction cancelled"
msgstr "Conexión perdida, transacción cancelada"
#: ../../../src/ui.cpp:2255
msgid "Sending payment..."
msgstr "Enviando pago..."
#: ../../../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 "La transacción fue rechazada. Esto puede haber ocurrido si alguna de las monedas fue gastada, o si ha usado una copia de wallet.dat y las monedas fueron gastadas en la copia pero no fueron marcadas como gastadas aqui."
#: ../../../src/ui.cpp:2270
msgid "Waiting for confirmation..."
msgstr "Esperando confirmación..."
#: ../../../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 ""
"El pago fue enviado, pero el receptor no pudo verificarlo.\n"
"La transacción se grabó y dará el crédito al receptor,\n"
"pero la información en los comentarios quedará en blanco."
#: ../../../src/ui.cpp:2297
msgid "Payment was sent, but an invalid response was received"
msgstr "El pago fue enviado, pero se recibió una respuesta inválida"
#: ../../../src/ui.cpp:2303
msgid "Payment completed"
msgstr "Pago completado"
#: ../../../src/ui.cpp:2334
#: ../../../src/ui.cpp:2480
#: ../../../src/ui.cpp:2517
msgid "Name"
msgstr "Nombre"
#: ../../../src/ui.cpp:2335
#: ../../../src/ui.cpp:2480
#: ../../../src/ui.cpp:2517
msgid "Address"
msgstr "Dirección"
#: ../../../src/ui.cpp:2337
#: ../../../src/ui.cpp:2492
msgid "Label"
msgstr "Etiqueta"
#: ../../../src/ui.cpp:2338
#: ../../../src/uibase.cpp:837
msgid "Bitcoin Address"
msgstr "Dirección Bitcoin"
#: ../../../src/ui.cpp:2462
msgid "This is one of your own addresses for receiving payments and cannot be entered in the address book. "
msgstr "Esta es una de sus direcciones para recibir pagos y no puede incluirse en la libreta de direcciones. "
#: ../../../src/ui.cpp:2480
#: ../../../src/ui.cpp:2486
msgid "Edit Address"
msgstr "Editar dirección"
#: ../../../src/ui.cpp:2492
msgid "Edit Address Label"
msgstr "Editar etiqueta dirección"
#: ../../../src/ui.cpp:2517
#: ../../../src/ui.cpp:2523
msgid "Add Address"
msgstr "Agregar dirección"
#: ../../../src/ui.cpp:2600
msgid "Bitcoin"
msgstr "Bitcoin"
#: ../../../src/ui.cpp:2602
msgid "Bitcoin - Generating"
msgstr "Bitcoin - Generando"
#: ../../../src/ui.cpp:2604
msgid "Bitcoin - (not connected)"
msgstr "Bitcoin - (no conectado)"
#: ../../../src/ui.cpp:2683
msgid "&Open Bitcoin"
msgstr "&Abrir Bitcoin"
#: ../../../src/ui.cpp:2684
msgid "&Send Bitcoins"
msgstr "&Enviar Bitcoin"
#: ../../../src/ui.cpp:2685
msgid "O&ptions..."
msgstr "O&pciones"
#: ../../../src/ui.cpp:2688
#: ../../../src/uibase.cpp:25
msgid "E&xit"
msgstr "S&alir"
#: ../../../src/ui.cpp:2904
msgid "Program has crashed and will terminate. "
msgstr "El programa ha detectado un error y va a cerrarse. "
#: ../../../src/main.cpp:1866
msgid "Warning: Disk space is low "
msgstr "Cuidado: Poco espacio en disco "
#: ../../../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 "Error: Esta transacción requiere de una comisión de al menos %s por su cantidad, complejidad o uso de fondos recibidos recientemente "
#: ../../../src/main.cpp:3992
msgid "Error: Transaction creation failed "
msgstr "Error: La creación de la transacción falló "
#: ../../../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 "Error: La transacción fue rechazada. Esto puede haber ocurrido si alguna de las monedas ya fue gastada, o si ha usado un copia de wallet.dat y las monedas fueron gastadas en la copia pero no han sido marcadas como gastadas aqui."
#: ../../../src/main.cpp:4014
msgid "Invalid amount"
msgstr "Cantidad erronea"
#: ../../../src/main.cpp:4021
msgid "Invalid bitcoin address"
msgstr "Dirección Bitcoin inválida"
#: ../../../src/rpc.cpp:1802
#: ../../../src/rpc.cpp:1804
#, c-format
msgid "To use the %s option"
msgstr "Para usar la opción %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 ""
"Precaución: %s, debes especificar rpcpassword=<password>\n"
"en el archivo de configuración: %s\n"
"Si el archivo no existe, debes crearlo con permisos de lectura al autor solamente.\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 ""
"Debes especificar rpcpassword=<password> en el archivo de configuración:\n"
"%s\n"
"Si el archivo no existe, debes crearlo con permisos de lectura al autor solamente."
#: ../../../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 "Precaución: Por favor revisa que la fecha y hora de tu computador son correctas. Si tu reloj está mal, Bitcoin no funcionará correctamente."
#: ../../../src/util.cpp:899
msgid "beta"
msgstr "beta"
#: ../../../src/uibase.cpp:28
msgid "&File"
msgstr "&Archivo"
#: ../../../src/uibase.cpp:32
msgid "&Your Receiving Addresses..."
msgstr "&Tus direcciones de recepción..."
#: ../../../src/uibase.cpp:36
msgid "&Options..."
msgstr "&Opciones..."
#: ../../../src/uibase.cpp:39
msgid "&Settings"
msgstr "&Configuración"
#: ../../../src/uibase.cpp:43
msgid "&About..."
msgstr "&Acerca de..."
#: ../../../src/uibase.cpp:46
msgid "&Help"
msgstr "&Ayuda"
#: ../../../src/uibase.cpp:56
msgid "Address Book"
msgstr "Libreta de direcciones"
#: ../../../src/uibase.cpp:69
msgid "Your Bitcoin Address:"
msgstr "Su dirección Bitcoin:"
#: ../../../src/uibase.cpp:76
msgid " &New... "
msgstr " &Nuevo... "
#: ../../../src/uibase.cpp:79
#: ../../../src/uibase.cpp:780
#: ../../../src/uibase.cpp:883
msgid " &Copy to Clipboard "
msgstr " &Copiar al portapapeles "
#: ../../../src/uibase.cpp:93
msgid "Balance:"
msgstr "Balance:"
#: ../../../src/uibase.cpp:109
msgid " All"
msgstr " Todo"
#: ../../../src/uibase.cpp:109
msgid " Sent"
msgstr " Enviado"
#: ../../../src/uibase.cpp:109
msgid " Received"
msgstr " Recibido"
#: ../../../src/uibase.cpp:109
msgid " In Progress"
msgstr " En progreso"
#: ../../../src/uibase.cpp:130
msgid "All Transactions"
msgstr "Todas las transacciones"
#: ../../../src/uibase.cpp:141
msgid "Sent/Received"
msgstr "Enviado/Recibido"
#: ../../../src/uibase.cpp:152
msgid "Sent"
msgstr "Enviado"
#: ../../../src/uibase.cpp:163
msgid "Received"
msgstr "Recibido"
#: ../../../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 "OK"
#: ../../../src/uibase.cpp:345
msgid "&Start Bitcoin on system startup"
msgstr "&Arrancar Bitcoin al iniciar el sistema"
#: ../../../src/uibase.cpp:348
msgid "&Minimize to the tray instead of the taskbar"
msgstr "&Minimizar a la bandeja en vez de a la barra de tareas"
#: ../../../src/uibase.cpp:351
msgid "Map port using &UPnP"
msgstr "Mapear el puerto usando &UPnP"
#: ../../../src/uibase.cpp:354
msgid "M&inimize to the tray on close"
msgstr "M&inimizar a la bandeja al cerrar"
#: ../../../src/uibase.cpp:360
msgid "&Connect through socks4 proxy: "
msgstr "&Conectar usando un proxy socks4: "
#: ../../../src/uibase.cpp:371
msgid "Proxy &IP:"
msgstr "Proxy &IP:"
#: ../../../src/uibase.cpp:379
msgid " &Port:"
msgstr " &Puerto:"
#: ../../../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 "Comisión opcional a las transacciones por KB que ayuda a asegurar que tus transacciones son procesadas rápidamente. La mayoría de las transacciones son de 1KB. Se recomienda una comisión de 0.01."
#: ../../../src/uibase.cpp:399
msgid "Pay transaction fee:"
msgstr "Comisión de la transacción:"
#: ../../../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 "Cancelar"
#: ../../../src/uibase.cpp:449
msgid "&Apply"
msgstr "&Aplicar"
#: ../../../src/uibase.cpp:508
msgid "Bitcoin "
msgstr "Bitcoin "
#: ../../../src/uibase.cpp:514
msgid "version"
msgstr "versión"
#: ../../../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-2010 Bitcoin Developers\n"
"\n"
"Este es un software experimental.\n"
"\n"
"Distribuido bajo la licencia MIT/X11, vea el archivo adjunto \n"
"license.txt o http://www.opensource.org/licenses/mit-license.php.\n"
"\n"
"Este producto incluye software desarrollado por OpenSSL Project para su uso en el\n"
"OpenSSL Toolkit (http://www.openssl.org/) y software criptográfico escrito por \n"
"Eric Young (eay@cryptsoft.com) y UPnP software escrito por Thomas Bernard."
#: ../../../src/uibase.cpp:581
msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
msgstr "Ponga una dirección Bitcoin (ejemplo: 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
#: ../../../src/uibase.cpp:595
msgid "Pay &To:"
msgstr "Pagar &A:"
#: ../../../src/uibase.cpp:610
msgid "&Paste"
msgstr "&Pegar"
#: ../../../src/uibase.cpp:613
msgid " Address &Book..."
msgstr " Libreta &Direcciones..."
#: ../../../src/uibase.cpp:620
msgid "&Amount:"
msgstr "&Cantidad:"
#: ../../../src/uibase.cpp:630
msgid "T&ransfer:"
msgstr "T&ransferir:"
#: ../../../src/uibase.cpp:636
msgid " Standard"
msgstr " Estándar"
#: ../../../src/uibase.cpp:663
msgid "&Send"
msgstr "&Enviar"
#: ../../../src/uibase.cpp:711
msgid ""
"\n"
"\n"
"Connecting..."
msgstr ""
"\n"
"\n"
"Conenctando..."
#: ../../../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 "Estas son tus direcciones Bitcoin para recibir pagos. Puedes darle una diferente a cada emisor para saber quien te está pagando. La dirección resaltada se muestra en la ventana principal."
#: ../../../src/uibase.cpp:774
#: ../../../src/uibase.cpp:886
msgid "&Edit..."
msgstr "&Editar..."
#: ../../../src/uibase.cpp:777
#: ../../../src/uibase.cpp:889
msgid " &New Address... "
msgstr " &Nueva dirección... "
#: ../../../src/uibase.cpp:849
msgid "Sending"
msgstr "Enviando"
#: ../../../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 "Estas son tus direcciones Bitcoin para recibir pagos. Puedes darle una diferente a cada emisor para saber quien te está pagando. La dirección resaltada se muestra en la ventana principal."
#: ../../../src/uibase.cpp:870
msgid "Receiving"
msgstr "Recibiendo"
#: ../../../src/uibase.cpp:880
msgid "&Delete"
msgstr "&Borrar"
#: ../../../src/init.cpp:142
msgid "Bitcoin version"
msgstr "versión Bitcoin"
#: ../../../src/init.cpp:143
msgid "Usage:"
msgstr "Uso:"
#: ../../../src/init.cpp:145
msgid "Send command to -server or bitcoind\n"
msgstr "Enviar comando a bitcoin corriendo con -server o a bitcoind\n"
#: ../../../src/init.cpp:146
msgid "List commands\n"
msgstr "Lista de comandos\n"
#: ../../../src/init.cpp:147
msgid "Get help for a command\n"
msgstr "Recibir ayuda para un comando\n"
#: ../../../src/init.cpp:148
msgid "Options:\n"
msgstr "Opciones:\n"
#: ../../../src/init.cpp:149
msgid "Specify configuration file (default: bitcoin.conf)\n"
msgstr "Especificar archivo de configuración (predeterminado: bitcoin.conf)\n"
#: ../../../src/init.cpp:150
msgid "Specify pid file (default: bitcoind.pid)\n"
msgstr "Especificar archivo pid (predeterminado: bitcoin.pid)\n"
#: ../../../src/init.cpp:151
msgid "Generate coins\n"
msgstr "Generar monedas\n"
#: ../../../src/init.cpp:152
msgid "Don't generate coins\n"
msgstr "No generar monedas\n"
#: ../../../src/init.cpp:153
msgid "Start minimized\n"
msgstr "Arrancar minimizado\n"
#: ../../../src/init.cpp:154
msgid "Specify data directory\n"
msgstr "Especificar directorio para los datos\n"
#: ../../../src/init.cpp:155
msgid "Connect through socks4 proxy\n"
msgstr "Conectar mediante proxy socks4\n"
#: ../../../src/init.cpp:156
msgid "Allow DNS lookups for addnode and connect\n"
msgstr "Permitir búsqueda DNS para addnode y connect\n"
#: ../../../src/init.cpp:157
msgid "Add a node to connect to\n"
msgstr "Agregar un nodo para conectarse\n"
#: ../../../src/init.cpp:158
msgid "Connect only to the specified node\n"
msgstr "Conectar solo al nodo especificado\n"
#: ../../../src/init.cpp:159
msgid "Don't accept connections from outside\n"
msgstr "No aceptar conexiones desde el exterior\n"
#: ../../../src/init.cpp:162
msgid "Don't attempt to use UPnP to map the listening port\n"
msgstr "No intentar usar UPnP para mapear el puerto de entrada\n"
#: ../../../src/init.cpp:164
msgid "Attempt to use UPnP to map the listening port\n"
msgstr "Intentar usar UPnP para mapear el puerto de escucha.\n"
#: ../../../src/init.cpp:167
msgid "Fee per KB to add to transactions you send\n"
msgstr "Comisión por KB para agregar a las transacciones que envias\n"
#: ../../../src/init.cpp:169
msgid "Accept command line and JSON-RPC commands\n"
msgstr "Aceptar comandos por línea de comandos y JSON-RPC\n"
#: ../../../src/init.cpp:172
msgid "Run in the background as a daemon and accept commands\n"
msgstr "Correr en el fondo como demonio y aceptar comandos\n"
#: ../../../src/init.cpp:174
msgid "Use the test network\n"
msgstr "Usar la red de pruebas\n"
#: ../../../src/init.cpp:175
msgid "Username for JSON-RPC connections\n"
msgstr "Usuario para las conexiones JSON-RPC\n"
#: ../../../src/init.cpp:176
msgid "Password for JSON-RPC connections\n"
msgstr "Contraseña para las conexiones JSON-RPC\n"
#: ../../../src/init.cpp:177
msgid "Listen for JSON-RPC connections on <port> (default: 8332)\n"
msgstr "Escuchar conexiones JSON-RPC en el puerto <puerto> (predeterminado: 8332)\n"
#: ../../../src/init.cpp:178
msgid "Allow JSON-RPC connections from specified IP address\n"
msgstr "Permitir conexiones JSON-RPC desde la dirección IP especificada\n"
#: ../../../src/init.cpp:179
msgid "Send commands to node running on <ip> (default: 127.0.0.1)\n"
msgstr "Enviar comando al nodo ejecutándose en <ip> (predeterminado: 127.0.0.1)\n"
#: ../../../src/init.cpp:180
msgid "Set key pool size to <n> (default: 100)\n"
msgstr "Ajustar el tamaño de la llave (key) de la piscina (pool) a <n> (predeterminado: 100)\n"
#: ../../../src/init.cpp:181
msgid "Rescan the block chain for missing wallet transactions\n"
msgstr "Re-escanear la cadena de bloques para transacciones perdidas de la billetera\n"
#: ../../../src/init.cpp:185
msgid ""
"\n"
"SSL options: (see the Bitcoin Wiki for SSL setup instructions)\n"
msgstr ""
"\n"
"Opciones SSL: (ver la Bitcoin Wiki para instrucciones de configuración SSL)\n"
#: ../../../src/init.cpp:186
msgid "Use OpenSSL (https) for JSON-RPC connections\n"
msgstr "Usar OpenSSL (https) para las conexiones JSON-RPC\n"
#: ../../../src/init.cpp:187
msgid "Server certificate file (default: server.cert)\n"
msgstr "Archivo de certificado del servidor (Predeterminado: server.cert)\n"
#: ../../../src/init.cpp:188
msgid "Server private key (default: server.pem)\n"
msgstr "Clave privada del servidor (Predeterminado: server.pem)\n"
#: ../../../src/init.cpp:189
msgid "Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
msgstr "Cifrados aceptados (Predeterminado: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
#: ../../../src/init.cpp:193
msgid "This help message\n"
msgstr "Este mensaje de ayuda\n"
#: ../../../src/init.cpp:330
#, c-format
msgid "Cannot obtain a lock on data directory %s. Bitcoin is probably already running."
msgstr "No se puede obtener el bloqueo en el directorio de datos %s. Probablemente el cliente de Bitcoin ya se está ejecutando."
#: ../../../src/init.cpp:356
msgid "Error loading addr.dat \n"
msgstr "Error cargando addr.dat \n"
#: ../../../src/init.cpp:362
msgid "Error loading blkindex.dat \n"
msgstr "Error cargando blkindex.dat \n"
#: ../../../src/init.cpp:369
msgid "Error loading wallet.dat \n"
msgstr "Error cargando wallet.dat \n"
#: ../../../src/init.cpp:449
msgid "Invalid -proxy address"
msgstr "Dirección proxy - inválida"
#: ../../../src/init.cpp:472
msgid "Invalid amount for -paytxfee=<amount>"
msgstr "Cantidad inválida para -paytxfee=<cantidad>"
#: ../../../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 "Precaución: -paytxfee está configurado muy alto. Esta es la comisión que pagarás si envias una transacción."
#: ../../../src/uibase.h:147
msgid "Transaction Details"
msgstr "Detalles de la transacción"
#: ../../../src/uibase.h:199
msgid "Options"
msgstr "Opciones"
#: ../../../src/uibase.h:228
msgid "About Bitcoin"
msgstr "Acerca de Bitcoin"
#: ../../../src/uibase.h:337
msgid "Your Bitcoin Addresses"
msgstr "Sus direcciones Bitcoin"

Binary file not shown.

View File

@@ -1,849 +0,0 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-05-26 22:02-0000\n"
"PO-Revision-Date: 2010-07-15 02:48+0100\n"
"Last-Translator: aidos\n"
"Language-Team: \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"
#: ../../../init.cpp:174
msgid "Cannot write autostart/bitcoin.desktop file"
msgstr ""
#: ../../../init.cpp:388
#, fuzzy
msgid "Usage:"
msgstr ""
#: ../../../init.cpp:390
msgid "Send command to bitcoin running with -server or -daemon\n"
msgstr ""
#: ../../../init.cpp:391
msgid "Get help for a command\n"
msgstr ""
#: ../../../init.cpp:392
msgid "List commands\n"
msgstr ""
#: ../../../init.cpp:393
msgid "Options:\n"
msgstr "Options:\n"
#: ../../../init.cpp:394
msgid "Generate coins\n"
msgstr "Générer des pièces\n"
#: ../../../init.cpp:395
msgid "Don't generate coins\n"
msgstr "Ne pas générer de pièce\n"
#: ../../../init.cpp:396
msgid "Start minimized\n"
msgstr "Démarrer réduit\n"
#: ../../../init.cpp:397
msgid "Specify data directory\n"
msgstr "Spécifier le repertoire de donnée\n"
#: ../../../init.cpp:398
msgid "Connect through socks4 proxy\n"
msgstr "Connection à travers un proxy SOCKS4\n"
#: ../../../init.cpp:399
msgid "Add a node to connect to\n"
msgstr "Ajouter un nœud auquel se connecter\n"
#: ../../../init.cpp:400
msgid "Connect only to the specified node\n"
msgstr "Se connecter uniquement au nœud spécifié\n"
#: ../../../init.cpp:401
msgid "Accept command line and JSON-RPC commands\n"
msgstr ""
#: ../../../init.cpp:402
msgid "Run in the background as a daemon and accept commands\n"
msgstr ""
#: ../../../init.cpp:403
msgid "This help message\n"
msgstr "Ce message d'aide\n"
#: ../../../init.cpp:503
msgid "Error loading addr.dat \n"
msgstr "Erreur lors du chargement de addr.dat \n"
#: ../../../init.cpp:509
msgid "Error loading blkindex.dat \n"
msgstr "Erreur lors du chargement de blkindex.dat \n"
#: ../../../init.cpp:516
msgid "Error loading wallet.dat \n"
msgstr "Erreur lors du chargement de wallet.dat \n"
#: ../../../init.cpp:584
msgid "Invalid -proxy address"
msgstr "Adresse -proxy invalide"
#: ../../../init.cpp:677
msgid "Program has crashed and will terminate. "
msgstr "Le programme a planté et va s'arrêter. "
#: ../../../main.cpp:1480
#: ../../../main.cpp:1482
msgid "Warning: Disk space is low "
msgstr "Attention: L'espace disque est presque épuisé "
#: ../../../main.cpp:3094
#, c-format
msgid "Error: This is an oversized transaction that requires a transaction fee of %s "
msgstr "Erreur: Ceci est une transaction de taille excessive qui nécessite %s de frais de transaction "
#: ../../../main.cpp:3096
msgid "Error: Transaction creation failed "
msgstr "Erreur: La création de la transaction a échouée "
#: ../../../main.cpp:3101
#: ../../../ui.cpp:1776
#: ../../../ui.cpp:1778
#: ../../../ui.cpp:1919
#: ../../../ui.cpp:2068
msgid "Sending..."
msgstr "Envoi..."
#: ../../../main.cpp:3105
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 "Erreur: La transaction a été rejetée. Ceci peut arriver si une partie des pièces de votre porte-monnaie ont déjà été dépensées, par exemple si vous avez utilisé une copie de wallet.dat et que les pièces ont été dépensées dans la copie mais pas marquées comme telles ici."
#: ../../../main.cpp:3117
msgid "Invalid amount"
msgstr "Quantité invalide"
#: ../../../main.cpp:3119
#: ../../../ui.cpp:1986
#: ../../../ui.cpp:2053
msgid "Insufficient funds"
msgstr "Fonds insuffisants"
#: ../../../main.cpp:3124
msgid "Invalid bitcoin address"
msgstr "Adresse bitcoin incorrecte"
#: ../../../ui.cpp:189
#, 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 "Cette transaction est au delà de la limite de taille. Vous pouvez tout de même l'envoyer moyennant des frais de %s, qui ira au noeud gérant votre transaction, et qui aidera à soutenir le réseau. Acceptez-vous de payer ces frais ?"
#: ../../../ui.cpp:286
msgid "Status"
msgstr "État"
#: ../../../ui.cpp:287
msgid "Date"
msgstr "Date"
#: ../../../ui.cpp:288
msgid "Description"
msgstr "Description"
#: ../../../ui.cpp:289
msgid "Debit"
msgstr "Débit"
#: ../../../ui.cpp:290
msgid "Credit"
msgstr "Crédit"
#: ../../../ui.cpp:489
#, c-format
msgid "Open for %d blocks"
msgstr "Ouvert pour %d blocks"
#: ../../../ui.cpp:491
#, c-format
msgid "Open until %s"
msgstr "Ouvert jusqu'au %s"
#: ../../../ui.cpp:497
#, c-format
msgid "%d/offline?"
msgstr "%d/hors-ligne?"
#: ../../../ui.cpp:499
#, c-format
msgid "%d/unconfirmed"
msgstr "%d/non confirmé"
#: ../../../ui.cpp:501
#, c-format
msgid "%d confirmations"
msgstr "%d confirmations"
#: ../../../ui.cpp:584
msgid "Generated"
msgstr "Généré"
#: ../../../ui.cpp:592
#, c-format
msgid "Generated (%s matures in %d more blocks)"
msgstr "Généré (%s mûrira dans %d blocks)"
#: ../../../ui.cpp:596
msgid "Generated - Warning: This block was not received by any other nodes and will probably not be accepted!"
msgstr "Généré - Attention: Ce block n'a été reçu par aucun autre nœud et ne sera probablement pas accepté!"
#: ../../../ui.cpp:600
msgid "Generated (not accepted)"
msgstr "Généré (pas accepté)"
#: ../../../ui.cpp:610
msgid "From: "
msgstr "De: "
#: ../../../ui.cpp:634
msgid "Received with: "
msgstr "Reçu depuis: "
#: ../../../ui.cpp:676
msgid "Payment to yourself"
msgstr "Paiement à vous-même"
#: ../../../ui.cpp:713
msgid "To: "
msgstr "À: "
#: ../../../ui.cpp:1009
msgid " Generating"
msgstr " Génération en cours"
#: ../../../ui.cpp:1011
msgid "(not connected)"
msgstr "(non connecté)"
#: ../../../ui.cpp:1014
#, c-format
msgid " %d connections %d blocks %d transactions"
msgstr " %d connexions %d blocks %d transactions"
#: ../../../ui.cpp:1128
#: ../../../ui.cpp:2368
msgid "New Receiving Address"
msgstr "Nouvelle adresse de reception"
#: ../../../ui.cpp:1129
#: ../../../ui.cpp:2369
msgid ""
"You should use a new address for each payment you receive.\n"
"\n"
"Label"
msgstr ""
"C'est une bonne politique d'utiliser une nouvelle adresse pour \n"
"chaque paiement reçu.\n"
"\n"
"Intitulé"
#: ../../../ui.cpp:1198
msgid "<b>Status:</b> "
msgstr "<b>État:</b> "
#: ../../../ui.cpp:1203
msgid ", has not been successfully broadcast yet"
msgstr ", n'a pas encore été diffusé avec succès"
#: ../../../ui.cpp:1205
#, c-format
msgid ", broadcast through %d node"
msgstr ", diffusé à travers %d nœud"
#: ../../../ui.cpp:1207
#, c-format
msgid ", broadcast through %d nodes"
msgstr ", diffusé à travers %d nœuds"
#: ../../../ui.cpp:1211
msgid "<b>Date:</b> "
msgstr "<b>Date:</b> "
#: ../../../ui.cpp:1219
msgid "<b>Source:</b> Generated<br>"
msgstr "<b>Source:</b> Généré<br>"
#: ../../../ui.cpp:1225
#: ../../../ui.cpp:1243
msgid "<b>From:</b> "
msgstr "<b>De:</b> "
#: ../../../ui.cpp:1243
msgid "unknown"
msgstr "inconnu"
#: ../../../ui.cpp:1244
#: ../../../ui.cpp:1268
#: ../../../ui.cpp:1327
msgid "<b>To:</b> "
msgstr "<b>À:</b> "
#: ../../../ui.cpp:1247
msgid " (yours, label: "
msgstr " (vous, intitulé: "
#: ../../../ui.cpp:1249
msgid " (yours)"
msgstr " (vous)"
#: ../../../ui.cpp:1286
#: ../../../ui.cpp:1298
#: ../../../ui.cpp:1361
msgid "<b>Credit:</b> "
msgstr "<b>Crédit:</b> "
#: ../../../ui.cpp:1288
#, c-format
msgid "(%s matures in %d more blocks)"
msgstr "(%s mûrira dans %d blocks)"
#: ../../../ui.cpp:1290
msgid "(not accepted)"
msgstr "(pas accepté)"
#: ../../../ui.cpp:1335
#: ../../../ui.cpp:1358
msgid "<b>Debit:</b> "
msgstr "<b>Débit:</b> "
#: ../../../ui.cpp:1349
msgid "<b>Transaction fee:</b> "
msgstr "<b>Redevance de transaction :</b> "
#: ../../../ui.cpp:1365
msgid "<b>Net amount:</b> "
msgstr "<b>Montant net:</b> "
#: ../../../ui.cpp:1372
msgid "Message:"
msgstr "Message:"
#: ../../../ui.cpp:1375
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 "Les pièces générées doivent attendrent 120 blocks avant de pouvoir être dépensées. Quand vous avez généré ce block, il a été diffusé au réseau pour être ajouté à la chaîne de block. Si il échoue à être intégré à la chaîne, il changera à \"pas accepté\" et ne sera pas dépensable. Ceci peut parfois arriver si un autre nœud génère un block à quelques secondes du vôtre."
#: ../../../ui.cpp:1442
msgid "Main"
msgstr "Général"
#: ../../../ui.cpp:1447
#, fuzzy
msgid "&Start Bitcoin on window system startup"
msgstr "&Lancer Bitcoin au démarrage du système"
#: ../../../ui.cpp:1454
msgid "&Minimize on close"
msgstr "&Réduire à la fermeture"
#: ../../../ui.cpp:1610
#, c-format
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"
#: ../../../ui.cpp:1750
msgid "Error in amount "
msgstr "Erreur dans le montant "
#: ../../../ui.cpp:1750
#: ../../../ui.cpp:1755
#: ../../../ui.cpp:1760
#: ../../../ui.cpp:1786
#: ../../../uibase.cpp:59
msgid "Send Coins"
msgstr "Envoyer des pièces"
#: ../../../ui.cpp:1755
msgid "Amount exceeds your balance "
msgstr "Le montant dépasse votre solde "
#: ../../../ui.cpp:1760
msgid "Total exceeds your balance when the "
msgstr "Le total dépasse votre solde quand les "
#: ../../../ui.cpp:1760
msgid " transaction fee is included "
msgstr " de frais de transaction sont ajoutés "
#: ../../../ui.cpp:1776
msgid "Payment sent "
msgstr "Paiement envoyé "
#: ../../../ui.cpp:1786
msgid "Invalid address "
msgstr "Adresse invalide "
#: ../../../ui.cpp:1840
#, c-format
msgid "Sending %s to %s"
msgstr "Envoi de %s à %s"
#: ../../../ui.cpp:1913
#: ../../../ui.cpp:1946
msgid "CANCELLED"
msgstr "ANNULÉ"
#: ../../../ui.cpp:1917
msgid "Cancelled"
msgstr "Annulé"
#: ../../../ui.cpp:1919
msgid "Transfer cancelled "
msgstr "Transfert annulé "
#: ../../../ui.cpp:1972
msgid "Error: "
msgstr "Erreur: "
#: ../../../ui.cpp:1991
msgid "Connecting..."
msgstr "Connexion..."
#: ../../../ui.cpp:1996
msgid "Unable to connect"
msgstr "Impossible de se connecter"
#: ../../../ui.cpp:2001
msgid "Requesting public key..."
msgstr "Requête de la clef publique..."
#: ../../../ui.cpp:2013
msgid "Received public key..."
msgstr "Clef publique reçue..."
#: ../../../ui.cpp:2025
msgid "Transfer was not accepted"
msgstr "Le transfer n'a pas été accepté"
#: ../../../ui.cpp:2034
msgid "Invalid response received"
msgstr "Réponse invalide reçue"
#: ../../../ui.cpp:2049
msgid "Creating transaction..."
msgstr "Création de la transaction..."
#: ../../../ui.cpp:2061
#, c-format
msgid "This is an oversized transaction that requires a transaction fee of %s"
msgstr "Ceci est une transaction de taille excessive qui nécessite des frais de transaction de %s"
#: ../../../ui.cpp:2063
msgid "Transaction creation failed"
msgstr "La création de la transaction a échouée"
#: ../../../ui.cpp:2070
msgid "Transaction aborted"
msgstr "Transaction interrompue"
#: ../../../ui.cpp:2078
msgid "Lost connection, transaction cancelled"
msgstr "Connexion perdue, transaction annulée"
#: ../../../ui.cpp:2094
msgid "Sending payment..."
msgstr "Envoi du paiement..."
#: ../../../ui.cpp:2100
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 "La transaction a été rejetée. Ceci peut arriver si une partie des pièces de votre porte-monnaie ont déjà été dépensées, par exemple si vous avez utilisé une copie de wallet.dat et que les pièces ont été dépensées dans la copie mais pas marquées comme telles ici."
#: ../../../ui.cpp:2109
msgid "Waiting for confirmation..."
msgstr "Attente de confirmation..."
#: ../../../ui.cpp:2127
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 ""
"Le paiement a été envoyé, mais le destinataire n'a pas pû le vérifier.\n"
"La transaction est enregistrée et sera créditée au destinataire,\n"
"mais le commentaire sera vide."
#: ../../../ui.cpp:2136
msgid "Payment was sent, but an invalid response was received"
msgstr "Le paiement a été envoyé, mais une réponse invalide a été reçue"
#: ../../../ui.cpp:2142
msgid "Payment completed"
msgstr "Paiement terminé"
#: ../../../ui.cpp:2173
#: ../../../ui.cpp:2319
#: ../../../ui.cpp:2356
msgid "Name"
msgstr "Nom"
#: ../../../ui.cpp:2174
#: ../../../ui.cpp:2319
#: ../../../ui.cpp:2356
msgid "Address"
msgstr "Adresse"
#: ../../../ui.cpp:2176
#: ../../../ui.cpp:2331
msgid "Label"
msgstr "Intitulé"
#: ../../../ui.cpp:2177
#: ../../../uibase.cpp:902
msgid "Bitcoin Address"
msgstr "Adresse Bitcoin"
#: ../../../ui.cpp:2301
msgid "This is one of your own addresses for receiving payments and cannot be entered in the address book. "
msgstr "Ceci est une de vos adresses de reception de paiement, et ne peut être ajoutée au carnet d'adresse. "
#: ../../../ui.cpp:2319
#: ../../../ui.cpp:2325
msgid "Edit Address"
msgstr "Modifier l'adresse"
#: ../../../ui.cpp:2331
msgid "Edit Address Label"
msgstr "Modifier l'intitulé de l'adresse"
#: ../../../ui.cpp:2356
#: ../../../ui.cpp:2362
msgid "Add Address"
msgstr "Ajouter une adresse"
#: ../../../ui.cpp:2438
msgid "Bitcoin"
msgstr "Bitcoin"
#: ../../../ui.cpp:2440
msgid "Bitcoin - Generating"
msgstr "Bitcoin - Génération"
#: ../../../ui.cpp:2442
msgid "Bitcoin - (not connected)"
msgstr "Bitcoin - (non connecté)"
#: ../../../ui.cpp:2519
msgid "&Open Bitcoin"
msgstr "&Ouvrir Bitcoin"
#: ../../../ui.cpp:2520
msgid "O&ptions..."
msgstr "O&ptions..."
#: ../../../ui.cpp:2524
#: ../../../uibase.cpp:25
msgid "E&xit"
msgstr "&Quitter"
#: ../../../uibase.cpp:28
msgid "&File"
msgstr "&Fichier"
#: ../../../uibase.cpp:36
msgid "&Your Receiving Addresses..."
msgstr "&Vos adresses de reception..."
#: ../../../uibase.cpp:40
msgid "&Options..."
msgstr "&Options..."
#: ../../../uibase.cpp:43
msgid "&Settings"
msgstr "&Préférences"
#: ../../../uibase.cpp:47
msgid "&About..."
msgstr "&À propos..."
#: ../../../uibase.cpp:50
msgid "&Help"
msgstr "&Aide"
#: ../../../uibase.cpp:60
msgid "Address Book"
msgstr "Carnet d'adresse"
#: ../../../uibase.cpp:75
msgid "Your Bitcoin Address:"
msgstr "Votre adresse Bitcoin :"
#: ../../../uibase.cpp:82
msgid " &New... "
msgstr " &Nouvelle... "
#: ../../../uibase.cpp:85
#: ../../../uibase.cpp:845
#: ../../../uibase.cpp:948
msgid " &Copy to Clipboard "
msgstr " &Copier dans le presse-papier "
#: ../../../uibase.cpp:99
msgid "Balance:"
msgstr "Solde :"
#: ../../../uibase.cpp:115
msgid " All"
msgstr " Tout"
#: ../../../uibase.cpp:115
msgid " Sent"
msgstr " Envoyés"
#: ../../../uibase.cpp:115
msgid " Received"
msgstr " Reçus"
#: ../../../uibase.cpp:115
msgid " In Progress"
msgstr " En cours"
#: ../../../uibase.cpp:136
msgid "All Transactions"
msgstr "Toutes les transactions"
#: ../../../uibase.cpp:147
msgid "Sent/Received"
msgstr "Envoyées/Reçues"
#: ../../../uibase.cpp:158
msgid "Sent"
msgstr "Envoyées"
#: ../../../uibase.cpp:169
msgid "Received"
msgstr "Reçues"
#: ../../../uibase.cpp:312
#: ../../../uibase.cpp:473
#: ../../../uibase.cpp:574
#: ../../../uibase.cpp:787
#: ../../../uibase.cpp:848
#: ../../../uibase.cpp:957
#: ../../../uibase.cpp:1046
msgid "OK"
msgstr "OK"
#: ../../../uibase.cpp:355
msgid "Optional transaction fee you give to the nodes that process your transactions."
msgstr "Frais de transaction optionel que vous donnez au nœud qui traite vos transactions."
#: ../../../uibase.cpp:364
msgid "Transaction fee:"
msgstr "Frais de transaction :"
#: ../../../uibase.cpp:380
msgid "&Limit coin generation to"
msgstr "&Limiter la génération de pièce à"
#: ../../../uibase.cpp:387
msgid "processors"
msgstr "processeurs"
#: ../../../uibase.cpp:393
msgid "&Start Bitcoin on system startup"
msgstr "&Lancer Bitcoin au démarrage du système"
#: ../../../uibase.cpp:397
msgid "&Minimize to the tray instead of the taskbar"
msgstr ""
"&Réduire dans la zone de notification\n"
"plutôt que dans la barre des tâches"
#: ../../../uibase.cpp:401
msgid "M&inimize to the tray on close"
msgstr "Ré&duire dans la zone de notification"
#: ../../../uibase.cpp:408
msgid "&Connect through socks4 proxy: "
msgstr "Se &connecter à travers un proxy SOCKS4: "
#: ../../../uibase.cpp:420
msgid "Proxy &IP:"
msgstr "&IP du proxy :"
#: ../../../uibase.cpp:428
msgid " &Port:"
msgstr " Port :"
#: ../../../uibase.cpp:450
msgid "// [don't translate] Test panel 2 for future expansion"
msgstr ""
#: ../../../uibase.cpp:454
msgid "// [don't translate] Let's not start multiple pages until the first page is filled up"
msgstr ""
#: ../../../uibase.cpp:476
#: ../../../uibase.cpp:729
#: ../../../uibase.cpp:792
#: ../../../uibase.cpp:851
#: ../../../uibase.cpp:960
#: ../../../uibase.cpp:1049
msgid "Cancel"
msgstr "Annuler"
#: ../../../uibase.cpp:479
msgid "&Apply"
msgstr "&Appliquer"
#: ../../../uibase.cpp:540
msgid "Bitcoin "
msgstr "Bitcoin "
#: ../../../uibase.cpp:546
msgid "version"
msgstr "version"
#: ../../../uibase.cpp:557
msgid ""
"Copyright (c) 2009-2010 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-2010 Bitcoin Developers\n"
"\n"
"Ceci est un logiciel expérimental.\n"
"\n"
"Distribué sous la licence logicielle MIT/X11, voir le fichier joint \n"
"license.txt ou http://www.opensource.org/licenses/mit-license.php.\n"
"\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) 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)"
msgstr ""
"Entrez une adresse Bitcoin (par exemple : 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJED9L)\n"
" ou une adresse IP (par exemple : 123.45.6.7)"
#: ../../../uibase.cpp:627
msgid "Pay &To:"
msgstr "&Payable à:"
#: ../../../uibase.cpp:642
msgid "&Paste"
msgstr "&Coller"
#: ../../../uibase.cpp:645
msgid " Address &Book..."
msgstr " Carnet d'&adresse..."
#: ../../../uibase.cpp:652
msgid "&Amount:"
msgstr "&Montant :"
#: ../../../uibase.cpp:662
msgid "T&ransfer:"
msgstr "T&ransfert :"
#: ../../../uibase.cpp:668
msgid " Standard"
msgstr " Standard"
#: ../../../uibase.cpp:690
msgid "&From:"
msgstr "&De :"
#: ../../../uibase.cpp:707
msgid "&Message:"
msgstr "&Message:"
#: ../../../uibase.cpp:724
msgid "&Send"
msgstr "&Envoyer"
#: ../../../uibase.cpp:776
msgid ""
"\n"
"\n"
"Connecting..."
msgstr ""
"\n"
"\n"
"Connexion..."
#: ../../../uibase.cpp:826
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 "Voici vos adresses Bitcoin de reception de paiement. Il peut être judicieux d'en fournir une différente à chaque émetteur afin de pouvoir suivre qui vous paie. L'adresse surlignée est affichée dans la fenêtre principale."
#: ../../../uibase.cpp:839
#: ../../../uibase.cpp:951
msgid "&Edit..."
msgstr "&Modifier..."
#: ../../../uibase.cpp:842
#: ../../../uibase.cpp:954
msgid " &New Address... "
msgstr " &Nouvelle adresse... "
#: ../../../uibase.cpp:914
msgid "Sending"
msgstr "Envoi"
#: ../../../uibase.cpp:922
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 "Voici vos adresses Bitcoin de reception de paiement. Vous pouvez en fournir une différente à chaque émetteur afin de pouvoir suivre qui vous paie. L'adresse surlignée sera affichée dans la fenêtre principale."
#: ../../../uibase.cpp:935
msgid "Receiving"
msgstr "Reception"
#: ../../../uibase.cpp:945
msgid "&Delete"
msgstr "&Supprimer"
#: ../../../uibase.h:149
msgid "Transaction Details"
msgstr "Détails de la transaction"
#: ../../../uibase.h:202
msgid "Options"
msgstr "Options"
#: ../../../uibase.h:230
msgid "About Bitcoin"
msgstr "À propos de Bitcoin"
#: ../../../uibase.h:340
msgid "Your Bitcoin Addresses"
msgstr "Votre adresse Bitcoin"
#~ msgid "Usage: bitcoin [options]"
#~ msgstr "Usage: bitcoin [options]"

Binary file not shown.

View File

@@ -1,967 +0,0 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-15 18:22+0100\n"
"PO-Revision-Date: 2011-05-26 09:46+0100\n"
"Last-Translator: Joozero <hostfat@gmail.com>\n"
"Language-Team: \n"
"Language: Italian\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:1499
#, c-format
msgid "Unable to bind to port %d on this computer. Bitcoin is probably already running."
msgstr "Impossibile utilizzare la porta %d su questo computer. Bitcoin probabilmente e' gia' in esecuzione"
#: ../../../src/ui.cpp:202
#, 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 "Questo trasferimento supera le dimensioni massime. Puoi comunque inviarlo per un costo aggiuntivo di %s, che andrà ai nodi che effettueranno il processo della tua operazione e che supportano il network. Vuoi pagare il costo aggiuntivo?"
#: ../../../src/ui.cpp:301
msgid "Status"
msgstr "Stato"
#: ../../../src/ui.cpp:302
msgid "Date"
msgstr "Data"
#: ../../../src/ui.cpp:303
msgid "Description"
msgstr "Descrizione"
#: ../../../src/ui.cpp:304
msgid "Debit"
msgstr "Debito"
#: ../../../src/ui.cpp:305
msgid "Credit"
msgstr "Credito"
#: ../../../src/ui.cpp:511
#, c-format
msgid "Open for %d blocks"
msgstr "Aperto per %d blocchi"
#: ../../../src/ui.cpp:513
#, c-format
msgid "Open until %s"
msgstr "Aperto fino a %s"
#: ../../../src/ui.cpp:519
#, c-format
msgid "%d/offline?"
msgstr "%d/disconnesso?"
#: ../../../src/ui.cpp:521
#, c-format
msgid "%d/unconfirmed"
msgstr "%d/non confermato"
#: ../../../src/ui.cpp:523
#, c-format
msgid "%d confirmations"
msgstr "%d conferme"
#: ../../../src/ui.cpp:608
msgid "Generated"
msgstr "Generato"
#: ../../../src/ui.cpp:616
#, c-format
msgid "Generated (%s matures in %d more blocks)"
msgstr "Generato (%s matureranno in %d altri blocchi)"
#: ../../../src/ui.cpp:620
msgid "Generated - Warning: This block was not received by any other nodes and will probably not be accepted!"
msgstr "Generato - Attenzione: Questo blocco non è stato ricevuto da nessun altro nodo e probabilmente non sarà accettato!"
#: ../../../src/ui.cpp:624
msgid "Generated (not accepted)"
msgstr "Generato (non accettato)"
#: ../../../src/ui.cpp:634
msgid "From: "
msgstr "Da: "
#: ../../../src/ui.cpp:658
msgid "Received with: "
msgstr "Ricevuto con: "
#: ../../../src/ui.cpp:704
msgid "Payment to yourself"
msgstr "Pagamento a te stesso"
#: ../../../src/ui.cpp:738
msgid "To: "
msgstr "A: "
#: ../../../src/ui.cpp:1053
msgid " Generating"
msgstr " Generando"
#: ../../../src/ui.cpp:1055
msgid "(not connected)"
msgstr "(non connesso)"
#: ../../../src/ui.cpp:1058
#, c-format
msgid " %d connections %d blocks %d transactions"
msgstr " %d connessioni %d blocchi %d trasferimenti"
#: ../../../src/ui.cpp:1163
#: ../../../src/ui.cpp:2527
msgid "New Receiving Address"
msgstr "Nuovo indirizzo di ricezione"
#: ../../../src/ui.cpp:1164
#: ../../../src/ui.cpp:2528
msgid ""
"You should use a new address for each payment you receive.\n"
"\n"
"Label"
msgstr ""
"Si dovrebbe usare un nuovo indirizzo per ogni pagamento che ricevi.\n"
"\n"
"Label"
#: ../../../src/ui.cpp:1233
msgid "<b>Status:</b> "
msgstr "<b>Stato:</b> "
#: ../../../src/ui.cpp:1238
msgid ", has not been successfully broadcast yet"
msgstr ", non è ancora stato trasmesso correttamente"
#: ../../../src/ui.cpp:1240
#, c-format
msgid ", broadcast through %d node"
msgstr ", trasmissione attraverso %d nodo"
#: ../../../src/ui.cpp:1242
#, c-format
msgid ", broadcast through %d nodes"
msgstr ", trasmissione attraverso %d nodi"
#: ../../../src/ui.cpp:1246
msgid "<b>Date:</b> "
msgstr "<b>Data:</b> "
#: ../../../src/ui.cpp:1254
msgid "<b>Source:</b> Generated<br>"
msgstr "<b>Sorgente:</b> Generato<br>"
#: ../../../src/ui.cpp:1260
#: ../../../src/ui.cpp:1278
msgid "<b>From:</b> "
msgstr "<b>Da:</b> "
#: ../../../src/ui.cpp:1278
msgid "unknown"
msgstr "sconosciuto"
#: ../../../src/ui.cpp:1279
#: ../../../src/ui.cpp:1303
#: ../../../src/ui.cpp:1362
msgid "<b>To:</b> "
msgstr "<b>A:</b> "
#: ../../../src/ui.cpp:1282
msgid " (yours, label: "
msgstr " (vostro, label: "
#: ../../../src/ui.cpp:1284
msgid " (yours)"
msgstr " (vostro)"
#: ../../../src/ui.cpp:1321
#: ../../../src/ui.cpp:1333
#: ../../../src/ui.cpp:1379
#: ../../../src/ui.cpp:1396
msgid "<b>Credit:</b> "
msgstr "<b>Credito:</b> "
#: ../../../src/ui.cpp:1323
#, c-format
msgid "(%s matures in %d more blocks)"
msgstr "(%s matureranno in %d altri blocchi)"
#: ../../../src/ui.cpp:1325
msgid "(not accepted)"
msgstr "(non accettato)"
#: ../../../src/ui.cpp:1370
#: ../../../src/ui.cpp:1378
#: ../../../src/ui.cpp:1393
msgid "<b>Debit:</b> "
msgstr "<b>Debito:</b> "
#: ../../../src/ui.cpp:1384
msgid "<b>Transaction fee:</b> "
msgstr "<b>Costo del trasferimento :</b> "
#: ../../../src/ui.cpp:1400
msgid "<b>Net amount:</b> "
msgstr "<b>Quantità del network:</b> "
#: ../../../src/ui.cpp:1407
msgid "Message:"
msgstr "Messaggio:"
#: ../../../src/ui.cpp:1409
msgid "Comment:"
msgstr "Commento:"
#: ../../../src/ui.cpp:1412
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 "Le monete generate devono aspettare 120 blocchi prima di poter essere spese. Quando hai generato questo blocco, è stato diffuso sul network per essere aggiunto alla catena dei blocchi. Se fallirà l'entrata nella catena, cambierà in \"non accettato\" e non spendibile. Questo può capitare se un altro nodo genera un blocco pochi secondi prima del tuo."
#: ../../../src/ui.cpp:1592
msgid "Cannot write autostart/bitcoin.desktop file"
msgstr "Impossibile creare il file autostart/bitcoin.desktop"
#: ../../../src/ui.cpp:1628
msgid "Main"
msgstr "Principale"
#: ../../../src/ui.cpp:1636
msgid "&Start Bitcoin on window system startup"
msgstr "&Avvia Bitcoin all'avvio del sistema"
#: ../../../src/ui.cpp:1643
msgid "&Minimize on close"
msgstr "&Minimizza se chiuso"
#: ../../../src/ui.cpp:1785
#, c-format
msgid "version %s"
msgstr "versione %s"
#: ../../../src/ui.cpp:1897
msgid "Error in amount "
msgstr "Errore nell'ammontare "
#: ../../../src/ui.cpp:1897
#: ../../../src/ui.cpp:1902
#: ../../../src/ui.cpp:1907
#: ../../../src/ui.cpp:1942
#: ../../../src/uibase.cpp:55
msgid "Send Coins"
msgstr "Invia monete"
#: ../../../src/ui.cpp:1902
msgid "Amount exceeds your balance "
msgstr "L'ammontare è andato oltre i tuoi capitali "
#: ../../../src/ui.cpp:1907
msgid "Total exceeds your balance when the "
msgstr "Il totale supera il tuo bilancio quando il "
#: ../../../src/ui.cpp:1907
msgid " transaction fee is included "
msgstr " il costo del trasferimento è incluso "
#: ../../../src/ui.cpp:1925
msgid "Payment sent "
msgstr "Pagamento inviato "
#: ../../../src/ui.cpp:1925
#: ../../../src/ui.cpp:1930
#: ../../../src/ui.cpp:2074
#: ../../../src/ui.cpp:2227
#: ../../../src/main.cpp:3999
msgid "Sending..."
msgstr "Invio in corso..."
#: ../../../src/ui.cpp:1942
msgid "Invalid address "
msgstr "Indirizzo non valido "
#: ../../../src/ui.cpp:1995
#, c-format
msgid "Sending %s to %s"
msgstr "Inviando %s a %s"
#: ../../../src/ui.cpp:2068
#: ../../../src/ui.cpp:2101
msgid "CANCELLED"
msgstr "CANCELLATO"
#: ../../../src/ui.cpp:2072
msgid "Cancelled"
msgstr "Cancellato"
#: ../../../src/ui.cpp:2074
msgid "Transfer cancelled "
msgstr "Operazione cancellata "
#: ../../../src/ui.cpp:2127
msgid "Error: "
msgstr "Errore: "
#: ../../../src/ui.cpp:2141
#: ../../../src/ui.cpp:2212
#: ../../../src/main.cpp:4018
msgid "Insufficient funds"
msgstr "Fondi insufficenti"
#: ../../../src/ui.cpp:2146
msgid "Connecting..."
msgstr "Connessione in corso..."
#: ../../../src/ui.cpp:2151
msgid "Unable to connect"
msgstr "Impossibile connettersi"
#: ../../../src/ui.cpp:2156
msgid "Requesting public key..."
msgstr "Richiesta chiave pubblica..."
#: ../../../src/ui.cpp:2168
msgid "Received public key..."
msgstr "Ricezione chiave pubblica..."
#: ../../../src/ui.cpp:2182
msgid "Recipient is not accepting transactions sent by IP address"
msgstr "Il destinatario non accetta transazioni effettuate tramite questo IP"
#: ../../../src/ui.cpp:2184
msgid "Transfer was not accepted"
msgstr "Trasferimento non accettato"
#: ../../../src/ui.cpp:2193
msgid "Invalid response received"
msgstr "Risposta non valida ricevuta"
#: ../../../src/ui.cpp:2208
msgid "Creating transaction..."
msgstr "Creo transazione..."
#: ../../../src/ui.cpp:2220
#, 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 "Questa transazione richiede un costo di transazione di almeno %s a causa della sua quantità, complessità, o per l'uso di fondi recentemente ricevuti"
#: ../../../src/ui.cpp:2222
msgid "Transaction creation failed"
msgstr "Creazione trasferimento fallita"
#: ../../../src/ui.cpp:2229
msgid "Transaction aborted"
msgstr "Trasferimento bloccato"
#: ../../../src/ui.cpp:2237
msgid "Lost connection, transaction cancelled"
msgstr "Connessione persa, trasferimento cancellato"
#: ../../../src/ui.cpp:2253
msgid "Sending payment..."
msgstr "Invio del pagamento..."
#: ../../../src/ui.cpp:2259
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 "Il trasferimento è stato respinto. Questo può accadere se alcune delle monete nel tuo portafoglio erano già state spese, o anche se hai usato una copia di wallet.dat e le monete erano già state spese nella copia originale ma non segnate in quest'ultima."
#: ../../../src/ui.cpp:2268
msgid "Waiting for confirmation..."
msgstr "In attesa di conferma..."
#: ../../../src/ui.cpp:2286
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 ""
"Il pagamento è stato inviato, ma il destinatario non è stato in grado di verificarlo.\n"
"Il trasferimento è registrato e sarà accreditato al destinatario,\n"
"ma il commento informativo verrà mostrato come vuoto."
#: ../../../src/ui.cpp:2295
msgid "Payment was sent, but an invalid response was received"
msgstr "Il pagamento è stato inviato, ma è arrivata un risposta invalida"
#: ../../../src/ui.cpp:2301
msgid "Payment completed"
msgstr "Pagamento completato"
#: ../../../src/ui.cpp:2332
#: ../../../src/ui.cpp:2478
#: ../../../src/ui.cpp:2515
msgid "Name"
msgstr "Nome"
#: ../../../src/ui.cpp:2333
#: ../../../src/ui.cpp:2478
#: ../../../src/ui.cpp:2515
msgid "Address"
msgstr "Indirizzo"
#: ../../../src/ui.cpp:2335
#: ../../../src/ui.cpp:2490
msgid "Label"
msgstr "Label"
#: ../../../src/ui.cpp:2336
#: ../../../src/uibase.cpp:837
msgid "Bitcoin Address"
msgstr "Indirizzo Bitcoin"
#: ../../../src/ui.cpp:2460
msgid "This is one of your own addresses for receiving payments and cannot be entered in the address book. "
msgstr "Questo qui è uno dei tuoi indirizzi personali per ricevere pagamenti e non può essere inserito nella rubrica indirizzi. "
#: ../../../src/ui.cpp:2478
#: ../../../src/ui.cpp:2484
msgid "Edit Address"
msgstr "Modifica indirizzo"
#: ../../../src/ui.cpp:2490
msgid "Edit Address Label"
msgstr "Modifica spazio indirizzo"
#: ../../../src/ui.cpp:2515
#: ../../../src/ui.cpp:2521
msgid "Add Address"
msgstr "Aggiungi indirizzo"
#: ../../../src/ui.cpp:2598
msgid "Bitcoin"
msgstr "Bitcoin"
#: ../../../src/ui.cpp:2600
msgid "Bitcoin - Generating"
msgstr "Bitcoin - Generando"
#: ../../../src/ui.cpp:2602
msgid "Bitcoin - (not connected)"
msgstr "Bitcoin - (non connesso)"
#: ../../../src/ui.cpp:2681
msgid "&Open Bitcoin"
msgstr "&Apri Bitcoin"
#: ../../../src/ui.cpp:2682
msgid "&Send Bitcoins"
msgstr "&Apri Bitcoin"
#: ../../../src/ui.cpp:2683
msgid "O&ptions..."
msgstr "&Opzioni..."
#: ../../../src/ui.cpp:2686
#: ../../../src/uibase.cpp:25
msgid "E&xit"
msgstr "&Esci"
#: ../../../src/ui.cpp:2902
msgid "Program has crashed and will terminate. "
msgstr "Il programma è crashato e sarà terminato. "
#: ../../../src/main.cpp:1868
msgid "Warning: Disk space is low "
msgstr "Attenzione: c'è poco spazio sul disco "
#: ../../../src/main.cpp:3992
#, 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 "Errore: Questa transazione richiede un costo di transazione di almeno %s a causa della sua quantità, complessità, o per l'uso di fondi recentemente ricevuti"
#: ../../../src/main.cpp:3994
msgid "Error: Transaction creation failed "
msgstr "Errore: Creazione del trasferimento fallito "
#: ../../../src/main.cpp:4003
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 "Errore: Il trasferimento è stato respinto. Questo può accadere se alcune delle monete nel tuo portafoglio erano già state spese, o anche se hai usato una copia di wallet.dat e le monete erano già state spese nella copia originale ma non segnate in quest'ultima."
#: ../../../src/main.cpp:4016
msgid "Invalid amount"
msgstr "Quantità non valida"
#: ../../../src/main.cpp:4023
msgid "Invalid bitcoin address"
msgstr "Indirizzo bitcoin non valido"
#: ../../../src/rpc.cpp:1800
#: ../../../src/rpc.cpp:1802
#, c-format
msgid "To use the %s option"
msgstr "Usare l'opzione %s"
#: ../../../src/rpc.cpp:1804
#, 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 ""
"Attenzione: %s, devi impostare rpcpassword=<password>\n"
"nel file di configurazione: %s\n"
"Se questo file non esiste, puoi crearlo come un file di sola lettura.\n"
#: ../../../src/rpc.cpp:1972
#, 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 ""
"Devi settare rpcpassword=<password> nel file di configurazione:\n"
"%s\n"
"Se questo file non esiste, puoi crearlo come un file di sola lettura"
#: ../../../src/util.cpp:865
msgid "Warning: Please check that your computer's date and time are correct. If your clock is wrong Bitcoin will not work properly."
msgstr "Attenzione: Controlla che data/ora del tuo computer siano corrette. Se il tuo orologio è sbagliato bitcoin non funzionerà correttamente"
#: ../../../src/util.cpp:898
msgid "beta"
msgstr "beta"
#: ../../../src/uibase.cpp:28
msgid "&File"
msgstr "&File"
#: ../../../src/uibase.cpp:32
msgid "&Your Receiving Addresses..."
msgstr "&Il tuo indirizzo di ricezione..."
#: ../../../src/uibase.cpp:36
msgid "&Options..."
msgstr "&Opzioni..."
#: ../../../src/uibase.cpp:39
msgid "&Settings"
msgstr "I&mpostazioni"
#: ../../../src/uibase.cpp:43
msgid "&About..."
msgstr "&Info..."
#: ../../../src/uibase.cpp:46
msgid "&Help"
msgstr "&Aiuto"
#: ../../../src/uibase.cpp:56
msgid "Address Book"
msgstr "Rubrica indirizzi"
#: ../../../src/uibase.cpp:69
msgid "Your Bitcoin Address:"
msgstr "Il tuo indirizzo Bitcoin:"
#: ../../../src/uibase.cpp:76
msgid " &New... "
msgstr " &Nuovo... "
#: ../../../src/uibase.cpp:79
#: ../../../src/uibase.cpp:780
#: ../../../src/uibase.cpp:883
msgid " &Copy to Clipboard "
msgstr " &Copia nella Clipboard "
#: ../../../src/uibase.cpp:93
msgid "Balance:"
msgstr "Bilancio:"
#: ../../../src/uibase.cpp:109
msgid " All"
msgstr " Tutte"
#: ../../../src/uibase.cpp:109
msgid " Sent"
msgstr " Inviato"
#: ../../../src/uibase.cpp:109
msgid " Received"
msgstr " Ricevuto"
#: ../../../src/uibase.cpp:109
msgid " In Progress"
msgstr " In lavorazione"
#: ../../../src/uibase.cpp:130
msgid "All Transactions"
msgstr "Tutte le transazioni"
#: ../../../src/uibase.cpp:141
msgid "Sent/Received"
msgstr "Inviato/Ricevuto"
#: ../../../src/uibase.cpp:152
msgid "Sent"
msgstr "Inviato"
#: ../../../src/uibase.cpp:163
msgid "Received"
msgstr "Ricevuto"
#: ../../../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 "OK"
#: ../../../src/uibase.cpp:345
msgid "&Start Bitcoin on system startup"
msgstr "&Avvia Bitcoin all'avvio del sistema"
#: ../../../src/uibase.cpp:348
msgid "&Minimize to the tray instead of the taskbar"
msgstr "&Minimizza nella tray invece che nella barra"
#: ../../../src/uibase.cpp:351
msgid "Map port using &UPnP"
msgstr "Imposta le porte del firewall utilizzando &UPnP"
#: ../../../src/uibase.cpp:354
msgid "&Minimize to the tray on close"
msgstr "&Minimizza nella tray alla chiusura"
#: ../../../src/uibase.cpp:360
msgid "&Connect through socks4 proxy: "
msgstr "&Connesso attraverso proxy socks4: "
#: ../../../src/uibase.cpp:371
msgid "Proxy &IP:"
msgstr "Proxy &IP:"
#: ../../../src/uibase.cpp:379
msgid " &Port:"
msgstr " &Porta:"
#: ../../../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 "Tassa di transazione per ogni KB opzionale che consente di assicurarsi che le transazioni siano trattate con rapidità. La maggior parte delle operazioni sono 1KB. Quota 0,01 raccomandata."
#: ../../../src/uibase.cpp:399
msgid "Pay transaction fee:"
msgstr "Costo trasferimento:"
#: ../../../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 "Cancella"
#: ../../../src/uibase.cpp:449
msgid "&Apply"
msgstr "&Accetta"
#: ../../../src/uibase.cpp:508
msgid "Bitcoin "
msgstr "Bitcoin "
#: ../../../src/uibase.cpp:514
msgid "version"
msgstr "versione"
#: ../../../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-2010 Bitcoin Developers\n"
"\n"
"Questo è un software sperimentale.\n"
"\n"
"Distribuito sotto la licenza software MIT/X11, guarda il file license.txt\n"
"incluso oppure su http://www.opensource.org/licenses/mit-license.php.\n"
"\n"
"Questo prodotto include software sviluppato dal progetto OpenSSL per\n"
"l'uso del (http://www.openssl.org/) e il software criptografico scritto\n"
"da Eric Young (eay@cryptsoft.com) e UPnP software scritto da Thomas Bernard."
#: ../../../src/uibase.cpp:581
msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
msgstr "Inserisci un indirizzo Bitcoin (es. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
#: ../../../src/uibase.cpp:595
msgid "Pay &To:"
msgstr "Paga &a:"
#: ../../../src/uibase.cpp:610
msgid "&Paste"
msgstr "&Incolla"
#: ../../../src/uibase.cpp:613
msgid " Address &Book..."
msgstr " &Rubrica degli indirizzi..."
#: ../../../src/uibase.cpp:620
msgid "&Amount:"
msgstr "&Quantità"
#: ../../../src/uibase.cpp:630
msgid "&Transfer:"
msgstr "&Trasferimento:"
#: ../../../src/uibase.cpp:636
msgid " Standard"
msgstr " Standard"
#: ../../../src/uibase.cpp:663
msgid "&Send"
msgstr "&Invia"
#: ../../../src/uibase.cpp:711
msgid ""
"\n"
"\n"
"Connecting..."
msgstr ""
"\n"
"\n"
"Connessione in corso..."
#: ../../../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 "Questi sono i tuoi indirizzi Bitcoin per ricevere pagamenti. Potrai darne uno diverso ad ognuno per cosi tenere traccia di chi ti sta pagando. L'indirizzo selezionato sarà quello mostrato nella finestra principale."
#: ../../../src/uibase.cpp:774
#: ../../../src/uibase.cpp:886
msgid "&Edit..."
msgstr "&Cambia..."
#: ../../../src/uibase.cpp:777
#: ../../../src/uibase.cpp:889
msgid " &New Address... "
msgstr " &Nuovo indirizzo... "
#: ../../../src/uibase.cpp:849
msgid "Sending"
msgstr "Invio in corso.."
#: ../../../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 "Questi sono i tuoi indirizzi Bitcoin per ricevere pagamenti. Potrai darne uno diverso ad ognuno per cosi tenere traccia di chi ti sta pagando. L'indirizzo selezionato sarà quello mostrato nella finestra principale."
#: ../../../src/uibase.cpp:870
msgid "Receiving"
msgstr "Ricevendo"
#: ../../../src/uibase.cpp:880
msgid "&Delete"
msgstr "&Cancella"
#: ../../../src/init.cpp:147
msgid "Bitcoin version"
msgstr "Versione Bitcoin "
#: ../../../src/init.cpp:148
msgid "Usage:"
msgstr "Uso:"
#: ../../../src/init.cpp:150
msgid "Send command to -server or bitcoind\n"
msgstr "Invia comando a -server o a bitcoin\n"
#: ../../../src/init.cpp:151
msgid "List commands\n"
msgstr "Lista comandi\n"
#: ../../../src/init.cpp:152
msgid "Get help for a command\n"
msgstr "Chiedi aiuto per i comandi\n"
#: ../../../src/init.cpp:153
msgid "Options:\n"
msgstr "Opzioni:\n"
#: ../../../src/init.cpp:154
msgid "Specify configuration file (default: bitcoin.conf)\n"
msgstr "Specifica il file di configurazione (normalmente e': bitcoin.conf)\n"
#: ../../../src/init.cpp:155
msgid "Specify pid file (default: bitcoind.pid)\n"
msgstr "Specifica il fil pid (normalmente: bitcoin.pid)\n"
#: ../../../src/init.cpp:156
msgid "Generate coins\n"
msgstr "Genera monete\n"
#: ../../../src/init.cpp:157
msgid "Don't generate coins\n"
msgstr "Non generare monete\n"
#: ../../../src/init.cpp:158
msgid "Start minimized\n"
msgstr "Avvia minimizzato\n"
#: ../../../src/init.cpp:159
msgid "Specify data directory\n"
msgstr "Indica la cartella per i dati\n"
#: ../../../src/init.cpp:160
msgid "Connect through socks4 proxy\n"
msgstr "Connetti attraverso proxy socks4\n"
#: ../../../src/init.cpp:161
msgid "Allow DNS lookups for addnode and connect\n"
msgstr "Permetti DNS lookups per aggiungere un nodo e collegarsi\n"
#: ../../../src/init.cpp:162
msgid "Add a node to connect to\n"
msgstr "Aggiungi un nodoper la connessione a\n"
#: ../../../src/init.cpp:163
msgid "Connect only to the specified node\n"
msgstr "Collegati solo al nodo specificato\n"
#: ../../../src/init.cpp:164
msgid "Don't accept connections from outside\n"
msgstr "Non accettare connessioni dall'esterno\n"
#: ../../../src/init.cpp:167
msgid "Don't attempt to use UPnP to map the listening port\n"
msgstr "Non provare a usare UPnP per mappare le porte in ascolto\n"
#: ../../../src/init.cpp:169
msgid "Attempt to use UPnP to map the listening port\n"
msgstr "Prova ad usare l' UPnP per mappare la porte in ascolto\n"
#: ../../../src/init.cpp:172
msgid "Fee per KB to add to transactions you send\n"
msgstr "Tassa per KB da aggiungere alle operazioni di invio\n"
#: ../../../src/init.cpp:174
msgid "Accept command line and JSON-RPC commands\n"
msgstr "Accetta linea di comando e i comando JSON-RPC\n"
#: ../../../src/init.cpp:177
msgid "Run in the background as a daemon and accept commands\n"
msgstr "Avvia in background come processo e accetta i comandi\n"
#: ../../../src/init.cpp:179
msgid "Use the test network\n"
msgstr "Usa il network test\n"
#: ../../../src/init.cpp:180
msgid "Username for JSON-RPC connections\n"
msgstr "Username per le connessioni JSON-RPC\n"
#: ../../../src/init.cpp:181
msgid "Password for JSON-RPC connections\n"
msgstr "Password per le connessioni JSON-RPC\n"
#: ../../../src/init.cpp:182
msgid "Listen for JSON-RPC connections on <port> (default: 8332)\n"
msgstr "In ascolta per connessioni JSON-RPC sulla porta <port> (default: 8332)\n"
#: ../../../src/init.cpp:183
msgid "Allow JSON-RPC connections from specified IP address\n"
msgstr "Permetti connessioni JSON-RPC da un indirizzo IP specifico\n"
#: ../../../src/init.cpp:184
msgid "Send commands to node running on <ip> (default: 127.0.0.1)\n"
msgstr "Invia comandi al nodo in esecuzione su <ip> (default: 127.0.0.1)\n"
#: ../../../src/init.cpp:185
msgid "Set key pool size to <n> (default: 100)\n"
msgstr "Imposta la dimensione della key pool a <n> (default: 100)\n"
#: ../../../src/init.cpp:186
msgid "Rescan the block chain for missing wallet transactions\n"
msgstr "Ricontrolla il blocco della catena transazioni del portafoglio mancate\n"
#: ../../../src/init.cpp:190
msgid ""
"\n"
"SSL options: (see the Bitcoin Wiki for SSL setup instructions)\n"
msgstr ""
"\n"
"opzioni SSL: (Consulta Bitcoin Wiki per le istruzioni di configurazione dell' SSL)\n"
#: ../../../src/init.cpp:191
msgid "Use OpenSSL (https) for JSON-RPC connections\n"
msgstr "Usa OpenSSL (https) per connessioni JSON-RPC\n"
#: ../../../src/init.cpp:192
msgid "Server certificate file (default: server.cert)\n"
msgstr "File del certificato del server (default: server.cert)\n"
#: ../../../src/init.cpp:193
msgid "Server private key (default: server.pem)\n"
msgstr "Chiave del server privata ((default: server.pem)\n"
#: ../../../src/init.cpp:194
msgid "Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
msgstr "Cifrari accettati (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
#: ../../../src/init.cpp:198
msgid "This help message\n"
msgstr "Questo messaggio di aiuto\n"
#: ../../../src/init.cpp:335
#, c-format
msgid "Cannot obtain a lock on data directory %s. Bitcoin is probably already running."
msgstr "Impossibile ottenere un blocco sulla directory %s. Bitcoin e' probabilmente gia' in esecuzione"
#: ../../../src/init.cpp:361
msgid "Error loading addr.dat \n"
msgstr "Errore nel caricamento addr.dat \n"
#: ../../../src/init.cpp:367
msgid "Error loading blkindex.dat \n"
msgstr "Errore nel caricamento blkindex.dat \n"
#: ../../../src/init.cpp:374
msgid "Error loading wallet.dat \n"
msgstr "Errore nel caricamento wallet.dat \n"
#: ../../../src/init.cpp:454
msgid "Invalid -proxy address"
msgstr "Indirizzo proxy non valido"
#: ../../../src/init.cpp:477
msgid "Invalid amount for -paytxfee=<amount>"
msgstr "Quantita' non valida per -paytxfee=<amount>"
#: ../../../src/init.cpp:481
msgid "Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction."
msgstr "Attenzione: -paytxfee e' molto alta. Questo e' la tassa che pagherai se invii la transazione"
#: ../../../src/uibase.h:147
msgid "Transaction Details"
msgstr "Dettagli transazione"
#: ../../../src/uibase.h:199
msgid "Options"
msgstr "Opzioni"
#: ../../../src/uibase.h:228
msgid "About Bitcoin"
msgstr "Info Bitcoin"
#: ../../../src/uibase.h:337
msgid "Your Bitcoin Addresses"
msgstr "Il tuo indirizzo Bitcoin"

Binary file not shown.

View File

@@ -1,971 +0,0 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-17 14:07+0100\n"
"PO-Revision-Date: 2011-05-17 14:09+0100\n"
"Last-Translator: Anonymous <anon@none>\n"
"Language-Team: \n"
"Language: \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 "Neįmanoma prisijungti prie šio kompiuterio porto %d. Bitcoin programa tikriausiai jau yra paleista"
#: ../../../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 "Šis pervedimas viršija dydžio limitą. Jūs galite siūsti šią suma sumokėję %s mokestį, kuris bus skirtas nodams už persiuntimą ir padėti tinklui. Ar sutinkate pridėti ši mokestį?"
#: ../../../src/ui.cpp:303
msgid "Status"
msgstr "Būklė"
#: ../../../src/ui.cpp:304
msgid "Date"
msgstr "Data"
#: ../../../src/ui.cpp:305
msgid "Description"
msgstr "Apibūdinimas"
#: ../../../src/ui.cpp:306
msgid "Debit"
msgstr "Debetas"
#: ../../../src/ui.cpp:307
msgid "Credit"
msgstr "Kreditas"
#: ../../../src/ui.cpp:513
#, c-format
msgid "Open for %d blocks"
msgstr "Atidaryta %d blokams"
#: ../../../src/ui.cpp:515
#, c-format
msgid "Open until %s"
msgstr "Atidaryta iki %s"
#: ../../../src/ui.cpp:521
#, c-format
msgid "%d/offline?"
msgstr "%d/neprisijunges?"
#: ../../../src/ui.cpp:523
#, c-format
msgid "%d/unconfirmed"
msgstr "%d/ nepatvirtinta"
#: ../../../src/ui.cpp:525
#, c-format
msgid "%d confirmations"
msgstr "%d patvirtinta"
#: ../../../src/ui.cpp:610
msgid "Generated"
msgstr "Sugeneruota"
#: ../../../src/ui.cpp:618
#, c-format
msgid "Generated (%s matures in %d more blocks)"
msgstr "Sugeneruota (%s bus galima naudoti už %d blokų)"
#: ../../../src/ui.cpp:622
msgid "Generated - Warning: This block was not received by any other nodes and will probably not be accepted!"
msgstr "Sugeneruota - Perspėjimas: Šio bloko negavo kiti nodai ir jis tikriausiai nebus priimtas!"
#: ../../../src/ui.cpp:626
msgid "Generated (not accepted)"
msgstr "Sugeneruota (nepriimta)"
#: ../../../src/ui.cpp:636
msgid "From: "
msgstr "Nuo: "
#: ../../../src/ui.cpp:660
msgid "Received with: "
msgstr "Priimta su: "
#: ../../../src/ui.cpp:706
msgid "Payment to yourself"
msgstr "Pervedimas sau"
#: ../../../src/ui.cpp:740
msgid "To: "
msgstr "Kam: "
#: ../../../src/ui.cpp:1055
msgid " Generating"
msgstr " Generuojama"
#: ../../../src/ui.cpp:1057
msgid "(not connected)"
msgstr "(neprijungta)"
#: ../../../src/ui.cpp:1060
#, c-format
msgid " %d connections %d blocks %d transactions"
msgstr " %d Jungtys %d Blokai %d pervedimai"
#: ../../../src/ui.cpp:1165
#: ../../../src/ui.cpp:2529
msgid "New Receiving Address"
msgstr "Naujas priėmimo adresas"
#: ../../../src/ui.cpp:1166
#: ../../../src/ui.cpp:2530
msgid ""
"You should use a new address for each payment you receive.\n"
"\n"
"Label"
msgstr ""
"Naudokite naują adresas kiekvienam pervedimui.\n"
"\n"
"Pavadinimas"
#: ../../../src/ui.cpp:1235
msgid "<b>Status:</b> "
msgstr "<b>Būklė:</b> "
#: ../../../src/ui.cpp:1240
msgid ", has not been successfully broadcast yet"
msgstr ", dar nėra paskelbta"
#: ../../../src/ui.cpp:1242
#, c-format
msgid ", broadcast through %d node"
msgstr ", paskelbta per %d nodą"
#: ../../../src/ui.cpp:1244
#, c-format
msgid ", broadcast through %d nodes"
msgstr ", paskelbta per %d nodus"
#: ../../../src/ui.cpp:1248
msgid "<b>Date:</b> "
msgstr "<b>Data:</b> "
#: ../../../src/ui.cpp:1256
msgid "<b>Source:</b> Generated<br>"
msgstr "<b>Iš:</b> Sugeneruota<br>"
#: ../../../src/ui.cpp:1262
#: ../../../src/ui.cpp:1280
msgid "<b>From:</b> "
msgstr "<b>Nuo:</b> "
#: ../../../src/ui.cpp:1280
msgid "unknown"
msgstr "nežinomas"
#: ../../../src/ui.cpp:1281
#: ../../../src/ui.cpp:1305
#: ../../../src/ui.cpp:1364
msgid "<b>To:</b> "
msgstr "<b>Kam:</b> "
#: ../../../src/ui.cpp:1284
msgid " (yours, label: "
msgstr " (jūsų, pavadinimas: "
#: ../../../src/ui.cpp:1286
msgid " (yours)"
msgstr " (jūsų)"
#: ../../../src/ui.cpp:1323
#: ../../../src/ui.cpp:1335
#: ../../../src/ui.cpp:1381
#: ../../../src/ui.cpp:1398
msgid "<b>Credit:</b> "
msgstr "<b>Kreditas:</b> "
#: ../../../src/ui.cpp:1325
#, c-format
msgid "(%s matures in %d more blocks)"
msgstr "(%s bus galima naudoti už %d blokų)"
#: ../../../src/ui.cpp:1327
msgid "(not accepted)"
msgstr "(nepriimta)"
#: ../../../src/ui.cpp:1372
#: ../../../src/ui.cpp:1380
#: ../../../src/ui.cpp:1395
msgid "<b>Debit:</b> "
msgstr "<b>Debetas:</b> "
#: ../../../src/ui.cpp:1386
msgid "<b>Transaction fee:</b> "
msgstr "<b>Pervedimo mokestis:</b> "
#: ../../../src/ui.cpp:1402
msgid "<b>Net amount:</b> "
msgstr "<b>Neto suma:</b> "
#: ../../../src/ui.cpp:1409
msgid "Message:"
msgstr "Žinutė:"
#: ../../../src/ui.cpp:1411
msgid "Comment:"
msgstr "Komentaras:"
#: ../../../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 "Turite palaukti 120 blokų, kol galėsite išleisti sugeneruotas monetas. Kai sugeneravotė šį blokai, jis buvo paskelbtas tinklui ir bus pridėtas į blokų grandinę. Jei šio bloko tinklas nepriims i grandinė, jis pasikeis į \"nepriimtas\" ir negali būti išleidžiamas. Tai gali kartais nutikti jei kitas nodas sugeneravo bloką keliom sekundėm anksčiau."
#: ../../../src/ui.cpp:1594
msgid "Cannot write autostart/bitcoin.desktop file"
msgstr "Nepavyksta įrašyti į autostart/bitcoin.desktop failą"
#: ../../../src/ui.cpp:1630
msgid "Main"
msgstr "Pagrindinis"
#: ../../../src/ui.cpp:1638
msgid "&Start Bitcoin on window system startup"
msgstr "&Paleisti Bitcoin kai pasileižia operacinė sistema"
#: ../../../src/ui.cpp:1645
msgid "&Minimize on close"
msgstr "&Sumažinti kai uždaroma"
#: ../../../src/ui.cpp:1787
#, c-format
msgid "version %s"
msgstr "versija %s"
#: ../../../src/ui.cpp:1899
msgid "Error in amount "
msgstr "Klaidinga suma"
#: ../../../src/ui.cpp:1899
#: ../../../src/ui.cpp:1904
#: ../../../src/ui.cpp:1909
#: ../../../src/ui.cpp:1944
#: ../../../src/uibase.cpp:55
msgid "Send Coins"
msgstr "Siūsti monetas"
#: ../../../src/ui.cpp:1904
msgid "Amount exceeds your balance "
msgstr "Suma viršija jūsų balasą"
#: ../../../src/ui.cpp:1909
msgid "Total exceeds your balance when the "
msgstr "Bendra suma viršija jūsu balansą kai"
#: ../../../src/ui.cpp:1909
msgid " transaction fee is included "
msgstr "pervedimo suma įskaičiuota"
#: ../../../src/ui.cpp:1927
msgid "Payment sent "
msgstr "Mokestis išsiųstas"
#: ../../../src/ui.cpp:1927
#: ../../../src/ui.cpp:1932
#: ../../../src/ui.cpp:2076
#: ../../../src/ui.cpp:2229
#: ../../../src/main.cpp:3997
msgid "Sending..."
msgstr "Siunčia..."
#: ../../../src/ui.cpp:1944
msgid "Invalid address "
msgstr "Klaidingas adresas"
#: ../../../src/ui.cpp:1997
#, c-format
msgid "Sending %s to %s"
msgstr "Siunčia %s į %s"
#: ../../../src/ui.cpp:2070
#: ../../../src/ui.cpp:2103
msgid "CANCELLED"
msgstr "NUTRAUKTA"
#: ../../../src/ui.cpp:2074
msgid "Cancelled"
msgstr "Nutraukta"
#: ../../../src/ui.cpp:2076
msgid "Transfer cancelled "
msgstr "Siuntimas nutrauktas"
#: ../../../src/ui.cpp:2129
msgid "Error: "
msgstr "Klaida:"
#: ../../../src/ui.cpp:2143
#: ../../../src/ui.cpp:2214
#: ../../../src/main.cpp:4016
msgid "Insufficient funds"
msgstr "Nepakankamai monetų"
#: ../../../src/ui.cpp:2148
msgid "Connecting..."
msgstr "Jungiasi..."
#: ../../../src/ui.cpp:2153
msgid "Unable to connect"
msgstr "Negali prisijungti"
#: ../../../src/ui.cpp:2158
msgid "Requesting public key..."
msgstr "Prašo \"viešojo rakto\"(public key)..."
#: ../../../src/ui.cpp:2170
msgid "Received public key..."
msgstr "Gautas \"viešasis raktas\"(public key)..."
#: ../../../src/ui.cpp:2184
msgid "Recipient is not accepting transactions sent by IP address"
msgstr "Gavėjas nepriima pervedimų siunčiamų iš IP adresų"
#: ../../../src/ui.cpp:2186
msgid "Transfer was not accepted"
msgstr "Persiuntimas nepriimtas"
#: ../../../src/ui.cpp:2195
msgid "Invalid response received"
msgstr "Gautas klaidingas atsakymas"
#: ../../../src/ui.cpp:2210
msgid "Creating transaction..."
msgstr "Kuriamas pervedimas..."
#: ../../../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 "Šis pervedimas reikalauja %s mokesčio dėl jo sumos, sudėtingumo arba dėl to, kad šie pinigai buvo neseniai gauti"
#: ../../../src/ui.cpp:2224
msgid "Transaction creation failed"
msgstr "Pervedimo sukurti nepavyko"
#: ../../../src/ui.cpp:2231
msgid "Transaction aborted"
msgstr "Pervedimas nutrauktas"
#: ../../../src/ui.cpp:2239
msgid "Lost connection, transaction cancelled"
msgstr "Prarastas ryšys, pervedimas nutrauktas"
#: ../../../src/ui.cpp:2255
msgid "Sending payment..."
msgstr "Monetos siunčiamos..."
#: ../../../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 "Pervedimas buvo atmestas. Tai galėjo atsitikti jei dalis jūsų monetų jau buvo išleista. Pvz.: Jei nodojote kopija wallet.dat kitame kliente ir monetos buvo išleistos ten, bet nepažymėtos kaip išleistos čia."
#: ../../../src/ui.cpp:2270
msgid "Waiting for confirmation..."
msgstr "Laukia patvirtinimo..."
#: ../../../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 ""
"Pervedimas išsiūstas, bet gavėjas negalėjo jo patvirtinti.\n"
"Pervedimas įrašytas ir suma bus kredituojama gavėjui,\n"
"bet komentaro informacija nebus rodoma."
#: ../../../src/ui.cpp:2297
msgid "Payment was sent, but an invalid response was received"
msgstr "Pervedimas išsiūstas, bet klaidingas atsakymas gautas"
#: ../../../src/ui.cpp:2303
msgid "Payment completed"
msgstr "Pervedimas pavyko"
#: ../../../src/ui.cpp:2334
#: ../../../src/ui.cpp:2480
#: ../../../src/ui.cpp:2517
msgid "Name"
msgstr "Vardas"
#: ../../../src/ui.cpp:2335
#: ../../../src/ui.cpp:2480
#: ../../../src/ui.cpp:2517
msgid "Address"
msgstr "Adresas"
#: ../../../src/ui.cpp:2337
#: ../../../src/ui.cpp:2492
msgid "Label"
msgstr "Pavadinimas"
#: ../../../src/ui.cpp:2338
#: ../../../src/uibase.cpp:837
msgid "Bitcoin Address"
msgstr "Bitcoin Adresas"
#: ../../../src/ui.cpp:2462
msgid "This is one of your own addresses for receiving payments and cannot be entered in the address book. "
msgstr "Tai vienas iš jūsų adresų priimti pervedimams ir negali būti įvestas i adresų knygą"
#: ../../../src/ui.cpp:2480
#: ../../../src/ui.cpp:2486
msgid "Edit Address"
msgstr "Pakeisti Adresą"
#: ../../../src/ui.cpp:2492
msgid "Edit Address Label"
msgstr "Pakeisti adreso pavadinimą"
#: ../../../src/ui.cpp:2517
#: ../../../src/ui.cpp:2523
msgid "Add Address"
msgstr "Pridėti adresą"
#: ../../../src/ui.cpp:2600
msgid "Bitcoin"
msgstr "Bitcoin"
#: ../../../src/ui.cpp:2602
msgid "Bitcoin - Generating"
msgstr "Bitcoin - Generuoja"
#: ../../../src/ui.cpp:2604
msgid "Bitcoin - (not connected)"
msgstr "Bitcoin - (neprijungta)"
#: ../../../src/ui.cpp:2683
msgid "&Open Bitcoin"
msgstr "&Atidaryti Bitcoin"
#: ../../../src/ui.cpp:2684
#, fuzzy
msgid "&Send Bitcoins"
msgstr "&Atidaryti Bitcoin"
#: ../../../src/ui.cpp:2685
msgid "O&ptions..."
msgstr "P&arametrai..."
#: ../../../src/ui.cpp:2688
#: ../../../src/uibase.cpp:25
msgid "E&xit"
msgstr "&Išeiti"
#: ../../../src/ui.cpp:2904
msgid "Program has crashed and will terminate. "
msgstr "Programa neveikia ir bus uždaryta"
#: ../../../src/main.cpp:1866
msgid "Warning: Disk space is low "
msgstr "Perspėjimas: Diske trūksta vietos"
#: ../../../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 "Klaida: Šis pervedimas reikalauja %s mokesčio dėl jo sumos, sudėtingumo arba dėl to, kad šie pinigai buvo neseniai gauti "
#: ../../../src/main.cpp:3992
msgid "Error: Transaction creation failed "
msgstr "Klaida: Pervedimo sukurti nepavyko "
#: ../../../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 "Klaida: Pervedimas nepavyko. Tai galėjo atsitikti jei dalis jūsų monetų jau buvo išleista. Pvz.: Jei nodojote kopija wallet.dat kitame kliente ir monetos buvo išleistos ten, bet nepažymėtos kaip išleistos čia."
#: ../../../src/main.cpp:4014
msgid "Invalid amount"
msgstr "Neteisinga suma"
#: ../../../src/main.cpp:4021
msgid "Invalid bitcoin address"
msgstr "Klaidingas bitcoin adresas"
#: ../../../src/rpc.cpp:1802
#: ../../../src/rpc.cpp:1804
#, c-format
msgid "To use the %s option"
msgstr "Kad naudoti %s parametrą"
#: ../../../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 ""
"Perspėjimas: %s, jūs privalote nustatyti rpcpassword=<slaptažodis>\n"
"Konfiguracijos faile: %s\n"
"Jei failas neegzistuoja, sukurkite jį su owner-readable-only failo teisėmis.\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 ""
"Jūs privalote nustatyti rpcpassword=<slaptažodis> Konfiguracijos faile:\n"
"%s\n"
"Jei failas neegzistuoja, sukurkite jį su owner-readable-only failo teisėm."
#: ../../../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 "Perspėjimas: Prašome patikrinti kompiuterio laiką ir datą. Jei laikas neteisingai nustatytas, Bitcoin neveiks."
#: ../../../src/util.cpp:899
msgid "beta"
msgstr "beta"
#: ../../../src/uibase.cpp:28
msgid "&File"
msgstr "&Byla"
#: ../../../src/uibase.cpp:32
msgid "&Your Receiving Addresses..."
msgstr "&Jūsų priimantys adresai..."
#: ../../../src/uibase.cpp:36
msgid "&Options..."
msgstr "&Parametrai"
#: ../../../src/uibase.cpp:39
msgid "&Settings"
msgstr "N&ustatymai"
#: ../../../src/uibase.cpp:43
msgid "&About..."
msgstr "&О Apie..."
#: ../../../src/uibase.cpp:46
msgid "&Help"
msgstr "&Pagalba"
#: ../../../src/uibase.cpp:56
msgid "Address Book"
msgstr "Adresų knyga"
#: ../../../src/uibase.cpp:69
msgid "Your Bitcoin Address:"
msgstr "Jūsų Bitcoin Adresas:"
#: ../../../src/uibase.cpp:76
msgid " &New... "
msgstr " &Naujas... "
#: ../../../src/uibase.cpp:79
#: ../../../src/uibase.cpp:780
#: ../../../src/uibase.cpp:883
msgid " &Copy to Clipboard "
msgstr "&Kopijuoti"
#: ../../../src/uibase.cpp:93
msgid "Balance:"
msgstr "Balansas:"
#: ../../../src/uibase.cpp:109
msgid " All"
msgstr "Visi"
#: ../../../src/uibase.cpp:109
msgid " Sent"
msgstr "Išsiūsta"
#: ../../../src/uibase.cpp:109
msgid " Received"
msgstr "Priimta"
#: ../../../src/uibase.cpp:109
msgid " In Progress"
msgstr "Progrese"
#: ../../../src/uibase.cpp:130
msgid "All Transactions"
msgstr "Visi pervedimai"
#: ../../../src/uibase.cpp:141
msgid "Sent/Received"
msgstr "Išsiųsti/Priimti"
#: ../../../src/uibase.cpp:152
msgid "Sent"
msgstr "Išsiūsti"
#: ../../../src/uibase.cpp:163
msgid "Received"
msgstr "Priimti"
#: ../../../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 "Gerai"
#: ../../../src/uibase.cpp:345
msgid "&Start Bitcoin on system startup"
msgstr "&Paleisti Bitcoin kai pasileidžia operacinė sistema"
#: ../../../src/uibase.cpp:348
msgid "&Minimize to the tray instead of the taskbar"
msgstr "&Sumažinti į \"tray\" vietoj \"taskbar\""
#: ../../../src/uibase.cpp:351
msgid "Map port using &UPnP"
msgstr "Peradresuoti porta naudojant &UPnP"
#: ../../../src/uibase.cpp:354
msgid "M&inimize to the tray on close"
msgstr "Su&mažinti į \"tray\" kai uždaroma"
#: ../../../src/uibase.cpp:360
msgid "&Connect through socks4 proxy: "
msgstr "&Prisijungti per socks4 proksį: "
#: ../../../src/uibase.cpp:371
msgid "Proxy &IP:"
msgstr "P&roksio IP:"
#: ../../../src/uibase.cpp:379
msgid " &Port:"
msgstr " &Portas"
#: ../../../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 "Pasirintinis pervedimo mokestis per KB, kuris padeda jį ivykdyti greičiau. Dauguma pervedimų yra 1KB. Rekomencuojamas mokestis 0.01."
#: ../../../src/uibase.cpp:399
#, fuzzy
msgid "Pay transaction fee:"
msgstr "Pervedimo mokestis:"
#: ../../../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 "Nutraukti"
#: ../../../src/uibase.cpp:449
msgid "&Apply"
msgstr "&Nustatyti"
#: ../../../src/uibase.cpp:508
msgid "Bitcoin "
msgstr "Bitcoin "
#: ../../../src/uibase.cpp:514
msgid "version"
msgstr "versija"
#: ../../../src/uibase.cpp:525
#, fuzzy
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 ""
"Autorinė teisė (c) 2009-2010 Bitcoin Developers\n"
"\n"
"Ši programa yra eksperimentinė.\n"
"\n"
"Išleista ir teisės saugomos pagal MIT/X11 programų licenziją, kuri detaliau aprašyra faile \n"
"license.txt ir http://www.opensource.org/licenses/mit-license.php.\n"
"\n"
"Šis produktas turi programą iš OpenSSL projekto, kuri naudojamas \n"
"OpenSSL Toolkit (http://www.openssl.org/), kriptografinę programą parašyta \n"
"Eric Young (eay@cryptsoft.com) ir UPnP programą parašyta Thomas Bernard."
#: ../../../src/uibase.cpp:581
msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
msgstr "Įveskite Bitcoin adresą (pvz.: 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
#: ../../../src/uibase.cpp:595
msgid "Pay &To:"
msgstr "&Kam:"
#: ../../../src/uibase.cpp:610
msgid "&Paste"
msgstr "&Įrašyti"
#: ../../../src/uibase.cpp:613
msgid " Address &Book..."
msgstr " &Adresų knyga..."
#: ../../../src/uibase.cpp:620
msgid "&Amount:"
msgstr "S&uma:"
#: ../../../src/uibase.cpp:630
msgid "T&ransfer:"
msgstr "&Pervedimas:"
#: ../../../src/uibase.cpp:636
msgid " Standard"
msgstr "Standartinis"
#: ../../../src/uibase.cpp:663
msgid "&Send"
msgstr "&Siūsti"
#: ../../../src/uibase.cpp:711
msgid ""
"\n"
"\n"
"Connecting..."
msgstr ""
"\n"
"\n"
"Jungiasi..."
#: ../../../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 "Tai yra jūsų Bitcoin adresai priimti pervedimus. Galite duoti skirtinga adresa kiekvienam siuntėjui, kad žinotumėte kas jums moka. Pažymėtas adresas bus rodomas pagrindiniame lange."
#: ../../../src/uibase.cpp:774
#: ../../../src/uibase.cpp:886
msgid "&Edit..."
msgstr "&Pakeisti..."
#: ../../../src/uibase.cpp:777
#: ../../../src/uibase.cpp:889
msgid " &New Address... "
msgstr " &Naujas Adresas... "
#: ../../../src/uibase.cpp:849
msgid "Sending"
msgstr "Siunčiama"
#: ../../../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 "Tai yra jūsų Bitcoin adresai priimti pervedimus. Galite duoti skirtinga adresa kiekvienam siuntėjui, kad žinotumėte kas jums moka. Pažymėtas adresas bus rodomas pagrindiniame lange."
#: ../../../src/uibase.cpp:870
msgid "Receiving"
msgstr "Priėmimo"
#: ../../../src/uibase.cpp:880
msgid "&Delete"
msgstr "&Ištrinti"
#: ../../../src/init.cpp:142
msgid "Bitcoin version"
msgstr "Bitcoin version"
#: ../../../src/init.cpp:143
msgid "Usage:"
msgstr "Komandų vartojimas:"
#: ../../../src/init.cpp:145
msgid "Send command to -server or bitcoind\n"
msgstr "Siūsti komandą i -server arba bitcoind\n"
#: ../../../src/init.cpp:146
msgid "List commands\n"
msgstr "Parodyti visas komandas\n"
#: ../../../src/init.cpp:147
msgid "Get help for a command\n"
msgstr "Komandos paaiškinimas\n"
#: ../../../src/init.cpp:148
msgid "Options:\n"
msgstr "Parametrai\n"
#: ../../../src/init.cpp:149
msgid "Specify configuration file (default: bitcoin.conf)\n"
msgstr "Nurodyti konfiguracijos failą (pagal nutylėjimą: bitcoin.conf)\n"
#: ../../../src/init.cpp:150
#, fuzzy
msgid "Specify pid file (default: bitcoind.pid)\n"
msgstr "Nurodyti konfiguracijos failą (pagal nutylėjimą: bitcoin.conf)\n"
#: ../../../src/init.cpp:151
msgid "Generate coins\n"
msgstr "Generuoti monetas\n"
#: ../../../src/init.cpp:152
msgid "Don't generate coins\n"
msgstr "Negeneruoti monetų\n"
#: ../../../src/init.cpp:153
msgid "Start minimized\n"
msgstr "Paleisti minimizuotą klientą\n"
#: ../../../src/init.cpp:154
msgid "Specify data directory\n"
msgstr "Nurodyti duomenų direktoriją\n"
#: ../../../src/init.cpp:155
msgid "Connect through socks4 proxy\n"
msgstr "Prisijungti per socks4 proksį\n"
#: ../../../src/init.cpp:156
msgid "Allow DNS lookups for addnode and connect\n"
msgstr "Leisti DNS lookups addnode ir connect komandoms\n"
#: ../../../src/init.cpp:157
msgid "Add a node to connect to\n"
msgstr "Pridėti nodą prie kurio bus jungiamasi\n"
#: ../../../src/init.cpp:158
msgid "Connect only to the specified node\n"
msgstr "Prisijungti tik prie šio nodo\n"
#: ../../../src/init.cpp:159
msgid "Don't accept connections from outside\n"
msgstr "Neleisti prisijungti iš išorės\n"
#: ../../../src/init.cpp:162
msgid "Don't attempt to use UPnP to map the listening port\n"
msgstr "Nenaudoti UPnP klausančio porto peradresavimui\n"
#: ../../../src/init.cpp:164
msgid "Attempt to use UPnP to map the listening port\n"
msgstr "Pamėginti naudoti UPnP klausančio porto peradresavimui\n"
#: ../../../src/init.cpp:167
msgid "Fee per KB to add to transactions you send\n"
msgstr "Mokestis per KB pridedamas prie siunčiamo pervedimo\n"
#: ../../../src/init.cpp:169
msgid "Accept command line and JSON-RPC commands\n"
msgstr "Priimti komandas iš terminalo ir JSON-RPC\n"
#: ../../../src/init.cpp:172
msgid "Run in the background as a daemon and accept commands\n"
msgstr "Paleisti daemon\n"
#: ../../../src/init.cpp:174
msgid "Use the test network\n"
msgstr "Naudoti bandomajį tinklą\n"
#: ../../../src/init.cpp:175
msgid "Username for JSON-RPC connections\n"
msgstr "Naudotojo vardas JSON-RPC prisijungimui\n"
#: ../../../src/init.cpp:176
msgid "Password for JSON-RPC connections\n"
msgstr "Slaptažodis JSON-RPC prisijungimui\n"
#: ../../../src/init.cpp:177
msgid "Listen for JSON-RPC connections on <port> (default: 8332)\n"
msgstr "Klausyti JSON-RPC prisijungimų ant <port> (pagal nutylėjimą: 8332)\n"
#: ../../../src/init.cpp:178
msgid "Allow JSON-RPC connections from specified IP address\n"
msgstr "Leisti JSON-RPC prisijungimą iš tam tikrų IP adresų\n"
#: ../../../src/init.cpp:179
msgid "Send commands to node running on <ip> (default: 127.0.0.1)\n"
msgstr "Siūsti komandas į nodą kuris yra <ip> (pagal nutylėjimą: 127.0.0.1)\n"
#: ../../../src/init.cpp:180
msgid "Set key pool size to <n> (default: 100)\n"
msgstr "Nustatyti kiek raktų skaičių <n> (pagal nutylėjimą: 100)\n"
#: ../../../src/init.cpp:181
msgid "Rescan the block chain for missing wallet transactions\n"
msgstr "Perskanuoti blokų grandinę dėl trūkstamų pervedimų\n"
#: ../../../src/init.cpp:185
msgid ""
"\n"
"SSL options: (see the Bitcoin Wiki for SSL setup instructions)\n"
msgstr ""
"\n"
"SSL parametrai: (aplankykite Bitcoin Wiki dėl SSL nustatymų)\n"
#: ../../../src/init.cpp:186
msgid "Use OpenSSL (https) for JSON-RPC connections\n"
msgstr "Naudoti OpenSSL (https) JSON-RPC prisijungimui\n"
#: ../../../src/init.cpp:187
msgid "Server certificate file (default: server.cert)\n"
msgstr "Serverio sertifikato failas (pagal nutylėjimą: server.cert)\n"
#: ../../../src/init.cpp:188
msgid "Server private key (default: server.pem)\n"
msgstr "Serverio privatus raktas (pagal nutylėjimą: server.pem)\n"
#: ../../../src/init.cpp:189
msgid "Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
msgstr "Priimtinas šifras (pagal nutylėjimą: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
#: ../../../src/init.cpp:193
msgid "This help message\n"
msgstr "Ši pagalbos žinutė\n"
#: ../../../src/init.cpp:330
#, c-format
msgid "Cannot obtain a lock on data directory %s. Bitcoin is probably already running."
msgstr "Neranda duomenų directorijos %s. Bitcoin programa tikriausiai jau paleista."
#: ../../../src/init.cpp:356
msgid "Error loading addr.dat \n"
msgstr "Klaida nuskaitant addr.dat \n"
#: ../../../src/init.cpp:362
msgid "Error loading blkindex.dat \n"
msgstr "Klaida nuskaitant blkindex.dat \n"
#: ../../../src/init.cpp:369
msgid "Error loading wallet.dat \n"
msgstr "Klaida nuskaitant wallet.dat \n"
#: ../../../src/init.cpp:449
msgid "Invalid -proxy address"
msgstr "Klaidingas -proxy adresas"
#: ../../../src/init.cpp:472
msgid "Invalid amount for -paytxfee=<amount>"
msgstr "Klaidinga suma -paytxfee=<amount>"
#: ../../../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 "Perspėjimas: -paytxfee yra nustatyta labai aukšta suma. Ši suma bus nuskaičiuota kaip mokestis darant pervedimą"
#: ../../../src/uibase.h:147
msgid "Transaction Details"
msgstr "Pervedimų detalės"
#: ../../../src/uibase.h:199
msgid "Options"
msgstr "Parametrai"
#: ../../../src/uibase.h:228
msgid "About Bitcoin"
msgstr "Apie Bitcoin"
#: ../../../src/uibase.h:337
msgid "Your Bitcoin Addresses"
msgstr "Jūsų Bitcoin Adresas"

Binary file not shown.

View File

@@ -1,973 +0,0 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-15 18:23+0100\n"
"PO-Revision-Date: 2011-05-15 18:23+0100\n"
"Last-Translator: Pieter Wuille <sipa@ulyssis.org>\n"
"Language-Team: \n"
"Language: \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:1499
#, c-format
msgid "Unable to bind to port %d on this computer. Bitcoin is probably already running."
msgstr "Kan niet binden met poort %d op deze computer. Bitcoin draait vermoedelijk reeds."
#: ../../../src/ui.cpp:202
#, 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 "Deze transactie overschrijdt de limiet. Om de transactie alsnog te verwerken kun je een fooi betalen van %s. Deze zal betaald worden aan de node die uw transactie verwerkt. Wil je doorgaan en deze fooi betalen?"
#: ../../../src/ui.cpp:301
msgid "Status"
msgstr "Status"
#: ../../../src/ui.cpp:302
msgid "Date"
msgstr "Datum"
#: ../../../src/ui.cpp:303
msgid "Description"
msgstr "Beschrijving"
#: ../../../src/ui.cpp:304
msgid "Debit"
msgstr "Debet"
#: ../../../src/ui.cpp:305
msgid "Credit"
msgstr "Credit"
#: ../../../src/ui.cpp:511
#, c-format
msgid "Open for %d blocks"
msgstr "Open gedurende %d blokken"
#: ../../../src/ui.cpp:513
#, c-format
msgid "Open until %s"
msgstr "Open tot %s"
#: ../../../src/ui.cpp:519
#, c-format
msgid "%d/offline?"
msgstr "%d/offline?"
#: ../../../src/ui.cpp:521
#, c-format
msgid "%d/unconfirmed"
msgstr "%d/niet bevestigd"
#: ../../../src/ui.cpp:523
#, c-format
msgid "%d confirmations"
msgstr "%d bevestigingen"
#: ../../../src/ui.cpp:608
msgid "Generated"
msgstr "Gegenereerd"
#: ../../../src/ui.cpp:616
#, c-format
msgid "Generated (%s matures in %d more blocks)"
msgstr "Gegenereerd (%s wordt volwassen over %d blokken)"
#: ../../../src/ui.cpp:620
msgid "Generated - Warning: This block was not received by any other nodes and will probably not be accepted!"
msgstr "Gegenereerd - Waarschuwing: Dit blok is niet ontvangen door andere nodes en zal waarschijnlijk niet geaccepteerd worden!"
#: ../../../src/ui.cpp:624
msgid "Generated (not accepted)"
msgstr "Gegenereerd (niet geaccepteerd)"
#: ../../../src/ui.cpp:634
msgid "From: "
msgstr "Van: "
#: ../../../src/ui.cpp:658
msgid "Received with: "
msgstr "Ontvangen op: "
#: ../../../src/ui.cpp:704
msgid "Payment to yourself"
msgstr "Betaling aan uzelf"
#: ../../../src/ui.cpp:738
msgid "To: "
msgstr "Naar: "
#: ../../../src/ui.cpp:1053
msgid " Generating"
msgstr " Genereren..."
#: ../../../src/ui.cpp:1055
msgid "(not connected)"
msgstr "(niet verbonden)"
#: ../../../src/ui.cpp:1058
#, c-format
msgid " %d connections %d blocks %d transactions"
msgstr " %d verbindingen %d blokken %d transacties"
#: ../../../src/ui.cpp:1163
#: ../../../src/ui.cpp:2527
msgid "New Receiving Address"
msgstr "Nieuw Ontvangstadres"
#: ../../../src/ui.cpp:1164
#: ../../../src/ui.cpp:2528
msgid ""
"You should use a new address for each payment you receive.\n"
"\n"
"Label"
msgstr ""
"Het is een goede gewoonte om voor iedere betaling die je ontvangt een nieuw adres te gebruiken.\n"
"\n"
"Label"
#: ../../../src/ui.cpp:1233
msgid "<b>Status:</b> "
msgstr "<b>Status:</b> "
#: ../../../src/ui.cpp:1238
msgid ", has not been successfully broadcast yet"
msgstr ", is nog niet succesvol verstuurd naar het netwerk"
#: ../../../src/ui.cpp:1240
#, c-format
msgid ", broadcast through %d node"
msgstr ", verstuurd via %d node"
#: ../../../src/ui.cpp:1242
#, c-format
msgid ", broadcast through %d nodes"
msgstr ", verstuurd via %d nodes"
#: ../../../src/ui.cpp:1246
msgid "<b>Date:</b> "
msgstr "<b>Datum:</b> "
#: ../../../src/ui.cpp:1254
msgid "<b>Source:</b> Generated<br>"
msgstr "<b>Bron:</b> Gegenereerd<br>"
#: ../../../src/ui.cpp:1260
#: ../../../src/ui.cpp:1278
msgid "<b>From:</b> "
msgstr "<b>Van:</b> "
#: ../../../src/ui.cpp:1278
msgid "unknown"
msgstr "onbekend"
#: ../../../src/ui.cpp:1279
#: ../../../src/ui.cpp:1303
#: ../../../src/ui.cpp:1362
msgid "<b>To:</b> "
msgstr "<b>Naar:</b> "
#: ../../../src/ui.cpp:1282
msgid " (yours, label: "
msgstr " (van jou, label: "
#: ../../../src/ui.cpp:1284
msgid " (yours)"
msgstr " (van jou)"
#: ../../../src/ui.cpp:1321
#: ../../../src/ui.cpp:1333
#: ../../../src/ui.cpp:1379
#: ../../../src/ui.cpp:1396
msgid "<b>Credit:</b> "
msgstr "<b>Credit:</b>"
#: ../../../src/ui.cpp:1323
#, c-format
msgid "(%s matures in %d more blocks)"
msgstr "(%s wordt volwassen over %d blokken)"
#: ../../../src/ui.cpp:1325
msgid "(not accepted)"
msgstr "(niet geaccepteerd)"
#: ../../../src/ui.cpp:1370
#: ../../../src/ui.cpp:1378
#: ../../../src/ui.cpp:1393
msgid "<b>Debit:</b> "
msgstr "<b>Debet:</b>"
#: ../../../src/ui.cpp:1384
msgid "<b>Transaction fee:</b> "
msgstr "<b>Transactiefooi:</b> "
#: ../../../src/ui.cpp:1400
msgid "<b>Net amount:</b> "
msgstr "<b>Nettobedrag:</b> "
#: ../../../src/ui.cpp:1407
msgid "Message:"
msgstr "Mededeling:"
#: ../../../src/ui.cpp:1409
msgid "Comment:"
msgstr "Commentaar:"
#: ../../../src/ui.cpp:1412
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 "Gegenereerde coins mogen pas na een wachttijd van 120 blokken uitgegeven worden. Op het moment dat dit blok gegenereerd werd, is het naar het netwerk verzonden om aan de blokkenreeks toegevoegd te worden. Als het niet succesvol in de blokkenreeks opgenomen kan worden verandert de status in \"niet geaccepteerd\" en kan het niet uitegegeven worden. Dit kan soms gebeuren als een andere node op ongeveer hetzelfde moment een blok genereert."
#: ../../../src/ui.cpp:1592
msgid "Cannot write autostart/bitcoin.desktop file"
msgstr "Kan niet schrijven naar het bestand autostart/bitcoin.desktop"
#: ../../../src/ui.cpp:1628
msgid "Main"
msgstr "Algemeen"
#: ../../../src/ui.cpp:1636
msgid "&Start Bitcoin on window system startup"
msgstr "&Start Bitcoin wanneer het systeem opstart"
#: ../../../src/ui.cpp:1643
msgid "&Minimize on close"
msgstr "&Minimaliseer bij sluiten van het venster"
#: ../../../src/ui.cpp:1785
#, c-format
msgid "version %s"
msgstr "versie %s"
#: ../../../src/ui.cpp:1897
msgid "Error in amount "
msgstr "Fout in hoeveelheid "
#: ../../../src/ui.cpp:1897
#: ../../../src/ui.cpp:1902
#: ../../../src/ui.cpp:1907
#: ../../../src/ui.cpp:1942
#: ../../../src/uibase.cpp:55
msgid "Send Coins"
msgstr "Verstuur coins"
#: ../../../src/ui.cpp:1902
msgid "Amount exceeds your balance "
msgstr "Hoeveelheid overschrijdt uw huidige balans "
#: ../../../src/ui.cpp:1907
msgid "Total exceeds your balance when the "
msgstr "Totaal overschrijdt uw huidige balans wanneer de "
#: ../../../src/ui.cpp:1907
msgid " transaction fee is included "
msgstr " transactiefooi is meegerekend "
#: ../../../src/ui.cpp:1925
msgid "Payment sent "
msgstr "Betaling verzonden "
#: ../../../src/ui.cpp:1925
#: ../../../src/ui.cpp:1930
#: ../../../src/ui.cpp:2074
#: ../../../src/ui.cpp:2227
#: ../../../src/main.cpp:3999
msgid "Sending..."
msgstr "Versturen..."
#: ../../../src/ui.cpp:1942
msgid "Invalid address "
msgstr "Foutief adres "
#: ../../../src/ui.cpp:1995
#, c-format
msgid "Sending %s to %s"
msgstr "%s versturen naar %s"
#: ../../../src/ui.cpp:2068
#: ../../../src/ui.cpp:2101
msgid "CANCELLED"
msgstr "GEANNULEERD"
#: ../../../src/ui.cpp:2072
msgid "Cancelled"
msgstr "Geannuleerd"
#: ../../../src/ui.cpp:2074
msgid "Transfer cancelled "
msgstr "Transactie geannuleerd "
#: ../../../src/ui.cpp:2127
msgid "Error: "
msgstr "Fout: "
#: ../../../src/ui.cpp:2141
#: ../../../src/ui.cpp:2212
#: ../../../src/main.cpp:4018
msgid "Insufficient funds"
msgstr "Onvoldoende saldo"
#: ../../../src/ui.cpp:2146
msgid "Connecting..."
msgstr "Verbinden..."
#: ../../../src/ui.cpp:2151
msgid "Unable to connect"
msgstr "Kan niet verbinden"
#: ../../../src/ui.cpp:2156
msgid "Requesting public key..."
msgstr "Aanvragen van publieke sleutel..."
#: ../../../src/ui.cpp:2168
msgid "Received public key..."
msgstr "Publieke sleutel ontvangen..."
#: ../../../src/ui.cpp:2182
msgid "Recipient is not accepting transactions sent by IP address"
msgstr "Ontvanger aanvaardt geen transacties via IP adres"
#: ../../../src/ui.cpp:2184
msgid "Transfer was not accepted"
msgstr "Transactie niet geaccepteerd"
#: ../../../src/ui.cpp:2193
msgid "Invalid response received"
msgstr "Foutief antwoord ontvangen"
#: ../../../src/ui.cpp:2208
msgid "Creating transaction..."
msgstr "Transactie aanmaken..."
#: ../../../src/ui.cpp:2220
#, 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 "Deze transactie vergt een fooi van ten minste %s omwille van zijn bedrag, complexiteit, of gebruik van recent ontvangen fonden"
#: ../../../src/ui.cpp:2222
msgid "Transaction creation failed"
msgstr "Aanmaken van transactie mislukt"
#: ../../../src/ui.cpp:2229
msgid "Transaction aborted"
msgstr "Transactie geannuleerd"
#: ../../../src/ui.cpp:2237
msgid "Lost connection, transaction cancelled"
msgstr "Verbinding verloren, transactie geannuleerd"
#: ../../../src/ui.cpp:2253
msgid "Sending payment..."
msgstr "Betaling versturen..."
#: ../../../src/ui.cpp:2259
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 "Fout: De transactie is afgekeurd. Dit kan gebeuren als bepaalde coins in je Portefeuille al zijn uitgegeven. Dit kan veroorzaakt worden doordat je een kopie van wallet.dat gebruikt hebt en enkel daar je uitgave geregistreerd is."
#: ../../../src/ui.cpp:2268
msgid "Waiting for confirmation..."
msgstr "Wachten op bevestiging..."
#: ../../../src/ui.cpp:2286
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 ""
"De betaling is verstuurd, maar de ontvanger kon hem niet verifiëren.\n"
"De transactie is opgenomen en wordt uitbetaald aan de ontvanger,\n"
"maar het mededelings-veld blijft blanco."
#: ../../../src/ui.cpp:2295
msgid "Payment was sent, but an invalid response was received"
msgstr "Betaling is verstuurd, maar een foutief antword is ontvangen."
#: ../../../src/ui.cpp:2301
msgid "Payment completed"
msgstr "Betaling voltooid"
#: ../../../src/ui.cpp:2332
#: ../../../src/ui.cpp:2478
#: ../../../src/ui.cpp:2515
msgid "Name"
msgstr "Naam"
#: ../../../src/ui.cpp:2333
#: ../../../src/ui.cpp:2478
#: ../../../src/ui.cpp:2515
msgid "Address"
msgstr "Adres"
#: ../../../src/ui.cpp:2335
#: ../../../src/ui.cpp:2490
msgid "Label"
msgstr "Label"
#: ../../../src/ui.cpp:2336
#: ../../../src/uibase.cpp:837
msgid "Bitcoin Address"
msgstr "Bitcoin-adres"
#: ../../../src/ui.cpp:2460
msgid "This is one of your own addresses for receiving payments and cannot be entered in the address book. "
msgstr "Dit is een van uw eigen adressen voor het ontvangen van betalingen, en kan niet worden toegevoegd aan uw adresboek. "
#: ../../../src/ui.cpp:2478
#: ../../../src/ui.cpp:2484
msgid "Edit Address"
msgstr "Bewerk adres"
#: ../../../src/ui.cpp:2490
msgid "Edit Address Label"
msgstr "Bewerk adreslabel"
#: ../../../src/ui.cpp:2515
#: ../../../src/ui.cpp:2521
msgid "Add Address"
msgstr "Adres toevoegen"
#: ../../../src/ui.cpp:2598
msgid "Bitcoin"
msgstr "Bitcoin"
#: ../../../src/ui.cpp:2600
msgid "Bitcoin - Generating"
msgstr "Bitcoin - Genereren..."
#: ../../../src/ui.cpp:2602
msgid "Bitcoin - (not connected)"
msgstr "Bitcoin - (niet verbonden)"
#: ../../../src/ui.cpp:2681
msgid "&Open Bitcoin"
msgstr "&Open Bitcoin"
#: ../../../src/ui.cpp:2682
msgid "&Send Bitcoins"
msgstr "&Open Bitcoin"
#: ../../../src/ui.cpp:2683
msgid "O&ptions..."
msgstr "O&pties"
#: ../../../src/ui.cpp:2686
#: ../../../src/uibase.cpp:25
msgid "E&xit"
msgstr "A&fsluiten"
#: ../../../src/ui.cpp:2902
msgid "Program has crashed and will terminate. "
msgstr "Het programma is gecrasht en wordt afgesloten. "
#: ../../../src/main.cpp:1868
msgid "Warning: Disk space is low "
msgstr "Waarschuwing: Weinig schijfruimte over "
#: ../../../src/main.cpp:3992
#, 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 "Fout: Deze transactie vergt een fooi van ten minste %s omwille van zijn bedrag, complexiteit, of gebruik van recent ontvangen fonden "
#: ../../../src/main.cpp:3994
msgid "Error: Transaction creation failed "
msgstr "Fout: Aanmaken van transactie mislukt "
#: ../../../src/main.cpp:4003
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 "Fout: De transactie is afgekeurd. Dit kan gebeuren als bepaalde coins in je Portefeuille al zijn uitgegeven. Dit kan veroorzaakt worden doordat je een kopie van wallet.dat gebruikt hebt en enkel daar je uitgave geregistreerd is."
#: ../../../src/main.cpp:4016
msgid "Invalid amount"
msgstr "Foutieve hoeveelheid"
#: ../../../src/main.cpp:4023
msgid "Invalid bitcoin address"
msgstr "Foutief bitcoin-adres"
#: ../../../src/rpc.cpp:1800
#: ../../../src/rpc.cpp:1802
#, c-format
msgid "To use the %s option"
msgstr "Om de %s optie te gebruiken"
#: ../../../src/rpc.cpp:1804
#, 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 ""
"Waarschuwing: %s, rpcpassword=<password> moet ingesteld zijn\n"
"in het configuratie bestand: %s\n"
"Als het bestand nog niet bestaat, maak het dan aan met enkel-leesbaar-door-eigenaar rechten.\n"
#: ../../../src/rpc.cpp:1972
#, 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 ""
"rpcpassword=<password> moet ingesteld in het configuratie bestand:\n"
"%s\n"
"Als het bestand nog niet bestaat, maak het dan aan met enkel-leesbaar-door-eigenaar rechten."
#: ../../../src/util.cpp:865
msgid "Warning: Please check that your computer's date and time are correct. If your clock is wrong Bitcoin will not work properly."
msgstr "Waarschuwing: Controleer of uw computers datum en tijd correct ingesteld zijn. Als uw klok fout staat zal Bitcoin niet correct werken."
#: ../../../src/util.cpp:898
msgid "beta"
msgstr "beta"
#: ../../../src/uibase.cpp:28
msgid "&File"
msgstr "&Bestand"
#: ../../../src/uibase.cpp:32
msgid "&Your Receiving Addresses..."
msgstr "&Uw ontvangstadressen..."
#: ../../../src/uibase.cpp:36
msgid "&Options..."
msgstr "&Opties..."
#: ../../../src/uibase.cpp:39
msgid "&Settings"
msgstr "&Eigenschappen"
#: ../../../src/uibase.cpp:43
msgid "&About..."
msgstr "&Over..."
#: ../../../src/uibase.cpp:46
msgid "&Help"
msgstr "&Help"
#: ../../../src/uibase.cpp:56
msgid "Address Book"
msgstr "Adresboek"
#: ../../../src/uibase.cpp:69
msgid "Your Bitcoin Address:"
msgstr "Uw bitcoin-adres:"
#: ../../../src/uibase.cpp:76
msgid " &New... "
msgstr " &Nieuw... "
#: ../../../src/uibase.cpp:79
#: ../../../src/uibase.cpp:780
#: ../../../src/uibase.cpp:883
msgid " &Copy to Clipboard "
msgstr " &Kopieer naar plakbord "
#: ../../../src/uibase.cpp:93
msgid "Balance:"
msgstr "Balans:"
#: ../../../src/uibase.cpp:109
msgid " All"
msgstr " Alles"
#: ../../../src/uibase.cpp:109
msgid " Sent"
msgstr " Verstuurd"
#: ../../../src/uibase.cpp:109
msgid " Received"
msgstr " Ontvangen"
#: ../../../src/uibase.cpp:109
msgid " In Progress"
msgstr " Wordt verwerkt"
#: ../../../src/uibase.cpp:130
msgid "All Transactions"
msgstr "Alle transacties"
#: ../../../src/uibase.cpp:141
msgid "Sent/Received"
msgstr "Verstuurd/Ontvangen"
#: ../../../src/uibase.cpp:152
msgid "Sent"
msgstr "Verstuurd"
#: ../../../src/uibase.cpp:163
msgid "Received"
msgstr "Ontvangen"
#: ../../../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 "OK"
#: ../../../src/uibase.cpp:345
msgid "&Start Bitcoin on system startup"
msgstr "&Start Bitcoin wanneer het systeem opstart"
#: ../../../src/uibase.cpp:348
msgid "&Minimize to the tray instead of the taskbar"
msgstr "&Minimaliseer tot systeemvak in plaats van de taakbalk"
#: ../../../src/uibase.cpp:351
msgid "Map port using &UPnP"
msgstr "Portmapping via &UPnP"
#: ../../../src/uibase.cpp:354
msgid "M&inimize to the tray on close"
msgstr "M&inimaliseer tot taakbalk bij sluiten"
#: ../../../src/uibase.cpp:360
msgid "&Connect through socks4 proxy: "
msgstr "&Verbind via socks4 proxy: "
#: ../../../src/uibase.cpp:371
msgid "Proxy &IP:"
msgstr "Proxy &IP:"
#: ../../../src/uibase.cpp:379
msgid " &Port:"
msgstr " &Poort:"
#: ../../../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 "Optionele transactiefooi per KB die helpt ervoor zorgen dat uw transacties snel verwerkt worden. De meeste transacties zijn 1KB. Fooi 0.01 is aangeraden."
#: ../../../src/uibase.cpp:399
msgid "Pay transaction fee:"
msgstr "Transactiefooi:"
#: ../../../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 "Annuleren"
#: ../../../src/uibase.cpp:449
msgid "&Apply"
msgstr "&Toepassen"
#: ../../../src/uibase.cpp:508
msgid "Bitcoin "
msgstr "Bitcoin "
#: ../../../src/uibase.cpp:514
msgid "version"
msgstr "versie"
#: ../../../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 Bitcoin-ontwikkelaars\n"
"\n"
"Dit is experimentele software.\n"
"\n"
"Gedistributeerd onder de MIT/X11 software licentie, zie het bijgevoegde bestand \n"
"license.txt of kijk op http://www.opensource.org/licenses/mit-license.php.\n"
"\n"
"Dit product bevat software ontwikkeld door het OpenSSL project for gebruik \n"
"in de OpenSSL Toolkit (http://www.openssl.org/), en cryptografische \n"
"software geschreven door Eric Young (eay@cryptsoft.com)) en UPnP software geschreven\n"
"door Thomas Bernard."
#: ../../../src/uibase.cpp:581
msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
msgstr "Voer een bitcoin-adres (bijvoorbeeld: 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
#: ../../../src/uibase.cpp:595
msgid "Pay &To:"
msgstr "Betaal &aan:"
#: ../../../src/uibase.cpp:610
msgid "&Paste"
msgstr "&Plakken"
#: ../../../src/uibase.cpp:613
msgid " Address &Book..."
msgstr " Adres&boek..."
#: ../../../src/uibase.cpp:620
msgid "&Amount:"
msgstr "&Hoeveelheid:"
#: ../../../src/uibase.cpp:630
msgid "T&ransfer:"
msgstr "O&verdracht:"
#: ../../../src/uibase.cpp:636
msgid " Standard"
msgstr " Standaard"
#: ../../../src/uibase.cpp:663
msgid "&Send"
msgstr "&Versturen"
#: ../../../src/uibase.cpp:711
msgid ""
"\n"
"\n"
"Connecting..."
msgstr ""
"\n"
"\n"
"Verbinden..."
#: ../../../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 "Dit zijn je bitcoin-adressen voor het ontvangen van betalingen. Het is een goed idee iedere afzender een ander adres te geven zodat je bij kunt houden wie je een betaling stuurt. Het geselecteerde adres is zichtbaar in het hoofdscherm."
#: ../../../src/uibase.cpp:774
#: ../../../src/uibase.cpp:886
msgid "&Edit..."
msgstr "&Bewerken..."
#: ../../../src/uibase.cpp:777
#: ../../../src/uibase.cpp:889
msgid " &New Address... "
msgstr " &Nieuw adres... "
#: ../../../src/uibase.cpp:849
msgid "Sending"
msgstr "Versturen..."
#: ../../../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 "Dit zijn je bitcoin-adressen voor het ontvangen van betalingen. Het is een goed idee iedere afzender een ander adres te geven zodat je bij kunt houden wie je een betaling stuurt. Het geselecteerde adres is zichtbaar in het hoofdscherm."
#: ../../../src/uibase.cpp:870
msgid "Receiving"
msgstr "Ontvangen..."
#: ../../../src/uibase.cpp:880
msgid "&Delete"
msgstr "&Verwijderen"
#: ../../../src/init.cpp:147
msgid "Bitcoin version"
msgstr "Bitcoin "
#: ../../../src/init.cpp:148
msgid "Usage:"
msgstr "Mededeling:"
#: ../../../src/init.cpp:150
msgid "Send command to -server or bitcoind\n"
msgstr "Zend commando naar -server of bitcoind\n"
#: ../../../src/init.cpp:151
msgid "List commands\n"
msgstr "List van commando's\n"
#: ../../../src/init.cpp:152
msgid "Get help for a command\n"
msgstr "Toon hulp voor een commando\n"
#: ../../../src/init.cpp:153
msgid "Options:\n"
msgstr "Opties:\n"
#: ../../../src/init.cpp:154
msgid "Specify configuration file (default: bitcoin.conf)\n"
msgstr "Specifieer configuratiebestand (standaard: bitcoin.conf)\n"
#: ../../../src/init.cpp:155
msgid "Specify pid file (default: bitcoind.pid)\n"
msgstr "Specifieer pid-bestand (standaard: bitcoind.pid)\n"
#: ../../../src/init.cpp:156
msgid "Generate coins\n"
msgstr "Genereer coins\n"
#: ../../../src/init.cpp:157
msgid "Don't generate coins\n"
msgstr "Genereer geen coins\n"
#: ../../../src/init.cpp:158
msgid "Start minimized\n"
msgstr "Geminimaliseerd starten\n"
#: ../../../src/init.cpp:159
msgid "Specify data directory\n"
msgstr "Stel datamap in\n"
#: ../../../src/init.cpp:161
msgid "Specify connection timeout (in milliseconds)\n"
msgstr "Gelieve de time-out tijd te specifieren (in milliseconden)\n"
#: ../../../src/init.cpp:160
msgid "Connect through socks4 proxy\n"
msgstr "Verbind via socks4 proxy\n"
#: ../../../src/init.cpp:161
msgid "Allow DNS lookups for addnode and connect\n"
msgstr "Sta DNS-opzoeking toe voor addnode en connect\n"
#: ../../../src/init.cpp:162
msgid "Add a node to connect to\n"
msgstr "Voeg een node toe om mee te verbinden\n"
#: ../../../src/init.cpp:163
msgid "Connect only to the specified node\n"
msgstr "Verbind alleen met deze node\n"
#: ../../../src/init.cpp:164
msgid "Don't accept connections from outside\n"
msgstr "Sta geen verbindingen van buitenaf toe\n"
#: ../../../src/init.cpp:167
msgid "Don't attempt to use UPnP to map the listening port\n"
msgstr "Probeer geen UPnP te gebruiken om de poort waarop geluisterd wordt te mappen\n"
#: ../../../src/init.cpp:169
msgid "Attempt to use UPnP to map the listening port\n"
msgstr "Probeer UPnP te gebruiken om de poort waarop geluisterd wordt te mappen\n"
#: ../../../src/init.cpp:172
msgid "Fee per KB to add to transactions you send\n"
msgstr "Fooi per KB om aan transacties die gezonden worden toe te voegen\n"
#: ../../../src/init.cpp:174
msgid "Accept command line and JSON-RPC commands\n"
msgstr "Aanvaard commandolijn en JSON-RPC commando's\n"
#: ../../../src/init.cpp:177
msgid "Run in the background as a daemon and accept commands\n"
msgstr "Draai in de achtergrond als daemon en aanvaard commando's\n"
#: ../../../src/init.cpp:179
msgid "Use the test network\n"
msgstr "Gebruik het test-netwerk\n"
#: ../../../src/init.cpp:180
msgid "Username for JSON-RPC connections\n"
msgstr "Gebruikersnaam voor JSON-RPC verbindingen\n"
#: ../../../src/init.cpp:181
msgid "Password for JSON-RPC connections\n"
msgstr "Wachtwoord voor JSON-RPC verbindingen\n"
#: ../../../src/init.cpp:182
msgid "Listen for JSON-RPC connections on <port> (default: 8332)\n"
msgstr "Luister voor JSON-RPC verbindingen op <poort> (standaard: 8332)\n"
#: ../../../src/init.cpp:183
msgid "Allow JSON-RPC connections from specified IP address\n"
msgstr "Enkel JSON-RPC verbindingen van opgegeven IP adres toestaan\n"
#: ../../../src/init.cpp:184
msgid "Send commands to node running on <ip> (default: 127.0.0.1)\n"
msgstr "Zend commando's naar proces dat op <ip> draait (standaard: 127.0.0.1)\n"
#: ../../../src/init.cpp:185
msgid "Set key pool size to <n> (default: 100)\n"
msgstr "Stel sleutelpoelgrootte in op <n> (standaard: 100)\n"
#: ../../../src/init.cpp:186
msgid "Rescan the block chain for missing wallet transactions\n"
msgstr "Doorzoek de blokken database voor ontbrekende portefeuille-transacties\n"
#: ../../../src/init.cpp:190
msgid ""
"\n"
"SSL options: (see the Bitcoin Wiki for SSL setup instructions)\n"
msgstr ""
"\n"
"SSL opties: (zie de Bitcoin wiki voor SSL instructies)\n"
#: ../../../src/init.cpp:191
msgid "Use OpenSSL (https) for JSON-RPC connections\n"
msgstr "Gebruik OpenSSL (https) voor JSON-RPC verbindingen\n"
#: ../../../src/init.cpp:192
msgid "Server certificate file (default: server.cert)\n"
msgstr "Certificaat-bestand voor server (standaard: server.cert)\n"
#: ../../../src/init.cpp:193
msgid "Server private key (default: server.pem)\n"
msgstr "Geheime sleutel voor server (standaard: server.pem)\n"
#: ../../../src/init.cpp:194
msgid "Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
msgstr "Aanvaardbare ciphers (standaard: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
#: ../../../src/init.cpp:198
msgid "This help message\n"
msgstr "Dit helpbericht\n"
#: ../../../src/init.cpp:335
#, c-format
msgid "Cannot obtain a lock on data directory %s. Bitcoin is probably already running."
msgstr "Kan geen lock op de gegevensdirectory %s verkrijgen. Bitcoin draait vermoedelijk reeds."
#: ../../../src/init.cpp:361
msgid "Error loading addr.dat \n"
msgstr "Fout bij laden van bestand addr.dat \n"
#: ../../../src/init.cpp:367
msgid "Error loading blkindex.dat \n"
msgstr "Fout bij laden van bestand blkindex.dat \n"
#: ../../../src/init.cpp:374
msgid "Error loading wallet.dat \n"
msgstr "Fout bij laden van bestand wallet.dat \n"
#: ../../../src/init.cpp:454
msgid "Invalid -proxy address"
msgstr "Foutief -proxy adres"
#: ../../../src/init.cpp:477
msgid "Invalid amount for -paytxfee=<amount>"
msgstr "Ongeldig bedrag voor -paytxfee=<bedrag>"
#: ../../../src/init.cpp:481
msgid "Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction."
msgstr "Waarschuwing: -paytxfee is zeer hoog ingesteld. Dit is de fooi die betaald wordt bij het zenden van een transactie."
#: ../../../src/uibase.h:147
msgid "Transaction Details"
msgstr "Transactiedetails"
#: ../../../src/uibase.h:199
msgid "Options"
msgstr "Opties"
#: ../../../src/uibase.h:228
msgid "About Bitcoin"
msgstr "Over Bitcoin"
#: ../../../src/uibase.h:337
msgid "Your Bitcoin Addresses"
msgstr "Uw bitcoin-adressen"

View File

@@ -1,976 +0,0 @@
msgid ""
msgstr ""
"Project-Id-Version: Bitcoin\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-06-28 20:11+0100\n"
"PO-Revision-Date: \n"
"Last-Translator: Dawid Spiechowicz <spiechu@gmail.com>\n"
"Language-Team: Spiechu <spiechu@gmail.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
"X-Poedit-Language: Polish\n"
"X-Poedit-Country: POLAND\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
"X-Poedit-Basepath: .\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
"X-Poedit-SearchPath-0: ../../..\n"
#: ../../../src/net.cpp:1590
#, c-format
msgid "Unable to bind to port %d on this computer. Bitcoin is probably already running."
msgstr "Nie można powiązać z portem %d tego komputera. Prawdopodobnie program Bitcoin jest już uruchomiony."
#: ../../../src/init.cpp:162
msgid "Bitcoin version"
msgstr "Wersja Bitcoin"
#: ../../../src/init.cpp:163
msgid "Usage:"
msgstr "Użycie:"
#: ../../../src/init.cpp:165
msgid "Send command to -server or bitcoind\n"
msgstr "Wyślij polecenie do -server lub bitcoind\n"
#: ../../../src/init.cpp:166
msgid "List commands\n"
msgstr "Wyświetl komendy\n"
#: ../../../src/init.cpp:167
msgid "Get help for a command\n"
msgstr "Wyświetl pomoc dla komendy\n"
#: ../../../src/init.cpp:168
msgid "Options:\n"
msgstr "Opcje:\n"
#: ../../../src/init.cpp:169
msgid "Specify configuration file (default: bitcoin.conf)\n"
msgstr "Określ plik konfiguracyjny (domyślnie: bitcoin.conf)\n"
#: ../../../src/init.cpp:170
msgid "Specify pid file (default: bitcoind.pid)\n"
msgstr "Wybierz plik pid (domyślnie: bitcoind.pid)\n"
#: ../../../src/init.cpp:171
msgid "Generate coins\n"
msgstr "Generuj monety\n"
#: ../../../src/init.cpp:172
msgid "Don't generate coins\n"
msgstr "Nie generuj monet\n"
#: ../../../src/init.cpp:173
msgid "Start minimized\n"
msgstr "Uruchom zminimalizowany\n"
#: ../../../src/init.cpp:174
msgid "Specify data directory\n"
msgstr "Wybierz katalog z danymi\n"
#: ../../../src/init.cpp:175
msgid "Specify connection timeout (in milliseconds)\n"
msgstr "Ustaw czas upływu połączenia (w milisekundach)\n"
#: ../../../src/init.cpp:176
msgid "Connect through socks4 proxy\n"
msgstr "Połącz przez socks4 proxy\n"
#: ../../../src/init.cpp:177
msgid "Allow DNS lookups for addnode and connect\n"
msgstr "Umożliwiaj wyszukiwanie DNS dla dodania węzła i połączenia\n"
#: ../../../src/init.cpp:178
msgid "Add a node to connect to\n"
msgstr "Dodaj węzeł do którego połączyć\n"
#: ../../../src/init.cpp:179
msgid "Connect only to the specified node\n"
msgstr "Łącz tylko z wybranym węzłem\n"
#: ../../../src/init.cpp:180
msgid "Don't accept connections from outside\n"
msgstr "Nie akceptuj połączeń z zewnątrz\n"
#: ../../../src/init.cpp:183
msgid "Don't attempt to use UPnP to map the listening port\n"
msgstr "Nie próbuj użyć UPnP dla mapowania portu nasłuchu\n"
#: ../../../src/init.cpp:185
msgid "Attempt to use UPnP to map the listening port\n"
msgstr "Próbuj użyć UPnP dla mapowania portu nasłuchu\n"
#: ../../../src/init.cpp:188
msgid "Fee per KB to add to transactions you send\n"
msgstr "Prowizja na KB dodawana do transakcji, które wysyłasz\n"
#: ../../../src/init.cpp:190
msgid "Accept command line and JSON-RPC commands\n"
msgstr "Akceptuj polecenia linii poleceń i JSON-RPC\n"
#: ../../../src/init.cpp:193
msgid "Run in the background as a daemon and accept commands\n"
msgstr "Uruchom w tle (daemon) i akceptuj komendy\n"
#: ../../../src/init.cpp:195
msgid "Use the test network\n"
msgstr "Użyj sieci testowej\n"
#: ../../../src/init.cpp:196
msgid "Username for JSON-RPC connections\n"
msgstr "Nazwa użytkownika dla połączeń JSON-RPC\n"
#: ../../../src/init.cpp:197
msgid "Password for JSON-RPC connections\n"
msgstr "Hasło dla połączeń JSON-RPC\n"
#: ../../../src/init.cpp:198
msgid "Listen for JSON-RPC connections on <port> (default: 8332)\n"
msgstr "Nasłuch dla połączeń JSON-RPC na porcie <port> (domyślnie: 8332)\n"
#: ../../../src/init.cpp:199
msgid "Allow JSON-RPC connections from specified IP address\n"
msgstr "Zezwól na połączenia JSON-RPC z adresu IP\n"
#: ../../../src/init.cpp:200
msgid "Send commands to node running on <ip> (default: 127.0.0.1)\n"
msgstr "Wysyłaj polecenia do węzła działającego na <ip> (domyślnie: 127.0.0.1)\n"
#: ../../../src/init.cpp:201
msgid "Set key pool size to <n> (default: 100)\n"
msgstr "Ustaw pulę kluczy na <n> (domyślnie: 100)\n"
#: ../../../src/init.cpp:202
msgid "Rescan the block chain for missing wallet transactions\n"
msgstr "Przeszukaj łańcuch bloków w poszukiwaniu zaginionych transakcji\n"
#: ../../../src/init.cpp:206
msgid ""
"\n"
"SSL options: (see the Bitcoin Wiki for SSL setup instructions)\n"
msgstr ""
"\n"
"Opcje SSL: (zobacz instrukcje na Bitcoin Wiki dla ustawień SSL)\n"
#: ../../../src/init.cpp:207
msgid "Use OpenSSL (https) for JSON-RPC connections\n"
msgstr "Użyj OpenSSL (https) dla połączeń JSON-RPC\n"
#: ../../../src/init.cpp:208
msgid "Server certificate file (default: server.cert)\n"
msgstr "Plik certyfikacji serwera (domyślnie: server.cert)\n"
#: ../../../src/init.cpp:209
msgid "Server private key (default: server.pem)\n"
msgstr "Klucz prywatny serwera (domyślnie: server.pem)\n"
#: ../../../src/init.cpp:210
msgid "Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
msgstr "Akceptowalne szyfry (domyślnie: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
#: ../../../src/init.cpp:214
msgid "This help message\n"
msgstr "Ta wiadomość pomocy\n"
#: ../../../src/init.cpp:351
#, c-format
msgid "Cannot obtain a lock on data directory %s. Bitcoin is probably already running."
msgstr "Nie można korzystać z katalogu %s z danymi. Bitcoin prawdopodobnie już jest uruchomiony."
#: ../../../src/init.cpp:377
msgid "Error loading addr.dat \n"
msgstr "Błąd ładowania addr.dat \n"
#: ../../../src/init.cpp:383
msgid "Error loading blkindex.dat \n"
msgstr "Błąd ładowania blkindex.dat \n"
#: ../../../src/init.cpp:391
msgid "Error loading wallet.dat \n"
msgstr "Błąd ładowania wallet.dat \n"
#: ../../../src/init.cpp:481
msgid "Invalid -proxy address"
msgstr "Niewłaściwy adres -proxy"
#: ../../../src/init.cpp:504
msgid "Invalid amount for -paytxfee=<amount>"
msgstr "Nieprawidłowa kwota w -paytxfee=<amount>"
#: ../../../src/init.cpp:508
msgid "Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction."
msgstr "Ostrzeżenie: ustawienie -paytxfee jest bardzo wysokie. To jest prowizja transakcji, którą zapłacisz jeżeli wyślesz transakcję."
#: ../../../src/rpc.cpp:1822
#: ../../../src/rpc.cpp:1824
#, c-format
msgid "To use the %s option"
msgstr "Użycie opcji %s"
#: ../../../src/rpc.cpp:1826
#, 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 ""
"Ostrzeżenie: %s, musisz ustawić rpcpassword=<password>\n"
"w pliku konfiguracyjnym: %s\n"
"Jeżeli plik nie istnieje, utwórz go z uprawnieniami tylko do odczytu dla właściciela.\n"
#: ../../../src/rpc.cpp:1994
#, 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 ""
"Musisz ustawić rpcpassword=<password> w pliku konfiguracyjnym:\n"
"%s\n"
"Jeżeli plik nie istnieje, utwórz go z uprawnieniami tylko do odczytu dla właściciela."
#: ../../../src/util.cpp:874
msgid "Warning: Please check that your computer's date and time are correct. If your clock is wrong Bitcoin will not work properly."
msgstr "Ostrzeżenie: Sprawdź czy ustawienia daty i czasu komputera są prawidłowe. Jeżeli zegar jest źle ustawiony, Bitcoin nie będzie poprawnie działał."
#: ../../../src/util.cpp:908
msgid "beta"
msgstr "beta"
#: ../../../src/ui.cpp:216
#, 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 "Ta transakcja jest poza limitem wielkości. W dalszym ciągu możesz wysłać ją z prowizją %s, która dotrze do węzłów przetwarzających twoją transakcję i pomoże utrzymać sieć. Chcesz zapłacić prowizję?"
#: ../../../src/ui.cpp:316
msgid "Status"
msgstr "Status"
#: ../../../src/ui.cpp:317
msgid "Date"
msgstr "Data"
#: ../../../src/ui.cpp:318
msgid "Description"
msgstr "Opis"
#: ../../../src/ui.cpp:319
msgid "Debit"
msgstr "Obciążenie"
#: ../../../src/ui.cpp:320
msgid "Credit"
msgstr "Suma"
#: ../../../src/ui.cpp:526
#, c-format
msgid "Open for %d blocks"
msgstr "Otwórz na %d bloków"
#: ../../../src/ui.cpp:528
#, c-format
msgid "Open until %s"
msgstr "Otwarte dopóki %s"
#: ../../../src/ui.cpp:534
#, c-format
msgid "%d/offline?"
msgstr "%d/offline?"
#: ../../../src/ui.cpp:536
#, c-format
msgid "%d/unconfirmed"
msgstr "%d/niepotwierdzono"
#: ../../../src/ui.cpp:538
#, c-format
msgid "%d confirmations"
msgstr "%d potwierdzeń"
#: ../../../src/ui.cpp:623
msgid "Generated"
msgstr "Wygenerowano"
#: ../../../src/ui.cpp:631
#, c-format
msgid "Generated (%s matures in %d more blocks)"
msgstr "Wygenerowano (%s dojrzałych w %d więcej bloków)"
#: ../../../src/ui.cpp:635
msgid "Generated - Warning: This block was not received by any other nodes and will probably not be accepted!"
msgstr "Wygenerowano - Ostrzeżenie: Ten blok nie został otrzymany przez żaden inny węzeł i prawdopodobnie nie zostanie zaakceptowany!"
#: ../../../src/ui.cpp:639
msgid "Generated (not accepted)"
msgstr "Wygenerowano (nie zaakceptowano)"
#: ../../../src/ui.cpp:649
msgid "From: "
msgstr "Od:"
#: ../../../src/ui.cpp:673
msgid "Received with: "
msgstr "Otrzymano z:"
#: ../../../src/ui.cpp:719
msgid "Payment to yourself"
msgstr "Płatność dla siebie samego"
#: ../../../src/ui.cpp:753
msgid "To: "
msgstr "Do:"
#: ../../../src/ui.cpp:1068
msgid " Generating"
msgstr " Generowanie"
#: ../../../src/ui.cpp:1070
msgid "(not connected)"
msgstr "(nie połączony)"
#: ../../../src/ui.cpp:1073
#, c-format
msgid " %d connections %d blocks %d transactions"
msgstr " %d połączeń %d bloków %d transakcji"
#: ../../../src/ui.cpp:1178
#: ../../../src/ui.cpp:2571
msgid "New Receiving Address"
msgstr "Nowy Adres Odbiorczy"
#: ../../../src/ui.cpp:1179
#: ../../../src/ui.cpp:2572
msgid ""
"You should use a new address for each payment you receive.\n"
"\n"
"Label"
msgstr ""
"Powinieneś użyć nowego adresu dla każdej płatności, którą otrzymasz.\n"
"\n"
"Etykieta"
#: ../../../src/ui.cpp:1251
msgid "<b>Status:</b> "
msgstr "<b>Status:</b>"
#: ../../../src/ui.cpp:1256
msgid ", has not been successfully broadcast yet"
msgstr ", nie został jeszcze prawidłowo rozgłoszony"
#: ../../../src/ui.cpp:1258
#, c-format
msgid ", broadcast through %d node"
msgstr ", rozgłasza przez %d węzeł"
#: ../../../src/ui.cpp:1260
#, c-format
msgid ", broadcast through %d nodes"
msgstr ", rozgłasza przez %d węzłów"
#: ../../../src/ui.cpp:1264
msgid "<b>Date:</b> "
msgstr "<b>Data:</b>"
#: ../../../src/ui.cpp:1272
msgid "<b>Source:</b> Generated<br>"
msgstr "<b>Źródło:</b> Wygenerowano<br>"
#: ../../../src/ui.cpp:1278
#: ../../../src/ui.cpp:1296
msgid "<b>From:</b> "
msgstr "<b>Od:</b>"
#: ../../../src/ui.cpp:1296
msgid "unknown"
msgstr "nieznany"
#: ../../../src/ui.cpp:1297
#: ../../../src/ui.cpp:1321
#: ../../../src/ui.cpp:1380
msgid "<b>To:</b> "
msgstr "<b>Do:</b>"
#: ../../../src/ui.cpp:1300
msgid " (yours, label: "
msgstr " (twoja, etykieta: "
#: ../../../src/ui.cpp:1302
msgid " (yours)"
msgstr " (twoja)"
#: ../../../src/ui.cpp:1339
#: ../../../src/ui.cpp:1351
#: ../../../src/ui.cpp:1397
#: ../../../src/ui.cpp:1414
msgid "<b>Credit:</b> "
msgstr "<b>Suma:</b>"
#: ../../../src/ui.cpp:1341
#, c-format
msgid "(%s matures in %d more blocks)"
msgstr "(%s dojrzałych w %d więcej bloków)"
#: ../../../src/ui.cpp:1343
msgid "(not accepted)"
msgstr "(nie zaakceptowano)"
#: ../../../src/ui.cpp:1388
#: ../../../src/ui.cpp:1396
#: ../../../src/ui.cpp:1411
msgid "<b>Debit:</b> "
msgstr "<b>Obciążenie:</b>"
#: ../../../src/ui.cpp:1402
msgid "<b>Transaction fee:</b> "
msgstr "<b>Prowizja transakcji:</b>"
#: ../../../src/ui.cpp:1418
msgid "<b>Net amount:</b> "
msgstr "<b>Kwota netto:</b>"
#: ../../../src/ui.cpp:1425
msgid "Message:"
msgstr "Wiadomość:"
#: ../../../src/ui.cpp:1427
msgid "Comment:"
msgstr "Komentarz:"
#: ../../../src/ui.cpp:1430
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 "Wygenerowane monety muszą poczekać 120 bloków zanim mogą zostać wydane. Gdy wygenerowałeś ten blok, został rozgłoszony do sieci z przeznaczeniem do dodania do łańcucha bloków. Jeżeli nie uda się dodać bloku do łańcucha, zostanie oznaczony jako \"nie zaakceptowany\" i nie będzie mógł zostać wydany. Sporadycznie dzieje się tak jeżeli inny węzeł wygeneruje blok nie dalej niż kilka sekund od ciebie."
#: ../../../src/ui.cpp:1610
msgid "Cannot write autostart/bitcoin.desktop file"
msgstr "Nie mogę zapisać pliku autostart/bitcoin.desktop"
#: ../../../src/ui.cpp:1646
msgid "Main"
msgstr "Główne"
#: ../../../src/ui.cpp:1656
msgid "&Start Bitcoin on window system startup"
msgstr "&Uruchom Bitcoin przy starcie systemu"
#: ../../../src/ui.cpp:1663
msgid "&Minimize on close"
msgstr "&Minimalizuj przy zamknięciu"
#: ../../../src/ui.cpp:1805
#, c-format
msgid "version %s"
msgstr "wersja %s"
#: ../../../src/ui.cpp:1928
msgid "Error in amount "
msgstr "Nieprawidłowa kwota"
#: ../../../src/ui.cpp:1928
#: ../../../src/ui.cpp:1933
#: ../../../src/ui.cpp:1938
#: ../../../src/ui.cpp:1973
#: ../../../src/uibase.cpp:55
msgid "Send Coins"
msgstr "Wyślij Monety"
#: ../../../src/ui.cpp:1933
msgid "Amount exceeds your balance "
msgstr "Kwota przekracza twój stan konta"
#: ../../../src/ui.cpp:1938
msgid "Total exceeds your balance when the "
msgstr "Przekroczenie twojego stanu konta gdy"
#: ../../../src/ui.cpp:1938
msgid " transaction fee is included "
msgstr " prowizja jest wliczona"
#: ../../../src/ui.cpp:1956
msgid "Payment sent "
msgstr "Wysłano płatność"
#: ../../../src/ui.cpp:1956
#: ../../../src/ui.cpp:1961
#: ../../../src/ui.cpp:2107
#: ../../../src/ui.cpp:2260
#: ../../../src/wallet.cpp:924
msgid "Sending..."
msgstr "Wysyłanie..."
#: ../../../src/ui.cpp:1973
msgid "Invalid address "
msgstr "Nieprawidłowy adres"
#: ../../../src/ui.cpp:2028
#, c-format
msgid "Sending %s to %s"
msgstr "Wysyłanie %s do %s"
#: ../../../src/ui.cpp:2101
#: ../../../src/ui.cpp:2134
msgid "CANCELLED"
msgstr "ANULOWANO"
#: ../../../src/ui.cpp:2105
msgid "Cancelled"
msgstr "Anulowano"
#: ../../../src/ui.cpp:2107
msgid "Transfer cancelled "
msgstr "Transfer anulowano"
#: ../../../src/ui.cpp:2160
msgid "Error: "
msgstr "Błąd:"
#: ../../../src/ui.cpp:2174
#: ../../../src/ui.cpp:2245
#: ../../../src/wallet.cpp:943
msgid "Insufficient funds"
msgstr "Niewystarczające fundusze"
#: ../../../src/ui.cpp:2179
msgid "Connecting..."
msgstr "Łączenie..."
#: ../../../src/ui.cpp:2184
msgid "Unable to connect"
msgstr "Nie można połączyć"
#: ../../../src/ui.cpp:2189
msgid "Requesting public key..."
msgstr "Żądanie klucza publicznego..."
#: ../../../src/ui.cpp:2201
msgid "Received public key..."
msgstr "Otrzymano klucz publiczny..."
#: ../../../src/ui.cpp:2215
msgid "Recipient is not accepting transactions sent by IP address"
msgstr "Adresat nie akceptuje transakcji wysyłanych przez adres IP"
#: ../../../src/ui.cpp:2217
msgid "Transfer was not accepted"
msgstr "Transfer nie został zaakceptowany"
#: ../../../src/ui.cpp:2226
msgid "Invalid response received"
msgstr "Otrzymano niepoprawną odpowiedź"
#: ../../../src/ui.cpp:2241
msgid "Creating transaction..."
msgstr "Tworzenie transakcji..."
#: ../../../src/ui.cpp:2253
#, 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 "Ta transakcja wymaga prowizji co najmniej %s z uwagi na kwotę, złożoność lub użycie niedawno otrzymanych funduszy"
#: ../../../src/ui.cpp:2255
msgid "Transaction creation failed"
msgstr "Błąd tworzenia transakcji "
#: ../../../src/ui.cpp:2262
msgid "Transaction aborted"
msgstr "Transakcję przerwano"
#: ../../../src/ui.cpp:2270
msgid "Lost connection, transaction cancelled"
msgstr "Utracono połączenie, transakcja anulowana"
#: ../../../src/ui.cpp:2286
msgid "Sending payment..."
msgstr "Wysyłanie płatności..."
#: ../../../src/ui.cpp:2292
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 "Transakcja została odrzucona. Może się tak zdarzyć jeżeli część monet w twoim portfelu zostało wydanych, np. gdy użyto kopii pliku wallet.dat i monety zostały wydane w kopii, a tutaj nie zostały oznaczone jako wydane."
#: ../../../src/ui.cpp:2301
msgid "Waiting for confirmation..."
msgstr "Oczekiwanie na potwierdzenie..."
#: ../../../src/ui.cpp:2319
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 ""
"Płatność została wysłana, ale odbiorca nie mógł jej zweryfikować.\n"
"Transakcja została zarejestrowana i zostanie przypisana do odbiorcy,\n"
"ale informacja w komentarzu będzie pusta."
#: ../../../src/ui.cpp:2328
msgid "Payment was sent, but an invalid response was received"
msgstr "Płatność została wysłana, ale otrzymano nieprawidłową odpowiedź"
#: ../../../src/ui.cpp:2334
msgid "Payment completed"
msgstr "Płatność zakończona"
#: ../../../src/ui.cpp:2376
#: ../../../src/ui.cpp:2522
#: ../../../src/ui.cpp:2559
msgid "Name"
msgstr "Nazwa"
#: ../../../src/ui.cpp:2377
#: ../../../src/ui.cpp:2522
#: ../../../src/ui.cpp:2559
msgid "Address"
msgstr "Adres"
#: ../../../src/ui.cpp:2379
#: ../../../src/ui.cpp:2534
msgid "Label"
msgstr "Etykieta"
#: ../../../src/ui.cpp:2380
#: ../../../src/uibase.cpp:837
msgid "Bitcoin Address"
msgstr "Adres Bitcoin"
#: ../../../src/ui.cpp:2504
msgid "This is one of your own addresses for receiving payments and cannot be entered in the address book. "
msgstr "To jest jeden z twoich adresów na otrzymywane płatności i nie może zostać wpisany do księgi adresowej."
#: ../../../src/ui.cpp:2522
#: ../../../src/ui.cpp:2528
msgid "Edit Address"
msgstr "Edytuj Adres"
#: ../../../src/ui.cpp:2534
msgid "Edit Address Label"
msgstr "Edytuj Etykietę Adresu"
#: ../../../src/ui.cpp:2559
#: ../../../src/ui.cpp:2565
msgid "Add Address"
msgstr "Dodaj Adres"
#: ../../../src/ui.cpp:2642
msgid "Bitcoin"
msgstr "Bitcoin"
#: ../../../src/ui.cpp:2644
msgid "Bitcoin - Generating"
msgstr "Bitcoin - Generowanie"
#: ../../../src/ui.cpp:2646
msgid "Bitcoin - (not connected)"
msgstr "Bitcoin - (nie połączony)"
#: ../../../src/ui.cpp:2725
msgid "&Open Bitcoin"
msgstr "&Otwórz Bitcoin"
#: ../../../src/ui.cpp:2726
msgid "&Send Bitcoins"
msgstr "&Wyślij Bitcoiny"
#: ../../../src/ui.cpp:2727
msgid "O&ptions..."
msgstr "O&pcje..."
#: ../../../src/ui.cpp:2730
#: ../../../src/uibase.cpp:25
msgid "E&xit"
msgstr "W&yjście"
#: ../../../src/ui.cpp:2956
msgid "Program has crashed and will terminate. "
msgstr "Program uległ awarii i zostanie przerwany."
#: ../../../src/main.cpp:1430
msgid "Warning: Disk space is low "
msgstr "Ostrzeżenie: Mało miejsca na dysku"
#: ../../../src/uibase.cpp:28
msgid "&File"
msgstr "&Plik"
#: ../../../src/uibase.cpp:32
msgid "&Your Receiving Addresses..."
msgstr "&Twój Adres Odbiorczy..."
#: ../../../src/uibase.cpp:36
msgid "&Options..."
msgstr "&Opcje..."
#: ../../../src/uibase.cpp:39
msgid "&Settings"
msgstr "&Ustawienia"
#: ../../../src/uibase.cpp:43
msgid "&About..."
msgstr "&O programie..."
#: ../../../src/uibase.cpp:46
msgid "&Help"
msgstr "&Pomoc"
#: ../../../src/uibase.cpp:56
msgid "Address Book"
msgstr "Księga Adresowa"
#: ../../../src/uibase.cpp:69
msgid "Your Bitcoin Address:"
msgstr "Twój Adres Bitcoin:"
#: ../../../src/uibase.cpp:76
msgid " &New... "
msgstr " &Nowy..."
#: ../../../src/uibase.cpp:79
#: ../../../src/uibase.cpp:780
#: ../../../src/uibase.cpp:883
msgid " &Copy to Clipboard "
msgstr " &Kopiuj do schowka "
#: ../../../src/uibase.cpp:93
msgid "Balance:"
msgstr "Saldo:"
#: ../../../src/uibase.cpp:109
msgid " All"
msgstr " Wszystko"
#: ../../../src/uibase.cpp:109
msgid " Sent"
msgstr "Wysłano"
#: ../../../src/uibase.cpp:109
msgid " Received"
msgstr "Otrzymano"
#: ../../../src/uibase.cpp:109
msgid " In Progress"
msgstr "W Trakcie"
#: ../../../src/uibase.cpp:130
msgid "All Transactions"
msgstr "Wszystkie Transakcje"
#: ../../../src/uibase.cpp:141
msgid "Sent/Received"
msgstr "Wysłano/Otrzymano"
#: ../../../src/uibase.cpp:152
msgid "Sent"
msgstr "Wysłano"
#: ../../../src/uibase.cpp:163
msgid "Received"
msgstr "Otrzymano"
#: ../../../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 "OK"
#: ../../../src/uibase.cpp:345
msgid "&Start Bitcoin on system startup"
msgstr "&Uruchom Bitcoin wraz ze startem systemu"
#: ../../../src/uibase.cpp:348
msgid "&Minimize to the tray instead of the taskbar"
msgstr "&Zminimalizuj do traya zamiast do paska zadań"
#: ../../../src/uibase.cpp:351
msgid "Map port using &UPnP"
msgstr "Mapuj port używając &UPnP"
#: ../../../src/uibase.cpp:354
msgid "M&inimize to the tray on close"
msgstr "Zm&inimalizuj do traya przy zamknięciu"
#: ../../../src/uibase.cpp:360
msgid "&Connect through socks4 proxy: "
msgstr "&Połącz przez socks4 proxy:"
#: ../../../src/uibase.cpp:371
msgid "Proxy &IP:"
msgstr "Proxy &IP:"
#: ../../../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 "Opcjonalna prowizja określona dla KB transakcji, która zapewni, że twoje transakcje będą szybko przetworzone. Większość transakcji to 1KB. Rekomendowana prowizja to 0.01."
#: ../../../src/uibase.cpp:399
msgid "Pay transaction fee:"
msgstr "Płać prowizję transakcji:"
#: ../../../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 "Anuluj"
#: ../../../src/uibase.cpp:449
msgid "&Apply"
msgstr "&Zastosuj"
#: ../../../src/uibase.cpp:508
msgid "Bitcoin "
msgstr "Bitcoin"
#: ../../../src/uibase.cpp:514
msgid "version"
msgstr "wersja"
#: ../../../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 Bitcoin Developers\n"
"\n"
"To oprogramowanie jest eksperymentalne.\n"
"\n"
"Dystrybuowane na licencji MIT/X11, zobacz towarzyszący plik \n"
"license.txt lub http://www.opensource.org/licenses/mit-license.php.\n"
"\n"
"Ten produkt zawiera oprogramowanie rozwijane przez OpenSSL Project w \n"
"OpenSSL Toolkit (http://www.openssl.org/) i oprogramowanie kryptograficzne napisane przez \n"
"Erica Younga (eay@cryptsoft.com) oraz oprogramowanie UPnP napisane przez Thomasa Bernarda."
#: ../../../src/uibase.cpp:581
msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
msgstr "Wprowadź adres Bitcoin (np. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
#: ../../../src/uibase.cpp:595
msgid "Pay &To:"
msgstr "Wpłać &Dla:"
#: ../../../src/uibase.cpp:610
msgid "&Paste"
msgstr "&Wklej"
#: ../../../src/uibase.cpp:613
msgid " Address &Book..."
msgstr " Księga &Adresowa..."
#: ../../../src/uibase.cpp:620
msgid "&Amount:"
msgstr "&Kwota:"
#: ../../../src/uibase.cpp:630
msgid "T&ransfer:"
msgstr "T&ransfer:"
#: ../../../src/uibase.cpp:636
msgid " Standard"
msgstr " Standard"
#: ../../../src/uibase.cpp:663
msgid "&Send"
msgstr "&Wyślij"
#: ../../../src/uibase.cpp:711
msgid ""
"\n"
"\n"
"Connecting..."
msgstr ""
"\n"
"\n"
"Łączenie..."
#: ../../../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 "To są twoje adresy Bitcoin dla otrzymywania płatności. Możesz chcieć podać różne dla każdego płacącego aby kontrolować kto ci płaci. Wyróżniony adres będzie wyświetlany w oknie głównym."
#: ../../../src/uibase.cpp:774
#: ../../../src/uibase.cpp:886
msgid "&Edit..."
msgstr "&Edytuj..."
#: ../../../src/uibase.cpp:777
#: ../../../src/uibase.cpp:889
msgid " &New Address... "
msgstr " &Nowy Adres..."
#: ../../../src/uibase.cpp:849
msgid "Sending"
msgstr "Wysyłanie"
#: ../../../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 "To są twoje adresy Bitcoin dla otrzymywania płatności. Możesz podać różne dla każdego płacącego aby kontrolować kto ci płaci. Wyróżniony adres będzie wyświetlany w oknie głównym."
#: ../../../src/uibase.cpp:870
msgid "Receiving"
msgstr "Otrzymywanie"
#: ../../../src/uibase.cpp:880
msgid "&Delete"
msgstr "&Usuń"
#: ../../../src/wallet.cpp:917
#, 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 "Błąd: Ta transakcja wymaga prowizji co najmniej %s z uwagi na kwotę, złożoność lub użycie niedawno otrzymanych funduszy"
#: ../../../src/wallet.cpp:919
msgid "Error: Transaction creation failed "
msgstr "Błąd: Nie udało się utworzyć transakcji"
#: ../../../src/wallet.cpp:928
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 "Błąd: Transakcja została odrzucona. Może się tak zdarzyć jeżeli część monet w twoim portfelu zostało wydanych, np. gdy użyto kopii pliku wallet.dat i monety zostały wydane w kopii, a tutaj nie zostały oznaczone jako wydane."
#: ../../../src/wallet.cpp:941
msgid "Invalid amount"
msgstr "Niewłaściwa kwota"
#: ../../../src/wallet.cpp:948
msgid "Invalid bitcoin address"
msgstr "Niewłaściwy adres bitcoin"
#: ../../../src/uibase.h:147
msgid "Transaction Details"
msgstr "Szczegóły Transakcji"
#: ../../../src/uibase.h:199
msgid "Options"
msgstr "Opcje"
#: ../../../src/uibase.h:228
msgid "About Bitcoin"
msgstr "O Bitcoin"
#: ../../../src/uibase.h:337
msgid "Your Bitcoin Addresses"
msgstr "Twoje Adresy Bitcoin"

Binary file not shown.

View File

@@ -1,811 +0,0 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-05-26 22:02-0000\n"
"PO-Revision-Date: 2010-07-05 09:06+0100\n"
"Last-Translator: Tiago Faria\n"
"Language-Team: \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"
#: ../../../init.cpp:342
msgid "Usage: bitcoin [options]"
msgstr "Utilização Bitcoin [opções]"
#: ../../../init.cpp:343
msgid "Options:\n"
msgstr "Opções:\n"
#: ../../../init.cpp:344
msgid "Generate coins\n"
msgstr "Gerar moedas\n"
#: ../../../init.cpp:345
msgid "Don't generate coins\n"
msgstr "Não gerar moedas\n"
#: ../../../init.cpp:346
msgid "Start minimized\n"
msgstr "Iniciar minimizado\n"
#: ../../../init.cpp:347
msgid "Specify data directory\n"
msgstr "Especificar localização dos dados\n"
#: ../../../init.cpp:348
msgid "Connect through socks4 proxy\n"
msgstr "Ligar através de um proxy socks4\n"
#: ../../../init.cpp:349
msgid "Add a node to connect to\n"
msgstr "Adicionar um nó para efectuar ligação\n"
#: ../../../init.cpp:350
msgid "Connect only to the specified node\n"
msgstr "Ligar apenas ao nó especificado\n"
#: ../../../init.cpp:351
msgid "This help message\n"
msgstr "Esta mensagem de ajuda\n"
#: ../../../init.cpp:455
msgid "Error loading addr.dat \n"
msgstr "Erro ao carregar addr.dat \n"
#: ../../../init.cpp:461
msgid "Error loading blkindex.dat \n"
msgstr "Erro ao carregar blkindex.dat \n"
#: ../../../init.cpp:468
msgid "Error loading wallet.dat \n"
msgstr "Erro ao carregar wallet.dat \n"
#: ../../../init.cpp:536
msgid "Invalid -proxy address"
msgstr "Endereço -proxy inválido"
#: ../../../init.cpp:629
msgid "Program has crashed and will terminate. "
msgstr "A aplicação bloqueou e vai terminar. "
#: ../../../main.cpp:1465
msgid "Warning: Disk space is low "
msgstr "Aviso: Espaço em disco limitado "
#: ../../../main.cpp:2994
#, c-format
msgid "Error: This is an oversized transaction that requires a transaction fee of %s "
msgstr "Erro: Esta transacção necessita de uma percentagem de transferência no valor de %s "
#: ../../../main.cpp:2996
msgid "Error: Transaction creation failed "
msgstr "Erro: Criação da transacção falhou "
#: ../../../main.cpp:3001
#: ../../../ui.cpp:1761
#: ../../../ui.cpp:1763
#: ../../../ui.cpp:1904
#: ../../../ui.cpp:2053
msgid "Sending..."
msgstr "A enviar ..."
#: ../../../main.cpp:3005
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 "Erro: A transacção foi rejeitada. Isto pode acontecer se algumas das moedas na sua carteira já tenham sido gastas, como por exemplo na utilização de uma cópia do wallet.dat onde as moedas foram gastas na cópia mas não aqui."
#: ../../../main.cpp:3017
msgid "Invalid amount"
msgstr "Montante inválido"
#: ../../../main.cpp:3019
#: ../../../ui.cpp:1971
#: ../../../ui.cpp:2038
msgid "Insufficient funds"
msgstr "Fundos insuficientes"
#: ../../../main.cpp:3024
msgid "Invalid bitcoin address"
msgstr "Endereço Bitcoin inválido"
#: ../../../ui.cpp:189
#, 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 "Esta transacção ultrapassa o limite. Pode, mesmo assim, efectuá-la, no entanto, uma percentagem de %s será enviada para os nós da rede que processam este pagamento. Quer pagar a percentagem?"
#: ../../../ui.cpp:285
msgid "Status"
msgstr "Estado"
#: ../../../ui.cpp:286
msgid "Date"
msgstr "Data"
#: ../../../ui.cpp:287
msgid "Description"
msgstr "Descrição"
#: ../../../ui.cpp:288
msgid "Debit"
msgstr "Débito"
#: ../../../ui.cpp:289
msgid "Credit"
msgstr "Crédito"
#: ../../../ui.cpp:489
#, c-format
msgid "Open for %d blocks"
msgstr "Aberto para %d blocos"
#: ../../../ui.cpp:491
#, c-format
msgid "Open until %s"
msgstr "Aberto até %s"
#: ../../../ui.cpp:497
#, c-format
msgid "%d/offline?"
msgstr "%d/offline?"
#: ../../../ui.cpp:499
#, c-format
msgid "%d/unconfirmed"
msgstr "%d/não confirmado"
#: ../../../ui.cpp:501
#, c-format
msgid "%d confirmations"
msgstr "%d confirmados"
#: ../../../ui.cpp:584
msgid "Generated"
msgstr "Gerado"
#: ../../../ui.cpp:592
#, c-format
msgid "Generated (%s matures in %d more blocks)"
msgstr "Gerado (%s maduras em mais %d blocos)"
#: ../../../ui.cpp:596
msgid "Generated - Warning: This block was not received by any other nodes and will probably not be accepted!"
msgstr "Gerado - Aviso: Este bloco não foi recebido por mais nenhum nó da rede e provavelmente não será aceite."
#: ../../../ui.cpp:600
msgid "Generated (not accepted)"
msgstr "Gerado (não aceite)"
#: ../../../ui.cpp:610
msgid "From: "
msgstr "Remetente: "
#: ../../../ui.cpp:634
msgid "Received with: "
msgstr "Recebido por: "
#: ../../../ui.cpp:676
msgid "Payment to yourself"
msgstr "Pagamento ao próprio"
#: ../../../ui.cpp:713
msgid "To: "
msgstr "Destinatário: "
#: ../../../ui.cpp:1009
msgid " Generating"
msgstr " A gerar"
#: ../../../ui.cpp:1011
msgid "(not connected)"
msgstr "(sem ligação)"
#: ../../../ui.cpp:1014
#, c-format
msgid " %d connections %d blocks %d transactions"
msgstr " %d ligações %d blocos %d transacções"
#: ../../../ui.cpp:1123
#: ../../../ui.cpp:2351
msgid "New Receiving Address"
msgstr "Novo Endereço de Recepção"
#: ../../../ui.cpp:1124
#: ../../../ui.cpp:2352
msgid ""
"You should use a new address for each payment you receive.\n"
"\n"
"Label"
msgstr ""
"É uma boa política utilizar um endereço diferente para cada pagamento que recebe.\n"
"\n"
"Etiqueta"
#: ../../../ui.cpp:1193
msgid "<b>Status:</b> "
msgstr "<b>Estado:</b> "
#: ../../../ui.cpp:1198
msgid ", has not been successfully broadcast yet"
msgstr ", ainda não foram anunciadas com sucesso"
#: ../../../ui.cpp:1200
#, c-format
msgid ", broadcast through %d node"
msgstr ", anunciar por %d nó"
#: ../../../ui.cpp:1202
#, c-format
msgid ", broadcast through %d nodes"
msgstr ", anunciar por %d nós"
#: ../../../ui.cpp:1206
msgid "<b>Date:</b> "
msgstr "<b>Data:</b> "
#: ../../../ui.cpp:1214
msgid "<b>Source:</b> Generated<br>"
msgstr "<b>Fonte:</b> Gerado<br>"
#: ../../../ui.cpp:1220
#: ../../../ui.cpp:1238
msgid "<b>From:</b> "
msgstr "<b>Remetente:</b> "
#: ../../../ui.cpp:1238
msgid "unknown"
msgstr "desconhecido"
#: ../../../ui.cpp:1239
#: ../../../ui.cpp:1263
#: ../../../ui.cpp:1322
msgid "<b>To:</b> "
msgstr "<b>Destinatário:</b> "
#: ../../../ui.cpp:1242
msgid " (yours, label: "
msgstr " (seu, etiqueta: "
#: ../../../ui.cpp:1244
msgid " (yours)"
msgstr " (seu)"
#: ../../../ui.cpp:1281
#: ../../../ui.cpp:1293
#: ../../../ui.cpp:1356
msgid "<b>Credit:</b> "
msgstr "<b>Crédito:</b> "
#: ../../../ui.cpp:1283
#, c-format
msgid "(%s matures in %d more blocks)"
msgstr "(%s maduras em mais %d blocos)"
#: ../../../ui.cpp:1285
msgid "(not accepted)"
msgstr "(não aceite)"
#: ../../../ui.cpp:1330
#: ../../../ui.cpp:1353
msgid "<b>Debit:</b> "
msgstr "<b>Débito:</b> "
#: ../../../ui.cpp:1344
msgid "<b>Transaction fee:</b> "
msgstr "<b>Percentagem da transacção:</b> "
#: ../../../ui.cpp:1360
msgid "<b>Net amount:</b> "
msgstr "<b>Quantia Net:</b> "
#: ../../../ui.cpp:1367
msgid "Message:"
msgstr "Mensagem:"
#: ../../../ui.cpp:1370
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 "As moedas geradas necessitam de 120 blocos para que possam ser gastas. Quando gera um bloco, ele será anunciado pela rede para ser adicionado à cadeia de blocos. Se falhar, mudará para \"não aceite\" e não será possível utilizá-lo. Isto pode acontecer se um nó gerar outro bloco após alguns segundos do seu."
#: ../../../ui.cpp:1437
msgid "Main"
msgstr "Principal"
#: ../../../ui.cpp:1442
msgid "&Minimize on close"
msgstr "&Minimizar ao fechar"
#: ../../../ui.cpp:1595
#, c-format
msgid "version %s%s BETA"
msgstr "versão %s%s BETA"
#: ../../../ui.cpp:1681
msgid "Will appear as \"From: Unknown\""
msgstr "Irá aparecer como \"De: Desconhecido\""
#: ../../../ui.cpp:1681
msgid "n/a"
msgstr "Desconhecido"
#: ../../../ui.cpp:1681
msgid "Unknown"
msgstr "Desconhecido"
#: ../../../ui.cpp:1682
msgid "Can't include a message when sending to a Bitcoin address"
msgstr "Não é possível incluir uma mensagem ao enviar para um endereço Bitcoin"
#: ../../../ui.cpp:1735
msgid "Error in amount "
msgstr "Erro na quantia "
#: ../../../ui.cpp:1735
#: ../../../ui.cpp:1740
#: ../../../ui.cpp:1745
#: ../../../ui.cpp:1771
#: ../../../uibase.cpp:61
msgid "Send Coins"
msgstr "Enviar Moedas"
#: ../../../ui.cpp:1740
msgid "Amount exceeds your balance "
msgstr "A quantia excede o seu saldo "
#: ../../../ui.cpp:1745
msgid "Total exceeds your balance when the "
msgstr "O total excede o seu saldo quando a "
#: ../../../ui.cpp:1745
msgid " transaction fee is included "
msgstr " taxa de transacção for incluída "
#: ../../../ui.cpp:1761
msgid "Payment sent "
msgstr "Pagamento enviado "
#: ../../../ui.cpp:1771
msgid "Invalid address "
msgstr "Endereço inválido "
#: ../../../ui.cpp:1825
#, c-format
msgid "Sending %s to %s"
msgstr "A enviar %s para %s"
#: ../../../ui.cpp:1898
#: ../../../ui.cpp:1931
msgid "CANCELLED"
msgstr "CANCELADO"
#: ../../../ui.cpp:1902
msgid "Cancelled"
msgstr "Cancelado"
#: ../../../ui.cpp:1904
msgid "Transfer cancelled "
msgstr "Transferência cancelada "
#: ../../../ui.cpp:1957
msgid "Error: "
msgstr "Erro: "
#: ../../../ui.cpp:1976
msgid "Connecting..."
msgstr "A estabelecer ligação ..."
#: ../../../ui.cpp:1981
msgid "Unable to connect"
msgstr "Impossível estabelecer ligação"
#: ../../../ui.cpp:1986
msgid "Requesting public key..."
msgstr "A requisitar a chave pública ..."
#: ../../../ui.cpp:1998
msgid "Received public key..."
msgstr "Chave pública recebida"
#: ../../../ui.cpp:2010
msgid "Transfer was not accepted"
msgstr "A transferência não foi aceite"
#: ../../../ui.cpp:2019
msgid "Invalid response received"
msgstr "Resposta inválida recebida"
#: ../../../ui.cpp:2034
msgid "Creating transaction..."
msgstr "A criar a transacção ..."
#: ../../../ui.cpp:2046
#, c-format
msgid "This is an oversized transaction that requires a transaction fee of %s"
msgstr "Esta transferência requer o pagamento de uma taxa de transacção de %s"
#: ../../../ui.cpp:2048
msgid "Transaction creation failed"
msgstr "A criação da transacção falhou"
#: ../../../ui.cpp:2055
msgid "Transaction aborted"
msgstr "Transacção cancelada"
#: ../../../ui.cpp:2063
msgid "Lost connection, transaction cancelled"
msgstr "Perca de ligação, transacção cancelada"
#: ../../../ui.cpp:2079
msgid "Sending payment..."
msgstr "A enviar pagamento ..."
#: ../../../ui.cpp:2085
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 "A transacção foi rejeitada. Isto pode acontecer se algumas das moedas na sua carteira já foram utilizadas, como na utilização de uma cópia do wallet.dat, onde as moedas foram utilizadas na cópia do ficheiro e essas alterações não reflectem o estado desta carteira."
#: ../../../ui.cpp:2092
msgid "Waiting for confirmation..."
msgstr "A aguardar confirmação ..."
#: ../../../ui.cpp:2110
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 ""
"O pagamento foi enviado, mas o remetente não consegiu verificar o seu pagamento.\n"
"A transacção foi entregue, e o remetente receberá as modeas,\n"
"no entanto, o comentário de transacção estará vazio."
#: ../../../ui.cpp:2119
msgid "Payment was sent, but an invalid response was received"
msgstr "O pagamento foi enviado, mas foi recebida uma resposta inválida"
#: ../../../ui.cpp:2125
msgid "Payment completed"
msgstr "Pagamento completo"
#: ../../../ui.cpp:2156
#: ../../../ui.cpp:2302
#: ../../../ui.cpp:2339
msgid "Name"
msgstr "Nome"
#: ../../../ui.cpp:2157
#: ../../../ui.cpp:2302
#: ../../../ui.cpp:2339
msgid "Address"
msgstr "Endereço"
#: ../../../ui.cpp:2159
#: ../../../ui.cpp:2314
msgid "Label"
msgstr "Nota"
#: ../../../ui.cpp:2160
#: ../../../uibase.cpp:908
msgid "Bitcoin Address"
msgstr "Endereço Bitcoin"
#: ../../../ui.cpp:2284
msgid "This is one of your own addresses for receiving payments and cannot be entered in the address book. "
msgstr "Este endereço é seu (onde recebe pagamentos) e não pode ser introduzido no seu livros de endereços. "
#: ../../../ui.cpp:2302
#: ../../../ui.cpp:2308
msgid "Edit Address"
msgstr "Editar endereço"
#: ../../../ui.cpp:2314
msgid "Edit Address Label"
msgstr "Editar nota de endereço"
#: ../../../ui.cpp:2339
#: ../../../ui.cpp:2345
msgid "Add Address"
msgstr "Adicionar endereço"
#: ../../../ui.cpp:2421
msgid "Bitcoin"
msgstr "Bitcoin"
#: ../../../ui.cpp:2423
msgid "Bitcoin - Generating"
msgstr "Bitcoin - A gerar"
#: ../../../ui.cpp:2425
msgid "Bitcoin - (not connected)"
msgstr "Bitcoin - (sem ligação)"
#: ../../../ui.cpp:2500
msgid "&Open Bitcoin"
msgstr "&Abrir Bitcoin"
#: ../../../ui.cpp:2501
msgid "O&ptions..."
msgstr "O&pções"
#: ../../../ui.cpp:2505
#: ../../../uibase.cpp:27
msgid "E&xit"
msgstr "S&air"
#: ../../../uibase.cpp:30
msgid "&File"
msgstr "&Ficheiro"
#: ../../../uibase.cpp:38
msgid "&Your Receiving Addresses..."
msgstr "&Os seus endereços"
#: ../../../uibase.cpp:42
msgid "&Options..."
msgstr "&Opções ..."
#: ../../../uibase.cpp:45
msgid "&Settings"
msgstr "&Definições"
#: ../../../uibase.cpp:49
msgid "&About..."
msgstr "&Sobre ..."
#: ../../../uibase.cpp:52
msgid "&Help"
msgstr "&Ajuda"
#: ../../../uibase.cpp:62
msgid "Address Book"
msgstr "Livro de Endereços"
#: ../../../uibase.cpp:77
msgid "Your Bitcoin Address:"
msgstr "O seu endereço Bitcoin:"
#: ../../../uibase.cpp:84
msgid " &New... "
msgstr " &Novo ... "
#: ../../../uibase.cpp:87
#: ../../../uibase.cpp:851
#: ../../../uibase.cpp:954
msgid " &Copy to Clipboard "
msgstr " &Copiar para o Clipboard "
#: ../../../uibase.cpp:102
msgid "Balance:"
msgstr "Saldo:"
#: ../../../uibase.cpp:121
msgid " All"
msgstr " Todos"
#: ../../../uibase.cpp:121
msgid " Sent"
msgstr " Enviado"
#: ../../../uibase.cpp:121
msgid " Received"
msgstr " Recebido"
#: ../../../uibase.cpp:121
msgid " In Progress"
msgstr " Em progresso"
#: ../../../uibase.cpp:142
msgid "All Transactions"
msgstr "Todas as transacções"
#: ../../../uibase.cpp:153
msgid "Sent/Received"
msgstr "Enviadas/Recebidas"
#: ../../../uibase.cpp:164
msgid "Sent"
msgstr "Enviado"
#: ../../../uibase.cpp:175
msgid "Received"
msgstr "Recebido"
#: ../../../uibase.cpp:318
#: ../../../uibase.cpp:479
#: ../../../uibase.cpp:580
#: ../../../uibase.cpp:793
#: ../../../uibase.cpp:854
#: ../../../uibase.cpp:963
#: ../../../uibase.cpp:1052
msgid "OK"
msgstr "OK"
#: ../../../uibase.cpp:361
msgid "Optional transaction fee you give to the nodes that process your transactions."
msgstr "Pagamento de taxa de transacção opcional que é entregue aos nós que ajudam a processar o seu pagamento"
#: ../../../uibase.cpp:370
msgid "Transaction fee:"
msgstr "Taxa de transacção:"
#: ../../../uibase.cpp:386
msgid "&Limit coin generation to"
msgstr "&Limitar a geração de moedas a"
#: ../../../uibase.cpp:393
msgid "processors"
msgstr "processadores"
#: ../../../uibase.cpp:399
msgid "&Start Bitcoin on system startup"
msgstr "&Iniciar o Bitcoin no arranque do sistema"
#: ../../../uibase.cpp:403
msgid "&Minimize to the tray instead of the taskbar"
msgstr "&Minimizar para a zona do relógio em vez da barra de janelas"
#: ../../../uibase.cpp:407
msgid "M&inimize to the tray on close"
msgstr "M&inimizar para a zona do relógio ao fechar"
#: ../../../uibase.cpp:414
msgid "&Connect through socks4 proxy: "
msgstr "&Ligar através de um prozy socks4: "
#: ../../../uibase.cpp:426
msgid "Proxy &IP:"
msgstr "Proxy &IP:"
#: ../../../uibase.cpp:434
msgid " &Port:"
msgstr " &Porto:"
#: ../../../uibase.cpp:456
msgid "// [don't translate] Test panel 2 for future expansion"
msgstr ""
#: ../../../uibase.cpp:460
msgid "// [don't translate] Let's not start multiple pages until the first page is filled up"
msgstr ""
#: ../../../uibase.cpp:482
#: ../../../uibase.cpp:735
#: ../../../uibase.cpp:798
#: ../../../uibase.cpp:857
#: ../../../uibase.cpp:966
#: ../../../uibase.cpp:1055
msgid "Cancel"
msgstr "Cancelar"
#: ../../../uibase.cpp:485
msgid "&Apply"
msgstr "&Aplicar"
#: ../../../uibase.cpp:546
msgid "Bitcoin "
msgstr "Bitcoin "
#: ../../../uibase.cpp:552
msgid "version"
msgstr "versão"
#: ../../../uibase.cpp:563
msgid ""
"Copyright (c) 2009-2010 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-2010 Bitcoin Developers\n"
"\n"
"Este software é experimental.\n"
"\n"
"Distribuído sob a licença de software MIT/X11. Veja os seguintes ficheiros \n"
"para mais informações license.txt ou \n"
"http://www.opensource.org/licenses/mit-license.php.\n"
"Este producto inclui software desenvolvido pelo projecto OpenSSL, para \n"
"ser utilizado no OpenSSL Toolkit (http://www.openssl.org) e software de \n"
"criptografia desenvolvido por Eric Young (eay@cryptsoft.com)\n"
"e UPnP software escrito por Thomas Bernard."
#: ../../../uibase.cpp:619
msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJED9L) or IP address (e.g. 123.45.6.7)"
msgstr "Introduza um endereço Bitcoin (exemplo: 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJED9L) ou um endereço de IP (exemplo: 123.45.6.7)"
#: ../../../uibase.cpp:633
msgid "Pay &To:"
msgstr "Pagar &a:"
#: ../../../uibase.cpp:648
msgid "&Paste"
msgstr "&Colar"
#: ../../../uibase.cpp:651
msgid " Address &Book..."
msgstr " Livro de endereços ..."
#: ../../../uibase.cpp:658
msgid "&Amount:"
msgstr "&Quantia:"
#: ../../../uibase.cpp:668
msgid "T&ransfer:"
msgstr "T&ransferência:"
#: ../../../uibase.cpp:674
msgid " Standard"
msgstr " Standard"
#: ../../../uibase.cpp:696
msgid "&From:"
msgstr "&De:"
#: ../../../uibase.cpp:713
msgid "&Message:"
msgstr "&Mensagem:"
#: ../../../uibase.cpp:730
msgid "&Send"
msgstr "&Enviar"
#: ../../../uibase.cpp:782
msgid ""
"\n"
"\n"
"Connecting..."
msgstr ""
"\n"
"\n"
"A estabelecer ligação ..."
#: ../../../uibase.cpp:832
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 "Estes são os seus endereços de Bitcoin onde poderá receber os seus pagamentos. Pode dar um endereço diferente a cada pessoa ou identidade para ter uma melhor ideia sobre quem o está a pagar. O endereço seleccionado será o que aparecerá na janela principal."
#: ../../../uibase.cpp:845
#: ../../../uibase.cpp:957
msgid "&Edit..."
msgstr "&Editar ..."
#: ../../../uibase.cpp:848
#: ../../../uibase.cpp:960
msgid " &New Address... "
msgstr " &Novo endereço ... "
#: ../../../uibase.cpp:920
msgid "Sending"
msgstr "A enviar"
#: ../../../uibase.cpp:928
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 "Estes são os seus endereços de Bitcoin onde poderá receber os seus pagamentos. Pode dar um endereço diferente a cada pessoa ou identidade para ter uma melhor ideia sobre quem o está a pagar. O endereço seleccionado será o que aparecerá na janela principal."
#: ../../../uibase.cpp:941
msgid "Receiving"
msgstr "A receber"
#: ../../../uibase.cpp:951
msgid "&Delete"
msgstr "&Remover"
#: ../../../uibase.h:150
msgid "Transaction Details"
msgstr "Detalhes da transacção"
#: ../../../uibase.h:203
msgid "Options"
msgstr "Opções"
#: ../../../uibase.h:231
msgid "About Bitcoin"
msgstr "Sobre o Bitcoin"
#: ../../../uibase.h:341
msgid "Your Bitcoin Addresses"
msgstr "O seu endereço de Bitcoin"

View File

@@ -1,5 +0,0 @@
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.

View File

@@ -1,973 +0,0 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-07-03 10:40+0100\n"
"PO-Revision-Date: 2011-07-03 15:13+0100\n"
"Last-Translator: Codler <github>\n"
"Language-Team: \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"
#: ../../../init.cpp:162
msgid "Bitcoin version"
msgstr "Bitcoin version"
#: ../../../init.cpp:163
msgid "Usage:"
msgstr "Användning:"
#: ../../../init.cpp:165
msgid "Send command to -server or bitcoind\n"
msgstr "Skicka kommando till -server eller bitcoind\n"
#: ../../../init.cpp:166
msgid "List commands\n"
msgstr "Lista kommandon\n"
#: ../../../init.cpp:167
msgid "Get help for a command\n"
msgstr "Få hjälp om kommandon\n"
#: ../../../init.cpp:168
msgid "Options:\n"
msgstr "Val:\n"
#: ../../../init.cpp:169
msgid "Specify configuration file (default: bitcoin.conf)\n"
msgstr "Ange konfigurationsfil (standard: bitcoin.conf)\n"
#: ../../../init.cpp:170
msgid "Specify pid file (default: bitcoind.pid)\n"
msgstr "Ange pid-fil (standard: bitcoind.pid)\n"
#: ../../../init.cpp:171
msgid "Generate coins\n"
msgstr "Generera mynt\n"
#: ../../../init.cpp:172
msgid "Don't generate coins\n"
msgstr "Generera inte mynt\n"
#: ../../../init.cpp:173
msgid "Start minimized\n"
msgstr "Starta minimerad\n"
#: ../../../init.cpp:174
msgid "Specify data directory\n"
msgstr "Ange data mappen\n"
#: ../../../init.cpp:175
msgid "Specify connection timeout (in milliseconds)\n"
msgstr "Ange timeout för anslutning (i millisekunder)\n"
#: ../../../init.cpp:176
msgid "Connect through socks4 proxy\n"
msgstr "Anslut via socks4 proxy\n"
#: ../../../init.cpp:177
msgid "Allow DNS lookups for addnode and connect\n"
msgstr "Tillåt DNS uppslagningar för addnode och connect\n"
#: ../../../init.cpp:178
msgid "Add a node to connect to\n"
msgstr "Lägg till en nod att ansluta till\n"
#: ../../../init.cpp:179
msgid "Connect only to the specified node\n"
msgstr "Anslut endast till specifik nod\n"
#: ../../../init.cpp:180
msgid "Don't accept connections from outside\n"
msgstr "Acceptera ej anslutningar från utsidan\n"
#: ../../../init.cpp:183
msgid "Don't attempt to use UPnP to map the listening port\n"
msgstr "Försöker inte använda UPnP till avslyssningsport\n"
#: ../../../init.cpp:185
msgid "Attempt to use UPnP to map the listening port\n"
msgstr "Försöker använda UPnP till avlyssningsport\n"
#: ../../../init.cpp:188
msgid "Fee per KB to add to transactions you send\n"
msgstr "Avgift per KB som läggs på transaktionen när du sänder\n"
#: ../../../init.cpp:190
msgid "Accept command line and JSON-RPC commands\n"
msgstr "Accepterar kommandorad och JSON-RPC kommando\n"
#: ../../../init.cpp:193
msgid "Run in the background as a daemon and accept commands\n"
msgstr "Kör i bakgrund som daemon och accepterar kommando\n"
#: ../../../init.cpp:195
msgid "Use the test network\n"
msgstr "Använd test nätverk\n"
#: ../../../init.cpp:196
msgid "Username for JSON-RPC connections\n"
msgstr "Användarnamn till JSON-RPC anslutning\n"
#: ../../../init.cpp:197
msgid "Password for JSON-RPC connections\n"
msgstr "Lösenord till JSON-RPC anslutning\n"
#: ../../../init.cpp:198
msgid "Listen for JSON-RPC connections on <port> (default: 8332)\n"
msgstr "Lyssnar på JSON-RPC anslutningar på <port> (standard: 8332)\n"
#: ../../../init.cpp:199
msgid "Allow JSON-RPC connections from specified IP address\n"
msgstr "Tillåt JSON-RPC anslutningar från specifik IP-adress\n"
#: ../../../init.cpp:200
msgid "Send commands to node running on <ip> (default: 127.0.0.1)\n"
msgstr "Skicka kommando till noden som körs på <ip> (standard: 127.0.0.1)\n"
#: ../../../init.cpp:201
msgid "Set key pool size to <n> (default: 100)\n"
msgstr "Sätt nyckel pool storlek till <n> (standard: 100)\n"
#: ../../../init.cpp:202
msgid "Rescan the block chain for missing wallet transactions\n"
msgstr "Scanna om block kedja efter saknade plånbokstransaktioner\n"
#: ../../../init.cpp:206
msgid ""
"\n"
"SSL options: (see the Bitcoin Wiki for SSL setup instructions)\n"
msgstr ""
"\n"
"SSL val: (Se på Bitcoin Wiki för SSL installation instruktioner)\n"
#: ../../../init.cpp:207
msgid "Use OpenSSL (https) for JSON-RPC connections\n"
msgstr "Använd OpenSSL (https) till JSON-RPC anslutningar\n"
#: ../../../init.cpp:208
msgid "Server certificate file (default: server.cert)\n"
msgstr "Server certifikatfil (standard: server.cert)\n"
#: ../../../init.cpp:209
msgid "Server private key (default: server.pem)\n"
msgstr "Server privat nyckel (standard: server.pem)\n"
#: ../../../init.cpp:210
msgid "Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
msgstr "Acceptabla krypteringar (standard: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
#: ../../../init.cpp:214
msgid "This help message\n"
msgstr "Detta hjälpmeddelande\n"
#: ../../../init.cpp:351
#, c-format
msgid "Cannot obtain a lock on data directory %s. Bitcoin is probably already running."
msgstr "Kan inte sätta lås på data mappen %s. Bitcoin körs troligen redan."
#: ../../../init.cpp:377
msgid "Error loading addr.dat \n"
msgstr "Fel vid laddning av addr.dat \n"
#: ../../../init.cpp:383
msgid "Error loading blkindex.dat \n"
msgstr "Fel vid laddning av blkindex.dat \n"
#: ../../../init.cpp:391
msgid "Error loading wallet.dat \n"
msgstr "Fel vid laddning av wallet.dat \n"
#: ../../../init.cpp:481
msgid "Invalid -proxy address"
msgstr "Ogiltig -proxy adress"
#: ../../../init.cpp:506
msgid "Invalid amount for -paytxfee=<amount>"
msgstr "Ogiltig belopp på -paytxfee=<belopp>"
#: ../../../init.cpp:510
msgid "Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction."
msgstr "Varning: -paytxfee är satt väldigt högt. Denna är transaktionsavgiften som du kommer att betala om du skickar en transaktion."
#: ../../../main.cpp:1430
msgid "Warning: Disk space is low "
msgstr "Varning: Diskutrymme är låg "
#: ../../../net.cpp:1598
#, c-format
msgid "Unable to bind to port %d on this computer. Bitcoin is probably already running."
msgstr "Det gick inte att binda till port %d på denna dator. Bitcoin körs troligen redan."
#: ../../../rpc.cpp:1828
#: ../../../rpc.cpp:1830
#, c-format
msgid "To use the %s option"
msgstr "För att använda %s val"
#: ../../../rpc.cpp:1832
#, 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 ""
"Varning: %s, du måste sätta rpcpassword=<lösenord>\n"
"i konfigurationsfilen: %s\n"
"Om filen inte existerar, skapa med ägare med filbehörigheten -readable-only.\n"
#: ../../../rpc.cpp:2005
#, 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 ""
"Du måste sätta rpcpassword=<lösenord> i konfigurationsfilen:\n"
"%s\n"
"Om filen inte existerar, skapa med ägare med filbehörighete -readable-only."
#: ../../../ui.cpp:216
#, 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 "Denna transaktion är över storleksbegränsningen. Du kan fortfarande skicka mot en avgift på %s, som går till noderna som bearbetar din transaktion och hjälper att stödja nätverket. Vill du fortfarande betala avgiften?"
#: ../../../ui.cpp:316
msgid "Status"
msgstr "Status"
#: ../../../ui.cpp:317
msgid "Date"
msgstr "Datum"
#: ../../../ui.cpp:318
msgid "Description"
msgstr "Beskrivning"
#: ../../../ui.cpp:319
msgid "Debit"
msgstr "Debet"
#: ../../../ui.cpp:320
msgid "Credit"
msgstr "Kredit"
#: ../../../ui.cpp:526
#, c-format
msgid "Open for %d blocks"
msgstr "Öppen för %d block"
#: ../../../ui.cpp:528
#, c-format
msgid "Open until %s"
msgstr "Öppen tills %s"
#: ../../../ui.cpp:534
#, c-format
msgid "%d/offline?"
msgstr "%d/offline?"
#: ../../../ui.cpp:536
#, c-format
msgid "%d/unconfirmed"
msgstr "%d/obekräftade"
#: ../../../ui.cpp:538
#, c-format
msgid "%d confirmations"
msgstr "%d bekräftelser"
#: ../../../ui.cpp:623
msgid "Generated"
msgstr "Genererad"
#: ../../../ui.cpp:631
#, c-format
msgid "Generated (%s matures in %d more blocks)"
msgstr "Genererad (%s mognar om %d block)"
#: ../../../ui.cpp:635
msgid "Generated - Warning: This block was not received by any other nodes and will probably not be accepted!"
msgstr "Genererad - Varning: Denna block har inte blivit mottagen av någon annan nod och kommer troligtvis inte bli accepterad"
#: ../../../ui.cpp:639
msgid "Generated (not accepted)"
msgstr "Genererad (ej accepterad)"
#: ../../../ui.cpp:649
msgid "From: "
msgstr "Från: "
#: ../../../ui.cpp:673
msgid "Received with: "
msgstr "Mottagen med: "
#: ../../../ui.cpp:719
msgid "Payment to yourself"
msgstr "Betalning till dig själv"
#: ../../../ui.cpp:753
msgid "To: "
msgstr "Till: "
#: ../../../ui.cpp:1068
msgid " Generating"
msgstr " Generering"
#: ../../../ui.cpp:1070
msgid "(not connected)"
msgstr "(inte ansluten)"
#: ../../../ui.cpp:1073
#, c-format
msgid " %d connections %d blocks %d transactions"
msgstr " %d anslutningar %d block %d transaktioner"
#: ../../../ui.cpp:1178
#: ../../../ui.cpp:2577
msgid "New Receiving Address"
msgstr "Ny Mottagningsadress"
#: ../../../ui.cpp:1179
#: ../../../ui.cpp:2578
msgid ""
"You should use a new address for each payment you receive.\n"
"\n"
"Label"
msgstr ""
"Du borde använda en ny adress för varje betalning som du mottagit.\n"
"\n"
"Etikett"
#: ../../../ui.cpp:1252
msgid "<b>Status:</b> "
msgstr "<b>Status:</b> "
#: ../../../ui.cpp:1257
msgid ", has not been successfully broadcast yet"
msgstr ", har inte lyckats broadcast än"
#: ../../../ui.cpp:1259
#, c-format
msgid ", broadcast through %d node"
msgstr ", broadcast genom %d nod"
#: ../../../ui.cpp:1261
#, c-format
msgid ", broadcast through %d nodes"
msgstr ", broadcast genom %d noder"
#: ../../../ui.cpp:1265
msgid "<b>Date:</b> "
msgstr "<b>Datum:</b> "
#: ../../../ui.cpp:1273
msgid "<b>Source:</b> Generated<br>"
msgstr "<b>Källa:</b> Genererad<br>"
#: ../../../ui.cpp:1279
#: ../../../ui.cpp:1297
msgid "<b>From:</b> "
msgstr "<b>Från:</b> "
#: ../../../ui.cpp:1297
msgid "unknown"
msgstr "okänd"
#: ../../../ui.cpp:1298
#: ../../../ui.cpp:1322
#: ../../../ui.cpp:1381
msgid "<b>To:</b> "
msgstr "<b>Till:</b> "
#: ../../../ui.cpp:1301
msgid " (yours, label: "
msgstr " (din, etikett: "
#: ../../../ui.cpp:1303
msgid " (yours)"
msgstr " (ditt)"
#: ../../../ui.cpp:1340
#: ../../../ui.cpp:1352
#: ../../../ui.cpp:1398
#: ../../../ui.cpp:1415
msgid "<b>Credit:</b> "
msgstr "<b>Kredit:</b> "
#: ../../../ui.cpp:1342
#, c-format
msgid "(%s matures in %d more blocks)"
msgstr "(%s mognar om %d block)"
#: ../../../ui.cpp:1344
msgid "(not accepted)"
msgstr "(ej accepterad)"
#: ../../../ui.cpp:1389
#: ../../../ui.cpp:1397
#: ../../../ui.cpp:1412
msgid "<b>Debit:</b> "
msgstr "<b>Debet:</b> "
#: ../../../ui.cpp:1403
msgid "<b>Transaction fee:</b> "
msgstr "<b>Transaktionsavgift:</b> "
#: ../../../ui.cpp:1419
msgid "<b>Net amount:</b> "
msgstr "<b>Nät belopp:</b> "
#: ../../../ui.cpp:1426
msgid "Message:"
msgstr "Meddelande:"
#: ../../../ui.cpp:1428
msgid "Comment:"
msgstr "Kommentar:"
#: ../../../ui.cpp:1431
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 "Genererad mynt måste vänta 120 block innan dem kan användas.När du genererat denna block, skickades en broadcast till nätet och lades till block kedjan. Om den misslyckas att lägga till kedjan så kommer det ändras till \"not accepted\" och är icke brukbar. Detta kan hända om en annan nod genererat en block några sekunder efter din."
#: ../../../ui.cpp:1611
msgid "Cannot write autostart/bitcoin.desktop file"
msgstr "Kan inte skriva autostart/bitcoin.desktop fil"
#: ../../../ui.cpp:1647
msgid "Main"
msgstr "Allmänt"
#: ../../../ui.cpp:1657
msgid "&Start Bitcoin on window system startup"
msgstr "&Starta Bitcoin vid system uppstart"
#: ../../../ui.cpp:1664
msgid "&Minimize on close"
msgstr "&Minimera vid stängning"
#: ../../../ui.cpp:1806
#, c-format
msgid "version %s"
msgstr "version %s"
#: ../../../ui.cpp:1929
msgid "Error in amount "
msgstr "Fel i belopp "
#: ../../../ui.cpp:1929
#: ../../../ui.cpp:1934
#: ../../../ui.cpp:1939
#: ../../../ui.cpp:1974
#: ../../../uibase.cpp:55
msgid "Send Coins"
msgstr "Skicka mynt"
#: ../../../ui.cpp:1934
msgid "Amount exceeds your balance "
msgstr "Belopp överskrider din balans "
#: ../../../ui.cpp:1939
msgid "Total exceeds your balance when the "
msgstr "Totalt överskrider din balans när "
#: ../../../ui.cpp:1939
msgid " transaction fee is included "
msgstr " transaktionsavgift är inkluderad "
#: ../../../ui.cpp:1957
msgid "Payment sent "
msgstr "Betalning skickad "
#: ../../../ui.cpp:1957
#: ../../../ui.cpp:1962
#: ../../../ui.cpp:2108
#: ../../../ui.cpp:2261
#: ../../../wallet.cpp:924
msgid "Sending..."
msgstr "Skickar..."
#: ../../../ui.cpp:1974
msgid "Invalid address "
msgstr "Ogiltig adress "
#: ../../../ui.cpp:2029
#, c-format
msgid "Sending %s to %s"
msgstr "Skickar %s till %s"
#: ../../../ui.cpp:2102
#: ../../../ui.cpp:2135
msgid "CANCELLED"
msgstr "AVBRUTEN"
#: ../../../ui.cpp:2106
msgid "Cancelled"
msgstr "Avbruten"
#: ../../../ui.cpp:2108
msgid "Transfer cancelled "
msgstr "Överföring avbruten "
#: ../../../ui.cpp:2161
msgid "Error: "
msgstr "Fel: "
#: ../../../ui.cpp:2175
#: ../../../ui.cpp:2246
#: ../../../wallet.cpp:943
msgid "Insufficient funds"
msgstr "Otillräckligt med pengar"
#: ../../../ui.cpp:2180
msgid "Connecting..."
msgstr "Ansluter..."
#: ../../../ui.cpp:2185
msgid "Unable to connect"
msgstr "Det gick inte att ansluta"
#: ../../../ui.cpp:2190
msgid "Requesting public key..."
msgstr "Efterfrågar publik nyckel..."
#: ../../../ui.cpp:2202
msgid "Received public key..."
msgstr "Mottagen publik nyckel..."
#: ../../../ui.cpp:2216
msgid "Recipient is not accepting transactions sent by IP address"
msgstr "Mottagaren accepterar inte transaktioner skickat från IP adress"
#: ../../../ui.cpp:2218
msgid "Transfer was not accepted"
msgstr "Överföringen var inte accepterad"
#: ../../../ui.cpp:2227
msgid "Invalid response received"
msgstr "Ogiltig respons mottagen"
#: ../../../ui.cpp:2242
msgid "Creating transaction..."
msgstr "Skapar transation..."
#: ../../../ui.cpp:2254
#, 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 "Denna transaktion kräver en transaktionsavgift minst %s för dess belopp, komplexitet, eller användning av nyligen mottagna pengar"
#: ../../../ui.cpp:2256
msgid "Transaction creation failed"
msgstr "Misslyckades skapa transaktion"
#: ../../../ui.cpp:2263
msgid "Transaction aborted"
msgstr "Transaktion avbruten"
#: ../../../ui.cpp:2271
msgid "Lost connection, transaction cancelled"
msgstr "Förlorad anslutning, transaktionen avbruten"
#: ../../../ui.cpp:2287
msgid "Sending payment..."
msgstr "Skickar betalning..."
#: ../../../ui.cpp:2293
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 "Transaktionen blev nekad. Detta kan hända om några av dina mynt i din plånbok var redan spenderad. Till exempel om du använde en kopia av wallet.dat och mynten var redan spenderad i kopian, men som inte var markerad som spenderad här."
#: ../../../ui.cpp:2302
msgid "Waiting for confirmation..."
msgstr "Väntar på bekräftelse..."
#: ../../../ui.cpp:2320
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 ""
"Betalning var skickat, men mottagaren kunde inte verifiera det.\n"
"Transaktionen är registrerad och kommer att kreditera mottagaren,\n"
"men kommentar informationen kommer att vara tom."
#: ../../../ui.cpp:2329
msgid "Payment was sent, but an invalid response was received"
msgstr "Betalning var skickad, men en ogiltig respons var mottagen"
#: ../../../ui.cpp:2335
msgid "Payment completed"
msgstr "Betalning slutförd"
#: ../../../ui.cpp:2377
#: ../../../ui.cpp:2525
#: ../../../ui.cpp:2565
msgid "Name"
msgstr "Namn"
#: ../../../ui.cpp:2378
#: ../../../ui.cpp:2525
#: ../../../ui.cpp:2565
msgid "Address"
msgstr "Adress"
#: ../../../ui.cpp:2380
#: ../../../ui.cpp:2537
msgid "Label"
msgstr "Etikett"
#: ../../../ui.cpp:2381
#: ../../../uibase.cpp:837
msgid "Bitcoin Address"
msgstr "Bitcoin Adress"
#: ../../../ui.cpp:2507
msgid "This is one of your own addresses for receiving payments and cannot be entered in the address book. "
msgstr "Denna är en av dina egna adresser för mottagning av betalningar och kan inte slås in i adressboken. "
#: ../../../ui.cpp:2525
#: ../../../ui.cpp:2531
msgid "Edit Address"
msgstr "Ändra Adress"
#: ../../../ui.cpp:2537
msgid "Edit Address Label"
msgstr "Ändra Address Etikett"
#: ../../../ui.cpp:2565
#: ../../../ui.cpp:2571
msgid "Add Address"
msgstr "Lägg till Adress"
#: ../../../ui.cpp:2649
msgid "Bitcoin"
msgstr "Bitcoin"
#: ../../../ui.cpp:2651
msgid "Bitcoin - Generating"
msgstr "Bitcoin - Genererar"
#: ../../../ui.cpp:2653
msgid "Bitcoin - (not connected)"
msgstr "Bitcoin - (ej ansluten)"
#: ../../../ui.cpp:2732
msgid "&Open Bitcoin"
msgstr "&Öppna Bitcoin"
#: ../../../ui.cpp:2733
msgid "&Send Bitcoins"
msgstr "&Skicka Bitcoins"
#: ../../../ui.cpp:2734
msgid "O&ptions..."
msgstr "&Inställningar..."
#: ../../../ui.cpp:2737
#: ../../../uibase.cpp:25
msgid "E&xit"
msgstr "&Avsluta"
#: ../../../ui.cpp:2963
msgid "Program has crashed and will terminate. "
msgstr "Programmet har krachat och kommer att avslutas. "
#: ../../../uibase.cpp:28
msgid "&File"
msgstr "&Fil"
#: ../../../uibase.cpp:32
msgid "&Your Receiving Addresses..."
msgstr "&Dina Mottagningsadresser..."
#: ../../../uibase.cpp:36
msgid "&Options..."
msgstr "&Inställningar..."
#: ../../../uibase.cpp:39
msgid "&Settings"
msgstr "&Inställningar"
#: ../../../uibase.cpp:43
msgid "&About..."
msgstr "&Om..."
#: ../../../uibase.cpp:46
msgid "&Help"
msgstr "&Hjälp"
#: ../../../uibase.cpp:56
msgid "Address Book"
msgstr "Adressbok"
#: ../../../uibase.cpp:69
msgid "Your Bitcoin Address:"
msgstr "Din Bitcoin Adress:"
#: ../../../uibase.cpp:76
msgid " &New... "
msgstr " &Nytt... "
#: ../../../uibase.cpp:79
#: ../../../uibase.cpp:780
#: ../../../uibase.cpp:883
msgid " &Copy to Clipboard "
msgstr " &Kopiera till Urklipp "
#: ../../../uibase.cpp:93
msgid "Balance:"
msgstr "Balans:"
#: ../../../uibase.cpp:109
msgid " All"
msgstr " Alla"
#: ../../../uibase.cpp:109
msgid " Sent"
msgstr " Skickat"
#: ../../../uibase.cpp:109
msgid " Received"
msgstr " Mottagen"
#: ../../../uibase.cpp:109
msgid " In Progress"
msgstr " Pågående"
#: ../../../uibase.cpp:130
msgid "All Transactions"
msgstr "Alla Transaktioner"
#: ../../../uibase.cpp:141
msgid "Sent/Received"
msgstr "Skickat/Mottagen"
#: ../../../uibase.cpp:152
msgid "Sent"
msgstr "Skickat"
#: ../../../uibase.cpp:163
msgid "Received"
msgstr "Mottagen"
#: ../../../uibase.cpp:302
#: ../../../uibase.cpp:443
#: ../../../uibase.cpp:542
#: ../../../uibase.cpp:722
#: ../../../uibase.cpp:783
#: ../../../uibase.cpp:892
#: ../../../uibase.cpp:981
msgid "OK"
msgstr "OK"
#: ../../../uibase.cpp:345
msgid "&Start Bitcoin on system startup"
msgstr "&Starta Bitcoin vid system uppstart"
#: ../../../uibase.cpp:348
msgid "&Minimize to the tray instead of the taskbar"
msgstr "&Minimerar till systemfältet istället för aktivitetsfält"
#: ../../../uibase.cpp:351
msgid "Map port using &UPnP"
msgstr "Mapp port använder &UPnP"
#: ../../../uibase.cpp:354
msgid "M&inimize to the tray on close"
msgstr "M&inimera till systemfältet vid stängning"
#: ../../../uibase.cpp:360
msgid "&Connect through socks4 proxy: "
msgstr "&Anslut via socks4 proxy: "
#: ../../../uibase.cpp:371
msgid "Proxy &IP:"
msgstr "Proxy &IP:"
#: ../../../uibase.cpp:379
msgid " &Port:"
msgstr " &Port:"
#: ../../../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 "Frivillig transaktionsavgift per KB som garanterar att din transaktion bearbetas snabbt. Flesta transaktioner är 1KB. Avgift 0.01 rekommenderas."
#: ../../../uibase.cpp:399
msgid "Pay transaction fee:"
msgstr "Betala transaktionsavgift:"
#: ../../../uibase.cpp:420
msgid "// [don't translate] Test panel 2 for future expansion"
msgstr ""
#: ../../../uibase.cpp:424
msgid "// [don't translate] Let's not start multiple pages until the first page is filled up"
msgstr ""
#: ../../../uibase.cpp:446
#: ../../../uibase.cpp:668
#: ../../../uibase.cpp:727
#: ../../../uibase.cpp:786
#: ../../../uibase.cpp:895
#: ../../../uibase.cpp:984
msgid "Cancel"
msgstr "Avbryt"
#: ../../../uibase.cpp:449
msgid "&Apply"
msgstr "&Använd"
#: ../../../uibase.cpp:508
msgid "Bitcoin "
msgstr "Bitcoin "
#: ../../../uibase.cpp:514
msgid "version"
msgstr "version"
#: ../../../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 Bitcoin Developers\n"
"\n"
"Detta är en experimentell mjukvara.\n"
"\n"
"Distribuerad under MIT/X11 mjukvarulicens, se medföljande fil \n"
"license.txt eller http://www.opensource.org/licenses/mit-license.php.\n"
"\n"
"Denna produkt inkluderar mjukvara utvecklad av OpenSSL Project för användning i \n"
"OpenSSL Toolkit (http://www.openssl.org/) och kryptografisk mjukvara skriven av \n"
"Eric Young (eay@cryptsoft.com) och UPnP mjukvara skriven av Thomas Bernard.\n"
"\n"
"Översatt av Han Lin Yap."
#: ../../../uibase.cpp:581
msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
msgstr "Ange en Bitcoin adress (t.ex. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
#: ../../../uibase.cpp:595
msgid "Pay &To:"
msgstr "Betala &Till:"
#: ../../../uibase.cpp:610
msgid "&Paste"
msgstr "&Klistra in"
#: ../../../uibase.cpp:613
msgid " Address &Book..."
msgstr " Adress&bok..."
#: ../../../uibase.cpp:620
msgid "&Amount:"
msgstr "&Belopp:"
#: ../../../uibase.cpp:630
msgid "T&ransfer:"
msgstr "&Överföring:"
#: ../../../uibase.cpp:636
msgid " Standard"
msgstr " Standard"
#: ../../../uibase.cpp:663
msgid "&Send"
msgstr "&Skicka"
#: ../../../uibase.cpp:711
msgid ""
"\n"
"\n"
"Connecting..."
msgstr ""
"\n"
"\n"
"Ansluter..."
#: ../../../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 "Dessa är dina Bitcoin adresser för mottagning av betalningar. Du rekommenderas att ge olika till varje avsändare så du kan ha koll på vem som betalar dig. Den markerade adressen visas i huvudfönstret."
#: ../../../uibase.cpp:774
#: ../../../uibase.cpp:886
msgid "&Edit..."
msgstr "&Redigera..."
#: ../../../uibase.cpp:777
#: ../../../uibase.cpp:889
msgid " &New Address... "
msgstr " &Ny Adress... "
#: ../../../uibase.cpp:849
msgid "Sending"
msgstr "Skickar"
#: ../../../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 "Dessa är dina Bitcoin adresser för mottagning av betalningar. Du kan ge olika till varje avsändare så du kan ha koll på vem som betalar dig. Den markerade adressen visas i huvudfönstret."
#: ../../../uibase.cpp:870
msgid "Receiving"
msgstr "Mottagning"
#: ../../../uibase.cpp:880
msgid "&Delete"
msgstr "&Ta bort"
#: ../../../util.cpp:874
msgid "Warning: Please check that your computer's date and time are correct. If your clock is wrong Bitcoin will not work properly."
msgstr "Varning: Var god och kolla att din dator har rätt datum och klockslag. Om din klocka är fel så kommer Bitcoin inte att fungera ordentligt."
#: ../../../util.cpp:908
msgid "beta"
msgstr "beta"
#: ../../../wallet.cpp:917
#, 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 "Fel: Denna transaktion kräver en transaktionsavgift minst %s för dess belopp, komplexitet, eller användning av nyligen mottagna pengar "
#: ../../../wallet.cpp:919
msgid "Error: Transaction creation failed "
msgstr "Fel: Misslyckades att skapa transaktion "
#: ../../../wallet.cpp:928
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 "Fel: Transaktionen blev nekad. Detta kan hända om några av dina mynt i din plånbok var redan spenderad. Till exempel om du använde en kopia av wallet.dat och mynten var redan spenderad i kopian, men som inte var markerad som spenderad här."
#: ../../../wallet.cpp:941
msgid "Invalid amount"
msgstr "Ogiltig belopp"
#: ../../../wallet.cpp:948
msgid "Invalid bitcoin address"
msgstr "Ogiltig bitcoin adress"
#: ../../../uibase.h:147
msgid "Transaction Details"
msgstr "Transaktion detaljer"
#: ../../../uibase.h:199
msgid "Options"
msgstr "Inställningar"
#: ../../../uibase.h:228
msgid "About Bitcoin"
msgstr "Om Bitcoin"
#: ../../../uibase.h:337
msgid "Your Bitcoin Addresses"
msgstr "Dina Bitcoin Adresser"

Binary file not shown.

View File

@@ -1,967 +0,0 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-21 14:19+0800\n"
"PO-Revision-Date: 2011-05-28 17:08+0800\n"
"Last-Translator: Dean Lee <xslidian@gmail.com>\n"
"Language-Team: \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"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Language: zh_CN\n"
"X-Source-Language: C\n"
"X-Poedit-Bookmarks: 77,-1,-1,-1,-1,-1,-1,-1,-1,-1\n"
"X-Poedit-SearchPath-0: ../../..\n"
#: ../../../src/init.cpp:142
msgid "Bitcoin version"
msgstr "Bitcoin 版本"
#: ../../../src/init.cpp:143
msgid "Usage:"
msgstr "用法:"
#: ../../../src/init.cpp:145
msgid "Send command to -server or bitcoind\n"
msgstr "发送命令给 -server 或 bitcoin\n"
#: ../../../src/init.cpp:146
msgid "List commands\n"
msgstr "列出命令\n"
#: ../../../src/init.cpp:147
msgid "Get help for a command\n"
msgstr "获取命令的帮助\n"
#: ../../../src/init.cpp:148
msgid "Options:\n"
msgstr "选项:\n"
#: ../../../src/init.cpp:149
msgid "Specify configuration file (default: bitcoin.conf)\n"
msgstr "指定配置文件 (默认: bitcoin.conf)\n"
#: ../../../src/init.cpp:150
msgid "Specify pid file (default: bitcoind.pid)\n"
msgstr "指定 pid 文件 (默认: bitcoin.pid)\n"
#: ../../../src/init.cpp:151
msgid "Generate coins\n"
msgstr "生成货币\n"
#: ../../../src/init.cpp:152
msgid "Don't generate coins\n"
msgstr "不要生成货币\n"
#: ../../../src/init.cpp:153
msgid "Start minimized\n"
msgstr "启动时最小化\n"
#: ../../../src/init.cpp:154
msgid "Specify data directory\n"
msgstr "指定数据目录\n"
#: ../../../src/init.cpp:155
msgid "Connect through socks4 proxy\n"
msgstr "通过 socks4 代理连接\n"
#: ../../../src/init.cpp:156
msgid "Allow DNS lookups for addnode and connect\n"
msgstr "允许 DNS 查找新增结点和连接\n"
#: ../../../src/init.cpp:157
msgid "Add a node to connect to\n"
msgstr "添加一个连接结点\n"
#: ../../../src/init.cpp:158
msgid "Connect only to the specified node\n"
msgstr "只连接特定结点\n"
#: ../../../src/init.cpp:159
msgid "Don't accept connections from outside\n"
msgstr "不要接受外部传来的连接\n"
#: ../../../src/init.cpp:162
msgid "Don't attempt to use UPnP to map the listening port\n"
msgstr "不要尝试使用 UPnP 映射监听端口\n"
#: ../../../src/init.cpp:164
msgid "Attempt to use UPnP to map the listening port\n"
msgstr "尝试使用 UPnP 映射监听端口\n"
#: ../../../src/init.cpp:167
msgid "Fee per KB to add to transactions you send\n"
msgstr "您为每 KB 支付所增加的交易佣金\n"
#: ../../../src/init.cpp:169
msgid "Accept command line and JSON-RPC commands\n"
msgstr "允许命令行和 JSON-RPC 控制\n"
#: ../../../src/init.cpp:172
msgid "Run in the background as a daemon and accept commands\n"
msgstr "在后台运行并接收命令\n"
#: ../../../src/init.cpp:174
msgid "Use the test network\n"
msgstr "使用测试网络\n"
#: ../../../src/init.cpp:175
msgid "Username for JSON-RPC connections\n"
msgstr "JSON-RPC 连接的用户名\n"
#: ../../../src/init.cpp:176
msgid "Password for JSON-RPC connections\n"
msgstr "JSON-RPC 连接的密码\n"
#: ../../../src/init.cpp:177
msgid "Listen for JSON-RPC connections on <port> (default: 8332)\n"
msgstr "在端口 <port> 监听 JSON-RPC 连接 (默认: 8332)\n"
#: ../../../src/init.cpp:178
msgid "Allow JSON-RPC connections from specified IP address\n"
msgstr "允许来自特定 IP 地址的 JSON-RPC 连接\n"
#: ../../../src/init.cpp:179
msgid "Send commands to node running on <ip> (default: 127.0.0.1)\n"
msgstr "发送命令给运行的结点IP 地址 <ip> (默认: 127.0.0.1)\n"
#: ../../../src/init.cpp:180
msgid "Set key pool size to <n> (default: 100)\n"
msgstr "设置密钥池大小为 <n> (默认: 100)\n"
#: ../../../src/init.cpp:181
msgid "Rescan the block chain for missing wallet transactions\n"
msgstr "重新扫描货币包链来检测丢失的货币交易\n"
#: ../../../src/init.cpp:185
msgid ""
"\n"
"SSL options: (see the Bitcoin Wiki for SSL setup instructions)\n"
msgstr ""
"\n"
"SSL 选项: (SSL 设置步骤请参见 Bitcoin Wiki)\n"
#: ../../../src/init.cpp:186
msgid "Use OpenSSL (https) for JSON-RPC connections\n"
msgstr "使用 OpenSSL (https) 进行 JSON-RPC 连接\n"
#: ../../../src/init.cpp:187
msgid "Server certificate file (default: server.cert)\n"
msgstr "服务器证书 (默认: server.cert)\n"
#: ../../../src/init.cpp:188
msgid "Server private key (default: server.pem)\n"
msgstr "服务器私有密钥 (默认: server.pem)\n"
#: ../../../src/init.cpp:189
msgid "Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
msgstr "许可密码 (默认: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
#: ../../../src/init.cpp:193
msgid "This help message\n"
msgstr "本帮助信息\n"
#: ../../../src/init.cpp:330
#, c-format
msgid "Cannot obtain a lock on data directory %s. Bitcoin is probably already running."
msgstr "无法获取数据目录 %s 的锁。 Bitcoin 可能已经启动。"
#: ../../../src/init.cpp:356
msgid "Error loading addr.dat \n"
msgstr "加载 addr.dat 出错 \n"
#: ../../../src/init.cpp:362
msgid "Error loading blkindex.dat \n"
msgstr "加载 blkindex.dat 出错 \n"
#: ../../../src/init.cpp:369
msgid "Error loading wallet.dat \n"
msgstr "加载 wallet.dat 出错 \n"
#: ../../../src/init.cpp:449
msgid "Invalid -proxy address"
msgstr "无效 -proxy 地址"
#: ../../../src/init.cpp:472
msgid "Invalid amount for -paytxfee=<amount>"
msgstr "无效的金额 -paytxfee=<amount>"
#: ../../../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 "警告: -paytxfee 设置得过高。 这个参数是您发送一笔交易要支付的佣金。"
#: ../../../src/main.cpp:1866
msgid "Warning: Disk space is low "
msgstr "警告: 磁盘空间不足"
#: ../../../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 "错误: 这个交易因为近期收到支付的数量,难度或者使用而需要支付至少 %s 交易佣金 "
#: ../../../src/main.cpp:3992
msgid "Error: Transaction creation failed "
msgstr "错误: 交易创建失败"
#: ../../../src/main.cpp:3997
#: ../../../src/ui.cpp:1927
#: ../../../src/ui.cpp:1932
#: ../../../src/ui.cpp:2076
#: ../../../src/ui.cpp:2229
msgid "Sending..."
msgstr "正在发送..."
#: ../../../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 "错误: 交易被拒绝。 这可能是因为您账户里的一些货币应经被使用,比如您使用了一个复制的 wallet.dat 文件,一些货币在另一个复件里支付了但是没有在这里更新。"
#: ../../../src/main.cpp:4014
msgid "Invalid amount"
msgstr "无效金额"
#: ../../../src/main.cpp:4016
#: ../../../src/ui.cpp:2143
#: ../../../src/ui.cpp:2214
msgid "Insufficient funds"
msgstr "余额不足"
#: ../../../src/main.cpp:4021
msgid "Invalid bitcoin address"
msgstr "无效 bitcoin 地址"
#: ../../../src/net.cpp:1503
#, c-format
msgid "Unable to bind to port %d on this computer. Bitcoin is probably already running."
msgstr "无法在这台电脑上绑定 %d 端口。 Bitcoin 可能已经在运行。"
#: ../../../src/rpc.cpp:1802
#: ../../../src/rpc.cpp:1804
#, c-format
msgid "To use the %s option"
msgstr "使用 %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 ""
"警告: %s您必须在配置文件中设置 rpcpassword=<password>\n"
"配置文件为: %s\n"
"如果文件不存在,请创建文件并只给创建者提供只读访问权限。\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 ""
"您必须在配置文件中设置 rpcpassword=<password> :\n"
"%s\n"
"如果文件不存在,请创建文件并只给创建者提供只读访问权限。"
#: ../../../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 "这笔交易超过了大小限制。 您依然可以通过支付 %s 的佣金来进行,佣金用来支付为您的交易计算的结点来帮助支撑网络。 您是否要支付佣金?"
#: ../../../src/ui.cpp:303
msgid "Status"
msgstr "状态"
#: ../../../src/ui.cpp:304
msgid "Date"
msgstr "日期"
#: ../../../src/ui.cpp:305
msgid "Description"
msgstr "描述"
#: ../../../src/ui.cpp:306
msgid "Debit"
msgstr "付款人"
#: ../../../src/ui.cpp:307
msgid "Credit"
msgstr "信用"
#: ../../../src/ui.cpp:513
#, c-format
msgid "Open for %d blocks"
msgstr "%d 个货币包开放"
#: ../../../src/ui.cpp:515
#, c-format
msgid "Open until %s"
msgstr "开放直到 %s"
#: ../../../src/ui.cpp:521
#, c-format
msgid "%d/offline?"
msgstr "%d/离线?"
#: ../../../src/ui.cpp:523
#, c-format
msgid "%d/unconfirmed"
msgstr "%d/未确认"
#: ../../../src/ui.cpp:525
#, c-format
msgid "%d confirmations"
msgstr "%d 确认"
#: ../../../src/ui.cpp:610
msgid "Generated"
msgstr "已生成"
#: ../../../src/ui.cpp:618
#, c-format
msgid "Generated (%s matures in %d more blocks)"
msgstr "已生成 (%s 成熟 %d 新增货币包)"
#: ../../../src/ui.cpp:622
msgid "Generated - Warning: This block was not received by any other nodes and will probably not be accepted!"
msgstr "已生成 - 警告: 这个货币包没有被任何其他结点收到,因此很可能不会被接受!"
#: ../../../src/ui.cpp:626
msgid "Generated (not accepted)"
msgstr "已生成 (未被接受)"
#: ../../../src/ui.cpp:636
msgid "From: "
msgstr "来自: "
#: ../../../src/ui.cpp:660
msgid "Received with: "
msgstr "伴随接收: "
#: ../../../src/ui.cpp:706
msgid "Payment to yourself"
msgstr "支付给您自己"
#: ../../../src/ui.cpp:740
msgid "To: "
msgstr "到: "
#: ../../../src/ui.cpp:1055
msgid " Generating"
msgstr " 生成中"
#: ../../../src/ui.cpp:1057
msgid "(not connected)"
msgstr "(未连接)"
#: ../../../src/ui.cpp:1060
#, c-format
msgid " %d connections %d blocks %d transactions"
msgstr " %d 个连接 %d 个货币包 %d 个交易 "
#: ../../../src/ui.cpp:1165
#: ../../../src/ui.cpp:2529
msgid "New Receiving Address"
msgstr "新建接收地址"
#: ../../../src/ui.cpp:1166
#: ../../../src/ui.cpp:2530
msgid ""
"You should use a new address for each payment you receive.\n"
"\n"
"Label"
msgstr ""
"您应该为您收到的每次付款使用不同的地址。\n"
"\n"
"标签"
#: ../../../src/ui.cpp:1235
msgid "<b>Status:</b> "
msgstr "<b>状态:</b> "
#: ../../../src/ui.cpp:1240
msgid ", has not been successfully broadcast yet"
msgstr ",尚未被成功广播"
#: ../../../src/ui.cpp:1242
#, c-format
msgid ", broadcast through %d node"
msgstr ",通过 %d 个结点广播"
#: ../../../src/ui.cpp:1244
#, c-format
msgid ", broadcast through %d nodes"
msgstr ",通过 %d 个结点广播"
#: ../../../src/ui.cpp:1248
msgid "<b>Date:</b> "
msgstr "<b>日期:</b>"
#: ../../../src/ui.cpp:1256
msgid "<b>Source:</b> Generated<br>"
msgstr "<b>来源:</b> 生成<br>"
#: ../../../src/ui.cpp:1262
#: ../../../src/ui.cpp:1280
msgid "<b>From:</b> "
msgstr "<b>从:</b> "
#: ../../../src/ui.cpp:1280
msgid "unknown"
msgstr "未知"
#: ../../../src/ui.cpp:1281
#: ../../../src/ui.cpp:1305
#: ../../../src/ui.cpp:1364
msgid "<b>To:</b> "
msgstr "<b>到:</b> "
#: ../../../src/ui.cpp:1284
msgid " (yours, label: "
msgstr " (您的标签: "
#: ../../../src/ui.cpp:1286
msgid " (yours)"
msgstr " (您的)"
#: ../../../src/ui.cpp:1323
#: ../../../src/ui.cpp:1335
#: ../../../src/ui.cpp:1381
#: ../../../src/ui.cpp:1398
msgid "<b>Credit:</b> "
msgstr "<b>信用:</b> "
#: ../../../src/ui.cpp:1325
#, c-format
msgid "(%s matures in %d more blocks)"
msgstr "(%s 收获在 %d 更多的货币包)"
#: ../../../src/ui.cpp:1327
msgid "(not accepted)"
msgstr "(未被接受)"
#: ../../../src/ui.cpp:1372
#: ../../../src/ui.cpp:1380
#: ../../../src/ui.cpp:1395
msgid "<b>Debit:</b> "
msgstr "<b>付款人:</b> "
#: ../../../src/ui.cpp:1386
msgid "<b>Transaction fee:</b> "
msgstr "<b>交易佣金:</b> "
#: ../../../src/ui.cpp:1402
msgid "<b>Net amount:</b> "
msgstr "<b>网络金额:</b> "
#: ../../../src/ui.cpp:1409
msgid "Message:"
msgstr "消息:"
#: ../../../src/ui.cpp:1411
msgid "Comment:"
msgstr "评论"
#: ../../../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 "生成的货币必须等待 120 个货币包之后才能够使用。 当您生成了一个货币包后,它被广播给网络来加入货币包链中。 如果它无法加入货币包链中,他将会标记为\"不被接受\"且不能被支付。 这种情况可能因为在您生成这个货币包之后的几秒钟内有别人也生成了货币包而发生。"
#: ../../../src/ui.cpp:1594
msgid "Cannot write autostart/bitcoin.desktop file"
msgstr "无法写入 autostart/bitcoin.desktop 文件"
#: ../../../src/ui.cpp:1630
msgid "Main"
msgstr "主要"
#: ../../../src/ui.cpp:1638
msgid "&Start Bitcoin on window system startup"
msgstr "开机自动启动 Bitcoin(&S)"
#: ../../../src/ui.cpp:1645
msgid "&Minimize on close"
msgstr "关闭时最小化(&M)"
#: ../../../src/ui.cpp:1787
#, c-format
msgid "version %s"
msgstr "版本 %s"
#: ../../../src/ui.cpp:1899
msgid "Error in amount "
msgstr "金额有误 "
#: ../../../src/ui.cpp:1899
#: ../../../src/ui.cpp:1904
#: ../../../src/ui.cpp:1909
#: ../../../src/ui.cpp:1944
#: ../../../src/uibase.cpp:55
msgid "Send Coins"
msgstr "发送货币"
#: ../../../src/ui.cpp:1904
msgid "Amount exceeds your balance "
msgstr "金额超出您的账户余额"
#: ../../../src/ui.cpp:1909
msgid "Total exceeds your balance when the "
msgstr "总费用超出您的账户余额当 "
#: ../../../src/ui.cpp:1909
msgid " transaction fee is included "
msgstr " 交易佣金已包括"
#: ../../../src/ui.cpp:1927
msgid "Payment sent "
msgstr "付款已发送"
#: ../../../src/ui.cpp:1944
msgid "Invalid address "
msgstr "无效地址 "
#: ../../../src/ui.cpp:1997
#, c-format
msgid "Sending %s to %s"
msgstr "发送 %s 给 %s"
#: ../../../src/ui.cpp:2070
#: ../../../src/ui.cpp:2103
msgid "CANCELLED"
msgstr "已取消"
#: ../../../src/ui.cpp:2074
msgid "Cancelled"
msgstr "已取消"
#: ../../../src/ui.cpp:2076
msgid "Transfer cancelled "
msgstr "传输已取消 "
#: ../../../src/ui.cpp:2129
msgid "Error: "
msgstr "错误: "
#: ../../../src/ui.cpp:2148
msgid "Connecting..."
msgstr "正在连接..."
#: ../../../src/ui.cpp:2153
msgid "Unable to connect"
msgstr "无法连接"
#: ../../../src/ui.cpp:2158
msgid "Requesting public key..."
msgstr "正在请求公共密钥..."
#: ../../../src/ui.cpp:2170
msgid "Received public key..."
msgstr "收到公共密钥..."
#: ../../../src/ui.cpp:2184
msgid "Recipient is not accepting transactions sent by IP address"
msgstr "收款人不接受来自 IP 地址的交易"
#: ../../../src/ui.cpp:2186
msgid "Transfer was not accepted"
msgstr "传输没有被接受"
#: ../../../src/ui.cpp:2195
msgid "Invalid response received"
msgstr "接收到无效回复"
#: ../../../src/ui.cpp:2210
msgid "Creating transaction..."
msgstr "正在创建交易..."
#: ../../../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 "这笔交易因为它最近收到的付款的数量,交易难度或者使用情况,需要至少 %s 交易佣金"
#: ../../../src/ui.cpp:2224
msgid "Transaction creation failed"
msgstr "交易创建失败"
#: ../../../src/ui.cpp:2231
msgid "Transaction aborted"
msgstr "交易中止"
#: ../../../src/ui.cpp:2239
msgid "Lost connection, transaction cancelled"
msgstr "失去连接,交易已取消"
#: ../../../src/ui.cpp:2255
msgid "Sending payment..."
msgstr "正在发送付款..."
#: ../../../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 "交易被拒绝。 这可能是因为您账户中的一部分货币已经被使用,比如您使用了一个复制的 wallet.dat 文件,而且货币在另一个副本里使用但没有在这里标记。"
#: ../../../src/ui.cpp:2270
msgid "Waiting for confirmation..."
msgstr "正在等待确认..."
#: ../../../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 ""
"付款已发送,但是收款人无法进行确认。\n"
"交易已经被记录,并且支付给收款人,\n"
"但是评论信息可能是空的。"
#: ../../../src/ui.cpp:2297
msgid "Payment was sent, but an invalid response was received"
msgstr "支付已发送,但是收到无效回复"
#: ../../../src/ui.cpp:2303
msgid "Payment completed"
msgstr "付款完成"
#: ../../../src/ui.cpp:2334
#: ../../../src/ui.cpp:2480
#: ../../../src/ui.cpp:2517
msgid "Name"
msgstr "姓名"
#: ../../../src/ui.cpp:2335
#: ../../../src/ui.cpp:2480
#: ../../../src/ui.cpp:2517
msgid "Address"
msgstr "地址"
#: ../../../src/ui.cpp:2337
#: ../../../src/ui.cpp:2492
msgid "Label"
msgstr "标签"
#: ../../../src/ui.cpp:2338
#: ../../../src/uibase.cpp:837
msgid "Bitcoin Address"
msgstr "Bitcoin 地址"
#: ../../../src/ui.cpp:2462
msgid "This is one of your own addresses for receiving payments and cannot be entered in the address book. "
msgstr "这是您拥有的接收付款的地址之一,它不能够进入这个地址簿。 "
#: ../../../src/ui.cpp:2480
#: ../../../src/ui.cpp:2486
msgid "Edit Address"
msgstr "编辑地址"
#: ../../../src/ui.cpp:2492
msgid "Edit Address Label"
msgstr "编辑地址标签"
#: ../../../src/ui.cpp:2517
#: ../../../src/ui.cpp:2523
msgid "Add Address"
msgstr "添加地址"
#: ../../../src/ui.cpp:2600
msgid "Bitcoin"
msgstr "Bitcoin"
#: ../../../src/ui.cpp:2602
msgid "Bitcoin - Generating"
msgstr "Bitcoin - 生成中"
#: ../../../src/ui.cpp:2604
msgid "Bitcoin - (not connected)"
msgstr "Bitcoin - (未连接)"
#: ../../../src/ui.cpp:2683
msgid "&Open Bitcoin"
msgstr "打开 Bitcoin(&O)"
#: ../../../src/ui.cpp:2684
msgid "&Send Bitcoins"
msgstr "发送 Bitcoins(&S)"
#: ../../../src/ui.cpp:2685
msgid "O&ptions..."
msgstr "选项(&P)..."
#: ../../../src/ui.cpp:2688
#: ../../../src/uibase.cpp:25
msgid "E&xit"
msgstr "退出(&X)"
#: ../../../src/ui.cpp:2904
msgid "Program has crashed and will terminate. "
msgstr "程序崩溃,即将关闭。 "
#: ../../../src/uibase.cpp:28
msgid "&File"
msgstr "文件(&F)"
#: ../../../src/uibase.cpp:32
msgid "&Your Receiving Addresses..."
msgstr "您的接收地址(&Y)..."
#: ../../../src/uibase.cpp:36
msgid "&Options..."
msgstr "选项(&O)..."
#: ../../../src/uibase.cpp:39
msgid "&Settings"
msgstr "设置(&S)"
#: ../../../src/uibase.cpp:43
msgid "&About..."
msgstr "关于(&A)..."
#: ../../../src/uibase.cpp:46
msgid "&Help"
msgstr "帮助(&H)"
#: ../../../src/uibase.cpp:56
msgid "Address Book"
msgstr "地址簿"
#: ../../../src/uibase.cpp:69
msgid "Your Bitcoin Address:"
msgstr "您的 Bitcoin 地址:"
#: ../../../src/uibase.cpp:76
msgid " &New... "
msgstr " 新建(&N)... "
#: ../../../src/uibase.cpp:79
#: ../../../src/uibase.cpp:780
#: ../../../src/uibase.cpp:883
msgid " &Copy to Clipboard "
msgstr " 复制到剪贴板(&C)"
#: ../../../src/uibase.cpp:93
msgid "Balance:"
msgstr "账户余额:"
#: ../../../src/uibase.cpp:109
msgid " All"
msgstr "全部"
#: ../../../src/uibase.cpp:109
msgid " Sent"
msgstr " 已发送"
#: ../../../src/uibase.cpp:109
msgid " Received"
msgstr " 已接收"
#: ../../../src/uibase.cpp:109
msgid " In Progress"
msgstr "处理中"
#: ../../../src/uibase.cpp:130
msgid "All Transactions"
msgstr "所有交易"
#: ../../../src/uibase.cpp:141
msgid "Sent/Received"
msgstr "已发送/已接收"
#: ../../../src/uibase.cpp:152
msgid "Sent"
msgstr "已发送"
#: ../../../src/uibase.cpp:163
msgid "Received"
msgstr "已接收"
#: ../../../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 "确定"
#: ../../../src/uibase.cpp:345
msgid "&Start Bitcoin on system startup"
msgstr "开机自动启动(&S)"
#: ../../../src/uibase.cpp:348
msgid "&Minimize to the tray instead of the taskbar"
msgstr "最小化到系统托盘(&M)"
#: ../../../src/uibase.cpp:351
msgid "Map port using &UPnP"
msgstr "使用 &UPnP 映射端口"
#: ../../../src/uibase.cpp:354
msgid "M&inimize to the tray on close"
msgstr "关闭时最小化到托盘(&I)"
#: ../../../src/uibase.cpp:360
msgid "&Connect through socks4 proxy: "
msgstr "通过 socks4 代理连接(&C): "
#: ../../../src/uibase.cpp:371
msgid "Proxy &IP:"
msgstr "代理服务器(&I):"
#: ../../../src/uibase.cpp:379
msgid " &Port:"
msgstr " 端口(&P):"
#: ../../../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 "可以选择按照KB支付交易佣金来确保您的交易得到迅速处理。 大多数交易需要 1KB。 建议支付 0.01。"
#: ../../../src/uibase.cpp:399
msgid "Pay transaction fee:"
msgstr "支付交易佣金:"
#: ../../../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 "取消"
#: ../../../src/uibase.cpp:449
msgid "&Apply"
msgstr "应用(&A)"
#: ../../../src/uibase.cpp:508
msgid "Bitcoin "
msgstr "Bitcoin "
#: ../../../src/uibase.cpp:514
msgid "version"
msgstr "版本"
#: ../../../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 ""
"版权所有 (c) 2009-2010 Bitcoin 开发人员\n"
"这是一个实验软件。\n"
"分发遵循 MIT/X11 软件许可协议,请参见附带的 license.txt 文件或访问\n"
"http://www.opensource.org/licenses/mit-license.php。\n"
"本产品使用了 OpenSSL Project 开发的 OpenSSL Toolkit\n"
"(http://www.openssl.org/),以及 Eric Young(eay@cryptsoft.com)\n"
"编写的加密软件和 Thomas Bernard 编写的 UPnP 软件。"
#: ../../../src/uibase.cpp:581
msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
msgstr "输入 Bitcoin 地址 (比如 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
#: ../../../src/uibase.cpp:595
msgid "Pay &To:"
msgstr "付款给(&T):"
#: ../../../src/uibase.cpp:610
msgid "&Paste"
msgstr "粘贴(&P)"
#: ../../../src/uibase.cpp:613
msgid " Address &Book..."
msgstr " 地址簿(&B)..."
#: ../../../src/uibase.cpp:620
msgid "&Amount:"
msgstr "数量(&A):"
#: ../../../src/uibase.cpp:630
msgid "T&ransfer:"
msgstr "传输(&R):"
#: ../../../src/uibase.cpp:636
msgid " Standard"
msgstr "标准"
#: ../../../src/uibase.cpp:663
msgid "&Send"
msgstr "发送(&S)"
#: ../../../src/uibase.cpp:711
msgid ""
"\n"
"\n"
"Connecting..."
msgstr ""
"\n"
"\n"
"正在连接..."
#: ../../../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 "这些是您用来接收付款的 Bitcoin 地址。 您可能需要给每一个付款人一个不同的地址从而可以最终每一笔交易是谁支付的。 下面高亮的地址是您的主窗口正在使用的地址。"
#: ../../../src/uibase.cpp:774
#: ../../../src/uibase.cpp:886
msgid "&Edit..."
msgstr "编辑(&E)..."
#: ../../../src/uibase.cpp:777
#: ../../../src/uibase.cpp:889
msgid " &New Address... "
msgstr " 新建地址(&N)..."
#: ../../../src/uibase.cpp:849
msgid "Sending"
msgstr "发送人地址"
#: ../../../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 "这些是您用来接收付款的 Bitcoin 地址。 您可以给每一个付款人一个不同的地址从而可以最终每一笔交易是谁支付的。 下面高亮的地址是您的主窗口正在使用的地址。"
#: ../../../src/uibase.cpp:870
msgid "Receiving"
msgstr "我的接收地址"
#: ../../../src/uibase.cpp:880
msgid "&Delete"
msgstr "删除(&D)"
#: ../../../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 "警告: 请检查您的电脑日期和时间是否正确。 如果您的时钟不正确 Bitcoin 将无法正常工作。"
#: ../../../src/util.cpp:899
msgid "beta"
msgstr "测试版"
#: ../../../src/uibase.h:147
msgid "Transaction Details"
msgstr "交易详情"
#: ../../../src/uibase.h:199
msgid "Options"
msgstr "选项"
#: ../../../src/uibase.h:228
msgid "About Bitcoin"
msgstr "关于 Bitcoin"
#: ../../../src/uibase.h:337
msgid "Your Bitcoin Addresses"
msgstr "您的 Bitcoin 地址"

View File

@@ -0,0 +1,63 @@
#!/usr/bin/python
'''
Extract _("...") strings for translation and convert to Qt4 stringdefs so that
they can be picked up by Qt linguist.
'''
from subprocess import Popen, PIPE
OUT_CPP="src/qt/bitcoinstrings.cpp"
EMPTY=['""']
def parse_po(text):
"""
Parse 'po' format produced by xgettext.
Return a list of (msgid,msgstr) tuples.
"""
messages = []
msgid = []
msgstr = []
in_msgid = False
in_msgstr = False
for line in text.split('\n'):
line = line.rstrip('\r')
if line.startswith('msgid '):
if in_msgstr:
messages.append((msgid, msgstr))
in_msgstr = False
# message start
in_msgid = True
msgid = [line[6:]]
elif line.startswith('msgstr '):
in_msgid = False
in_msgstr = True
msgstr = [line[7:]]
elif line.startswith('"'):
if in_msgid:
msgid.append(line)
if in_msgstr:
msgstr.append(line)
if in_msgstr:
messages.append((msgid, msgstr))
return messages
files = ['src/base58.h', 'src/bignum.h', 'src/db.cpp', 'src/db.h', 'src/headers.h', 'src/init.cpp', 'src/init.h', 'src/irc.cpp', 'src/irc.h', 'src/key.h', 'src/main.cpp', 'src/main.h', 'src/net.cpp', 'src/net.h', 'src/noui.h', 'src/script.cpp', 'src/script.h', 'src/serialize.h', 'src/strlcpy.h', 'src/uint256.h', 'src/util.cpp', 'src/util.h']
# xgettext -n --keyword=_ $FILES
child = Popen(['xgettext','--output=-','-n','--keyword=_'] + files, stdout=PIPE)
(out, err) = child.communicate()
messages = parse_po(out)
f = open(OUT_CPP, 'w')
f.write('#include <QtGlobal>\n')
f.write('// Automatically generated by extract_strings.py\n')
f.write('static const char *bitcoin_strings[] = {')
for (msgid, msgstr) in messages:
if msgid != EMPTY:
f.write('QT_TRANSLATE_NOOP("bitcoin-core", %s),\n' % ('\n'.join(msgid)))
f.write('};')
f.close()

BIN
scripts/qt/img/reload.xcf Normal file

Binary file not shown.

43
scripts/qt/make_spinner.py Executable file
View File

@@ -0,0 +1,43 @@
#!/usr/bin/env python
# W.J. van der Laan, 2011
# Make spinning .mng animation from a .png
# Requires imagemagick 6.7+
from __future__ import division
from os import path
from PIL import Image
from subprocess import Popen
SRC='img/reload_scaled.png'
DST='../../src/qt/res/movies/update_spinner.mng'
TMPDIR='/tmp'
TMPNAME='tmp-%03i.png'
NUMFRAMES=35
FRAMERATE=10.0
CONVERT='convert'
CLOCKWISE=True
DSIZE=(16,16)
im_src = Image.open(SRC)
if CLOCKWISE:
im_src = im_src.transpose(Image.FLIP_LEFT_RIGHT)
def frame_to_filename(frame):
return path.join(TMPDIR, TMPNAME % frame)
frame_files = []
for frame in xrange(NUMFRAMES):
rotation = (frame + 0.5) / NUMFRAMES * 360.0
if CLOCKWISE:
rotation = -rotation
im_new = im_src.rotate(rotation, Image.BICUBIC)
im_new.thumbnail(DSIZE, Image.ANTIALIAS)
outfile = frame_to_filename(frame)
im_new.save(outfile, 'png')
frame_files.append(outfile)
p = Popen([CONVERT, "-delay", str(FRAMERATE), "-dispose", "2"] + frame_files + [DST])
p.communicate()

View File

@@ -0,0 +1,9 @@
#!/bin/bash
# create multiresolution windows icon
ICON_SRC=../../src/qt/res/icons/bitcoin.png
ICON_DST=../../src/qt/res/icons/bitcoin.ico
convert ${ICON_SRC} -resize 16x16 bitcoin-16.png
convert ${ICON_SRC} -resize 32x32 bitcoin-32.png
convert ${ICON_SRC} -resize 48x48 bitcoin-48.png
convert bitcoin-16.png bitcoin-32.png bitcoin-48.png ${ICON_DST}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 299 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

View File

@@ -1,22 +1,28 @@
Name Bitcoin
RequestExecutionLevel highest
SetCompressor /SOLID lzma
# General Symbol Definitions
!define REGKEY "SOFTWARE\$(^Name)"
!define VERSION 0.3.24
!define VERSION 0.5.0
!define COMPANY "Bitcoin project"
!define URL http://www.bitcoin.org/
# MUI Symbol Definitions
!define MUI_ICON "../share/pixmaps/bitcoin.ico"
!define MUI_WELCOMEFINISHPAGE_BITMAP "../share/pixmaps/nsis-wizard.bmp"
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_RIGHT
!define MUI_HEADERIMAGE_BITMAP "../share/pixmaps/nsis-header.bmp"
!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_FINISHPAGE_RUN $INSTDIR\bitcoin-qt.exe
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "../share/pixmaps/nsis-wizard.bmp"
!define MUI_UNFINISHPAGE_NOAUTOCLOSE
# Included files
@@ -39,12 +45,13 @@ Var StartMenuGroup
!insertmacro MUI_LANGUAGE English
# Installer attributes
OutFile bitcoin-0.3.24-win32-setup.exe
OutFile bitcoin-0.5.0-win32-setup.exe
InstallDir $PROGRAMFILES\Bitcoin
CRCCheck on
XPStyle on
BrandingText " "
ShowInstDetails show
VIProductVersion 0.3.24.0
VIProductVersion 0.5.0.0
VIAddVersionKey ProductName Bitcoin
VIAddVersionKey ProductVersion "${VERSION}"
VIAddVersionKey CompanyName "${COMPANY}"
@@ -59,7 +66,7 @@ ShowUninstDetails show
Section -Main SEC0000
SetOutPath $INSTDIR
SetOverwrite on
File ../src/bitcoin.exe
File ../bitcoin-qt.exe
File /oname=license.txt ../COPYING
File /oname=readme.txt ../doc/README_windows.txt
SetOutPath $INSTDIR\daemon
@@ -78,7 +85,7 @@ Section -post SEC0001
WriteUninstaller $INSTDIR\uninstall.exe
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
CreateDirectory $SMPROGRAMS\$StartMenuGroup
CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Bitcoin.lnk" $INSTDIR\bitcoin.exe
CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Bitcoin.lnk" $INSTDIR\bitcoin-qt.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)"
@@ -106,7 +113,7 @@ done${UNSECTION_ID}:
# Uninstaller sections
Section /o -un.Main UNSEC0000
Delete /REBOOTOK $INSTDIR\bitcoin.exe
Delete /REBOOTOK $INSTDIR\bitcoin-qt.exe
Delete /REBOOTOK $INSTDIR\license.txt
Delete /REBOOTOK $INSTDIR\readme.txt
RMDir /r /REBOOTOK $INSTDIR\daemon

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,5 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2011 The Bitcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
@@ -159,52 +160,149 @@ inline bool DecodeBase58Check(const std::string& str, std::vector<unsigned char>
#define ADDRESSVERSION ((unsigned char)(fTestNet ? 111 : 0))
inline std::string Hash160ToAddress(uint160 hash160)
class CBase58Data
{
// add 1-byte version number to the front
std::vector<unsigned char> vch(1, ADDRESSVERSION);
vch.insert(vch.end(), UBEGIN(hash160), UEND(hash160));
return EncodeBase58Check(vch);
}
protected:
unsigned char nVersion;
std::vector<unsigned char> vchData;
inline bool AddressToHash160(const char* psz, uint160& hash160Ret)
CBase58Data()
{
nVersion = 0;
vchData.clear();
}
~CBase58Data()
{
if (!vchData.empty())
memset(&vchData[0], 0, vchData.size());
}
void SetData(int nVersionIn, const void* pdata, size_t nSize)
{
nVersion = nVersionIn;
vchData.resize(nSize);
if (!vchData.empty())
memcpy(&vchData[0], pdata, nSize);
}
void SetData(int nVersionIn, const unsigned char *pbegin, const unsigned char *pend)
{
SetData(nVersionIn, (void*)pbegin, pend - pbegin);
}
public:
bool SetString(const char* psz)
{
std::vector<unsigned char> vchTemp;
DecodeBase58Check(psz, vchTemp);
if (vchTemp.empty())
{
vchData.clear();
nVersion = 0;
return false;
}
nVersion = vchTemp[0];
vchData.resize(vchTemp.size() - 1);
if (!vchData.empty())
memcpy(&vchData[0], &vchTemp[1], vchData.size());
memset(&vchTemp[0], 0, vchTemp.size());
return true;
}
bool SetString(const std::string& str)
{
return SetString(str.c_str());
}
std::string ToString() const
{
std::vector<unsigned char> vch(1, nVersion);
vch.insert(vch.end(), vchData.begin(), vchData.end());
return EncodeBase58Check(vch);
}
int CompareTo(const CBase58Data& b58) const
{
if (nVersion < b58.nVersion) return -1;
if (nVersion > b58.nVersion) return 1;
if (vchData < b58.vchData) return -1;
if (vchData > b58.vchData) return 1;
return 0;
}
bool operator==(const CBase58Data& b58) const { return CompareTo(b58) == 0; }
bool operator<=(const CBase58Data& b58) const { return CompareTo(b58) <= 0; }
bool operator>=(const CBase58Data& b58) const { return CompareTo(b58) >= 0; }
bool operator< (const CBase58Data& b58) const { return CompareTo(b58) < 0; }
bool operator> (const CBase58Data& b58) const { return CompareTo(b58) > 0; }
};
class CBitcoinAddress : public CBase58Data
{
std::vector<unsigned char> vch;
if (!DecodeBase58Check(psz, vch))
return false;
if (vch.empty())
return false;
unsigned char nVersion = vch[0];
if (vch.size() != sizeof(hash160Ret) + 1)
return false;
memcpy(&hash160Ret, &vch[1], sizeof(hash160Ret));
return (nVersion <= ADDRESSVERSION);
}
public:
bool SetHash160(const uint160& hash160)
{
SetData(fTestNet ? 111 : 0, &hash160, 20);
return true;
}
inline bool AddressToHash160(const std::string& str, uint160& hash160Ret)
{
return AddressToHash160(str.c_str(), hash160Ret);
}
bool SetPubKey(const std::vector<unsigned char>& vchPubKey)
{
return SetHash160(Hash160(vchPubKey));
}
inline bool IsValidBitcoinAddress(const char* psz)
{
uint160 hash160;
return AddressToHash160(psz, hash160);
}
bool IsValid() const
{
int nExpectedSize = 20;
bool fExpectTestNet = false;
switch(nVersion)
{
case 0:
break;
inline bool IsValidBitcoinAddress(const std::string& str)
{
return IsValidBitcoinAddress(str.c_str());
}
case 111:
fExpectTestNet = true;
break;
default:
return false;
}
return fExpectTestNet == fTestNet && vchData.size() == nExpectedSize;
}
CBitcoinAddress()
{
}
CBitcoinAddress(uint160 hash160In)
{
SetHash160(hash160In);
}
inline std::string PubKeyToAddress(const std::vector<unsigned char>& vchPubKey)
{
return Hash160ToAddress(Hash160(vchPubKey));
}
CBitcoinAddress(const std::vector<unsigned char>& vchPubKey)
{
SetPubKey(vchPubKey);
}
CBitcoinAddress(const std::string& strAddress)
{
SetString(strAddress);
}
CBitcoinAddress(const char* pszAddress)
{
SetString(pszAddress);
}
uint160 GetHash160() const
{
assert(vchData.size() == 20);
uint160 hash160;
memcpy(&hash160, &vchData[0], 20);
return hash160;
}
};
#endif

View File

@@ -1,4 +1,5 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2011 The Bitcoin developers
// 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

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,5 @@
// Copyright (c) 2010 Satoshi Nakamoto
// Copyright (c) 2011 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.

132
src/crypter.cpp Normal file
View File

@@ -0,0 +1,132 @@
// Copyright (c) 2011 The Bitcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include <openssl/aes.h>
#include <openssl/evp.h>
#include <vector>
#include <string>
#include "headers.h"
#ifdef WIN32
#include <windows.h>
#endif
#include "crypter.h"
#include "main.h"
#include "util.h"
bool CCrypter::SetKeyFromPassphrase(const std::string& strKeyData, const std::vector<unsigned char>& chSalt, const unsigned int nRounds, const unsigned int nDerivationMethod)
{
if (nRounds < 1 || chSalt.size() != WALLET_CRYPTO_SALT_SIZE)
return false;
// Try to keep the keydata out of swap (and be a bit over-careful to keep the IV that we don't even use out of swap)
// Note that this does nothing about suspend-to-disk (which will put all our key data on disk)
// Note as well that at no point in this program is any attempt made to prevent stealing of keys by reading the memory of the running process.
mlock(&chKey[0], sizeof chKey);
mlock(&chIV[0], sizeof chIV);
int i = 0;
if (nDerivationMethod == 0)
i = EVP_BytesToKey(EVP_aes_256_cbc(), EVP_sha512(), &chSalt[0],
(unsigned char *)&strKeyData[0], strKeyData.size(), nRounds, chKey, chIV);
if (i != WALLET_CRYPTO_KEY_SIZE)
{
memset(&chKey, 0, sizeof chKey);
memset(&chIV, 0, sizeof chIV);
return false;
}
fKeySet = true;
return true;
}
bool CCrypter::SetKey(const CKeyingMaterial& chNewKey, const std::vector<unsigned char>& chNewIV)
{
if (chNewKey.size() != WALLET_CRYPTO_KEY_SIZE || chNewIV.size() != WALLET_CRYPTO_KEY_SIZE)
return false;
// Try to keep the keydata out of swap
// Note that this does nothing about suspend-to-disk (which will put all our key data on disk)
// Note as well that at no point in this program is any attempt made to prevent stealing of keys by reading the memory of the running process.
mlock(&chKey[0], sizeof chKey);
mlock(&chIV[0], sizeof chIV);
memcpy(&chKey[0], &chNewKey[0], sizeof chKey);
memcpy(&chIV[0], &chNewIV[0], sizeof chIV);
fKeySet = true;
return true;
}
bool CCrypter::Encrypt(const CKeyingMaterial& vchPlaintext, std::vector<unsigned char> &vchCiphertext)
{
if (!fKeySet)
return false;
// max ciphertext len for a n bytes of plaintext is
// n + AES_BLOCK_SIZE - 1 bytes
int nLen = vchPlaintext.size();
int nCLen = nLen + AES_BLOCK_SIZE, nFLen = 0;
vchCiphertext = std::vector<unsigned char> (nCLen);
EVP_CIPHER_CTX ctx;
EVP_CIPHER_CTX_init(&ctx);
EVP_EncryptInit_ex(&ctx, EVP_aes_256_cbc(), NULL, chKey, chIV);
EVP_EncryptUpdate(&ctx, &vchCiphertext[0], &nCLen, &vchPlaintext[0], nLen);
EVP_EncryptFinal_ex(&ctx, (&vchCiphertext[0])+nCLen, &nFLen);
EVP_CIPHER_CTX_cleanup(&ctx);
vchCiphertext.resize(nCLen + nFLen);
return true;
}
bool CCrypter::Decrypt(const std::vector<unsigned char>& vchCiphertext, CKeyingMaterial& vchPlaintext)
{
if (!fKeySet)
return false;
// plaintext will always be equal to or lesser than length of ciphertext
int nLen = vchCiphertext.size();
int nPLen = nLen, nFLen = 0;
vchPlaintext = CKeyingMaterial(nPLen);
EVP_CIPHER_CTX ctx;
EVP_CIPHER_CTX_init(&ctx);
EVP_DecryptInit_ex(&ctx, EVP_aes_256_cbc(), NULL, chKey, chIV);
EVP_DecryptUpdate(&ctx, &vchPlaintext[0], &nPLen, &vchCiphertext[0], nLen);
EVP_DecryptFinal_ex(&ctx, (&vchPlaintext[0])+nPLen, &nFLen);
EVP_CIPHER_CTX_cleanup(&ctx);
vchPlaintext.resize(nPLen + nFLen);
return true;
}
bool EncryptSecret(CKeyingMaterial& vMasterKey, const CSecret &vchPlaintext, const uint256& nIV, std::vector<unsigned char> &vchCiphertext)
{
CCrypter cKeyCrypter;
std::vector<unsigned char> chIV(WALLET_CRYPTO_KEY_SIZE);
memcpy(&chIV[0], &nIV, WALLET_CRYPTO_KEY_SIZE);
if(!cKeyCrypter.SetKey(vMasterKey, chIV))
return false;
return cKeyCrypter.Encrypt((CKeyingMaterial)vchPlaintext, vchCiphertext);
}
bool DecryptSecret(const CKeyingMaterial& vMasterKey, const std::vector<unsigned char>& vchCiphertext, const uint256& nIV, CSecret& vchPlaintext)
{
CCrypter cKeyCrypter;
std::vector<unsigned char> chIV(WALLET_CRYPTO_KEY_SIZE);
memcpy(&chIV[0], &nIV, WALLET_CRYPTO_KEY_SIZE);
if(!cKeyCrypter.SetKey(vMasterKey, chIV))
return false;
return cKeyCrypter.Decrypt(vchCiphertext, *((CKeyingMaterial*)&vchPlaintext));
}

96
src/crypter.h Normal file
View File

@@ -0,0 +1,96 @@
// Copyright (c) 2011 The Bitcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef __CRYPTER_H__
#define __CRYPTER_H__
#include "key.h"
const unsigned int WALLET_CRYPTO_KEY_SIZE = 32;
const unsigned int WALLET_CRYPTO_SALT_SIZE = 8;
/*
Private key encryption is done based on a CMasterKey,
which holds a salt and random encryption key.
CMasterKeys is encrypted using AES-256-CBC using a key
derived using derivation method nDerivationMethod
(0 == EVP_sha512()) and derivation iterations nDeriveIterations.
vchOtherDerivationParameters is provided for alternative algorithms
which may require more parameters (such as scrypt).
Wallet Private Keys are then encrypted using AES-256-CBC
with the double-sha256 of the private key as the IV, and the
master key's key as the encryption key.
*/
class CMasterKey
{
public:
std::vector<unsigned char> vchCryptedKey;
std::vector<unsigned char> vchSalt;
// 0 = EVP_sha512()
// 1 = scrypt()
unsigned int nDerivationMethod;
unsigned int nDeriveIterations;
// Use this for more parameters to key derivation,
// such as the various parameters to scrypt
std::vector<unsigned char> vchOtherDerivationParameters;
IMPLEMENT_SERIALIZE
(
READWRITE(vchCryptedKey);
READWRITE(vchSalt);
READWRITE(nDerivationMethod);
READWRITE(nDeriveIterations);
READWRITE(vchOtherDerivationParameters);
)
CMasterKey()
{
// 25000 rounds is just under 0.1 seconds on a 1.86 GHz Pentium M
// ie slightly lower than the lowest hardware we need bother supporting
nDeriveIterations = 25000;
nDerivationMethod = 0;
vchOtherDerivationParameters = std::vector<unsigned char>(0);
}
};
typedef std::vector<unsigned char, secure_allocator<unsigned char> > CKeyingMaterial;
class CCrypter
{
private:
unsigned char chKey[WALLET_CRYPTO_KEY_SIZE];
unsigned char chIV[WALLET_CRYPTO_KEY_SIZE];
bool fKeySet;
public:
bool SetKeyFromPassphrase(const std::string &strKeyData, const std::vector<unsigned char>& chSalt, const unsigned int nRounds, const unsigned int nDerivationMethod);
bool Encrypt(const CKeyingMaterial& vchPlaintext, std::vector<unsigned char> &vchCiphertext);
bool Decrypt(const std::vector<unsigned char>& vchCiphertext, CKeyingMaterial& vchPlaintext);
bool SetKey(const CKeyingMaterial& chNewKey, const std::vector<unsigned char>& chNewIV);
void CleanKey()
{
memset(&chKey, 0, sizeof chKey);
memset(&chIV, 0, sizeof chIV);
munlock(&chKey, sizeof chKey);
munlock(&chIV, sizeof chIV);
fKeySet = false;
}
CCrypter()
{
fKeySet = false;
}
~CCrypter()
{
CleanKey();
}
};
bool EncryptSecret(CKeyingMaterial& vMasterKey, const CSecret &vchPlaintext, const uint256& nIV, std::vector<unsigned char> &vchCiphertext);
bool DecryptSecret(const CKeyingMaterial& vMasterKey, const std::vector<unsigned char> &vchCiphertext, const uint256& nIV, CSecret &vchPlaintext);
#endif

View File

@@ -1,67 +0,0 @@
Compilation Copyright (c) 1995-2009 by Wei Dai. All rights reserved.
This copyright applies only to this software distribution package
as a compilation, and does not imply a copyright on any particular
file in the package.
The following files are copyrighted by their respective original authors,
and their use is subject to additional licenses included in these files.
mars.cpp - Copyright 1998 Brian Gladman.
All other files in this compilation are placed in the public domain by
Wei Dai and other contributors.
I would like to thank the following authors for placing their works into
the public domain:
Joan Daemen - 3way.cpp
Leonard Janke - cast.cpp, seal.cpp
Steve Reid - cast.cpp
Phil Karn - des.cpp
Andrew M. Kuchling - md2.cpp, md4.cpp
Colin Plumb - md5.cpp
Seal Woods - rc6.cpp
Chris Morgan - rijndael.cpp
Paulo Baretto - rijndael.cpp, skipjack.cpp, square.cpp
Richard De Moliner - safer.cpp
Matthew Skala - twofish.cpp
Kevin Springle - camellia.cpp, shacal2.cpp, ttmac.cpp, whrlpool.cpp, ripemd.cpp
Permission to use, copy, modify, and distribute this compilation for
any purpose, including commercial applications, is hereby granted
without fee, subject to the following restrictions:
1. Any copy or modification of this compilation in any form, except
in object code form as part of an application software, must include
the above copyright notice and this license.
2. Users of this software agree that any modification or extension
they provide to Wei Dai will be considered public domain and not
copyrighted unless it includes an explicit copyright notice.
3. Wei Dai makes no warranty or representation that the operation of the
software in this compilation will be error-free, and Wei Dai is under no
obligation to provide any services, by way of maintenance, update, or
otherwise. THE SOFTWARE AND ANY DOCUMENTATION ARE PROVIDED "AS IS"
WITHOUT EXPRESS OR IMPLIED WARRANTY INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. IN NO EVENT WILL WEI DAI OR ANY OTHER CONTRIBUTOR BE LIABLE FOR
DIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
4. Users will not use Wei Dai or any other contributor's name in any
publicity or advertising, without prior written consent in each case.
5. Export of this software from the United States may require a
specific license from the United States Government. It is the
responsibility of any person or organization contemplating export
to obtain such a license before exporting.
6. Certain parts of this software may be protected by patents. It
is the users' responsibility to obtain the appropriate
licenses before using those parts.
If this compilation is used in object code form in an application
software, acknowledgement of the author is not required but would be
appreciated. The contribution of any useful modifications or extensions
to Wei Dai is not required but would also be appreciated.

View File

@@ -1,429 +0,0 @@
Crypto++: a C++ Class Library of Cryptographic Schemes
Version 5.6.0 (3/15/2009)
Crypto++ Library is a free C++ class library of cryptographic schemes.
Currently the library contains the following algorithms:
algorithm type name
authenticated encryption schemes GCM, CCM, EAX
high speed stream ciphers Panama, Sosemanuk, Salsa20, XSalsa20
AES and AES candidates AES (Rijndael), RC6, MARS, Twofish, Serpent,
CAST-256
IDEA, Triple-DES (DES-EDE2 and DES-EDE3),
other block ciphers Camellia, SEED, RC5, Blowfish, TEA, XTEA,
Skipjack, SHACAL-2
block cipher modes of operation ECB, CBC, CBC ciphertext stealing (CTS),
CFB, OFB, counter mode (CTR)
message authentication codes VMAC, HMAC, CMAC, CBC-MAC, DMAC,
Two-Track-MAC
SHA-1, SHA-2 (SHA-224, SHA-256, SHA-384, and
hash functions SHA-512), Tiger, WHIRLPOOL, RIPEMD-128,
RIPEMD-256, RIPEMD-160, RIPEMD-320
RSA, DSA, ElGamal, Nyberg-Rueppel (NR),
public-key cryptography Rabin, Rabin-Williams (RW), LUC, LUCELG,
DLIES (variants of DHAES), ESIGN
padding schemes for public-key PKCS#1 v2.0, OAEP, PSS, PSSR, IEEE P1363
systems EMSA2 and EMSA5
Diffie-Hellman (DH), Unified Diffie-Hellman
key agreement schemes (DH2), Menezes-Qu-Vanstone (MQV), LUCDIF,
XTR-DH
elliptic curve cryptography ECDSA, ECNR, ECIES, ECDH, ECMQV
insecure or obsolescent MD2, MD4, MD5, Panama Hash, DES, ARC4, SEAL
algorithms retained for backwards 3.0, WAKE, WAKE-OFB, DESX (DES-XEX3), RC2,
compatibility and historical SAFER, 3-WAY, GOST, SHARK, CAST-128, Square
value
Other features include:
* pseudo random number generators (PRNG): ANSI X9.17 appendix C, RandomPool
* password based key derivation functions: PBKDF1 and PBKDF2 from PKCS #5,
PBKDF from PKCS #12 appendix B
* Shamir's secret sharing scheme and Rabin's information dispersal algorithm
(IDA)
* fast multi-precision integer (bignum) and polynomial operations
* finite field arithmetics, including GF(p) and GF(2^n)
* prime number generation and verification
* useful non-cryptographic algorithms
+ DEFLATE (RFC 1951) compression/decompression with gzip (RFC 1952) and
zlib (RFC 1950) format support
+ hex, base-32, and base-64 coding/decoding
+ 32-bit CRC and Adler32 checksum
* class wrappers for these operating system features (optional):
+ high resolution timers on Windows, Unix, and Mac OS
+ Berkeley and Windows style sockets
+ Windows named pipes
+ /dev/random, /dev/urandom, /dev/srandom
+ Microsoft's CryptGenRandom on Windows
* A high level interface for most of the above, using a filter/pipeline
metaphor
* benchmarks and validation testing
* x86, x86-64 (x64), MMX, and SSE2 assembly code for the most commonly used
algorithms, with run-time CPU feature detection and code selection
* some versions are available in FIPS 140-2 validated form
You are welcome to use it for any purpose without paying me, but see
License.txt for the fine print.
The following compilers are supported for this release. Please visit
http://www.cryptopp.com the most up to date build instructions and porting notes.
* MSVC 6.0 - 2008
* GCC 3.3 - 4.3
* C++Builder 2009
* Intel C++ Compiler 9 - 11
* Sun Studio 12 (CC 5.9)
*** Important Usage Notes ***
1. If a constructor for A takes a pointer to an object B (except primitive
types such as int and char), then A owns B and will delete B at A's
destruction. If a constructor for A takes a reference to an object B,
then the caller retains ownership of B and should not destroy it until
A no longer needs it.
2. Crypto++ is thread safe at the class level. This means you can use
Crypto++ safely in a multithreaded application, but you must provide
synchronization when multiple threads access a common Crypto++ object.
*** MSVC-Specific Information ***
On Windows, Crypto++ can be compiled into 3 forms: a static library
including all algorithms, a DLL with only FIPS Approved algorithms, and
a static library with only algorithms not in the DLL.
(FIPS Approved means Approved according to the FIPS 140-2 standard.)
The DLL may be used by itself, or it may be used together with the second
form of the static library. MSVC project files are included to build
all three forms, and sample applications using each of the three forms
are also included.
To compile Crypto++ with MSVC, open the "cryptest.dsw" (for MSVC 6 and MSVC .NET
2003) or "cryptest.sln" (for MSVC .NET 2005) workspace file and build one or
more of the following projects:
cryptdll - This builds the DLL. Please note that if you wish to use Crypto++
as a FIPS validated module, you must use a pre-built DLL that has undergone
the FIPS validation process instead of building your own.
dlltest - This builds a sample application that only uses the DLL.
cryptest Non-DLL-Import Configuration - This builds the full static library
along with a full test driver.
cryptest DLL-Import Configuration - This builds a static library containing
only algorithms not in the DLL, along with a full test driver that uses
both the DLL and the static library.
To use the Crypto++ DLL in your application, #include "dll.h" before including
any other Crypto++ header files, and place the DLL in the same directory as
your .exe file. dll.h includes the line #pragma comment(lib, "cryptopp")
so you don't have to explicitly list the import library in your project
settings. To use a static library form of Crypto++, specify it as
an additional library to link with in your project settings.
In either case you should check the compiler options to
make sure that the library and your application are using the same C++
run-time libraries and calling conventions.
*** DLL Memory Management ***
Because it's possible for the Crypto++ DLL to delete objects allocated
by the calling application, they must use the same C++ memory heap. Three
methods are provided to achieve this.
1. The calling application can tell Crypto++ what heap to use. This method
is required when the calling application uses a non-standard heap.
2. Crypto++ can tell the calling application what heap to use. This method
is required when the calling application uses a statically linked C++ Run
Time Library. (Method 1 does not work in this case because the Crypto++ DLL
is initialized before the calling application's heap is initialized.)
3. Crypto++ can automatically use the heap provided by the calling application's
dynamically linked C++ Run Time Library. The calling application must
make sure that the dynamically linked C++ Run Time Library is initialized
before Crypto++ is loaded. (At this time it is not clear if it is possible
to control the order in which DLLs are initialized on Windows 9x machines,
so it might be best to avoid using this method.)
When Crypto++ attaches to a new process, it searches all modules loaded
into the process space for exported functions "GetNewAndDeleteForCryptoPP"
and "SetNewAndDeleteFromCryptoPP". If one of these functions is found,
Crypto++ uses methods 1 or 2, respectively, by calling the function.
Otherwise, method 3 is used.
*** GCC-Specific Information ***
A makefile is included for you to compile Crypto++ with GCC. Make sure
you are using GNU Make and GNU ld. The make process will produce two files,
libcryptopp.a and cryptest.exe. Run "cryptest.exe v" for the validation
suite.
*** Documentation and Support ***
Crypto++ is documented through inline comments in header files, which are
processed through Doxygen to produce an HTML reference manual. You can find
a link to the manual from http://www.cryptopp.com. Also at that site is
the Crypto++ FAQ, which you should browse through before attempting to
use this library, because it will likely answer many of questions that
may come up.
If you run into any problems, please try the Crypto++ mailing list.
The subscription information and the list archive are available on
http://www.cryptopp.com. You can also email me directly by visiting
http://www.weidai.com, but you will probably get a faster response through
the mailing list.
*** History ***
1.0 - First public release. Withdrawn at the request of RSA DSI.
- included Blowfish, BBS, DES, DH, Diamond, DSA, ElGamal, IDEA,
MD5, RC4, RC5, RSA, SHA, WAKE, secret sharing, DEFLATE compression
- had a serious bug in the RSA key generation code.
1.1 - Removed RSA, RC4, RC5
- Disabled calls to RSAREF's non-public functions
- Minor bugs fixed
2.0 - a completely new, faster multiprecision integer class
- added MD5-MAC, HAVAL, 3-WAY, TEA, SAFER, LUC, Rabin, BlumGoldwasser,
elliptic curve algorithms
- added the Lucas strong probable primality test
- ElGamal encryption and signature schemes modified to avoid weaknesses
- Diamond changed to Diamond2 because of key schedule weakness
- fixed bug in WAKE key setup
- SHS class renamed to SHA
- lots of miscellaneous optimizations
2.1 - added Tiger, HMAC, GOST, RIPE-MD160, LUCELG, LUCDIF, XOR-MAC,
OAEP, PSSR, SHARK
- added precomputation to DH, ElGamal, DSA, and elliptic curve algorithms
- added back RC5 and a new RSA
- optimizations in elliptic curves over GF(p)
- changed Rabin to use OAEP and PSSR
- changed many classes to allow copy constructors to work correctly
- improved exception generation and handling
2.2 - added SEAL, CAST-128, Square
- fixed bug in HAVAL (padding problem)
- fixed bug in triple-DES (decryption order was reversed)
- fixed bug in RC5 (couldn't handle key length not a multiple of 4)
- changed HMAC to conform to RFC-2104 (which is not compatible
with the original HMAC)
- changed secret sharing and information dispersal to use GF(2^32)
instead of GF(65521)
- removed zero knowledge prover/verifier for graph isomorphism
- removed several utility classes in favor of the C++ standard library
2.3 - ported to EGCS
- fixed incomplete workaround of min/max conflict in MSVC
3.0 - placed all names into the "CryptoPP" namespace
- added MD2, RC2, RC6, MARS, RW, DH2, MQV, ECDHC, CBC-CTS
- added abstract base classes PK_SimpleKeyAgreementDomain and
PK_AuthenticatedKeyAgreementDomain
- changed DH and LUCDIF to implement the PK_SimpleKeyAgreementDomain
interface and to perform domain parameter and key validation
- changed interfaces of PK_Signer and PK_Verifier to sign and verify
messages instead of message digests
- changed OAEP to conform to PKCS#1 v2.0
- changed benchmark code to produce HTML tables as output
- changed PSSR to track IEEE P1363a
- renamed ElGamalSignature to NR and changed it to track IEEE P1363
- renamed ECKEP to ECMQVC and changed it to track IEEE P1363
- renamed several other classes for clarity
- removed support for calling RSAREF
- removed option to compile old SHA (SHA-0)
- removed option not to throw exceptions
3.1 - added ARC4, Rijndael, Twofish, Serpent, CBC-MAC, DMAC
- added interface for querying supported key lengths of symmetric ciphers
and MACs
- added sample code for RSA signature and verification
- changed CBC-CTS to be compatible with RFC 2040
- updated SEAL to version 3.0 of the cipher specification
- optimized multiprecision squaring and elliptic curves over GF(p)
- fixed bug in MARS key setup
- fixed bug with attaching objects to Deflator
3.2 - added DES-XEX3, ECDSA, DefaultEncryptorWithMAC
- renamed DES-EDE to DES-EDE2 and TripleDES to DES-EDE3
- optimized ARC4
- generalized DSA to allow keys longer than 1024 bits
- fixed bugs in GF2N and ModularArithmetic that can cause calculation errors
- fixed crashing bug in Inflator when given invalid inputs
- fixed endian bug in Serpent
- fixed padding bug in Tiger
4.0 - added Skipjack, CAST-256, Panama, SHA-2 (SHA-256, SHA-384, and SHA-512),
and XTR-DH
- added a faster variant of Rabin's Information Dispersal Algorithm (IDA)
- added class wrappers for these operating system features:
- high resolution timers on Windows, Unix, and MacOS
- Berkeley and Windows style sockets
- Windows named pipes
- /dev/random and /dev/urandom on Linux and FreeBSD
- Microsoft's CryptGenRandom on Windows
- added support for SEC 1 elliptic curve key format and compressed points
- added support for X.509 public key format (subjectPublicKeyInfo) for
RSA, DSA, and elliptic curve schemes
- added support for DER and OpenPGP signature format for DSA
- added support for ZLIB compressed data format (RFC 1950)
- changed elliptic curve encryption to use ECIES (as defined in SEC 1)
- changed MARS key schedule to reflect the latest specification
- changed BufferedTransformation interface to support multiple channels
and messages
- changed CAST and SHA-1 implementations to use public domain source code
- fixed bug in StringSource
- optmized multi-precision integer code for better performance
4.1 - added more support for the recommended elliptic curve parameters in SEC 2
- added Panama MAC, MARC4
- added IV stealing feature to CTS mode
- added support for PKCS #8 private key format for RSA, DSA, and elliptic
curve schemes
- changed Deflate, MD5, Rijndael, and Twofish to use public domain code
- fixed a bug with flushing compressed streams
- fixed a bug with decompressing stored blocks
- fixed a bug with EC point decompression using non-trinomial basis
- fixed a bug in NetworkSource::GeneralPump()
- fixed a performance issue with EC over GF(p) decryption
- fixed syntax to allow GCC to compile without -fpermissive
- relaxed some restrictions in the license
4.2 - added support for longer HMAC keys
- added MD4 (which is not secure so use for compatibility purposes only)
- added compatibility fixes/workarounds for STLport 4.5, GCC 3.0.2,
and MSVC 7.0
- changed MD2 to use public domain code
- fixed a bug with decompressing multiple messages with the same object
- fixed a bug in CBC-MAC with MACing multiple messages with the same object
- fixed a bug in RC5 and RC6 with zero-length keys
- fixed a bug in Adler32 where incorrect checksum may be generated
5.0 - added ESIGN, DLIES, WAKE-OFB, PBKDF1 and PBKDF2 from PKCS #5
- added key validation for encryption and signature public/private keys
- renamed StreamCipher interface to SymmetricCipher, which is now implemented
by both stream ciphers and block cipher modes including ECB and CBC
- added keying interfaces to support resetting of keys and IVs without
having to destroy and recreate objects
- changed filter interface to support non-blocking input/output
- changed SocketSource and SocketSink to use overlapped I/O on Microsoft Windows
- grouped related classes inside structs to help templates, for example
AESEncryption and AESDecryption are now AES::Encryption and AES::Decryption
- where possible, typedefs have been added to improve backwards
compatibility when the CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY macro is defined
- changed Serpent, HAVAL and IDEA to use public domain code
- implemented SSE2 optimizations for Integer operations
- fixed a bug in HMAC::TruncatedFinal()
- fixed SKIPJACK byte ordering following NIST clarification dated 5/9/02
5.01 - added known answer test for X9.17 RNG in FIPS 140 power-up self test
- submitted to NIST/CSE, but not publicly released
5.02 - changed EDC test to MAC integrity check using HMAC/SHA1
- improved performance of integrity check
- added blinding to defend against RSA timing attack
5.03 - created DLL version of Crypto++ for FIPS 140-2 validation
- fixed vulnerabilities in GetNextIV for CTR and OFB modes
5.0.4 - Removed DES, SHA-256, SHA-384, SHA-512 from DLL
5.1 - added PSS padding and changed PSSR to track IEEE P1363a draft standard
- added blinding for RSA and Rabin to defend against timing attacks
on decryption operations
- changed signing and decryption APIs to support the above
- changed WaitObjectContainer to allow waiting for more than 64
objects at a time on Win32 platforms
- fixed a bug in CBC and ECB modes with processing non-aligned data
- fixed standard conformance bugs in DLIES (DHAES mode) and RW/EMSA2
signature scheme (these fixes are not backwards compatible)
- fixed a number of compiler warnings, minor bugs, and portability problems
- removed Sapphire
5.2 - merged in changes for 5.01 - 5.0.4
- added support for using encoding parameters and key derivation parameters
with public key encryption (implemented by OAEP and DL/ECIES)
- added Camellia, SHACAL-2, Two-Track-MAC, Whirlpool, RIPEMD-320,
RIPEMD-128, RIPEMD-256, Base-32 coding, FIPS variant of CFB mode
- added ThreadUserTimer for timing thread CPU usage
- added option for password-based key derivation functions
to iterate until a mimimum elapsed thread CPU time is reached
- added option (on by default) for DEFLATE compression to detect
uncompressible files and process them more quickly
- improved compatibility and performance on 64-bit platforms,
including Alpha, IA-64, x86-64, PPC64, Sparc64, and MIPS64
- fixed ONE_AND_ZEROS_PADDING to use 0x80 instead 0x01 as padding.
- fixed encoding/decoding of PKCS #8 privateKeyInfo to properly
handle optional attributes
5.2.1 - fixed bug in the "dlltest" DLL testing program
- fixed compiling with STLport using VC .NET
- fixed compiling with -fPIC using GCC
- fixed compiling with -msse2 on systems without memalign()
- fixed inability to instantiate PanamaMAC
- fixed problems with inline documentation
5.2.2 - added SHA-224
- put SHA-256, SHA-384, SHA-512, RSASSA-PSS into DLL
5.2.3 - fixed issues with FIPS algorithm test vectors
- put RSASSA-ISO into DLL
5.3 - ported to MSVC 2005 with support for x86-64
- added defense against AES timing attacks, and more AES test vectors
- changed StaticAlgorithmName() of Rijndael to "AES", CTR to "CTR"
5.4 - added Salsa20
- updated Whirlpool to version 3.0
- ported to GCC 4.1, Sun C++ 5.8, and Borland C++Builder 2006
5.5 - added VMAC and Sosemanuk (with x86-64 and SSE2 assembly)
- improved speed of integer arithmetic, AES, SHA-512, Tiger, Salsa20,
Whirlpool, and PANAMA cipher using assembly (x86-64, MMX, SSE2)
- optimized Camellia and added defense against timing attacks
- updated benchmarks code to show cycles per byte and to time key/IV setup
- started using OpenMP for increased multi-core speed
- enabled GCC optimization flags by default in GNUmakefile
- added blinding and computational error checking for RW signing
- changed RandomPool, X917RNG, GetNextIV, DSA/NR/ECDSA/ECNR to reduce
the risk of reusing random numbers and IVs after virtual machine state
rollback
- changed default FIPS mode RNG from AutoSeededX917RNG<DES_EDE3> to
AutoSeededX917RNG<AES>
- fixed PANAMA cipher interface to accept 256-bit key and 256-bit IV
- moved MD2, MD4, MD5, PanamaHash, ARC4, WAKE_CFB into the namespace "Weak"
- removed HAVAL, MD5-MAC, XMAC
5.5.1 - fixed VMAC validation failure on 32-bit big-endian machines
5.5.2 - ported x64 assembly language code for AES, Salsa20, Sosemanuk, and Panama
to MSVC 2005 (using MASM since MSVC doesn't support inline assembly on x64)
- fixed Salsa20 initialization crash on non-SSE2 machines
- fixed Whirlpool crash on Pentium 2 machines
- fixed possible branch prediction analysis (BPA) vulnerability in
MontgomeryReduce(), which may affect security of RSA, RW, LUC
- fixed link error with MSVC 2003 when using "debug DLL" form of runtime library
- fixed crash in SSE2_Add on P4 machines when compiled with
MSVC 6.0 SP5 with Processor Pack
- ported to MSVC 2008, GCC 4.2, Sun CC 5.9, Intel C++ Compiler 10.0,
and Borland C++Builder 2007
5.6 - added AuthenticatedSymmetricCipher interface class and Filter wrappers
- added CCM, GCM (with SSE2 assembly), EAX, CMAC, XSalsa20, and SEED
- added support for variable length IVs
- improved AES and SHA-256 speed on x86 and x64
- fixed incorrect VMAC computation on message lengths
that are >64 mod 128 (x86 assembly version is not affected)
- fixed compiler error in vmac.cpp on x86 with GCC -fPIC
- fixed run-time validation error on x86-64 with GCC 4.3.2 -O2
- fixed HashFilter bug when putMessage=true
- removed WORD64_AVAILABLE; compiler support for 64-bit int is now required
- ported to GCC 4.3, C++Builder 2009, Sun CC 5.10, Intel C++ Compiler 11
Written by Wei Dai

View File

@@ -1,462 +0,0 @@
#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
#if !defined(IS_LITTLE_ENDIAN) && (defined(__BIG_ENDIAN__) || defined(__sparc) || defined(__sparc__) || defined(__hppa__) || defined(__mips__) || (defined(__MWERKS__) && !defined(__INTEL__)))
# define IS_BIG_ENDIAN
#endif
// define this if running on a little-endian CPU
// big endian will be assumed if IS_LITTLE_ENDIAN is not defined
#ifndef IS_BIG_ENDIAN
# define IS_LITTLE_ENDIAN
#endif
// define this if you want to disable all OS-dependent features,
// such as sockets and OS-provided random number generators
// #define NO_OS_DEPENDENCE
// Define this to use features provided by Microsoft's CryptoAPI.
// Currently the only feature used is random number generation.
// This macro will be ignored if NO_OS_DEPENDENCE is defined.
#define USE_MS_CRYPTOAPI
// Define this to 1 to enforce the requirement in FIPS 186-2 Change Notice 1 that only 1024 bit moduli be used
#ifndef DSA_1024_BIT_MODULUS_ONLY
# define DSA_1024_BIT_MODULUS_ONLY 1
#endif
// ***************** Less Important Settings ***************
// define this to retain (as much as possible) old deprecated function and class names
// #define CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY
#define GZIP_OS_CODE 0
// Try this if your CPU has 256K internal cache or a slow multiply instruction
// and you want a (possibly) faster IDEA implementation using log tables
// #define IDEA_LARGECACHE
// Define this if, for the linear congruential RNG, you want to use
// the original constants as specified in S.K. Park and K.W. Miller's
// CACM paper.
// #define LCRNG_ORIGINAL_NUMBERS
// choose which style of sockets to wrap (mostly useful for cygwin which has both)
#define PREFER_BERKELEY_STYLE_SOCKETS
// #define PREFER_WINDOWS_STYLE_SOCKETS
// set the name of Rijndael cipher, was "Rijndael" before version 5.3
#define CRYPTOPP_RIJNDAEL_NAME "AES"
// ***************** Important Settings Again ********************
// But the defaults should be ok.
// namespace support is now required
#ifdef NO_NAMESPACE
# error namespace support is now required
#endif
// Define this to workaround a Microsoft CryptoAPI bug where
// each call to CryptAcquireContext causes a 100 KB memory leak.
// Defining this will cause Crypto++ to make only one call to CryptAcquireContext.
#define WORKAROUND_MS_BUG_Q258000
#ifdef CRYPTOPP_DOXYGEN_PROCESSING
// Avoid putting "CryptoPP::" in front of everything in Doxygen output
# define CryptoPP
# define NAMESPACE_BEGIN(x)
# define NAMESPACE_END
// Get Doxygen to generate better documentation for these typedefs
# define DOCUMENTED_TYPEDEF(x, y) class y : public x {};
#else
# define NAMESPACE_BEGIN(x) namespace x {
# define NAMESPACE_END }
# define DOCUMENTED_TYPEDEF(x, y) typedef x y;
#endif
#define ANONYMOUS_NAMESPACE_BEGIN namespace {
#define USING_NAMESPACE(x) using namespace x;
#define DOCUMENTED_NAMESPACE_BEGIN(x) namespace x {
#define DOCUMENTED_NAMESPACE_END }
// What is the type of the third parameter to bind?
// For Unix, the new standard is ::socklen_t (typically unsigned int), and the old standard is int.
// Unfortunately there is no way to tell whether or not socklen_t is defined.
// To work around this, TYPE_OF_SOCKLEN_T is a macro so that you can change it from the makefile.
#ifndef TYPE_OF_SOCKLEN_T
# if defined(_WIN32) || defined(__CYGWIN__)
# define TYPE_OF_SOCKLEN_T int
# else
# define TYPE_OF_SOCKLEN_T ::socklen_t
# endif
#endif
#if defined(__CYGWIN__) && defined(PREFER_WINDOWS_STYLE_SOCKETS)
# define __USE_W32_SOCKETS
#endif
typedef unsigned char byte; // put in global namespace to avoid ambiguity with other byte typedefs
NAMESPACE_BEGIN(CryptoPP)
typedef unsigned short word16;
typedef unsigned int word32;
#if defined(_MSC_VER) || defined(__BORLANDC__)
typedef unsigned __int64 word64;
#define W64LIT(x) x##ui64
#else
typedef unsigned long long word64;
#define W64LIT(x) x##ULL
#endif
// define large word type, used for file offsets and such
typedef word64 lword;
const lword LWORD_MAX = W64LIT(0xffffffffffffffff);
#ifdef __GNUC__
#define CRYPTOPP_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#endif
// define hword, word, and dword. these are used for multiprecision integer arithmetic
// Intel compiler won't have _umul128 until version 10.0. See http://softwarecommunity.intel.com/isn/Community/en-US/forums/thread/30231625.aspx
#if (defined(_MSC_VER) && (!defined(__INTEL_COMPILER) || __INTEL_COMPILER >= 1000) && (defined(_M_X64) || defined(_M_IA64))) || (defined(__DECCXX) && defined(__alpha__)) || (defined(__INTEL_COMPILER) && defined(__x86_64__)) || (defined(__SUNPRO_CC) && defined(__x86_64__))
typedef word32 hword;
typedef word64 word;
#else
#define CRYPTOPP_NATIVE_DWORD_AVAILABLE
#if defined(__alpha__) || defined(__ia64__) || defined(_ARCH_PPC64) || defined(__x86_64__) || defined(__mips64) || defined(__sparc64__)
#if defined(__GNUC__) && !defined(__INTEL_COMPILER) && !(CRYPTOPP_GCC_VERSION == 40001 && defined(__APPLE__)) && CRYPTOPP_GCC_VERSION >= 30400
// GCC 4.0.1 on MacOS X is missing __umodti3 and __udivti3
// mode(TI) division broken on amd64 with GCC earlier than GCC 3.4
typedef word32 hword;
typedef word64 word;
typedef __uint128_t dword;
typedef __uint128_t word128;
#define CRYPTOPP_WORD128_AVAILABLE
#else
// if we're here, it means we're on a 64-bit CPU but we don't have a way to obtain 128-bit multiplication results
typedef word16 hword;
typedef word32 word;
typedef word64 dword;
#endif
#else
// being here means the native register size is probably 32 bits or less
#define CRYPTOPP_BOOL_SLOW_WORD64 1
typedef word16 hword;
typedef word32 word;
typedef word64 dword;
#endif
#endif
#ifndef CRYPTOPP_BOOL_SLOW_WORD64
#define CRYPTOPP_BOOL_SLOW_WORD64 0
#endif
const unsigned int WORD_SIZE = sizeof(word);
const unsigned int WORD_BITS = WORD_SIZE * 8;
NAMESPACE_END
#ifndef CRYPTOPP_L1_CACHE_LINE_SIZE
// This should be a lower bound on the L1 cache line size. It's used for defense against timing attacks.
#if defined(_M_X64) || defined(__x86_64__)
#define CRYPTOPP_L1_CACHE_LINE_SIZE 64
#else
// L1 cache line size is 32 on Pentium III and earlier
#define CRYPTOPP_L1_CACHE_LINE_SIZE 32
#endif
#endif
#if defined(_MSC_VER)
#if _MSC_VER == 1200
#include <malloc.h>
#endif
#if _MSC_VER > 1200 || defined(_mm_free)
#define CRYPTOPP_MSVC6PP_OR_LATER // VC 6 processor pack or later
#else
#define CRYPTOPP_MSVC6_NO_PP // VC 6 without processor pack
#endif
#endif
#ifndef CRYPTOPP_ALIGN_DATA
#if defined(CRYPTOPP_MSVC6PP_OR_LATER)
#define CRYPTOPP_ALIGN_DATA(x) __declspec(align(x))
#elif defined(__GNUC__)
#define CRYPTOPP_ALIGN_DATA(x) __attribute__((aligned(x)))
#else
#define CRYPTOPP_ALIGN_DATA(x)
#endif
#endif
#ifndef CRYPTOPP_SECTION_ALIGN16
#if defined(__GNUC__) && !defined(__APPLE__)
// the alignment attribute doesn't seem to work without this section attribute when -fdata-sections is turned on
#define CRYPTOPP_SECTION_ALIGN16 __attribute__((section ("CryptoPP_Align16")))
#else
#define CRYPTOPP_SECTION_ALIGN16
#endif
#endif
#if defined(_MSC_VER) || defined(__fastcall)
#define CRYPTOPP_FASTCALL __fastcall
#else
#define CRYPTOPP_FASTCALL
#endif
// VC60 workaround: it doesn't allow typename in some places
#if defined(_MSC_VER) && (_MSC_VER < 1300)
#define CPP_TYPENAME
#else
#define CPP_TYPENAME typename
#endif
// VC60 workaround: can't cast unsigned __int64 to float or double
#if defined(_MSC_VER) && !defined(CRYPTOPP_MSVC6PP_OR_LATER)
#define CRYPTOPP_VC6_INT64 (__int64)
#else
#define CRYPTOPP_VC6_INT64
#endif
#ifdef _MSC_VER
#define CRYPTOPP_NO_VTABLE __declspec(novtable)
#else
#define CRYPTOPP_NO_VTABLE
#endif
#ifdef _MSC_VER
// 4231: nonstandard extension used : 'extern' before template explicit instantiation
// 4250: dominance
// 4251: member needs to have dll-interface
// 4275: base needs to have dll-interface
// 4660: explicitly instantiating a class that's already implicitly instantiated
// 4661: no suitable definition provided for explicit template instantiation request
// 4786: identifer was truncated in debug information
// 4355: 'this' : used in base member initializer list
// 4910: '__declspec(dllexport)' and 'extern' are incompatible on an explicit instantiation
# pragma warning(disable: 4231 4250 4251 4275 4660 4661 4786 4355 4910)
#endif
#ifdef __BORLANDC__
// 8037: non-const function called for const object. needed to work around BCB2006 bug
# pragma warn -8037
#endif
#if (defined(_MSC_VER) && _MSC_VER <= 1300) || defined(__MWERKS__) || defined(_STLPORT_VERSION)
#define CRYPTOPP_DISABLE_UNCAUGHT_EXCEPTION
#endif
#ifndef CRYPTOPP_DISABLE_UNCAUGHT_EXCEPTION
#define CRYPTOPP_UNCAUGHT_EXCEPTION_AVAILABLE
#endif
#ifdef CRYPTOPP_DISABLE_X86ASM // for backwards compatibility: this macro had both meanings
#define CRYPTOPP_DISABLE_ASM
#define CRYPTOPP_DISABLE_SSE2
#endif
#if !defined(CRYPTOPP_DISABLE_ASM) && ((defined(_MSC_VER) && defined(_M_IX86)) || (defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))))
#define CRYPTOPP_X86_ASM_AVAILABLE
#if !defined(CRYPTOPP_DISABLE_SSE2) && (defined(CRYPTOPP_MSVC6PP_OR_LATER) || CRYPTOPP_GCC_VERSION >= 30300)
#define CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE 1
#else
#define CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE 0
#endif
// SSSE3 was actually introduced in GNU as 2.17, which was released 6/23/2006, but we can't tell what version of binutils is installed.
// GCC 4.1.2 was released on 2/13/2007, so we'll use that as a proxy for the binutils version.
#if !defined(CRYPTOPP_DISABLE_SSSE3) && (_MSC_VER >= 1400 || CRYPTOPP_GCC_VERSION >= 40102)
#define CRYPTOPP_BOOL_SSSE3_ASM_AVAILABLE 1
#else
#define CRYPTOPP_BOOL_SSSE3_ASM_AVAILABLE 0
#endif
#endif
#if !defined(CRYPTOPP_DISABLE_ASM) && defined(_MSC_VER) && defined(_M_X64)
#define CRYPTOPP_X64_MASM_AVAILABLE
#endif
#if !defined(CRYPTOPP_DISABLE_ASM) && defined(__GNUC__) && defined(__x86_64__)
#define CRYPTOPP_X64_ASM_AVAILABLE
#endif
#if !defined(CRYPTOPP_DISABLE_SSE2) && (defined(CRYPTOPP_MSVC6PP_OR_LATER) || defined(__SSE2__))
#define CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE 1
#else
#define CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE 0
#endif
#if CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE || CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE || defined(CRYPTOPP_X64_MASM_AVAILABLE)
#define CRYPTOPP_BOOL_ALIGN16_ENABLED 1
#else
#define CRYPTOPP_BOOL_ALIGN16_ENABLED 0
#endif
// how to allocate 16-byte aligned memory (for SSE2)
#if defined(CRYPTOPP_MSVC6PP_OR_LATER)
#define CRYPTOPP_MM_MALLOC_AVAILABLE
#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
#define CRYPTOPP_MALLOC_ALIGNMENT_IS_16
#elif defined(__linux__) || defined(__sun__) || defined(__CYGWIN__)
#define CRYPTOPP_MEMALIGN_AVAILABLE
#else
#define CRYPTOPP_NO_ALIGNED_ALLOC
#endif
// how to disable inlining
#if defined(_MSC_VER) && _MSC_VER >= 1300
# define CRYPTOPP_NOINLINE_DOTDOTDOT
# define CRYPTOPP_NOINLINE __declspec(noinline)
#elif defined(__GNUC__)
# define CRYPTOPP_NOINLINE_DOTDOTDOT
# define CRYPTOPP_NOINLINE __attribute__((noinline))
#else
# define CRYPTOPP_NOINLINE_DOTDOTDOT ...
# define CRYPTOPP_NOINLINE
#endif
// how to declare class constants
#if (defined(_MSC_VER) && _MSC_VER <= 1300) || defined(__INTEL_COMPILER)
# define CRYPTOPP_CONSTANT(x) enum {x};
#else
# define CRYPTOPP_CONSTANT(x) static const int x;
#endif
#if defined(_M_X64) || defined(__x86_64__)
#define CRYPTOPP_BOOL_X64 1
#else
#define CRYPTOPP_BOOL_X64 0
#endif
// see http://predef.sourceforge.net/prearch.html
#if defined(_M_IX86) || defined(__i386__) || defined(__i386) || defined(_X86_) || defined(__I86__) || defined(__INTEL__)
#define CRYPTOPP_BOOL_X86 1
#else
#define CRYPTOPP_BOOL_X86 0
#endif
#if CRYPTOPP_BOOL_X64 || CRYPTOPP_BOOL_X86 || defined(__powerpc__)
#define CRYPTOPP_ALLOW_UNALIGNED_DATA_ACCESS
#endif
#define CRYPTOPP_VERSION 560
// ***************** determine availability of OS features ********************
#ifndef NO_OS_DEPENDENCE
#if defined(_WIN32) || defined(__CYGWIN__)
#define CRYPTOPP_WIN32_AVAILABLE
#endif
#if defined(__unix__) || defined(__MACH__) || defined(__NetBSD__) || defined(__sun)
#define CRYPTOPP_UNIX_AVAILABLE
#endif
#if defined(CRYPTOPP_WIN32_AVAILABLE) || defined(CRYPTOPP_UNIX_AVAILABLE)
# define HIGHRES_TIMER_AVAILABLE
#endif
#ifdef CRYPTOPP_UNIX_AVAILABLE
# define HAS_BERKELEY_STYLE_SOCKETS
#endif
#ifdef CRYPTOPP_WIN32_AVAILABLE
# define HAS_WINDOWS_STYLE_SOCKETS
#endif
#if defined(HIGHRES_TIMER_AVAILABLE) && (defined(HAS_BERKELEY_STYLE_SOCKETS) || defined(HAS_WINDOWS_STYLE_SOCKETS))
# define SOCKETS_AVAILABLE
#endif
#if defined(HAS_WINDOWS_STYLE_SOCKETS) && (!defined(HAS_BERKELEY_STYLE_SOCKETS) || defined(PREFER_WINDOWS_STYLE_SOCKETS))
# define USE_WINDOWS_STYLE_SOCKETS
#else
# define USE_BERKELEY_STYLE_SOCKETS
#endif
#if defined(HIGHRES_TIMER_AVAILABLE) && defined(CRYPTOPP_WIN32_AVAILABLE) && !defined(USE_BERKELEY_STYLE_SOCKETS)
# define WINDOWS_PIPES_AVAILABLE
#endif
#if defined(CRYPTOPP_WIN32_AVAILABLE) && defined(USE_MS_CRYPTOAPI)
# define NONBLOCKING_RNG_AVAILABLE
# define OS_RNG_AVAILABLE
#endif
#if defined(CRYPTOPP_UNIX_AVAILABLE) || defined(CRYPTOPP_DOXYGEN_PROCESSING)
# define NONBLOCKING_RNG_AVAILABLE
# define BLOCKING_RNG_AVAILABLE
# define OS_RNG_AVAILABLE
# define HAS_PTHREADS
# define THREADS_AVAILABLE
#endif
#ifdef CRYPTOPP_WIN32_AVAILABLE
# define HAS_WINTHREADS
# define THREADS_AVAILABLE
#endif
#endif // NO_OS_DEPENDENCE
// ***************** DLL related ********************
#ifdef CRYPTOPP_WIN32_AVAILABLE
#ifdef CRYPTOPP_EXPORTS
#define CRYPTOPP_IS_DLL
#define CRYPTOPP_DLL __declspec(dllexport)
#elif defined(CRYPTOPP_IMPORTS)
#define CRYPTOPP_IS_DLL
#define CRYPTOPP_DLL __declspec(dllimport)
#else
#define CRYPTOPP_DLL
#endif
#define CRYPTOPP_API __cdecl
#else // CRYPTOPP_WIN32_AVAILABLE
#define CRYPTOPP_DLL
#define CRYPTOPP_API
#endif // CRYPTOPP_WIN32_AVAILABLE
#if defined(__MWERKS__)
#define CRYPTOPP_EXTERN_DLL_TEMPLATE_CLASS extern class CRYPTOPP_DLL
#elif defined(__BORLANDC__) || defined(__SUNPRO_CC)
#define CRYPTOPP_EXTERN_DLL_TEMPLATE_CLASS template class CRYPTOPP_DLL
#else
#define CRYPTOPP_EXTERN_DLL_TEMPLATE_CLASS extern template class CRYPTOPP_DLL
#endif
#if defined(CRYPTOPP_MANUALLY_INSTANTIATE_TEMPLATES) && !defined(CRYPTOPP_IMPORTS)
#define CRYPTOPP_DLL_TEMPLATE_CLASS template class CRYPTOPP_DLL
#else
#define CRYPTOPP_DLL_TEMPLATE_CLASS CRYPTOPP_EXTERN_DLL_TEMPLATE_CLASS
#endif
#if defined(__MWERKS__)
#define CRYPTOPP_EXTERN_STATIC_TEMPLATE_CLASS extern class
#elif defined(__BORLANDC__) || defined(__SUNPRO_CC)
#define CRYPTOPP_EXTERN_STATIC_TEMPLATE_CLASS template class
#else
#define CRYPTOPP_EXTERN_STATIC_TEMPLATE_CLASS extern template class
#endif
#if defined(CRYPTOPP_MANUALLY_INSTANTIATE_TEMPLATES) && !defined(CRYPTOPP_EXPORTS)
#define CRYPTOPP_STATIC_TEMPLATE_CLASS template class
#else
#define CRYPTOPP_STATIC_TEMPLATE_CLASS CRYPTOPP_EXTERN_STATIC_TEMPLATE_CLASS
#endif
#endif

View File

@@ -1,199 +0,0 @@
// cpu.cpp - written and placed in the public domain by Wei Dai
#include "pch.h"
#ifndef CRYPTOPP_IMPORTS
#include "cpu.h"
#include "misc.h"
#include <algorithm>
#ifdef __GNUC__
#include <signal.h>
#include <setjmp.h>
#endif
#ifdef CRYPTOPP_MSVC6PP_OR_LATER
#include <emmintrin.h>
#endif
NAMESPACE_BEGIN(CryptoPP)
#ifdef CRYPTOPP_X86_ASM_AVAILABLE
#ifndef _MSC_VER
typedef void (*SigHandler)(int);
static jmp_buf s_jmpNoCPUID;
static void SigIllHandlerCPUID(int)
{
longjmp(s_jmpNoCPUID, 1);
}
#endif
bool CpuId(word32 input, word32 *output)
{
#ifdef _MSC_VER
__try
{
__asm
{
mov eax, input
cpuid
mov edi, output
mov [edi], eax
mov [edi+4], ebx
mov [edi+8], ecx
mov [edi+12], edx
}
}
__except (1)
{
return false;
}
return true;
#else
SigHandler oldHandler = signal(SIGILL, SigIllHandlerCPUID);
if (oldHandler == SIG_ERR)
return false;
bool result = true;
if (setjmp(s_jmpNoCPUID))
result = false;
else
{
__asm__
(
// save ebx in case -fPIC is being used
#if CRYPTOPP_BOOL_X86
"push %%ebx; cpuid; mov %%ebx, %%edi; pop %%ebx"
#else
"pushq %%rbx; cpuid; mov %%ebx, %%edi; popq %%rbx"
#endif
: "=a" (output[0]), "=D" (output[1]), "=c" (output[2]), "=d" (output[3])
: "a" (input)
);
}
signal(SIGILL, oldHandler);
return result;
#endif
}
#ifndef _MSC_VER
static jmp_buf s_jmpNoSSE2;
static void SigIllHandlerSSE2(int)
{
longjmp(s_jmpNoSSE2, 1);
}
#endif
#elif _MSC_VER >= 1400 && CRYPTOPP_BOOL_X64
bool CpuId(word32 input, word32 *output)
{
__cpuid((int *)output, input);
return true;
}
#endif
#ifdef CRYPTOPP_CPUID_AVAILABLE
static bool TrySSE2()
{
#if CRYPTOPP_BOOL_X64
return true;
#elif defined(_MSC_VER)
__try
{
#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
AS2(por xmm0, xmm0) // executing SSE2 instruction
#elif CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE
__mm128i x = _mm_setzero_si128();
return _mm_cvtsi128_si32(x) == 0;
#endif
}
__except (1)
{
return false;
}
return true;
#elif defined(__GNUC__)
SigHandler oldHandler = signal(SIGILL, SigIllHandlerSSE2);
if (oldHandler == SIG_ERR)
return false;
bool result = true;
if (setjmp(s_jmpNoSSE2))
result = false;
else
{
#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
__asm __volatile ("por %xmm0, %xmm0");
#elif CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE
__mm128i x = _mm_setzero_si128();
result = _mm_cvtsi128_si32(x) == 0;
#endif
}
signal(SIGILL, oldHandler);
return result;
#else
return false;
#endif
}
bool g_x86DetectionDone = false;
bool g_hasISSE = false, g_hasSSE2 = false, g_hasSSSE3 = false, g_hasMMX = false, g_isP4 = false;
word32 g_cacheLineSize = CRYPTOPP_L1_CACHE_LINE_SIZE;
void DetectX86Features()
{
word32 cpuid[4], cpuid1[4];
if (!CpuId(0, cpuid))
return;
if (!CpuId(1, cpuid1))
return;
g_hasMMX = (cpuid1[3] & (1 << 23)) != 0;
if ((cpuid1[3] & (1 << 26)) != 0)
g_hasSSE2 = TrySSE2();
g_hasSSSE3 = g_hasSSE2 && (cpuid1[2] & (1<<9));
if ((cpuid1[3] & (1 << 25)) != 0)
g_hasISSE = true;
else
{
word32 cpuid2[4];
CpuId(0x080000000, cpuid2);
if (cpuid2[0] >= 0x080000001)
{
CpuId(0x080000001, cpuid2);
g_hasISSE = (cpuid2[3] & (1 << 22)) != 0;
}
}
std::swap(cpuid[2], cpuid[3]);
if (memcmp(cpuid+1, "GenuineIntel", 12) == 0)
{
g_isP4 = ((cpuid1[0] >> 8) & 0xf) == 0xf;
g_cacheLineSize = 8 * GETBYTE(cpuid1[1], 1);
}
else if (memcmp(cpuid+1, "AuthenticAMD", 12) == 0)
{
CpuId(0x80000005, cpuid);
g_cacheLineSize = GETBYTE(cpuid[2], 0);
}
if (!g_cacheLineSize)
g_cacheLineSize = CRYPTOPP_L1_CACHE_LINE_SIZE;
g_x86DetectionDone = true;
}
#endif
NAMESPACE_END
#endif

View File

@@ -1,263 +0,0 @@
#ifndef CRYPTOPP_CPU_H
#define CRYPTOPP_CPU_H
#ifdef CRYPTOPP_GENERATE_X64_MASM
#define CRYPTOPP_X86_ASM_AVAILABLE
#define CRYPTOPP_BOOL_X64 1
#define CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE 1
#define NAMESPACE_END
#else
#include "config.h"
#ifdef CRYPTOPP_MSVC6PP_OR_LATER
#include <emmintrin.h>
#endif
NAMESPACE_BEGIN(CryptoPP)
#if defined(CRYPTOPP_X86_ASM_AVAILABLE) || (_MSC_VER >= 1400 && CRYPTOPP_BOOL_X64)
#define CRYPTOPP_CPUID_AVAILABLE
// these should not be used directly
extern CRYPTOPP_DLL bool g_x86DetectionDone;
extern CRYPTOPP_DLL bool g_hasSSE2;
extern CRYPTOPP_DLL bool g_hasISSE;
extern CRYPTOPP_DLL bool g_hasMMX;
extern CRYPTOPP_DLL bool g_hasSSSE3;
extern CRYPTOPP_DLL bool g_isP4;
extern CRYPTOPP_DLL word32 g_cacheLineSize;
CRYPTOPP_DLL void CRYPTOPP_API DetectX86Features();
CRYPTOPP_DLL bool CRYPTOPP_API CpuId(word32 input, word32 *output);
#if CRYPTOPP_BOOL_X64
inline bool HasSSE2() {return true;}
inline bool HasISSE() {return true;}
inline bool HasMMX() {return true;}
#else
inline bool HasSSE2()
{
if (!g_x86DetectionDone)
DetectX86Features();
return g_hasSSE2;
}
inline bool HasISSE()
{
if (!g_x86DetectionDone)
DetectX86Features();
return g_hasISSE;
}
inline bool HasMMX()
{
if (!g_x86DetectionDone)
DetectX86Features();
return g_hasMMX;
}
#endif
inline bool HasSSSE3()
{
if (!g_x86DetectionDone)
DetectX86Features();
return g_hasSSSE3;
}
inline bool IsP4()
{
if (!g_x86DetectionDone)
DetectX86Features();
return g_isP4;
}
inline int GetCacheLineSize()
{
if (!g_x86DetectionDone)
DetectX86Features();
return g_cacheLineSize;
}
#else
inline int GetCacheLineSize()
{
return CRYPTOPP_L1_CACHE_LINE_SIZE;
}
inline bool HasSSSE3() {return false;}
inline bool IsP4() {return false;}
// assume MMX and SSE2 if intrinsics are enabled
#if CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE || CRYPTOPP_BOOL_X64
inline bool HasSSE2() {return true;}
inline bool HasISSE() {return true;}
inline bool HasMMX() {return true;}
#else
inline bool HasSSE2() {return false;}
inline bool HasISSE() {return false;}
inline bool HasMMX() {return false;}
#endif
#endif // #ifdef CRYPTOPP_X86_ASM_AVAILABLE || _MSC_VER >= 1400
#endif
#ifdef CRYPTOPP_GENERATE_X64_MASM
#define AS1(x) x*newline*
#define AS2(x, y) x, y*newline*
#define AS3(x, y, z) x, y, z*newline*
#define ASS(x, y, a, b, c, d) x, y, a*64+b*16+c*4+d*newline*
#define ASL(x) label##x:*newline*
#define ASJ(x, y, z) x label##y*newline*
#define ASC(x, y) x label##y*newline*
#define AS_HEX(y) 0##y##h
#elif defined(__GNUC__)
// define these in two steps to allow arguments to be expanded
#define GNU_AS1(x) #x ";"
#define GNU_AS2(x, y) #x ", " #y ";"
#define GNU_AS3(x, y, z) #x ", " #y ", " #z ";"
#define GNU_ASL(x) "\n" #x ":"
#define GNU_ASJ(x, y, z) #x " " #y #z ";"
#define AS1(x) GNU_AS1(x)
#define AS2(x, y) GNU_AS2(x, y)
#define AS3(x, y, z) GNU_AS3(x, y, z)
#define ASS(x, y, a, b, c, d) #x ", " #y ", " #a "*64+" #b "*16+" #c "*4+" #d ";"
#define ASL(x) GNU_ASL(x)
#define ASJ(x, y, z) GNU_ASJ(x, y, z)
#define ASC(x, y) #x " " #y ";"
#define CRYPTOPP_NAKED
#define AS_HEX(y) 0x##y
#else
#define AS1(x) __asm {x}
#define AS2(x, y) __asm {x, y}
#define AS3(x, y, z) __asm {x, y, z}
#define ASS(x, y, a, b, c, d) __asm {x, y, _MM_SHUFFLE(a, b, c, d)}
#define ASL(x) __asm {label##x:}
#define ASJ(x, y, z) __asm {x label##y}
#define ASC(x, y) __asm {x label##y}
#define CRYPTOPP_NAKED __declspec(naked)
#define AS_HEX(y) 0x##y
#endif
#define IF0(y)
#define IF1(y) y
#ifdef CRYPTOPP_GENERATE_X64_MASM
#define ASM_MOD(x, y) ((x) MOD (y))
#define XMMWORD_PTR XMMWORD PTR
#else
// GNU assembler doesn't seem to have mod operator
#define ASM_MOD(x, y) ((x)-((x)/(y))*(y))
// GAS 2.15 doesn't support XMMWORD PTR. it seems necessary only for MASM
#define XMMWORD_PTR
#endif
#if CRYPTOPP_BOOL_X86
#define AS_REG_1 ecx
#define AS_REG_2 edx
#define AS_REG_3 esi
#define AS_REG_4 edi
#define AS_REG_5 eax
#define AS_REG_6 ebx
#define AS_REG_7 ebp
#define AS_REG_1d ecx
#define AS_REG_2d edx
#define AS_REG_3d esi
#define AS_REG_4d edi
#define AS_REG_5d eax
#define AS_REG_6d ebx
#define AS_REG_7d ebp
#define WORD_SZ 4
#define WORD_REG(x) e##x
#define WORD_PTR DWORD PTR
#define AS_PUSH_IF86(x) AS1(push e##x)
#define AS_POP_IF86(x) AS1(pop e##x)
#define AS_JCXZ jecxz
#elif CRYPTOPP_BOOL_X64
#ifdef CRYPTOPP_GENERATE_X64_MASM
#define AS_REG_1 rcx
#define AS_REG_2 rdx
#define AS_REG_3 r8
#define AS_REG_4 r9
#define AS_REG_5 rax
#define AS_REG_6 r10
#define AS_REG_7 r11
#define AS_REG_1d ecx
#define AS_REG_2d edx
#define AS_REG_3d r8d
#define AS_REG_4d r9d
#define AS_REG_5d eax
#define AS_REG_6d r10d
#define AS_REG_7d r11d
#else
#define AS_REG_1 rdi
#define AS_REG_2 rsi
#define AS_REG_3 rdx
#define AS_REG_4 rcx
#define AS_REG_5 r8
#define AS_REG_6 r9
#define AS_REG_7 r10
#define AS_REG_1d edi
#define AS_REG_2d esi
#define AS_REG_3d edx
#define AS_REG_4d ecx
#define AS_REG_5d r8d
#define AS_REG_6d r9d
#define AS_REG_7d r10d
#endif
#define WORD_SZ 8
#define WORD_REG(x) r##x
#define WORD_PTR QWORD PTR
#define AS_PUSH_IF86(x)
#define AS_POP_IF86(x)
#define AS_JCXZ jrcxz
#endif
// helper macro for stream cipher output
#define AS_XMM_OUTPUT4(labelPrefix, inputPtr, outputPtr, x0, x1, x2, x3, t, p0, p1, p2, p3, increment)\
AS2( test inputPtr, inputPtr)\
ASC( jz, labelPrefix##3)\
AS2( test inputPtr, 15)\
ASC( jnz, labelPrefix##7)\
AS2( pxor xmm##x0, [inputPtr+p0*16])\
AS2( pxor xmm##x1, [inputPtr+p1*16])\
AS2( pxor xmm##x2, [inputPtr+p2*16])\
AS2( pxor xmm##x3, [inputPtr+p3*16])\
AS2( add inputPtr, increment*16)\
ASC( jmp, labelPrefix##3)\
ASL(labelPrefix##7)\
AS2( movdqu xmm##t, [inputPtr+p0*16])\
AS2( pxor xmm##x0, xmm##t)\
AS2( movdqu xmm##t, [inputPtr+p1*16])\
AS2( pxor xmm##x1, xmm##t)\
AS2( movdqu xmm##t, [inputPtr+p2*16])\
AS2( pxor xmm##x2, xmm##t)\
AS2( movdqu xmm##t, [inputPtr+p3*16])\
AS2( pxor xmm##x3, xmm##t)\
AS2( add inputPtr, increment*16)\
ASL(labelPrefix##3)\
AS2( test outputPtr, 15)\
ASC( jnz, labelPrefix##8)\
AS2( movdqa [outputPtr+p0*16], xmm##x0)\
AS2( movdqa [outputPtr+p1*16], xmm##x1)\
AS2( movdqa [outputPtr+p2*16], xmm##x2)\
AS2( movdqa [outputPtr+p3*16], xmm##x3)\
ASC( jmp, labelPrefix##9)\
ASL(labelPrefix##8)\
AS2( movdqu [outputPtr+p0*16], xmm##x0)\
AS2( movdqu [outputPtr+p1*16], xmm##x1)\
AS2( movdqu [outputPtr+p2*16], xmm##x2)\
AS2( movdqu [outputPtr+p3*16], xmm##x3)\
ASL(labelPrefix##9)\
AS2( add outputPtr, increment*16)
NAMESPACE_END
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -1,29 +0,0 @@
#ifndef CRYPTOPP_ITERHASH_H
#define CRYPTOPP_ITERHASH_H
#include "secblock.h"
NAMESPACE_BEGIN(CryptoPP)
// *** trimmed down dependency from iterhash.h ***
template <class T_HashWordType, class T_Endianness, unsigned int T_BlockSize, unsigned int T_StateSize, class T_Transform, unsigned int T_DigestSize = 0, bool T_StateAligned = false>
class CRYPTOPP_NO_VTABLE IteratedHashWithStaticTransform
{
public:
CRYPTOPP_CONSTANT(DIGESTSIZE = T_DigestSize ? T_DigestSize : T_StateSize)
unsigned int DigestSize() const {return DIGESTSIZE;};
typedef T_HashWordType HashWordType;
CRYPTOPP_CONSTANT(BLOCKSIZE = T_BlockSize)
protected:
IteratedHashWithStaticTransform() {this->Init();}
void HashEndianCorrectedBlock(const T_HashWordType *data) {T_Transform::Transform(this->m_state, data);}
void Init() {T_Transform::InitState(this->m_state);}
T_HashWordType* StateBuf() {return this->m_state;}
FixedSizeAlignedSecBlock<T_HashWordType, T_BlockSize/sizeof(T_HashWordType), T_StateAligned> m_state;
};
NAMESPACE_END
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -1,2 +0,0 @@
*
!.gitignore

View File

@@ -1,21 +0,0 @@
#ifndef CRYPTOPP_PCH_H
#define CRYPTOPP_PCH_H
#ifdef CRYPTOPP_GENERATE_X64_MASM
#include "cpu.h"
#else
#include "config.h"
#ifdef USE_PRECOMPILED_HEADERS
#include "simple.h"
#include "secblock.h"
#include "misc.h"
#include "smartptr.h"
#endif
#endif
#endif

View File

@@ -1,501 +0,0 @@
// secblock.h - written and placed in the public domain by Wei Dai
#ifndef CRYPTOPP_SECBLOCK_H
#define CRYPTOPP_SECBLOCK_H
#include "config.h"
#include "misc.h"
#include <assert.h>
#if defined(CRYPTOPP_MEMALIGN_AVAILABLE) || defined(CRYPTOPP_MM_MALLOC_AVAILABLE) || defined(QNX)
#include <malloc.h>
#else
#include <stdlib.h>
#endif
NAMESPACE_BEGIN(CryptoPP)
// ************** secure memory allocation ***************
template<class T>
class AllocatorBase
{
public:
typedef T value_type;
typedef size_t size_type;
#ifdef CRYPTOPP_MSVCRT6
typedef ptrdiff_t difference_type;
#else
typedef std::ptrdiff_t difference_type;
#endif
typedef T * pointer;
typedef const T * const_pointer;
typedef T & reference;
typedef const T & const_reference;
pointer address(reference r) const {return (&r);}
const_pointer address(const_reference r) const {return (&r); }
void construct(pointer p, const T& val) {new (p) T(val);}
void destroy(pointer p) {p->~T();}
size_type max_size() const {return ~size_type(0)/sizeof(T);} // switch to std::numeric_limits<T>::max later
protected:
static void CheckSize(size_t n)
{
if (n > ~size_t(0) / sizeof(T))
throw InvalidArgument("AllocatorBase: requested size would cause integer overflow");
}
};
#define CRYPTOPP_INHERIT_ALLOCATOR_TYPES \
typedef typename AllocatorBase<T>::value_type value_type;\
typedef typename AllocatorBase<T>::size_type size_type;\
typedef typename AllocatorBase<T>::difference_type difference_type;\
typedef typename AllocatorBase<T>::pointer pointer;\
typedef typename AllocatorBase<T>::const_pointer const_pointer;\
typedef typename AllocatorBase<T>::reference reference;\
typedef typename AllocatorBase<T>::const_reference const_reference;
#if defined(_MSC_VER) && (_MSC_VER < 1300)
// this pragma causes an internal compiler error if placed immediately before std::swap(a, b)
#pragma warning(push)
#pragma warning(disable: 4700) // VC60 workaround: don't know how to get rid of this warning
#endif
template <class T, class A>
typename A::pointer StandardReallocate(A& a, T *p, typename A::size_type oldSize, typename A::size_type newSize, bool preserve)
{
if (oldSize == newSize)
return p;
if (preserve)
{
typename A::pointer newPointer = a.allocate(newSize, NULL);
memcpy_s(newPointer, sizeof(T)*newSize, p, sizeof(T)*STDMIN(oldSize, newSize));
a.deallocate(p, oldSize);
return newPointer;
}
else
{
a.deallocate(p, oldSize);
return a.allocate(newSize, NULL);
}
}
#if defined(_MSC_VER) && (_MSC_VER < 1300)
#pragma warning(pop)
#endif
template <class T, bool T_Align16 = false>
class AllocatorWithCleanup : public AllocatorBase<T>
{
public:
CRYPTOPP_INHERIT_ALLOCATOR_TYPES
pointer allocate(size_type n, const void * = NULL)
{
CheckSize(n);
if (n == 0)
return NULL;
if (CRYPTOPP_BOOL_ALIGN16_ENABLED && T_Align16 && n*sizeof(T) >= 16)
{
byte *p;
#ifdef CRYPTOPP_MM_MALLOC_AVAILABLE
while (!(p = (byte *)_mm_malloc(sizeof(T)*n, 16)))
#elif defined(CRYPTOPP_MEMALIGN_AVAILABLE)
while (!(p = (byte *)memalign(16, sizeof(T)*n)))
#elif defined(CRYPTOPP_MALLOC_ALIGNMENT_IS_16)
while (!(p = (byte *)malloc(sizeof(T)*n)))
#else
while (!(p = (byte *)malloc(sizeof(T)*n + 16)))
#endif
CallNewHandler();
#ifdef CRYPTOPP_NO_ALIGNED_ALLOC
size_t adjustment = 16-((size_t)p%16);
p += adjustment;
p[-1] = (byte)adjustment;
#endif
assert(IsAlignedOn(p, 16));
return (pointer)p;
}
pointer p;
while (!(p = (pointer)malloc(sizeof(T)*n)))
CallNewHandler();
return p;
}
void deallocate(void *p, size_type n)
{
memset_z(p, 0, n*sizeof(T));
if (CRYPTOPP_BOOL_ALIGN16_ENABLED && T_Align16 && n*sizeof(T) >= 16)
{
#ifdef CRYPTOPP_MM_MALLOC_AVAILABLE
_mm_free(p);
#elif defined(CRYPTOPP_NO_ALIGNED_ALLOC)
p = (byte *)p - ((byte *)p)[-1];
free(p);
#else
free(p);
#endif
return;
}
free(p);
}
pointer reallocate(T *p, size_type oldSize, size_type newSize, bool preserve)
{
return StandardReallocate(*this, p, oldSize, newSize, preserve);
}
// VS.NET STL enforces the policy of "All STL-compliant allocators have to provide a
// template class member called rebind".
template <class U> struct rebind { typedef AllocatorWithCleanup<U, T_Align16> other; };
#if _MSC_VER >= 1500
AllocatorWithCleanup() {}
template <class U, bool A> AllocatorWithCleanup(const AllocatorWithCleanup<U, A> &) {}
#endif
};
CRYPTOPP_DLL_TEMPLATE_CLASS AllocatorWithCleanup<byte>;
CRYPTOPP_DLL_TEMPLATE_CLASS AllocatorWithCleanup<word16>;
CRYPTOPP_DLL_TEMPLATE_CLASS AllocatorWithCleanup<word32>;
CRYPTOPP_DLL_TEMPLATE_CLASS AllocatorWithCleanup<word64>;
#if CRYPTOPP_BOOL_X86
CRYPTOPP_DLL_TEMPLATE_CLASS AllocatorWithCleanup<word, true>; // for Integer
#endif
template <class T>
class NullAllocator : public AllocatorBase<T>
{
public:
CRYPTOPP_INHERIT_ALLOCATOR_TYPES
pointer allocate(size_type n, const void * = NULL)
{
assert(false);
return NULL;
}
void deallocate(void *p, size_type n)
{
//// 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;}
};
// This allocator can't be used with standard collections because
// they require that all objects of the same allocator type are equivalent.
// So this is for use with SecBlock only.
template <class T, size_t S, class A = NullAllocator<T>, bool T_Align16 = false>
class FixedSizeAllocatorWithCleanup : public AllocatorBase<T>
{
public:
CRYPTOPP_INHERIT_ALLOCATOR_TYPES
FixedSizeAllocatorWithCleanup() : m_allocated(false) {}
pointer allocate(size_type n)
{
assert(IsAlignedOn(m_array, 8));
if (n <= S && !m_allocated)
{
m_allocated = true;
return GetAlignedArray();
}
else
return m_fallbackAllocator.allocate(n);
}
pointer allocate(size_type n, const void *hint)
{
if (n <= S && !m_allocated)
{
m_allocated = true;
return GetAlignedArray();
}
else
return m_fallbackAllocator.allocate(n, hint);
}
void deallocate(void *p, size_type n)
{
if (p == GetAlignedArray())
{
assert(n <= S);
assert(m_allocated);
m_allocated = false;
memset(p, 0, n*sizeof(T));
}
else
m_fallbackAllocator.deallocate(p, n);
}
pointer reallocate(pointer p, size_type oldSize, size_type newSize, bool preserve)
{
if (p == GetAlignedArray() && newSize <= S)
{
assert(oldSize <= S);
if (oldSize > newSize)
memset(p + newSize, 0, (oldSize-newSize)*sizeof(T));
return p;
}
pointer newPointer = allocate(newSize, NULL);
if (preserve)
memcpy(newPointer, p, sizeof(T)*STDMIN(oldSize, newSize));
deallocate(p, oldSize);
return newPointer;
}
size_type max_size() const {return STDMAX(m_fallbackAllocator.max_size(), S);}
private:
#ifdef __BORLANDC__
T* GetAlignedArray() {return m_array;}
T m_array[S];
#else
T* GetAlignedArray() {return (CRYPTOPP_BOOL_ALIGN16_ENABLED && T_Align16) ? (T*)(((byte *)m_array) + (0-(size_t)m_array)%16) : m_array;}
CRYPTOPP_ALIGN_DATA(8) T m_array[(CRYPTOPP_BOOL_ALIGN16_ENABLED && T_Align16) ? S+8/sizeof(T) : S];
#endif
A m_fallbackAllocator;
bool m_allocated;
};
//! a block of memory allocated using A
template <class T, class A = AllocatorWithCleanup<T> >
class SecBlock
{
public:
typedef typename A::value_type value_type;
typedef typename A::pointer iterator;
typedef typename A::const_pointer const_iterator;
typedef typename A::size_type size_type;
explicit SecBlock(size_type size=0)
: m_size(size) {m_ptr = m_alloc.allocate(size, NULL);}
SecBlock(const SecBlock<T, A> &t)
: m_size(t.m_size) {m_ptr = m_alloc.allocate(m_size, NULL); memcpy_s(m_ptr, m_size*sizeof(T), t.m_ptr, m_size*sizeof(T));}
SecBlock(const T *t, size_type len)
: m_size(len)
{
m_ptr = m_alloc.allocate(len, NULL);
if (t == NULL)
memset_z(m_ptr, 0, len*sizeof(T));
else
memcpy(m_ptr, t, len*sizeof(T));
}
~SecBlock()
{m_alloc.deallocate(m_ptr, m_size);}
#ifdef __BORLANDC__
operator T *() const
{return (T*)m_ptr;}
#else
operator const void *() const
{return m_ptr;}
operator void *()
{return m_ptr;}
operator const T *() const
{return m_ptr;}
operator T *()
{return m_ptr;}
#endif
// T *operator +(size_type offset)
// {return m_ptr+offset;}
// const T *operator +(size_type offset) const
// {return m_ptr+offset;}
// T& operator[](size_type index)
// {assert(index >= 0 && index < m_size); return m_ptr[index];}
// const T& operator[](size_type index) const
// {assert(index >= 0 && index < m_size); return m_ptr[index];}
iterator begin()
{return m_ptr;}
const_iterator begin() const
{return m_ptr;}
iterator end()
{return m_ptr+m_size;}
const_iterator end() const
{return m_ptr+m_size;}
typename A::pointer data() {return m_ptr;}
typename A::const_pointer data() const {return m_ptr;}
size_type size() const {return m_size;}
bool empty() const {return m_size == 0;}
byte * BytePtr() {return (byte *)m_ptr;}
const byte * BytePtr() const {return (const byte *)m_ptr;}
size_type SizeInBytes() const {return m_size*sizeof(T);}
//! set contents and size
void Assign(const T *t, size_type len)
{
New(len);
memcpy_s(m_ptr, m_size*sizeof(T), t, len*sizeof(T));
}
//! copy contents and size from another SecBlock
void Assign(const SecBlock<T, A> &t)
{
New(t.m_size);
memcpy_s(m_ptr, m_size*sizeof(T), t.m_ptr, m_size*sizeof(T));
}
SecBlock<T, A>& operator=(const SecBlock<T, A> &t)
{
Assign(t);
return *this;
}
// append to this object
SecBlock<T, A>& operator+=(const SecBlock<T, A> &t)
{
size_type oldSize = m_size;
Grow(m_size+t.m_size);
memcpy_s(m_ptr+oldSize, m_size*sizeof(T), t.m_ptr, t.m_size*sizeof(T));
return *this;
}
// append operator
SecBlock<T, A> operator+(const SecBlock<T, A> &t)
{
SecBlock<T, A> result(m_size+t.m_size);
memcpy_s(result.m_ptr, result.m_size*sizeof(T), m_ptr, m_size*sizeof(T));
memcpy_s(result.m_ptr+m_size, t.m_size*sizeof(T), t.m_ptr, t.m_size*sizeof(T));
return result;
}
bool operator==(const SecBlock<T, A> &t) const
{
return m_size == t.m_size && VerifyBufsEqual(m_ptr, t.m_ptr, m_size*sizeof(T));
}
bool operator!=(const SecBlock<T, A> &t) const
{
return !operator==(t);
}
//! change size, without preserving contents
void New(size_type newSize)
{
m_ptr = m_alloc.reallocate(m_ptr, m_size, newSize, false);
m_size = newSize;
}
//! change size and set contents to 0
void CleanNew(size_type newSize)
{
New(newSize);
memset_z(m_ptr, 0, m_size*sizeof(T));
}
//! change size only if newSize > current size. contents are preserved
void Grow(size_type newSize)
{
if (newSize > m_size)
{
m_ptr = m_alloc.reallocate(m_ptr, m_size, newSize, true);
m_size = newSize;
}
}
//! change size only if newSize > current size. contents are preserved and additional area is set to 0
void CleanGrow(size_type newSize)
{
if (newSize > m_size)
{
m_ptr = m_alloc.reallocate(m_ptr, m_size, newSize, true);
memset(m_ptr+m_size, 0, (newSize-m_size)*sizeof(T));
m_size = newSize;
}
}
//! change size and preserve contents
void resize(size_type newSize)
{
m_ptr = m_alloc.reallocate(m_ptr, m_size, newSize, true);
m_size = newSize;
}
//! swap contents and size with another SecBlock
void swap(SecBlock<T, A> &b)
{
std::swap(m_alloc, b.m_alloc);
std::swap(m_size, b.m_size);
std::swap(m_ptr, b.m_ptr);
}
//private:
A m_alloc;
size_type m_size;
T *m_ptr;
};
typedef SecBlock<byte> SecByteBlock;
typedef SecBlock<byte, AllocatorWithCleanup<byte, true> > AlignedSecByteBlock;
typedef SecBlock<word> SecWordBlock;
//! a SecBlock with fixed size, allocated statically
template <class T, unsigned int S, class A = FixedSizeAllocatorWithCleanup<T, S> >
class FixedSizeSecBlock : public SecBlock<T, A>
{
public:
explicit FixedSizeSecBlock() : SecBlock<T, A>(S) {}
};
template <class T, unsigned int S, bool T_Align16 = true>
class FixedSizeAlignedSecBlock : public FixedSizeSecBlock<T, S, FixedSizeAllocatorWithCleanup<T, S, NullAllocator<T>, T_Align16> >
{
};
//! a SecBlock that preallocates size S statically, and uses the heap when this size is exceeded
template <class T, unsigned int S, class A = FixedSizeAllocatorWithCleanup<T, S, AllocatorWithCleanup<T> > >
class SecBlockWithHint : public SecBlock<T, A>
{
public:
explicit SecBlockWithHint(size_t size) : SecBlock<T, A>(size) {}
};
template<class T, bool A, class U, bool B>
inline bool operator==(const CryptoPP::AllocatorWithCleanup<T, A>&, const CryptoPP::AllocatorWithCleanup<U, B>&) {return (true);}
template<class T, bool A, class U, bool B>
inline bool operator!=(const CryptoPP::AllocatorWithCleanup<T, A>&, const CryptoPP::AllocatorWithCleanup<U, B>&) {return (false);}
NAMESPACE_END
NAMESPACE_BEGIN(std)
template <class T, class A>
inline void swap(CryptoPP::SecBlock<T, A> &a, CryptoPP::SecBlock<T, A> &b)
{
a.swap(b);
}
#if defined(_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE) || (defined(_STLPORT_VERSION) && !defined(_STLP_MEMBER_TEMPLATE_CLASSES))
// working for STLport 5.1.3 and MSVC 6 SP5
template <class _Tp1, class _Tp2>
inline CryptoPP::AllocatorWithCleanup<_Tp2>&
__stl_alloc_rebind(CryptoPP::AllocatorWithCleanup<_Tp1>& __a, const _Tp2*)
{
return (CryptoPP::AllocatorWithCleanup<_Tp2>&)(__a);
}
#endif
NAMESPACE_END
#endif

View File

@@ -1,899 +0,0 @@
// sha.cpp - modified by Wei Dai from Steve Reid's public domain sha1.c
// Steve Reid implemented SHA-1. Wei Dai implemented SHA-2.
// Both are in the public domain.
// use "cl /EP /P /DCRYPTOPP_GENERATE_X64_MASM sha.cpp" to generate MASM code
#include "pch.h"
#ifndef CRYPTOPP_IMPORTS
#ifndef CRYPTOPP_GENERATE_X64_MASM
#include "sha.h"
#include "misc.h"
#include "cpu.h"
NAMESPACE_BEGIN(CryptoPP)
// start of Steve Reid's code
#define blk0(i) (W[i] = data[i])
#define blk1(i) (W[i&15] = rotlFixed(W[(i+13)&15]^W[(i+8)&15]^W[(i+2)&15]^W[i&15],1))
void SHA1::InitState(HashWordType *state)
{
state[0] = 0x67452301L;
state[1] = 0xEFCDAB89L;
state[2] = 0x98BADCFEL;
state[3] = 0x10325476L;
state[4] = 0xC3D2E1F0L;
}
#define f1(x,y,z) (z^(x&(y^z)))
#define f2(x,y,z) (x^y^z)
#define f3(x,y,z) ((x&y)|(z&(x|y)))
#define f4(x,y,z) (x^y^z)
/* (R0+R1), R2, R3, R4 are the different operations used in SHA1 */
#define R0(v,w,x,y,z,i) z+=f1(w,x,y)+blk0(i)+0x5A827999+rotlFixed(v,5);w=rotlFixed(w,30);
#define R1(v,w,x,y,z,i) z+=f1(w,x,y)+blk1(i)+0x5A827999+rotlFixed(v,5);w=rotlFixed(w,30);
#define R2(v,w,x,y,z,i) z+=f2(w,x,y)+blk1(i)+0x6ED9EBA1+rotlFixed(v,5);w=rotlFixed(w,30);
#define R3(v,w,x,y,z,i) z+=f3(w,x,y)+blk1(i)+0x8F1BBCDC+rotlFixed(v,5);w=rotlFixed(w,30);
#define R4(v,w,x,y,z,i) z+=f4(w,x,y)+blk1(i)+0xCA62C1D6+rotlFixed(v,5);w=rotlFixed(w,30);
void SHA1::Transform(word32 *state, const word32 *data)
{
word32 W[16];
/* Copy context->state[] to working vars */
word32 a = state[0];
word32 b = state[1];
word32 c = state[2];
word32 d = state[3];
word32 e = state[4];
/* 4 rounds of 20 operations each. Loop unrolled. */
R0(a,b,c,d,e, 0); R0(e,a,b,c,d, 1); R0(d,e,a,b,c, 2); R0(c,d,e,a,b, 3);
R0(b,c,d,e,a, 4); R0(a,b,c,d,e, 5); R0(e,a,b,c,d, 6); R0(d,e,a,b,c, 7);
R0(c,d,e,a,b, 8); R0(b,c,d,e,a, 9); R0(a,b,c,d,e,10); R0(e,a,b,c,d,11);
R0(d,e,a,b,c,12); R0(c,d,e,a,b,13); R0(b,c,d,e,a,14); R0(a,b,c,d,e,15);
R1(e,a,b,c,d,16); R1(d,e,a,b,c,17); R1(c,d,e,a,b,18); R1(b,c,d,e,a,19);
R2(a,b,c,d,e,20); R2(e,a,b,c,d,21); R2(d,e,a,b,c,22); R2(c,d,e,a,b,23);
R2(b,c,d,e,a,24); R2(a,b,c,d,e,25); R2(e,a,b,c,d,26); R2(d,e,a,b,c,27);
R2(c,d,e,a,b,28); R2(b,c,d,e,a,29); R2(a,b,c,d,e,30); R2(e,a,b,c,d,31);
R2(d,e,a,b,c,32); R2(c,d,e,a,b,33); R2(b,c,d,e,a,34); R2(a,b,c,d,e,35);
R2(e,a,b,c,d,36); R2(d,e,a,b,c,37); R2(c,d,e,a,b,38); R2(b,c,d,e,a,39);
R3(a,b,c,d,e,40); R3(e,a,b,c,d,41); R3(d,e,a,b,c,42); R3(c,d,e,a,b,43);
R3(b,c,d,e,a,44); R3(a,b,c,d,e,45); R3(e,a,b,c,d,46); R3(d,e,a,b,c,47);
R3(c,d,e,a,b,48); R3(b,c,d,e,a,49); R3(a,b,c,d,e,50); R3(e,a,b,c,d,51);
R3(d,e,a,b,c,52); R3(c,d,e,a,b,53); R3(b,c,d,e,a,54); R3(a,b,c,d,e,55);
R3(e,a,b,c,d,56); R3(d,e,a,b,c,57); R3(c,d,e,a,b,58); R3(b,c,d,e,a,59);
R4(a,b,c,d,e,60); R4(e,a,b,c,d,61); R4(d,e,a,b,c,62); R4(c,d,e,a,b,63);
R4(b,c,d,e,a,64); R4(a,b,c,d,e,65); R4(e,a,b,c,d,66); R4(d,e,a,b,c,67);
R4(c,d,e,a,b,68); R4(b,c,d,e,a,69); R4(a,b,c,d,e,70); R4(e,a,b,c,d,71);
R4(d,e,a,b,c,72); R4(c,d,e,a,b,73); R4(b,c,d,e,a,74); R4(a,b,c,d,e,75);
R4(e,a,b,c,d,76); R4(d,e,a,b,c,77); R4(c,d,e,a,b,78); R4(b,c,d,e,a,79);
/* Add the working vars back into context.state[] */
state[0] += a;
state[1] += b;
state[2] += c;
state[3] += d;
state[4] += e;
}
// end of Steve Reid's code
// *************************************************************
void SHA224::InitState(HashWordType *state)
{
static const word32 s[8] = {0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4};
memcpy(state, s, sizeof(s));
}
void SHA256::InitState(HashWordType *state)
{
static const word32 s[8] = {0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19};
memcpy(state, s, sizeof(s));
}
#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
CRYPTOPP_ALIGN_DATA(16) extern const word32 SHA256_K[64] CRYPTOPP_SECTION_ALIGN16 = {
#else
extern const word32 SHA256_K[64] = {
#endif
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
};
#endif // #ifndef CRYPTOPP_GENERATE_X64_MASM
#if defined(CRYPTOPP_X86_ASM_AVAILABLE) || defined(CRYPTOPP_GENERATE_X64_MASM)
#pragma warning(disable: 4731) // frame pointer register 'ebp' modified by inline assembly code
static void CRYPTOPP_FASTCALL X86_SHA256_HashBlocks(word32 *state, const word32 *data, size_t len
#if defined(_MSC_VER) && (_MSC_VER == 1200)
, ... // VC60 workaround: prevent VC 6 from inlining this function
#endif
)
{
#if defined(_MSC_VER) && (_MSC_VER == 1200)
AS2(mov ecx, [state])
AS2(mov edx, [data])
#endif
#define LOCALS_SIZE 8*4 + 16*4 + 4*WORD_SZ
#define H(i) [BASE+ASM_MOD(1024+7-(i),8)*4]
#define G(i) H(i+1)
#define F(i) H(i+2)
#define E(i) H(i+3)
#define D(i) H(i+4)
#define C(i) H(i+5)
#define B(i) H(i+6)
#define A(i) H(i+7)
#define Wt(i) BASE+8*4+ASM_MOD(1024+15-(i),16)*4
#define Wt_2(i) Wt((i)-2)
#define Wt_15(i) Wt((i)-15)
#define Wt_7(i) Wt((i)-7)
#define K_END [BASE+8*4+16*4+0*WORD_SZ]
#define STATE_SAVE [BASE+8*4+16*4+1*WORD_SZ]
#define DATA_SAVE [BASE+8*4+16*4+2*WORD_SZ]
#define DATA_END [BASE+8*4+16*4+3*WORD_SZ]
#define Kt(i) WORD_REG(si)+(i)*4
#if CRYPTOPP_BOOL_X86
#define BASE esp+4
#elif defined(__GNUC__)
#define BASE r8
#else
#define BASE rsp
#endif
#define RA0(i, edx, edi) \
AS2( add edx, [Kt(i)] )\
AS2( add edx, [Wt(i)] )\
AS2( add edx, H(i) )\
#define RA1(i, edx, edi)
#define RB0(i, edx, edi)
#define RB1(i, edx, edi) \
AS2( mov AS_REG_7d, [Wt_2(i)] )\
AS2( mov edi, [Wt_15(i)])\
AS2( mov ebx, AS_REG_7d )\
AS2( shr AS_REG_7d, 10 )\
AS2( ror ebx, 17 )\
AS2( xor AS_REG_7d, ebx )\
AS2( ror ebx, 2 )\
AS2( xor ebx, AS_REG_7d )/* s1(W_t-2) */\
AS2( add ebx, [Wt_7(i)])\
AS2( mov AS_REG_7d, edi )\
AS2( shr AS_REG_7d, 3 )\
AS2( ror edi, 7 )\
AS2( add ebx, [Wt(i)])/* s1(W_t-2) + W_t-7 + W_t-16 */\
AS2( xor AS_REG_7d, edi )\
AS2( add edx, [Kt(i)])\
AS2( ror edi, 11 )\
AS2( add edx, H(i) )\
AS2( xor AS_REG_7d, edi )/* s0(W_t-15) */\
AS2( add AS_REG_7d, ebx )/* W_t = s1(W_t-2) + W_t-7 + s0(W_t-15) W_t-16*/\
AS2( mov [Wt(i)], AS_REG_7d)\
AS2( add edx, AS_REG_7d )\
#define ROUND(i, r, eax, ecx, edi, edx)\
/* in: edi = E */\
/* unused: eax, ecx, temp: ebx, AS_REG_7d, out: edx = T1 */\
AS2( mov edx, F(i) )\
AS2( xor edx, G(i) )\
AS2( and edx, edi )\
AS2( xor edx, G(i) )/* Ch(E,F,G) = (G^(E&(F^G))) */\
AS2( mov AS_REG_7d, edi )\
AS2( ror edi, 6 )\
AS2( ror AS_REG_7d, 25 )\
RA##r(i, edx, edi )/* H + Wt + Kt + Ch(E,F,G) */\
AS2( xor AS_REG_7d, edi )\
AS2( ror edi, 5 )\
AS2( xor AS_REG_7d, edi )/* S1(E) */\
AS2( add edx, AS_REG_7d )/* T1 = S1(E) + Ch(E,F,G) + H + Wt + Kt */\
RB##r(i, edx, edi )/* H + Wt + Kt + Ch(E,F,G) */\
/* in: ecx = A, eax = B^C, edx = T1 */\
/* unused: edx, temp: ebx, AS_REG_7d, out: eax = A, ecx = B^C, edx = E */\
AS2( mov ebx, ecx )\
AS2( xor ecx, B(i) )/* A^B */\
AS2( and eax, ecx )\
AS2( xor eax, B(i) )/* Maj(A,B,C) = B^((A^B)&(B^C) */\
AS2( mov AS_REG_7d, ebx )\
AS2( ror ebx, 2 )\
AS2( add eax, edx )/* T1 + Maj(A,B,C) */\
AS2( add edx, D(i) )\
AS2( mov D(i), edx )\
AS2( ror AS_REG_7d, 22 )\
AS2( xor AS_REG_7d, ebx )\
AS2( ror ebx, 11 )\
AS2( xor AS_REG_7d, ebx )\
AS2( add eax, AS_REG_7d )/* T1 + S0(A) + Maj(A,B,C) */\
AS2( mov H(i), eax )\
#define SWAP_COPY(i) \
AS2( mov WORD_REG(bx), [WORD_REG(dx)+i*WORD_SZ])\
AS1( bswap WORD_REG(bx))\
AS2( mov [Wt(i*(1+CRYPTOPP_BOOL_X64)+CRYPTOPP_BOOL_X64)], WORD_REG(bx))
#if defined(__GNUC__)
#if CRYPTOPP_BOOL_X64
FixedSizeAlignedSecBlock<byte, LOCALS_SIZE> workspace;
#endif
__asm__ __volatile__
(
#if CRYPTOPP_BOOL_X64
"lea %4, %%r8;"
#endif
".intel_syntax noprefix;"
#elif defined(CRYPTOPP_GENERATE_X64_MASM)
ALIGN 8
X86_SHA256_HashBlocks PROC FRAME
rex_push_reg rsi
push_reg rdi
push_reg rbx
push_reg rbp
alloc_stack(LOCALS_SIZE+8)
.endprolog
mov rdi, r8
lea rsi, [?SHA256_K@CryptoPP@@3QBIB + 48*4]
#endif
#if CRYPTOPP_BOOL_X86
#ifndef __GNUC__
AS2( mov edi, [len])
AS2( lea WORD_REG(si), [SHA256_K+48*4])
#endif
#if !defined(_MSC_VER) || (_MSC_VER < 1400)
AS_PUSH_IF86(bx)
#endif
AS_PUSH_IF86(bp)
AS2( mov ebx, esp)
AS2( and esp, -16)
AS2( sub WORD_REG(sp), LOCALS_SIZE)
AS_PUSH_IF86(bx)
#endif
AS2( mov STATE_SAVE, WORD_REG(cx))
AS2( mov DATA_SAVE, WORD_REG(dx))
AS2( add WORD_REG(di), WORD_REG(dx))
AS2( mov DATA_END, WORD_REG(di))
AS2( mov K_END, WORD_REG(si))
#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
#if CRYPTOPP_BOOL_X86
AS2( test edi, 1)
ASJ( jnz, 2, f)
#endif
AS2( movdqa xmm0, XMMWORD_PTR [WORD_REG(cx)+0*16])
AS2( movdqa xmm1, XMMWORD_PTR [WORD_REG(cx)+1*16])
#endif
#if CRYPTOPP_BOOL_X86
#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
ASJ( jmp, 0, f)
#endif
ASL(2) // non-SSE2
AS2( mov esi, ecx)
AS2( lea edi, A(0))
AS2( mov ecx, 8)
AS1( rep movsd)
AS2( mov esi, K_END)
ASJ( jmp, 3, f)
#endif
#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
ASL(0)
AS2( movdqa E(0), xmm1)
AS2( movdqa A(0), xmm0)
#endif
#if CRYPTOPP_BOOL_X86
ASL(3)
#endif
AS2( sub WORD_REG(si), 48*4)
SWAP_COPY(0) SWAP_COPY(1) SWAP_COPY(2) SWAP_COPY(3)
SWAP_COPY(4) SWAP_COPY(5) SWAP_COPY(6) SWAP_COPY(7)
#if CRYPTOPP_BOOL_X86
SWAP_COPY(8) SWAP_COPY(9) SWAP_COPY(10) SWAP_COPY(11)
SWAP_COPY(12) SWAP_COPY(13) SWAP_COPY(14) SWAP_COPY(15)
#endif
AS2( mov edi, E(0)) // E
AS2( mov eax, B(0)) // B
AS2( xor eax, C(0)) // B^C
AS2( mov ecx, A(0)) // A
ROUND(0, 0, eax, ecx, edi, edx)
ROUND(1, 0, ecx, eax, edx, edi)
ROUND(2, 0, eax, ecx, edi, edx)
ROUND(3, 0, ecx, eax, edx, edi)
ROUND(4, 0, eax, ecx, edi, edx)
ROUND(5, 0, ecx, eax, edx, edi)
ROUND(6, 0, eax, ecx, edi, edx)
ROUND(7, 0, ecx, eax, edx, edi)
ROUND(8, 0, eax, ecx, edi, edx)
ROUND(9, 0, ecx, eax, edx, edi)
ROUND(10, 0, eax, ecx, edi, edx)
ROUND(11, 0, ecx, eax, edx, edi)
ROUND(12, 0, eax, ecx, edi, edx)
ROUND(13, 0, ecx, eax, edx, edi)
ROUND(14, 0, eax, ecx, edi, edx)
ROUND(15, 0, ecx, eax, edx, edi)
ASL(1)
AS2(add WORD_REG(si), 4*16)
ROUND(0, 1, eax, ecx, edi, edx)
ROUND(1, 1, ecx, eax, edx, edi)
ROUND(2, 1, eax, ecx, edi, edx)
ROUND(3, 1, ecx, eax, edx, edi)
ROUND(4, 1, eax, ecx, edi, edx)
ROUND(5, 1, ecx, eax, edx, edi)
ROUND(6, 1, eax, ecx, edi, edx)
ROUND(7, 1, ecx, eax, edx, edi)
ROUND(8, 1, eax, ecx, edi, edx)
ROUND(9, 1, ecx, eax, edx, edi)
ROUND(10, 1, eax, ecx, edi, edx)
ROUND(11, 1, ecx, eax, edx, edi)
ROUND(12, 1, eax, ecx, edi, edx)
ROUND(13, 1, ecx, eax, edx, edi)
ROUND(14, 1, eax, ecx, edi, edx)
ROUND(15, 1, ecx, eax, edx, edi)
AS2( cmp WORD_REG(si), K_END)
ASJ( jne, 1, b)
AS2( mov WORD_REG(dx), DATA_SAVE)
AS2( add WORD_REG(dx), 64)
AS2( mov AS_REG_7, STATE_SAVE)
AS2( mov DATA_SAVE, WORD_REG(dx))
#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
#if CRYPTOPP_BOOL_X86
AS2( test DWORD PTR DATA_END, 1)
ASJ( jnz, 4, f)
#endif
AS2( movdqa xmm1, XMMWORD_PTR [AS_REG_7+1*16])
AS2( movdqa xmm0, XMMWORD_PTR [AS_REG_7+0*16])
AS2( paddd xmm1, E(0))
AS2( paddd xmm0, A(0))
AS2( movdqa [AS_REG_7+1*16], xmm1)
AS2( movdqa [AS_REG_7+0*16], xmm0)
AS2( cmp WORD_REG(dx), DATA_END)
ASJ( jl, 0, b)
#endif
#if CRYPTOPP_BOOL_X86
#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
ASJ( jmp, 5, f)
ASL(4) // non-SSE2
#endif
AS2( add [AS_REG_7+0*4], ecx) // A
AS2( add [AS_REG_7+4*4], edi) // E
AS2( mov eax, B(0))
AS2( mov ebx, C(0))
AS2( mov ecx, D(0))
AS2( add [AS_REG_7+1*4], eax)
AS2( add [AS_REG_7+2*4], ebx)
AS2( add [AS_REG_7+3*4], ecx)
AS2( mov eax, F(0))
AS2( mov ebx, G(0))
AS2( mov ecx, H(0))
AS2( add [AS_REG_7+5*4], eax)
AS2( add [AS_REG_7+6*4], ebx)
AS2( add [AS_REG_7+7*4], ecx)
AS2( mov ecx, AS_REG_7d)
AS2( cmp WORD_REG(dx), DATA_END)
ASJ( jl, 2, b)
#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
ASL(5)
#endif
#endif
AS_POP_IF86(sp)
AS_POP_IF86(bp)
#if !defined(_MSC_VER) || (_MSC_VER < 1400)
AS_POP_IF86(bx)
#endif
#ifdef CRYPTOPP_GENERATE_X64_MASM
add rsp, LOCALS_SIZE+8
pop rbp
pop rbx
pop rdi
pop rsi
ret
X86_SHA256_HashBlocks ENDP
#endif
#ifdef __GNUC__
".att_syntax prefix;"
:
: "c" (state), "d" (data), "S" (SHA256_K+48), "D" (len)
#if CRYPTOPP_BOOL_X64
, "m" (workspace[0])
#endif
: "memory", "cc", "%eax"
#if CRYPTOPP_BOOL_X64
, "%rbx", "%r8"
#endif
);
#endif
}
#endif // #if defined(CRYPTOPP_X86_ASM_AVAILABLE) || defined(CRYPTOPP_GENERATE_X64_MASM)
#ifndef CRYPTOPP_GENERATE_X64_MASM
#ifdef CRYPTOPP_X64_MASM_AVAILABLE
extern "C" {
void CRYPTOPP_FASTCALL X86_SHA256_HashBlocks(word32 *state, const word32 *data, size_t len);
}
#endif
#if defined(CRYPTOPP_X86_ASM_AVAILABLE) || defined(CRYPTOPP_X64_MASM_AVAILABLE)
size_t SHA256::HashMultipleBlocks(const word32 *input, size_t length)
{
X86_SHA256_HashBlocks(m_state, input, (length&(size_t(0)-BLOCKSIZE)) - !HasSSE2());
return length % BLOCKSIZE;
}
size_t SHA224::HashMultipleBlocks(const word32 *input, size_t length)
{
X86_SHA256_HashBlocks(m_state, input, (length&(size_t(0)-BLOCKSIZE)) - !HasSSE2());
return length % BLOCKSIZE;
}
#endif
#define blk2(i) (W[i&15]+=s1(W[(i-2)&15])+W[(i-7)&15]+s0(W[(i-15)&15]))
#define Ch(x,y,z) (z^(x&(y^z)))
#define Maj(x,y,z) (y^((x^y)&(y^z)))
#define a(i) T[(0-i)&7]
#define b(i) T[(1-i)&7]
#define c(i) T[(2-i)&7]
#define d(i) T[(3-i)&7]
#define e(i) T[(4-i)&7]
#define f(i) T[(5-i)&7]
#define g(i) T[(6-i)&7]
#define h(i) T[(7-i)&7]
#define R(i) h(i)+=S1(e(i))+Ch(e(i),f(i),g(i))+SHA256_K[i+j]+(j?blk2(i):blk0(i));\
d(i)+=h(i);h(i)+=S0(a(i))+Maj(a(i),b(i),c(i))
// for SHA256
#define S0(x) (rotrFixed(x,2)^rotrFixed(x,13)^rotrFixed(x,22))
#define S1(x) (rotrFixed(x,6)^rotrFixed(x,11)^rotrFixed(x,25))
#define s0(x) (rotrFixed(x,7)^rotrFixed(x,18)^(x>>3))
#define s1(x) (rotrFixed(x,17)^rotrFixed(x,19)^(x>>10))
void SHA256::Transform(word32 *state, const word32 *data)
{
word32 W[16];
#if defined(CRYPTOPP_X86_ASM_AVAILABLE) || defined(CRYPTOPP_X64_MASM_AVAILABLE)
// this byte reverse is a waste of time, but this function is only called by MDC
ByteReverse(W, data, BLOCKSIZE);
X86_SHA256_HashBlocks(state, W, BLOCKSIZE - !HasSSE2());
#else
word32 T[8];
/* Copy context->state[] to working vars */
memcpy(T, state, sizeof(T));
/* 64 operations, partially loop unrolled */
for (unsigned int j=0; j<64; j+=16)
{
R( 0); R( 1); R( 2); R( 3);
R( 4); R( 5); R( 6); R( 7);
R( 8); R( 9); R(10); R(11);
R(12); R(13); R(14); R(15);
}
/* Add the working vars back into context.state[] */
state[0] += a(0);
state[1] += b(0);
state[2] += c(0);
state[3] += d(0);
state[4] += e(0);
state[5] += f(0);
state[6] += g(0);
state[7] += h(0);
#endif
}
/*
// smaller but slower
void SHA256::Transform(word32 *state, const word32 *data)
{
word32 T[20];
word32 W[32];
unsigned int i = 0, j = 0;
word32 *t = T+8;
memcpy(t, state, 8*4);
word32 e = t[4], a = t[0];
do
{
word32 w = data[j];
W[j] = w;
w += SHA256_K[j];
w += t[7];
w += S1(e);
w += Ch(e, t[5], t[6]);
e = t[3] + w;
t[3] = t[3+8] = e;
w += S0(t[0]);
a = w + Maj(a, t[1], t[2]);
t[-1] = t[7] = a;
--t;
++j;
if (j%8 == 0)
t += 8;
} while (j<16);
do
{
i = j&0xf;
word32 w = s1(W[i+16-2]) + s0(W[i+16-15]) + W[i] + W[i+16-7];
W[i+16] = W[i] = w;
w += SHA256_K[j];
w += t[7];
w += S1(e);
w += Ch(e, t[5], t[6]);
e = t[3] + w;
t[3] = t[3+8] = e;
w += S0(t[0]);
a = w + Maj(a, t[1], t[2]);
t[-1] = t[7] = a;
w = s1(W[(i+1)+16-2]) + s0(W[(i+1)+16-15]) + W[(i+1)] + W[(i+1)+16-7];
W[(i+1)+16] = W[(i+1)] = w;
w += SHA256_K[j+1];
w += (t-1)[7];
w += S1(e);
w += Ch(e, (t-1)[5], (t-1)[6]);
e = (t-1)[3] + w;
(t-1)[3] = (t-1)[3+8] = e;
w += S0((t-1)[0]);
a = w + Maj(a, (t-1)[1], (t-1)[2]);
(t-1)[-1] = (t-1)[7] = a;
t-=2;
j+=2;
if (j%8 == 0)
t += 8;
} while (j<64);
state[0] += a;
state[1] += t[1];
state[2] += t[2];
state[3] += t[3];
state[4] += e;
state[5] += t[5];
state[6] += t[6];
state[7] += t[7];
}
*/
#undef S0
#undef S1
#undef s0
#undef s1
#undef R
// *************************************************************
void SHA384::InitState(HashWordType *state)
{
static const word64 s[8] = {
W64LIT(0xcbbb9d5dc1059ed8), W64LIT(0x629a292a367cd507),
W64LIT(0x9159015a3070dd17), W64LIT(0x152fecd8f70e5939),
W64LIT(0x67332667ffc00b31), W64LIT(0x8eb44a8768581511),
W64LIT(0xdb0c2e0d64f98fa7), W64LIT(0x47b5481dbefa4fa4)};
memcpy(state, s, sizeof(s));
}
void SHA512::InitState(HashWordType *state)
{
static const word64 s[8] = {
W64LIT(0x6a09e667f3bcc908), W64LIT(0xbb67ae8584caa73b),
W64LIT(0x3c6ef372fe94f82b), W64LIT(0xa54ff53a5f1d36f1),
W64LIT(0x510e527fade682d1), W64LIT(0x9b05688c2b3e6c1f),
W64LIT(0x1f83d9abfb41bd6b), W64LIT(0x5be0cd19137e2179)};
memcpy(state, s, sizeof(s));
}
#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE && CRYPTOPP_BOOL_X86
CRYPTOPP_ALIGN_DATA(16) static const word64 SHA512_K[80] CRYPTOPP_SECTION_ALIGN16 = {
#else
static const word64 SHA512_K[80] = {
#endif
W64LIT(0x428a2f98d728ae22), W64LIT(0x7137449123ef65cd),
W64LIT(0xb5c0fbcfec4d3b2f), W64LIT(0xe9b5dba58189dbbc),
W64LIT(0x3956c25bf348b538), W64LIT(0x59f111f1b605d019),
W64LIT(0x923f82a4af194f9b), W64LIT(0xab1c5ed5da6d8118),
W64LIT(0xd807aa98a3030242), W64LIT(0x12835b0145706fbe),
W64LIT(0x243185be4ee4b28c), W64LIT(0x550c7dc3d5ffb4e2),
W64LIT(0x72be5d74f27b896f), W64LIT(0x80deb1fe3b1696b1),
W64LIT(0x9bdc06a725c71235), W64LIT(0xc19bf174cf692694),
W64LIT(0xe49b69c19ef14ad2), W64LIT(0xefbe4786384f25e3),
W64LIT(0x0fc19dc68b8cd5b5), W64LIT(0x240ca1cc77ac9c65),
W64LIT(0x2de92c6f592b0275), W64LIT(0x4a7484aa6ea6e483),
W64LIT(0x5cb0a9dcbd41fbd4), W64LIT(0x76f988da831153b5),
W64LIT(0x983e5152ee66dfab), W64LIT(0xa831c66d2db43210),
W64LIT(0xb00327c898fb213f), W64LIT(0xbf597fc7beef0ee4),
W64LIT(0xc6e00bf33da88fc2), W64LIT(0xd5a79147930aa725),
W64LIT(0x06ca6351e003826f), W64LIT(0x142929670a0e6e70),
W64LIT(0x27b70a8546d22ffc), W64LIT(0x2e1b21385c26c926),
W64LIT(0x4d2c6dfc5ac42aed), W64LIT(0x53380d139d95b3df),
W64LIT(0x650a73548baf63de), W64LIT(0x766a0abb3c77b2a8),
W64LIT(0x81c2c92e47edaee6), W64LIT(0x92722c851482353b),
W64LIT(0xa2bfe8a14cf10364), W64LIT(0xa81a664bbc423001),
W64LIT(0xc24b8b70d0f89791), W64LIT(0xc76c51a30654be30),
W64LIT(0xd192e819d6ef5218), W64LIT(0xd69906245565a910),
W64LIT(0xf40e35855771202a), W64LIT(0x106aa07032bbd1b8),
W64LIT(0x19a4c116b8d2d0c8), W64LIT(0x1e376c085141ab53),
W64LIT(0x2748774cdf8eeb99), W64LIT(0x34b0bcb5e19b48a8),
W64LIT(0x391c0cb3c5c95a63), W64LIT(0x4ed8aa4ae3418acb),
W64LIT(0x5b9cca4f7763e373), W64LIT(0x682e6ff3d6b2b8a3),
W64LIT(0x748f82ee5defb2fc), W64LIT(0x78a5636f43172f60),
W64LIT(0x84c87814a1f0ab72), W64LIT(0x8cc702081a6439ec),
W64LIT(0x90befffa23631e28), W64LIT(0xa4506cebde82bde9),
W64LIT(0xbef9a3f7b2c67915), W64LIT(0xc67178f2e372532b),
W64LIT(0xca273eceea26619c), W64LIT(0xd186b8c721c0c207),
W64LIT(0xeada7dd6cde0eb1e), W64LIT(0xf57d4f7fee6ed178),
W64LIT(0x06f067aa72176fba), W64LIT(0x0a637dc5a2c898a6),
W64LIT(0x113f9804bef90dae), W64LIT(0x1b710b35131c471b),
W64LIT(0x28db77f523047d84), W64LIT(0x32caab7b40c72493),
W64LIT(0x3c9ebe0a15c9bebc), W64LIT(0x431d67c49c100d4c),
W64LIT(0x4cc5d4becb3e42b6), W64LIT(0x597f299cfc657e2a),
W64LIT(0x5fcb6fab3ad6faec), W64LIT(0x6c44198c4a475817)
};
#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE && CRYPTOPP_BOOL_X86
// put assembly version in separate function, otherwise MSVC 2005 SP1 doesn't generate correct code for the non-assembly version
CRYPTOPP_NAKED static void CRYPTOPP_FASTCALL SHA512_SSE2_Transform(word64 *state, const word64 *data)
{
#ifdef __GNUC__
__asm__ __volatile__
(
".intel_syntax noprefix;"
AS1( push ebx)
AS2( mov ebx, eax)
#else
AS1( push ebx)
AS1( push esi)
AS1( push edi)
AS2( lea ebx, SHA512_K)
#endif
AS2( mov eax, esp)
AS2( and esp, 0xfffffff0)
AS2( sub esp, 27*16) // 17*16 for expanded data, 20*8 for state
AS1( push eax)
AS2( xor eax, eax)
AS2( lea edi, [esp+4+8*8]) // start at middle of state buffer. will decrement pointer each round to avoid copying
AS2( lea esi, [esp+4+20*8+8]) // 16-byte alignment, then add 8
AS2( movdqa xmm0, [ecx+0*16])
AS2( movdq2q mm4, xmm0)
AS2( movdqa [edi+0*16], xmm0)
AS2( movdqa xmm0, [ecx+1*16])
AS2( movdqa [edi+1*16], xmm0)
AS2( movdqa xmm0, [ecx+2*16])
AS2( movdq2q mm5, xmm0)
AS2( movdqa [edi+2*16], xmm0)
AS2( movdqa xmm0, [ecx+3*16])
AS2( movdqa [edi+3*16], xmm0)
ASJ( jmp, 0, f)
#define SSE2_S0_S1(r, a, b, c) \
AS2( movq mm6, r)\
AS2( psrlq r, a)\
AS2( movq mm7, r)\
AS2( psllq mm6, 64-c)\
AS2( pxor mm7, mm6)\
AS2( psrlq r, b-a)\
AS2( pxor mm7, r)\
AS2( psllq mm6, c-b)\
AS2( pxor mm7, mm6)\
AS2( psrlq r, c-b)\
AS2( pxor r, mm7)\
AS2( psllq mm6, b-a)\
AS2( pxor r, mm6)
#define SSE2_s0(r, a, b, c) \
AS2( movdqa xmm6, r)\
AS2( psrlq r, a)\
AS2( movdqa xmm7, r)\
AS2( psllq xmm6, 64-c)\
AS2( pxor xmm7, xmm6)\
AS2( psrlq r, b-a)\
AS2( pxor xmm7, r)\
AS2( psrlq r, c-b)\
AS2( pxor r, xmm7)\
AS2( psllq xmm6, c-a)\
AS2( pxor r, xmm6)
#define SSE2_s1(r, a, b, c) \
AS2( movdqa xmm6, r)\
AS2( psrlq r, a)\
AS2( movdqa xmm7, r)\
AS2( psllq xmm6, 64-c)\
AS2( pxor xmm7, xmm6)\
AS2( psrlq r, b-a)\
AS2( pxor xmm7, r)\
AS2( psllq xmm6, c-b)\
AS2( pxor xmm7, xmm6)\
AS2( psrlq r, c-b)\
AS2( pxor r, xmm7)
ASL(SHA512_Round)
// k + w is in mm0, a is in mm4, e is in mm5
AS2( paddq mm0, [edi+7*8]) // h
AS2( movq mm2, [edi+5*8]) // f
AS2( movq mm3, [edi+6*8]) // g
AS2( pxor mm2, mm3)
AS2( pand mm2, mm5)
SSE2_S0_S1(mm5,14,18,41)
AS2( pxor mm2, mm3)
AS2( paddq mm0, mm2) // h += Ch(e,f,g)
AS2( paddq mm5, mm0) // h += S1(e)
AS2( movq mm2, [edi+1*8]) // b
AS2( movq mm1, mm2)
AS2( por mm2, mm4)
AS2( pand mm2, [edi+2*8]) // c
AS2( pand mm1, mm4)
AS2( por mm1, mm2)
AS2( paddq mm1, mm5) // temp = h + Maj(a,b,c)
AS2( paddq mm5, [edi+3*8]) // e = d + h
AS2( movq [edi+3*8], mm5)
AS2( movq [edi+11*8], mm5)
SSE2_S0_S1(mm4,28,34,39) // S0(a)
AS2( paddq mm4, mm1) // a = temp + S0(a)
AS2( movq [edi-8], mm4)
AS2( movq [edi+7*8], mm4)
AS1( ret)
// first 16 rounds
ASL(0)
AS2( movq mm0, [edx+eax*8])
AS2( movq [esi+eax*8], mm0)
AS2( movq [esi+eax*8+16*8], mm0)
AS2( paddq mm0, [ebx+eax*8])
ASC( call, SHA512_Round)
AS1( inc eax)
AS2( sub edi, 8)
AS2( test eax, 7)
ASJ( jnz, 0, b)
AS2( add edi, 8*8)
AS2( cmp eax, 16)
ASJ( jne, 0, b)
// rest of the rounds
AS2( movdqu xmm0, [esi+(16-2)*8])
ASL(1)
// data expansion, W[i-2] already in xmm0
AS2( movdqu xmm3, [esi])
AS2( paddq xmm3, [esi+(16-7)*8])
AS2( movdqa xmm2, [esi+(16-15)*8])
SSE2_s1(xmm0, 6, 19, 61)
AS2( paddq xmm0, xmm3)
SSE2_s0(xmm2, 1, 7, 8)
AS2( paddq xmm0, xmm2)
AS2( movdq2q mm0, xmm0)
AS2( movhlps xmm1, xmm0)
AS2( paddq mm0, [ebx+eax*8])
AS2( movlps [esi], xmm0)
AS2( movlps [esi+8], xmm1)
AS2( movlps [esi+8*16], xmm0)
AS2( movlps [esi+8*17], xmm1)
// 2 rounds
ASC( call, SHA512_Round)
AS2( sub edi, 8)
AS2( movdq2q mm0, xmm1)
AS2( paddq mm0, [ebx+eax*8+8])
ASC( call, SHA512_Round)
// update indices and loop
AS2( add esi, 16)
AS2( add eax, 2)
AS2( sub edi, 8)
AS2( test eax, 7)
ASJ( jnz, 1, b)
// do housekeeping every 8 rounds
AS2( mov esi, 0xf)
AS2( and esi, eax)
AS2( lea esi, [esp+4+20*8+8+esi*8])
AS2( add edi, 8*8)
AS2( cmp eax, 80)
ASJ( jne, 1, b)
#define SSE2_CombineState(i) \
AS2( movdqa xmm0, [edi+i*16])\
AS2( paddq xmm0, [ecx+i*16])\
AS2( movdqa [ecx+i*16], xmm0)
SSE2_CombineState(0)
SSE2_CombineState(1)
SSE2_CombineState(2)
SSE2_CombineState(3)
AS1( pop esp)
AS1( emms)
#if defined(__GNUC__)
AS1( pop ebx)
".att_syntax prefix;"
:
: "a" (SHA512_K), "c" (state), "d" (data)
: "%esi", "%edi", "memory", "cc"
);
#else
AS1( pop edi)
AS1( pop esi)
AS1( pop ebx)
AS1( ret)
#endif
}
#endif // #if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
void SHA512::Transform(word64 *state, const word64 *data)
{
#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE && CRYPTOPP_BOOL_X86
if (HasSSE2())
{
SHA512_SSE2_Transform(state, data);
return;
}
#endif
#define S0(x) (rotrFixed(x,28)^rotrFixed(x,34)^rotrFixed(x,39))
#define S1(x) (rotrFixed(x,14)^rotrFixed(x,18)^rotrFixed(x,41))
#define s0(x) (rotrFixed(x,1)^rotrFixed(x,8)^(x>>7))
#define s1(x) (rotrFixed(x,19)^rotrFixed(x,61)^(x>>6))
#define R(i) h(i)+=S1(e(i))+Ch(e(i),f(i),g(i))+SHA512_K[i+j]+(j?blk2(i):blk0(i));\
d(i)+=h(i);h(i)+=S0(a(i))+Maj(a(i),b(i),c(i))
word64 W[16];
word64 T[8];
/* Copy context->state[] to working vars */
memcpy(T, state, sizeof(T));
/* 80 operations, partially loop unrolled */
for (unsigned int j=0; j<80; j+=16)
{
R( 0); R( 1); R( 2); R( 3);
R( 4); R( 5); R( 6); R( 7);
R( 8); R( 9); R(10); R(11);
R(12); R(13); R(14); R(15);
}
/* Add the working vars back into context.state[] */
state[0] += a(0);
state[1] += b(0);
state[2] += c(0);
state[3] += d(0);
state[4] += e(0);
state[5] += f(0);
state[6] += g(0);
state[7] += h(0);
}
NAMESPACE_END
#endif // #ifndef CRYPTOPP_GENERATE_X64_MASM
#endif // #ifndef CRYPTOPP_IMPORTS

View File

@@ -1,63 +0,0 @@
#ifndef CRYPTOPP_SHA_H
#define CRYPTOPP_SHA_H
#include "iterhash.h"
NAMESPACE_BEGIN(CryptoPP)
/// <a href="http://www.weidai.com/scan-mirror/md.html#SHA-1">SHA-1</a>
class CRYPTOPP_DLL SHA1 : public IteratedHashWithStaticTransform<word32, BigEndian, 64, 20, SHA1>
{
public:
static void CRYPTOPP_API InitState(HashWordType *state);
static void CRYPTOPP_API Transform(word32 *digest, const word32 *data);
static const char * CRYPTOPP_API StaticAlgorithmName() {return "SHA-1";}
};
typedef SHA1 SHA; // for backwards compatibility
//! implements the SHA-256 standard
class CRYPTOPP_DLL SHA256 : public IteratedHashWithStaticTransform<word32, BigEndian, 64, 32, SHA256, 32, true>
{
public:
#if defined(CRYPTOPP_X86_ASM_AVAILABLE) || defined(CRYPTOPP_X64_MASM_AVAILABLE)
size_t HashMultipleBlocks(const word32 *input, size_t length);
#endif
static void CRYPTOPP_API InitState(HashWordType *state);
static void CRYPTOPP_API Transform(word32 *digest, const word32 *data);
static const char * CRYPTOPP_API StaticAlgorithmName() {return "SHA-256";}
};
//! implements the SHA-224 standard
class CRYPTOPP_DLL SHA224 : public IteratedHashWithStaticTransform<word32, BigEndian, 64, 32, SHA224, 28, true>
{
public:
#if defined(CRYPTOPP_X86_ASM_AVAILABLE) || defined(CRYPTOPP_X64_MASM_AVAILABLE)
size_t HashMultipleBlocks(const word32 *input, size_t length);
#endif
static void CRYPTOPP_API InitState(HashWordType *state);
static void CRYPTOPP_API Transform(word32 *digest, const word32 *data) {SHA256::Transform(digest, data);}
static const char * CRYPTOPP_API StaticAlgorithmName() {return "SHA-224";}
};
//! implements the SHA-512 standard
class CRYPTOPP_DLL SHA512 : public IteratedHashWithStaticTransform<word64, BigEndian, 128, 64, SHA512, 64, CRYPTOPP_BOOL_X86>
{
public:
static void CRYPTOPP_API InitState(HashWordType *state);
static void CRYPTOPP_API Transform(word64 *digest, const word64 *data);
static const char * CRYPTOPP_API StaticAlgorithmName() {return "SHA-512";}
};
//! implements the SHA-384 standard
class CRYPTOPP_DLL SHA384 : public IteratedHashWithStaticTransform<word64, BigEndian, 128, 64, SHA384, 48, CRYPTOPP_BOOL_X86>
{
public:
static void CRYPTOPP_API InitState(HashWordType *state);
static void CRYPTOPP_API Transform(word64 *digest, const word64 *data) {SHA512::Transform(digest, data);}
static const char * CRYPTOPP_API StaticAlgorithmName() {return "SHA-384";}
};
NAMESPACE_END
#endif

View File

@@ -1 +0,0 @@

View File

@@ -1,223 +0,0 @@
#ifndef CRYPTOPP_SMARTPTR_H
#define CRYPTOPP_SMARTPTR_H
#include "config.h"
#include <algorithm>
NAMESPACE_BEGIN(CryptoPP)
template <class T> class simple_ptr
{
public:
simple_ptr() : m_p(NULL) {}
~simple_ptr() {delete m_p;}
T *m_p;
};
template <class T> class member_ptr
{
public:
explicit member_ptr(T *p = NULL) : m_p(p) {}
~member_ptr();
const T& operator*() const { return *m_p; }
T& operator*() { return *m_p; }
const T* operator->() const { return m_p; }
T* operator->() { return m_p; }
const T* get() const { return m_p; }
T* get() { return m_p; }
T* release()
{
T *old_p = m_p;
m_p = 0;
return old_p;
}
void reset(T *p = 0);
protected:
member_ptr(const member_ptr<T>& rhs); // copy not allowed
void operator=(const member_ptr<T>& rhs); // assignment not allowed
T *m_p;
};
template <class T> member_ptr<T>::~member_ptr() {delete m_p;}
template <class T> void member_ptr<T>::reset(T *p) {delete m_p; m_p = p;}
// ********************************************************
template<class T> class value_ptr : public member_ptr<T>
{
public:
value_ptr(const T &obj) : member_ptr<T>(new T(obj)) {}
value_ptr(T *p = NULL) : member_ptr<T>(p) {}
value_ptr(const value_ptr<T>& rhs)
: member_ptr<T>(rhs.m_p ? new T(*rhs.m_p) : NULL) {}
value_ptr<T>& operator=(const value_ptr<T>& rhs);
bool operator==(const value_ptr<T>& rhs)
{
return (!this->m_p && !rhs.m_p) || (this->m_p && rhs.m_p && *this->m_p == *rhs.m_p);
}
};
template <class T> value_ptr<T>& value_ptr<T>::operator=(const value_ptr<T>& rhs)
{
T *old_p = this->m_p;
this->m_p = rhs.m_p ? new T(*rhs.m_p) : NULL;
delete old_p;
return *this;
}
// ********************************************************
template<class T> class clonable_ptr : public member_ptr<T>
{
public:
clonable_ptr(const T &obj) : member_ptr<T>(obj.Clone()) {}
clonable_ptr(T *p = NULL) : member_ptr<T>(p) {}
clonable_ptr(const clonable_ptr<T>& rhs)
: member_ptr<T>(rhs.m_p ? rhs.m_p->Clone() : NULL) {}
clonable_ptr<T>& operator=(const clonable_ptr<T>& rhs);
};
template <class T> clonable_ptr<T>& clonable_ptr<T>::operator=(const clonable_ptr<T>& rhs)
{
T *old_p = this->m_p;
this->m_p = rhs.m_p ? rhs.m_p->Clone() : NULL;
delete old_p;
return *this;
}
// ********************************************************
template<class T> class counted_ptr
{
public:
explicit counted_ptr(T *p = 0);
counted_ptr(const T &r) : m_p(0) {attach(r);}
counted_ptr(const counted_ptr<T>& rhs);
~counted_ptr();
const T& operator*() const { return *m_p; }
T& operator*() { return *m_p; }
const T* operator->() const { return m_p; }
T* operator->() { return get(); }
const T* get() const { return m_p; }
T* get();
void attach(const T &p);
counted_ptr<T> & operator=(const counted_ptr<T>& rhs);
private:
T *m_p;
};
template <class T> counted_ptr<T>::counted_ptr(T *p)
: m_p(p)
{
if (m_p)
m_p->m_referenceCount = 1;
}
template <class T> counted_ptr<T>::counted_ptr(const counted_ptr<T>& rhs)
: m_p(rhs.m_p)
{
if (m_p)
m_p->m_referenceCount++;
}
template <class T> counted_ptr<T>::~counted_ptr()
{
if (m_p && --m_p->m_referenceCount == 0)
delete m_p;
}
template <class T> void counted_ptr<T>::attach(const T &r)
{
if (m_p && --m_p->m_referenceCount == 0)
delete m_p;
if (r.m_referenceCount == 0)
{
m_p = r.clone();
m_p->m_referenceCount = 1;
}
else
{
m_p = const_cast<T *>(&r);
m_p->m_referenceCount++;
}
}
template <class T> T* counted_ptr<T>::get()
{
if (m_p && m_p->m_referenceCount > 1)
{
T *temp = m_p->clone();
m_p->m_referenceCount--;
m_p = temp;
m_p->m_referenceCount = 1;
}
return m_p;
}
template <class T> counted_ptr<T> & counted_ptr<T>::operator=(const counted_ptr<T>& rhs)
{
if (m_p != rhs.m_p)
{
if (m_p && --m_p->m_referenceCount == 0)
delete m_p;
m_p = rhs.m_p;
if (m_p)
m_p->m_referenceCount++;
}
return *this;
}
// ********************************************************
template <class T> class vector_member_ptrs
{
public:
vector_member_ptrs(size_t size=0)
: m_size(size), m_ptr(new member_ptr<T>[size]) {}
~vector_member_ptrs()
{delete [] this->m_ptr;}
member_ptr<T>& operator[](size_t index)
{assert(index<this->m_size); return this->m_ptr[index];}
const member_ptr<T>& operator[](size_t index) const
{assert(index<this->m_size); return this->m_ptr[index];}
size_t size() const {return this->m_size;}
void resize(size_t newSize)
{
member_ptr<T> *newPtr = new member_ptr<T>[newSize];
for (size_t i=0; i<this->m_size && i<newSize; i++)
newPtr[i].reset(this->m_ptr[i].release());
delete [] this->m_ptr;
this->m_size = newSize;
this->m_ptr = newPtr;
}
private:
vector_member_ptrs(const vector_member_ptrs<T> &c); // copy not allowed
void operator=(const vector_member_ptrs<T> &x); // assignment not allowed
size_t m_size;
member_ptr<T> *m_ptr;
};
NAMESPACE_END
#endif

View File

@@ -1,27 +0,0 @@
#ifndef CRYPTOPP_STDCPP_H
#define CRYPTOPP_STDCPP_H
#include <stddef.h>
#include <assert.h>
#include <limits.h>
#include <memory>
#include <string>
#include <exception>
#include <typeinfo>
#ifdef _MSC_VER
#include <string.h> // CodeWarrior doesn't have memory.h
#include <algorithm>
#include <map>
#include <vector>
// re-disable this
#pragma warning(disable: 4231)
#endif
#if defined(_MSC_VER) && defined(_CRTAPI1)
#define CRYPTOPP_MSVCRT6
#endif
#endif

View File

@@ -1,4 +1,5 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2011 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
@@ -519,24 +520,6 @@ bool CAddrDB::LoadAddresses()
{
CRITICAL_BLOCK(cs_mapAddresses)
{
// Load user provided addresses
CAutoFile filein = fopen((GetDataDir() + "/addr.txt").c_str(), "rt");
if (filein)
{
try
{
char psz[1000];
while (fgets(psz, sizeof(psz), filein))
{
CAddress addr(psz, NODE_NETWORK);
addr.nTime = 0; // so it won't relay unless successfully connected
if (addr.IsValid())
AddAddress(addr);
}
}
catch (...) { }
}
// Get cursor
Dbc* pcursor = GetCursor();
if (!pcursor)
@@ -610,7 +593,7 @@ bool CWalletDB::WriteAccount(const string& strAccount, const CAccount& account)
bool CWalletDB::WriteAccountingEntry(const CAccountingEntry& acentry)
{
return Write(make_tuple(string("acentry"), acentry.strAccount, ++nAccountingEntryNumber), acentry);
return Write(boost::make_tuple(string("acentry"), acentry.strAccount, ++nAccountingEntryNumber), acentry);
}
int64 CWalletDB::GetAccountCreditDebit(const string& strAccount)
@@ -627,8 +610,6 @@ int64 CWalletDB::GetAccountCreditDebit(const string& strAccount)
void CWalletDB::ListAccountCreditDebit(const string& strAccount, list<CAccountingEntry>& entries)
{
int64 nCreditDebit = 0;
bool fAllAccounts = (strAccount == "*");
Dbc* pcursor = GetCursor();
@@ -640,7 +621,7 @@ void CWalletDB::ListAccountCreditDebit(const string& strAccount, list<CAccountin
// Read next record
CDataStream ssKey;
if (fFlags == DB_SET_RANGE)
ssKey << make_tuple(string("acentry"), (fAllAccounts? string("") : strAccount), uint64(0));
ssKey << boost::make_tuple(string("acentry"), (fAllAccounts? string("") : strAccount), uint64(0));
CDataStream ssValue;
int ret = ReadAtCursor(pcursor, ssKey, ssValue, fFlags);
fFlags = DB_NEXT;
@@ -670,27 +651,26 @@ void CWalletDB::ListAccountCreditDebit(const string& strAccount, list<CAccountin
}
bool CWalletDB::LoadWallet(CWallet* pwallet)
int CWalletDB::LoadWallet(CWallet* pwallet)
{
pwallet->vchDefaultKey.clear();
int nFileVersion = 0;
vector<uint256> vWalletUpgrade;
// Modify defaults
#ifndef __WXMSW__
#ifndef WIN32
// Tray icon sometimes disappears on 9.10 karmic koala 64-bit, leaving no way to access the program
fMinimizeToTray = false;
fMinimizeOnClose = false;
#endif
//// todo: shouldn't we catch exceptions and try to recover and continue?
CRITICAL_BLOCK(pwallet->cs_mapWallet)
CRITICAL_BLOCK(pwallet->cs_mapKeys)
CRITICAL_BLOCK(pwallet->cs_wallet)
{
// Get cursor
Dbc* pcursor = GetCursor();
if (!pcursor)
return false;
return DB_CORRUPT;
loop
{
@@ -701,7 +681,7 @@ bool CWalletDB::LoadWallet(CWallet* pwallet)
if (ret == DB_NOTFOUND)
break;
else if (ret != 0)
return false;
return DB_CORRUPT;
// Unserialize
// Taking advantage of the fact that pair serialization
@@ -765,14 +745,42 @@ bool CWalletDB::LoadWallet(CWallet* pwallet)
{
vector<unsigned char> vchPubKey;
ssKey >> vchPubKey;
CWalletKey wkey;
CKey key;
if (strType == "key")
ssValue >> wkey.vchPrivKey;
{
CPrivKey pkey;
ssValue >> pkey;
key.SetPrivKey(pkey);
}
else
{
CWalletKey wkey;
ssValue >> wkey;
pwallet->mapKeys[vchPubKey] = wkey.vchPrivKey;
mapPubKeys[Hash160(vchPubKey)] = vchPubKey;
key.SetPrivKey(wkey.vchPrivKey);
}
if (!pwallet->LoadKey(key))
return DB_CORRUPT;
}
else if (strType == "mkey")
{
unsigned int nID;
ssKey >> nID;
CMasterKey kMasterKey;
ssValue >> kMasterKey;
if(pwallet->mapMasterKeys.count(nID) != 0)
return DB_CORRUPT;
pwallet->mapMasterKeys[nID] = kMasterKey;
if (pwallet->nMasterKeyMaxID < nID)
pwallet->nMasterKeyMaxID = nID;
}
else if (strType == "ckey")
{
vector<unsigned char> vchPubKey;
ssKey >> vchPubKey;
vector<unsigned char> vchPrivKey;
ssValue >> vchPrivKey;
if (!pwallet->LoadCryptedKey(vchPubKey, vchPrivKey))
return DB_CORRUPT;
}
else if (strType == "defaultkey")
{
@@ -796,11 +804,10 @@ bool CWalletDB::LoadWallet(CWallet* pwallet)
ssKey >> strKey;
// Options
#ifndef GUI
#ifndef QT_GUI
if (strKey == "fGenerateBitcoins") ssValue >> fGenerateBitcoins;
#endif
if (strKey == "nTransactionFee") ssValue >> nTransactionFee;
if (strKey == "addrIncoming") ssValue >> addrIncoming;
if (strKey == "fLimitProcessors") ssValue >> fLimitProcessors;
if (strKey == "nLimitProcessors") ssValue >> nLimitProcessors;
if (strKey == "fMinimizeToTray") ssValue >> fMinimizeToTray;
@@ -809,6 +816,13 @@ bool CWalletDB::LoadWallet(CWallet* pwallet)
if (strKey == "addrProxy") ssValue >> addrProxy;
if (fHaveUPnP && strKey == "fUseUPnP") ssValue >> fUseUPnP;
}
else if (strType == "minversion")
{
int nMinVersion = 0;
ssValue >> nMinVersion;
if (nMinVersion > VERSION)
return DB_TOO_NEW;
}
}
pcursor->close();
}
@@ -819,7 +833,6 @@ bool CWalletDB::LoadWallet(CWallet* pwallet)
printf("nFileVersion = %d\n", nFileVersion);
printf("fGenerateBitcoins = %d\n", fGenerateBitcoins);
printf("nTransactionFee = %"PRI64d"\n", nTransactionFee);
printf("addrIncoming = %s\n", addrIncoming.ToString().c_str());
printf("fMinimizeToTray = %d\n", fMinimizeToTray);
printf("fMinimizeOnClose = %d\n", fMinimizeOnClose);
printf("fUseProxy = %d\n", fUseProxy);
@@ -839,7 +852,7 @@ bool CWalletDB::LoadWallet(CWallet* pwallet)
}
return true;
return DB_LOAD_OK;
}
void ThreadFlushWalletDB(void* parg)

View File

@@ -1,4 +1,5 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2011 The Bitcoin developers
// 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
@@ -88,7 +89,7 @@ protected:
if (!pdb)
return false;
if (fReadOnly)
assert(("Write called on database in read-only mode", false));
assert(!"Write called on database in read-only mode");
// Key
CDataStream ssKey(SER_DISK);
@@ -117,7 +118,7 @@ protected:
if (!pdb)
return false;
if (fReadOnly)
assert(("Erase called on database in read-only mode", false));
assert(!"Erase called on database in read-only mode");
// Key
CDataStream ssKey(SER_DISK);
@@ -342,6 +343,14 @@ public:
enum DBErrors
{
DB_LOAD_OK,
DB_CORRUPT,
DB_TOO_NEW,
DB_LOAD_FAIL,
};
class CWalletDB : public CDB
{
public:
@@ -391,6 +400,25 @@ public:
return Write(std::make_pair(std::string("key"), vchPubKey), vchPrivKey, false);
}
bool WriteCryptedKey(const std::vector<unsigned char>& vchPubKey, const std::vector<unsigned char>& vchCryptedSecret, bool fEraseUnencryptedKey = true)
{
nWalletDBUpdated++;
if (!Write(std::make_pair(std::string("ckey"), vchPubKey), vchCryptedSecret, false))
return false;
if (fEraseUnencryptedKey)
{
Erase(std::make_pair(std::string("key"), vchPubKey));
Erase(std::make_pair(std::string("wkey"), vchPubKey));
}
return true;
}
bool WriteMasterKey(unsigned int nID, const CMasterKey& kMasterKey)
{
nWalletDBUpdated++;
return Write(std::make_pair(std::string("mkey"), nID), kMasterKey, true);
}
bool WriteBestBlock(const CBlockLocator& locator)
{
nWalletDBUpdated++;
@@ -450,7 +478,7 @@ public:
int64 GetAccountCreditDebit(const std::string& strAccount);
void ListAccountCreditDebit(const std::string& strAccount, std::list<CAccountingEntry>& acentries);
bool LoadWallet(CWallet* pwallet);
int LoadWallet(CWallet* pwallet);
};
#endif

View File

@@ -1,4 +1,5 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2011 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
@@ -21,19 +22,11 @@
#if (defined(__unix__) || defined(unix)) && !defined(USG)
#include <sys/param.h> // to get BSD define
#endif
#ifdef __WXMAC_OSX__
#ifdef MAC_OSX
#ifndef BSD
#define BSD 1
#endif
#endif
#ifdef GUI
#include <wx/wx.h>
#include <wx/stdpaths.h>
#include <wx/snglinst.h>
#include <wx/utils.h>
#include <wx/clipbrd.h>
#include <wx/taskbar.h>
#endif
#include <openssl/buffer.h>
#include <openssl/ecdsa.h>
#include <openssl/evp.h>
@@ -58,7 +51,7 @@
#include <boost/foreach.hpp>
#ifdef __WXMSW__
#ifdef WIN32
#include <windows.h>
#include <winsock2.h>
#include <mswsock.h>
@@ -94,24 +87,8 @@
#include "bignum.h"
#include "base58.h"
#include "main.h"
#ifdef GUI
#include "uibase.h"
#include "ui.h"
#ifdef QT_GUI
#include "qtui.h"
#else
#include "noui.h"
#endif
#ifdef GUI
#include "xpm/addressbook16.xpm"
#include "xpm/addressbook20.xpm"
#include "xpm/bitcoin16.xpm"
#include "xpm/bitcoin20.xpm"
#include "xpm/bitcoin32.xpm"
#include "xpm/bitcoin48.xpm"
#include "xpm/bitcoin80.xpm"
#include "xpm/check.xpm"
#include "xpm/send16.xpm"
#include "xpm/send16noshadow.xpm"
#include "xpm/send20.xpm"
#include "xpm/about.xpm"
#endif

View File

@@ -1,9 +1,10 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2011 The Bitcoin developers
// 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"
#include "db.h"
#include "rpc.h"
#include "bitcoinrpc.h"
#include "net.h"
#include "init.h"
#include "strlcpy.h"
@@ -23,7 +24,7 @@ CWallet* pwalletMain;
void ExitTimeout(void* parg)
{
#ifdef __WXMSW__
#ifdef WIN32
Sleep(5000);
ExitProcess(0);
#endif
@@ -79,7 +80,7 @@ void HandleSIGTERM(int)
//
// Start
//
#ifndef GUI
#if !defined(QT_GUI)
int main(int argc, char* argv[])
{
bool fRet = false;
@@ -120,10 +121,10 @@ bool AppInit2(int argc, char* argv[])
// Disable confusing "helpful" text message on abort, ctrl-c
_set_abort_behavior(0, _WRITE_ABORT_MSG | _CALL_REPORTFAULT);
#endif
#ifndef __WXMSW__
#ifndef WIN32
umask(077);
#endif
#ifndef __WXMSW__
#ifndef WIN32
// Clean shutdown on SIGTERM
struct sigaction sa;
sa.sa_handler = HandleSIGTERM;
@@ -178,6 +179,8 @@ bool AppInit2(int argc, char* argv[])
" -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") +
" -banscore=<n> \t " + _("Threshold for disconnecting misbehaving peers (default: 100)\n") +
" -bantime=<n> \t " + _("Number of seconds to keep misbehaving peers from reconnecting (default: 86400)\n") +
#ifdef USE_UPNP
#if USE_UPNP
" -noupnp \t " + _("Don't attempt to use UPnP to map the listening port\n") +
@@ -189,7 +192,7 @@ bool AppInit2(int argc, char* argv[])
#ifdef GUI
" -server \t\t " + _("Accept command line and JSON-RPC commands\n") +
#endif
#ifndef __WXMSW__
#ifndef WIN32
" -daemon \t\t " + _("Run in the background as a daemon and accept commands\n") +
#endif
" -testnet \t\t " + _("Use the test network\n") +
@@ -213,21 +216,16 @@ bool AppInit2(int argc, char* argv[])
strUsage += string() +
" -? \t\t " + _("This help message\n");
#if defined(__WXMSW__) && defined(GUI)
// Tabs make the columns line up in the message box
wxMessageBox(strUsage, "Bitcoin", wxOK);
#else
// Remove tabs
strUsage.erase(std::remove(strUsage.begin(), strUsage.end(), '\t'), strUsage.end());
fprintf(stderr, "%s", strUsage.c_str());
#endif
return false;
}
fDebug = GetBoolArg("-debug");
fAllowDNS = GetBoolArg("-dns");
#ifndef __WXMSW__
#ifndef WIN32
fDaemon = GetBoolArg("-daemon");
#else
fDaemon = false;
@@ -239,17 +237,18 @@ bool AppInit2(int argc, char* argv[])
fServer = GetBoolArg("-server");
/* force fServer when running without GUI */
#ifndef GUI
#if !defined(QT_GUI)
fServer = true;
#endif
fPrintToConsole = GetBoolArg("-printtoconsole");
fPrintToDebugger = GetBoolArg("-printtodebugger");
fTestNet = GetBoolArg("-testnet");
fNoListen = GetBoolArg("-nolisten");
bool fTOR = (fUseProxy && addrProxy.port == htons(9050));
fNoListen = GetBoolArg("-nolisten") || fTOR;
fLogTimestamps = GetBoolArg("-logtimestamps");
#ifndef QT_GUI
for (int i = 1; i < argc; i++)
if (!IsSwitchChar(argv[i][0]))
fCommandLine = true;
@@ -259,8 +258,9 @@ bool AppInit2(int argc, char* argv[])
int ret = CommandLineRPC(argc, argv);
exit(ret);
}
#endif
#ifndef __WXMSW__
#ifndef WIN32
if (fDaemon)
{
// Daemonize
@@ -286,11 +286,6 @@ bool AppInit2(int argc, char* argv[])
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 %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());
printf("Language file %s (%s)\n", (string("locale/") + (string)g_locale.GetCanonicalName() + "/LC_MESSAGES/bitcoin.mo").c_str(), ((string)g_locale.GetLocale()).c_str());
#endif
printf("Default data directory %s\n", GetDefaultDataDir().c_str());
if (GetBoolArg("-loadblockindextest"))
@@ -301,46 +296,6 @@ bool AppInit2(int argc, char* argv[])
return false;
}
//
// Limit to single instance per user
// Required to protect the database files if we're going to keep deleting log.*
//
#if defined(__WXMSW__) && defined(GUI)
// 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]))
strMutexName[i] = '.';
wxSingleInstanceChecker* psingleinstancechecker = new wxSingleInstanceChecker(strMutexName);
if (psingleinstancechecker->IsAnotherRunning())
{
printf("Existing instance found\n");
unsigned int nStart = GetTime();
loop
{
// Show the previous instance and exit
HWND hwndPrev = FindWindowA("wxWindowClassNR", "Bitcoin");
if (hwndPrev)
{
if (IsIconic(hwndPrev))
ShowWindow(hwndPrev, SW_RESTORE);
SetForegroundWindow(hwndPrev);
return false;
}
if (GetTime() > nStart + 60)
return false;
// Resume this instance if the other exits
delete psingleinstancechecker;
Sleep(1000);
psingleinstancechecker = new wxSingleInstanceChecker(strMutexName);
if (!psingleinstancechecker->IsAnotherRunning())
break;
}
}
#endif
// 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.
@@ -371,24 +326,35 @@ bool AppInit2(int argc, char* argv[])
strErrors = "";
int64 nStart;
InitMessage(_("Loading addresses..."));
printf("Loading addresses...\n");
nStart = GetTimeMillis();
if (!LoadAddresses())
strErrors += _("Error loading addr.dat \n");
printf(" addresses %15"PRI64d"ms\n", GetTimeMillis() - nStart);
InitMessage(_("Loading block index..."));
printf("Loading block index...\n");
nStart = GetTimeMillis();
if (!LoadBlockIndex())
strErrors += _("Error loading blkindex.dat \n");
printf(" block index %15"PRI64d"ms\n", GetTimeMillis() - nStart);
InitMessage(_("Loading wallet..."));
printf("Loading wallet...\n");
nStart = GetTimeMillis();
bool fFirstRun;
pwalletMain = new CWallet("wallet.dat");
if (!pwalletMain->LoadWallet(fFirstRun))
strErrors += _("Error loading wallet.dat \n");
int nLoadWalletRet = pwalletMain->LoadWallet(fFirstRun);
if (nLoadWalletRet != DB_LOAD_OK)
{
if (nLoadWalletRet == DB_CORRUPT)
strErrors += _("Error loading wallet.dat: Wallet corrupted \n");
else if (nLoadWalletRet == DB_TOO_NEW)
strErrors += _("Error loading wallet.dat: Wallet requires newer version of Bitcoin \n");
else
strErrors += _("Error loading wallet.dat \n");
}
printf(" wallet %15"PRI64d"ms\n", GetTimeMillis() - nStart);
RegisterWallet(pwalletMain);
@@ -405,20 +371,20 @@ bool AppInit2(int argc, char* argv[])
}
if (pindexBest != pindexRescan)
{
InitMessage(_("Rescanning..."));
printf("Rescanning last %i blocks (from block %i)...\n", pindexBest->nHeight - pindexRescan->nHeight, pindexRescan->nHeight);
nStart = GetTimeMillis();
pwalletMain->ScanForWalletTransactions(pindexRescan, true);
printf(" rescan %15"PRI64d"ms\n", GetTimeMillis() - nStart);
}
InitMessage(_("Done loading"));
printf("Done loading\n");
//// debug print
printf("mapBlockIndex.size() = %d\n", mapBlockIndex.size());
printf("nBestHeight = %d\n", nBestHeight);
printf("mapKeys.size() = %d\n", pwalletMain->mapKeys.size());
printf("setKeyPool.size() = %d\n", pwalletMain->setKeyPool.size());
printf("mapPubKeys.size() = %d\n", mapPubKeys.size());
printf("mapWallet.size() = %d\n", pwalletMain->mapWallet.size());
printf("mapAddressBook.size() = %d\n", pwalletMain->mapAddressBook.size());
@@ -522,30 +488,20 @@ bool AppInit2(int argc, char* argv[])
}
//
// Create the main window and start the node
// Start the node
//
#ifdef GUI
if (!fDaemon)
CreateMainWindow();
#endif
if (!CheckDiskSpace())
return false;
RandAddSeedPerfmon();
if (!CreateThread(StartNode, NULL))
wxMessageBox("Error: CreateThread(StartNode) failed", "Bitcoin");
wxMessageBox(_("Error: CreateThread(StartNode) failed"), "Bitcoin");
if (fServer)
CreateThread(ThreadRPCServer, NULL);
#if defined(__WXMSW__) && defined(GUI)
if (fFirstRun)
SetStartOnSystemStartup(true);
#endif
#ifndef GUI
#if !defined(QT_GUI)
while (1)
Sleep(5000);
#endif

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