Claim name returned is strange #172
10
configure.ac
|
@ -1,7 +1,7 @@
|
|||
dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N)
|
||||
AC_PREREQ([2.60])
|
||||
define(_CLIENT_VERSION_MAJOR, 0)
|
||||
define(_CLIENT_VERSION_MINOR, 9)
|
||||
define(_CLIENT_VERSION_MINOR, 10)
|
||||
define(_CLIENT_VERSION_REVISION, 99)
|
||||
define(_CLIENT_VERSION_BUILD, 0)
|
||||
define(_CLIENT_VERSION_IS_RELEASE, false)
|
||||
|
@ -244,8 +244,12 @@ case $host in
|
|||
AC_CHECK_PROG([PORT],port, port)
|
||||
if test x$PORT = xport; then
|
||||
dnl add default macports paths
|
||||
CPPFLAGS="$CPPFLAGS -isystem /opt/local/include -I/opt/local/include/db48"
|
||||
LIBS="$LIBS -L/opt/local/lib -L/opt/local/lib/db48"
|
||||
CPPFLAGS="$CPPFLAGS -isystem /opt/local/include"
|
||||
LIBS="$LIBS -L/opt/local/lib"
|
||||
if test -d /opt/local/include/db48; then
|
||||
CPPFLAGS="$CPPFLAGS -I/opt/local/include/db48"
|
||||
LIBS="$LIBS -L/opt/local/lib/db48"
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_CHECK_PROG([BREW],brew, brew)
|
||||
|
|
|
@ -136,6 +136,9 @@ else
|
|||
echo "Dropping you on a shell so you can try building/testing the merged source." >&2
|
||||
echo "Run 'git diff HEAD~' to show the changes being merged." >&2
|
||||
echo "Type 'exit' when done." >&2
|
||||
if [[ -f /etc/debian_version ]]; then # Show pull number in prompt on Debian default prompt
|
||||
export debian_chroot="$PULL"
|
||||
fi
|
||||
bash -i
|
||||
read -p "Press 'm' to accept the merge. " -n 1 -r >&2
|
||||
echo
|
||||
|
|
|
@ -148,7 +148,7 @@ class BlockDataCopier:
|
|||
outFname = self.settings['output_file']
|
||||
else:
|
||||
outFname = "%s/blk%05d.dat" % (self.settings['output'], outFn)
|
||||
print("Output file" + outFname)
|
||||
print("Output file " + outFname)
|
||||
self.outF = open(outFname, "wb")
|
||||
|
||||
self.outF.write(inhdr)
|
||||
|
@ -189,7 +189,7 @@ class BlockDataCopier:
|
|||
while self.blkCountOut < len(self.blkindex):
|
||||
if not self.inF:
|
||||
fname = self.inFileName(self.inFn)
|
||||
print("Input file" + fname)
|
||||
print("Input file " + fname)
|
||||
try:
|
||||
self.inF = open(fname, "rb")
|
||||
except IOError:
|
||||
|
@ -205,7 +205,7 @@ class BlockDataCopier:
|
|||
|
||||
inMagic = inhdr[:4]
|
||||
if (inMagic != self.settings['netmagic']):
|
||||
print("Invalid magic:" + inMagic)
|
||||
print("Invalid magic: " + inMagic)
|
||||
return
|
||||
inLenLE = inhdr[4:]
|
||||
su = struct.unpack("<I", inLenLE)
|
||||
|
@ -292,7 +292,7 @@ if __name__ == '__main__':
|
|||
blkmap = mkblockmap(blkindex)
|
||||
|
||||
if not "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f" in blkmap:
|
||||
print("not found")
|
||||
print("Genesis block not found in hashlist")
|
||||
else:
|
||||
BlockDataCopier(settings, blkindex, blkmap).run()
|
||||
|
||||
|
|
|
@ -31,6 +31,7 @@ endif
|
|||
|
||||
base_build_dir=$(BASEDIR)/work/build
|
||||
base_staging_dir=$(BASEDIR)/work/staging
|
||||
base_download_dir=$(BASEDIR)/work/download
|
||||
canonical_host:=$(shell ./config.sub $(HOST))
|
||||
build:=$(shell ./config.sub $(BUILD))
|
||||
|
||||
|
@ -122,5 +123,12 @@ $(host_prefix)/share/config.site : config.site.in $(host_prefix)/.stamp_$(final_
|
|||
$(AT)touch $@
|
||||
|
||||
install: $(host_prefix)/share/config.site
|
||||
download: $(all_sources)
|
||||
.PHONY: install cached
|
||||
download-one: $(all_sources)
|
||||
download-osx:
|
||||
@$(MAKE) -s HOST=x86_64-apple-darwin11 download-one
|
||||
download-linux:
|
||||
@$(MAKE) -s HOST=x86_64-unknown-linux-gnu download-one
|
||||
download-win:
|
||||
@$(MAKE) -s HOST=x86_64-w64-mingw32 download-one
|
||||
download: download-osx download-linux download-win
|
||||
.PHONY: install cached download-one download-osx download-linux download-win download
|
||||
|
|
|
@ -29,4 +29,7 @@ If some packages are not built, for example 'make NO_WALLET=1', the appropriate
|
|||
options will be passed to bitcoin's configure. In this case, --disable-wallet.
|
||||
|
||||
Additional targets:
|
||||
download: run 'make download' to fetch sources without building them
|
||||
download: run 'make download' to fetch all sources without building them
|
||||
download-osx: run 'make download-osx' to fetch all sources needed for osx builds
|
||||
download-win: run 'make download-win' to fetch all sources needed for win builds
|
||||
download-linux: run 'make download-linux' to fetch all sources needed for linux builds
|
||||
|
|
|
@ -20,18 +20,19 @@ $(sort $(foreach dep,$(2),$(2) $(call int_get_all_dependencies,$(1),$($(dep)_dep
|
|||
endef
|
||||
|
||||
define fetch_file
|
||||
(test -f $(SOURCES_PATH)/$(4) || \
|
||||
( mkdir -p $$($(1)_extract_dir) && \
|
||||
( $(build_DOWNLOAD) "$$($(1)_extract_dir)/$(4).temp" "$(2)/$(3)" || \
|
||||
$(build_DOWNLOAD) "$$($(1)_extract_dir)/$(4).temp" "$(FALLBACK_DOWNLOAD_PATH)/$(3)" ) && \
|
||||
echo "$(5) $$($(1)_extract_dir)/$(4).temp" > $$($(1)_extract_dir)/.$(4).hash && \
|
||||
$(build_SHA256SUM) -c $$($(1)_extract_dir)/.$(4).hash && \
|
||||
mv $$($(1)_extract_dir)/$(4).temp $(SOURCES_PATH)/$(4) ))
|
||||
(test -f $$($(1)_source_dir)/$(4) || \
|
||||
( mkdir -p $$($(1)_download_dir) && echo Fetching $(1)... && \
|
||||
( $(build_DOWNLOAD) "$$($(1)_download_dir)/$(4).temp" "$(2)/$(3)" || \
|
||||
$(build_DOWNLOAD) "$$($(1)_download_dir)/$(4).temp" "$(FALLBACK_DOWNLOAD_PATH)/$(3)" ) && \
|
||||
echo "$(5) $$($(1)_download_dir)/$(4).temp" > $$($(1)_download_dir)/.$(4).hash && \
|
||||
$(build_SHA256SUM) -c $$($(1)_download_dir)/.$(4).hash && \
|
||||
mv $$($(1)_download_dir)/$(4).temp $$($(1)_source_dir)/$(4) && \
|
||||
rm -rf $$($(1)_download_dir) ))
|
||||
endef
|
||||
|
||||
define int_get_build_recipe_hash
|
||||
$(eval $(1)_all_file_checksums:=$(shell $(build_SHA256SUM) $(meta_depends) packages/$(1).mk $(addprefix $(PATCHES_PATH)/$(1)/,$($(1)_patches))))
|
||||
$(eval $(1)_recipe_hash:=$(shell echo -n "$($(1)_all_file_checksums)" | $(build_SHA256SUM)))
|
||||
$(eval $(1)_recipe_hash:=$(shell echo -n "$($(1)_all_file_checksums)" | cut -d" " -f1 | $(build_SHA256SUM)))
|
||||
endef
|
||||
|
||||
define int_get_build_id
|
||||
|
@ -45,17 +46,19 @@ final_build_id_long+=$($(package)_build_id_long)
|
|||
#compute package-specific paths
|
||||
$(1)_build_subdir?=.
|
||||
$(1)_download_file?=$($(1)_file_name)
|
||||
$(1)_source:=$(SOURCES_PATH)/$($(1)_file_name)
|
||||
$(1)_source_dir:=$(SOURCES_PATH)
|
||||
$(1)_source:=$$($(1)_source_dir)/$($(1)_file_name)
|
||||
$(1)_staging_dir=$(base_staging_dir)/$(host)/$(1)/$($(1)_version)-$($(1)_build_id)
|
||||
$(1)_staging_prefix_dir:=$$($(1)_staging_dir)$($($(1)_type)_prefix)
|
||||
$(1)_extract_dir:=$(base_build_dir)/$(host)/$(1)/$($(1)_version)-$($(1)_build_id)
|
||||
$(1)_download_dir:=$(base_download_dir)/$(1)-$($(1)_version)
|
||||
$(1)_build_dir:=$$($(1)_extract_dir)/$$($(1)_build_subdir)
|
||||
$(1)_patch_dir:=$(base_build_dir)/$(host)/$(1)/$($(1)_version)-$($(1)_build_id)/.patches-$($(1)_build_id)
|
||||
$(1)_prefixbin:=$($($(1)_type)_prefix)/bin/
|
||||
$(1)_cached:=$(BASE_CACHE)/$(host)/$(1)/$(1)-$($(1)_version)-$($(1)_build_id).tar.gz
|
||||
|
||||
#stamps
|
||||
$(1)_fetched=$$($(1)_extract_dir)/.stamp_fetched
|
||||
$(1)_fetched=$$($(1)_source_dir)/download-stamps/.stamp_fetched-$(1)-$($(1)_file_name)
|
||||
$(1)_extracted=$$($(1)_extract_dir)/.stamp_extracted
|
||||
$(1)_preprocessed=$$($(1)_extract_dir)/.stamp_preprocessed
|
||||
$(1)_cleaned=$$($(1)_extract_dir)/.stamp_cleaned
|
||||
|
@ -150,7 +153,6 @@ endef
|
|||
|
||||
define int_add_cmds
|
||||
$($(1)_fetched):
|
||||
$(AT)echo Fetching $(1)...
|
||||
$(AT)mkdir -p $$(@D) $(SOURCES_PATH)
|
||||
$(AT)cd $$(@D); $(call $(1)_fetch_cmds,$(1))
|
||||
$(AT)touch $$@
|
||||
|
|
|
@ -39,11 +39,11 @@ $(package)_ldflags+=-m32 -Wl,-rpath=\\$$$$$$$$\$$$$$$$$ORIGIN/../lib
|
|||
$(package)_ldflags+=-L$$(native_cctools_extract_dir)/clang+llvm-3.2-x86-linux-ubuntu-12.04/lib
|
||||
endef
|
||||
define $(package)_extract_cmds
|
||||
tar --strip-components=1 -xf $(SOURCES_PATH)/$($(package)_toolchain4_file_name) && \
|
||||
tar --strip-components=1 -xf $($(package)_source_dir)/$($(package)_toolchain4_file_name) && \
|
||||
ln -sf $($(package)_source) cctools2odcctools/$($(package)_file_name) && \
|
||||
ln -sf $(SOURCES_PATH)/$($(package)_ld64_file_name) cctools2odcctools/$($(package)_ld64_file_name) && \
|
||||
ln -sf $(SOURCES_PATH)/$($(package)_dyld_file_name) cctools2odcctools/$($(package)_dyld_file_name) && \
|
||||
tar xf $(SOURCES_PATH)/$($(package)_clang_file_name) && \
|
||||
ln -sf $($(package)_source_dir)/$($(package)_ld64_file_name) cctools2odcctools/$($(package)_ld64_file_name) && \
|
||||
ln -sf $($(package)_source_dir)/$($(package)_dyld_file_name) cctools2odcctools/$($(package)_dyld_file_name) && \
|
||||
tar xf $($(package)_source_dir)/$($(package)_clang_file_name) && \
|
||||
mkdir -p $(SDK_PATH) sdks &&\
|
||||
cd sdks; ln -sf $(OSX_SDK) MacOSX$(OSX_SDK_VERSION).sdk
|
||||
endef
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package=native_cdrkit
|
||||
$(package)_version=1.1.11
|
||||
$(package)_download_path=http://distro.ibiblio.org/fatdog/source/c
|
||||
$(package)_download_path=http://distro.ibiblio.org/fatdog/source/600/c
|
||||
$(package)_file_name=cdrkit-$($(package)_version).tar.bz2
|
||||
$(package)_sha256_hash=b50d64c214a65b1a79afe3a964c691931a4233e2ba605d793eb85d0ac3652564
|
||||
$(package)_patches=cdrkit-deterministic.patch
|
||||
|
|
|
@ -17,5 +17,5 @@ endef
|
|||
|
||||
define $(package)_stage_cmds
|
||||
mkdir -p $($(package)_staging_prefix_dir)/share/$($(package)_install_dirname) && \
|
||||
mv $(SOURCES_PATH)/$($(package)_file_name) $($(package)_staging_prefix_dir)/share/$($(package)_install_dirname)/$($(package)_install_filename)
|
||||
cp $($(package)_source) $($(package)_staging_prefix_dir)/share/$($(package)_install_dirname)/$($(package)_install_filename)
|
||||
endef
|
||||
|
|
|
@ -34,7 +34,7 @@ PROJECT_NAME = Bitcoin
|
|||
# This could be handy for archiving the generated documentation or
|
||||
# if some version control system is used.
|
||||
|
||||
PROJECT_NUMBER = 0.9.99
|
||||
PROJECT_NUMBER = 0.10.99
|
||||
|
||||
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
||||
# for a project that appears at the top of each page and should give viewer
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Bitcoin 0.9.99 BETA
|
||||
Bitcoin 0.10.99 BETA
|
||||
=====================
|
||||
|
||||
Copyright (c) 2009-2014 Bitcoin Developers
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Bitcoin 0.9.99 BETA
|
||||
Bitcoin 0.10.99 BETA
|
||||
|
||||
Copyright (c) 2009-2014 Bitcoin Core Developers
|
||||
|
||||
|
|
|
@ -11,12 +11,15 @@ Given a transaction hash,
|
|||
Returns a transaction, in binary, hex-encoded binary or JSON formats.
|
||||
|
||||
`GET /rest/block/BLOCK-HASH.{bin|hex|json}`
|
||||
`GET /rest/block/notxdetails/BLOCK-HASH.{bin|hex|json}`
|
||||
|
||||
Given a block hash,
|
||||
Returns a block, in binary, hex-encoded binary or JSON formats.
|
||||
|
||||
The HTTP request and response are both handled entirely in-memory, thus making maximum memory usage at least 2.66MB (1 MB max block, plus hex encoding) per request.
|
||||
|
||||
With the /notxdetails/ option JSON response will only contain the transaction hash instead of the complete transaction details. The option only affects the JSON response.
|
||||
|
||||
For full TX query capability, one must enable the transaction index via "txindex=1" command line / configuration option.
|
||||
|
||||
Risks
|
||||
|
|
|
@ -6,98 +6,50 @@ The following is a list of assets used in the bitcoin source and their proper at
|
|||
* License: MIT
|
||||
|
||||
### Assets Used
|
||||
src/qt/res/icons/clock*.png, src/qt/res/icons/tx*.png,
|
||||
src/qt/res/src/clock_green.svg, src/qt/res/src/clock1.svg,
|
||||
src/qt/res/src/clock2.svg, src/qt/res/src/clock3.svg,
|
||||
src/qt/res/src/clock4.svg, src/qt/res/src/clock5.svg,
|
||||
src/qt/res/src/inout.svg, src/qt/res/src/questionmark.svg
|
||||
src/qt/res/icons/watch*.png, src/qt/res/icons/tx_in.png,
|
||||
src/qt/res/icons/tx_inout.png,
|
||||
|
||||
[David Vignoni](http://www.icon-king.com)
|
||||
[Typicons/Stephen Hutchings](http://typicons.com)
|
||||
-----------------------
|
||||
|
||||
### Info
|
||||
* Icon Pack: NUVOLA ICON THEME for KDE 3.x
|
||||
* Designer: David Vignoni (david@icon-king.com)
|
||||
* License: LGPL
|
||||
* Site: [http://www.icon-king.com/projects/nuvola](http://www.icon-king.com/projects/nuvola)
|
||||
* Icon Pack: Typicons (http://typicons.com)
|
||||
* Designer: Stephen Hutchings (and more)
|
||||
* License: CC BY-SA
|
||||
* Site: [https://github.com/stephenhutchings/typicons.font](https://github.com/stephenhutchings/typicons.font)
|
||||
|
||||
### Assets Used
|
||||
src/qt/res/icons/address-book.png, src/qt/res/icons/export.png,
|
||||
src/qt/res/icons/history.png, src/qt/res/icons/key.png,
|
||||
src/qt/res/icons/lock_*.png, src/qt/res/icons/overview.png,
|
||||
src/qt/res/icons/receive.png, src/qt/res/icons/send.png,
|
||||
src/qt/res/icons/synced.png, src/qt/res/icons/filesave.png
|
||||
|
||||
schollidesign
|
||||
-----------------------
|
||||
|
||||
### Info
|
||||
* Icon Pack: Human-O2
|
||||
* Designer: schollidesign
|
||||
* License: GNU/GPL
|
||||
* Site: [http://findicons.com/icon/93743/blocks_gnome_netstatus_0](http://findicons.com/icon/93743/blocks_gnome_netstatus_0)
|
||||
|
||||
### Assets Used
|
||||
src/qt/res/icons/connect*.png
|
||||
|
||||
md2k7
|
||||
-----------------------
|
||||
|
||||
### Info
|
||||
* Designer: md2k7
|
||||
* License: You are free to do with these icons as you wish, including selling, copying, modifying etc.
|
||||
* License: MIT
|
||||
* Site: [https://bitcointalk.org/index.php?topic=15276.0](https://bitcointalk.org/index.php?topic=15276.0)
|
||||
|
||||
### Assets Used
|
||||
src/qt/res/icons/transaction*.png
|
||||
|
||||
[Everaldo.com](http://www.everaldo.com)
|
||||
-----------------------
|
||||
|
||||
### Info
|
||||
* Icon Pack: Crystal SVG
|
||||
* Designer: [http://www.everaldo.com](http://www.everaldo.com)
|
||||
* License: LGPL
|
||||
|
||||
### Assets Used
|
||||
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)
|
||||
|
||||
Everaldo (Everaldo Coelho)
|
||||
-----------------------
|
||||
|
||||
### Info
|
||||
* Icon Pack: Kids
|
||||
* Designer: Everaldo (Everaldo Coelho)
|
||||
* License: GNU/GPL
|
||||
* Site: [http://findicons.com/icon/17102/reload?id=17102](http://findicons.com/icon/17102/reload?id=17102)
|
||||
|
||||
### Assets Used
|
||||
scripts/img/reload.xcf (modified), src/qt/res/movies/*.png
|
||||
|
||||
[Vignoni David](http://techbase.kde.org/Projects/Oxygen)
|
||||
-----------------------
|
||||
|
||||
### Info
|
||||
* Designer: Vignoni David
|
||||
* License: Oxygen icon theme is dual licensed. You may copy it under the Creative Common Attribution-ShareAlike 3.0 License or the GNU Library General Public License.
|
||||
* Site: [http://techbase.kde.org/Projects/Oxygen](http://techbase.kde.org/Projects/Oxygen)
|
||||
|
||||
### Assets Used
|
||||
src/qt/res/icons/debugwindow.png
|
||||
src/qt/res/icons/add.png, src/qt/res/icons/address-book.png,
|
||||
src/qt/res/icons/configure.png, src/qt/res/icons/connect4.png,
|
||||
src/qt/res/icons/debugwindow.png, src/qt/res/icons/edit.png,
|
||||
src/qt/res/icons/exitcopy.png, src/qt/res/icons/editpaste.png,
|
||||
src/qt/res/icons/export.png, src/qt/res/icons/eye.png,
|
||||
src/qt/res/icons/filesave.png, src/qt/res/icons/history.png,
|
||||
src/qt/res/icons/info.png, src/qt/res/icons/key.png,
|
||||
src/qt/res/icons/lock_*.png, src/qt/res/icons/open.png,
|
||||
src/qt/res/icons/overview.png, src/qt/res/icons/quit.png,
|
||||
src/qt/res/icons/receive.png, src/qt/res/icons/remove.png,
|
||||
src/qt/res/icons/send.png, src/qt/res/icons/synced.png,
|
||||
src/qt/res/icons/transaction*.png, src/qt/res/icons/tx_input.png,
|
||||
|
||||
Jonas Schnelli
|
||||
-----------------------
|
||||
|
||||
### Info
|
||||
* Designer: Jonas Schnelli (based on the original bitcoin logo from Bitboy)
|
||||
* Designer: Jonas Schnelli
|
||||
* Bitcoin Icon: (based on the original bitcoin logo from Bitboy)
|
||||
* Some icons are based on Stephan Hutchings Typicons
|
||||
* License: MIT
|
||||
|
||||
### Assets Used
|
||||
src/qt/res/icons/bitcoin.icns, src/qt/res/src/bitcoin.svg,
|
||||
src/qt/res/src/bitcoin.ico, src/qt/res/src/bitcoin.png,
|
||||
src/qt/res/src/bitcoin_testnet.png, docs/bitcoin_logo_doxygen.png,
|
||||
src/qt/res/images/splash.png, src/qt/res/images/splash_testnet.png
|
||||
src/qt/res/icons/about.png, src/qt/res/icons/about_qt.png,
|
||||
src/qt/res/icons/clock*.png, src/qt/res/icons/connect[0-3].png,
|
||||
src/qt/res/icons/eye_minus.png, src/qt/res/icons/verify.png,
|
||||
src/qt/res/icons/eye_plus.png, src/qt/res/icons/tx_inout.png,
|
||||
src/qt/res/icons/tx_output.png, src/qt/res/icons/bitcoin.icns,
|
||||
src/qt/res/src/bitcoin.svg, src/qt/res/src/bitcoin.ico,
|
||||
src/qt/res/src/bitcoin.png, src/qt/res/src/bitcoin_testnet.png,
|
||||
docs/bitcoin_logo_doxygen.png, src/qt/res/src/tx*.svg,
|
||||
src/qt/res/src/connect*.svg, src/qt/res/src/clock*.svg,
|
||||
src/qt/res/src/mine.svg, src/qt/res/src/qt.svg,
|
||||
src/qt/res/src/verify.svg,
|
||||
|
|
|
@ -1,126 +1,3 @@
|
|||
(note: this is a temporary file, to be added-to by anybody, and moved to
|
||||
release-notes at release time)
|
||||
|
||||
Block file backwards-compatibility warning
|
||||
===========================================
|
||||
|
||||
Because release 0.10.0 makes use of headers-first synchronization and parallel
|
||||
block download, the block files and databases are not backwards-compatible
|
||||
with older versions of Bitcoin Core:
|
||||
|
||||
* Blocks will be stored on disk out of order (in the order they are
|
||||
received, really), which makes it incompatible with some tools or
|
||||
other programs. Reindexing using earlier versions will also not work
|
||||
anymore as a result of this.
|
||||
|
||||
* The block index database will now hold headers for which no block is
|
||||
stored on disk, which earlier versions won't support.
|
||||
|
||||
If you want to be able to downgrade smoothly, make a backup of your entire data
|
||||
directory. Without this your node will need start syncing (or importing from
|
||||
bootstrap.dat) anew afterwards.
|
||||
|
||||
This does not affect wallet forward or backward compatibility.
|
||||
|
||||
Transaction fee changes
|
||||
=======================
|
||||
|
||||
This release automatically estimates how high a transaction fee (or how
|
||||
high a priority) transactions require to be confirmed quickly. The default
|
||||
settings will create transactions that confirm quickly; see the new
|
||||
'txconfirmtarget' setting to control the tradeoff between fees and
|
||||
confirmation times.
|
||||
|
||||
Prior releases used hard-coded fees (and priorities), and would
|
||||
sometimes create transactions that took a very long time to confirm.
|
||||
|
||||
Statistics used to estimate fees and priorities are saved in the
|
||||
data directory in the `fee_estimates.dat` file just before
|
||||
program shutdown, and are read in at startup.
|
||||
|
||||
New Command Line Options
|
||||
---------------------------
|
||||
|
||||
- `-txconfirmtarget=n` : create transactions that have enough fees (or priority)
|
||||
so they are likely to confirm within n blocks (default: 1). This setting
|
||||
is over-ridden by the -paytxfee option.
|
||||
|
||||
New RPC methods
|
||||
----------------
|
||||
|
||||
- `estimatefee nblocks` : Returns approximate fee-per-1,000-bytes needed for
|
||||
a transaction to be confirmed within nblocks. Returns -1 if not enough
|
||||
transactions have been observed to compute a good estimate.
|
||||
|
||||
- `estimatepriority nblocks` : Returns approximate priority needed for
|
||||
a zero-fee transaction to confirm within nblocks. Returns -1 if not
|
||||
enough free transactions have been observed to compute a good
|
||||
estimate.
|
||||
|
||||
RPC access control changes
|
||||
==========================================
|
||||
|
||||
Subnet matching for the purpose of access control is now done
|
||||
by matching the binary network address, instead of with string wildcard matching.
|
||||
For the user this means that `-rpcallowip` takes a subnet specification, which can be
|
||||
|
||||
- a single IP address (e.g. `1.2.3.4` or `fe80::0012:3456:789a:bcde`)
|
||||
- a network/CIDR (e.g. `1.2.3.0/24` or `fe80::0000/64`)
|
||||
- a network/netmask (e.g. `1.2.3.4/255.255.255.0` or `fe80::0012:3456:789a:bcde/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff`)
|
||||
|
||||
An arbitrary number of `-rpcallow` arguments can be given. An incoming connection will be accepted if its origin address
|
||||
matches one of them.
|
||||
|
||||
For example:
|
||||
|
||||
| 0.9.x and before | 0.10.x |
|
||||
|--------------------------------------------|---------------------------------------|
|
||||
| `-rpcallowip=192.168.1.1` | `-rpcallowip=192.168.1.1` (unchanged) |
|
||||
| `-rpcallowip=192.168.1.*` | `-rpcallowip=192.168.1.0/24` |
|
||||
| `-rpcallowip=192.168.*` | `-rpcallowip=192.168.0.0/16` |
|
||||
| `-rpcallowip=*` (dangerous!) | `-rpcallowip=::/0` |
|
||||
|
||||
Using wildcards will result in the rule being rejected with the following error in debug.log:
|
||||
|
||||
Error: Invalid -rpcallowip subnet specification: *. Valid are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24).
|
||||
|
||||
RPC Server "Warm-Up" Mode
|
||||
=========================
|
||||
|
||||
The RPC server is started earlier now, before most of the expensive
|
||||
intialisations like loading the block index. It is available now almost
|
||||
immediately after starting the process. However, until all initialisations
|
||||
are done, it always returns an immediate error with code -28 to all calls.
|
||||
|
||||
This new behaviour can be useful for clients to know that a server is already
|
||||
started and will be available soon (for instance, so that they do not
|
||||
have to start it themselves).
|
||||
|
||||
Improved signing security
|
||||
=========================
|
||||
|
||||
For 0.10 the security of signing against unusual attacks has been
|
||||
improved by making the signatures constant time and deterministic.
|
||||
|
||||
This change is a result of switching signing to use libsecp256k1
|
||||
instead of OpenSSL. Libsecp256k1 is a cryptographic library
|
||||
optimized for the curve Bitcoin uses which was created by Bitcoin
|
||||
Core developer Pieter Wuille.
|
||||
|
||||
There exist attacks[1] against most ECC implementations where an
|
||||
attacker on shared virtual machine hardware could extract a private
|
||||
key if they could cause a target to sign using the same key hundreds
|
||||
of times. While using shared hosts and reusing keys are inadvisable
|
||||
for other reasons, it's a better practice to avoid the exposure.
|
||||
|
||||
OpenSSL has code in their source repository for derandomization
|
||||
and reduction in timing leaks, and we've eagerly wanted to use
|
||||
it for a long time but this functionality has still not made its
|
||||
way into a released version of OpenSSL. Libsecp256k1 achieves
|
||||
significantly stronger protection: As far as we're aware this is
|
||||
the only deployed implementation of constant time signing for
|
||||
the curve Bitcoin uses and we have reason to believe that
|
||||
libsecp256k1 is better tested and more thoroughly reviewed
|
||||
than the implementation in OpenSSL.
|
||||
|
||||
[1] https://eprint.iacr.org/2014/161.pdf
|
||||
|
|
|
@ -40,7 +40,7 @@ Release Process
|
|||
|
||||
###fetch and build inputs: (first time, or when dependency versions change)
|
||||
|
||||
mkdir -p inputs; cd inputs/
|
||||
mkdir -p inputs
|
||||
|
||||
Register and download the Apple SDK: (see OSX Readme for details)
|
||||
|
||||
|
@ -50,7 +50,15 @@ Release Process
|
|||
|
||||
tar -C /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/ -czf MacOSX10.7.sdk.tar.gz MacOSX10.7.sdk
|
||||
|
||||
Build Bitcoin Core for Linux, Windows, and OS X:
|
||||
###Optional: Seed the Gitian sources cache
|
||||
|
||||
By default, gitian will fetch source files as needed. For offline builds, they can be fetched ahead of time:
|
||||
|
||||
make -C ../bitcoin/depends download SOURCES_PATH=`pwd`/cache/common
|
||||
|
||||
Only missing files will be fetched, so this is safe to re-run for each build.
|
||||
|
||||
###Build Bitcoin Core for Linux, Windows, and OS X:
|
||||
|
||||
./bin/gbuild --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
|
||||
./bin/gsign --signer $SIGNER --release ${VERSION}-linux --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
|
||||
|
@ -63,7 +71,6 @@ Release Process
|
|||
mv build/out/bitcoin-*-unsigned.tar.gz inputs
|
||||
mv build/out/bitcoin-*.tar.gz build/out/bitcoin-*.dmg ../
|
||||
popd
|
||||
bitcoin-0.9.99-osx-unsigned.tar.gz
|
||||
Build output expected:
|
||||
|
||||
1. source tarball (bitcoin-${VERSION}.tar.gz)
|
||||
|
@ -84,11 +91,12 @@ Commit your signature to gitian.sigs:
|
|||
git push # Assuming you can push to the gitian.sigs tree
|
||||
popd
|
||||
|
||||
Wait for OSX detached signature:
|
||||
Wait for OSX detached signature:
|
||||
Once the OSX build has 3 matching signatures, Gavin will sign it with the apple App-Store key.
|
||||
He will then upload a detached signature to be combined with the unsigned app to create a signed binary.
|
||||
|
||||
Create the signed OSX binary:
|
||||
Create the signed OSX binary:
|
||||
|
||||
pushd ./gitian-builder
|
||||
# Fetch the signature as instructed by Gavin
|
||||
cp signature.tar.gz inputs/
|
||||
|
|
|
@ -15,17 +15,28 @@ fi
|
|||
|
||||
#Run the tests
|
||||
|
||||
testScripts=(
|
||||
'wallet.py'
|
||||
'listtransactions.py'
|
||||
'mempool_resurrect_test.py'
|
||||
'txn_doublespend.py'
|
||||
'txn_doublespend.py --mineblock'
|
||||
'getchaintips.py'
|
||||
'rest.py'
|
||||
'mempool_spendcoinbase.py'
|
||||
'mempool_coinbase_spends.py'
|
||||
'httpbasics.py'
|
||||
# 'forknotify.py'
|
||||
);
|
||||
if [ "x${ENABLE_BITCOIND}${ENABLE_UTILS}${ENABLE_WALLET}" = "x111" ]; then
|
||||
${BUILDDIR}/qa/rpc-tests/wallet.py --srcdir "${BUILDDIR}/src"
|
||||
${BUILDDIR}/qa/rpc-tests/listtransactions.py --srcdir "${BUILDDIR}/src"
|
||||
${BUILDDIR}/qa/rpc-tests/mempool_resurrect_test.py --srcdir "${BUILDDIR}/src"
|
||||
${BUILDDIR}/qa/rpc-tests/txn_doublespend.py --srcdir "${BUILDDIR}/src"
|
||||
${BUILDDIR}/qa/rpc-tests/txn_doublespend.py --mineblock --srcdir "${BUILDDIR}/src"
|
||||
${BUILDDIR}/qa/rpc-tests/getchaintips.py --srcdir "${BUILDDIR}/src"
|
||||
${BUILDDIR}/qa/rpc-tests/rest.py --srcdir "${BUILDDIR}/src"
|
||||
${BUILDDIR}/qa/rpc-tests/mempool_spendcoinbase.py --srcdir "${BUILDDIR}/src"
|
||||
${BUILDDIR}/qa/rpc-tests/httpbasics.py --srcdir "${BUILDDIR}/src"
|
||||
#${BUILDDIR}/qa/rpc-tests/forknotify.py --srcdir "${BUILDDIR}/src"
|
||||
for (( i = 0; i < ${#testScripts[@]}; i++ ))
|
||||
do
|
||||
if [ -z "$1" ] || [ "$1" == "${testScripts[$i]}" ] || [ "$1.py" == "${testScripts[$i]}" ]
|
||||
then
|
||||
echo -e "running testscript \033[1m${testScripts[$i]}...\033[0m"
|
||||
${BUILDDIR}/qa/rpc-tests/${testScripts[$i]} --srcdir "${BUILDDIR}/src"
|
||||
fi
|
||||
done
|
||||
else
|
||||
echo "No rpc tests to run. Wallet, utils, and bitcoind must all be enabled"
|
||||
fi
|
||||
|
|
94
qa/rpc-tests/mempool_coinbase_spends.py
Executable file
|
@ -0,0 +1,94 @@
|
|||
#!/usr/bin/env python2
|
||||
# Copyright (c) 2014 The Bitcoin Core developers
|
||||
# Distributed under the MIT software license, see the accompanying
|
||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
#
|
||||
# Test re-org scenarios with a mempool that contains transactions
|
||||
# that spend (directly or indirectly) coinbase transactions.
|
||||
#
|
||||
|
||||
from test_framework import BitcoinTestFramework
|
||||
from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
|
||||
from util import *
|
||||
import os
|
||||
import shutil
|
||||
|
||||
# Create one-input, one-output, no-fee transaction:
|
||||
class MempoolCoinbaseTest(BitcoinTestFramework):
|
||||
|
||||
alert_filename = None # Set by setup_network
|
||||
|
||||
def setup_network(self):
|
||||
args = ["-checkmempool", "-debug=mempool"]
|
||||
self.nodes = []
|
||||
self.nodes.append(start_node(0, self.options.tmpdir, args))
|
||||
self.nodes.append(start_node(1, self.options.tmpdir, args))
|
||||
connect_nodes(self.nodes[1], 0)
|
||||
self.is_network_split = False
|
||||
self.sync_all
|
||||
|
||||
def create_tx(self, from_txid, to_address, amount):
|
||||
inputs = [{ "txid" : from_txid, "vout" : 0}]
|
||||
outputs = { to_address : amount }
|
||||
rawtx = self.nodes[0].createrawtransaction(inputs, outputs)
|
||||
signresult = self.nodes[0].signrawtransaction(rawtx)
|
||||
assert_equal(signresult["complete"], True)
|
||||
return signresult["hex"]
|
||||
|
||||
def run_test(self):
|
||||
start_count = self.nodes[0].getblockcount()
|
||||
|
||||
# Mine three blocks. After this, nodes[0] blocks
|
||||
# 101, 102, and 103 are spend-able.
|
||||
new_blocks = self.nodes[1].setgenerate(True, 4)
|
||||
self.sync_all()
|
||||
|
||||
node0_address = self.nodes[0].getnewaddress()
|
||||
node1_address = self.nodes[1].getnewaddress()
|
||||
|
||||
# Three scenarios for re-orging coinbase spends in the memory pool:
|
||||
# 1. Direct coinbase spend : spend_101
|
||||
# 2. Indirect (coinbase spend in chain, child in mempool) : spend_102 and spend_102_1
|
||||
# 3. Indirect (coinbase and child both in chain) : spend_103 and spend_103_1
|
||||
# Use invalidatblock to make all of the above coinbase spends invalid (immature coinbase),
|
||||
# and make sure the mempool code behaves correctly.
|
||||
b = [ self.nodes[0].getblockhash(n) for n in range(102, 105) ]
|
||||
coinbase_txids = [ self.nodes[0].getblock(h)['tx'][0] for h in b ]
|
||||
spend_101_raw = self.create_tx(coinbase_txids[0], node1_address, 50)
|
||||
spend_102_raw = self.create_tx(coinbase_txids[1], node0_address, 50)
|
||||
spend_103_raw = self.create_tx(coinbase_txids[2], node0_address, 50)
|
||||
|
||||
# Broadcast and mine spend_102 and 103:
|
||||
spend_102_id = self.nodes[0].sendrawtransaction(spend_102_raw)
|
||||
spend_103_id = self.nodes[0].sendrawtransaction(spend_103_raw)
|
||||
self.nodes[0].setgenerate(True, 1)
|
||||
|
||||
# Create 102_1 and 103_1:
|
||||
spend_102_1_raw = self.create_tx(spend_102_id, node1_address, 50)
|
||||
spend_103_1_raw = self.create_tx(spend_103_id, node1_address, 50)
|
||||
|
||||
# Broadcast and mine 103_1:
|
||||
spend_103_1_id = self.nodes[0].sendrawtransaction(spend_103_1_raw)
|
||||
self.nodes[0].setgenerate(True, 1)
|
||||
|
||||
# ... now put spend_101 and spend_102_1 in memory pools:
|
||||
spend_101_id = self.nodes[0].sendrawtransaction(spend_101_raw)
|
||||
spend_102_1_id = self.nodes[0].sendrawtransaction(spend_102_1_raw)
|
||||
|
||||
self.sync_all()
|
||||
|
||||
assert_equal(set(self.nodes[0].getrawmempool()), set([ spend_101_id, spend_102_1_id ]))
|
||||
|
||||
# Use invalidateblock to re-org back and make all those coinbase spends
|
||||
# immature/invalid:
|
||||
for node in self.nodes:
|
||||
node.invalidateblock(new_blocks[0])
|
||||
|
||||
self.sync_all()
|
||||
|
||||
# mempool should be empty.
|
||||
assert_equal(set(self.nodes[0].getrawmempool()), set())
|
||||
|
||||
if __name__ == '__main__':
|
||||
MempoolCoinbaseTest().main()
|
|
@ -23,40 +23,88 @@ except ImportError:
|
|||
def http_get_call(host, port, path, response_object = 0):
|
||||
conn = httplib.HTTPConnection(host, port)
|
||||
conn.request('GET', path)
|
||||
|
||||
|
||||
if response_object:
|
||||
return conn.getresponse()
|
||||
|
||||
|
||||
return conn.getresponse().read()
|
||||
|
||||
|
||||
class RESTTest (BitcoinTestFramework):
|
||||
FORMAT_SEPARATOR = "."
|
||||
|
||||
|
||||
def run_test(self):
|
||||
url = urlparse.urlparse(self.nodes[0].url)
|
||||
bb_hash = self.nodes[0].getbestblockhash()
|
||||
|
||||
|
||||
# check binary format
|
||||
response = http_get_call(url.hostname, url.port, '/rest/block/'+bb_hash+self.FORMAT_SEPARATOR+"bin", True)
|
||||
assert_equal(response.status, 200)
|
||||
assert_greater_than(int(response.getheader('content-length')), 10)
|
||||
|
||||
assert_greater_than(int(response.getheader('content-length')), 80)
|
||||
response_str = response.read()
|
||||
|
||||
# compare with block header
|
||||
response_header = http_get_call(url.hostname, url.port, '/rest/headers/1/'+bb_hash+self.FORMAT_SEPARATOR+"bin", True)
|
||||
assert_equal(response_header.status, 200)
|
||||
assert_equal(int(response_header.getheader('content-length')), 80)
|
||||
response_header_str = response_header.read()
|
||||
assert_equal(response_str[0:80], response_header_str)
|
||||
|
||||
# check block hex format
|
||||
response_hex = http_get_call(url.hostname, url.port, '/rest/block/'+bb_hash+self.FORMAT_SEPARATOR+"hex", True)
|
||||
assert_equal(response_hex.status, 200)
|
||||
assert_greater_than(int(response_hex.getheader('content-length')), 160)
|
||||
response_hex_str = response_hex.read()
|
||||
assert_equal(response_str.encode("hex")[0:160], response_hex_str[0:160])
|
||||
|
||||
# compare with hex block header
|
||||
response_header_hex = http_get_call(url.hostname, url.port, '/rest/headers/1/'+bb_hash+self.FORMAT_SEPARATOR+"hex", True)
|
||||
assert_equal(response_header_hex.status, 200)
|
||||
assert_greater_than(int(response_header_hex.getheader('content-length')), 160)
|
||||
response_header_hex_str = response_header_hex.read()
|
||||
assert_equal(response_hex_str[0:160], response_header_hex_str[0:160])
|
||||
assert_equal(response_header_str.encode("hex")[0:160], response_header_hex_str[0:160])
|
||||
|
||||
# check json format
|
||||
json_string = http_get_call(url.hostname, url.port, '/rest/block/'+bb_hash+self.FORMAT_SEPARATOR+'json')
|
||||
json_obj = json.loads(json_string)
|
||||
assert_equal(json_obj['hash'], bb_hash)
|
||||
|
||||
|
||||
# do tx test
|
||||
tx_hash = json_obj['tx'][0];
|
||||
tx_hash = json_obj['tx'][0]['txid'];
|
||||
json_string = http_get_call(url.hostname, url.port, '/rest/tx/'+tx_hash+self.FORMAT_SEPARATOR+"json")
|
||||
json_obj = json.loads(json_string)
|
||||
assert_equal(json_obj['txid'], tx_hash)
|
||||
|
||||
|
||||
# check hex format response
|
||||
hex_string = http_get_call(url.hostname, url.port, '/rest/tx/'+tx_hash+self.FORMAT_SEPARATOR+"hex", True)
|
||||
assert_equal(response.status, 200)
|
||||
assert_greater_than(int(response.getheader('content-length')), 10)
|
||||
|
||||
# check block tx details
|
||||
# let's make 3 tx and mine them on node 1
|
||||
txs = []
|
||||
txs.append(self.nodes[0].sendtoaddress(self.nodes[2].getnewaddress(), 11))
|
||||
txs.append(self.nodes[0].sendtoaddress(self.nodes[2].getnewaddress(), 11))
|
||||
txs.append(self.nodes[0].sendtoaddress(self.nodes[2].getnewaddress(), 11))
|
||||
self.sync_all()
|
||||
|
||||
# now mine the transactions
|
||||
newblockhash = self.nodes[1].setgenerate(True, 1)
|
||||
self.sync_all()
|
||||
|
||||
#check if the 3 tx show up in the new block
|
||||
json_string = http_get_call(url.hostname, url.port, '/rest/block/'+newblockhash[0]+self.FORMAT_SEPARATOR+'json')
|
||||
json_obj = json.loads(json_string)
|
||||
for tx in json_obj['tx']:
|
||||
if not 'coinbase' in tx['vin'][0]: #exclude coinbase
|
||||
assert_equal(tx['txid'] in txs, True)
|
||||
|
||||
#check the same but without tx details
|
||||
json_string = http_get_call(url.hostname, url.port, '/rest/block/notxdetails/'+newblockhash[0]+self.FORMAT_SEPARATOR+'json')
|
||||
json_obj = json.loads(json_string)
|
||||
for tx in txs:
|
||||
assert_equal(tx in json_obj['tx'], True)
|
||||
|
||||
if __name__ == '__main__':
|
||||
RESTTest ().main ()
|
||||
|
|
200
qa/rpc-tests/walletbackup.py
Executable file
|
@ -0,0 +1,200 @@
|
|||
#!/usr/bin/env python2
|
||||
# Copyright (c) 2014 The Bitcoin Core developers
|
||||
# Distributed under the MIT/X11 software license, see the accompanying
|
||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
"""
|
||||
Exercise the wallet backup code. Ported from walletbackup.sh.
|
||||
|
||||
Test case is:
|
||||
4 nodes. 1 2 and 3 send transactions between each other,
|
||||
fourth node is a miner.
|
||||
1 2 3 each mine a block to start, then
|
||||
Miner creates 100 blocks so 1 2 3 each have 50 mature
|
||||
coins to spend.
|
||||
Then 5 iterations of 1/2/3 sending coins amongst
|
||||
themselves to get transactions in the wallets,
|
||||
and the miner mining one block.
|
||||
|
||||
Wallets are backed up using dumpwallet/backupwallet.
|
||||
Then 5 more iterations of transactions and mining a block.
|
||||
|
||||
Miner then generates 101 more blocks, so any
|
||||
transaction fees paid mature.
|
||||
|
||||
Sanity check:
|
||||
Sum(1,2,3,4 balances) == 114*50
|
||||
|
||||
1/2/3 are shutdown, and their wallets erased.
|
||||
Then restore using wallet.dat backup. And
|
||||
confirm 1/2/3/4 balances are same as before.
|
||||
|
||||
Shutdown again, restore using importwallet,
|
||||
and confirm again balances are correct.
|
||||
"""
|
||||
|
||||
from test_framework import BitcoinTestFramework
|
||||
from util import *
|
||||
from random import randint
|
||||
import logging
|
||||
logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.INFO)
|
||||
|
||||
class WalletBackupTest(BitcoinTestFramework):
|
||||
|
||||
def setup_chain(self):
|
||||
logging.info("Initializing test directory "+self.options.tmpdir)
|
||||
initialize_chain_clean(self.options.tmpdir, 4)
|
||||
|
||||
# This mirrors how the network was setup in the bash test
|
||||
def setup_network(self, split=False):
|
||||
# nodes 1, 2,3 are spenders, let's give them a keypool=100
|
||||
extra_args = [["-keypool=100"], ["-keypool=100"], ["-keypool=100"], []]
|
||||
self.nodes = start_nodes(4, self.options.tmpdir, extra_args)
|
||||
connect_nodes(self.nodes[0], 3)
|
||||
connect_nodes(self.nodes[1], 3)
|
||||
connect_nodes(self.nodes[2], 3)
|
||||
connect_nodes(self.nodes[2], 0)
|
||||
self.is_network_split=False
|
||||
self.sync_all()
|
||||
|
||||
def one_send(self, from_node, to_address):
|
||||
if (randint(1,2) == 1):
|
||||
amount = Decimal(randint(1,10)) / Decimal(10)
|
||||
self.nodes[from_node].sendtoaddress(to_address, amount)
|
||||
|
||||
def do_one_round(self):
|
||||
a0 = self.nodes[0].getnewaddress()
|
||||
a1 = self.nodes[1].getnewaddress()
|
||||
a2 = self.nodes[2].getnewaddress()
|
||||
|
||||
self.one_send(0, a1)
|
||||
self.one_send(0, a2)
|
||||
self.one_send(1, a0)
|
||||
self.one_send(1, a2)
|
||||
self.one_send(2, a0)
|
||||
self.one_send(2, a1)
|
||||
|
||||
# Have the miner (node3) mine a block.
|
||||
# Must sync mempools before mining.
|
||||
sync_mempools(self.nodes)
|
||||
self.nodes[3].setgenerate(True, 1)
|
||||
|
||||
# As above, this mirrors the original bash test.
|
||||
def start_three(self):
|
||||
self.nodes[0] = start_node(0, self.options.tmpdir)
|
||||
self.nodes[1] = start_node(1, self.options.tmpdir)
|
||||
self.nodes[2] = start_node(2, self.options.tmpdir)
|
||||
connect_nodes(self.nodes[0], 3)
|
||||
connect_nodes(self.nodes[1], 3)
|
||||
connect_nodes(self.nodes[2], 3)
|
||||
connect_nodes(self.nodes[2], 0)
|
||||
|
||||
def stop_three(self):
|
||||
stop_node(self.nodes[0], 0)
|
||||
stop_node(self.nodes[1], 1)
|
||||
stop_node(self.nodes[2], 2)
|
||||
|
||||
def erase_three(self):
|
||||
os.remove(self.options.tmpdir + "/node0/regtest/wallet.dat")
|
||||
os.remove(self.options.tmpdir + "/node1/regtest/wallet.dat")
|
||||
os.remove(self.options.tmpdir + "/node2/regtest/wallet.dat")
|
||||
|
||||
def run_test(self):
|
||||
logging.info("Generating initial blockchain")
|
||||
self.nodes[0].setgenerate(True, 1)
|
||||
sync_blocks(self.nodes)
|
||||
self.nodes[1].setgenerate(True, 1)
|
||||
sync_blocks(self.nodes)
|
||||
self.nodes[2].setgenerate(True, 1)
|
||||
sync_blocks(self.nodes)
|
||||
self.nodes[3].setgenerate(True, 100)
|
||||
sync_blocks(self.nodes)
|
||||
|
||||
assert_equal(self.nodes[0].getbalance(), 50)
|
||||
assert_equal(self.nodes[1].getbalance(), 50)
|
||||
assert_equal(self.nodes[2].getbalance(), 50)
|
||||
assert_equal(self.nodes[3].getbalance(), 0)
|
||||
|
||||
logging.info("Creating transactions")
|
||||
# Five rounds of sending each other transactions.
|
||||
for i in range(5):
|
||||
self.do_one_round()
|
||||
|
||||
logging.info("Backing up")
|
||||
tmpdir = self.options.tmpdir
|
||||
self.nodes[0].backupwallet(tmpdir + "/node0/wallet.bak")
|
||||
self.nodes[0].dumpwallet(tmpdir + "/node0/wallet.dump")
|
||||
self.nodes[1].backupwallet(tmpdir + "/node1/wallet.bak")
|
||||
self.nodes[1].dumpwallet(tmpdir + "/node1/wallet.dump")
|
||||
self.nodes[2].backupwallet(tmpdir + "/node2/wallet.bak")
|
||||
self.nodes[2].dumpwallet(tmpdir + "/node2/wallet.dump")
|
||||
|
||||
logging.info("More transactions")
|
||||
for i in range(5):
|
||||
self.do_one_round()
|
||||
|
||||
# Generate 101 more blocks, so any fees paid mature
|
||||
self.nodes[3].setgenerate(True, 101)
|
||||
self.sync_all()
|
||||
|
||||
balance0 = self.nodes[0].getbalance()
|
||||
balance1 = self.nodes[1].getbalance()
|
||||
balance2 = self.nodes[2].getbalance()
|
||||
balance3 = self.nodes[3].getbalance()
|
||||
total = balance0 + balance1 + balance2 + balance3
|
||||
|
||||
# At this point, there are 214 blocks (103 for setup, then 10 rounds, then 101.)
|
||||
# 114 are mature, so the sum of all wallets should be 114 * 50 = 5700.
|
||||
assert_equal(total, 5700)
|
||||
|
||||
##
|
||||
# Test restoring spender wallets from backups
|
||||
##
|
||||
logging.info("Restoring using wallet.dat")
|
||||
self.stop_three()
|
||||
self.erase_three()
|
||||
|
||||
# Start node2 with no chain
|
||||
shutil.rmtree(self.options.tmpdir + "/node2/regtest/blocks")
|
||||
shutil.rmtree(self.options.tmpdir + "/node2/regtest/chainstate")
|
||||
|
||||
# Restore wallets from backup
|
||||
shutil.copyfile(tmpdir + "/node0/wallet.bak", tmpdir + "/node0/regtest/wallet.dat")
|
||||
shutil.copyfile(tmpdir + "/node1/wallet.bak", tmpdir + "/node1/regtest/wallet.dat")
|
||||
shutil.copyfile(tmpdir + "/node2/wallet.bak", tmpdir + "/node2/regtest/wallet.dat")
|
||||
|
||||
logging.info("Re-starting nodes")
|
||||
self.start_three()
|
||||
sync_blocks(self.nodes)
|
||||
|
||||
assert_equal(self.nodes[0].getbalance(), balance0)
|
||||
assert_equal(self.nodes[1].getbalance(), balance1)
|
||||
assert_equal(self.nodes[2].getbalance(), balance2)
|
||||
|
||||
logging.info("Restoring using dumped wallet")
|
||||
self.stop_three()
|
||||
self.erase_three()
|
||||
|
||||
#start node2 with no chain
|
||||
shutil.rmtree(self.options.tmpdir + "/node2/regtest/blocks")
|
||||
shutil.rmtree(self.options.tmpdir + "/node2/regtest/chainstate")
|
||||
|
||||
self.start_three()
|
||||
|
||||
assert_equal(self.nodes[0].getbalance(), 0)
|
||||
assert_equal(self.nodes[1].getbalance(), 0)
|
||||
assert_equal(self.nodes[2].getbalance(), 0)
|
||||
|
||||
self.nodes[0].importwallet(tmpdir + "/node0/wallet.dump")
|
||||
self.nodes[1].importwallet(tmpdir + "/node1/wallet.dump")
|
||||
self.nodes[2].importwallet(tmpdir + "/node2/wallet.dump")
|
||||
|
||||
sync_blocks(self.nodes)
|
||||
|
||||
assert_equal(self.nodes[0].getbalance(), balance0)
|
||||
assert_equal(self.nodes[1].getbalance(), balance1)
|
||||
assert_equal(self.nodes[2].getbalance(), balance2)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
WalletBackupTest().main()
|
|
@ -1,297 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
# Copyright (c) 2014 The Bitcoin Core developers
|
||||
# Distributed under the MIT software license, see the accompanying
|
||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
# Test wallet backup / dump / restore functionality
|
||||
|
||||
# Test case is:
|
||||
# 4 nodes. 1 2 3 and send transactions between each other,
|
||||
# fourth node is a miner.
|
||||
# 1 2 3 and each mine a block to start, then
|
||||
# miner creates 100 blocks so 1 2 3 each have 50 mature
|
||||
# coins to spend.
|
||||
# Then 5 iterations of 1/2/3 sending coins amongst
|
||||
# themselves to get transactions in the wallets,
|
||||
# and the miner mining one block.
|
||||
#
|
||||
# Wallets are backed up using dumpwallet/backupwallet.
|
||||
# Then 5 more iterations of transactions, then block.
|
||||
#
|
||||
# Miner then generates 101 more blocks, so any
|
||||
# transaction fees paid mature.
|
||||
#
|
||||
# Sanity checks done:
|
||||
# Miner balance >= 150*50
|
||||
# Sum(1,2,3,4 balances) == 153*150
|
||||
#
|
||||
# 1/2/3 are shutdown, and their wallets erased.
|
||||
# Then restore using wallet.dat backup. And
|
||||
# confirm 1/2/3/4 balances are same as before.
|
||||
#
|
||||
# Shutdown again, restore using importwallet,
|
||||
# and confirm again balances are correct.
|
||||
#
|
||||
|
||||
if [ $# -lt 1 ]; then
|
||||
echo "Usage: $0 path_to_binaries"
|
||||
echo "e.g. $0 ../../src"
|
||||
echo "Env vars BITCOIND and BITCOINCLI may be used to specify the exact binaries used"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
BITCOIND=${BITCOIND:-${1}/bitcoind}
|
||||
CLI=${BITCOINCLI:-${1}/bitcoin-cli}
|
||||
|
||||
DIR="${BASH_SOURCE%/*}"
|
||||
SENDANDWAIT="${DIR}/send.sh"
|
||||
if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi
|
||||
. "$DIR/util.sh"
|
||||
|
||||
D=$(mktemp -d test.XXXXX)
|
||||
|
||||
echo "Starting nodes..."
|
||||
|
||||
# "Miner":
|
||||
D4=${D}/node4
|
||||
CreateDataDir $D4 port=11030 rpcport=11031
|
||||
B4ARGS="-datadir=$D4"
|
||||
$BITCOIND $BITCOINDARGS $B4ARGS &
|
||||
B4PID=$!
|
||||
|
||||
# Want default keypool for 1/2/3, and
|
||||
# don't need send-and-wait functionality,
|
||||
# so don't use CreateDataDir:
|
||||
function CreateConfDir {
|
||||
DIR=$1
|
||||
mkdir -p $DIR
|
||||
CONF=$DIR/bitcoin.conf
|
||||
echo "regtest=1" >> $CONF
|
||||
echo "rpcuser=rt" >> $CONF
|
||||
echo "rpcpassword=rt" >> $CONF
|
||||
echo "rpcwait=1" >> $CONF
|
||||
shift
|
||||
while (( "$#" )); do
|
||||
echo $1 >> $CONF
|
||||
shift
|
||||
done
|
||||
}
|
||||
|
||||
# "Spenders" 1/2/3
|
||||
D1=${D}/node1
|
||||
CreateConfDir $D1 port=11000 rpcport=11001 addnode=127.0.0.1:11030
|
||||
B1ARGS="-datadir=$D1"
|
||||
$BITCOIND $B1ARGS &
|
||||
B1PID=$!
|
||||
D2=${D}/node2
|
||||
CreateConfDir $D2 port=11010 rpcport=11011 addnode=127.0.0.1:11030
|
||||
B2ARGS="-datadir=$D2"
|
||||
$BITCOIND $B2ARGS &
|
||||
B2PID=$!
|
||||
D3=${D}/node3
|
||||
CreateConfDir $D3 port=11020 rpcport=11021 addnode=127.0.0.1:11030 addnode=127.0.0.1:11000
|
||||
B3ARGS="-datadir=$D3"
|
||||
$BITCOIND $BITCOINDARGS $B3ARGS &
|
||||
B3PID=$!
|
||||
|
||||
# Wait until all nodes are at the same block number
|
||||
function WaitBlocks {
|
||||
while :
|
||||
do
|
||||
sleep 1
|
||||
BLOCKS1=$( GetBlocks "$B1ARGS" )
|
||||
BLOCKS2=$( GetBlocks "$B2ARGS" )
|
||||
BLOCKS3=$( GetBlocks "$B3ARGS" )
|
||||
BLOCKS4=$( GetBlocks "$B4ARGS" )
|
||||
if (( BLOCKS1 == BLOCKS4 && BLOCKS2 == BLOCKS4 && BLOCKS3 == BLOCKS4 ))
|
||||
then
|
||||
break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Wait until all nodes have the same txns in
|
||||
# their memory pools
|
||||
function WaitMemPools {
|
||||
while :
|
||||
do
|
||||
sleep 1
|
||||
MEMPOOL1=$( $CLI "$B1ARGS" getrawmempool | sort | shasum )
|
||||
MEMPOOL2=$( $CLI "$B2ARGS" getrawmempool | sort | shasum )
|
||||
MEMPOOL3=$( $CLI "$B3ARGS" getrawmempool | sort | shasum )
|
||||
MEMPOOL4=$( $CLI "$B4ARGS" getrawmempool | sort | shasum )
|
||||
if [[ $MEMPOOL1 = $MEMPOOL4 && $MEMPOOL2 = $MEMPOOL4 && $MEMPOOL3 = $MEMPOOL4 ]]
|
||||
then
|
||||
break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
echo "Generating initial blockchain..."
|
||||
|
||||
# 1 block, 50 XBT each == 50 BTC
|
||||
$CLI $B1ARGS setgenerate true 1
|
||||
WaitBlocks
|
||||
$CLI $B2ARGS setgenerate true 1
|
||||
WaitBlocks
|
||||
$CLI $B3ARGS setgenerate true 1
|
||||
WaitBlocks
|
||||
|
||||
# 100 blocks, 0 mature
|
||||
$CLI $B4ARGS setgenerate true 100
|
||||
WaitBlocks
|
||||
|
||||
CheckBalance "$B1ARGS" 50
|
||||
CheckBalance "$B2ARGS" 50
|
||||
CheckBalance "$B3ARGS" 50
|
||||
CheckBalance "$B4ARGS" 0
|
||||
|
||||
echo "Creating transactions..."
|
||||
|
||||
function S {
|
||||
TXID=$( $CLI -datadir=${D}/node${1} sendtoaddress ${2} "${3}" 0 )
|
||||
if [ x$TXID = x ] ; then
|
||||
echoerr "node${1}: error sending ${3} btc"
|
||||
echo -n "node${1} balance: "
|
||||
$CLI -datadir=${D}/node${1} getbalance "*" 0
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
function OneRound {
|
||||
A1=$( $CLI $B1ARGS getnewaddress )
|
||||
A2=$( $CLI $B2ARGS getnewaddress )
|
||||
A3=$( $CLI $B3ARGS getnewaddress )
|
||||
if [[ $(( $RANDOM%2 )) < 1 ]] ; then
|
||||
N=$(( $RANDOM % 9 + 1 ))
|
||||
S 1 $A2 "0.$N"
|
||||
fi
|
||||
if [[ $(( $RANDOM%2 )) < 1 ]] ; then
|
||||
N=$(( $RANDOM % 9 + 1 ))
|
||||
S 1 $A3 "0.0$N"
|
||||
fi
|
||||
if [[ $(( $RANDOM%2 )) < 1 ]] ; then
|
||||
N=$(( $RANDOM % 9 + 1 ))
|
||||
S 2 $A1 "0.$N"
|
||||
fi
|
||||
if [[ $(( $RANDOM%2 )) < 1 ]] ; then
|
||||
N=$(( $RANDOM % 9 + 1 ))
|
||||
S 2 $A3 "0.$N"
|
||||
fi
|
||||
if [[ $(( $RANDOM%2 )) < 1 ]] ; then
|
||||
N=$(( $RANDOM % 9 + 1 ))
|
||||
S 3 $A1 "0.$N"
|
||||
fi
|
||||
if [[ $(( $RANDOM%2 )) < 1 ]] ; then
|
||||
N=$(( $RANDOM % 9 + 1 ))
|
||||
S 3 $A2 "0.0$N"
|
||||
fi
|
||||
$CLI "$B4ARGS" setgenerate true 1
|
||||
}
|
||||
|
||||
for i in {1..5}; do OneRound ; done
|
||||
|
||||
echo "Backing up..."
|
||||
|
||||
$CLI "$B1ARGS" backupwallet "$D1/wallet.bak"
|
||||
$CLI "$B1ARGS" dumpwallet "$D1/wallet.dump"
|
||||
$CLI "$B2ARGS" backupwallet "$D2/wallet.bak"
|
||||
$CLI "$B2ARGS" dumpwallet "$D2/wallet.dump"
|
||||
$CLI "$B3ARGS" backupwallet "$D3/wallet.bak"
|
||||
$CLI "$B3ARGS" dumpwallet "$D3/wallet.dump"
|
||||
|
||||
echo "More transactions..."
|
||||
for i in {1..5}; do OneRound ; done
|
||||
|
||||
WaitMemPools
|
||||
|
||||
# Generate 101 more blocks, so any fees paid
|
||||
# mature
|
||||
$CLI "$B4ARGS" setgenerate true 101
|
||||
|
||||
BALANCE1=$( $CLI "$B1ARGS" getbalance )
|
||||
BALANCE2=$( $CLI "$B2ARGS" getbalance )
|
||||
BALANCE3=$( $CLI "$B3ARGS" getbalance )
|
||||
BALANCE4=$( $CLI "$B4ARGS" getbalance )
|
||||
|
||||
TOTAL=$( dc -e "$BALANCE1 $BALANCE2 $BALANCE3 $BALANCE4 + + + p" )
|
||||
|
||||
AssertEqual $TOTAL 5700.00000000
|
||||
|
||||
function StopThree {
|
||||
$CLI $B1ARGS stop > /dev/null 2>&1
|
||||
$CLI $B2ARGS stop > /dev/null 2>&1
|
||||
$CLI $B3ARGS stop > /dev/null 2>&1
|
||||
wait $B1PID
|
||||
wait $B2PID
|
||||
wait $B3PID
|
||||
}
|
||||
function EraseThree {
|
||||
rm $D1/regtest/wallet.dat
|
||||
rm $D2/regtest/wallet.dat
|
||||
rm $D3/regtest/wallet.dat
|
||||
}
|
||||
function StartThree {
|
||||
$BITCOIND $BITCOINDARGS $B1ARGS &
|
||||
B1PID=$!
|
||||
$BITCOIND $BITCOINDARGS $B2ARGS &
|
||||
B2PID=$!
|
||||
$BITCOIND $BITCOINDARGS $B3ARGS &
|
||||
B3PID=$!
|
||||
}
|
||||
|
||||
echo "Restoring using wallet.dat"
|
||||
|
||||
StopThree
|
||||
EraseThree
|
||||
|
||||
# Start node3 with no chain
|
||||
rm -rf $D3/regtest/blocks
|
||||
rm -rf $D3/regtest/chainstate
|
||||
rm -rf $D3/regtest/database
|
||||
|
||||
cp $D1/wallet.bak $D1/regtest/wallet.dat
|
||||
cp $D2/wallet.bak $D2/regtest/wallet.dat
|
||||
cp $D3/wallet.bak $D3/regtest/wallet.dat
|
||||
|
||||
StartThree
|
||||
WaitBlocks
|
||||
|
||||
AssertEqual $BALANCE1 $( $CLI "$B1ARGS" getbalance )
|
||||
AssertEqual $BALANCE2 $( $CLI "$B2ARGS" getbalance )
|
||||
AssertEqual $BALANCE3 $( $CLI "$B3ARGS" getbalance )
|
||||
|
||||
echo "Restoring using dumped wallet"
|
||||
|
||||
StopThree
|
||||
EraseThree
|
||||
|
||||
# Start node3 with no chain
|
||||
rm -rf $D3/regtest/blocks
|
||||
rm -rf $D3/regtest/chainstate
|
||||
rm -rf $D3/regtest/database
|
||||
|
||||
StartThree
|
||||
|
||||
AssertEqual 0 $( $CLI "$B1ARGS" getbalance )
|
||||
AssertEqual 0 $( $CLI "$B2ARGS" getbalance )
|
||||
AssertEqual 0 $( $CLI "$B3ARGS" getbalance )
|
||||
|
||||
$CLI "$B1ARGS" importwallet $D1/wallet.dump
|
||||
$CLI "$B2ARGS" importwallet $D2/wallet.dump
|
||||
$CLI "$B3ARGS" importwallet $D3/wallet.dump
|
||||
|
||||
WaitBlocks
|
||||
|
||||
AssertEqual $BALANCE1 $( $CLI "$B1ARGS" getbalance )
|
||||
AssertEqual $BALANCE2 $( $CLI "$B2ARGS" getbalance )
|
||||
AssertEqual $BALANCE3 $( $CLI "$B3ARGS" getbalance )
|
||||
|
||||
StopThree
|
||||
$CLI $B4ARGS stop > /dev/null 2>&1
|
||||
wait $B4PID
|
||||
|
||||
echo "Tests successful, cleaning up"
|
||||
trap "" EXIT
|
||||
rm -rf $D
|
||||
exit 0
|
|
@ -212,21 +212,21 @@ BITCOIN_QT_H = \
|
|||
RES_ICONS = \
|
||||
qt/res/icons/add.png \
|
||||
qt/res/icons/address-book.png \
|
||||
qt/res/icons/about.png \
|
||||
qt/res/icons/about_qt.png \
|
||||
qt/res/icons/bitcoin.ico \
|
||||
qt/res/icons/bitcoin.png \
|
||||
qt/res/icons/bitcoin_testnet.ico \
|
||||
qt/res/icons/bitcoin_testnet.png \
|
||||
qt/res/icons/clock1.png \
|
||||
qt/res/icons/clock2.png \
|
||||
qt/res/icons/clock3.png \
|
||||
qt/res/icons/clock4.png \
|
||||
qt/res/icons/clock5.png \
|
||||
qt/res/icons/configure.png \
|
||||
qt/res/icons/connect0_16.png \
|
||||
qt/res/icons/connect1_16.png \
|
||||
qt/res/icons/connect2_16.png \
|
||||
qt/res/icons/connect3_16.png \
|
||||
qt/res/icons/connect4_16.png \
|
||||
qt/res/icons/connect0.png \
|
||||
qt/res/icons/connect1.png \
|
||||
qt/res/icons/connect2.png \
|
||||
qt/res/icons/connect3.png \
|
||||
qt/res/icons/connect4.png \
|
||||
qt/res/icons/debugwindow.png \
|
||||
qt/res/icons/edit.png \
|
||||
qt/res/icons/editcopy.png \
|
||||
|
@ -237,11 +237,12 @@ RES_ICONS = \
|
|||
qt/res/icons/eye_plus.png \
|
||||
qt/res/icons/filesave.png \
|
||||
qt/res/icons/history.png \
|
||||
qt/res/icons/info.png \
|
||||
qt/res/icons/key.png \
|
||||
qt/res/icons/lock_closed.png \
|
||||
qt/res/icons/lock_open.png \
|
||||
qt/res/icons/open.png \
|
||||
qt/res/icons/overview.png \
|
||||
qt/res/icons/qrcode.png \
|
||||
qt/res/icons/quit.png \
|
||||
qt/res/icons/receive.png \
|
||||
qt/res/icons/remove.png \
|
||||
|
@ -256,7 +257,8 @@ RES_ICONS = \
|
|||
qt/res/icons/tx_mined.png \
|
||||
qt/res/icons/unit_btc.png \
|
||||
qt/res/icons/unit_mbtc.png \
|
||||
qt/res/icons/unit_ubtc.png
|
||||
qt/res/icons/unit_ubtc.png \
|
||||
qt/res/icons/verify.png
|
||||
|
||||
BITCOIN_QT_CPP = \
|
||||
qt/bitcoinaddressvalidator.cpp \
|
||||
|
@ -311,9 +313,7 @@ BITCOIN_QT_CPP += \
|
|||
endif
|
||||
|
||||
RES_IMAGES = \
|
||||
qt/res/images/about.png \
|
||||
qt/res/images/splash.png \
|
||||
qt/res/images/splash_testnet.png
|
||||
qt/res/images/about.png
|
||||
|
||||
RES_MOVIES = $(wildcard qt/res/movies/spinner-*.png)
|
||||
|
||||
|
@ -367,7 +367,7 @@ qt_bitcoin_qt_LIBTOOLFLAGS = --tag CXX
|
|||
#locale/foo.ts -> locale/foo.qm
|
||||
QT_QM=$(QT_TS:.ts=.qm)
|
||||
|
||||
.SECONDARY: $(QT_QM)
|
||||
SECONDARY: $(QT_QM)
|
||||
|
||||
qt/bitcoinstrings.cpp: $(libbitcoin_server_a_SOURCES) $(libbitcoin_wallet_a_SOURCES)
|
||||
@test -n $(XGETTEXT) || echo "xgettext is required for updating translations"
|
||||
|
|
|
@ -57,3 +57,52 @@ const CBlockIndex *CChain::FindFork(const CBlockIndex *pindex) const {
|
|||
pindex = pindex->pprev;
|
||||
return pindex;
|
||||
}
|
||||
|
||||
/** Turn the lowest '1' bit in the binary representation of a number into a '0'. */
|
||||
int static inline InvertLowestOne(int n) { return n & (n - 1); }
|
||||
|
||||
/** Compute what height to jump back to with the CBlockIndex::pskip pointer. */
|
||||
int static inline GetSkipHeight(int height) {
|
||||
if (height < 2)
|
||||
return 0;
|
||||
|
||||
// Determine which height to jump back to. Any number strictly lower than height is acceptable,
|
||||
// but the following expression seems to perform well in simulations (max 110 steps to go back
|
||||
// up to 2**18 blocks).
|
||||
return (height & 1) ? InvertLowestOne(InvertLowestOne(height - 1)) + 1 : InvertLowestOne(height);
|
||||
}
|
||||
|
||||
CBlockIndex* CBlockIndex::GetAncestor(int height)
|
||||
{
|
||||
if (height > nHeight || height < 0)
|
||||
return NULL;
|
||||
|
||||
CBlockIndex* pindexWalk = this;
|
||||
int heightWalk = nHeight;
|
||||
while (heightWalk > height) {
|
||||
int heightSkip = GetSkipHeight(heightWalk);
|
||||
int heightSkipPrev = GetSkipHeight(heightWalk - 1);
|
||||
if (heightSkip == height ||
|
||||
(heightSkip > height && !(heightSkipPrev < heightSkip - 2 &&
|
||||
heightSkipPrev >= height))) {
|
||||
// Only follow pskip if pprev->pskip isn't better than pskip->pprev.
|
||||
pindexWalk = pindexWalk->pskip;
|
||||
heightWalk = heightSkip;
|
||||
} else {
|
||||
pindexWalk = pindexWalk->pprev;
|
||||
heightWalk--;
|
||||
}
|
||||
}
|
||||
return pindexWalk;
|
||||
}
|
||||
|
||||
const CBlockIndex* CBlockIndex::GetAncestor(int height) const
|
||||
{
|
||||
return const_cast<CBlockIndex*>(this)->GetAncestor(height);
|
||||
}
|
||||
|
||||
void CBlockIndex::BuildSkip()
|
||||
{
|
||||
if (pprev)
|
||||
pskip = pprev->GetAncestor(GetSkipHeight(nHeight));
|
||||
}
|
||||
|
|
12
src/chain.h
|
@ -95,7 +95,7 @@ enum BlockStatus {
|
|||
class CBlockIndex
|
||||
{
|
||||
public:
|
||||
//! pointer to the hash of the block, if any. memory is owned by this CBlockIndex
|
||||
//! pointer to the hash of the block, if any. Memory is owned by this CBlockIndex
|
||||
const uint256* phashBlock;
|
||||
|
||||
//! pointer to the index of the predecessor of this block
|
||||
|
@ -236,14 +236,6 @@ public:
|
|||
return pbegin[(pend - pbegin)/2];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if there are nRequired or more blocks of minVersion or above
|
||||
* in the last Params().ToCheckBlockUpgradeMajority() blocks, starting at pstart
|
||||
* and going backwards.
|
||||
*/
|
||||
static bool IsSuperMajority(int minVersion, const CBlockIndex* pstart,
|
||||
unsigned int nRequired);
|
||||
|
||||
std::string ToString() const
|
||||
{
|
||||
return strprintf("CBlockIndex(pprev=%p, nHeight=%d, merkle=%s, hashBlock=%s)",
|
||||
|
@ -293,7 +285,7 @@ public:
|
|||
hashPrev = 0;
|
||||
}
|
||||
|
||||
explicit CDiskBlockIndex(CBlockIndex* pindex) : CBlockIndex(*pindex) {
|
||||
explicit CDiskBlockIndex(const CBlockIndex* pindex) : CBlockIndex(*pindex) {
|
||||
hashPrev = (pprev ? pprev->GetBlockHash() : 0);
|
||||
}
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
//! These need to be macros, as clientversion.cpp's and bitcoin*-res.rc's voodoo requires it
|
||||
#define CLIENT_VERSION_MAJOR 0
|
||||
#define CLIENT_VERSION_MINOR 9
|
||||
#define CLIENT_VERSION_MINOR 10
|
||||
#define CLIENT_VERSION_REVISION 99
|
||||
#define CLIENT_VERSION_BUILD 0
|
||||
|
||||
|
|
|
@ -82,7 +82,7 @@ bool CKey::Sign(const uint256 &hash, std::vector<unsigned char>& vchSig, uint32_
|
|||
prng.Generate((unsigned char*)&nonce, 32);
|
||||
nonce += test_case;
|
||||
int nSigLen = 72;
|
||||
int ret = secp256k1_ecdsa_sign((const unsigned char*)&hash, 32, (unsigned char*)&vchSig[0], &nSigLen, begin(), (unsigned char*)&nonce);
|
||||
int ret = secp256k1_ecdsa_sign((const unsigned char*)&hash, (unsigned char*)&vchSig[0], &nSigLen, begin(), (unsigned char*)&nonce);
|
||||
nonce = 0;
|
||||
if (ret) {
|
||||
vchSig.resize(nSigLen);
|
||||
|
@ -114,7 +114,7 @@ bool CKey::SignCompact(const uint256 &hash, std::vector<unsigned char>& vchSig)
|
|||
do {
|
||||
uint256 nonce;
|
||||
prng.Generate((unsigned char*)&nonce, 32);
|
||||
int ret = secp256k1_ecdsa_sign_compact((const unsigned char*)&hash, 32, &vchSig[1], begin(), (unsigned char*)&nonce, &rec);
|
||||
int ret = secp256k1_ecdsa_sign_compact((const unsigned char*)&hash, &vchSig[1], begin(), (unsigned char*)&nonce, &rec);
|
||||
nonce = 0;
|
||||
if (ret)
|
||||
break;
|
||||
|
|
108
src/main.cpp
|
@ -67,6 +67,13 @@ map<uint256, COrphanTx> mapOrphanTransactions;
|
|||
map<uint256, set<uint256> > mapOrphanTransactionsByPrev;
|
||||
void EraseOrphansFor(NodeId peer);
|
||||
|
||||
/**
|
||||
* Returns true if there are nRequired or more blocks of minVersion or above
|
||||
* in the last Params().ToCheckBlockUpgradeMajority() blocks, starting at pstart
|
||||
* and going backwards.
|
||||
*/
|
||||
static bool IsSuperMajority(int minVersion, const CBlockIndex* pstart, unsigned int nRequired);
|
||||
|
||||
/** Constant stuff for coinbase transactions we create: */
|
||||
CScript COINBASE_FLAGS;
|
||||
|
||||
|
@ -1018,7 +1025,7 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa
|
|||
hash.ToString(), nFees, txMinFee),
|
||||
REJECT_INSUFFICIENTFEE, "insufficient fee");
|
||||
|
||||
// Continuously rate-limit free (really, very-low-fee)transactions
|
||||
// Continuously rate-limit free (really, very-low-fee) transactions
|
||||
// This mitigates 'penny-flooding' -- sending thousands of free transactions just to
|
||||
// be annoying or make others' transactions take longer to confirm.
|
||||
if (fLimitFree && nFees < ::minRelayTxFee.GetFee(nSize))
|
||||
|
@ -1043,7 +1050,7 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa
|
|||
}
|
||||
|
||||
if (fRejectInsaneFee && nFees > ::minRelayTxFee.GetFee(nSize) * 10000)
|
||||
return error("AcceptToMemoryPool: : insane fees %s, %d > %d",
|
||||
return error("AcceptToMemoryPool: insane fees %s, %d > %d",
|
||||
hash.ToString(),
|
||||
nFees, ::minRelayTxFee.GetFee(nSize) * 10000);
|
||||
|
||||
|
@ -1051,7 +1058,7 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa
|
|||
// This is done last to help prevent CPU exhaustion denial-of-service attacks.
|
||||
if (!CheckInputs(tx, state, view, true, STANDARD_SCRIPT_VERIFY_FLAGS, true))
|
||||
{
|
||||
return error("AcceptToMemoryPool: : ConnectInputs failed %s", hash.ToString());
|
||||
return error("AcceptToMemoryPool: ConnectInputs failed %s", hash.ToString());
|
||||
}
|
||||
// Store transaction in memory
|
||||
pool.addUnchecked(hash, entry);
|
||||
|
@ -1792,24 +1799,23 @@ bool static FlushStateToDisk(CValidationState &state, FlushStateMode mode) {
|
|||
// First make sure all block and undo data is flushed to disk.
|
||||
FlushBlockFile();
|
||||
// Then update all block file information (which may refer to block and undo files).
|
||||
bool fileschanged = false;
|
||||
for (set<int>::iterator it = setDirtyFileInfo.begin(); it != setDirtyFileInfo.end(); ) {
|
||||
if (!pblocktree->WriteBlockFileInfo(*it, vinfoBlockFile[*it])) {
|
||||
return state.Abort("Failed to write to block index");
|
||||
{
|
||||
std::vector<std::pair<int, const CBlockFileInfo*> > vFiles;
|
||||
vFiles.reserve(setDirtyFileInfo.size());
|
||||
for (set<int>::iterator it = setDirtyFileInfo.begin(); it != setDirtyFileInfo.end(); ) {
|
||||
vFiles.push_back(make_pair(*it, &vinfoBlockFile[*it]));
|
||||
setDirtyFileInfo.erase(it++);
|
||||
}
|
||||
std::vector<const CBlockIndex*> vBlocks;
|
||||
vBlocks.reserve(setDirtyBlockIndex.size());
|
||||
for (set<CBlockIndex*>::iterator it = setDirtyBlockIndex.begin(); it != setDirtyBlockIndex.end(); ) {
|
||||
vBlocks.push_back(*it);
|
||||
setDirtyBlockIndex.erase(it++);
|
||||
}
|
||||
if (!pblocktree->WriteBatchSync(vFiles, nLastBlockFile, vBlocks)) {
|
||||
return state.Abort("Files to write to block index database");
|
||||
}
|
||||
fileschanged = true;
|
||||
setDirtyFileInfo.erase(it++);
|
||||
}
|
||||
if (fileschanged && !pblocktree->WriteLastBlockFile(nLastBlockFile)) {
|
||||
return state.Abort("Failed to write to block index");
|
||||
}
|
||||
for (set<CBlockIndex*>::iterator it = setDirtyBlockIndex.begin(); it != setDirtyBlockIndex.end(); ) {
|
||||
if (!pblocktree->WriteBlockIndex(CDiskBlockIndex(*it))) {
|
||||
return state.Abort("Failed to write to block index");
|
||||
}
|
||||
setDirtyBlockIndex.erase(it++);
|
||||
}
|
||||
pblocktree->Sync();
|
||||
// Finally flush the chainstate (which may refer to block index entries).
|
||||
if (!pcoinsTip->Flush())
|
||||
return state.Abort("Failed to write to coin database");
|
||||
|
@ -1892,10 +1898,10 @@ bool static DisconnectTip(CValidationState &state) {
|
|||
// ignore validation errors in resurrected transactions
|
||||
list<CTransaction> removed;
|
||||
CValidationState stateDummy;
|
||||
if (!tx.IsCoinBase())
|
||||
if (!AcceptToMemoryPool(mempool, stateDummy, tx, false, NULL))
|
||||
mempool.remove(tx, removed, true);
|
||||
if (tx.IsCoinBase() || !AcceptToMemoryPool(mempool, stateDummy, tx, false, NULL))
|
||||
mempool.remove(tx, removed, true);
|
||||
}
|
||||
mempool.removeCoinbaseSpends(pcoinsTip, pindexDelete->nHeight);
|
||||
mempool.check(pcoinsTip);
|
||||
// Update chainActive and related variables.
|
||||
UpdateTip(pindexDelete->pprev);
|
||||
|
@ -2480,8 +2486,7 @@ bool ContextualCheckBlockHeader(const CBlockHeader& block, CValidationState& sta
|
|||
return state.DoS(100, error("%s : forked chain older than last checkpoint (height %d)", __func__, nHeight));
|
||||
|
||||
// Reject block.nVersion=1 blocks when 95% (75% on testnet) of the network has upgraded:
|
||||
if (block.nVersion < 2 &&
|
||||
CBlockIndex::IsSuperMajority(2, pindexPrev, Params().RejectBlockOutdatedMajority()))
|
||||
if (block.nVersion < 2 && IsSuperMajority(2, pindexPrev, Params().RejectBlockOutdatedMajority()))
|
||||
{
|
||||
return state.Invalid(error("%s : rejected nVersion=1 block", __func__),
|
||||
REJECT_OBSOLETE, "bad-version");
|
||||
|
@ -2502,8 +2507,7 @@ bool ContextualCheckBlock(const CBlock& block, CValidationState& state, CBlockIn
|
|||
|
||||
// Enforce block.nVersion=2 rule that the coinbase starts with serialized block height
|
||||
// if 750 of the last 1,000 blocks are version 2 or greater (51/100 if testnet):
|
||||
if (block.nVersion >= 2 &&
|
||||
CBlockIndex::IsSuperMajority(2, pindexPrev, Params().EnforceBlockUpgradeMajority()))
|
||||
if (block.nVersion >= 2 && IsSuperMajority(2, pindexPrev, Params().EnforceBlockUpgradeMajority()))
|
||||
{
|
||||
CScript expect = CScript() << nHeight;
|
||||
if (block.vtx[0].vin[0].scriptSig.size() < expect.size() ||
|
||||
|
@ -2601,7 +2605,7 @@ bool AcceptBlock(CBlock& block, CValidationState& state, CBlockIndex** ppindex,
|
|||
return true;
|
||||
}
|
||||
|
||||
bool CBlockIndex::IsSuperMajority(int minVersion, const CBlockIndex* pstart, unsigned int nRequired)
|
||||
static bool IsSuperMajority(int minVersion, const CBlockIndex* pstart, unsigned int nRequired)
|
||||
{
|
||||
unsigned int nToCheck = Params().ToCheckBlockUpgradeMajority();
|
||||
unsigned int nFound = 0;
|
||||
|
@ -2614,54 +2618,6 @@ bool CBlockIndex::IsSuperMajority(int minVersion, const CBlockIndex* pstart, uns
|
|||
return (nFound >= nRequired);
|
||||
}
|
||||
|
||||
/** Turn the lowest '1' bit in the binary representation of a number into a '0'. */
|
||||
int static inline InvertLowestOne(int n) { return n & (n - 1); }
|
||||
|
||||
/** Compute what height to jump back to with the CBlockIndex::pskip pointer. */
|
||||
int static inline GetSkipHeight(int height) {
|
||||
if (height < 2)
|
||||
return 0;
|
||||
|
||||
// Determine which height to jump back to. Any number strictly lower than height is acceptable,
|
||||
// but the following expression seems to perform well in simulations (max 110 steps to go back
|
||||
// up to 2**18 blocks).
|
||||
return (height & 1) ? InvertLowestOne(InvertLowestOne(height - 1)) + 1 : InvertLowestOne(height);
|
||||
}
|
||||
|
||||
CBlockIndex* CBlockIndex::GetAncestor(int height)
|
||||
{
|
||||
if (height > nHeight || height < 0)
|
||||
return NULL;
|
||||
|
||||
CBlockIndex* pindexWalk = this;
|
||||
int heightWalk = nHeight;
|
||||
while (heightWalk > height) {
|
||||
int heightSkip = GetSkipHeight(heightWalk);
|
||||
int heightSkipPrev = GetSkipHeight(heightWalk - 1);
|
||||
if (heightSkip == height ||
|
||||
(heightSkip > height && !(heightSkipPrev < heightSkip - 2 &&
|
||||
heightSkipPrev >= height))) {
|
||||
// Only follow pskip if pprev->pskip isn't better than pskip->pprev.
|
||||
pindexWalk = pindexWalk->pskip;
|
||||
heightWalk = heightSkip;
|
||||
} else {
|
||||
pindexWalk = pindexWalk->pprev;
|
||||
heightWalk--;
|
||||
}
|
||||
}
|
||||
return pindexWalk;
|
||||
}
|
||||
|
||||
const CBlockIndex* CBlockIndex::GetAncestor(int height) const
|
||||
{
|
||||
return const_cast<CBlockIndex*>(this)->GetAncestor(height);
|
||||
}
|
||||
|
||||
void CBlockIndex::BuildSkip()
|
||||
{
|
||||
if (pprev)
|
||||
pskip = pprev->GetAncestor(GetSkipHeight(nHeight));
|
||||
}
|
||||
|
||||
bool ProcessNewBlock(CValidationState &state, CNode* pfrom, CBlock* pblock, CDiskBlockPos *dbp)
|
||||
{
|
||||
|
@ -3032,7 +2988,7 @@ bool InitBlockIndex() {
|
|||
return error("LoadBlockIndex() : genesis block not accepted");
|
||||
if (!ActivateBestChain(state, &block))
|
||||
return error("LoadBlockIndex() : genesis block cannot be activated");
|
||||
// Force a chainstate write so that when we VerifyDB in a moment, it doesnt check stale data
|
||||
// Force a chainstate write so that when we VerifyDB in a moment, it doesn't check stale data
|
||||
return FlushStateToDisk(state, FLUSH_STATE_ALWAYS);
|
||||
} catch(std::runtime_error &e) {
|
||||
return error("LoadBlockIndex() : failed to initialize block database: %s", e.what());
|
||||
|
|
|
@ -16,7 +16,7 @@ bool CPubKey::Verify(const uint256 &hash, const std::vector<unsigned char>& vchS
|
|||
if (!IsValid())
|
||||
return false;
|
||||
#ifdef USE_SECP256K1
|
||||
if (secp256k1_ecdsa_verify((const unsigned char*)&hash, 32, &vchSig[0], vchSig.size(), begin(), size()) != 1)
|
||||
if (secp256k1_ecdsa_verify((const unsigned char*)&hash, &vchSig[0], vchSig.size(), begin(), size()) != 1)
|
||||
return false;
|
||||
#else
|
||||
CECKey key;
|
||||
|
@ -35,7 +35,7 @@ bool CPubKey::RecoverCompact(const uint256 &hash, const std::vector<unsigned cha
|
|||
bool fComp = ((vchSig[0] - 27) & 4) != 0;
|
||||
#ifdef USE_SECP256K1
|
||||
int pubkeylen = 65;
|
||||
if (!secp256k1_ecdsa_recover_compact((const unsigned char*)&hash, 32, &vchSig[1], (unsigned char*)begin(), &pubkeylen, fComp, recid))
|
||||
if (!secp256k1_ecdsa_recover_compact((const unsigned char*)&hash, &vchSig[1], (unsigned char*)begin(), &pubkeylen, fComp, recid))
|
||||
return false;
|
||||
assert((int)size() == pubkeylen);
|
||||
#else
|
||||
|
|
|
@ -570,9 +570,9 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
#ifdef ENABLE_WALLET
|
||||
// Parse URIs on command line -- this can affect Params()
|
||||
if (!PaymentServer::ipcParseCommandLine(argc, argv))
|
||||
exit(0);
|
||||
PaymentServer::ipcParseCommandLine(argc, argv);
|
||||
#endif
|
||||
|
||||
QScopedPointer<const NetworkStyle> networkStyle(NetworkStyle::instantiate(QString::fromStdString(Params().NetworkIDString())));
|
||||
assert(!networkStyle.isNull());
|
||||
// Allow for separate UI settings for testnets
|
||||
|
|
|
@ -4,11 +4,11 @@
|
|||
<file alias="address-book">res/icons/address-book.png</file>
|
||||
<file alias="quit">res/icons/quit.png</file>
|
||||
<file alias="send">res/icons/send.png</file>
|
||||
<file alias="connect_0">res/icons/connect0_16.png</file>
|
||||
<file alias="connect_1">res/icons/connect1_16.png</file>
|
||||
<file alias="connect_2">res/icons/connect2_16.png</file>
|
||||
<file alias="connect_3">res/icons/connect3_16.png</file>
|
||||
<file alias="connect_4">res/icons/connect4_16.png</file>
|
||||
<file alias="connect_0">res/icons/connect0.png</file>
|
||||
<file alias="connect_1">res/icons/connect1.png</file>
|
||||
<file alias="connect_2">res/icons/connect2.png</file>
|
||||
<file alias="connect_3">res/icons/connect3.png</file>
|
||||
<file alias="connect_4">res/icons/connect4.png</file>
|
||||
<file alias="transaction_0">res/icons/transaction0.png</file>
|
||||
<file alias="transaction_confirmed">res/icons/transaction2.png</file>
|
||||
<file alias="transaction_conflicted">res/icons/transaction_conflicted.png</file>
|
||||
|
@ -25,7 +25,6 @@
|
|||
<file alias="editpaste">res/icons/editpaste.png</file>
|
||||
<file alias="editcopy">res/icons/editcopy.png</file>
|
||||
<file alias="add">res/icons/add.png</file>
|
||||
<file alias="bitcoin_testnet">res/icons/bitcoin_testnet.png</file>
|
||||
<file alias="edit">res/icons/edit.png</file>
|
||||
<file alias="history">res/icons/history.png</file>
|
||||
<file alias="overview">res/icons/overview.png</file>
|
||||
|
@ -43,13 +42,15 @@
|
|||
<file alias="lock_open">res/icons/lock_open.png</file>
|
||||
<file alias="key">res/icons/key.png</file>
|
||||
<file alias="filesave">res/icons/filesave.png</file>
|
||||
<file alias="qrcode">res/icons/qrcode.png</file>
|
||||
<file alias="debugwindow">res/icons/debugwindow.png</file>
|
||||
<file alias="open">res/icons/open.png</file>
|
||||
<file alias="info">res/icons/info.png</file>
|
||||
<file alias="about">res/icons/about.png</file>
|
||||
<file alias="about_qt">res/icons/about_qt.png</file>
|
||||
<file alias="verify">res/icons/verify.png</file>
|
||||
</qresource>
|
||||
<qresource prefix="/images">
|
||||
<file alias="about">res/images/about.png</file>
|
||||
<file alias="splash">res/images/splash.png</file>
|
||||
<file alias="splash_testnet">res/images/splash_testnet.png</file>
|
||||
</qresource>
|
||||
<qresource prefix="/movies">
|
||||
<file alias="spinner-000">res/movies/spinner-000.png</file>
|
||||
|
@ -87,5 +88,6 @@
|
|||
<file alias="spinner-032">res/movies/spinner-032.png</file>
|
||||
<file alias="spinner-033">res/movies/spinner-033.png</file>
|
||||
<file alias="spinner-034">res/movies/spinner-034.png</file>
|
||||
<file alias="spinner-035">res/movies/spinner-035.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
|
|
@ -115,8 +115,8 @@ BitcoinGUI::BitcoinGUI(const NetworkStyle *networkStyle, QWidget *parent) :
|
|||
}
|
||||
windowTitle += " " + networkStyle->getTitleAddText();
|
||||
#ifndef Q_OS_MAC
|
||||
QApplication::setWindowIcon(networkStyle->getAppIcon());
|
||||
setWindowIcon(networkStyle->getAppIcon());
|
||||
QApplication::setWindowIcon(networkStyle->getTrayAndWindowIcon());
|
||||
setWindowIcon(networkStyle->getTrayAndWindowIcon());
|
||||
#else
|
||||
MacDockIconHandler::instance()->setIcon(networkStyle->getAppIcon());
|
||||
#endif
|
||||
|
@ -128,7 +128,7 @@ BitcoinGUI::BitcoinGUI(const NetworkStyle *networkStyle, QWidget *parent) :
|
|||
setUnifiedTitleAndToolBarOnMac(true);
|
||||
#endif
|
||||
|
||||
rpcConsole = new RPCConsole(enableWallet ? this : 0);
|
||||
rpcConsole = new RPCConsole(0);
|
||||
#ifdef ENABLE_WALLET
|
||||
if(enableWallet)
|
||||
{
|
||||
|
@ -234,6 +234,8 @@ BitcoinGUI::~BitcoinGUI()
|
|||
delete appMenuBar;
|
||||
MacDockIconHandler::instance()->setMainWindow(NULL);
|
||||
#endif
|
||||
|
||||
delete rpcConsole;
|
||||
}
|
||||
|
||||
void BitcoinGUI::createActions(const NetworkStyle *networkStyle)
|
||||
|
@ -285,20 +287,16 @@ void BitcoinGUI::createActions(const NetworkStyle *networkStyle)
|
|||
quitAction->setStatusTip(tr("Quit application"));
|
||||
quitAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q));
|
||||
quitAction->setMenuRole(QAction::QuitRole);
|
||||
aboutAction = new QAction(networkStyle->getAppIcon(), tr("&About Bitcoin Core"), this);
|
||||
aboutAction = new QAction(QIcon(":/icons/about"), tr("&About Bitcoin Core"), this);
|
||||
aboutAction->setStatusTip(tr("Show information about Bitcoin Core"));
|
||||
aboutAction->setMenuRole(QAction::AboutRole);
|
||||
#if QT_VERSION < 0x050000
|
||||
aboutQtAction = new QAction(QIcon(":/trolltech/qmessagebox/images/qtlogo-64.png"), tr("About &Qt"), this);
|
||||
#else
|
||||
aboutQtAction = new QAction(QIcon(":/qt-project.org/qmessagebox/images/qtlogo-64.png"), tr("About &Qt"), this);
|
||||
#endif
|
||||
aboutQtAction = new QAction(QIcon(":/icons/about_qt"), tr("About &Qt"), this);
|
||||
aboutQtAction->setStatusTip(tr("Show information about Qt"));
|
||||
aboutQtAction->setMenuRole(QAction::AboutQtRole);
|
||||
optionsAction = new QAction(QIcon(":/icons/options"), tr("&Options..."), this);
|
||||
optionsAction->setStatusTip(tr("Modify configuration options for Bitcoin"));
|
||||
optionsAction->setMenuRole(QAction::PreferencesRole);
|
||||
toggleHideAction = new QAction(networkStyle->getAppIcon(), tr("&Show / Hide"), this);
|
||||
toggleHideAction = new QAction(QIcon(":/icons/about"), tr("&Show / Hide"), this);
|
||||
toggleHideAction->setStatusTip(tr("Show or hide the main Window"));
|
||||
|
||||
encryptWalletAction = new QAction(QIcon(":/icons/lock_closed"), tr("&Encrypt Wallet..."), this);
|
||||
|
@ -310,7 +308,7 @@ void BitcoinGUI::createActions(const NetworkStyle *networkStyle)
|
|||
changePassphraseAction->setStatusTip(tr("Change the passphrase used for wallet encryption"));
|
||||
signMessageAction = new QAction(QIcon(":/icons/edit"), tr("Sign &message..."), this);
|
||||
signMessageAction->setStatusTip(tr("Sign messages with your Bitcoin addresses to prove you own them"));
|
||||
verifyMessageAction = new QAction(QIcon(":/icons/transaction_0"), tr("&Verify message..."), this);
|
||||
verifyMessageAction = new QAction(QIcon(":/icons/verify"), tr("&Verify message..."), this);
|
||||
verifyMessageAction->setStatusTip(tr("Verify messages to ensure they were signed with specified Bitcoin addresses"));
|
||||
|
||||
openRPCConsoleAction = new QAction(QIcon(":/icons/debugwindow"), tr("&Debug window"), this);
|
||||
|
@ -321,10 +319,10 @@ void BitcoinGUI::createActions(const NetworkStyle *networkStyle)
|
|||
usedReceivingAddressesAction = new QAction(QIcon(":/icons/address-book"), tr("&Receiving addresses..."), this);
|
||||
usedReceivingAddressesAction->setStatusTip(tr("Show the list of used receiving addresses and labels"));
|
||||
|
||||
openAction = new QAction(QApplication::style()->standardIcon(QStyle::SP_FileIcon), tr("Open &URI..."), this);
|
||||
openAction = new QAction(QIcon(":/icons/open"), tr("Open &URI..."), this);
|
||||
openAction->setStatusTip(tr("Open a bitcoin: URI or payment request"));
|
||||
|
||||
showHelpMessageAction = new QAction(QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation), tr("&Command-line options"), this);
|
||||
showHelpMessageAction = new QAction(QIcon(":/icons/info"), tr("&Command-line options"), this);
|
||||
showHelpMessageAction->setStatusTip(tr("Show the Bitcoin Core help message to get a list with possible Bitcoin command-line options"));
|
||||
|
||||
connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
|
||||
|
@ -495,7 +493,7 @@ void BitcoinGUI::createTrayIcon(const NetworkStyle *networkStyle)
|
|||
trayIcon = new QSystemTrayIcon(this);
|
||||
QString toolTip = tr("Bitcoin Core client") + " " + networkStyle->getTitleAddText();
|
||||
trayIcon->setToolTip(toolTip);
|
||||
trayIcon->setIcon(networkStyle->getAppIcon());
|
||||
trayIcon->setIcon(networkStyle->getTrayAndWindowIcon());
|
||||
trayIcon->show();
|
||||
#endif
|
||||
|
||||
|
@ -831,6 +829,9 @@ void BitcoinGUI::closeEvent(QCloseEvent *event)
|
|||
if(!clientModel->getOptionsModel()->getMinimizeToTray() &&
|
||||
!clientModel->getOptionsModel()->getMinimizeOnClose())
|
||||
{
|
||||
// close rpcConsole in case it was open to make some space for the shutdown window
|
||||
rpcConsole->close();
|
||||
|
||||
QApplication::quit();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>RPCConsole</class>
|
||||
<widget class="QDialog" name="RPCConsole">
|
||||
<widget class="QWidget" name="RPCConsole">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
|
|
|
@ -67,6 +67,12 @@
|
|||
<iconset resource="../bitcoin.qrc">
|
||||
<normaloff>:/icons/address-book</normaloff>:/icons/address-book</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>22</width>
|
||||
<height>22</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>Alt+A</string>
|
||||
</property>
|
||||
|
@ -84,6 +90,12 @@
|
|||
<iconset resource="../bitcoin.qrc">
|
||||
<normaloff>:/icons/editpaste</normaloff>:/icons/editpaste</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>22</width>
|
||||
<height>22</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>Alt+P</string>
|
||||
</property>
|
||||
|
@ -101,6 +113,12 @@
|
|||
<iconset resource="../bitcoin.qrc">
|
||||
<normaloff>:/icons/remove</normaloff>:/icons/remove</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>22</width>
|
||||
<height>22</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
|
|
|
@ -38,9 +38,6 @@ static const int TOOLTIP_WRAP_THRESHOLD = 80;
|
|||
/* Maximum allowed URI length */
|
||||
static const int MAX_URI_LENGTH = 255;
|
||||
|
||||
/* Maximum somewhat-sane size of a payment request file */
|
||||
static const int MAX_PAYMENT_REQUEST_SIZE = 50000; // bytes
|
||||
|
||||
/* QRCodeDialog -- size of exported QR Code image */
|
||||
#define EXPORT_IMAGE_SIZE 256
|
||||
|
||||
|
|
|
@ -1855,14 +1855,26 @@ Adresse: %4</translation>
|
|||
<source>Minimize</source>
|
||||
<translation>Minimieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>If the custom fee is set to 1000 satoshis and the transaction is only 250 bytes, then "per kilobyte" only pays 250 satoshis in fee, while "at least" pays 1000 satoshis. For transactions bigger than a kilobyte both pay by kilobyte.</source>
|
||||
<translation>Wenn die benutzerdefinierte Gebühr 1000 Satoshis beträgt und die Transaktion nur 250 Byte groß ist, wird bei Auswahl von "pro Kilobyte" eine Gebühr in Höhe von 250 Satoshis, bei Auswahl von "Mindestbetrag" eine Gebühr in Höhe von 1000 Satoshis bezahlt. Bei Transaktionen die Größer als ein Kilobyte sind, werden bei beiden Optionen die Gebühren pro Kilobyte bezahlt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>per kilobyte</source>
|
||||
<translation>pro Kilobyte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>If the custom fee is set to 1000 satoshis and the transaction is only 250 bytes, then "per kilobyte" only pays 250 satoshis in fee, while "total at least" pays 1000 satoshis. For transactions bigger than a kilobyte both pay by kilobyte.</source>
|
||||
<translation>Wenn die benutzerdefinierte Gebühr 1000 Satoshis beträgt und die Transaktion nur 250 Byte groß ist, wird bei Auswahl von "pro Kilobyte" eine Gebühr in Höhe von 250 Satoshis, bei Auswahl von "Mindestbetrag" eine Gebühr in Höhe von 1000 Satoshis bezahlt. Bei Transaktionen die Größer als ein Kilobyte sind, werden bei beiden Optionen die Gebühren pro Kilobyte bezahlt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>total at least</source>
|
||||
<translation>Mindestbetrag</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source>
|
||||
<translation>Nur die minimale Gebühr zu bezahlen ist so lange in Ordnung, wie weniger Transaktionsvolumen als Platz in den Blöcken vorhanden ist. Aber Vorsicht, diese Option kann dazu führen, dass Transaktionen nicht bestätigt werden, wenn mehr Bedarf an Bitcoin-Transaktionen besteht als das Netzwerk verarbeiten kann.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(read the tooltip)</source>
|
||||
<translation>(den Hinweistext lesen)</translation>
|
||||
|
@ -2821,6 +2833,10 @@ zum Beispiel: alertnotify=echo %%s | mail -s \"Bitcoin Alert\" admin@foo.com
|
|||
<source>Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup</source>
|
||||
<translation>Alle Wallet-Transaktionen löschen und nur diese Teilbereiche der Blockkette durch -rescan beim Starten wiederherstellen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>.</source>
|
||||
<translation>Veröffentlicht unter der MIT-Softwarelizenz, siehe beiligende Datei COPYING oder <http://www.opensource.org/licenses/mit-license.php>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter regression test mode, which uses a special chain in which blocks can be solved instantly.</source>
|
||||
<translation>Regressionstest-Modus aktivieren, der eine spezielle Blockkette nutzt, in der Blöcke sofort gelöst werden können.</translation>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>Create a new address</source>
|
||||
<translation>Δημιούργησε νέα διεύθυνση</translation>
|
||||
<translation>Δημιουργία νέας διεύθυνσης</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&New</source>
|
||||
|
@ -53,6 +53,10 @@
|
|||
<source>Choose the address to receive coins with</source>
|
||||
<translation>Επιλογή διεύθυνσης απ' όπου θα ληφθούν νομίσματα</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>C&hoose</source>
|
||||
<translation>Ε&πιλογή</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sending addresses</source>
|
||||
<translation>Διευθύνσεις αποστολής</translation>
|
||||
|
@ -65,6 +69,10 @@
|
|||
<source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
|
||||
<translation>Αυτές είναι οι Bitcoin διευθύνσεις σας για να λαμβάνετε πληρωμές. Δίνοντας μία ξεχωριστή διεύθυνση σε κάθε αποστολέα, θα μπορείτε να ελέγχετε ποιος σας πληρώνει.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction.</source>
|
||||
<translation>Αυτές είναι οι Bitcoin διευθύνσεις σας για να λαμβάνετε πληρωμές. Δίνοντας μία ξεχωριστή διεύθυνση σε κάθε αποστολέα, θα μπορείτε να ελέγχετε ποιος σας πληρώνει.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy &Label</source>
|
||||
<translation>Αντιγραφή &επιγραφής</translation>
|
||||
|
@ -85,7 +93,11 @@
|
|||
<source>Exporting Failed</source>
|
||||
<translation>Η εξαγωγή απέτυχε</translation>
|
||||
</message>
|
||||
</context>
|
||||
<message>
|
||||
<source>There was an error trying to save the address list to %1. Please try again.</source>
|
||||
<translation>Παρουσιάστηκε σφάλμα κατά την αποθήκευση της λίστας πορτοφολιών στο %1. Παρακαλώ δοκιμάστε ξανά</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AddressTableModel</name>
|
||||
<message>
|
||||
|
@ -113,7 +125,7 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>New passphrase</source>
|
||||
<translation>Νέος κωδικός πρόσβασης</translation>
|
||||
<translation>&Αλλαγή κωδικού</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Repeat new passphrase</source>
|
||||
|
@ -121,7 +133,7 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>Encrypt wallet</source>
|
||||
<translation>Κρυπτογράφησε το πορτοφόλι</translation>
|
||||
<translation>&Κρυπτογράφηση πορτοφολιού</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This operation needs your wallet passphrase to unlock the wallet.</source>
|
||||
|
@ -172,6 +184,10 @@
|
|||
<source>Wallet encrypted</source>
|
||||
<translation>Κρυπτογραφημενο πορτοφολι</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</source>
|
||||
<translation>Εισάγετε τον νέο κωδικό πρόσβασης στον πορτοφόλι <br/> Παρακαλώ χρησιμοποιείστε ένα κωδικό με <b> 10 ή περισσότερους τυχαίους χαρακτήρες</b> ή <b> οχτώ ή παραπάνω λέξεις</b>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
|
||||
<translation>Το Bitcoin θα κλεισει τώρα για να τελειώσει την διαδικασία κρυπτογραφησης. Θυμησου ότι κρυπτογραφώντας το πορτοφολι σου δεν μπορείς να προστατέψεις πλήρως τα bitcoins σου από κλοπή στην περίπτωση όπου μολυνθεί ο υπολογιστής σου με κακόβουλο λογισμικό.</translation>
|
||||
|
@ -219,6 +235,10 @@
|
|||
<source>&Overview</source>
|
||||
<translation>&Επισκόπηση</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Node</source>
|
||||
<translation>Κόμβος</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show general overview of wallet</source>
|
||||
<translation>Εμφάνισε τη γενική εικόνα του πορτοφολιού</translation>
|
||||
|
@ -263,6 +283,22 @@
|
|||
<source>&Change Passphrase...</source>
|
||||
<translation>&Άλλαξε κωδικο πρόσβασης</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Sending addresses...</source>
|
||||
<translation>Διευθύνσεις αποστολής</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Receiving addresses...</source>
|
||||
<translation>Διευθύνσεις λήψης</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open &URI...</source>
|
||||
<translation>'Ανοιγμα &URI</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bitcoin Core client</source>
|
||||
<translation>Εφαρμογή Bitcoin Core</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Importing blocks from disk...</source>
|
||||
<translation>Εισαγωγή μπλοκ από τον σκληρο δίσκο ... </translation>
|
||||
|
@ -315,6 +351,10 @@
|
|||
<source>&Receive</source>
|
||||
<translation>&Παραλαβή </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show information about Bitcoin Core</source>
|
||||
<translation>Σχετικά με το Bitcoin Core</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Show / Hide</source>
|
||||
<translation>&Εμφάνισε/Κρύψε</translation>
|
||||
|
@ -371,6 +411,18 @@
|
|||
<source>Show the list of used receiving addresses and labels</source>
|
||||
<translation>Προβολή της λίστας των χρησιμοποιημένων διευθύνσεων και ετικετών λήψεως</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open a bitcoin: URI or payment request</source>
|
||||
<translation>Άνοιγμα bitcoin: URI αίτησης πληρωμής</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Command-line options</source>
|
||||
<translation>&Επιλογές γραμμής εντολών</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show the Bitcoin Core help message to get a list with possible Bitcoin command-line options</source>
|
||||
<translation>Εμφανιση του Bitcoin-Qt μήνυματος βοήθειας για να πάρετε μια λίστα με τις πιθανές επιλογές Bitcoin γραμμής εντολών.</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%n active connection(s) to Bitcoin network</source>
|
||||
<translation><numerusform>%n ενεργή σύνδεση στο δίκτυο Bitcoin</numerusform><numerusform>%n ενεργές συνδέσεις στο δίκτυο Βitcoin</numerusform></translation>
|
||||
|
@ -469,6 +521,10 @@ Address: %4
|
|||
</context>
|
||||
<context>
|
||||
<name>CoinControlDialog</name>
|
||||
<message>
|
||||
<source>Coin Selection</source>
|
||||
<translation>Επιλογή κερμάτων</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Quantity:</source>
|
||||
<translation>Ποσότητα:</translation>
|
||||
|
@ -485,6 +541,18 @@ Address: %4
|
|||
<source>Priority:</source>
|
||||
<translation>Προτεραιότητα:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fee:</source>
|
||||
<translation>Ταρίφα</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Dust:</source>
|
||||
<translation>Σκόνη</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>After Fee:</source>
|
||||
<translation>Ταρίφα αλλαγής</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Change:</source>
|
||||
<translation>Ρέστα:</translation>
|
||||
|
@ -493,10 +561,26 @@ Address: %4
|
|||
<source>(un)select all</source>
|
||||
<translation>(από)επιλογή όλων</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tree mode</source>
|
||||
<translation>Εμφάνιση τύπου δέντρο</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>List mode</source>
|
||||
<translation>Λίστα εντολών</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Amount</source>
|
||||
<translation>Ποσό</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Received with label</source>
|
||||
<translation>Παραλήφθηκε με επιγραφή</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Received with address</source>
|
||||
<translation>Παραλείφθηκε με την εξής διεύθυνση</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Ημερομηνία</translation>
|
||||
|
@ -529,10 +613,26 @@ Address: %4
|
|||
<source>Copy transaction ID</source>
|
||||
<translation>Αντιγραφη του ID Συναλλαγής</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lock unspent</source>
|
||||
<translation>Κλείδωμα αξόδευτων</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unlock unspent</source>
|
||||
<translation>Ξεκλείδωμα αξόδευτων</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy quantity</source>
|
||||
<translation>Αντιγραφή ποσότητας</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy fee</source>
|
||||
<translation>Αντιγραφή ταρίφας</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy after fee</source>
|
||||
<translation>Αντιγραφή ταρίφας</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy bytes</source>
|
||||
<translation>Αντιγραφή των byte</translation>
|
||||
|
@ -541,6 +641,10 @@ Address: %4
|
|||
<source>Copy priority</source>
|
||||
<translation>Αντιγραφή προτεραιότητας</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy dust</source>
|
||||
<translation>Αντιγραφή 'σκόνης'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy change</source>
|
||||
<translation>Αντιγραφή των ρέστων</translation>
|
||||
|
@ -601,6 +705,22 @@ Address: %4
|
|||
<source>This label turns red, if the transaction size is greater than 1000 bytes.</source>
|
||||
<translation>Η ετικετα γινετε κοκκινη , αν το μεγεθος της συναλαγης ειναι μεγαλητερο απο 1000 bytes.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This means a fee of at least %1 per kB is required.</source>
|
||||
<translation>Ελάχιστο χρεώσιμο ποσό τουλάχιστο %1 ανα kB</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transactions with higher priority are more likely to get included into a block.</source>
|
||||
<translation>Συναλλαγές με υψηλότερη προτεραιότητα είναι πιο πιθανό να περιλαμβάνονται σε ένα μπλοκ.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This label turns red, if the priority is smaller than "medium".</source>
|
||||
<translation>Η ετικέτα γίνεται κόκκινη , αν το μέγεθος της συναλαγής είναι μεγαλύτερο απο το ",μεσαίο",</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This label turns red, if any recipient receives an amount smaller than %1.</source>
|
||||
<translation>Η ετικέτα γίνεται κόκκινη , αν ο παραλήπτης παραλάβει ένα ποσό μικρότερο απο %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(χωρίς ετικέτα)</translation>
|
||||
|
@ -629,6 +749,10 @@ Address: %4
|
|||
<source>The label associated with this address list entry</source>
|
||||
<translation>Η ετικέτα που συνδέεται με αυτήν την καταχώρηση στο βιβλίο διευθύνσεων</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The address associated with this address list entry. This can only be modified for sending addresses.</source>
|
||||
<translation>Η διεύθυνση σχετίζεται με αυτή την καταχώρηση του βιβλίου διευθύνσεων. Μπορεί να τροποποιηθεί μόνο για τις διευθύνσεις αποστολής.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Address</source>
|
||||
<translation>&Διεύθυνση</translation>
|
||||
|
@ -676,6 +800,14 @@ Address: %4
|
|||
<source>name</source>
|
||||
<translation>όνομα</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Directory already exists. Add %1 if you intend to create a new directory here.</source>
|
||||
<translation>Κατάλογος ήδη υπάρχει. Προσθήκη %1, αν σκοπεύετε να δημιουργήσετε έναν νέο κατάλογο εδώ.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Path already exists, and is not a directory.</source>
|
||||
<translation>Η διαδρομή υπάρχει ήδη αλλά δεν είναι φάκελος</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cannot create data directory here.</source>
|
||||
<translation>Δεν μπορεί να δημιουργηθεί φάκελος δεδομένων εδώ.</translation>
|
||||
|
@ -723,11 +855,19 @@ Address: %4
|
|||
<source>Start minimized</source>
|
||||
<translation>Έναρξη ελαχιστοποιημένο</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set SSL root certificates for payment request (default: -system-)</source>
|
||||
<translation>Ορίστε SSL root certificates για αίτηση πληρωμής (default: -system-)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show splash screen on startup (default: 1)</source>
|
||||
<translation>Εμφάνισε την οθόνη εκκίνησης κατά την εκκίνηση(προεπιλογή:1)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<message>
|
||||
<source>Choose data directory on startup (default: 0)</source>
|
||||
<translation>Επιλογή καταλόγου</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Intro</name>
|
||||
<message>
|
||||
|
@ -742,6 +882,10 @@ Address: %4
|
|||
<source>As this is the first time the program is launched, you can choose where Bitcoin Core will store its data.</source>
|
||||
<translation>Καθώς αυτή είναι η πρώτη φορά που εκκινείται το πρόγραμμα, μπορείτε να διαλέξετε πού θα αποθηκεύει το Bitcoin Core τα δεδομένα του.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bitcoin Core will download and store a copy of the Bitcoin block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory.</source>
|
||||
<translation>O πυρήνας Bitcoin θα κατεβάσει και να αποθηκεύσει ένα αντίγραφο της αλυσίδας μπλοκ Bitcoin. Τουλάχιστον %1GB δεδομένων θα αποθηκευτούν σε αυτόν τον κατάλογο, και θα αυξηθεί με την πάροδο του χρόνου. Το πορτοφόλι θα αποθηκευτεί σε αυτόν τον κατάλογο.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Use the default data directory</source>
|
||||
<translation>Χρήση του προεπιλεγμένου φακέλου δεδομένων</translation>
|
||||
|
@ -754,6 +898,10 @@ Address: %4
|
|||
<source>Bitcoin Core</source>
|
||||
<translation>Bitcoin Core</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error: Specified data directory "%1" cannot be created.</source>
|
||||
<translation>Σφάλμα: Ο καθορισμένος φάκελος δεδομένων "%1" δεν μπορεί να δημιουργηθεί.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error</source>
|
||||
<translation>Σφάλμα</translation>
|
||||
|
@ -761,7 +909,27 @@ Address: %4
|
|||
</context>
|
||||
<context>
|
||||
<name>OpenURIDialog</name>
|
||||
</context>
|
||||
<message>
|
||||
<source>Open URI</source>
|
||||
<translation>'Ανοιγμα &URI</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open payment request from URI or file</source>
|
||||
<translation>Ανοιχτό αίτημα πληρωμής από URI ή απο αρχείο</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>URI:</source>
|
||||
<translation>URI:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select payment request file</source>
|
||||
<translation>Επιλέξτε πληρωμή αρχείου αίτησης</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select payment request file to open</source>
|
||||
<translation>Επιλέξτε αρχείο πληρωμής για άνοιγμα.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>OptionsDialog</name>
|
||||
<message>
|
||||
|
@ -780,10 +948,34 @@ Address: %4
|
|||
<source>&Start Bitcoin on system login</source>
|
||||
<translation>&Έναρξη του Βιtcoin κατά την εκκίνηση του συστήματος</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Size of &database cache</source>
|
||||
<translation>Μέγεθος κρυφής μνήμης βάσης δεδομένων.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MB</source>
|
||||
<translation>MB</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Number of script &verification threads</source>
|
||||
<translation>Αριθμός script και γραμμές επαλήθευσης </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Accept connections from outside</source>
|
||||
<translation>Αποδοχή συνδέσεων απο έξω</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Allow incoming connections</source>
|
||||
<translation>Αποδοχή εισερχόμενων συναλλαγών</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</source>
|
||||
<translation>Διεύθυνση IP του διαμεσολαβητή (π.χ. 127.0.0.1 / IPv6: ::1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Third party transaction URLs</source>
|
||||
<translation>Διευθύνσεις τρίτων συναλλαγών.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reset all client options to default.</source>
|
||||
<translation>Επαναφορα όλων των επιλογων του πελάτη σε default.</translation>
|
||||
|
@ -796,10 +988,18 @@ Address: %4
|
|||
<source>&Network</source>
|
||||
<translation>&Δίκτυο</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>W&allet</source>
|
||||
<translation>Π&ορτοφόλι</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Expert</source>
|
||||
<translation>Έμπειρος</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enable coin &control features</source>
|
||||
<translation>Επιλογή κατα πόσο να αναδείχνονται οι δυνατότητες ελέγχου κερμάτων.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
|
||||
<translation>Αυτόματο άνοιγμα των θυρών Bitcoin στον δρομολογητή. Λειτουργεί μόνο αν ο δρομολογητής σας υποστηρίζει τη λειτουργία UPnP.</translation>
|
||||
|
@ -808,6 +1008,14 @@ Address: %4
|
|||
<source>Map port using &UPnP</source>
|
||||
<translation>Απόδοση θυρών με χρήστη &UPnP</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Connect to the Bitcoin network through a SOCKS5 proxy.</source>
|
||||
<translation>Σύνδεση στο Bitcoin δίκτυο μέσω διαμεσολαβητή SOCKS5 (π.χ. για σύνδεση μέσω Tor)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Connect through SOCKS5 proxy (default proxy):</source>
|
||||
<translation>&Σύνδεση μέσω διαμεσολαβητή SOCKS5 (προεπιλεγμένος)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Proxy &IP:</source>
|
||||
<translation>&IP διαμεσολαβητή:</translation>
|
||||
|
@ -860,6 +1068,10 @@ Address: %4
|
|||
<source>Choose the default subdivision unit to show in the interface and when sending coins.</source>
|
||||
<translation>Διαλέξτε την προεπιλεγμένη υποδιαίρεση που θα εμφανίζεται όταν στέλνετε νομίσματα.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Whether to show coin control features or not.</source>
|
||||
<translation>Επιλογή κατα πόσο να αναδείχνονται οι δυνατότητες ελέγχου κερμάτων.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&OK</source>
|
||||
<translation>&ΟΚ</translation>
|
||||
|
@ -884,6 +1096,14 @@ Address: %4
|
|||
<source>Client restart required to activate changes.</source>
|
||||
<translation>Χρειάζεται επανεκκίνηση του προγράμματος για να ενεργοποιηθούν οι αλλαγές.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Client will be shutdown, do you want to proceed?</source>
|
||||
<translation>Η εφαρμογή θα τερματιστεί. Θέλετε να προχωρήσετε;</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This change would require a client restart.</source>
|
||||
<translation>Η αλλαγή αυτή θα χρειαστεί επανεκκίνηση του προγράμματος</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The supplied proxy address is invalid.</source>
|
||||
<translation>Δεν είναι έγκυρη η διεύθυνση διαμεσολαβητή</translation>
|
||||
|
@ -899,6 +1119,10 @@ Address: %4
|
|||
<source>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</source>
|
||||
<translation>Οι πληροφορίες που εμφανίζονται μπορεί να είναι ξεπερασμένες. Το πορτοφόλι σας συγχρονίζεται αυτόματα με το δίκτυο Bitcoin μετά από μια σύνδεση, αλλά αυτή η διαδικασία δεν έχει ακόμη ολοκληρωθεί. </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Watch-only:</source>
|
||||
<translation>Επίβλεψη μόνο:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Available:</source>
|
||||
<translation>Διαθέσιμο:</translation>
|
||||
|
@ -907,6 +1131,10 @@ Address: %4
|
|||
<source>Your current spendable balance</source>
|
||||
<translation>Το τρέχον διαθέσιμο υπόλοιπο</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pending:</source>
|
||||
<translation>Εκκρεμούν:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance</source>
|
||||
<translation>Το άθροισμα των συναλλαγών που δεν έχουν ακόμα επιβεβαιωθεί και δεν προσμετρώνται στο τρέχον διαθέσιμο υπόλοιπό σας</translation>
|
||||
|
@ -919,6 +1147,10 @@ Address: %4
|
|||
<source>Mined balance that has not yet matured</source>
|
||||
<translation>Εξορυγμενο υπόλοιπο που δεν έχει ακόμα ωριμάσει </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Balances</source>
|
||||
<translation>Υπόλοιπο:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Total:</source>
|
||||
<translation>Σύνολο:</translation>
|
||||
|
@ -927,6 +1159,14 @@ Address: %4
|
|||
<source>Your current total balance</source>
|
||||
<translation>Το τρέχον συνολικό υπόλοιπο</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Spendable:</source>
|
||||
<translation>Ξοδεμένα:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Recent transactions</source>
|
||||
<translation>Πρόσφατες συναλλαγές</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>out of sync</source>
|
||||
<translation>εκτός συγχρονισμού</translation>
|
||||
|
@ -942,6 +1182,18 @@ Address: %4
|
|||
<source>Invalid payment address %1</source>
|
||||
<translation>Μη έγκυρη διεύθυνση πληρωμής %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Payment request rejected</source>
|
||||
<translation>Η αίτηση πληρωμής έχει αρνηθεί.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Payment request has expired.</source>
|
||||
<translation>Η αίτηση πληρωμής έχει λήξει.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Payment request is not initialized.</source>
|
||||
<translation>Η αίτηση πληρωμής δεν έχει αρχίζει ακόμα.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Payment request error</source>
|
||||
<translation>Σφάλμα αιτήματος πληρωμής</translation>
|
||||
|
@ -950,6 +1202,18 @@ Address: %4
|
|||
<source>Cannot start bitcoin: click-to-pay handler</source>
|
||||
<translation>Δεν είναι δυνατή η εκκίνηση του Bitcoin: click-to-pay handler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Payment request fetch URL is invalid: %1</source>
|
||||
<translation>Η διεύθυνση πληρωμής (URL) δεν είναι έγκυρη: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Payment request file handling</source>
|
||||
<translation>Επιλέξτε αρχείο πληρωμής για άνοιγμα.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Refund from %1</source>
|
||||
<translation>Επιστροφή ποσού από %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Payment acknowledged</source>
|
||||
<translation>Πληρωμή αναγνωρίστηκε</translation>
|
||||
|
@ -961,13 +1225,29 @@ Address: %4
|
|||
</context>
|
||||
<context>
|
||||
<name>PeerTableModel</name>
|
||||
</context>
|
||||
<message>
|
||||
<source>Address/Hostname</source>
|
||||
<translation>Διεύθυθνση/Όνομα υπολογιστή</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ping Time</source>
|
||||
<translation>Χρόνος καθυστέρησης</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<source>Amount</source>
|
||||
<translation>Ποσό</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter a Bitcoin address (e.g. %1)</source>
|
||||
<translation>Εισάγετε μια διεύθυνση Bitcoin (π.χ. %1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 d</source>
|
||||
<translation>%1 d</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 h</source>
|
||||
<translation>%1 ώ</translation>
|
||||
|
@ -976,11 +1256,31 @@ Address: %4
|
|||
<source>%1 m</source>
|
||||
<translation>%1 λ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 s</source>
|
||||
<translation>%1 s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETWORK</source>
|
||||
<translation>Δίκτυο</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>UNKNOWN</source>
|
||||
<translation>Άγνωστο(α)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>None</source>
|
||||
<translation>Κανένα</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>N/A</source>
|
||||
<translation>Μη διαθέσιμο</translation>
|
||||
</message>
|
||||
</context>
|
||||
<message>
|
||||
<source>%1 ms</source>
|
||||
<translation>%1 ms</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QRImageWidget</name>
|
||||
<message>
|
||||
|
@ -1054,6 +1354,22 @@ Address: %4
|
|||
<source>Current number of blocks</source>
|
||||
<translation>Τρέχον αριθμός μπλοκ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Received</source>
|
||||
<translation>Παραλήφθησαν</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Version</source>
|
||||
<translation>Έκδοση</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Services</source>
|
||||
<translation>Υπηρεσίες</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ping Time</source>
|
||||
<translation>Χρόνος καθυστέρησης</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Last block time</source>
|
||||
<translation>Χρόνος τελευταίου μπλοκ</translation>
|
||||
|
@ -1130,6 +1446,26 @@ Address: %4
|
|||
<source>%1 GB</source>
|
||||
<translation>%1 GB</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>via %1</source>
|
||||
<translation>μέσω %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>never</source>
|
||||
<translation>ποτέ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Inbound</source>
|
||||
<translation>Εισερχόμενα</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Outbound</source>
|
||||
<translation>Εξερχόμενα</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown</source>
|
||||
<translation>Άγνωστο(α)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveCoinsDialog</name>
|
||||
|
@ -1184,6 +1520,10 @@ Address: %4
|
|||
<source>QR Code</source>
|
||||
<translation>Κώδικας QR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy &URI</source>
|
||||
<translation>Αντιγραφη της επιλεγμενης διεύθυνσης στο πρόχειρο του συστηματος</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Save Image...</source>
|
||||
<translation>&Αποθήκευση εικόνας...</translation>
|
||||
|
@ -1192,6 +1532,10 @@ Address: %4
|
|||
<source>Payment information</source>
|
||||
<translation>Πληροφορίες πληρωμής</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>URI</source>
|
||||
<translation>URI:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>Διεύθυνση</translation>
|
||||
|
@ -1254,6 +1598,10 @@ Address: %4
|
|||
<source>Send Coins</source>
|
||||
<translation>Αποστολή νομισμάτων</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Coin Control Features</source>
|
||||
<translation>Χαρακτηρηστικά επιλογής κερμάτων</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>automatically selected</source>
|
||||
<translation>επιλεγμένο αυτόματα</translation>
|
||||
|
@ -1278,10 +1626,34 @@ Address: %4
|
|||
<source>Priority:</source>
|
||||
<translation>Προτεραιότητα:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fee:</source>
|
||||
<translation>Ταρίφα</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>After Fee:</source>
|
||||
<translation>Ταρίφα αλλαγής</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Change:</source>
|
||||
<translation>Ρέστα:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction Fee:</source>
|
||||
<translation>Τέλος συναλλαγής:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose...</source>
|
||||
<translation>Επιλογή...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Minimize</source>
|
||||
<translation>Ελαχιστοποίηση</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>fast</source>
|
||||
<translation>Γρήγορο</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Send to multiple recipients at once</source>
|
||||
<translation>Αποστολή σε πολλούς αποδέκτες ταυτόχρονα</translation>
|
||||
|
@ -1294,6 +1666,10 @@ Address: %4
|
|||
<source>Clear all fields of the form.</source>
|
||||
<translation>Καθαρισμός όλων των πεδίων της φόρμας.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Dust:</source>
|
||||
<translation>Σκόνη</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Clear &All</source>
|
||||
<translation>Καθαρισμός &Όλων</translation>
|
||||
|
@ -1326,6 +1702,14 @@ Address: %4
|
|||
<source>Copy amount</source>
|
||||
<translation>Αντιγραφή ποσού</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy fee</source>
|
||||
<translation>Αντιγραφή ταρίφας</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy after fee</source>
|
||||
<translation>Αντιγραφή μετα-ταρίφας</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy bytes</source>
|
||||
<translation>Αντιγραφή των byte</translation>
|
||||
|
@ -1378,6 +1762,10 @@ Address: %4
|
|||
<source>(no label)</source>
|
||||
<translation>(χωρίς ετικέτα)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy dust</source>
|
||||
<translation>Αντιγραφή 'σκόνης'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Are you sure you want to send?</source>
|
||||
<translation>Είστε βέβαιοι για την αποστολή;</translation>
|
||||
|
@ -1463,6 +1851,10 @@ Address: %4
|
|||
<source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</source>
|
||||
<translation>Μπορείτε να υπογράφετε μηνύματα με τις διευθύνσεις σας, ώστε ν' αποδεικνύετε πως αυτές σας ανήκουν. Αποφεύγετε να υπογράφετε κάτι αόριστο καθώς ενδέχεται να εξαπατηθείτε. Υπογράφετε μόνο πλήρης δηλώσεις με τις οποίες συμφωνείτε.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The Bitcoin address to sign the message with</source>
|
||||
<translation>Διεύθυνση Bitcoin που θα σταλεί το μήνυμα</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose previously used address</source>
|
||||
<translation>Επιλογή διεύθυνσης που έχει ήδη χρησιμοποιηθεί</translation>
|
||||
|
@ -1515,6 +1907,10 @@ Address: %4
|
|||
<source>Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack.</source>
|
||||
<translation>Πληκτρολογήστε την υπογραφή διεύθυνσης, μήνυμα (βεβαιωθείτε ότι έχετε αντιγράψει τις αλλαγές γραμμής, κενά, tabs, κ.λπ. ακριβώς) και την υπογραφή παρακάτω, για να ελέγξει το μήνυμα. Να είστε προσεκτικοί για να μην διαβάσετε περισσότερα στην υπογραφή ό, τι είναι στην υπογραφή ίδιο το μήνυμα , για να μην εξαπατηθούν από έναν άνθρωπο -in - the-middle επίθεση.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The Bitcoin address the message was signed with</source>
|
||||
<translation>Διεύθυνση Bitcoin η οποία το μήνυμα έχει υπογραφεί</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Verify the message to ensure it was signed with the specified Bitcoin address</source>
|
||||
<translation>Υπογράψτε ένα μήνυμα για ν' αποδείξετε πως υπογραφθηκε απο μια συγκεκριμένη διεύθυνση Bitcoin</translation>
|
||||
|
@ -1608,6 +2004,10 @@ Address: %4
|
|||
<source>Open until %1</source>
|
||||
<translation>Ανοιχτό μέχρι %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conflicted</source>
|
||||
<translation>σύγκρουση</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1/offline</source>
|
||||
<translation>%1/χωρίς σύνδεση;</translation>
|
||||
|
@ -1652,6 +2052,10 @@ Address: %4
|
|||
<source>own address</source>
|
||||
<translation> δική σας διεύθυνση </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>watch-only</source>
|
||||
<translation>Επίβλεψη μόνο:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>label</source>
|
||||
<translation>eπιγραφή</translation>
|
||||
|
@ -1672,6 +2076,14 @@ Address: %4
|
|||
<source>Debit</source>
|
||||
<translation>Debit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Total debit</source>
|
||||
<translation>Σύνολο χρέωσης</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Total credit</source>
|
||||
<translation>Συνολική πίστωση</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction fee</source>
|
||||
<translation>Τέλος συναλλαγής </translation>
|
||||
|
@ -1696,6 +2108,10 @@ Address: %4
|
|||
<source>Merchant</source>
|
||||
<translation>Έμπορος</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generated coins must mature %1 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, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
|
||||
<translation>Πρέπει να περιμένετε %1 μπλοκ πριν μπορέσετε να χρησιμοποιήσετε τα νομίσματα που έχετε δημιουργήσει. Το μπλοκ που δημιουργήσατε μεταδόθηκε στο δίκτυο για να συμπεριληφθεί στην αλυσίδα των μπλοκ. Αν δεν μπει σε αυτή θα μετατραπεί σε "μη αποδεκτό" και δε θα μπορεί να καταναλωθεί. Αυτό συμβαίνει σπάνια όταν κάποιος άλλος κόμβος δημιουργήσει ένα μπλοκ λίγα δευτερόλεπτα πριν από εσάς.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Debug information</source>
|
||||
<translation>Πληροφορίες αποσφαλμάτωσης</translation>
|
||||
|
@ -1786,6 +2202,10 @@ Address: %4
|
|||
<source>Unconfirmed</source>
|
||||
<translation>Ανεπιβεβαίωτες</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Conflicted</source>
|
||||
<translation>Σύγκρουση</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Received with</source>
|
||||
<translation>Παραλαβή με</translation>
|
||||
|
@ -1806,6 +2226,10 @@ Address: %4
|
|||
<source>Mined</source>
|
||||
<translation>Εξόρυξη</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>watch-only</source>
|
||||
<translation>Επίβλεψη μόνο:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(n/a)</source>
|
||||
<translation>(δ/α)</translation>
|
||||
|
@ -1917,6 +2341,10 @@ Address: %4
|
|||
<source>Export Transaction History</source>
|
||||
<translation>Εξαγωγή Ιστορικού Συναλλαγών</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Watch-only</source>
|
||||
<translation>Επίβλεψη μόνο:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Exporting Failed</source>
|
||||
<translation>Η Εξαγωγή Απέτυχε</translation>
|
||||
|
@ -2153,6 +2581,10 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com
|
|||
<source>Error opening block database</source>
|
||||
<translation>Σφάλμα φορτωσης της βασης δεδομενων των μπλοκ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error: A fatal internal error occured, see debug.log for details</source>
|
||||
<translation>Σφάλμα: Παρουσιάστηκε ανεπανόρθωτο εσωτερικό σφάλμα, δείτε debug.log για λεπτομέρειες</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error: Disk space is low!</source>
|
||||
<translation>Προειδοποίηση: Χαμηλός χώρος στο δίσκο </translation>
|
||||
|
@ -2165,6 +2597,10 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com
|
|||
<source>Failed to listen on any port. Use -listen=0 if you want this.</source>
|
||||
<translation>ταλαιπωρηθειτε για να ακούσετε σε οποιαδήποτε θύρα. Χρήση - ακούστε = 0 , αν θέλετε αυτό.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Importing...</source>
|
||||
<translation>ΕΙσαγωγή...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid -onion address: '%s'</source>
|
||||
<translation>Άκυρη διεύθυνση -onion : '%s'</translation>
|
||||
|
@ -2177,6 +2613,10 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com
|
|||
<source>Rebuild block chain index from current blk000??.dat files</source>
|
||||
<translation>Εισαγωγή μπλοκ από εξωτερικό αρχείο blk000?.dat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Specify wallet file (within data directory)</source>
|
||||
<translation>Επιλέξτε αρχείο πορτοφολιού (μέσα απο κατάλογο δεδομένων)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Verifying blocks...</source>
|
||||
<translation>Επαλήθευση των μπλοκ... </translation>
|
||||
|
@ -2193,6 +2633,26 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com
|
|||
<source>Imports blocks from external blk000??.dat file</source>
|
||||
<translation>Εισαγωγή μπλοκ από εξωτερικό αρχείο blk000?.dat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cannot obtain a lock on data directory %s. Bitcoin Core is probably already running.</source>
|
||||
<translation>Αδυναμία κλειδώματος του φακέλου δεδομένων %s. Πιθανώς το Bitcoin να είναι ήδη ενεργό.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Connect through SOCKS5 proxy</source>
|
||||
<translation>Σύνδεση μέσω διαμεσολαβητή SOCKS5</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Could not parse -rpcbind value %s as network address</source>
|
||||
<translation>Δεν μπόρεσε να αναλυθεί η παράμετρος -rpcbind value %s ως διεύθυνση δικτύου</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error loading wallet.dat: Wallet requires newer version of Bitcoin Core</source>
|
||||
<translation>Σφάλμα φόρτωσης wallet.dat: Το Πορτοφόλι απαιτεί μια νεότερη έκδοση του Bitcoin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error: Unsupported argument -tor found, use -onion.</source>
|
||||
<translation>Σφάλμα: Μη συμβατή παράμετρος -tor. Χρησιμοποιήσε την παράμετρο -onion</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Information</source>
|
||||
<translation>Πληροφορία</translation>
|
||||
|
@ -2205,6 +2665,10 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com
|
|||
<source>Invalid amount for -mintxfee=<amount>: '%s'</source>
|
||||
<translation>Μη έγκυρο ποσό για την παράμετρο -paytxfee=<amount>: '%s'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
|
||||
<translation>Ρυθμίσεις SSL: (ανατρέξτε στο Bitcoin Wiki για οδηγίες ρυθμίσεων SSL)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Send trace/debug info to console instead of debug.log file</source>
|
||||
<translation>Αποστολή πληροφοριών εντοπισμού σφαλμάτων στην κονσόλα αντί του αρχείου debug.log</translation>
|
||||
|
@ -2217,6 +2681,10 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com
|
|||
<source>Signing transaction failed</source>
|
||||
<translation>Η υπογραφή συναλλαγής απέτυχε </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This is experimental software.</source>
|
||||
<translation>Η εφαρμογή είναι σε πειραματικό στάδιο.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction amount too small</source>
|
||||
<translation>Το ποσό της συναλλαγής είναι πολύ μικρο </translation>
|
||||
|
@ -2245,6 +2713,10 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com
|
|||
<source>Warning: This version is obsolete, upgrade required!</source>
|
||||
<translation>Προειδοποίηση: Αυτή η έκδοση είναι ξεπερασμένη, απαιτείται αναβάθμιση </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Zapping all transactions from wallet...</source>
|
||||
<translation>Μεταφορά όλων των συναλλαγών απο το πορτοφόλι</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>on startup</source>
|
||||
<translation>κατά την εκκίνηση</translation>
|
||||
|
@ -2289,14 +2761,62 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com
|
|||
<source>Error loading wallet.dat: Wallet corrupted</source>
|
||||
<translation>Σφάλμα φόρτωσης wallet.dat: Κατεστραμμένο Πορτοφόλι</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>How thorough the block verification of -checkblocks is (0-4, default: %u)</source>
|
||||
<translation>Πόσο εξονυχιστική να είναι η επιβεβαίωση του μπλοκ (0-4, προεπιλογή: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u)</source>
|
||||
<translation>Διατηρήση ένος πλήρες ευρετήριου συναλλαγών (προεπιλογή: %u) </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Number of seconds to keep misbehaving peers from reconnecting (default: %u)</source>
|
||||
<translation>Δευτερόλεπτα πριν επιτραπεί ξανά η σύνδεση των προβληματικών peers (προεπιλογή: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error loading wallet.dat</source>
|
||||
<translation>Σφάλμα φόρτωσης αρχείου wallet.dat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Force safe mode (default: %u)</source>
|
||||
<translation>Επιβολή ασφαλής λειτουργίας (προεπιλογή: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generate coins (default: %u)</source>
|
||||
<translation>Δημιουργία νομισμάτων (προκαθορισμος: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>How many blocks to check at startup (default: %u, 0 = all)</source>
|
||||
<translation>Πόσα μπλοκ να ελέγχθουν κατά την εκκίνηση (προεπιλογή: %u, 0 = όλα)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Include IP addresses in debug output (default: %u)</source>
|
||||
<translation>Να συμπεριληφθεί η διεύθυνση IP στην αναφορά? (προεπιλογή: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid -proxy address: '%s'</source>
|
||||
<translation>Δεν είναι έγκυρη η διεύθυνση διαμεσολαβητή: '%s'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Print block tree on startup (default: %u)</source>
|
||||
<translation>Εκτύπωση μπλοκ δέντρου κατά την εκκίνηση (προεπιλογή: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Server certificate file (default: %s)</source>
|
||||
<translation>Αρχείο πιστοποιητικού του διακομιστή (προεπιλογή: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Specify connection timeout in milliseconds (minimum: 1, default: %d)</source>
|
||||
<translation>Ορισμός λήξης χρονικού ορίου σε χιλιοστά του δευτερολέπτου(προεπιλογή: %d)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Specify pid file (default: %s)</source>
|
||||
<translation>Ορίστε αρχείο pid (προεπιλογή: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Threshold for disconnecting misbehaving peers (default: %u)</source>
|
||||
<translation>Όριο αποσύνδεσης προβληματικών peers (προεπιλογή: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown network specified in -onlynet: '%s'</source>
|
||||
<translation>Άγνωστo δίκτυο ορίζεται σε onlynet: '%s'</translation>
|
||||
|
|
|
@ -524,6 +524,10 @@ Dirección: %4
|
|||
</context>
|
||||
<context>
|
||||
<name>CoinControlDialog</name>
|
||||
<message>
|
||||
<source>Coin Selection</source>
|
||||
<translation>Selección de la moneda</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Quantity:</source>
|
||||
<translation>Cantidad:</translation>
|
||||
|
@ -572,6 +576,14 @@ Dirección: %4
|
|||
<source>Amount</source>
|
||||
<translation>Cantidad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Received with label</source>
|
||||
<translation>Recibido con etiqueta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Received with address</source>
|
||||
<translation>Recibido con dirección</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Fecha</translation>
|
||||
|
@ -1034,6 +1046,14 @@ Dirección: %4
|
|||
<source>Map port using &UPnP</source>
|
||||
<translation>Mapear el puerto mediante &UPnP</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Connect to the Bitcoin network through a SOCKS5 proxy.</source>
|
||||
<translation>Conectarse a la red Bitcoin a través de un proxy SOCKS5.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Connect through SOCKS5 proxy (default proxy):</source>
|
||||
<translation>&Conectarse a través de proxy SOCKS5 (proxy predeterminado):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Proxy &IP:</source>
|
||||
<translation>Dirección &IP del proxy:</translation>
|
||||
|
@ -1824,6 +1844,50 @@ Dirección: %4
|
|||
<source>Custom change address</source>
|
||||
<translation>Dirección propia</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction Fee:</source>
|
||||
<translation>Comisión de Transacción:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Minimize</source>
|
||||
<translation>Minimizar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>per kilobyte</source>
|
||||
<translation>por kilobyte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>total at least</source>
|
||||
<translation>total por lo menos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Recommended:</source>
|
||||
<translation>Recomendado:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Custom:</source>
|
||||
<translation>Personalizado:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(Smart fee not initialized yet. This usually takes a few blocks...)</source>
|
||||
<translation>(Tarifa inteligente no inicializado aún. Esto generalmente lleva a pocos bloques...)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirmation time:</source>
|
||||
<translation>Tiempo de confirmación:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>normal</source>
|
||||
<translation>normal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>fast</source>
|
||||
<translation>rápido</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(confirmation may take longer)</source>
|
||||
<translation>(confirmación puede tardar más tiempo)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Send to multiple recipients at once</source>
|
||||
<translation>Enviar a múltiples destinatarios de una vez</translation>
|
||||
|
@ -1928,6 +1992,14 @@ Dirección: %4
|
|||
<source>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.</source>
|
||||
<translation>¡La transacción fue rechazada! Esto puede haber ocurrido si alguno de los bitcoins de su monedero ya estaba gastado o si ha usado una copia de wallet.dat y los bitcoins estaban gastados en la copia pero no se habían marcado como gastados aqui.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pay only the minimum fee of %1</source>
|
||||
<translation>Paga sólo la cuota mínima de %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Estimated to begin confirmation within %1 block(s).</source>
|
||||
<translation>Estimado para comenzar confirmación dentro de %1 bloque(s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: Invalid Bitcoin address</source>
|
||||
<translation>Alerta: Dirección de Bitcoin inválida</translation>
|
||||
|
@ -2738,6 +2810,10 @@ Por ejemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com
|
|||
<source>Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup</source>
|
||||
<translation>Borrar todas las transacciones del monedero y sólo recuperar aquellas partes de la cadena de bloques por medio de -rescan on startup.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>.</source>
|
||||
<translation>Distribuido bajo la licencia de software MIT, vea la copia del archivo adjunto o <http://www.opensource.org/licenses/mit-license.php>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter regression test mode, which uses a special chain in which blocks can be solved instantly.</source>
|
||||
<translation>Ingresar en el modo de prueba de regresión, que utiliza una cadena especial en la que los bloques se pueden resolver instantáneamente.</translation>
|
||||
|
|
|
@ -478,6 +478,10 @@
|
|||
<source>Up to date</source>
|
||||
<translation>Aggiornato</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>Processed %n blocks of transaction history.</source>
|
||||
<translation><numerusform>Processati %n blocchi dello storico transazioni.</numerusform><numerusform>Processati %n blocchi dello storico delle transazioni.</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Catching up...</source>
|
||||
<translation>In aggiornamento...</translation>
|
||||
|
@ -521,6 +525,11 @@ Indirizzo: %4
|
|||
</context>
|
||||
<context>
|
||||
<name>CoinControlDialog</name>
|
||||
<message>
|
||||
<source>Coin Selection</source>
|
||||
<translation>Seleziona Moneta
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Quantity:</source>
|
||||
<translation>Quantità:</translation>
|
||||
|
@ -569,6 +578,14 @@ Indirizzo: %4
|
|||
<source>Amount</source>
|
||||
<translation>Importo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Received with label</source>
|
||||
<translation>Ricevuto con etichetta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Received with address</source>
|
||||
<translation>Ricevuto con l'indirizzo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Data</translation>
|
||||
|
@ -1024,6 +1041,14 @@ Più URL vengono separati da una barra verticale |.</translation>
|
|||
<source>Map port using &UPnP</source>
|
||||
<translation>Mappa le porte tramite &UPnP</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Connect to the Bitcoin network through a SOCKS5 proxy.</source>
|
||||
<translation>Connessione alla rete Bitcoin attraverso un proxy SOCKS5.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Connect through SOCKS5 proxy (default proxy):</source>
|
||||
<translation>&Connessione attraverso proxy SOCKS5 (proxy predefinito):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Proxy &IP:</source>
|
||||
<translation>&IP del proxy:</translation>
|
||||
|
@ -1187,6 +1212,10 @@ Più URL vengono separati da una barra verticale |.</translation>
|
|||
<source>Mined balance in watch-only addresses that has not yet matured</source>
|
||||
<translation>l'equilibrio estratto solo nello sguardo degli indirizzi non è ancora maturo </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Current total balance in watch-only addresses</source>
|
||||
<translation>Saldo corrente totale negli indirizzi watch-only</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>out of sync</source>
|
||||
<translation>non sincronizzato</translation>
|
||||
|
@ -1810,6 +1839,50 @@ Più URL vengono separati da una barra verticale |.</translation>
|
|||
<source>Custom change address</source>
|
||||
<translation>Personalizza indirizzo di resto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction Fee:</source>
|
||||
<translation>Tasse di Transazione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose...</source>
|
||||
<translation>Scegli...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Minimize</source>
|
||||
<translation>Minimizza</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>per kilobyte</source>
|
||||
<translation>per kilobyte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source>
|
||||
<translation>Pagando solo la tariffa minima è bene finché c'è meno volume di transazioni di spazio nei blocchi. Ma essere consapevoli che questo può finire in una transazione non confermando ancora una volta non vi è più richiesta per le transazioni Bitcoin di rete in grado di elaborare.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Recommended:</source>
|
||||
<translation>Raccomandati:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Custom:</source>
|
||||
<translation>Personalizza:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirmation time:</source>
|
||||
<translation>Tempo di conferma:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>normal</source>
|
||||
<translation>normale</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>fast</source>
|
||||
<translation>veloce</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Send as zero-fee transaction if possible</source>
|
||||
<translation>Invia una transazione a zero commissioni se possibile</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Send to multiple recipients at once</source>
|
||||
<translation>Invia a diversi beneficiari in una volta sola</translation>
|
||||
|
@ -2940,6 +3013,22 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com
|
|||
<source>Set maximum size of high-priority/low-fee transactions in bytes (default: %d)</source>
|
||||
<translation>Imposta la dimensione massima in byte delle transazioni ad alta-priorità/basse-commissioni (predefinita: %d)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cannot resolve -whitebind address: '%s'</source>
|
||||
<translation>Impossibile risolvere -whitebind address: '%s'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Connect through SOCKS5 proxy</source>
|
||||
<translation>Connetti attraverso SOCKS5 proxy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error loading wallet.dat: Wallet requires newer version of Bitcoin Core</source>
|
||||
<translation>Errore caricamento wallet.dat: il wallet richiede una versione nuova di Bitcoin Core</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fee (in BTC/kB) to add to transactions you send (default: %s)</source>
|
||||
<translation>Commissione (in BTC/kB) da aggiungere alla transazione che invii (default: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Information</source>
|
||||
<translation>Informazioni</translation>
|
||||
|
@ -2980,6 +3069,10 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com
|
|||
<source>Send trace/debug info to console instead of debug.log file</source>
|
||||
<translation>Invia le informazioni di trace/debug alla console invece che al file debug.log</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Send transactions as zero-fee transactions if possible (default: %u)</source>
|
||||
<translation>Invia transazioni a zero commissioni se possibile (default: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show all debugging options (usage: --help -help-debug)</source>
|
||||
<translation>Mostra tutte le opzioni di debug (utilizzo: --help -help-debug)</translation>
|
||||
|
@ -3085,10 +3178,62 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com
|
|||
<source>Error loading wallet.dat</source>
|
||||
<translation>Errore caricamento wallet.dat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Force safe mode (default: %u)</source>
|
||||
<translation>Forza modalità provvisoria (dafault: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generate coins (default: %u)</source>
|
||||
<translation>Genera coins (default: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>How many blocks to check at startup (default: %u, 0 = all)</source>
|
||||
<translation>Quanti blocchi da controllare all'avvio (dafault: %u, 0 = tutti)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid -proxy address: '%s'</source>
|
||||
<translation>Indirizzo -proxy non valido: '%s'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maintain at most <n> connections to peers (default: %u)</source>
|
||||
<translation>Mantieni al massimo <n> connessioni ai peers (default: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Prepend debug output with timestamp (default: %u)</source>
|
||||
<translation>Pretendi output di debug con timestamp (default: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Print block tree on startup (default: %u)</source>
|
||||
<translation>Stampa l'albero dei blocchi all'avvio (default: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Server certificate file (default: %s)</source>
|
||||
<translation>File certificato del server (default: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Server private key (default: %s)</source>
|
||||
<translation>Chiave privata del server (default: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Specify configuration file (default: %s)</source>
|
||||
<translation>Specifica il file di configurazione (default: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Specify connection timeout in milliseconds (minimum: 1, default: %d)</source>
|
||||
<translation>Specifica il timeout di connessione in millisecondi (minimo:1, default: %d)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Specify pid file (default: %s)</source>
|
||||
<translation>Specifica il file pid (default: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Spend unconfirmed change when sending transactions (default: %u)</source>
|
||||
<translation>Spendi il resto non confermato quando si inviano transazioni (default: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Stop running after importing blocks from disk (default: %u)</source>
|
||||
<translation>Interrompi dopo aver importato i blocchi dal disco (default: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown network specified in -onlynet: '%s'</source>
|
||||
<translation>Rete sconosciuta specificata in -onlynet: '%s'</translation>
|
||||
|
|
|
@ -69,6 +69,10 @@
|
|||
<source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
|
||||
<translation>これらは支払いを送信するためのあなたの Bitcoin アドレスです。コインを送信する前に、常に額と受信アドレスを確認してください。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction.</source>
|
||||
<translation>これらは支払いを受け取るためのビットコインアドレスです。トランザクションごとに新しい受け取り用アドレスを作成することが推奨されます。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy &Label</source>
|
||||
<translation>ラベルをコピー (&L)</translation>
|
||||
|
@ -89,7 +93,11 @@
|
|||
<source>Exporting Failed</source>
|
||||
<translation>エクスポート失敗</translation>
|
||||
</message>
|
||||
</context>
|
||||
<message>
|
||||
<source>There was an error trying to save the address list to %1. Please try again.</source>
|
||||
<translation>トランザクション履歴を %1 へ保存する際にエラーが発生しました。再試行してください。</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AddressTableModel</name>
|
||||
<message>
|
||||
|
@ -175,6 +183,10 @@
|
|||
<source>Wallet encrypted</source>
|
||||
<translation>ウォレットは暗号化されました</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</source>
|
||||
<translation>ウォレットの新しいパスフレーズを入力してください。<br/><b>10文字以上のランダムな文字</b>で構成されたものか、<b>8単語以上の単語</b>で構成されたパスフレーズを使用してください。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
|
||||
<translation>Bitcoin は暗号化プロセスを終了するために今すぐ終了します。あなたのコンピュータがマルウェアに感染してコインを盗まれることもあるので、暗号化してもあなたのウォレットを完全に保護できないことを覚えていてください。</translation>
|
||||
|
@ -282,6 +294,10 @@
|
|||
<source>Open &URI...</source>
|
||||
<translation>URI を開く (&U)...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bitcoin Core client</source>
|
||||
<translation>Bitcoinコア クライアント</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Importing blocks from disk...</source>
|
||||
<translation>ディスクからブロックをインポートしています...</translation>
|
||||
|
@ -334,6 +350,10 @@
|
|||
<source>&Receive</source>
|
||||
<translation>受信 (&R)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show information about Bitcoin Core</source>
|
||||
<translation>Bitcoinコアに関する情報を表示</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Show / Hide</source>
|
||||
<translation>見る/隠す (&S)</translation>
|
||||
|
@ -374,10 +394,18 @@
|
|||
<source>Bitcoin Core</source>
|
||||
<translation>Bitcoin のコア</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Request payments (generates QR codes and bitcoin: URIs)</source>
|
||||
<translation>支払いを要求する (QRコードとbitcoin:ではじまるURIを生成する)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&About Bitcoin Core</source>
|
||||
<translation>ビットコインコアについて (&A)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show the list of used sending addresses and labels</source>
|
||||
<translation>使用済みの送金用アドレスとラベルの一覧を表示する</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show the list of used receiving addresses and labels</source>
|
||||
<translation>支払いを受け取るアドレスとラベルのリストを表示する</translation>
|
||||
|
@ -483,6 +511,10 @@ Address: %4
|
|||
</context>
|
||||
<context>
|
||||
<name>CoinControlDialog</name>
|
||||
<message>
|
||||
<source>Coin Selection</source>
|
||||
<translation>コイン選択</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Quantity:</source>
|
||||
<translation>数量:</translation>
|
||||
|
@ -555,6 +587,14 @@ Address: %4
|
|||
<source>Copy transaction ID</source>
|
||||
<translation>取引 ID をコピー</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lock unspent</source>
|
||||
<translation>未使用トランザクションをロックする</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unlock unspent</source>
|
||||
<translation>未使用トランザクションをアンロックする</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy quantity</source>
|
||||
<translation>数量をコピーする</translation>
|
||||
|
@ -676,6 +716,10 @@ Address: %4
|
|||
<source>version</source>
|
||||
<translation>バージョン</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>About Bitcoin Core</source>
|
||||
<translation>Bitcoinコアについて</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Command-line options</source>
|
||||
<translation>コマンドライン オプション</translation>
|
||||
|
@ -735,7 +779,15 @@ Address: %4
|
|||
<source>Error</source>
|
||||
<translation>エラー</translation>
|
||||
</message>
|
||||
</context>
|
||||
<message numerus="yes">
|
||||
<source>%n GB of free space available</source>
|
||||
<translation><numerusform>%n GBの空き容量が利用可能</numerusform></translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>(of %n GB needed)</source>
|
||||
<translation><numerusform>(%n GB必要)</numerusform></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>OpenURIDialog</name>
|
||||
<message>
|
||||
|
@ -785,6 +837,14 @@ Address: %4
|
|||
<source>MB</source>
|
||||
<translation>MB</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Number of script &verification threads</source>
|
||||
<translation>スクリプト検証用スレッド数 (&V)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Accept connections from outside</source>
|
||||
<translation>外部からの接続を許可する</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</source>
|
||||
<translation>プロキシのIPアドレス (例えば IPv4: 127.0.0.1 / IPv6: ::1)</translation>
|
||||
|
@ -932,6 +992,14 @@ Address: %4
|
|||
<source>Your current total balance</source>
|
||||
<translation>あなたの現在の残高</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Recent transactions</source>
|
||||
<translation>最近のトランザクション</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mined balance in watch-only addresses that has not yet matured</source>
|
||||
<translation>ウォッチオンリーアドレスの採掘された残高のうち、成熟していないもの</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>out of sync</source>
|
||||
<translation>同期していない</translation>
|
||||
|
@ -947,6 +1015,14 @@ Address: %4
|
|||
<source>Invalid payment address %1</source>
|
||||
<translation>支払いのアドレス「%1」は無効です</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Payment request rejected</source>
|
||||
<translation>支払い要求は拒否されました</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Payment request has expired.</source>
|
||||
<translation>支払いのリクエストは期限切れです</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Payment request error</source>
|
||||
<translation>支払いのリクエストのエラーです</translation>
|
||||
|
@ -974,6 +1050,10 @@ Address: %4
|
|||
</context>
|
||||
<context>
|
||||
<name>PeerTableModel</name>
|
||||
<message>
|
||||
<source>User Agent</source>
|
||||
<translation>ユーザエージェント</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
|
@ -1063,6 +1143,10 @@ Address: %4
|
|||
<source>Current number of blocks</source>
|
||||
<translation>現在のブロック数</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>User Agent</source>
|
||||
<translation>ユーザエージェント</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Last block time</source>
|
||||
<translation>最終ブロックの日時</translation>
|
||||
|
@ -1154,6 +1238,10 @@ Address: %4
|
|||
<source>&Message:</source>
|
||||
<translation>メッセージ (&M):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Clear all fields of the form.</source>
|
||||
<translation>全ての入力項目をクリア</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Clear</source>
|
||||
<translation>クリア</translation>
|
||||
|
@ -1162,6 +1250,10 @@ Address: %4
|
|||
<source>Show</source>
|
||||
<translation>表示</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Remove the selected entries from the list</source>
|
||||
<translation>リストから選択項目を削除</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy label</source>
|
||||
<translation>ラベルをコピーする</translation>
|
||||
|
@ -1307,6 +1399,10 @@ Address: %4
|
|||
<source>Add &Recipient</source>
|
||||
<translation>受取人を追加 (&R)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Clear all fields of the form.</source>
|
||||
<translation>全ての入力項目をクリア</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Clear &All</source>
|
||||
<translation>すべてクリア (&A)</translation>
|
||||
|
@ -1433,7 +1529,15 @@ Address: %4
|
|||
</context>
|
||||
<context>
|
||||
<name>ShutdownWindow</name>
|
||||
</context>
|
||||
<message>
|
||||
<source>Bitcoin Core is shutting down...</source>
|
||||
<translation>Bitcoin Coreをシャットダウンしています。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Do not shut down the computer until this window disappears.</source>
|
||||
<translation>このウィンドウが消えるまでコンピュータをシャットダウンしないで下さい。</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SignVerifyMessageDialog</name>
|
||||
<message>
|
||||
|
@ -1956,7 +2060,11 @@ Address: %4
|
|||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
</context>
|
||||
<message>
|
||||
<source>No wallet has been loaded.</source>
|
||||
<translation>ウォレットがロードされていません</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletModel</name>
|
||||
<message>
|
||||
|
|
|
@ -9,10 +9,22 @@
|
|||
<source>Create a new address</source>
|
||||
<translation>Жаңа адрес енгізу</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&New</source>
|
||||
<translation>Жаңа</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy the currently selected address to the system clipboard</source>
|
||||
<translation>Таңдаған адресті тізімнен жою</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>C&lose</source>
|
||||
<translation>Жабу</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Export</source>
|
||||
<translation>Экспорт</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Delete</source>
|
||||
<translation>Жою</translation>
|
||||
|
@ -78,12 +90,140 @@
|
|||
</context>
|
||||
<context>
|
||||
<name>BitcoinGUI</name>
|
||||
<message>
|
||||
<source>&Transactions</source>
|
||||
<translation>&Транзакциялар</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>E&xit</source>
|
||||
<translation>Шығу</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Options...</source>
|
||||
<translation>Параметрлері</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Backup Wallet...</source>
|
||||
<translation>Әмиянды жасыру</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Change Passphrase...</source>
|
||||
<translation>Құпия сөзді өзгерту</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bitcoin</source>
|
||||
<translation>Биткоин</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet</source>
|
||||
<translation>Әмиян</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Send</source>
|
||||
<translation>Жіберу</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Receive</source>
|
||||
<translation>Алу</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&File</source>
|
||||
<translation>Файл</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Help</source>
|
||||
<translation>Көмек</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%n hour(s)</source>
|
||||
<translation><numerusform>%n сағат</numerusform></translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%n day(s)</source>
|
||||
<translation><numerusform>%n күн</numerusform></translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%n week(s)</source>
|
||||
<translation><numerusform>%n апта</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 and %2</source>
|
||||
<translation>%1 немесе %2</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%n year(s)</source>
|
||||
<translation><numerusform>%n жыл</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 behind</source>
|
||||
<translation>%1 қалмады</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error</source>
|
||||
<translation>қате</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning</source>
|
||||
<translation>Ескерту</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Information</source>
|
||||
<translation>Информация</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Up to date</source>
|
||||
<translation>Жаңартылған</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ClientModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoinControlDialog</name>
|
||||
<message>
|
||||
<source>Amount:</source>
|
||||
<translation>Саны</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Priority:</source>
|
||||
<translation>Басымдық</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fee:</source>
|
||||
<translation>Комиссия</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Dust:</source>
|
||||
<translation>Шаң</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>After Fee:</source>
|
||||
<translation>Комиссия алу кейін</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Amount</source>
|
||||
<translation>Саны</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Күні</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirmations</source>
|
||||
<translation>Растау саны</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirmed</source>
|
||||
<translation>Растық</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Priority</source>
|
||||
<translation>Басымдық</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>no</source>
|
||||
<translation>жоқ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(таңбасыз)</translation>
|
||||
|
@ -91,6 +231,10 @@
|
|||
</context>
|
||||
<context>
|
||||
<name>EditAddressDialog</name>
|
||||
<message>
|
||||
<source>&Address</source>
|
||||
<translation>Адрес</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>FreespaceChecker</name>
|
||||
|
@ -100,6 +244,10 @@
|
|||
</context>
|
||||
<context>
|
||||
<name>Intro</name>
|
||||
<message>
|
||||
<source>Error</source>
|
||||
<translation>қате</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>OpenURIDialog</name>
|
||||
|
@ -118,6 +266,10 @@
|
|||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<source>Amount</source>
|
||||
<translation>Саны</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QRImageWidget</name>
|
||||
|
@ -134,6 +286,10 @@
|
|||
<source>Address</source>
|
||||
<translation>Адрес</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Amount</source>
|
||||
<translation>Саны</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>таңба</translation>
|
||||
|
@ -141,10 +297,18 @@
|
|||
</context>
|
||||
<context>
|
||||
<name>RecentRequestsTableModel</name>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Күні</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>таңба</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Amount</source>
|
||||
<translation>Саны</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(таңбасыз)</translation>
|
||||
|
@ -152,6 +316,26 @@
|
|||
</context>
|
||||
<context>
|
||||
<name>SendCoinsDialog</name>
|
||||
<message>
|
||||
<source>Amount:</source>
|
||||
<translation>Саны</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Priority:</source>
|
||||
<translation>Басымдық</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fee:</source>
|
||||
<translation>Комиссия:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>After Fee:</source>
|
||||
<translation>Комиссия алу кейін:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Dust:</source>
|
||||
<translation>Шаң</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(таңбасыз)</translation>
|
||||
|
@ -174,12 +358,24 @@
|
|||
</context>
|
||||
<context>
|
||||
<name>TransactionDesc</name>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Күні</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Amount</source>
|
||||
<translation>Саны</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDescDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionTableModel</name>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Күні</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>Адрес</translation>
|
||||
|
@ -191,6 +387,14 @@
|
|||
<source>Comma separated file (*.csv)</source>
|
||||
<translation>Үтірмен бөлінген файл (*.csv)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirmed</source>
|
||||
<translation>Растық</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Күні</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>таңба</translation>
|
||||
|
@ -211,9 +415,17 @@
|
|||
</context>
|
||||
<context>
|
||||
<name>WalletView</name>
|
||||
<message>
|
||||
<source>&Export</source>
|
||||
<translation>Экспорт</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>bitcoin-core</name>
|
||||
<message>
|
||||
<source>Information</source>
|
||||
<translation>Информация</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction amount too small</source>
|
||||
<translation>Транзакция өте кішкентай</translation>
|
||||
|
@ -222,5 +434,13 @@
|
|||
<source>Transaction too large</source>
|
||||
<translation>Транзакция өте үлкен</translation>
|
||||
</message>
|
||||
</context>
|
||||
<message>
|
||||
<source>Warning</source>
|
||||
<translation>Ескерту</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error</source>
|
||||
<translation>қате</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
|
@ -67,7 +67,7 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
|
||||
<translation>Dit zijn uw Bitcoinadressen om betalingen mee te verzenden. Check altijd het bedrag en het ontvangende adres voordat u uw bitcoins verzendt.</translation>
|
||||
<translation>Dit zijn uw Bitcoinadressen om betalingen mee te verzenden. Controleer altijd het bedrag en het ontvangende adres voordat u uw bitcoins verzendt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction.</source>
|
||||
|
@ -478,6 +478,10 @@
|
|||
<source>Up to date</source>
|
||||
<translation>Bijgewerkt</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>Processed %n blocks of transaction history.</source>
|
||||
<translation><numerusform>%n Blok verwerkt van transactie geschiedenis.</numerusform><numerusform>%n Blokken verwerkt van transactie geschiedenis.</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Catching up...</source>
|
||||
<translation>Aan het bijwerken...</translation>
|
||||
|
@ -520,6 +524,10 @@ Adres: %4
|
|||
</context>
|
||||
<context>
|
||||
<name>CoinControlDialog</name>
|
||||
<message>
|
||||
<source>Coin Selection</source>
|
||||
<translation>Munt Selectie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Quantity:</source>
|
||||
<translation>Kwantiteit</translation>
|
||||
|
@ -568,6 +576,14 @@ Adres: %4
|
|||
<source>Amount</source>
|
||||
<translation>Bedrag</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Received with label</source>
|
||||
<translation>Ontvangen met label</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Received with address</source>
|
||||
<translation>Ontvangen met adres</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Datum</translation>
|
||||
|
@ -904,7 +920,11 @@ Adres: %4
|
|||
<source>%n GB of free space available</source>
|
||||
<translation><numerusform>%n GB aan vrije oplsagruimte beschikbaar</numerusform><numerusform>%n GB aan vrije oplsagruimte beschikbaar</numerusform></translation>
|
||||
</message>
|
||||
</context>
|
||||
<message numerus="yes">
|
||||
<source>(of %n GB needed)</source>
|
||||
<translation><numerusform>(van %n GB nodig)</numerusform><numerusform>(van %n GB nodig)</numerusform></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>OpenURIDialog</name>
|
||||
<message>
|
||||
|
@ -1026,6 +1046,14 @@ Adres: %4
|
|||
<source>Map port using &UPnP</source>
|
||||
<translation>Portmapping via &UPnP</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Connect to the Bitcoin network through a SOCKS5 proxy.</source>
|
||||
<translation>Verbind met het Bitcoin netwerk via een SOCKS5 proxy.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Connect through SOCKS5 proxy (default proxy):</source>
|
||||
<translation>&Verbind via een SOCKS5-proxy (standaardproxy):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Proxy &IP:</source>
|
||||
<translation>Proxy &IP:</translation>
|
||||
|
@ -1157,6 +1185,10 @@ Adres: %4
|
|||
<source>Mined balance that has not yet matured</source>
|
||||
<translation>Gedolven saldo dat nog niet tot wasdom is gekomen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Balances</source>
|
||||
<translation>Saldi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Total:</source>
|
||||
<translation>Totaal:</translation>
|
||||
|
@ -1165,10 +1197,30 @@ Adres: %4
|
|||
<source>Your current total balance</source>
|
||||
<translation>Uw totale saldo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Your current balance in watch-only addresses</source>
|
||||
<translation>Uw huidige balans in alleen-bekijkbare adressen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Spendable:</source>
|
||||
<translation>Besteedbaar:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Recent transactions</source>
|
||||
<translation>Recente transacties</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unconfirmed transactions to watch-only addresses</source>
|
||||
<translation>Onbevestigde transacties naar alleen-bekijkbare adressen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mined balance in watch-only addresses that has not yet matured</source>
|
||||
<translation>Ontgonnen saldo dat nog niet tot wasdom is gekomen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Current total balance in watch-only addresses</source>
|
||||
<translation>Huidige balans in alleen-bekijkbare adressen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>out of sync</source>
|
||||
<translation>niet gesynchroniseerd</translation>
|
||||
|
@ -1188,10 +1240,18 @@ Adres: %4
|
|||
<source>Payment request rejected</source>
|
||||
<translation>Betalingsverzoek geweigerd</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Payment request network doesn't match client network.</source>
|
||||
<translation>Betalingsaanvraagnetwerk komt niet overeen met klantennetwerk.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Payment request has expired.</source>
|
||||
<translation>Betalingsverzoek is verlopen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Payment request is not initialized.</source>
|
||||
<translation>Betalingsaanvraag is niet geïnitialiseerd.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Requested payment amount of %1 is too small (considered dust).</source>
|
||||
<translation>Het gevraagde betalingsbedrag van %1 is te weinig (beschouwd als stof).</translation>
|
||||
|
@ -1208,10 +1268,18 @@ Adres: %4
|
|||
<source>Payment request fetch URL is invalid: %1</source>
|
||||
<translation>URL om betalingsverzoek te verkrijgen is ongeldig: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters.</source>
|
||||
<translation>URI kan niet verwerkt worden! Dit kan het gevolg zijn van een ongeldig Bitcoin adres of misvormde URI parameters.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Payment request file handling</source>
|
||||
<translation>Betalingsverzoek bestandsafhandeling</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Payment request file cannot be read! This can be caused by an invalid payment request file.</source>
|
||||
<translation>Betalingsverzoek-bestand kan niet gelezen of verwerkt worden! Dit kan veroorzaakt worden door een ongeldig betalingsverzoek-bestand.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unverified payment requests to custom payment scripts are unsupported.</source>
|
||||
<translation>Niet-geverifieerde betalingsverzoeken naar aangepaste betaling scripts worden niet ondersteund.</translation>
|
||||
|
@ -1224,6 +1292,10 @@ Adres: %4
|
|||
<source>Error communicating with %1: %2</source>
|
||||
<translation>Fout bij communiceren met %1: %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Payment request cannot be parsed!</source>
|
||||
<translation>Betalingsverzoek kan niet juist worden ontleed of verwerkt!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bad response from server %1</source>
|
||||
<translation>Ongeldige respons van server %1</translation>
|
||||
|
@ -1243,7 +1315,15 @@ Adres: %4
|
|||
<source>User Agent</source>
|
||||
<translation>User Agent</translation>
|
||||
</message>
|
||||
</context>
|
||||
<message>
|
||||
<source>Address/Hostname</source>
|
||||
<translation>Adres/Hostnaam</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ping Time</source>
|
||||
<translation>Ping tijd</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
|
@ -1340,6 +1420,10 @@ Adres: %4
|
|||
<source>Using OpenSSL version</source>
|
||||
<translation>Gebruikt OpenSSL versie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Using BerkeleyDB version</source>
|
||||
<translation>Gebruikt BerkeleyDB versie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Startup time</source>
|
||||
<translation>Opstarttijd</translation>
|
||||
|
@ -1372,6 +1456,14 @@ Adres: %4
|
|||
<source>Sent</source>
|
||||
<translation>Verstuurd</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Peers</source>
|
||||
<translation>&Peers</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select a peer to view detailed information.</source>
|
||||
<translation>Selecteer een peer om gedetailleerde informatie te bekijken.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Direction</source>
|
||||
<translation>Directie</translation>
|
||||
|
@ -1388,6 +1480,18 @@ Adres: %4
|
|||
<source>Services</source>
|
||||
<translation>Services</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Starting Height</source>
|
||||
<translation>Aanvangshoogte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sync Height</source>
|
||||
<translation>Synchronisatiehoogte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ban Score</source>
|
||||
<translation>Ban score</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Connection Time</source>
|
||||
<translation>Connectie tijd</translation>
|
||||
|
@ -1408,6 +1512,10 @@ Adres: %4
|
|||
<source>Bytes Received</source>
|
||||
<translation>Bytes Ontvangen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ping Time</source>
|
||||
<translation>Ping Tijd</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Last block time</source>
|
||||
<translation>Tijd laatste blok</translation>
|
||||
|
@ -1492,11 +1600,23 @@ Adres: %4
|
|||
<source>never</source>
|
||||
<translation>nooit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Inbound</source>
|
||||
<translation>Inkomend</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Outbound</source>
|
||||
<translation>Uitgaand</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown</source>
|
||||
<translation>Onbekend</translation>
|
||||
</message>
|
||||
</context>
|
||||
<message>
|
||||
<source>Fetching...</source>
|
||||
<translation>Ophalen...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveCoinsDialog</name>
|
||||
<message>
|
||||
|
@ -1724,6 +1844,50 @@ Adres: %4
|
|||
<source>Custom change address</source>
|
||||
<translation>Aangepast wisselgeldadres</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction Fee:</source>
|
||||
<translation>Transactiekosten:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose...</source>
|
||||
<translation>Kies...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Minimize</source>
|
||||
<translation>Minimaliseer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>per kilobyte</source>
|
||||
<translation>per kilobyte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>total at least</source>
|
||||
<translation>totaal ten minste</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Recommended:</source>
|
||||
<translation>Aanbevolen:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Custom:</source>
|
||||
<translation>Handmatig:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirmation time:</source>
|
||||
<translation>Bevestigings tijd:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>normal</source>
|
||||
<translation>normaal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>fast</source>
|
||||
<translation>snel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(confirmation may take longer)</source>
|
||||
<translation>(bevestiging kan langer duren)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Send to multiple recipients at once</source>
|
||||
<translation>Verstuur aan verschillende ontvangers ineens</translation>
|
||||
|
@ -1828,6 +1992,18 @@ Adres: %4
|
|||
<source>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.</source>
|
||||
<translation>De transactie was afgewezen. Dit kan gebeuren als u eerder uitgegeven munten opnieuw wilt versturen, zoals wanneer u een kopie van uw wallet.dat heeft gebruikt en in de kopie deze munten zijn gemarkeerd als uitgegeven, maar in de huidige nog niet.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>A fee higher than %1 is considered an insanely high fee.</source>
|
||||
<translation>Transactiekosten hoger dan %1 worden gezien als waanzinnig hoog.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pay only the minimum fee of %1</source>
|
||||
<translation>Betaal alleen de minimale transactiekosten van %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Estimated to begin confirmation within %1 block(s).</source>
|
||||
<translation>Beginnen van bevesting geschat binnen %1 blok(ken).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: Invalid Bitcoin address</source>
|
||||
<translation>Waarschuwing: Ongeldig Bitcoin adres</translation>
|
||||
|
@ -1879,6 +2055,10 @@ Adres: %4
|
|||
<source>This is a normal payment.</source>
|
||||
<translation>Dit is een normale betaling.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The Bitcoin address to send the payment to</source>
|
||||
<translation>Het Bitcoin adres om betaling aan te voldoen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+A</source>
|
||||
<translation>Alt+A</translation>
|
||||
|
@ -1949,6 +2129,10 @@ Adres: %4
|
|||
<source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</source>
|
||||
<translation>U kunt berichten ondertekenen met een van uw adressen om te bewijzen dat u dit adres bezit. Pas op dat u geen onduidelijke dingen ondertekent, want phishingaanvallen zouden u kunnen misleiden om zo uw identiteit te stelen. Onderteken alleen berichten waarmee u het volledig eens bent.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The Bitcoin address to sign the message with</source>
|
||||
<translation>Het Bitcoin adres om bericht mee te ondertekenen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose previously used address</source>
|
||||
<translation>Kies een eerder gebruikt adres</translation>
|
||||
|
@ -2001,6 +2185,10 @@ Adres: %4
|
|||
<source>Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack.</source>
|
||||
<translation>Voer het ondertekenende adres, bericht en handtekening hieronder in (let erop dat u nieuwe regels, spaties en tabs juist overneemt) om de handtekening te verifiëren. Let erop dat u niet meer uit het bericht interpreteert dan er daadwerkelijk staat, om te voorkomen dat u wordt misleid in een man-in-the-middle-aanval.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The Bitcoin address the message was signed with</source>
|
||||
<translation>Het Bitcoin adres waarmee het bericht ondertekend is</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Verify the message to ensure it was signed with the specified Bitcoin address</source>
|
||||
<translation>Controleer een bericht om te verifiëren dat het gespecificeerde Bitcoinadres het bericht heeft ondertekend.</translation>
|
||||
|
@ -2142,6 +2330,10 @@ Adres: %4
|
|||
<source>own address</source>
|
||||
<translation>eigen adres</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>watch-only</source>
|
||||
<translation>alleen-bekijkbaar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>label</source>
|
||||
<translation>label</translation>
|
||||
|
@ -2162,6 +2354,14 @@ Adres: %4
|
|||
<source>Debit</source>
|
||||
<translation>Debet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Total debit</source>
|
||||
<translation>Totaal debit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Total credit</source>
|
||||
<translation>Totaal credit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction fee</source>
|
||||
<translation>Transactiekosten</translation>
|
||||
|
@ -2312,6 +2512,10 @@ Adres: %4
|
|||
<source>Mined</source>
|
||||
<translation>Gedolven</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>watch-only</source>
|
||||
<translation>alleen-bekijkbaar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(n/a)</source>
|
||||
<translation>(nvt)</translation>
|
||||
|
@ -2423,6 +2627,10 @@ Adres: %4
|
|||
<source>Export Transaction History</source>
|
||||
<translation>Exporteer Transactieverleden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Watch-only</source>
|
||||
<translation>Alleen-bekijkbaar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Exporting Failed</source>
|
||||
<translation>Export Mislukt</translation>
|
||||
|
@ -2478,7 +2686,11 @@ Adres: %4
|
|||
</context>
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
</context>
|
||||
<message>
|
||||
<source>Unit to show amounts in. Click to select another unit.</source>
|
||||
<translation>Eenheid om bedragen uit te drukken. Klik om een andere eenheid te selecteren.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
<message>
|
||||
|
@ -2752,6 +2964,10 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com</tran
|
|||
<source>This is intended for regression testing tools and app development.</source>
|
||||
<translation>Dit is bedoeld voor regressie test toepassingen en applicatie onwikkeling.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Use UPnP to map the listening port (default: %u)</source>
|
||||
<translation>Gebruik UPnP om de luisterende poort te mappen (standaard: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Verifying blocks...</source>
|
||||
<translation>Blokken aan het controleren...</translation>
|
||||
|
@ -2788,6 +3004,10 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com</tran
|
|||
<source>Set maximum size of high-priority/low-fee transactions in bytes (default: %d)</source>
|
||||
<translation>Stel maximumgrootte in bytes in voor hoge-prioriteits-/lage-transactiekosten-transacties (standaard: %d)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error loading wallet.dat: Wallet requires newer version of Bitcoin Core</source>
|
||||
<translation>Fout bij laden wallet.dat: Portemonnee vereist een nieuwere versie van Bitcoin Core</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Information</source>
|
||||
<translation>Informatie</translation>
|
||||
|
@ -2800,6 +3020,18 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com</tran
|
|||
<source>Invalid amount for -mintxfee=<amount>: '%s'</source>
|
||||
<translation>Ongeldig bedrag voor -mintxfee=<bedrag>: '%s'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s)</source>
|
||||
<translation>Ongeldig bedrag voor -paytxfee=<bedrag>: '%s' (Minimum %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Keep at most <n> unconnectable blocks in memory (default: %u)</source>
|
||||
<translation>Houd maximaal <n> onverbonden blokken in geheugen (standaard: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Keep at most <n> unconnectable transactions in memory (default: %u)</source>
|
||||
<translation>Houd maximaal <n> onverbonden transacties in geheugen (standaard: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Print block on startup, if found in block index</source>
|
||||
<translation>Toon block bij opstarten, wanneer gevonden in block index</translation>
|
||||
|
@ -2916,14 +3148,134 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com</tran
|
|||
<source>Error loading wallet.dat: Wallet corrupted</source>
|
||||
<translation>Fout bij laden wallet.dat: Portemonnee corrupt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u)</source>
|
||||
<translation>Onderhoud een volledige transactieindex, gebruikt door de getrawtransaction rpc call (standaard: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Number of seconds to keep misbehaving peers from reconnecting (default: %u)</source>
|
||||
<translation>Aantal seconden dat zich misdragende peers niet opnieuw kunnen verbinden (standaard: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Output debugging information (default: %u, supplying <category> is optional)</source>
|
||||
<translation>Output extra debugginginformatie (standaard: %u, het leveren van <category> is optioneel)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s)</source>
|
||||
<translation>Gebruik een aparte SOCKS5 proxy om 'Tor hidden services' te bereiken (standaard: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Always query for peer addresses via DNS lookup (default: %u)</source>
|
||||
<translation>Vind anderen door middel van een DNS-naslag (standaard: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Disable safemode, override a real safe mode event (default: %u)</source>
|
||||
<translation>Veilige modus uitschakelen, hef een echte veilige modus gebeurtenis uit (default: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error loading wallet.dat</source>
|
||||
<translation>Fout bij laden wallet.dat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Force safe mode (default: %u)</source>
|
||||
<translation>Forceer veilige modus (default: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generate coins (default: %u)</source>
|
||||
<translation>Genereer munten (standaard: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>How many blocks to check at startup (default: %u, 0 = all)</source>
|
||||
<translation>Aantal te checken blokken bij het opstarten (standaard: %u, 0 = allemaal)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid -proxy address: '%s'</source>
|
||||
<translation>Ongeldig -proxy adres: '%s'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Limit size of signature cache to <n> entries (default: %u)</source>
|
||||
<translation>Limiteer grootte van de handtekening cache tot <n> entries (default: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Listen for JSON-RPC connections on <port> (default: %u or testnet: %u)</source>
|
||||
<translation>Luister naar JSON-RPC-verbindingen op poort <port> (standaard: %u of testnet: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Listen for connections on <port> (default: %u or testnet: %u)</source>
|
||||
<translation>Luister naar verbindingen op <poort> (standaard: %u of testnet: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maintain at most <n> connections to peers (default: %u)</source>
|
||||
<translation>Onderhoud maximaal <n> verbindingen naar peers (standaard: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maximum per-connection receive buffer, <n>*1000 bytes (default: %u)</source>
|
||||
<translation>Maximum per-connectie ontvangstbuffer, <n>*1000 bytes (standaard: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maximum per-connection send buffer, <n>*1000 bytes (default: %u)</source>
|
||||
<translation>Maximum per-connectie zendbuffer, <n>*1000 bytes (standaard: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Only accept block chain matching built-in checkpoints (default: %u)</source>
|
||||
<translation>Accepteer alleen blokkenketen die overeenkomt met de ingebouwde checkpoints (standaard: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Prepend debug output with timestamp (default: %u)</source>
|
||||
<translation>Prepend debug output met tijdstempel (standaard: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Print block tree on startup (default: %u)</source>
|
||||
<translation>Toon block structuur bij opstarten (default: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Run a thread to flush wallet periodically (default: %u)</source>
|
||||
<translation>Draai een proces om de wallet periodiek te flushen (default: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Server certificate file (default: %s)</source>
|
||||
<translation>Certificaat-bestand voor server (standaard: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Server private key (default: %s)</source>
|
||||
<translation>Geheime sleutel voor server (standaard: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set key pool size to <n> (default: %u)</source>
|
||||
<translation>Stel sleutelpoelgrootte in op <&> (standaard: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set minimum block size in bytes (default: %u)</source>
|
||||
<translation>Stel minimum blokgrootte in in bytes (standaard: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set the number of threads to service RPC calls (default: %d)</source>
|
||||
<translation>Stel het aantal threads in om RPC-aanvragen mee te bedienen (standaard: %d)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sets the DB_PRIVATE flag in the wallet db environment (default: %u)</source>
|
||||
<translation>Plaatst de DB_PRIVATE vlag in de wallet db omgeving (default: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Specify configuration file (default: %s)</source>
|
||||
<translation>Specificeer configuratie bestand (standaard: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Specify connection timeout in milliseconds (minimum: 1, default: %d)</source>
|
||||
<translation>Specificeer de time-out tijd in milliseconden (minimum: 1, standaard: %d)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Specify pid file (default: %s)</source>
|
||||
<translation>Specificeer pid-bestand (standaard: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Spend unconfirmed change when sending transactions (default: %u)</source>
|
||||
<translation>Besteed onbevestigd wisselgeld bij het versturen van transacties (standaard: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Threshold for disconnecting misbehaving peers (default: %u)</source>
|
||||
<translation>Drempel om verbinding te verbreken naar zich misdragende peers (standaard: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown network specified in -onlynet: '%s'</source>
|
||||
<translation>Onbekend netwerk gespecificeerd in -onlynet: '%s'</translation>
|
||||
|
|
|
@ -773,6 +773,10 @@ Adresa: %4
|
|||
<source>version</source>
|
||||
<translation>versiunea</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(%1-bit)</source>
|
||||
<translation>(%1-bit)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>About Bitcoin Core</source>
|
||||
<translation>Despre Nucleul Bitcoin</translation>
|
||||
|
|
|
@ -520,6 +520,10 @@ Address: %4
|
|||
</context>
|
||||
<context>
|
||||
<name>CoinControlDialog</name>
|
||||
<message>
|
||||
<source>Coin Selection</source>
|
||||
<translation>Выбор монет</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Quantity:</source>
|
||||
<translation>Количество:</translation>
|
||||
|
@ -1844,17 +1848,37 @@ Address: %4
|
|||
<source>Choose...</source>
|
||||
<translation>Выберите...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>collapse fee-settings</source>
|
||||
<translation>Свернуть настройки комиссии</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Minimize</source>
|
||||
<translation>Сворачивать</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>If the custom fee is set to 1000 satoshis and the transaction is only 250 bytes, then "per kilobyte" only pays 250 satoshis in fee, while "at least" pays 1000 satoshis. For transactions bigger than a kilobyte both pay by kilobyte.</source>
|
||||
<translation>Если комиссия установлена в 1000 сатоши, а транзакция составляет лишь 250 байт, тогда комиссия "на килобайт" составит 250 сатоши, а "как минимум" — 1000 сатоши. Для транзакций крупнее килобайта в обоих случаях будет использоваться платёж "на килобайт".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>per kilobyte</source>
|
||||
<translation>за килобайт</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>If the custom fee is set to 1000 satoshis and the transaction is only 250 bytes, then "per kilobyte" only pays 250 satoshis in fee, while "total at least" pays 1000 satoshis. For transactions bigger than a kilobyte both pay by kilobyte.</source>
|
||||
<translation>Если комиссия установлена в 1000 сатоши, а транзакция составляет лишь 250 байт, тогда комиссия "на килобайт" составит 250 сатоши, а "всего как минимум" — 1000 сатоши. Для транзакций крупнее килобайта в обоих случаях будет использоваться платёж "на килобайт".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>total at least</source>
|
||||
<translation>Итого</translation>
|
||||
<translation>Итого как минимум</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source>
|
||||
<translation>Уплата минимальной комиссии — не проблема, пока объём транзакций меньше, чем свободное место в блоках. Учтите, однако, что такая транзакция может никогда не подтвердиться, если спрос на транзакции превышает возможности сети по их обработке.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(read the tooltip)</source>
|
||||
<translation>(прочтите подсказку)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Recommended:</source>
|
||||
|
@ -1864,6 +1888,10 @@ Address: %4
|
|||
<source>Custom:</source>
|
||||
<translation>Выборочно:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(Smart fee not initialized yet. This usually takes a few blocks...)</source>
|
||||
<translation>(Умная комиссия пока не инициализирована. Обычно для этого требуется несколько блоков...)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirmation time:</source>
|
||||
<translation>Время подтверждения:</translation>
|
||||
|
@ -1994,7 +2022,7 @@ Address: %4
|
|||
</message>
|
||||
<message>
|
||||
<source>Estimated to begin confirmation within %1 block(s).</source>
|
||||
<translation>Ожидается начать подтверждение через %1 блок(ов).</translation>
|
||||
<translation>Начало подтверждения ожидается через %1 блок(ов).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: Invalid Bitcoin address</source>
|
||||
|
@ -2798,6 +2826,10 @@ rpcpassword=%s
|
|||
<source>Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup</source>
|
||||
<translation>Удалить все транзакции бумажника с возможностью восстановить эти части цепи блоков с помощью -rescan при запуске</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>.</source>
|
||||
<translation>Распространяется под лицензией MIT, см. приложенный файл COPYING или <http://www.opensource.org/licenses/mit-license.php>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter regression test mode, which uses a special chain in which blocks can be solved instantly.</source>
|
||||
<translation>Войти в режим тестирования на регрессии, в котором используется специальная цепь, где блоки находятся мгновенно.</translation>
|
||||
|
@ -3064,7 +3096,7 @@ rpcpassword=%s
|
|||
</message>
|
||||
<message>
|
||||
<source>Set the number of threads for coin generation if enabled (-1 = all cores, default: %d)</source>
|
||||
<translation>Задать число потоков генерации монет, если включена (-1 = число ядер процессора, по умолчанию: %d)</translation>
|
||||
<translation>Задать число потоков генерации монет, если она включена (-1 = все ядра процессора, по умолчанию: %d)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard.</source>
|
||||
|
@ -3332,7 +3364,7 @@ rpcpassword=%s
|
|||
</message>
|
||||
<message>
|
||||
<source>Disable safemode, override a real safe mode event (default: %u)</source>
|
||||
<translation>Отключить безопасный режим, отклонить реальное событие безопасного режима (по умолчанию: %u)</translation>
|
||||
<translation>Отключить безопасный режим, перекрыть реальное событие безопасного режима (по умолчанию: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error loading wallet.dat</source>
|
||||
|
|
|
@ -3,15 +3,31 @@
|
|||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
<source>Double-click to edit address or label</source>
|
||||
<translation>Кликните два пута да промените адресу и/или етикету</translation>
|
||||
<translation>Kliknite dva puta da izmenite adresu ili etiketu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Create a new address</source>
|
||||
<translation>Прави нову адресу</translation>
|
||||
<translation>Napravite novu adresu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&New</source>
|
||||
<translation>Novo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy the currently selected address to the system clipboard</source>
|
||||
<translation>Копира изабрану адресу на системски клипборд</translation>
|
||||
<translation>Kopirajte trenutno izabranu adresu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy</source>
|
||||
<translation>Kopirajte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy Address</source>
|
||||
<translation>Kopirajte adresu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete the currently selected address from the list</source>
|
||||
<translation>Izbrisite trenutno izabranu adresu sa liste</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Delete</source>
|
||||
|
|
|
@ -524,6 +524,10 @@ Address: %4
|
|||
</context>
|
||||
<context>
|
||||
<name>CoinControlDialog</name>
|
||||
<message>
|
||||
<source>Coin Selection</source>
|
||||
<translation>Вибір Монет</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Quantity:</source>
|
||||
<translation>Кількість:</translation>
|
||||
|
@ -572,6 +576,14 @@ Address: %4
|
|||
<source>Amount</source>
|
||||
<translation>Кількість</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Received with label</source>
|
||||
<translation>Отримано з позначкою</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Received with address</source>
|
||||
<translation>Отримано з адресою</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Дата</translation>
|
||||
|
@ -1034,6 +1046,14 @@ Address: %4
|
|||
<source>Map port using &UPnP</source>
|
||||
<translation>Відображення порту через &UPnP</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Connect to the Bitcoin network through a SOCKS5 proxy.</source>
|
||||
<translation>Підключення до мережі Bitcoin через SOCKS5 проксі.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Connect through SOCKS5 proxy (default proxy):</source>
|
||||
<translation>&Підключення через SOCKS5 проксі (проксі за замовчуванням):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Proxy &IP:</source>
|
||||
<translation>&IP проксі:</translation>
|
||||
|
@ -1824,6 +1844,78 @@ Address: %4
|
|||
<source>Custom change address</source>
|
||||
<translation>Вказати адресу для решти</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction Fee:</source>
|
||||
<translation>Комісія за передачу:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose...</source>
|
||||
<translation>Виберіть...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>collapse fee-settings</source>
|
||||
<translation>згорнути налаштування оплат</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Minimize</source>
|
||||
<translation>Мінімізувати</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>If the custom fee is set to 1000 satoshis and the transaction is only 250 bytes, then "per kilobyte" only pays 250 satoshis in fee, while "at least" pays 1000 satoshis. For transactions bigger than a kilobyte both pay by kilobyte.</source>
|
||||
<translation>Якщо оплата користувача встановлюється в 1000 Satoshi і розмір передачі всього 250 байт, то "за кілобайт" платить тільки 250 Satoshi, в той час як "щонайменше" платить 1000 satoshis. Для передач більших, ніж кілобайт обоє платять за кілобайт.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>per kilobyte</source>
|
||||
<translation>за кілобайт</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>If the custom fee is set to 1000 satoshis and the transaction is only 250 bytes, then "per kilobyte" only pays 250 satoshis in fee, while "total at least" pays 1000 satoshis. For transactions bigger than a kilobyte both pay by kilobyte.</source>
|
||||
<translation>Якщо оплата користувача встановлюється в 1000 Satoshi і розмір передачі всього 250 байт, то "за кілобайт" платить тільки 250 Satoshi, в той час як "всього щонайменше" платить 1000 satoshis. Для передач більших, ніж кілобайт обоє платять за кілобайт.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>total at least</source>
|
||||
<translation>всього щонайменше</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source>
|
||||
<translation>Оплата тільки мінімальних зборів є прийнятною до тих пір, як обсяг транзакцій там є меншим аніж простору в блоках. Але майте на увазі, що це може анулювати транзакцію, якщо попит на Bitcoin транзакції стане значно більшим, ніж мережа зможе обробити.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(read the tooltip)</source>
|
||||
<translation>(читати підказки)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Recommended:</source>
|
||||
<translation>Рекомендовано:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Custom:</source>
|
||||
<translation>Змінено:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(Smart fee not initialized yet. This usually takes a few blocks...)</source>
|
||||
<translation>(Розумна оплата ще не ініціалізована. Це звичайно займає кілька блоків...)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirmation time:</source>
|
||||
<translation>Час підтвердження:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>normal</source>
|
||||
<translation>звичайний</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>fast</source>
|
||||
<translation>швидкий</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Send as zero-fee transaction if possible</source>
|
||||
<translation>Надіслати як нульовий плата за передачу, якщо це можливо</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(confirmation may take longer)</source>
|
||||
<translation>(підтвердження може зайняти більше часу)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Send to multiple recipients at once</source>
|
||||
<translation>Відправити на декілька адрес</translation>
|
||||
|
@ -1928,6 +2020,18 @@ Address: %4
|
|||
<source>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.</source>
|
||||
<translation>Транзакцію відхилено! Це може статись, якщо декілька монет з вашого гаманця вже використані, наприклад, якщо ви використовуєте одну копію гаманця (wallet.dat), а монети були використані з іншої копії, але не позначені як використані в цій.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>A fee higher than %1 is considered an insanely high fee.</source>
|
||||
<translation>Плата вища, ніж %1 вважається шалено високою.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pay only the minimum fee of %1</source>
|
||||
<translation>Платити тільки мінімальний збір у розмірі %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Estimated to begin confirmation within %1 block(s).</source>
|
||||
<translation>Розрахунковий початок підтвердження протягом %1 блоку(ів).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: Invalid Bitcoin address</source>
|
||||
<translation>Увага: Неправильна Bitcoin-адреса</translation>
|
||||
|
@ -2734,6 +2838,10 @@ rpcpassword=%s
|
|||
<source>Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup</source>
|
||||
<translation>Видалити всі транзакції гаманця та відновити ті, що будуть знайдені під час запуску за допомогою -rescan</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>.</source>
|
||||
<translation>Поширюється за ліцензією MIT, додаткова інформація міститься у файлі COPYING та за адресою <http://www.opensource.org/licenses/mit-license.php>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter regression test mode, which uses a special chain in which blocks can be solved instantly.</source>
|
||||
<translation>Ввійти в режим регресивного тестування, що використовує спеціальний ланцюг з миттєвим знаходженням блоків.</translation>
|
||||
|
@ -2986,6 +3094,10 @@ rpcpassword=%s
|
|||
<source>Fees (in BTC/Kb) smaller than this are considered zero fee for transaction creation (default: %s)</source>
|
||||
<translation>Комісії (в BTC/КБ), що менші за вказану, вважатимуться нульовими (для створення транзакції) (типово: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maximum size of data in data carrier transactions we relay and mine (default: %u)</source>
|
||||
<translation>Максимальний розмір даних в транзакціях носіїв даних, що ми передаємо і добуваємо (за замовчуванням: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect)</source>
|
||||
<translation>Дізнаватися адреси учасників через DNS при замалій кількості відомих адрес (типово: 1 за відсутності -connect)</translation>
|
||||
|
@ -2994,6 +3106,10 @@ rpcpassword=%s
|
|||
<source>Set maximum size of high-priority/low-fee transactions in bytes (default: %d)</source>
|
||||
<translation>Встановити максимальний розмір транзакцій з високим пріоритетом та низькою комісією (в байтах) (типово: %d)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set the number of threads for coin generation if enabled (-1 = all cores, default: %d)</source>
|
||||
<translation>Встановити кількість потоків для генерації монет (-1 = кількості ядер, типово: %d)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard.</source>
|
||||
<translation>Цей продукт включає в себе програмне забезпечення, розроблене в рамках проекту OpenSSL <https://www.openssl.org/>, криптографічне програмне забезпечення, написане Еріком Янгом, та функції для роботи з UPnP, написані Томасом Бернардом.</translation>
|
||||
|
@ -3098,6 +3214,10 @@ rpcpassword=%s
|
|||
<source>Send trace/debug info to console instead of debug.log file</source>
|
||||
<translation>Відсилати налагоджувальну інформацію на консоль, а не у файл debug.log</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Send transactions as zero-fee transactions if possible (default: %u)</source>
|
||||
<translation>Встановити операцію надсилання, як неоплатну операцію, якщо це можливо (за замовчуванням: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show all debugging options (usage: --help -help-debug)</source>
|
||||
<translation>Показати всі налагоджувальні параметри (використання: --help -help-debug)</translation>
|
||||
|
|
|
@ -478,6 +478,10 @@
|
|||
<source>Up to date</source>
|
||||
<translation>最新狀態</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>Processed %n blocks of transaction history.</source>
|
||||
<translation><numerusform>已經處理了 %n 個區塊的交易紀錄。</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Catching up...</source>
|
||||
<translation>正在趕進度...</translation>
|
||||
|
@ -520,6 +524,10 @@ Address: %4
|
|||
</context>
|
||||
<context>
|
||||
<name>CoinControlDialog</name>
|
||||
<message>
|
||||
<source>Coin Selection</source>
|
||||
<translation>選擇錢幣</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Quantity:</source>
|
||||
<translation>數目:</translation>
|
||||
|
@ -1030,6 +1038,14 @@ Address: %4
|
|||
<source>Map port using &UPnP</source>
|
||||
<translation>用 &UPnP 設定通訊埠對應</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Connect to the Bitcoin network through a SOCKS5 proxy.</source>
|
||||
<translation>透過 SOCKS5 代理伺服器來連線到位元幣網路。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Connect through SOCKS5 proxy (default proxy):</source>
|
||||
<translation>透過 SOCKS5 代理伺服器連線(預設代理伺服器):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Proxy &IP:</source>
|
||||
<translation>代理位址:</translation>
|
||||
|
@ -1820,6 +1836,38 @@ Address: %4
|
|||
<source>Custom change address</source>
|
||||
<translation>自定找零位址</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction Fee:</source>
|
||||
<translation>交易手續費:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose...</source>
|
||||
<translation>選擇...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>collapse fee-settings</source>
|
||||
<translation>展開手續費設定</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Minimize</source>
|
||||
<translation>最小化</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>per kilobyte</source>
|
||||
<translation>每千位元組</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(read the tooltip)</source>
|
||||
<translation>(請看提示)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirmation time:</source>
|
||||
<translation>確認時間:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Send as zero-fee transaction if possible</source>
|
||||
<translation>盡可能送不用付手續費的交易</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Send to multiple recipients at once</source>
|
||||
<translation>一次付給多個收款人</translation>
|
||||
|
@ -2731,6 +2779,10 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com</translation>
|
|||
<source>Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup</source>
|
||||
<translation>清掉錢包裡的所有交易,並且在下次啟動時,使用 -rescan 來從區塊鏈中復原回來。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>.</source>
|
||||
<translation>這套軟體是依據 MIT 軟體授權條款散布,詳情請見附帶的 COPYING 檔案,或是以下網站: <http://www.opensource.org/licenses/mit-license.php>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter regression test mode, which uses a special chain in which blocks can be solved instantly.</source>
|
||||
<translation>進入回歸測試模式,使用可以立即解出區塊的特殊區塊鏈。</translation>
|
||||
|
@ -2783,6 +2835,10 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com</translation>
|
|||
<source>Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup.</source>
|
||||
<translation>警告: 錢包檔 wallet.dat 壞掉,但資料被拯救回來了!原來的 wallet.dat 會改儲存在 %s, 檔名是 wallet.{timestamp}.bak. 如果餘額或交易資料有誤,你應該要用備份資料復原回來。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times.</source>
|
||||
<translation>把來自指定網域或位址的節點放進白名單。這個選項可以設定多次。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(default: 1)</source>
|
||||
<translation>(預設值: 1)</translation>
|
||||
|
@ -2821,7 +2877,7 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com</translation>
|
|||
</message>
|
||||
<message>
|
||||
<source>Do not load the wallet and disable wallet RPC calls</source>
|
||||
<translation>不要載入錢包,並且拿掉錢包相關的 RPC 功能呼叫。</translation>
|
||||
<translation>不要載入錢包,並且拿掉錢包相關的 RPC 功能請求。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Do you want to rebuild the block database now?</source>
|
||||
|
@ -2947,6 +3003,10 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com</translation>
|
|||
<source>Cannot obtain a lock on data directory %s. Bitcoin Core is probably already running.</source>
|
||||
<translation>沒辦法鎖定資料目錄 %s。位元幣核心可能已經在執行了。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u)</source>
|
||||
<translation>對沒付手續費的交易持續限制每分鐘內最多只能有 <n>*1000 個位元組(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality)</source>
|
||||
<translation>用系統預設權限來造出新的檔案,而不是用使用者權限罩遮(umask)值 077 (只有在關掉錢包功能時才有作用)。</translation>
|
||||
|
@ -2971,6 +3031,10 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com</translation>
|
|||
<source>Fees (in BTC/Kb) smaller than this are considered zero fee for transaction creation (default: %s)</source>
|
||||
<translation>當製造交易時,如果每千位元組(Kb)的手續費比這個值低,就視為沒付手續費 (預設值: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maximum size of data in data carrier transactions we relay and mine (default: %u)</source>
|
||||
<translation>轉發和開採時,對只帶資料的交易的大小上限(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect)</source>
|
||||
<translation>是否允許在節點位址數目不足時,使用域名查詢來搜尋節點 (預設值: 當沒用 -connect 時為 1)</translation>
|
||||
|
@ -2979,6 +3043,10 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com</translation>
|
|||
<source>Set maximum size of high-priority/low-fee transactions in bytes (default: %d)</source>
|
||||
<translation>設定高優先度或低手續費的交易資料大小上限成多少位元組(預設值: %d)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set the number of threads for coin generation if enabled (-1 = all cores, default: %d)</source>
|
||||
<translation>設定產生錢幣的執行緒數目(-1 表示處理器核心數,預設值: %d)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard.</source>
|
||||
<translation>此產品也包含了由 OpenSSL Project 所開發的 OpenSSL Toolkit 軟體 <https://www.openssl.org/>, 和由 Eric Young 撰寫的加解密軟體,以及由 Thomas Bernard 所撰寫的 UPnP 軟體。</translation>
|
||||
|
@ -3083,6 +3151,10 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com</translation>
|
|||
<source>Send trace/debug info to console instead of debug.log file</source>
|
||||
<translation>在終端機顯示追蹤或除錯資訊,而不是寫到檔案 debug.log 中</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Send transactions as zero-fee transactions if possible (default: %u)</source>
|
||||
<translation>盡可能送出不用付手續費的交易(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show all debugging options (usage: --help -help-debug)</source>
|
||||
<translation>顯示所有的除錯選項 (用法: --help --help-debug)</translation>
|
||||
|
@ -3191,14 +3263,178 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com</translation>
|
|||
<source>Error loading wallet.dat: Wallet corrupted</source>
|
||||
<translation>載入檔案 wallet.dat 時發生錯誤: 錢包損毀了</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data)</source>
|
||||
<translation>(1 表示保留交易描述資料,像是帳戶使用者和付款請求資訊;2 表示丟掉交易描述資料)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Flush database activity from memory pool to disk log every <n> megabytes (default: %u)</source>
|
||||
<translation>每當累積到 <n> 百萬位元組(MB)時,才將資料庫的變動從記憶體暫存池中寫進磁碟紀錄檔(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>How thorough the block verification of -checkblocks is (0-4, default: %u)</source>
|
||||
<translation>使用 -checkblocks 檢查區塊的仔細程度(0 到 4,預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>If paytxfee is not set, include enough fee so transactions are confirmed on average within n blocks (default: %u)</source>
|
||||
<translation>當沒有設定 paytxfee 時,自動包含可以讓交易能在平均 n 個區塊內確認的手續費(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Log transaction priority and fee per kB when mining blocks (default: %u)</source>
|
||||
<translation>開採區塊的時候,紀錄交易的優先度以及每千位元組(kB)的手續費(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u)</source>
|
||||
<translation>維護全部交易的索引,用在 getrawtransaction 這個 RPC 請求(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Number of seconds to keep misbehaving peers from reconnecting (default: %u)</source>
|
||||
<translation>避免與亂搞的節點連線的秒數(預設: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Output debugging information (default: %u, supplying <category> is optional)</source>
|
||||
<translation>輸出除錯資訊(預設值: %u, 不一定要指定 <category>)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s)</source>
|
||||
<translation>使用另外的 SOCK5 代理伺服器,來透過 Tor 隱藏服務跟節點聯繫(預設值: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(default: %s)</source>
|
||||
<translation>(預設值: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Acceptable ciphers (default: %s)</source>
|
||||
<translation>可以接受的加密演算法(預設值: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Always query for peer addresses via DNS lookup (default: %u)</source>
|
||||
<translation>是否一定要用域名查詢來搜尋節點(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Disable safemode, override a real safe mode event (default: %u)</source>
|
||||
<translation>不進入安全模式,用在真的發生需要進入安全模式的事件時,強制不進入(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error loading wallet.dat</source>
|
||||
<translation>載入錢包檔 wallet.dat 時發生錯誤</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Force safe mode (default: %u)</source>
|
||||
<translation>強制進入安全模式(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generate coins (default: %u)</source>
|
||||
<translation>生產位元幣(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>How many blocks to check at startup (default: %u, 0 = all)</source>
|
||||
<translation>啓動時檢查的區塊數(預設值: %u, 指定 0 表示全部)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Include IP addresses in debug output (default: %u)</source>
|
||||
<translation>在除錯輸出內容中包含網際網路位址(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid -proxy address: '%s'</source>
|
||||
<translation>無效的 -proxy 位址: '%s'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Limit size of signature cache to <n> entries (default: %u)</source>
|
||||
<translation>限制簽章快取大小為 <n> 筆(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Listen for JSON-RPC connections on <port> (default: %u or testnet: %u)</source>
|
||||
<translation>在通訊埠 <port> 聽候 JSON-RPC 連線(預設值: %u, 或若為測試網路: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Listen for connections on <port> (default: %u or testnet: %u)</source>
|
||||
<translation>在通訊埠 <port> 聽候連線(預設值: %u, 或若為測試網路: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maintain at most <n> connections to peers (default: %u)</source>
|
||||
<translation>維持與節點連線數的上限為 <n> 個(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maximum per-connection receive buffer, <n>*1000 bytes (default: %u)</source>
|
||||
<translation>每個連線的接收緩衝區大小上限為 <n>*1000 個位元組(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maximum per-connection send buffer, <n>*1000 bytes (default: %u)</source>
|
||||
<translation>每個連線的傳送緩衝區大小上限為 <n>*1000 個位元組(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Only accept block chain matching built-in checkpoints (default: %u)</source>
|
||||
<translation>只接受與內建的檢查段點吻合的區塊鎖鏈(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Prepend debug output with timestamp (default: %u)</source>
|
||||
<translation>在除錯輸出內容前附加時間(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Print block tree on startup (default: %u)</source>
|
||||
<translation>啟動時輸出區塊樹(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Relay and mine data carrier transactions (default: %u)</source>
|
||||
<translation>允許轉發和開採只帶資料的交易(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Relay non-P2SH multisig (default: %u)</source>
|
||||
<translation>允許轉發非 P2SH 的多簽章交易(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Run a thread to flush wallet periodically (default: %u)</source>
|
||||
<translation>啟用定期將變動寫入錢包檔的執行緒(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Server certificate file (default: %s)</source>
|
||||
<translation>伺服器憑證檔(預設值: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Server private key (default: %s)</source>
|
||||
<translation>伺服器密鑰檔(預設值: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set key pool size to <n> (default: %u)</source>
|
||||
<translation>設定密鑰池大小為 <n> (預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set minimum block size in bytes (default: %u)</source>
|
||||
<translation>設定區塊大小下限為多少位元組(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set the number of threads to service RPC calls (default: %d)</source>
|
||||
<translation>設定處理 RPC 服務請求的執行緒數目(預設值: %d)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sets the DB_PRIVATE flag in the wallet db environment (default: %u)</source>
|
||||
<translation>在錢包資料庫環境變數設定 DB_PRIVATE 旗標(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Specify configuration file (default: %s)</source>
|
||||
<translation>指定設定檔(預設值: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Specify connection timeout in milliseconds (minimum: 1, default: %d)</source>
|
||||
<translation>指定連線在幾毫秒後逾時 (最少值: 1, 預設值: %d)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Specify pid file (default: %s)</source>
|
||||
<translation>指定行程識別碼檔案(預設值: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Spend unconfirmed change when sending transactions (default: %u)</source>
|
||||
<translation>傳送交易時可以花還沒確認的零錢(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Stop running after importing blocks from disk (default: %u)</source>
|
||||
<translation>從磁碟匯入區塊資料後停止執行(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Threshold for disconnecting misbehaving peers (default: %u)</source>
|
||||
<translation>與亂搞的節點斷線的臨界值 (預設: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown network specified in -onlynet: '%s'</source>
|
||||
<translation>在 -onlynet 指定了不明的網路別: '%s'</translation>
|
||||
|
|
|
@ -11,24 +11,73 @@
|
|||
static const struct {
|
||||
const char *networkId;
|
||||
const char *appName;
|
||||
const char *appIcon;
|
||||
const int iconColorHueShift;
|
||||
const int iconColorSaturationReduction;
|
||||
const char *titleAddText;
|
||||
const char *splashImage;
|
||||
} network_styles[] = {
|
||||
{"main", QAPP_APP_NAME_DEFAULT, ":/icons/bitcoin", "", ":/images/splash"},
|
||||
{"newcc", QAPP_APP_NAME_DEFAULT, ":/icons/bitcoin", "", ":/images/splash"},
|
||||
{"test", QAPP_APP_NAME_TESTNET, ":/icons/bitcoin_testnet", QT_TRANSLATE_NOOP("SplashScreen", "[testnet]"), ":/images/splash_testnet"},
|
||||
{"regtest", QAPP_APP_NAME_TESTNET, ":/icons/bitcoin_testnet", "[regtest]", ":/images/splash_testnet"}
|
||||
{"main", QAPP_APP_NAME_DEFAULT, 0, 0, ""},
|
||||
{"newcc", QAPP_APP_NAME_DEFAULT, 0, 0, ""},
|
||||
{"test", QAPP_APP_NAME_TESTNET, 70, 30, QT_TRANSLATE_NOOP("SplashScreen", "[testnet]")},
|
||||
{"regtest", QAPP_APP_NAME_TESTNET, 160, 30, "[regtest]"}
|
||||
};
|
||||
static const unsigned network_styles_count = sizeof(network_styles)/sizeof(*network_styles);
|
||||
|
||||
// titleAddText needs to be const char* for tr()
|
||||
NetworkStyle::NetworkStyle(const QString &appName, const QString &appIcon, const char *titleAddText, const QString &splashImage):
|
||||
NetworkStyle::NetworkStyle(const QString &appName, const int iconColorHueShift, const int iconColorSaturationReduction, const char *titleAddText):
|
||||
appName(appName),
|
||||
appIcon(appIcon),
|
||||
titleAddText(qApp->translate("SplashScreen", titleAddText)),
|
||||
splashImage(splashImage)
|
||||
titleAddText(qApp->translate("SplashScreen", titleAddText))
|
||||
{
|
||||
// load pixmap
|
||||
QPixmap pixmap(":/icons/bitcoin");
|
||||
|
||||
if(iconColorHueShift != 0 && iconColorSaturationReduction != 0)
|
||||
{
|
||||
// generate QImage from QPixmap
|
||||
QImage img = pixmap.toImage();
|
||||
|
||||
int h,s,l,a;
|
||||
|
||||
// traverse though lines
|
||||
for(int y=0;y<img.height();y++)
|
||||
{
|
||||
QRgb *scL = reinterpret_cast< QRgb *>( img.scanLine( y ) );
|
||||
|
||||
// loop through pixels
|
||||
for(int x=0;x<img.width();x++)
|
||||
{
|
||||
// preserve alpha because QColor::getHsl doesen't return the alpha value
|
||||
a = qAlpha(scL[x]);
|
||||
QColor col(scL[x]);
|
||||
|
||||
// get hue value
|
||||
col.getHsl(&h,&s,&l);
|
||||
|
||||
// rotate color on RGB color circle
|
||||
// 70° should end up with the typical "testnet" green
|
||||
h+=iconColorHueShift;
|
||||
|
||||
// change saturation value
|
||||
if(s>iconColorSaturationReduction)
|
||||
{
|
||||
s -= iconColorSaturationReduction;
|
||||
}
|
||||
col.setHsl(h,s,l,a);
|
||||
|
||||
// set the pixel
|
||||
scL[x] = col.rgba();
|
||||
}
|
||||
}
|
||||
|
||||
//convert back to QPixmap
|
||||
#if QT_VERSION >= 0x040700
|
||||
pixmap.convertFromImage(img);
|
||||
#else
|
||||
pixmap = QPixmap::fromImage(img);
|
||||
#endif
|
||||
}
|
||||
|
||||
appIcon = QIcon(pixmap);
|
||||
trayAndWindowIcon = QIcon(pixmap.scaled(QSize(256,256)));
|
||||
}
|
||||
|
||||
const NetworkStyle *NetworkStyle::instantiate(const QString &networkId)
|
||||
|
@ -39,9 +88,9 @@ const NetworkStyle *NetworkStyle::instantiate(const QString &networkId)
|
|||
{
|
||||
return new NetworkStyle(
|
||||
network_styles[x].appName,
|
||||
network_styles[x].appIcon,
|
||||
network_styles[x].titleAddText,
|
||||
network_styles[x].splashImage);
|
||||
network_styles[x].iconColorHueShift,
|
||||
network_styles[x].iconColorSaturationReduction,
|
||||
network_styles[x].titleAddText);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
|
|
@ -18,16 +18,16 @@ public:
|
|||
|
||||
const QString &getAppName() const { return appName; }
|
||||
const QIcon &getAppIcon() const { return appIcon; }
|
||||
const QIcon &getTrayAndWindowIcon() const { return trayAndWindowIcon; }
|
||||
const QString &getTitleAddText() const { return titleAddText; }
|
||||
const QPixmap &getSplashImage() const { return splashImage; }
|
||||
|
||||
private:
|
||||
NetworkStyle(const QString &appName, const QString &appIcon, const char *titleAddText, const QString &splashImage);
|
||||
NetworkStyle(const QString &appName, const int iconColorHueShift, const int iconColorSaturationReduction, const char *titleAddText);
|
||||
|
||||
QString appName;
|
||||
QIcon appIcon;
|
||||
QIcon trayAndWindowIcon;
|
||||
QString titleAddText;
|
||||
QPixmap splashImage;
|
||||
};
|
||||
|
||||
#endif // BITCOIN_QT_NETWORKSTYLE_H
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2011-2013 The Bitcoin developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// Copyright (c) 2011-2014 The Bitcoin developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
//
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2011-2013 The Bitcoin developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// Copyright (c) 2011-2014 The Bitcoin developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
#ifndef BITCOIN_QT_PAYMENTREQUESTPLUS_H
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
// Copyright (c) 2011-2013 The Bitcoin developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// Copyright (c) 2011-2014 The Bitcoin developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
#include "paymentserver.h"
|
||||
|
||||
#include "bitcoinunits.h"
|
||||
#include "guiconstants.h"
|
||||
#include "guiutil.h"
|
||||
#include "optionsmodel.h"
|
||||
|
||||
|
@ -19,6 +18,7 @@
|
|||
|
||||
#include <openssl/x509.h>
|
||||
#include <openssl/x509_vfy.h>
|
||||
|
||||
#include <QApplication>
|
||||
#include <QByteArray>
|
||||
#include <QDataStream>
|
||||
|
@ -46,14 +46,20 @@
|
|||
#include <QUrlQuery>
|
||||
#endif
|
||||
|
||||
using namespace std;
|
||||
using namespace boost;
|
||||
using namespace std;
|
||||
|
||||
const int BITCOIN_IPC_CONNECT_TIMEOUT = 1000; // milliseconds
|
||||
const QString BITCOIN_IPC_PREFIX("bitcoin:");
|
||||
const char* BITCOIN_REQUEST_MIMETYPE = "application/bitcoin-paymentrequest";
|
||||
const char* BITCOIN_PAYMENTACK_MIMETYPE = "application/bitcoin-paymentack";
|
||||
const char* BITCOIN_PAYMENTACK_CONTENTTYPE = "application/bitcoin-payment";
|
||||
// BIP70 payment protocol messages
|
||||
const char* BIP70_MESSAGE_PAYMENTACK = "PaymentACK";
|
||||
const char* BIP70_MESSAGE_PAYMENTREQUEST = "PaymentRequest";
|
||||
// BIP71 payment protocol media types
|
||||
const char* BIP71_MIMETYPE_PAYMENT = "application/bitcoin-payment";
|
||||
const char* BIP71_MIMETYPE_PAYMENTACK = "application/bitcoin-paymentack";
|
||||
const char* BIP71_MIMETYPE_PAYMENTREQUEST = "application/bitcoin-paymentrequest";
|
||||
// BIP70 max payment request size in bytes (DoS protection)
|
||||
const qint64 BIP70_MAX_PAYMENTREQUEST_SIZE = 50000;
|
||||
|
||||
X509_STORE* PaymentServer::certStore = NULL;
|
||||
void PaymentServer::freeCertStore()
|
||||
|
@ -184,7 +190,7 @@ void PaymentServer::LoadRootCAs(X509_STORE* _store)
|
|||
// Warning: ipcSendCommandLine() is called early in init,
|
||||
// so don't use "emit message()", but "QMessageBox::"!
|
||||
//
|
||||
bool PaymentServer::ipcParseCommandLine(int argc, char* argv[])
|
||||
void PaymentServer::ipcParseCommandLine(int argc, char* argv[])
|
||||
{
|
||||
for (int i = 1; i < argc; i++)
|
||||
{
|
||||
|
@ -192,6 +198,10 @@ bool PaymentServer::ipcParseCommandLine(int argc, char* argv[])
|
|||
if (arg.startsWith("-"))
|
||||
continue;
|
||||
|
||||
// If the bitcoin: URI contains a payment request, we are not able to detect the
|
||||
// network as that would require fetching and parsing the payment request.
|
||||
// That means clicking such an URI which contains a testnet payment request
|
||||
// will start a mainnet instance and throw a "wrong network" error.
|
||||
if (arg.startsWith(BITCOIN_IPC_PREFIX, Qt::CaseInsensitive)) // bitcoin: URI
|
||||
{
|
||||
savedPaymentRequests.append(arg);
|
||||
|
@ -216,7 +226,7 @@ bool PaymentServer::ipcParseCommandLine(int argc, char* argv[])
|
|||
savedPaymentRequests.append(arg);
|
||||
|
||||
PaymentRequestPlus request;
|
||||
if (readPaymentRequest(arg, request))
|
||||
if (readPaymentRequestFromFile(arg, request))
|
||||
{
|
||||
if (request.getDetails().network() == "main")
|
||||
{
|
||||
|
@ -235,7 +245,6 @@ bool PaymentServer::ipcParseCommandLine(int argc, char* argv[])
|
|||
qWarning() << "PaymentServer::ipcSendCommandLine : Payment request file does not exist: " << arg;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -254,6 +263,7 @@ bool PaymentServer::ipcSendCommandLine()
|
|||
if (!socket->waitForConnected(BITCOIN_IPC_CONNECT_TIMEOUT))
|
||||
{
|
||||
delete socket;
|
||||
socket = NULL;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -262,12 +272,14 @@ bool PaymentServer::ipcSendCommandLine()
|
|||
out.setVersion(QDataStream::Qt_4_0);
|
||||
out << r;
|
||||
out.device()->seek(0);
|
||||
|
||||
socket->write(block);
|
||||
socket->flush();
|
||||
|
||||
socket->waitForBytesWritten(BITCOIN_IPC_CONNECT_TIMEOUT);
|
||||
socket->disconnectFromServer();
|
||||
|
||||
delete socket;
|
||||
socket = NULL;
|
||||
fResult = true;
|
||||
}
|
||||
|
||||
|
@ -440,7 +452,7 @@ void PaymentServer::handleURIOrFile(const QString& s)
|
|||
{
|
||||
PaymentRequestPlus request;
|
||||
SendCoinsRecipient recipient;
|
||||
if (!readPaymentRequest(s, request))
|
||||
if (!readPaymentRequestFromFile(s, request))
|
||||
{
|
||||
emit message(tr("Payment request file handling"),
|
||||
tr("Payment request file cannot be read! This can be caused by an invalid payment request file."),
|
||||
|
@ -474,18 +486,25 @@ void PaymentServer::handleURIConnection()
|
|||
handleURIOrFile(msg);
|
||||
}
|
||||
|
||||
bool PaymentServer::readPaymentRequest(const QString& filename, PaymentRequestPlus& request)
|
||||
//
|
||||
// Warning: readPaymentRequestFromFile() is used in ipcSendCommandLine()
|
||||
// so don't use "emit message()", but "QMessageBox::"!
|
||||
//
|
||||
bool PaymentServer::readPaymentRequestFromFile(const QString& filename, PaymentRequestPlus& request)
|
||||
{
|
||||
QFile f(filename);
|
||||
if (!f.open(QIODevice::ReadOnly))
|
||||
{
|
||||
qWarning() << "PaymentServer::readPaymentRequest : Failed to open " << filename;
|
||||
if (!f.open(QIODevice::ReadOnly)) {
|
||||
qWarning() << QString("PaymentServer::%1: Failed to open %2").arg(__func__).arg(filename);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (f.size() > MAX_PAYMENT_REQUEST_SIZE)
|
||||
{
|
||||
qWarning() << "PaymentServer::readPaymentRequest : " << filename << " too large";
|
||||
// BIP70 DoS protection
|
||||
if (f.size() > BIP70_MAX_PAYMENTREQUEST_SIZE) {
|
||||
qWarning() << QString("PaymentServer::%1: Payment request %2 is too large (%3 bytes, allowed %4 bytes).")
|
||||
.arg(__func__)
|
||||
.arg(filename)
|
||||
.arg(f.size())
|
||||
.arg(BIP70_MAX_PAYMENTREQUEST_SIZE);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -580,10 +599,10 @@ bool PaymentServer::processPaymentRequest(PaymentRequestPlus& request, SendCoins
|
|||
void PaymentServer::fetchRequest(const QUrl& url)
|
||||
{
|
||||
QNetworkRequest netRequest;
|
||||
netRequest.setAttribute(QNetworkRequest::User, "PaymentRequest");
|
||||
netRequest.setAttribute(QNetworkRequest::User, BIP70_MESSAGE_PAYMENTREQUEST);
|
||||
netRequest.setUrl(url);
|
||||
netRequest.setRawHeader("User-Agent", CLIENT_NAME.c_str());
|
||||
netRequest.setRawHeader("Accept", BITCOIN_REQUEST_MIMETYPE);
|
||||
netRequest.setRawHeader("Accept", BIP71_MIMETYPE_PAYMENTREQUEST);
|
||||
netManager->get(netRequest);
|
||||
}
|
||||
|
||||
|
@ -594,11 +613,11 @@ void PaymentServer::fetchPaymentACK(CWallet* wallet, SendCoinsRecipient recipien
|
|||
return;
|
||||
|
||||
QNetworkRequest netRequest;
|
||||
netRequest.setAttribute(QNetworkRequest::User, "PaymentACK");
|
||||
netRequest.setAttribute(QNetworkRequest::User, BIP70_MESSAGE_PAYMENTACK);
|
||||
netRequest.setUrl(QString::fromStdString(details.payment_url()));
|
||||
netRequest.setHeader(QNetworkRequest::ContentTypeHeader, BITCOIN_PAYMENTACK_CONTENTTYPE);
|
||||
netRequest.setHeader(QNetworkRequest::ContentTypeHeader, BIP71_MIMETYPE_PAYMENT);
|
||||
netRequest.setRawHeader("User-Agent", CLIENT_NAME.c_str());
|
||||
netRequest.setRawHeader("Accept", BITCOIN_PAYMENTACK_MIMETYPE);
|
||||
netRequest.setRawHeader("Accept", BIP71_MIMETYPE_PAYMENTACK);
|
||||
|
||||
payments::Payment payment;
|
||||
payment.set_merchant_data(details.merchant_data());
|
||||
|
@ -616,7 +635,6 @@ void PaymentServer::fetchPaymentACK(CWallet* wallet, SendCoinsRecipient recipien
|
|||
else {
|
||||
CPubKey newKey;
|
||||
if (wallet->GetKeyFromPool(newKey)) {
|
||||
LOCK(wallet->cs_wallet); // SetAddressBook
|
||||
CKeyID keyID = newKey.GetID();
|
||||
wallet->SetAddressBook(keyID, strAccount, "refund");
|
||||
|
||||
|
@ -646,13 +664,26 @@ void PaymentServer::fetchPaymentACK(CWallet* wallet, SendCoinsRecipient recipien
|
|||
void PaymentServer::netRequestFinished(QNetworkReply* reply)
|
||||
{
|
||||
reply->deleteLater();
|
||||
if (reply->error() != QNetworkReply::NoError)
|
||||
{
|
||||
|
||||
// BIP70 DoS protection
|
||||
if (reply->size() > BIP70_MAX_PAYMENTREQUEST_SIZE) {
|
||||
QString msg = tr("Payment request %2 is too large (%3 bytes, allowed %4 bytes).")
|
||||
.arg(__func__)
|
||||
.arg(reply->request().url().toString())
|
||||
.arg(reply->size())
|
||||
.arg(BIP70_MAX_PAYMENTREQUEST_SIZE);
|
||||
|
||||
qWarning() << QString("PaymentServer::%1:").arg(__func__) << msg;
|
||||
emit message(tr("Payment request DoS protection"), msg, CClientUIInterface::MSG_ERROR);
|
||||
return;
|
||||
}
|
||||
|
||||
if (reply->error() != QNetworkReply::NoError) {
|
||||
QString msg = tr("Error communicating with %1: %2")
|
||||
.arg(reply->request().url().toString())
|
||||
.arg(reply->errorString());
|
||||
|
||||
qWarning() << "PaymentServer::netRequestFinished : " << msg;
|
||||
qWarning() << "PaymentServer::netRequestFinished: " << msg;
|
||||
emit message(tr("Payment request error"), msg, CClientUIInterface::MSG_ERROR);
|
||||
return;
|
||||
}
|
||||
|
@ -660,7 +691,7 @@ void PaymentServer::netRequestFinished(QNetworkReply* reply)
|
|||
QByteArray data = reply->readAll();
|
||||
|
||||
QString requestType = reply->request().attribute(QNetworkRequest::User).toString();
|
||||
if (requestType == "PaymentRequest")
|
||||
if (requestType == BIP70_MESSAGE_PAYMENTREQUEST)
|
||||
{
|
||||
PaymentRequestPlus request;
|
||||
SendCoinsRecipient recipient;
|
||||
|
@ -676,7 +707,7 @@ void PaymentServer::netRequestFinished(QNetworkReply* reply)
|
|||
|
||||
return;
|
||||
}
|
||||
else if (requestType == "PaymentACK")
|
||||
else if (requestType == BIP70_MESSAGE_PAYMENTACK)
|
||||
{
|
||||
payments::PaymentACK paymentACK;
|
||||
if (!paymentACK.ParseFromArray(data.data(), data.size()))
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2011-2014 The Bitcoin developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
#ifndef BITCOIN_QT_PAYMENTSERVER_H
|
||||
|
@ -40,6 +40,8 @@
|
|||
|
||||
class OptionsModel;
|
||||
|
||||
class CWallet;
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QApplication;
|
||||
class QByteArray;
|
||||
|
@ -50,7 +52,8 @@ class QSslError;
|
|||
class QUrl;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
class CWallet;
|
||||
// BIP70 max payment request size in bytes (DoS protection)
|
||||
extern const qint64 BIP70_MAX_PAYMENTREQUEST_SIZE;
|
||||
|
||||
class PaymentServer : public QObject
|
||||
{
|
||||
|
@ -59,7 +62,7 @@ class PaymentServer : public QObject
|
|||
public:
|
||||
// Parse URIs on command line
|
||||
// Returns false on error
|
||||
static bool ipcParseCommandLine(int argc, char *argv[]);
|
||||
static void ipcParseCommandLine(int argc, char *argv[]);
|
||||
|
||||
// Returns true if there were URIs on the command line
|
||||
// which were successfully sent to an already-running
|
||||
|
@ -85,6 +88,9 @@ public:
|
|||
// OptionsModel is used for getting proxy settings and display unit
|
||||
void setOptionsModel(OptionsModel *optionsModel);
|
||||
|
||||
// This is now public, because we use it in paymentservertests.cpp
|
||||
static bool readPaymentRequestFromFile(const QString& filename, PaymentRequestPlus& request);
|
||||
|
||||
signals:
|
||||
// Fired when a valid payment request is received
|
||||
void receivedPaymentRequest(SendCoinsRecipient);
|
||||
|
@ -118,7 +124,6 @@ protected:
|
|||
bool eventFilter(QObject *object, QEvent *event);
|
||||
|
||||
private:
|
||||
static bool readPaymentRequest(const QString& filename, PaymentRequestPlus& request);
|
||||
bool processPaymentRequest(PaymentRequestPlus& request, SendCoinsRecipient& recipient);
|
||||
void fetchRequest(const QUrl& url);
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
IDI_ICON1 ICON DISCARDABLE "icons/bitcoin.ico"
|
||||
IDI_ICON2 ICON DISCARDABLE "icons/bitcoin_testnet.ico"
|
||||
|
||||
#include <windows.h> // needed for VERSIONINFO
|
||||
#include "../../clientversion.h" // holds the needed client version information
|
||||
|
|
BIN
src/qt/res/icons/about.png
Normal file
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 5.8 KiB |
BIN
src/qt/res/icons/about_qt.png
Normal file
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 3 KiB |
Before Width: | Height: | Size: 784 B After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 306 KiB After Width: | Height: | Size: 342 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 2 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 3.8 KiB |
BIN
src/qt/res/icons/connect0.png
Normal file
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 16 KiB |
BIN
src/qt/res/icons/connect1.png
Normal file
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 16 KiB |
BIN
src/qt/res/icons/connect2.png
Normal file
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 16 KiB |
BIN
src/qt/res/icons/connect3.png
Normal file
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 16 KiB |
BIN
src/qt/res/icons/connect4.png
Normal file
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 883 B After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 3 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 762 B After Width: | Height: | Size: 16 KiB |
BIN
src/qt/res/icons/info.png
Normal file
Before Width: | Height: | Size: 2 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.7 KiB |
BIN
src/qt/res/icons/open.png
Normal file
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 2 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 16 KiB |