Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge branch 'master' of git://github.com/bitcoin/bitcoin

  • Loading branch information...
commit 790cb0e6487f612f74e463ce995c4d1cf6fe3907 2 parents bc89974 + 700f942
@cdecker authored
Showing with 5,753 additions and 3,569 deletions.
  1. +6 −0 .gitignore
  2. +20 −6 README.md
  3. +2 −2 contrib/Bitcoin.app/Contents/Info.plist
  4. +38 −0 contrib/boost-win32.yml
  5. +43 −35 contrib/gitian-win32.yml
  6. +20 −18 contrib/gitian.yml
  7. +6 −0 contrib/pyminer/README
  8. +32 −0 contrib/pyminer/example-config.cfg
  9. +252 −0 contrib/pyminer/pyminer.py
  10. +0 −4 contrib/wx-patches/README
  11. +0 −86 contrib/wx-patches/toplevel.cpp.diff
  12. +0 −9 contrib/wx-patches/toplevel.h.diff
  13. +40 −0 contrib/wxwidgets-win32.yml
  14. +42 −0 contrib/wxwidgets.yml
  15. +47 −3 doc/README
  16. +1 −1  doc/README_windows.txt
  17. +16 −20 doc/build-msw.txt
  18. +9 −9 doc/build-osx.txt
  19. +11 −13 doc/build-unix.txt
  20. +58 −0 doc/coding.txt
  21. +3 −0  doc/release-process.txt
  22. BIN  locale/cs/LC_MESSAGES/bitcoin.mo
  23. +710 −602 locale/cs/LC_MESSAGES/bitcoin.po
  24. +136 −138 locale/de/LC_MESSAGES/bitcoin.po
  25. +567 −458 locale/es/LC_MESSAGES/bitcoin.po
  26. BIN  locale/fr/LC_MESSAGES/bitcoin.mo
  27. BIN  locale/nl/LC_MESSAGES/bitcoin.mo
  28. +266 −370 locale/pl/LC_MESSAGES/bitcoin.po
  29. BIN  locale/pt/LC_MESSAGES/bitcoin.mo
  30. +2 −0  locale/readme.txt
  31. BIN  locale/ro/LC_MESSAGES/bitcoin.mo
  32. +1,078 −0 locale/ro/LC_MESSAGES/bitcoin.po
  33. +388 −279 locale/zh_cn/LC_MESSAGES/bitcoin.po
  34. BIN  share/pixmaps/bitcoin.ico
  35. +3 −3 share/setup.nsi
  36. +1 −0  src/base58.h
  37. +1 −0  src/bignum.h
  38. +4 −4 src/db.cpp
  39. +1 −0  src/db.h
  40. +1 −0  src/headers.h
  41. +1 −0  src/init.cpp
  42. +1 −0  src/init.h
  43. +1 −0  src/irc.cpp
  44. +1 −0  src/irc.h
  45. +8 −0 src/key.h
  46. +18 −6 src/keystore.cpp
  47. +30 −27 src/keystore.h
  48. +52 −77 src/main.cpp
  49. +2 −15 src/main.h
  50. +41 −21 src/makefile.linux-mingw
  51. +47 −26 src/makefile.mingw
  52. +33 −12 src/makefile.osx
  53. +35 −14 src/makefile.unix
  54. +37 −13 src/makefile.vc
  55. +103 −103 src/net.cpp
  56. +14 −409 src/net.h
  57. +1 −0  src/noui.h
  58. +312 −0 src/protocol.cpp
  59. +150 −0 src/protocol.h
  60. +287 −366 src/rpc.cpp
  61. +1 −0  src/rpc.h
  62. +48 −55 src/script.cpp
  63. +4 −0 src/script.h
  64. +10 −5 src/serialize.h
  65. +173 −0 src/test/script_tests.cpp
  66. +13 −1 src/test/test_bitcoin.cpp
  67. +25 −0 src/test/transaction_tests.cpp
  68. +3 −1 src/test/uint160_tests.cpp
  69. +3 −1 src/test/uint256_tests.cpp
  70. +198 −188 src/ui.cpp
  71. +1 −0  src/ui.h
  72. +1 −0  src/uint256.h
  73. +137 −0 src/util.cpp
  74. +31 −34 src/util.h
  75. +119 −123 src/wallet.cpp
  76. +8 −12 src/wallet.h
View
6 .gitignore
@@ -3,3 +3,9 @@ src/bitcoin
src/bitcoind
.*.swp
*.*~*
+*.bak
+*.rej
+*.orig
+*.o
+*.patch
+.bitcoin
View
26 README.md
@@ -1,16 +1,30 @@
+
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 mailing list:
+http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development
-If it is a more complicated or potentially controversial change, then the patch submitter will be asked to start a discussion (if they haven't already) on the development forums: http://www.bitcoin.org/smf/index.php?board=6.0
-The patch will be accepted if there is broad consensus that it is a good thing. Developers should expect to rework and resubmit patches if they don't match the project's coding conventions (see coding.txt) or are controversial.
+The patch will be accepted if there is broad consensus that it is a
+good thing. Developers should expect to rework and resubmit patches
+if they don't match the project's coding conventions (see coding.txt)
+or are controversial.
-The master branch is regularly built and tested (by who? need people willing to be quality assurance testers), and periodically pushed to the subversion repo to become the official, stable, released bitcoin.
+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@Bitcoin.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.
View
4 contrib/Bitcoin.app/Contents/Info.plist
@@ -17,11 +17,11 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
- <string>0.3.25</string>
+ <string>0.4.00</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>325</string>
+ <string>400</string>
<key>LSMinimumSystemVersion</key>
<string>10.5</string>
<key>CFBundleIconFile</key>
View
38 contrib/boost-win32.yml
@@ -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
78 contrib/gitian-win32.yml
@@ -9,25 +9,45 @@ packages:
- "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-2.9.1.tar.bz2"
-- "boost_1_43_0.tar.bz2"
+- "wxwidgets-win32-2.9.2-gitian.zip"
+- "boost-win32-1.47.0-gitian.zip"
- "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"
+- "db-4.8.30.NC.tar.gz"
+- "miniupnpc-1.6.tar.gz"
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
+ 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
@@ -36,33 +56,19 @@ script: |
make
cd ..
#
- tar xzf db-4.7.25.NC.tar.gz
- cd db-4.7.25.NC/build_unix
+ 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 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
+ 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 ..
- #
- 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
+ mv miniupnpc-1.6 miniupnpc
#
cd bitcoin
mkdir -p $OUTDIR/src
@@ -72,8 +78,10 @@ script: |
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
+ 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
View
38 contrib/gitian.yml
@@ -6,40 +6,42 @@ architectures:
- "i386"
- "amd64"
packages:
-- "libdb4.7++-dev"
+- "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.1.tar.bz2"
-- "miniupnpc-1.5.tar.gz"
-- "toplevel.h.diff"
-- "toplevel.cpp.diff"
+- "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.5.tar.gz
- cd miniupnpc-1.5
+ tar xzf miniupnpc-1.6.tar.gz
+ cd miniupnpc-1.6
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
+ 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
@@ -50,7 +52,7 @@ script: |
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
+ sed 's/$(DEBUGFLAGS)//' -i 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
View
6 contrib/pyminer/README
@@ -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
32 contrib/pyminer/example-config.cfg
@@ -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
+
+
View
252 contrib/pyminer/pyminer.py
@@ -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
4 contrib/wx-patches/README
@@ -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
86 contrib/wx-patches/toplevel.cpp.diff
@@ -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
9 contrib/wx-patches/toplevel.h.diff
@@ -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
40 contrib/wxwidgets-win32.yml
@@ -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
42 contrib/wxwidgets.yml
@@ -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
View
50 doc/README
@@ -1,4 +1,4 @@
-Bitcoin 0.3.25 BETA
+Bitcoin 0.4.0rc1 BETA
Copyright (c) 2009-2011 Bitcoin Developers
Distributed under the MIT/X11 software license, see the accompanying
@@ -36,7 +36,7 @@ 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
-password in a secure location and do not forget it.
+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
@@ -57,7 +57,7 @@ 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 you own security.
+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.
@@ -67,6 +67,50 @@ 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
2  doc/README_windows.txt
@@ -1,4 +1,4 @@
-Bitcoin 0.3.25 BETA
+Bitcoin 0.4.00rc1 BETA
Copyright (c) 2009-2011 Bitcoin Developers
Distributed under the MIT/X11 software license, see the accompanying
View
36 doc/build-msw.txt
@@ -27,11 +27,11 @@ Dependencies
Libraries you need to download separately and build:
default path download
-wxWidgets \wxwidgets-2.9.1-mgw http://www.wxwidgets.org/downloads/
+wxWidgets \wxwidgets-2.9.2-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
@@ -41,11 +41,11 @@ Boost MIT-like license
miniupnpc New (3-clause) BSD license
Versions used in this release:
-wxWidgets 2.9.1
+wxWidgets 2.9.2
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
@@ -57,7 +57,7 @@ classes that do the rote work of constructing all the UI elements.
wxWidgets
---------
DOS shell:
-cd \wxWidgets-2.9.1-mgw\build\msw
+cd \wxWidgets-2.9.2-mgw\build\msw
mingw32-make -f makefile.gcc
OpenSSL
@@ -73,30 +73,26 @@ 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
-------
View
18 doc/build-osx.txt
@@ -135,18 +135,18 @@ 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
+tar xvf ~/Downloads/miniupnpc-1.6.tar
+mv miniupnpc-1.6 miniupnpc-1.6-x86_64
+tar xvf ~/Downloads/miniupnpc-1.6.tar
+mv miniupnpc-1.6 miniupnpc-1.6-i386
# build x86_64 (64 bit intel) binary
-cd miniupnpc-1.5-x86_64
+cd miniupnpc-1.6-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
+cd miniupnpc-1.6-i386
export CFLAGS="-arch i386"
export LDFLAGS="-arch i386"
export PREFIX="/Users/macuser/bitcoin/deps"
@@ -154,7 +154,7 @@ 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
+lipo -arch i386 miniupnpc-1.6-i386/libminiupnpc.a -arch x86_64 miniupnpc-1.6-x86_64/libminiupnpc.a -o lib/libminiupnpc.a -create
Verify your binaries
@@ -175,8 +175,8 @@ Berkeley DB
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
+tar xvf ~/Downloads/db-4.8.30.tar
+cd db-4.8.30/build_unix
../dist/configure --prefix=/Users/macosuser/bitcoin/deps --enable-cxx && make && make install
View
24 doc/build-unix.txt
@@ -25,15 +25,14 @@ Dependencies
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
+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.
+Requires wxWidgets 2.9.1 or newer.
You need to download wxWidgets from http://www.wxwidgets.org/downloads/
and build it yourself. See the build instructions and configure parameters
@@ -55,10 +54,10 @@ miniupnpc New (3-clause) BSD license
Versions used in this release:
GCC 4.3.3
OpenSSL 0.9.8g
-wxWidgets 2.9.0
-Berkeley DB 4.7.25.NC
+wxWidgets 2.9.2
+Berkeley DB 4.8.30.NC
Boost 1.37
-miniupnpc 1.5
+miniupnpc 1.6
Notes
@@ -74,8 +73,8 @@ 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
+tar -xzvf wxWidgets-2.9.2.tar.gz
+cd wxWidgets-2.9.2
mkdir buildgtk
cd buildgtk
../configure --with-gtk --enable-debug --disable-shared --enable-monolithic --without-libpng --disable-svg
@@ -87,8 +86,8 @@ 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
View
58 doc/coding.txt
@@ -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
View
3  doc/release-process.txt
@@ -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
View
BIN  locale/cs/LC_MESSAGES/bitcoin.mo
Binary file not shown
View
1,312 locale/cs/LC_MESSAGES/bitcoin.po
@@ -5,8 +5,8 @@ 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"
+"POT-Creation-Date: 2011-08-16 15:51+0100\n"
+"PO-Revision-Date: 2011-08-16 16:03+0100\n"
"Last-Translator: xHire <xhire@mujmalysvet.cz>\n"
"Language-Team: \n"
"Language: cs\n"
@@ -17,114 +17,541 @@ msgstr ""
"X-Poedit-Basepath: .\n"
"X-Poedit-SearchPath-0: ../../..\n"
-#: ../../../src/net.cpp:1503
+#: ../../../src/uibase.cpp:25
+#: ../../../src/ui.cpp:2985
+msgid "E&xit"
+msgstr "&Konec"
+
+#: ../../../src/uibase.cpp:28
+msgid "&File"
+msgstr "&Soubor"
+
+#: ../../../src/uibase.cpp:32
+msgid "&Your Receiving Addresses..."
+msgstr "Tvá Bitcoinová &adresa..."
+
+#: ../../../src/uibase.cpp:35
+msgid "&Encrypt Wallet..."
+msgstr "&Zašifruj peněženku..."
+
+#: ../../../src/uibase.cpp:38
+msgid "&Change Wallet Encryption Passphrase..."
+msgstr "Změň &heslo pro šifrování peněženky..."
+
+#: ../../../src/uibase.cpp:42
+msgid "&Options..."
+msgstr "M&ožnosti"
+
+#: ../../../src/uibase.cpp:45
+msgid "&Settings"
+msgstr "Nas&tavení"
+
+#: ../../../src/uibase.cpp:49
+msgid "&About..."
+msgstr "&O programu"
+
+#: ../../../src/uibase.cpp:52
+msgid "&Help"
+msgstr "&Nápověda"
+
+#: ../../../src/uibase.cpp:61
+#: ../../../src/ui.cpp:2143
+#: ../../../src/ui.cpp:2148
+#: ../../../src/ui.cpp:2153
+#: ../../../src/ui.cpp:2202
+msgid "Send Coins"
+msgstr "Pošli mince"
+
+#: ../../../src/uibase.cpp:62
+msgid "Address Book"
+msgstr "Adresář"
+
+#: ../../../src/uibase.cpp:75
+msgid "Your Bitcoin Address:"
+msgstr "Tvá Bitcoinová adresa:"
+
+#: ../../../src/uibase.cpp:82
+msgid " &New... "
+msgstr " &Nová..."
+
+#: ../../../src/uibase.cpp:85
+#: ../../../src/uibase.cpp:790
+#: ../../../src/uibase.cpp:893
+msgid " &Copy to Clipboard "
+msgstr " &Kopírovat do schránky"
+
+#: ../../../src/uibase.cpp:99
+msgid "Balance:"
+msgstr "Stav účtu:"
+
+#: ../../../src/uibase.cpp:115
+msgid " All"
+msgstr " Vše"
+
+#: ../../../src/uibase.cpp:115
+msgid " Sent"
+msgstr " Odeslané"
+
+#: ../../../src/uibase.cpp:115
+msgid " Received"
+msgstr " Přijaté"
+
+#: ../../../src/uibase.cpp:115
+msgid " In Progress"
+msgstr " Pracuje se na tom"
+
+#: ../../../src/uibase.cpp:136
+msgid "All Transactions"
+msgstr "Všechny transakce"
+
+#: ../../../src/uibase.cpp:147
+msgid "Sent/Received"
+msgstr "Odeslané/Přijaté"
+
+#: ../../../src/uibase.cpp:158
+msgid "Sent"
+msgstr "Odeslané"
+
+#: ../../../src/uibase.cpp:169
+msgid "Received"
+msgstr "Přijaté"
+
+#: ../../../src/uibase.cpp:312
+#: ../../../src/uibase.cpp:453
+#: ../../../src/uibase.cpp:552
+#: ../../../src/uibase.cpp:732
+#: ../../../src/uibase.cpp:793
+#: ../../../src/uibase.cpp:902
+#: ../../../src/uibase.cpp:991
+msgid "OK"
+msgstr "&Budiž"
+
+#: ../../../src/uibase.cpp:355
+msgid "&Start Bitcoin on system startup"
+msgstr "&Spustit Bitcoin při startu systému"
+
+#: ../../../src/uibase.cpp:358
+msgid "&Minimize to the tray instead of the taskbar"
+msgstr "&Minimalizovávat do ikony v panelu"
+
+#: ../../../src/uibase.cpp:361
+msgid "Map port using &UPnP"
+msgstr "Namapovat port přes &UPnP"
+
+#: ../../../src/uibase.cpp:364
+msgid "M&inimize to the tray on close"
+msgstr "Zavřením &minimalizovat do ikony"
+
+#: ../../../src/uibase.cpp:370
+msgid "&Connect through socks4 proxy (requires restart to apply): "
+msgstr "&Připojit přes socks4 proxy (vyžaduje restart aplikace):"
+
+#: ../../../src/uibase.cpp:381
+msgid "Proxy &IP:"
+msgstr "&IP adresa proxy:"
+
+#: ../../../src/uibase.cpp:389
+msgid " &Port:"
+msgstr " &Port:"
+
+#: ../../../src/uibase.cpp:402
+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:409
+msgid "Pay transaction fee:"
+msgstr "Výše transakčního poplatku:"
+
+#: ../../../src/uibase.cpp:430
+msgid "// [don't translate] Test panel 2 for future expansion"
+msgstr ""
+
+#: ../../../src/uibase.cpp:434
+msgid "// [don't translate] Let's not start multiple pages until the first page is filled up"
+msgstr ""
+
+#: ../../../src/uibase.cpp:456
+#: ../../../src/uibase.cpp:678
+#: ../../../src/uibase.cpp:737
+#: ../../../src/uibase.cpp:796
+#: ../../../src/uibase.cpp:905
+#: ../../../src/uibase.cpp:994
+msgid "Cancel"
+msgstr "&Zrušit"
+
+#: ../../../src/uibase.cpp:459
+msgid "&Apply"
+msgstr "&Použít"
+
+#: ../../../src/uibase.cpp:518
+msgid "Bitcoin "
+msgstr "Bitcoin"
+
+#: ../../../src/uibase.cpp:524
+msgid "version"
+msgstr "verze"
+
+#: ../../../src/uibase.cpp:535
+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:591
+msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
+msgstr "Vlož Bitcoinovou adresu (např. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
+
+#: ../../../src/uibase.cpp:605
+msgid "Pay &To:"
+msgstr "&Komu:"
+
+#: ../../../src/uibase.cpp:620
+msgid "&Paste"
+msgstr "&Vložit"
+
+#: ../../../src/uibase.cpp:623
+msgid " Address &Book..."
+msgstr " &Adresář..."
+
+#: ../../../src/uibase.cpp:630
+msgid "&Amount:"
+msgstr "&Částka"
+
+#: ../../../src/uibase.cpp:640
+msgid "T&ransfer:"
+msgstr "&Převod:"
+
+#: ../../../src/uibase.cpp:646
+msgid " Standard"
+msgstr " Standard"
+
+#: ../../../src/uibase.cpp:673
+msgid "&Send"
+msgstr "&Poslat"
+
+#: ../../../src/uibase.cpp:721
+msgid ""
+"\n"
+"\n"
+"Connecting..."
+msgstr ""
+"\n"
+"\n"
+"Připojuji..."
+
+#: ../../../src/uibase.cpp:771
+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:784
+#: ../../../src/uibase.cpp:896
+msgid "&Edit..."
+msgstr "&Upravit..."
+
+#: ../../../src/uibase.cpp:787
+#: ../../../src/uibase.cpp:899
+msgid " &New Address... "
+msgstr " &Nová adresa..."
+
+#: ../../../src/uibase.cpp:847
+#: ../../../src/ui.cpp:2620
+msgid "Bitcoin Address"
+msgstr "Bitcoinová adresa"
+
+#: ../../../src/uibase.cpp:859
+msgid "Sending"
+msgstr "Cizí adresy (pro odesílání)"
+
+#: ../../../src/uibase.cpp:867
+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:880
+msgid "Receiving"
+msgstr "Tvoje adresy (pro příjem)"
+
+#: ../../../src/uibase.cpp:890
+msgid "&Delete"
+msgstr "&Smazat"
+
+#: ../../../src/rpc.cpp:2088
+#: ../../../src/rpc.cpp:2090
#, 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ěží."
+msgid "To use the %s option"
+msgstr "Pro použití volby %s"
+
+#: ../../../src/rpc.cpp:2092
+#, 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/ui.cpp:204
+#: ../../../src/rpc.cpp:2265
+#, 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:870
+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:904
+msgid "beta"
+msgstr "beta"
+
+#: ../../../src/wallet.cpp:1084
+msgid "Error: Wallet locked, unable to create transaction "
+msgstr "Chyba: Peněženka je zamčená, takže není možné vytvořit transakci"
+
+#: ../../../src/wallet.cpp:1092
+#, 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/wallet.cpp:1094
+msgid "Error: Transaction creation failed "
+msgstr "Chyba: Vytvoření transakce selhalo"
+
+#: ../../../src/wallet.cpp:1100
+#: ../../../src/ui.cpp:2176
+#: ../../../src/ui.cpp:2185
+#: ../../../src/ui.cpp:2336
+#: ../../../src/ui.cpp:2500
+msgid "Sending..."
+msgstr "Posílám..."
+
+#: ../../../src/wallet.cpp:1104
+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/wallet.cpp:1117
+msgid "Invalid amount"
+msgstr "Neplatná částka"
+
+#: ../../../src/wallet.cpp:1119
+#: ../../../src/ui.cpp:2403
+#: ../../../src/ui.cpp:2474
+msgid "Insufficient funds"
+msgstr "Nedostatek peněz"
+
+#: ../../../src/ui.cpp:217
#, 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
+#: ../../../src/ui.cpp:261
+#: ../../../src/ui.cpp:1247
+msgid "Enter the current passphrase to the wallet."
+msgstr "Zadej platné heslo pro peněženku."
+
+#: ../../../src/ui.cpp:262
+#: ../../../src/ui.cpp:1183
+#: ../../../src/ui.cpp:1200
+#: ../../../src/ui.cpp:1248
+#: ../../../src/ui.cpp:1274
+#: ../../../src/ui.cpp:1294
+msgid "Passphrase"
+msgstr "Heslo"
+
+#: ../../../src/ui.cpp:268
+msgid "Please supply the current wallet decryption passphrase."
+msgstr "Zadej platné heslo pro dešifrování peněženky."
+
+#: ../../../src/ui.cpp:276
+#: ../../../src/ui.cpp:1259
+#: ../../../src/ui.cpp:1316
+msgid "The passphrase entered for the wallet decryption was incorrect."
+msgstr "Nezadal jsi správné heslo pro dešifrování peněženky."
+
+#: ../../../src/ui.cpp:353
msgid "Status"
msgstr "Stav"
-#: ../../../src/ui.cpp:304
+#: ../../../src/ui.cpp:354
msgid "Date"
msgstr "Datum"
-#: ../../../src/ui.cpp:305
+#: ../../../src/ui.cpp:355
msgid "Description"
msgstr "Popis"
-#: ../../../src/ui.cpp:306
+#: ../../../src/ui.cpp:356
msgid "Debit"
msgstr "Výdaje"
-#: ../../../src/ui.cpp:307
+#: ../../../src/ui.cpp:357
msgid "Credit"
msgstr "Příjmy"
-#: ../../../src/ui.cpp:513
+#: ../../../src/ui.cpp:568
#, c-format
msgid "Open for %d blocks"
msgstr "Otevřeno pro %d bloků"
-#: ../../../src/ui.cpp:515
+#: ../../../src/ui.cpp:570
#, c-format
msgid "Open until %s"
msgstr "Otřevřeno dokud %s"
-#: ../../../src/ui.cpp:521
+#: ../../../src/ui.cpp:576
#, c-format
msgid "%d/offline?"
msgstr "%d/offline?"
-#: ../../../src/ui.cpp:523
+#: ../../../src/ui.cpp:578
#, c-format
msgid "%d/unconfirmed"
msgstr "%d/nepotvrzeno"
-#: ../../../src/ui.cpp:525
+#: ../../../src/ui.cpp:580
#, c-format
msgid "%d confirmations"
msgstr "%d potvrzení"
-#: ../../../src/ui.cpp:610
+#: ../../../src/ui.cpp:665
msgid "Generated"
msgstr "Vygenerováno"
-#: ../../../src/ui.cpp:618
+#: ../../../src/ui.cpp:673
#, c-format
msgid "Generated (%s matures in %d more blocks)"
msgstr "Vygenerováno (%s dozraje po %d blocích)"
-#: ../../../src/ui.cpp:622
+#: ../../../src/ui.cpp:677
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
+#: ../../../src/ui.cpp:681
msgid "Generated (not accepted)"
msgstr "Vygenerováno (neakceptováno)"
-#: ../../../src/ui.cpp:636
+#: ../../../src/ui.cpp:691
msgid "From: "
msgstr "Od: "
-#: ../../../src/ui.cpp:660
+#: ../../../src/ui.cpp:715
msgid "Received with: "
msgstr "Přijato adresou: "
-#: ../../../src/ui.cpp:706
+#: ../../../src/ui.cpp:760
msgid "Payment to yourself"
msgstr "Platba pro sebe sama"
-#: ../../../src/ui.cpp:740
+#: ../../../src/ui.cpp:794
msgid "To: "
msgstr "Pro: "
-#: ../../../src/ui.cpp:1055
+#: ../../../src/ui.cpp:1109
msgid " Generating"
msgstr " Generuji"
-#: ../../../src/ui.cpp:1057
+#: ../../../src/ui.cpp:1111
msgid "(not connected)"
msgstr "(nepřipojen)"
-#: ../../../src/ui.cpp:1060
+#: ../../../src/ui.cpp:1114
#, c-format
msgid " %d connections %d blocks %d transactions"
msgstr " %d spojení %d bloků %d transakcí"
-#: ../../../src/ui.cpp:1165
-#: ../../../src/ui.cpp:2529
+#: ../../../src/ui.cpp:1171
+msgid "Wallet already encrypted."
+msgstr "Peněženka je už zašifrovaná."
+
+#: ../../../src/ui.cpp:1182
+msgid ""
+"Enter the new passphrase to the wallet.\n"
+"Please use a passphrase of 10 or more random characters, or eight or more words."
+msgstr ""
+"Zadej nové heslo pro peněženku.\n"
+"Použij alespoň 10 náhodných znaků nebo alespoň 8 slov."
+
+#: ../../../src/ui.cpp:1189
+#: ../../../src/ui.cpp:1282
+msgid "Error: The supplied passphrase was too short."
+msgstr "Chyba: Zadané heslo je příliš krátké."
+
+#: ../../../src/ui.cpp:1193
+msgid ""
+"WARNING: If you encrypt your wallet and lose your passphrase, you will LOSE ALL OF YOUR BITCOINS!\n"
+"Are you sure you wish to encrypt your wallet?"
+msgstr ""
+"VAROVÁNÍ: Pokud zašifruješ peněženku a ztratíš či zapomeneš heslo, PŘIJDEŠ O VŠECHNY BITCOINY!\n"
+"Jsi si jistý, že chceš peněženku zašifrovat?"
+
+#: ../../../src/ui.cpp:1199
+msgid "Please re-enter your new wallet passphrase."
+msgstr "Zadej ještě jednou nové heslo pro peněženku."
+
+#: ../../../src/ui.cpp:1208
+#: ../../../src/ui.cpp:1304
+msgid "Error: the supplied passphrases didn't match."
+msgstr "Chyba: zadaná hesla nejsou shodná."
+
+#: ../../../src/ui.cpp:1218
+msgid "Wallet encryption failed."
+msgstr "Zašifrování peněženky selhalo."
+
+#: ../../../src/ui.cpp:1225
+msgid ""
+"Wallet Encrypted.\n"
+"Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer."
+msgstr ""
+"Peněženka je zašifrována.\n"
+"Pamatuj, že pouhé šifrování peněženky nemůže plně ochránit tvé bitcoiny před krádeží malwarem, kterým se může počítač nakazit."
+
+#: ../../../src/ui.cpp:1236
+msgid "Wallet is unencrypted, please encrypt it first."
+msgstr "Peněženka není zašifrovaná, musíš ji prvně zašifrovat."
+
+#: ../../../src/ui.cpp:1273
+msgid "Enter the new passphrase for the wallet."
+msgstr "Zadej nové heslo pro peněženku."
+
+#: ../../../src/ui.cpp:1293
+msgid "Re-enter the new passphrase for the wallet."
+msgstr "Zadej ještě jednou nové heslo pro peněženku."
+
+#: ../../../src/ui.cpp:1325
+msgid "Wallet Passphrase Changed."
+msgstr "Heslo peněženky bylo změněno."
+
+#: ../../../src/ui.cpp:1382
+#: ../../../src/ui.cpp:2815
msgid "New Receiving Address"
msgstr "Nová Bitcoinová adresa"
-#: ../../../src/ui.cpp:1166
-#: ../../../src/ui.cpp:2530
+#: ../../../src/ui.cpp:1383
+#: ../../../src/ui.cpp:2816
msgid ""
"You should use a new address for each payment you receive.\n"
"\n"
@@ -134,769 +561,431 @@ msgstr ""
"\n"
"Označení"
-#: ../../../src/ui.cpp:1235
+#: ../../../src/ui.cpp:1467
msgid "<b>Status:</b> "
msgstr "<b>Stav:</b> "
-#: ../../../src/ui.cpp:1240
+#: ../../../src/ui.cpp:1472
msgid ", has not been successfully broadcast yet"
msgstr ", ještě nebylo rozesláno"
-#: ../../../src/ui.cpp:1242
+#: ../../../src/ui.cpp:1474
#, c-format
msgid ", broadcast through %d node"
msgstr ", rozesláno přes %d uzel"
-#: ../../../src/ui.cpp:1244
+#: ../../../src/ui.cpp:1476
#, c-format
msgid ", broadcast through %d nodes"
msgstr ", rozesláno přes %d uzlů"
-#: ../../../src/ui.cpp:1248
+#: ../../../src/ui.cpp:1480
msgid "<b>Date:</b> "
msgstr "<b>Datum:</b> "
-#: ../../../src/ui.cpp:1256
+#: ../../../src/ui.cpp:1488
msgid "<b>Source:</b> Generated<br>"
msgstr "<b>Zdroj:</b> Vygenerováno<br>"
-#: ../../../src/ui.cpp:1262
-#: ../../../src/ui.cpp:1280
+#: ../../../src/ui.cpp:1494
+#: ../../../src/ui.cpp:1511
msgid "<b>From:</b> "
msgstr "<b>Od:</b> "
-#: ../../../src/ui.cpp:1280
+#: ../../../src/ui.cpp:1511
msgid "unknown"
msgstr "neznámo"
-#: ../../../src/ui.cpp:1281
-#: ../../../src/ui.cpp:1305
-#: ../../../src/ui.cpp:1364
+#: ../../../src/ui.cpp:1512
+#: ../../../src/ui.cpp:1536
+#: ../../../src/ui.cpp:1595
msgid "<b>To:</b> "
msgstr "<b>Pro:</b> "
-#: ../../../src/ui.cpp:1284
+#: ../../../src/ui.cpp:1515
msgid " (yours, label: "
msgstr " (tvoje, označení: "
-#: ../../../src/ui.cpp:1286
+#: ../../../src/ui.cpp:1517
msgid " (yours)"
msgstr " (tvoje)"
-#: ../../../src/ui.cpp:1323
-#: ../../../src/ui.cpp:1335
-#: ../../../src/ui.cpp:1381
-#: ../../../src/ui.cpp:1398
+#: ../../../src/ui.cpp:1554
+#: ../../../src/ui.cpp:1566
+#: ../../../src/ui.cpp:1612
+#: ../../../src/ui.cpp:1629
msgid "<b>Credit:</b> "
msgstr "<b>Příjem:</b> "
-#: ../../../src/ui.cpp:1325
+#: ../../../src/ui.cpp:1556
#, c-format
msgid "(%s matures in %d more blocks)"
msgstr "(%s dozraje po %d blocích)"
-#: ../../../src/ui.cpp:1327
+#: ../../../src/ui.cpp:1558
msgid "(not accepted)"
msgstr "(neakceptováno)"
-#: ../../../src/ui.cpp:1372
-#: ../../../src/ui.cpp:1380
-#: ../../../src/ui.cpp:1395
+#: ../../../src/ui.cpp:1603
+#: ../../../src/ui.cpp:1611
+#: ../../../src/ui.cpp:1626
msgid "<b>Debit:</b> "
msgstr "<b>Výdaj:</b> "
-#: ../../../src/ui.cpp:1386
+#: ../../../src/ui.cpp:1617
msgid "<b>Transaction fee:</b> "
msgstr "<b>Transakční poplatek:</b> "
-#: ../../../src/ui.cpp:1402
+#: ../../../src/ui.cpp:1633
msgid "<b>Net amount:</b> "
msgstr "<b>Čistá částka:</b> "
-#: ../../../src/ui.cpp:1409
+#: ../../../src/ui.cpp:1640
msgid "Message:"
msgstr "Zpráva:"
-#: ../../../src/ui.cpp:1411
+#: ../../../src/ui.cpp:1642
msgid "Comment:"
msgstr "Komentář:"
-#: ../../../src/ui.cpp:1414
+#: ../../../src/ui.cpp:1645
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
+#: ../../../src/ui.cpp:1825
msgid "Cannot write autostart/bitcoin.desktop file"
msgstr "Nemohu zapisovat do souboru autostart/bitcoin.desktop"
-#: ../../../src/ui.cpp:1630
+#: ../../../src/ui.cpp:1861
msgid "Main"
msgstr "Hlavní"
-#: ../../../src/ui.cpp:1638
+#: ../../../src/ui.cpp:1871
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ář"
+msgstr "&Spustit Bitcoin při startu okenního systému"
-#: ../../../src/uibase.cpp:69
-msgid "Your Bitcoin Address:"
-msgstr "Tvá Bitcoinová adresa:"
+#: ../../../src/ui.cpp:1878
+msgid "&Minimize on close"
+msgstr "&Zavřením pouze skrýt"
-#: ../../../src/uibase.cpp:76
-msgid " &New... "
-msgstr " &Nová..."
+#: ../../../src/ui.cpp:2020
+#, c-format
+msgid "version %s"
+msgstr "verze %s"
-#: ../../../src/uibase.cpp:79
-#: ../../../src/uibase.cpp:780
-#: ../../../src/uibase.cpp:883
-msgid " &Copy to Clipboard "
-msgstr " &Kopírovat do schránky"
+#: ../../../src/ui.cpp:2143
+msgid "Error in amount "
+msgstr "Chyba v částce"
-#: ../../../src/uibase.cpp:93
-msgid "Balance:"
-msgstr "Stav účtu:"
+#: ../../../src/ui.cpp:2148
+msgid "Amount exceeds your balance "
+msgstr "Částka překračuje stav účtu"
-#: ../../../src/uibase.cpp:109
-msgid " All"
-msgstr " Vše"
+#: ../../../src/ui.cpp:2153
+msgid "Total exceeds your balance when the "
+msgstr "Celková částka přesahuje stav tvého účtu, když "
-#: ../../../src/uibase.cpp:109
-msgid " Sent"
-msgstr " Odeslané"
+#: ../../../src/ui.cpp:2153
+msgid " transaction fee is included "
+msgstr " transakční poplatek je zahrnut"
-#: ../../../src/uibase.cpp:109
-msgid " Received"
-msgstr " Přijaté"
+#: ../../../src/ui.cpp:2176
+msgid "Payment sent "
+msgstr "Platba odeslána"
-#: ../../../src/uibase.cpp:109
-msgid " In Progress"
-msgstr " Pracuje se na tom"
+#: ../../../src/ui.cpp:2202
+msgid "Invalid address "
+msgstr "Neplatná adresa"
-#: ../../../src/uibase.cpp:130
-msgid "All Transactions"
-msgstr "Všechny transakce"
+#: ../../../src/ui.cpp:2257
+#, c-format
+msgid "Sending %s to %s"
+msgstr "Posílám %s %s"
-#: ../../../src/uibase.cpp:141
-msg