Rename CClaimTrieCache to CClaimTrieUpdateBuffer #156
10
configure.ac
|
@ -1,7 +1,7 @@
|
||||||
dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N)
|
dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N)
|
||||||
AC_PREREQ([2.60])
|
AC_PREREQ([2.60])
|
||||||
define(_CLIENT_VERSION_MAJOR, 0)
|
define(_CLIENT_VERSION_MAJOR, 0)
|
||||||
define(_CLIENT_VERSION_MINOR, 9)
|
define(_CLIENT_VERSION_MINOR, 10)
|
||||||
define(_CLIENT_VERSION_REVISION, 99)
|
define(_CLIENT_VERSION_REVISION, 99)
|
||||||
define(_CLIENT_VERSION_BUILD, 0)
|
define(_CLIENT_VERSION_BUILD, 0)
|
||||||
define(_CLIENT_VERSION_IS_RELEASE, false)
|
define(_CLIENT_VERSION_IS_RELEASE, false)
|
||||||
|
@ -244,8 +244,12 @@ case $host in
|
||||||
AC_CHECK_PROG([PORT],port, port)
|
AC_CHECK_PROG([PORT],port, port)
|
||||||
if test x$PORT = xport; then
|
if test x$PORT = xport; then
|
||||||
dnl add default macports paths
|
dnl add default macports paths
|
||||||
CPPFLAGS="$CPPFLAGS -isystem /opt/local/include -I/opt/local/include/db48"
|
CPPFLAGS="$CPPFLAGS -isystem /opt/local/include"
|
||||||
LIBS="$LIBS -L/opt/local/lib -L/opt/local/lib/db48"
|
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
|
fi
|
||||||
|
|
||||||
AC_CHECK_PROG([BREW],brew, brew)
|
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 "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 "Run 'git diff HEAD~' to show the changes being merged." >&2
|
||||||
echo "Type 'exit' when done." >&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
|
bash -i
|
||||||
read -p "Press 'm' to accept the merge. " -n 1 -r >&2
|
read -p "Press 'm' to accept the merge. " -n 1 -r >&2
|
||||||
echo
|
echo
|
||||||
|
|
|
@ -148,7 +148,7 @@ class BlockDataCopier:
|
||||||
outFname = self.settings['output_file']
|
outFname = self.settings['output_file']
|
||||||
else:
|
else:
|
||||||
outFname = "%s/blk%05d.dat" % (self.settings['output'], outFn)
|
outFname = "%s/blk%05d.dat" % (self.settings['output'], outFn)
|
||||||
print("Output file" + outFname)
|
print("Output file " + outFname)
|
||||||
self.outF = open(outFname, "wb")
|
self.outF = open(outFname, "wb")
|
||||||
|
|
||||||
self.outF.write(inhdr)
|
self.outF.write(inhdr)
|
||||||
|
@ -189,7 +189,7 @@ class BlockDataCopier:
|
||||||
while self.blkCountOut < len(self.blkindex):
|
while self.blkCountOut < len(self.blkindex):
|
||||||
if not self.inF:
|
if not self.inF:
|
||||||
fname = self.inFileName(self.inFn)
|
fname = self.inFileName(self.inFn)
|
||||||
print("Input file" + fname)
|
print("Input file " + fname)
|
||||||
try:
|
try:
|
||||||
self.inF = open(fname, "rb")
|
self.inF = open(fname, "rb")
|
||||||
except IOError:
|
except IOError:
|
||||||
|
@ -205,7 +205,7 @@ class BlockDataCopier:
|
||||||
|
|
||||||
inMagic = inhdr[:4]
|
inMagic = inhdr[:4]
|
||||||
if (inMagic != self.settings['netmagic']):
|
if (inMagic != self.settings['netmagic']):
|
||||||
print("Invalid magic:" + inMagic)
|
print("Invalid magic: " + inMagic)
|
||||||
return
|
return
|
||||||
inLenLE = inhdr[4:]
|
inLenLE = inhdr[4:]
|
||||||
su = struct.unpack("<I", inLenLE)
|
su = struct.unpack("<I", inLenLE)
|
||||||
|
@ -292,7 +292,7 @@ if __name__ == '__main__':
|
||||||
blkmap = mkblockmap(blkindex)
|
blkmap = mkblockmap(blkindex)
|
||||||
|
|
||||||
if not "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f" in blkmap:
|
if not "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f" in blkmap:
|
||||||
print("not found")
|
print("Genesis block not found in hashlist")
|
||||||
else:
|
else:
|
||||||
BlockDataCopier(settings, blkindex, blkmap).run()
|
BlockDataCopier(settings, blkindex, blkmap).run()
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,7 @@ endif
|
||||||
|
|
||||||
base_build_dir=$(BASEDIR)/work/build
|
base_build_dir=$(BASEDIR)/work/build
|
||||||
base_staging_dir=$(BASEDIR)/work/staging
|
base_staging_dir=$(BASEDIR)/work/staging
|
||||||
|
base_download_dir=$(BASEDIR)/work/download
|
||||||
canonical_host:=$(shell ./config.sub $(HOST))
|
canonical_host:=$(shell ./config.sub $(HOST))
|
||||||
build:=$(shell ./config.sub $(BUILD))
|
build:=$(shell ./config.sub $(BUILD))
|
||||||
|
|
||||||
|
@ -122,5 +123,12 @@ $(host_prefix)/share/config.site : config.site.in $(host_prefix)/.stamp_$(final_
|
||||||
$(AT)touch $@
|
$(AT)touch $@
|
||||||
|
|
||||||
install: $(host_prefix)/share/config.site
|
install: $(host_prefix)/share/config.site
|
||||||
download: $(all_sources)
|
download-one: $(all_sources)
|
||||||
.PHONY: install cached
|
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.
|
options will be passed to bitcoin's configure. In this case, --disable-wallet.
|
||||||
|
|
||||||
Additional targets:
|
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
|
endef
|
||||||
|
|
||||||
define fetch_file
|
define fetch_file
|
||||||
(test -f $(SOURCES_PATH)/$(4) || \
|
(test -f $$($(1)_source_dir)/$(4) || \
|
||||||
( mkdir -p $$($(1)_extract_dir) && \
|
( mkdir -p $$($(1)_download_dir) && echo Fetching $(1)... && \
|
||||||
( $(build_DOWNLOAD) "$$($(1)_extract_dir)/$(4).temp" "$(2)/$(3)" || \
|
( $(build_DOWNLOAD) "$$($(1)_download_dir)/$(4).temp" "$(2)/$(3)" || \
|
||||||
$(build_DOWNLOAD) "$$($(1)_extract_dir)/$(4).temp" "$(FALLBACK_DOWNLOAD_PATH)/$(3)" ) && \
|
$(build_DOWNLOAD) "$$($(1)_download_dir)/$(4).temp" "$(FALLBACK_DOWNLOAD_PATH)/$(3)" ) && \
|
||||||
echo "$(5) $$($(1)_extract_dir)/$(4).temp" > $$($(1)_extract_dir)/.$(4).hash && \
|
echo "$(5) $$($(1)_download_dir)/$(4).temp" > $$($(1)_download_dir)/.$(4).hash && \
|
||||||
$(build_SHA256SUM) -c $$($(1)_extract_dir)/.$(4).hash && \
|
$(build_SHA256SUM) -c $$($(1)_download_dir)/.$(4).hash && \
|
||||||
mv $$($(1)_extract_dir)/$(4).temp $(SOURCES_PATH)/$(4) ))
|
mv $$($(1)_download_dir)/$(4).temp $$($(1)_source_dir)/$(4) && \
|
||||||
|
rm -rf $$($(1)_download_dir) ))
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define int_get_build_recipe_hash
|
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)_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
|
endef
|
||||||
|
|
||||||
define int_get_build_id
|
define int_get_build_id
|
||||||
|
@ -45,17 +46,19 @@ final_build_id_long+=$($(package)_build_id_long)
|
||||||
#compute package-specific paths
|
#compute package-specific paths
|
||||||
$(1)_build_subdir?=.
|
$(1)_build_subdir?=.
|
||||||
$(1)_download_file?=$($(1)_file_name)
|
$(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_dir=$(base_staging_dir)/$(host)/$(1)/$($(1)_version)-$($(1)_build_id)
|
||||||
$(1)_staging_prefix_dir:=$$($(1)_staging_dir)$($($(1)_type)_prefix)
|
$(1)_staging_prefix_dir:=$$($(1)_staging_dir)$($($(1)_type)_prefix)
|
||||||
$(1)_extract_dir:=$(base_build_dir)/$(host)/$(1)/$($(1)_version)-$($(1)_build_id)
|
$(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)_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)_patch_dir:=$(base_build_dir)/$(host)/$(1)/$($(1)_version)-$($(1)_build_id)/.patches-$($(1)_build_id)
|
||||||
$(1)_prefixbin:=$($($(1)_type)_prefix)/bin/
|
$(1)_prefixbin:=$($($(1)_type)_prefix)/bin/
|
||||||
$(1)_cached:=$(BASE_CACHE)/$(host)/$(1)/$(1)-$($(1)_version)-$($(1)_build_id).tar.gz
|
$(1)_cached:=$(BASE_CACHE)/$(host)/$(1)/$(1)-$($(1)_version)-$($(1)_build_id).tar.gz
|
||||||
|
|
||||||
#stamps
|
#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)_extracted=$$($(1)_extract_dir)/.stamp_extracted
|
||||||
$(1)_preprocessed=$$($(1)_extract_dir)/.stamp_preprocessed
|
$(1)_preprocessed=$$($(1)_extract_dir)/.stamp_preprocessed
|
||||||
$(1)_cleaned=$$($(1)_extract_dir)/.stamp_cleaned
|
$(1)_cleaned=$$($(1)_extract_dir)/.stamp_cleaned
|
||||||
|
@ -150,7 +153,6 @@ endef
|
||||||
|
|
||||||
define int_add_cmds
|
define int_add_cmds
|
||||||
$($(1)_fetched):
|
$($(1)_fetched):
|
||||||
$(AT)echo Fetching $(1)...
|
|
||||||
$(AT)mkdir -p $$(@D) $(SOURCES_PATH)
|
$(AT)mkdir -p $$(@D) $(SOURCES_PATH)
|
||||||
$(AT)cd $$(@D); $(call $(1)_fetch_cmds,$(1))
|
$(AT)cd $$(@D); $(call $(1)_fetch_cmds,$(1))
|
||||||
$(AT)touch $$@
|
$(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
|
$(package)_ldflags+=-L$$(native_cctools_extract_dir)/clang+llvm-3.2-x86-linux-ubuntu-12.04/lib
|
||||||
endef
|
endef
|
||||||
define $(package)_extract_cmds
|
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 $($(package)_source) cctools2odcctools/$($(package)_file_name) && \
|
||||||
ln -sf $(SOURCES_PATH)/$($(package)_ld64_file_name) cctools2odcctools/$($(package)_ld64_file_name) && \
|
ln -sf $($(package)_source_dir)/$($(package)_ld64_file_name) cctools2odcctools/$($(package)_ld64_file_name) && \
|
||||||
ln -sf $(SOURCES_PATH)/$($(package)_dyld_file_name) cctools2odcctools/$($(package)_dyld_file_name) && \
|
ln -sf $($(package)_source_dir)/$($(package)_dyld_file_name) cctools2odcctools/$($(package)_dyld_file_name) && \
|
||||||
tar xf $(SOURCES_PATH)/$($(package)_clang_file_name) && \
|
tar xf $($(package)_source_dir)/$($(package)_clang_file_name) && \
|
||||||
mkdir -p $(SDK_PATH) sdks &&\
|
mkdir -p $(SDK_PATH) sdks &&\
|
||||||
cd sdks; ln -sf $(OSX_SDK) MacOSX$(OSX_SDK_VERSION).sdk
|
cd sdks; ln -sf $(OSX_SDK) MacOSX$(OSX_SDK_VERSION).sdk
|
||||||
endef
|
endef
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package=native_cdrkit
|
package=native_cdrkit
|
||||||
$(package)_version=1.1.11
|
$(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)_file_name=cdrkit-$($(package)_version).tar.bz2
|
||||||
$(package)_sha256_hash=b50d64c214a65b1a79afe3a964c691931a4233e2ba605d793eb85d0ac3652564
|
$(package)_sha256_hash=b50d64c214a65b1a79afe3a964c691931a4233e2ba605d793eb85d0ac3652564
|
||||||
$(package)_patches=cdrkit-deterministic.patch
|
$(package)_patches=cdrkit-deterministic.patch
|
||||||
|
|
|
@ -17,5 +17,5 @@ endef
|
||||||
|
|
||||||
define $(package)_stage_cmds
|
define $(package)_stage_cmds
|
||||||
mkdir -p $($(package)_staging_prefix_dir)/share/$($(package)_install_dirname) && \
|
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
|
endef
|
||||||
|
|
|
@ -34,7 +34,7 @@ PROJECT_NAME = Bitcoin
|
||||||
# This could be handy for archiving the generated documentation or
|
# This could be handy for archiving the generated documentation or
|
||||||
# if some version control system is used.
|
# 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
|
# 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
|
# 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
|
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
|
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.
|
Returns a transaction, in binary, hex-encoded binary or JSON formats.
|
||||||
|
|
||||||
`GET /rest/block/BLOCK-HASH.{bin|hex|json}`
|
`GET /rest/block/BLOCK-HASH.{bin|hex|json}`
|
||||||
|
`GET /rest/block/notxdetails/BLOCK-HASH.{bin|hex|json}`
|
||||||
|
|
||||||
Given a block hash,
|
Given a block hash,
|
||||||
Returns a block, in binary, hex-encoded binary or JSON formats.
|
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.
|
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.
|
For full TX query capability, one must enable the transaction index via "txindex=1" command line / configuration option.
|
||||||
|
|
||||||
Risks
|
Risks
|
||||||
|
|
|
@ -6,98 +6,50 @@ The following is a list of assets used in the bitcoin source and their proper at
|
||||||
* License: MIT
|
* License: MIT
|
||||||
|
|
||||||
### Assets Used
|
### Assets Used
|
||||||
src/qt/res/icons/clock*.png, src/qt/res/icons/tx*.png,
|
src/qt/res/icons/watch*.png, src/qt/res/icons/tx_in.png,
|
||||||
src/qt/res/src/clock_green.svg, src/qt/res/src/clock1.svg,
|
src/qt/res/icons/tx_inout.png,
|
||||||
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
|
|
||||||
|
|
||||||
[David Vignoni](http://www.icon-king.com)
|
[Typicons/Stephen Hutchings](http://typicons.com)
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
### Info
|
### Info
|
||||||
* Icon Pack: NUVOLA ICON THEME for KDE 3.x
|
* Icon Pack: Typicons (http://typicons.com)
|
||||||
* Designer: David Vignoni (david@icon-king.com)
|
* Designer: Stephen Hutchings (and more)
|
||||||
* License: LGPL
|
* License: CC BY-SA
|
||||||
* Site: [http://www.icon-king.com/projects/nuvola](http://www.icon-king.com/projects/nuvola)
|
* Site: [https://github.com/stephenhutchings/typicons.font](https://github.com/stephenhutchings/typicons.font)
|
||||||
|
|
||||||
### Assets Used
|
### Assets Used
|
||||||
src/qt/res/icons/address-book.png, src/qt/res/icons/export.png,
|
src/qt/res/icons/add.png, src/qt/res/icons/address-book.png,
|
||||||
src/qt/res/icons/history.png, src/qt/res/icons/key.png,
|
src/qt/res/icons/configure.png, src/qt/res/icons/connect4.png,
|
||||||
src/qt/res/icons/lock_*.png, src/qt/res/icons/overview.png,
|
src/qt/res/icons/debugwindow.png, src/qt/res/icons/edit.png,
|
||||||
src/qt/res/icons/receive.png, src/qt/res/icons/send.png,
|
src/qt/res/icons/exitcopy.png, src/qt/res/icons/editpaste.png,
|
||||||
src/qt/res/icons/synced.png, src/qt/res/icons/filesave.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,
|
||||||
schollidesign
|
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,
|
||||||
### Info
|
src/qt/res/icons/receive.png, src/qt/res/icons/remove.png,
|
||||||
* Icon Pack: Human-O2
|
src/qt/res/icons/send.png, src/qt/res/icons/synced.png,
|
||||||
* Designer: schollidesign
|
src/qt/res/icons/transaction*.png, src/qt/res/icons/tx_input.png,
|
||||||
* 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
|
|
||||||
|
|
||||||
Jonas Schnelli
|
Jonas Schnelli
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
### Info
|
### 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
|
* License: MIT
|
||||||
|
|
||||||
### Assets Used
|
### Assets Used
|
||||||
src/qt/res/icons/bitcoin.icns, src/qt/res/src/bitcoin.svg,
|
src/qt/res/icons/about.png, src/qt/res/icons/about_qt.png,
|
||||||
src/qt/res/src/bitcoin.ico, src/qt/res/src/bitcoin.png,
|
src/qt/res/icons/clock*.png, src/qt/res/icons/connect[0-3].png,
|
||||||
src/qt/res/src/bitcoin_testnet.png, docs/bitcoin_logo_doxygen.png,
|
src/qt/res/icons/eye_minus.png, src/qt/res/icons/verify.png,
|
||||||
src/qt/res/images/splash.png, src/qt/res/images/splash_testnet.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
|
(note: this is a temporary file, to be added-to by anybody, and moved to
|
||||||
release-notes at release time)
|
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)
|
###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)
|
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
|
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/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
|
./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-*-unsigned.tar.gz inputs
|
||||||
mv build/out/bitcoin-*.tar.gz build/out/bitcoin-*.dmg ../
|
mv build/out/bitcoin-*.tar.gz build/out/bitcoin-*.dmg ../
|
||||||
popd
|
popd
|
||||||
bitcoin-0.9.99-osx-unsigned.tar.gz
|
|
||||||
Build output expected:
|
Build output expected:
|
||||||
|
|
||||||
1. source tarball (bitcoin-${VERSION}.tar.gz)
|
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
|
git push # Assuming you can push to the gitian.sigs tree
|
||||||
popd
|
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.
|
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.
|
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
|
pushd ./gitian-builder
|
||||||
# Fetch the signature as instructed by Gavin
|
# Fetch the signature as instructed by Gavin
|
||||||
cp signature.tar.gz inputs/
|
cp signature.tar.gz inputs/
|
||||||
|
|
|
@ -15,17 +15,28 @@ fi
|
||||||
|
|
||||||
#Run the tests
|
#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
|
if [ "x${ENABLE_BITCOIND}${ENABLE_UTILS}${ENABLE_WALLET}" = "x111" ]; then
|
||||||
${BUILDDIR}/qa/rpc-tests/wallet.py --srcdir "${BUILDDIR}/src"
|
for (( i = 0; i < ${#testScripts[@]}; i++ ))
|
||||||
${BUILDDIR}/qa/rpc-tests/listtransactions.py --srcdir "${BUILDDIR}/src"
|
do
|
||||||
${BUILDDIR}/qa/rpc-tests/mempool_resurrect_test.py --srcdir "${BUILDDIR}/src"
|
if [ -z "$1" ] || [ "$1" == "${testScripts[$i]}" ] || [ "$1.py" == "${testScripts[$i]}" ]
|
||||||
${BUILDDIR}/qa/rpc-tests/txn_doublespend.py --srcdir "${BUILDDIR}/src"
|
then
|
||||||
${BUILDDIR}/qa/rpc-tests/txn_doublespend.py --mineblock --srcdir "${BUILDDIR}/src"
|
echo -e "running testscript \033[1m${testScripts[$i]}...\033[0m"
|
||||||
${BUILDDIR}/qa/rpc-tests/getchaintips.py --srcdir "${BUILDDIR}/src"
|
${BUILDDIR}/qa/rpc-tests/${testScripts[$i]} --srcdir "${BUILDDIR}/src"
|
||||||
${BUILDDIR}/qa/rpc-tests/rest.py --srcdir "${BUILDDIR}/src"
|
fi
|
||||||
${BUILDDIR}/qa/rpc-tests/mempool_spendcoinbase.py --srcdir "${BUILDDIR}/src"
|
done
|
||||||
${BUILDDIR}/qa/rpc-tests/httpbasics.py --srcdir "${BUILDDIR}/src"
|
|
||||||
#${BUILDDIR}/qa/rpc-tests/forknotify.py --srcdir "${BUILDDIR}/src"
|
|
||||||
else
|
else
|
||||||
echo "No rpc tests to run. Wallet, utils, and bitcoind must all be enabled"
|
echo "No rpc tests to run. Wallet, utils, and bitcoind must all be enabled"
|
||||||
fi
|
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()
|
|
@ -40,7 +40,30 @@ class RESTTest (BitcoinTestFramework):
|
||||||
# check binary format
|
# check binary format
|
||||||
response = http_get_call(url.hostname, url.port, '/rest/block/'+bb_hash+self.FORMAT_SEPARATOR+"bin", True)
|
response = http_get_call(url.hostname, url.port, '/rest/block/'+bb_hash+self.FORMAT_SEPARATOR+"bin", True)
|
||||||
assert_equal(response.status, 200)
|
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
|
# check json format
|
||||||
json_string = http_get_call(url.hostname, url.port, '/rest/block/'+bb_hash+self.FORMAT_SEPARATOR+'json')
|
json_string = http_get_call(url.hostname, url.port, '/rest/block/'+bb_hash+self.FORMAT_SEPARATOR+'json')
|
||||||
|
@ -48,7 +71,7 @@ class RESTTest (BitcoinTestFramework):
|
||||||
assert_equal(json_obj['hash'], bb_hash)
|
assert_equal(json_obj['hash'], bb_hash)
|
||||||
|
|
||||||
# do tx test
|
# 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_string = http_get_call(url.hostname, url.port, '/rest/tx/'+tx_hash+self.FORMAT_SEPARATOR+"json")
|
||||||
json_obj = json.loads(json_string)
|
json_obj = json.loads(json_string)
|
||||||
assert_equal(json_obj['txid'], tx_hash)
|
assert_equal(json_obj['txid'], tx_hash)
|
||||||
|
@ -58,5 +81,30 @@ class RESTTest (BitcoinTestFramework):
|
||||||
assert_equal(response.status, 200)
|
assert_equal(response.status, 200)
|
||||||
assert_greater_than(int(response.getheader('content-length')), 10)
|
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__':
|
if __name__ == '__main__':
|
||||||
RESTTest ().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 = \
|
RES_ICONS = \
|
||||||
qt/res/icons/add.png \
|
qt/res/icons/add.png \
|
||||||
qt/res/icons/address-book.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.ico \
|
||||||
qt/res/icons/bitcoin.png \
|
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/clock1.png \
|
||||||
qt/res/icons/clock2.png \
|
qt/res/icons/clock2.png \
|
||||||
qt/res/icons/clock3.png \
|
qt/res/icons/clock3.png \
|
||||||
qt/res/icons/clock4.png \
|
qt/res/icons/clock4.png \
|
||||||
qt/res/icons/clock5.png \
|
qt/res/icons/clock5.png \
|
||||||
qt/res/icons/configure.png \
|
qt/res/icons/configure.png \
|
||||||
qt/res/icons/connect0_16.png \
|
qt/res/icons/connect0.png \
|
||||||
qt/res/icons/connect1_16.png \
|
qt/res/icons/connect1.png \
|
||||||
qt/res/icons/connect2_16.png \
|
qt/res/icons/connect2.png \
|
||||||
qt/res/icons/connect3_16.png \
|
qt/res/icons/connect3.png \
|
||||||
qt/res/icons/connect4_16.png \
|
qt/res/icons/connect4.png \
|
||||||
qt/res/icons/debugwindow.png \
|
qt/res/icons/debugwindow.png \
|
||||||
qt/res/icons/edit.png \
|
qt/res/icons/edit.png \
|
||||||
qt/res/icons/editcopy.png \
|
qt/res/icons/editcopy.png \
|
||||||
|
@ -237,11 +237,12 @@ RES_ICONS = \
|
||||||
qt/res/icons/eye_plus.png \
|
qt/res/icons/eye_plus.png \
|
||||||
qt/res/icons/filesave.png \
|
qt/res/icons/filesave.png \
|
||||||
qt/res/icons/history.png \
|
qt/res/icons/history.png \
|
||||||
|
qt/res/icons/info.png \
|
||||||
qt/res/icons/key.png \
|
qt/res/icons/key.png \
|
||||||
qt/res/icons/lock_closed.png \
|
qt/res/icons/lock_closed.png \
|
||||||
qt/res/icons/lock_open.png \
|
qt/res/icons/lock_open.png \
|
||||||
|
qt/res/icons/open.png \
|
||||||
qt/res/icons/overview.png \
|
qt/res/icons/overview.png \
|
||||||
qt/res/icons/qrcode.png \
|
|
||||||
qt/res/icons/quit.png \
|
qt/res/icons/quit.png \
|
||||||
qt/res/icons/receive.png \
|
qt/res/icons/receive.png \
|
||||||
qt/res/icons/remove.png \
|
qt/res/icons/remove.png \
|
||||||
|
@ -256,7 +257,8 @@ RES_ICONS = \
|
||||||
qt/res/icons/tx_mined.png \
|
qt/res/icons/tx_mined.png \
|
||||||
qt/res/icons/unit_btc.png \
|
qt/res/icons/unit_btc.png \
|
||||||
qt/res/icons/unit_mbtc.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 = \
|
BITCOIN_QT_CPP = \
|
||||||
qt/bitcoinaddressvalidator.cpp \
|
qt/bitcoinaddressvalidator.cpp \
|
||||||
|
@ -311,9 +313,7 @@ BITCOIN_QT_CPP += \
|
||||||
endif
|
endif
|
||||||
|
|
||||||
RES_IMAGES = \
|
RES_IMAGES = \
|
||||||
qt/res/images/about.png \
|
qt/res/images/about.png
|
||||||
qt/res/images/splash.png \
|
|
||||||
qt/res/images/splash_testnet.png
|
|
||||||
|
|
||||||
RES_MOVIES = $(wildcard qt/res/movies/spinner-*.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
|
#locale/foo.ts -> locale/foo.qm
|
||||||
QT_QM=$(QT_TS:.ts=.qm)
|
QT_QM=$(QT_TS:.ts=.qm)
|
||||||
|
|
||||||
.SECONDARY: $(QT_QM)
|
SECONDARY: $(QT_QM)
|
||||||
|
|
||||||
qt/bitcoinstrings.cpp: $(libbitcoin_server_a_SOURCES) $(libbitcoin_wallet_a_SOURCES)
|
qt/bitcoinstrings.cpp: $(libbitcoin_server_a_SOURCES) $(libbitcoin_wallet_a_SOURCES)
|
||||||
@test -n $(XGETTEXT) || echo "xgettext is required for updating translations"
|
@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;
|
pindex = pindex->pprev;
|
||||||
return pindex;
|
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
|
class CBlockIndex
|
||||||
{
|
{
|
||||||
public:
|
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;
|
const uint256* phashBlock;
|
||||||
|
|
||||||
//! pointer to the index of the predecessor of this block
|
//! pointer to the index of the predecessor of this block
|
||||||
|
@ -236,14 +236,6 @@ public:
|
||||||
return pbegin[(pend - pbegin)/2];
|
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
|
std::string ToString() const
|
||||||
{
|
{
|
||||||
return strprintf("CBlockIndex(pprev=%p, nHeight=%d, merkle=%s, hashBlock=%s)",
|
return strprintf("CBlockIndex(pprev=%p, nHeight=%d, merkle=%s, hashBlock=%s)",
|
||||||
|
@ -293,7 +285,7 @@ public:
|
||||||
hashPrev = 0;
|
hashPrev = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
explicit CDiskBlockIndex(CBlockIndex* pindex) : CBlockIndex(*pindex) {
|
explicit CDiskBlockIndex(const CBlockIndex* pindex) : CBlockIndex(*pindex) {
|
||||||
hashPrev = (pprev ? pprev->GetBlockHash() : 0);
|
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
|
//! 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_MAJOR 0
|
||||||
#define CLIENT_VERSION_MINOR 9
|
#define CLIENT_VERSION_MINOR 10
|
||||||
#define CLIENT_VERSION_REVISION 99
|
#define CLIENT_VERSION_REVISION 99
|
||||||
#define CLIENT_VERSION_BUILD 0
|
#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);
|
prng.Generate((unsigned char*)&nonce, 32);
|
||||||
nonce += test_case;
|
nonce += test_case;
|
||||||
int nSigLen = 72;
|
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;
|
nonce = 0;
|
||||||
if (ret) {
|
if (ret) {
|
||||||
vchSig.resize(nSigLen);
|
vchSig.resize(nSigLen);
|
||||||
|
@ -114,7 +114,7 @@ bool CKey::SignCompact(const uint256 &hash, std::vector<unsigned char>& vchSig)
|
||||||
do {
|
do {
|
||||||
uint256 nonce;
|
uint256 nonce;
|
||||||
prng.Generate((unsigned char*)&nonce, 32);
|
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;
|
nonce = 0;
|
||||||
if (ret)
|
if (ret)
|
||||||
break;
|
break;
|
||||||
|
|
98
src/main.cpp
|
@ -67,6 +67,13 @@ map<uint256, COrphanTx> mapOrphanTransactions;
|
||||||
map<uint256, set<uint256> > mapOrphanTransactionsByPrev;
|
map<uint256, set<uint256> > mapOrphanTransactionsByPrev;
|
||||||
void EraseOrphansFor(NodeId peer);
|
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: */
|
/** Constant stuff for coinbase transactions we create: */
|
||||||
CScript COINBASE_FLAGS;
|
CScript COINBASE_FLAGS;
|
||||||
|
|
||||||
|
@ -1018,7 +1025,7 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa
|
||||||
hash.ToString(), nFees, txMinFee),
|
hash.ToString(), nFees, txMinFee),
|
||||||
REJECT_INSUFFICIENTFEE, "insufficient fee");
|
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
|
// This mitigates 'penny-flooding' -- sending thousands of free transactions just to
|
||||||
// be annoying or make others' transactions take longer to confirm.
|
// be annoying or make others' transactions take longer to confirm.
|
||||||
if (fLimitFree && nFees < ::minRelayTxFee.GetFee(nSize))
|
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)
|
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(),
|
hash.ToString(),
|
||||||
nFees, ::minRelayTxFee.GetFee(nSize) * 10000);
|
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.
|
// This is done last to help prevent CPU exhaustion denial-of-service attacks.
|
||||||
if (!CheckInputs(tx, state, view, true, STANDARD_SCRIPT_VERIFY_FLAGS, true))
|
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
|
// Store transaction in memory
|
||||||
pool.addUnchecked(hash, entry);
|
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.
|
// First make sure all block and undo data is flushed to disk.
|
||||||
FlushBlockFile();
|
FlushBlockFile();
|
||||||
// Then update all block file information (which may refer to block and undo files).
|
// Then update all block file information (which may refer to block and undo files).
|
||||||
bool fileschanged = false;
|
{
|
||||||
|
std::vector<std::pair<int, const CBlockFileInfo*> > vFiles;
|
||||||
|
vFiles.reserve(setDirtyFileInfo.size());
|
||||||
for (set<int>::iterator it = setDirtyFileInfo.begin(); it != setDirtyFileInfo.end(); ) {
|
for (set<int>::iterator it = setDirtyFileInfo.begin(); it != setDirtyFileInfo.end(); ) {
|
||||||
if (!pblocktree->WriteBlockFileInfo(*it, vinfoBlockFile[*it])) {
|
vFiles.push_back(make_pair(*it, &vinfoBlockFile[*it]));
|
||||||
return state.Abort("Failed to write to block index");
|
|
||||||
}
|
|
||||||
fileschanged = true;
|
|
||||||
setDirtyFileInfo.erase(it++);
|
setDirtyFileInfo.erase(it++);
|
||||||
}
|
}
|
||||||
if (fileschanged && !pblocktree->WriteLastBlockFile(nLastBlockFile)) {
|
std::vector<const CBlockIndex*> vBlocks;
|
||||||
return state.Abort("Failed to write to block index");
|
vBlocks.reserve(setDirtyBlockIndex.size());
|
||||||
}
|
|
||||||
for (set<CBlockIndex*>::iterator it = setDirtyBlockIndex.begin(); it != setDirtyBlockIndex.end(); ) {
|
for (set<CBlockIndex*>::iterator it = setDirtyBlockIndex.begin(); it != setDirtyBlockIndex.end(); ) {
|
||||||
if (!pblocktree->WriteBlockIndex(CDiskBlockIndex(*it))) {
|
vBlocks.push_back(*it);
|
||||||
return state.Abort("Failed to write to block index");
|
|
||||||
}
|
|
||||||
setDirtyBlockIndex.erase(it++);
|
setDirtyBlockIndex.erase(it++);
|
||||||
}
|
}
|
||||||
pblocktree->Sync();
|
if (!pblocktree->WriteBatchSync(vFiles, nLastBlockFile, vBlocks)) {
|
||||||
|
return state.Abort("Files to write to block index database");
|
||||||
|
}
|
||||||
|
}
|
||||||
// Finally flush the chainstate (which may refer to block index entries).
|
// Finally flush the chainstate (which may refer to block index entries).
|
||||||
if (!pcoinsTip->Flush())
|
if (!pcoinsTip->Flush())
|
||||||
return state.Abort("Failed to write to coin database");
|
return state.Abort("Failed to write to coin database");
|
||||||
|
@ -1892,10 +1898,10 @@ bool static DisconnectTip(CValidationState &state) {
|
||||||
// ignore validation errors in resurrected transactions
|
// ignore validation errors in resurrected transactions
|
||||||
list<CTransaction> removed;
|
list<CTransaction> removed;
|
||||||
CValidationState stateDummy;
|
CValidationState stateDummy;
|
||||||
if (!tx.IsCoinBase())
|
if (tx.IsCoinBase() || !AcceptToMemoryPool(mempool, stateDummy, tx, false, NULL))
|
||||||
if (!AcceptToMemoryPool(mempool, stateDummy, tx, false, NULL))
|
|
||||||
mempool.remove(tx, removed, true);
|
mempool.remove(tx, removed, true);
|
||||||
}
|
}
|
||||||
|
mempool.removeCoinbaseSpends(pcoinsTip, pindexDelete->nHeight);
|
||||||
mempool.check(pcoinsTip);
|
mempool.check(pcoinsTip);
|
||||||
// Update chainActive and related variables.
|
// Update chainActive and related variables.
|
||||||
UpdateTip(pindexDelete->pprev);
|
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));
|
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:
|
// Reject block.nVersion=1 blocks when 95% (75% on testnet) of the network has upgraded:
|
||||||
if (block.nVersion < 2 &&
|
if (block.nVersion < 2 && IsSuperMajority(2, pindexPrev, Params().RejectBlockOutdatedMajority()))
|
||||||
CBlockIndex::IsSuperMajority(2, pindexPrev, Params().RejectBlockOutdatedMajority()))
|
|
||||||
{
|
{
|
||||||
return state.Invalid(error("%s : rejected nVersion=1 block", __func__),
|
return state.Invalid(error("%s : rejected nVersion=1 block", __func__),
|
||||||
REJECT_OBSOLETE, "bad-version");
|
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
|
// 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 750 of the last 1,000 blocks are version 2 or greater (51/100 if testnet):
|
||||||
if (block.nVersion >= 2 &&
|
if (block.nVersion >= 2 && IsSuperMajority(2, pindexPrev, Params().EnforceBlockUpgradeMajority()))
|
||||||
CBlockIndex::IsSuperMajority(2, pindexPrev, Params().EnforceBlockUpgradeMajority()))
|
|
||||||
{
|
{
|
||||||
CScript expect = CScript() << nHeight;
|
CScript expect = CScript() << nHeight;
|
||||||
if (block.vtx[0].vin[0].scriptSig.size() < expect.size() ||
|
if (block.vtx[0].vin[0].scriptSig.size() < expect.size() ||
|
||||||
|
@ -2601,7 +2605,7 @@ bool AcceptBlock(CBlock& block, CValidationState& state, CBlockIndex** ppindex,
|
||||||
return true;
|
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 nToCheck = Params().ToCheckBlockUpgradeMajority();
|
||||||
unsigned int nFound = 0;
|
unsigned int nFound = 0;
|
||||||
|
@ -2614,54 +2618,6 @@ bool CBlockIndex::IsSuperMajority(int minVersion, const CBlockIndex* pstart, uns
|
||||||
return (nFound >= nRequired);
|
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)
|
bool ProcessNewBlock(CValidationState &state, CNode* pfrom, CBlock* pblock, CDiskBlockPos *dbp)
|
||||||
{
|
{
|
||||||
|
@ -3032,7 +2988,7 @@ bool InitBlockIndex() {
|
||||||
return error("LoadBlockIndex() : genesis block not accepted");
|
return error("LoadBlockIndex() : genesis block not accepted");
|
||||||
if (!ActivateBestChain(state, &block))
|
if (!ActivateBestChain(state, &block))
|
||||||
return error("LoadBlockIndex() : genesis block cannot be activated");
|
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);
|
return FlushStateToDisk(state, FLUSH_STATE_ALWAYS);
|
||||||
} catch(std::runtime_error &e) {
|
} catch(std::runtime_error &e) {
|
||||||
return error("LoadBlockIndex() : failed to initialize block database: %s", e.what());
|
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())
|
if (!IsValid())
|
||||||
return false;
|
return false;
|
||||||
#ifdef USE_SECP256K1
|
#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;
|
return false;
|
||||||
#else
|
#else
|
||||||
CECKey key;
|
CECKey key;
|
||||||
|
@ -35,7 +35,7 @@ bool CPubKey::RecoverCompact(const uint256 &hash, const std::vector<unsigned cha
|
||||||
bool fComp = ((vchSig[0] - 27) & 4) != 0;
|
bool fComp = ((vchSig[0] - 27) & 4) != 0;
|
||||||
#ifdef USE_SECP256K1
|
#ifdef USE_SECP256K1
|
||||||
int pubkeylen = 65;
|
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;
|
return false;
|
||||||
assert((int)size() == pubkeylen);
|
assert((int)size() == pubkeylen);
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -570,9 +570,9 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
#ifdef ENABLE_WALLET
|
#ifdef ENABLE_WALLET
|
||||||
// Parse URIs on command line -- this can affect Params()
|
// Parse URIs on command line -- this can affect Params()
|
||||||
if (!PaymentServer::ipcParseCommandLine(argc, argv))
|
PaymentServer::ipcParseCommandLine(argc, argv);
|
||||||
exit(0);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
QScopedPointer<const NetworkStyle> networkStyle(NetworkStyle::instantiate(QString::fromStdString(Params().NetworkIDString())));
|
QScopedPointer<const NetworkStyle> networkStyle(NetworkStyle::instantiate(QString::fromStdString(Params().NetworkIDString())));
|
||||||
assert(!networkStyle.isNull());
|
assert(!networkStyle.isNull());
|
||||||
// Allow for separate UI settings for testnets
|
// Allow for separate UI settings for testnets
|
||||||
|
|
|
@ -4,11 +4,11 @@
|
||||||
<file alias="address-book">res/icons/address-book.png</file>
|
<file alias="address-book">res/icons/address-book.png</file>
|
||||||
<file alias="quit">res/icons/quit.png</file>
|
<file alias="quit">res/icons/quit.png</file>
|
||||||
<file alias="send">res/icons/send.png</file>
|
<file alias="send">res/icons/send.png</file>
|
||||||
<file alias="connect_0">res/icons/connect0_16.png</file>
|
<file alias="connect_0">res/icons/connect0.png</file>
|
||||||
<file alias="connect_1">res/icons/connect1_16.png</file>
|
<file alias="connect_1">res/icons/connect1.png</file>
|
||||||
<file alias="connect_2">res/icons/connect2_16.png</file>
|
<file alias="connect_2">res/icons/connect2.png</file>
|
||||||
<file alias="connect_3">res/icons/connect3_16.png</file>
|
<file alias="connect_3">res/icons/connect3.png</file>
|
||||||
<file alias="connect_4">res/icons/connect4_16.png</file>
|
<file alias="connect_4">res/icons/connect4.png</file>
|
||||||
<file alias="transaction_0">res/icons/transaction0.png</file>
|
<file alias="transaction_0">res/icons/transaction0.png</file>
|
||||||
<file alias="transaction_confirmed">res/icons/transaction2.png</file>
|
<file alias="transaction_confirmed">res/icons/transaction2.png</file>
|
||||||
<file alias="transaction_conflicted">res/icons/transaction_conflicted.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="editpaste">res/icons/editpaste.png</file>
|
||||||
<file alias="editcopy">res/icons/editcopy.png</file>
|
<file alias="editcopy">res/icons/editcopy.png</file>
|
||||||
<file alias="add">res/icons/add.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="edit">res/icons/edit.png</file>
|
||||||
<file alias="history">res/icons/history.png</file>
|
<file alias="history">res/icons/history.png</file>
|
||||||
<file alias="overview">res/icons/overview.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="lock_open">res/icons/lock_open.png</file>
|
||||||
<file alias="key">res/icons/key.png</file>
|
<file alias="key">res/icons/key.png</file>
|
||||||
<file alias="filesave">res/icons/filesave.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="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>
|
||||||
<qresource prefix="/images">
|
<qresource prefix="/images">
|
||||||
<file alias="about">res/images/about.png</file>
|
<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>
|
||||||
<qresource prefix="/movies">
|
<qresource prefix="/movies">
|
||||||
<file alias="spinner-000">res/movies/spinner-000.png</file>
|
<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-032">res/movies/spinner-032.png</file>
|
||||||
<file alias="spinner-033">res/movies/spinner-033.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-034">res/movies/spinner-034.png</file>
|
||||||
|
<file alias="spinner-035">res/movies/spinner-035.png</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
|
|
@ -115,8 +115,8 @@ BitcoinGUI::BitcoinGUI(const NetworkStyle *networkStyle, QWidget *parent) :
|
||||||
}
|
}
|
||||||
windowTitle += " " + networkStyle->getTitleAddText();
|
windowTitle += " " + networkStyle->getTitleAddText();
|
||||||
#ifndef Q_OS_MAC
|
#ifndef Q_OS_MAC
|
||||||
QApplication::setWindowIcon(networkStyle->getAppIcon());
|
QApplication::setWindowIcon(networkStyle->getTrayAndWindowIcon());
|
||||||
setWindowIcon(networkStyle->getAppIcon());
|
setWindowIcon(networkStyle->getTrayAndWindowIcon());
|
||||||
#else
|
#else
|
||||||
MacDockIconHandler::instance()->setIcon(networkStyle->getAppIcon());
|
MacDockIconHandler::instance()->setIcon(networkStyle->getAppIcon());
|
||||||
#endif
|
#endif
|
||||||
|
@ -128,7 +128,7 @@ BitcoinGUI::BitcoinGUI(const NetworkStyle *networkStyle, QWidget *parent) :
|
||||||
setUnifiedTitleAndToolBarOnMac(true);
|
setUnifiedTitleAndToolBarOnMac(true);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
rpcConsole = new RPCConsole(enableWallet ? this : 0);
|
rpcConsole = new RPCConsole(0);
|
||||||
#ifdef ENABLE_WALLET
|
#ifdef ENABLE_WALLET
|
||||||
if(enableWallet)
|
if(enableWallet)
|
||||||
{
|
{
|
||||||
|
@ -234,6 +234,8 @@ BitcoinGUI::~BitcoinGUI()
|
||||||
delete appMenuBar;
|
delete appMenuBar;
|
||||||
MacDockIconHandler::instance()->setMainWindow(NULL);
|
MacDockIconHandler::instance()->setMainWindow(NULL);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
delete rpcConsole;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BitcoinGUI::createActions(const NetworkStyle *networkStyle)
|
void BitcoinGUI::createActions(const NetworkStyle *networkStyle)
|
||||||
|
@ -285,20 +287,16 @@ void BitcoinGUI::createActions(const NetworkStyle *networkStyle)
|
||||||
quitAction->setStatusTip(tr("Quit application"));
|
quitAction->setStatusTip(tr("Quit application"));
|
||||||
quitAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q));
|
quitAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q));
|
||||||
quitAction->setMenuRole(QAction::QuitRole);
|
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->setStatusTip(tr("Show information about Bitcoin Core"));
|
||||||
aboutAction->setMenuRole(QAction::AboutRole);
|
aboutAction->setMenuRole(QAction::AboutRole);
|
||||||
#if QT_VERSION < 0x050000
|
aboutQtAction = new QAction(QIcon(":/icons/about_qt"), tr("About &Qt"), this);
|
||||||
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->setStatusTip(tr("Show information about Qt"));
|
aboutQtAction->setStatusTip(tr("Show information about Qt"));
|
||||||
aboutQtAction->setMenuRole(QAction::AboutQtRole);
|
aboutQtAction->setMenuRole(QAction::AboutQtRole);
|
||||||
optionsAction = new QAction(QIcon(":/icons/options"), tr("&Options..."), this);
|
optionsAction = new QAction(QIcon(":/icons/options"), tr("&Options..."), this);
|
||||||
optionsAction->setStatusTip(tr("Modify configuration options for Bitcoin"));
|
optionsAction->setStatusTip(tr("Modify configuration options for Bitcoin"));
|
||||||
optionsAction->setMenuRole(QAction::PreferencesRole);
|
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"));
|
toggleHideAction->setStatusTip(tr("Show or hide the main Window"));
|
||||||
|
|
||||||
encryptWalletAction = new QAction(QIcon(":/icons/lock_closed"), tr("&Encrypt Wallet..."), this);
|
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"));
|
changePassphraseAction->setStatusTip(tr("Change the passphrase used for wallet encryption"));
|
||||||
signMessageAction = new QAction(QIcon(":/icons/edit"), tr("Sign &message..."), this);
|
signMessageAction = new QAction(QIcon(":/icons/edit"), tr("Sign &message..."), this);
|
||||||
signMessageAction->setStatusTip(tr("Sign messages with your Bitcoin addresses to prove you own them"));
|
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"));
|
verifyMessageAction->setStatusTip(tr("Verify messages to ensure they were signed with specified Bitcoin addresses"));
|
||||||
|
|
||||||
openRPCConsoleAction = new QAction(QIcon(":/icons/debugwindow"), tr("&Debug window"), this);
|
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 = new QAction(QIcon(":/icons/address-book"), tr("&Receiving addresses..."), this);
|
||||||
usedReceivingAddressesAction->setStatusTip(tr("Show the list of used receiving addresses and labels"));
|
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"));
|
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"));
|
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()));
|
connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
|
||||||
|
@ -495,7 +493,7 @@ void BitcoinGUI::createTrayIcon(const NetworkStyle *networkStyle)
|
||||||
trayIcon = new QSystemTrayIcon(this);
|
trayIcon = new QSystemTrayIcon(this);
|
||||||
QString toolTip = tr("Bitcoin Core client") + " " + networkStyle->getTitleAddText();
|
QString toolTip = tr("Bitcoin Core client") + " " + networkStyle->getTitleAddText();
|
||||||
trayIcon->setToolTip(toolTip);
|
trayIcon->setToolTip(toolTip);
|
||||||
trayIcon->setIcon(networkStyle->getAppIcon());
|
trayIcon->setIcon(networkStyle->getTrayAndWindowIcon());
|
||||||
trayIcon->show();
|
trayIcon->show();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -831,6 +829,9 @@ void BitcoinGUI::closeEvent(QCloseEvent *event)
|
||||||
if(!clientModel->getOptionsModel()->getMinimizeToTray() &&
|
if(!clientModel->getOptionsModel()->getMinimizeToTray() &&
|
||||||
!clientModel->getOptionsModel()->getMinimizeOnClose())
|
!clientModel->getOptionsModel()->getMinimizeOnClose())
|
||||||
{
|
{
|
||||||
|
// close rpcConsole in case it was open to make some space for the shutdown window
|
||||||
|
rpcConsole->close();
|
||||||
|
|
||||||
QApplication::quit();
|
QApplication::quit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
<class>RPCConsole</class>
|
<class>RPCConsole</class>
|
||||||
<widget class="QDialog" name="RPCConsole">
|
<widget class="QWidget" name="RPCConsole">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
|
|
|
@ -67,6 +67,12 @@
|
||||||
<iconset resource="../bitcoin.qrc">
|
<iconset resource="../bitcoin.qrc">
|
||||||
<normaloff>:/icons/address-book</normaloff>:/icons/address-book</iconset>
|
<normaloff>:/icons/address-book</normaloff>:/icons/address-book</iconset>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="iconSize">
|
||||||
|
<size>
|
||||||
|
<width>22</width>
|
||||||
|
<height>22</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
<property name="shortcut">
|
<property name="shortcut">
|
||||||
<string>Alt+A</string>
|
<string>Alt+A</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -84,6 +90,12 @@
|
||||||
<iconset resource="../bitcoin.qrc">
|
<iconset resource="../bitcoin.qrc">
|
||||||
<normaloff>:/icons/editpaste</normaloff>:/icons/editpaste</iconset>
|
<normaloff>:/icons/editpaste</normaloff>:/icons/editpaste</iconset>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="iconSize">
|
||||||
|
<size>
|
||||||
|
<width>22</width>
|
||||||
|
<height>22</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
<property name="shortcut">
|
<property name="shortcut">
|
||||||
<string>Alt+P</string>
|
<string>Alt+P</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -101,6 +113,12 @@
|
||||||
<iconset resource="../bitcoin.qrc">
|
<iconset resource="../bitcoin.qrc">
|
||||||
<normaloff>:/icons/remove</normaloff>:/icons/remove</iconset>
|
<normaloff>:/icons/remove</normaloff>:/icons/remove</iconset>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="iconSize">
|
||||||
|
<size>
|
||||||
|
<width>22</width>
|
||||||
|
<height>22</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
|
|
@ -38,9 +38,6 @@ static const int TOOLTIP_WRAP_THRESHOLD = 80;
|
||||||
/* Maximum allowed URI length */
|
/* Maximum allowed URI length */
|
||||||
static const int MAX_URI_LENGTH = 255;
|
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 */
|
/* QRCodeDialog -- size of exported QR Code image */
|
||||||
#define EXPORT_IMAGE_SIZE 256
|
#define EXPORT_IMAGE_SIZE 256
|
||||||
|
|
||||||
|
|
|
@ -1855,14 +1855,26 @@ Adresse: %4</translation>
|
||||||
<source>Minimize</source>
|
<source>Minimize</source>
|
||||||
<translation>Minimieren</translation>
|
<translation>Minimieren</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>per kilobyte</source>
|
<source>per kilobyte</source>
|
||||||
<translation>pro Kilobyte</translation>
|
<translation>pro Kilobyte</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>total at least</source>
|
<source>total at least</source>
|
||||||
<translation>Mindestbetrag</translation>
|
<translation>Mindestbetrag</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>(read the tooltip)</source>
|
<source>(read the tooltip)</source>
|
||||||
<translation>(den Hinweistext lesen)</translation>
|
<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>
|
<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>
|
<translation>Alle Wallet-Transaktionen löschen und nur diese Teilbereiche der Blockkette durch -rescan beim Starten wiederherstellen</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Enter regression test mode, which uses a special chain in which blocks can be solved instantly.</source>
|
<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>
|
<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>
|
||||||
<message>
|
<message>
|
||||||
<source>Create a new address</source>
|
<source>Create a new address</source>
|
||||||
<translation>Δημιούργησε νέα διεύθυνση</translation>
|
<translation>Δημιουργία νέας διεύθυνσης</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&New</source>
|
<source>&New</source>
|
||||||
|
@ -53,6 +53,10 @@
|
||||||
<source>Choose the address to receive coins with</source>
|
<source>Choose the address to receive coins with</source>
|
||||||
<translation>Επιλογή διεύθυνσης απ' όπου θα ληφθούν νομίσματα</translation>
|
<translation>Επιλογή διεύθυνσης απ' όπου θα ληφθούν νομίσματα</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>C&hoose</source>
|
||||||
|
<translation>Ε&πιλογή</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Sending addresses</source>
|
<source>Sending addresses</source>
|
||||||
<translation>Διευθύνσεις αποστολής</translation>
|
<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>
|
<source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
|
||||||
<translation>Αυτές είναι οι Bitcoin διευθύνσεις σας για να λαμβάνετε πληρωμές. Δίνοντας μία ξεχωριστή διεύθυνση σε κάθε αποστολέα, θα μπορείτε να ελέγχετε ποιος σας πληρώνει.</translation>
|
<translation>Αυτές είναι οι Bitcoin διευθύνσεις σας για να λαμβάνετε πληρωμές. Δίνοντας μία ξεχωριστή διεύθυνση σε κάθε αποστολέα, θα μπορείτε να ελέγχετε ποιος σας πληρώνει.</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Copy &Label</source>
|
<source>Copy &Label</source>
|
||||||
<translation>Αντιγραφή &επιγραφής</translation>
|
<translation>Αντιγραφή &επιγραφής</translation>
|
||||||
|
@ -85,7 +93,11 @@
|
||||||
<source>Exporting Failed</source>
|
<source>Exporting Failed</source>
|
||||||
<translation>Η εξαγωγή απέτυχε</translation>
|
<translation>Η εξαγωγή απέτυχε</translation>
|
||||||
</message>
|
</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>
|
<context>
|
||||||
<name>AddressTableModel</name>
|
<name>AddressTableModel</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -113,7 +125,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>New passphrase</source>
|
<source>New passphrase</source>
|
||||||
<translation>Νέος κωδικός πρόσβασης</translation>
|
<translation>&Αλλαγή κωδικού</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Repeat new passphrase</source>
|
<source>Repeat new passphrase</source>
|
||||||
|
@ -121,7 +133,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Encrypt wallet</source>
|
<source>Encrypt wallet</source>
|
||||||
<translation>Κρυπτογράφησε το πορτοφόλι</translation>
|
<translation>&Κρυπτογράφηση πορτοφολιού</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>This operation needs your wallet passphrase to unlock the wallet.</source>
|
<source>This operation needs your wallet passphrase to unlock the wallet.</source>
|
||||||
|
@ -172,6 +184,10 @@
|
||||||
<source>Wallet encrypted</source>
|
<source>Wallet encrypted</source>
|
||||||
<translation>Κρυπτογραφημενο πορτοφολι</translation>
|
<translation>Κρυπτογραφημενο πορτοφολι</translation>
|
||||||
</message>
|
</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>
|
<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>
|
<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>
|
<translation>Το Bitcoin θα κλεισει τώρα για να τελειώσει την διαδικασία κρυπτογραφησης. Θυμησου ότι κρυπτογραφώντας το πορτοφολι σου δεν μπορείς να προστατέψεις πλήρως τα bitcoins σου από κλοπή στην περίπτωση όπου μολυνθεί ο υπολογιστής σου με κακόβουλο λογισμικό.</translation>
|
||||||
|
@ -219,6 +235,10 @@
|
||||||
<source>&Overview</source>
|
<source>&Overview</source>
|
||||||
<translation>&Επισκόπηση</translation>
|
<translation>&Επισκόπηση</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Node</source>
|
||||||
|
<translation>Κόμβος</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Show general overview of wallet</source>
|
<source>Show general overview of wallet</source>
|
||||||
<translation>Εμφάνισε τη γενική εικόνα του πορτοφολιού</translation>
|
<translation>Εμφάνισε τη γενική εικόνα του πορτοφολιού</translation>
|
||||||
|
@ -263,6 +283,22 @@
|
||||||
<source>&Change Passphrase...</source>
|
<source>&Change Passphrase...</source>
|
||||||
<translation>&Άλλαξε κωδικο πρόσβασης</translation>
|
<translation>&Άλλαξε κωδικο πρόσβασης</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Importing blocks from disk...</source>
|
<source>Importing blocks from disk...</source>
|
||||||
<translation>Εισαγωγή μπλοκ από τον σκληρο δίσκο ... </translation>
|
<translation>Εισαγωγή μπλοκ από τον σκληρο δίσκο ... </translation>
|
||||||
|
@ -315,6 +351,10 @@
|
||||||
<source>&Receive</source>
|
<source>&Receive</source>
|
||||||
<translation>&Παραλαβή </translation>
|
<translation>&Παραλαβή </translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Show information about Bitcoin Core</source>
|
||||||
|
<translation>Σχετικά με το Bitcoin Core</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Show / Hide</source>
|
<source>&Show / Hide</source>
|
||||||
<translation>&Εμφάνισε/Κρύψε</translation>
|
<translation>&Εμφάνισε/Κρύψε</translation>
|
||||||
|
@ -371,6 +411,18 @@
|
||||||
<source>Show the list of used receiving addresses and labels</source>
|
<source>Show the list of used receiving addresses and labels</source>
|
||||||
<translation>Προβολή της λίστας των χρησιμοποιημένων διευθύνσεων και ετικετών λήψεως</translation>
|
<translation>Προβολή της λίστας των χρησιμοποιημένων διευθύνσεων και ετικετών λήψεως</translation>
|
||||||
</message>
|
</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">
|
<message numerus="yes">
|
||||||
<source>%n active connection(s) to Bitcoin network</source>
|
<source>%n active connection(s) to Bitcoin network</source>
|
||||||
<translation><numerusform>%n ενεργή σύνδεση στο δίκτυο Bitcoin</numerusform><numerusform>%n ενεργές συνδέσεις στο δίκτυο Βitcoin</numerusform></translation>
|
<translation><numerusform>%n ενεργή σύνδεση στο δίκτυο Bitcoin</numerusform><numerusform>%n ενεργές συνδέσεις στο δίκτυο Βitcoin</numerusform></translation>
|
||||||
|
@ -469,6 +521,10 @@ Address: %4
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoinControlDialog</name>
|
<name>CoinControlDialog</name>
|
||||||
|
<message>
|
||||||
|
<source>Coin Selection</source>
|
||||||
|
<translation>Επιλογή κερμάτων</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Quantity:</source>
|
<source>Quantity:</source>
|
||||||
<translation>Ποσότητα:</translation>
|
<translation>Ποσότητα:</translation>
|
||||||
|
@ -485,6 +541,18 @@ Address: %4
|
||||||
<source>Priority:</source>
|
<source>Priority:</source>
|
||||||
<translation>Προτεραιότητα:</translation>
|
<translation>Προτεραιότητα:</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Fee:</source>
|
||||||
|
<translation>Ταρίφα</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Dust:</source>
|
||||||
|
<translation>Σκόνη</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>After Fee:</source>
|
||||||
|
<translation>Ταρίφα αλλαγής</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Change:</source>
|
<source>Change:</source>
|
||||||
<translation>Ρέστα:</translation>
|
<translation>Ρέστα:</translation>
|
||||||
|
@ -493,10 +561,26 @@ Address: %4
|
||||||
<source>(un)select all</source>
|
<source>(un)select all</source>
|
||||||
<translation>(από)επιλογή όλων</translation>
|
<translation>(από)επιλογή όλων</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Tree mode</source>
|
||||||
|
<translation>Εμφάνιση τύπου δέντρο</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>List mode</source>
|
||||||
|
<translation>Λίστα εντολών</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Amount</source>
|
<source>Amount</source>
|
||||||
<translation>Ποσό</translation>
|
<translation>Ποσό</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Received with label</source>
|
||||||
|
<translation>Παραλήφθηκε με επιγραφή</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Received with address</source>
|
||||||
|
<translation>Παραλείφθηκε με την εξής διεύθυνση</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Date</source>
|
<source>Date</source>
|
||||||
<translation>Ημερομηνία</translation>
|
<translation>Ημερομηνία</translation>
|
||||||
|
@ -529,10 +613,26 @@ Address: %4
|
||||||
<source>Copy transaction ID</source>
|
<source>Copy transaction ID</source>
|
||||||
<translation>Αντιγραφη του ID Συναλλαγής</translation>
|
<translation>Αντιγραφη του ID Συναλλαγής</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Lock unspent</source>
|
||||||
|
<translation>Κλείδωμα αξόδευτων</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Unlock unspent</source>
|
||||||
|
<translation>Ξεκλείδωμα αξόδευτων</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Copy quantity</source>
|
<source>Copy quantity</source>
|
||||||
<translation>Αντιγραφή ποσότητας</translation>
|
<translation>Αντιγραφή ποσότητας</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Copy fee</source>
|
||||||
|
<translation>Αντιγραφή ταρίφας</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Copy after fee</source>
|
||||||
|
<translation>Αντιγραφή ταρίφας</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Copy bytes</source>
|
<source>Copy bytes</source>
|
||||||
<translation>Αντιγραφή των byte</translation>
|
<translation>Αντιγραφή των byte</translation>
|
||||||
|
@ -541,6 +641,10 @@ Address: %4
|
||||||
<source>Copy priority</source>
|
<source>Copy priority</source>
|
||||||
<translation>Αντιγραφή προτεραιότητας</translation>
|
<translation>Αντιγραφή προτεραιότητας</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Copy dust</source>
|
||||||
|
<translation>Αντιγραφή 'σκόνης'</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Copy change</source>
|
<source>Copy change</source>
|
||||||
<translation>Αντιγραφή των ρέστων</translation>
|
<translation>Αντιγραφή των ρέστων</translation>
|
||||||
|
@ -601,6 +705,22 @@ Address: %4
|
||||||
<source>This label turns red, if the transaction size is greater than 1000 bytes.</source>
|
<source>This label turns red, if the transaction size is greater than 1000 bytes.</source>
|
||||||
<translation>Η ετικετα γινετε κοκκινη , αν το μεγεθος της συναλαγης ειναι μεγαλητερο απο 1000 bytes.</translation>
|
<translation>Η ετικετα γινετε κοκκινη , αν το μεγεθος της συναλαγης ειναι μεγαλητερο απο 1000 bytes.</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>(no label)</source>
|
<source>(no label)</source>
|
||||||
<translation>(χωρίς ετικέτα)</translation>
|
<translation>(χωρίς ετικέτα)</translation>
|
||||||
|
@ -629,6 +749,10 @@ Address: %4
|
||||||
<source>The label associated with this address list entry</source>
|
<source>The label associated with this address list entry</source>
|
||||||
<translation>Η ετικέτα που συνδέεται με αυτήν την καταχώρηση στο βιβλίο διευθύνσεων</translation>
|
<translation>Η ετικέτα που συνδέεται με αυτήν την καταχώρηση στο βιβλίο διευθύνσεων</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>The address associated with this address list entry. This can only be modified for sending addresses.</source>
|
||||||
|
<translation>Η διεύθυνση σχετίζεται με αυτή την καταχώρηση του βιβλίου διευθύνσεων. Μπορεί να τροποποιηθεί μόνο για τις διευθύνσεις αποστολής.</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Address</source>
|
<source>&Address</source>
|
||||||
<translation>&Διεύθυνση</translation>
|
<translation>&Διεύθυνση</translation>
|
||||||
|
@ -676,6 +800,14 @@ Address: %4
|
||||||
<source>name</source>
|
<source>name</source>
|
||||||
<translation>όνομα</translation>
|
<translation>όνομα</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Cannot create data directory here.</source>
|
<source>Cannot create data directory here.</source>
|
||||||
<translation>Δεν μπορεί να δημιουργηθεί φάκελος δεδομένων εδώ.</translation>
|
<translation>Δεν μπορεί να δημιουργηθεί φάκελος δεδομένων εδώ.</translation>
|
||||||
|
@ -723,11 +855,19 @@ Address: %4
|
||||||
<source>Start minimized</source>
|
<source>Start minimized</source>
|
||||||
<translation>Έναρξη ελαχιστοποιημένο</translation>
|
<translation>Έναρξη ελαχιστοποιημένο</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Set SSL root certificates for payment request (default: -system-)</source>
|
||||||
|
<translation>Ορίστε SSL root certificates για αίτηση πληρωμής (default: -system-)</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Show splash screen on startup (default: 1)</source>
|
<source>Show splash screen on startup (default: 1)</source>
|
||||||
<translation>Εμφάνισε την οθόνη εκκίνησης κατά την εκκίνηση(προεπιλογή:1)</translation>
|
<translation>Εμφάνισε την οθόνη εκκίνησης κατά την εκκίνηση(προεπιλογή:1)</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
<message>
|
||||||
|
<source>Choose data directory on startup (default: 0)</source>
|
||||||
|
<translation>Επιλογή καταλόγου</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>Intro</name>
|
<name>Intro</name>
|
||||||
<message>
|
<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>
|
<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>
|
<translation>Καθώς αυτή είναι η πρώτη φορά που εκκινείται το πρόγραμμα, μπορείτε να διαλέξετε πού θα αποθηκεύει το Bitcoin Core τα δεδομένα του.</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Use the default data directory</source>
|
<source>Use the default data directory</source>
|
||||||
<translation>Χρήση του προεπιλεγμένου φακέλου δεδομένων</translation>
|
<translation>Χρήση του προεπιλεγμένου φακέλου δεδομένων</translation>
|
||||||
|
@ -754,6 +898,10 @@ Address: %4
|
||||||
<source>Bitcoin Core</source>
|
<source>Bitcoin Core</source>
|
||||||
<translation>Bitcoin Core</translation>
|
<translation>Bitcoin Core</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Error: Specified data directory "%1" cannot be created.</source>
|
||||||
|
<translation>Σφάλμα: Ο καθορισμένος φάκελος δεδομένων "%1" δεν μπορεί να δημιουργηθεί.</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Error</source>
|
<source>Error</source>
|
||||||
<translation>Σφάλμα</translation>
|
<translation>Σφάλμα</translation>
|
||||||
|
@ -761,7 +909,27 @@ Address: %4
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>OpenURIDialog</name>
|
<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>
|
<context>
|
||||||
<name>OptionsDialog</name>
|
<name>OptionsDialog</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -780,10 +948,34 @@ Address: %4
|
||||||
<source>&Start Bitcoin on system login</source>
|
<source>&Start Bitcoin on system login</source>
|
||||||
<translation>&Έναρξη του Βιtcoin κατά την εκκίνηση του συστήματος</translation>
|
<translation>&Έναρξη του Βιtcoin κατά την εκκίνηση του συστήματος</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Size of &database cache</source>
|
||||||
|
<translation>Μέγεθος κρυφής μνήμης βάσης δεδομένων.</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>MB</source>
|
<source>MB</source>
|
||||||
<translation>MB</translation>
|
<translation>MB</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Reset all client options to default.</source>
|
<source>Reset all client options to default.</source>
|
||||||
<translation>Επαναφορα όλων των επιλογων του πελάτη σε default.</translation>
|
<translation>Επαναφορα όλων των επιλογων του πελάτη σε default.</translation>
|
||||||
|
@ -796,10 +988,18 @@ Address: %4
|
||||||
<source>&Network</source>
|
<source>&Network</source>
|
||||||
<translation>&Δίκτυο</translation>
|
<translation>&Δίκτυο</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>W&allet</source>
|
||||||
|
<translation>Π&ορτοφόλι</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Expert</source>
|
<source>Expert</source>
|
||||||
<translation>Έμπειρος</translation>
|
<translation>Έμπειρος</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Enable coin &control features</source>
|
||||||
|
<translation>Επιλογή κατα πόσο να αναδείχνονται οι δυνατότητες ελέγχου κερμάτων.</translation>
|
||||||
|
</message>
|
||||||
<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>
|
<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>
|
<translation>Αυτόματο άνοιγμα των θυρών Bitcoin στον δρομολογητή. Λειτουργεί μόνο αν ο δρομολογητής σας υποστηρίζει τη λειτουργία UPnP.</translation>
|
||||||
|
@ -808,6 +1008,14 @@ Address: %4
|
||||||
<source>Map port using &UPnP</source>
|
<source>Map port using &UPnP</source>
|
||||||
<translation>Απόδοση θυρών με χρήστη &UPnP</translation>
|
<translation>Απόδοση θυρών με χρήστη &UPnP</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Proxy &IP:</source>
|
<source>Proxy &IP:</source>
|
||||||
<translation>&IP διαμεσολαβητή:</translation>
|
<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>
|
<source>Choose the default subdivision unit to show in the interface and when sending coins.</source>
|
||||||
<translation>Διαλέξτε την προεπιλεγμένη υποδιαίρεση που θα εμφανίζεται όταν στέλνετε νομίσματα.</translation>
|
<translation>Διαλέξτε την προεπιλεγμένη υποδιαίρεση που θα εμφανίζεται όταν στέλνετε νομίσματα.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Whether to show coin control features or not.</source>
|
||||||
|
<translation>Επιλογή κατα πόσο να αναδείχνονται οι δυνατότητες ελέγχου κερμάτων.</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&OK</source>
|
<source>&OK</source>
|
||||||
<translation>&ΟΚ</translation>
|
<translation>&ΟΚ</translation>
|
||||||
|
@ -884,6 +1096,14 @@ Address: %4
|
||||||
<source>Client restart required to activate changes.</source>
|
<source>Client restart required to activate changes.</source>
|
||||||
<translation>Χρειάζεται επανεκκίνηση του προγράμματος για να ενεργοποιηθούν οι αλλαγές.</translation>
|
<translation>Χρειάζεται επανεκκίνηση του προγράμματος για να ενεργοποιηθούν οι αλλαγές.</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>The supplied proxy address is invalid.</source>
|
<source>The supplied proxy address is invalid.</source>
|
||||||
<translation>Δεν είναι έγκυρη η διεύθυνση διαμεσολαβητή</translation>
|
<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>
|
<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>
|
<translation>Οι πληροφορίες που εμφανίζονται μπορεί να είναι ξεπερασμένες. Το πορτοφόλι σας συγχρονίζεται αυτόματα με το δίκτυο Bitcoin μετά από μια σύνδεση, αλλά αυτή η διαδικασία δεν έχει ακόμη ολοκληρωθεί. </translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Watch-only:</source>
|
||||||
|
<translation>Επίβλεψη μόνο:</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Available:</source>
|
<source>Available:</source>
|
||||||
<translation>Διαθέσιμο:</translation>
|
<translation>Διαθέσιμο:</translation>
|
||||||
|
@ -907,6 +1131,10 @@ Address: %4
|
||||||
<source>Your current spendable balance</source>
|
<source>Your current spendable balance</source>
|
||||||
<translation>Το τρέχον διαθέσιμο υπόλοιπο</translation>
|
<translation>Το τρέχον διαθέσιμο υπόλοιπο</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Pending:</source>
|
||||||
|
<translation>Εκκρεμούν:</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance</source>
|
<source>Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance</source>
|
||||||
<translation>Το άθροισμα των συναλλαγών που δεν έχουν ακόμα επιβεβαιωθεί και δεν προσμετρώνται στο τρέχον διαθέσιμο υπόλοιπό σας</translation>
|
<translation>Το άθροισμα των συναλλαγών που δεν έχουν ακόμα επιβεβαιωθεί και δεν προσμετρώνται στο τρέχον διαθέσιμο υπόλοιπό σας</translation>
|
||||||
|
@ -919,6 +1147,10 @@ Address: %4
|
||||||
<source>Mined balance that has not yet matured</source>
|
<source>Mined balance that has not yet matured</source>
|
||||||
<translation>Εξορυγμενο υπόλοιπο που δεν έχει ακόμα ωριμάσει </translation>
|
<translation>Εξορυγμενο υπόλοιπο που δεν έχει ακόμα ωριμάσει </translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Balances</source>
|
||||||
|
<translation>Υπόλοιπο:</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Total:</source>
|
<source>Total:</source>
|
||||||
<translation>Σύνολο:</translation>
|
<translation>Σύνολο:</translation>
|
||||||
|
@ -927,6 +1159,14 @@ Address: %4
|
||||||
<source>Your current total balance</source>
|
<source>Your current total balance</source>
|
||||||
<translation>Το τρέχον συνολικό υπόλοιπο</translation>
|
<translation>Το τρέχον συνολικό υπόλοιπο</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Spendable:</source>
|
||||||
|
<translation>Ξοδεμένα:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Recent transactions</source>
|
||||||
|
<translation>Πρόσφατες συναλλαγές</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>out of sync</source>
|
<source>out of sync</source>
|
||||||
<translation>εκτός συγχρονισμού</translation>
|
<translation>εκτός συγχρονισμού</translation>
|
||||||
|
@ -942,6 +1182,18 @@ Address: %4
|
||||||
<source>Invalid payment address %1</source>
|
<source>Invalid payment address %1</source>
|
||||||
<translation>Μη έγκυρη διεύθυνση πληρωμής %1</translation>
|
<translation>Μη έγκυρη διεύθυνση πληρωμής %1</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Payment request error</source>
|
<source>Payment request error</source>
|
||||||
<translation>Σφάλμα αιτήματος πληρωμής</translation>
|
<translation>Σφάλμα αιτήματος πληρωμής</translation>
|
||||||
|
@ -950,6 +1202,18 @@ Address: %4
|
||||||
<source>Cannot start bitcoin: click-to-pay handler</source>
|
<source>Cannot start bitcoin: click-to-pay handler</source>
|
||||||
<translation>Δεν είναι δυνατή η εκκίνηση του Bitcoin: click-to-pay handler</translation>
|
<translation>Δεν είναι δυνατή η εκκίνηση του Bitcoin: click-to-pay handler</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Payment acknowledged</source>
|
<source>Payment acknowledged</source>
|
||||||
<translation>Πληρωμή αναγνωρίστηκε</translation>
|
<translation>Πληρωμή αναγνωρίστηκε</translation>
|
||||||
|
@ -961,13 +1225,29 @@ Address: %4
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>PeerTableModel</name>
|
<name>PeerTableModel</name>
|
||||||
</context>
|
<message>
|
||||||
|
<source>Address/Hostname</source>
|
||||||
|
<translation>Διεύθυθνση/Όνομα υπολογιστή</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Ping Time</source>
|
||||||
|
<translation>Χρόνος καθυστέρησης</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>QObject</name>
|
<name>QObject</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Amount</source>
|
<source>Amount</source>
|
||||||
<translation>Ποσό</translation>
|
<translation>Ποσό</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>%1 h</source>
|
<source>%1 h</source>
|
||||||
<translation>%1 ώ</translation>
|
<translation>%1 ώ</translation>
|
||||||
|
@ -976,11 +1256,31 @@ Address: %4
|
||||||
<source>%1 m</source>
|
<source>%1 m</source>
|
||||||
<translation>%1 λ</translation>
|
<translation>%1 λ</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>N/A</source>
|
<source>N/A</source>
|
||||||
<translation>Μη διαθέσιμο</translation>
|
<translation>Μη διαθέσιμο</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
<message>
|
||||||
|
<source>%1 ms</source>
|
||||||
|
<translation>%1 ms</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>QRImageWidget</name>
|
<name>QRImageWidget</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1054,6 +1354,22 @@ Address: %4
|
||||||
<source>Current number of blocks</source>
|
<source>Current number of blocks</source>
|
||||||
<translation>Τρέχον αριθμός μπλοκ</translation>
|
<translation>Τρέχον αριθμός μπλοκ</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Last block time</source>
|
<source>Last block time</source>
|
||||||
<translation>Χρόνος τελευταίου μπλοκ</translation>
|
<translation>Χρόνος τελευταίου μπλοκ</translation>
|
||||||
|
@ -1130,6 +1446,26 @@ Address: %4
|
||||||
<source>%1 GB</source>
|
<source>%1 GB</source>
|
||||||
<translation>%1 GB</translation>
|
<translation>%1 GB</translation>
|
||||||
</message>
|
</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>
|
||||||
<context>
|
<context>
|
||||||
<name>ReceiveCoinsDialog</name>
|
<name>ReceiveCoinsDialog</name>
|
||||||
|
@ -1184,6 +1520,10 @@ Address: %4
|
||||||
<source>QR Code</source>
|
<source>QR Code</source>
|
||||||
<translation>Κώδικας QR</translation>
|
<translation>Κώδικας QR</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Copy &URI</source>
|
||||||
|
<translation>Αντιγραφη της επιλεγμενης διεύθυνσης στο πρόχειρο του συστηματος</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Save Image...</source>
|
<source>&Save Image...</source>
|
||||||
<translation>&Αποθήκευση εικόνας...</translation>
|
<translation>&Αποθήκευση εικόνας...</translation>
|
||||||
|
@ -1192,6 +1532,10 @@ Address: %4
|
||||||
<source>Payment information</source>
|
<source>Payment information</source>
|
||||||
<translation>Πληροφορίες πληρωμής</translation>
|
<translation>Πληροφορίες πληρωμής</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>URI</source>
|
||||||
|
<translation>URI:</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Address</source>
|
<source>Address</source>
|
||||||
<translation>Διεύθυνση</translation>
|
<translation>Διεύθυνση</translation>
|
||||||
|
@ -1254,6 +1598,10 @@ Address: %4
|
||||||
<source>Send Coins</source>
|
<source>Send Coins</source>
|
||||||
<translation>Αποστολή νομισμάτων</translation>
|
<translation>Αποστολή νομισμάτων</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Coin Control Features</source>
|
||||||
|
<translation>Χαρακτηρηστικά επιλογής κερμάτων</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>automatically selected</source>
|
<source>automatically selected</source>
|
||||||
<translation>επιλεγμένο αυτόματα</translation>
|
<translation>επιλεγμένο αυτόματα</translation>
|
||||||
|
@ -1278,10 +1626,34 @@ Address: %4
|
||||||
<source>Priority:</source>
|
<source>Priority:</source>
|
||||||
<translation>Προτεραιότητα:</translation>
|
<translation>Προτεραιότητα:</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Fee:</source>
|
||||||
|
<translation>Ταρίφα</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>After Fee:</source>
|
||||||
|
<translation>Ταρίφα αλλαγής</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Change:</source>
|
<source>Change:</source>
|
||||||
<translation>Ρέστα:</translation>
|
<translation>Ρέστα:</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Send to multiple recipients at once</source>
|
<source>Send to multiple recipients at once</source>
|
||||||
<translation>Αποστολή σε πολλούς αποδέκτες ταυτόχρονα</translation>
|
<translation>Αποστολή σε πολλούς αποδέκτες ταυτόχρονα</translation>
|
||||||
|
@ -1294,6 +1666,10 @@ Address: %4
|
||||||
<source>Clear all fields of the form.</source>
|
<source>Clear all fields of the form.</source>
|
||||||
<translation>Καθαρισμός όλων των πεδίων της φόρμας.</translation>
|
<translation>Καθαρισμός όλων των πεδίων της φόρμας.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Dust:</source>
|
||||||
|
<translation>Σκόνη</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Clear &All</source>
|
<source>Clear &All</source>
|
||||||
<translation>Καθαρισμός &Όλων</translation>
|
<translation>Καθαρισμός &Όλων</translation>
|
||||||
|
@ -1326,6 +1702,14 @@ Address: %4
|
||||||
<source>Copy amount</source>
|
<source>Copy amount</source>
|
||||||
<translation>Αντιγραφή ποσού</translation>
|
<translation>Αντιγραφή ποσού</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Copy fee</source>
|
||||||
|
<translation>Αντιγραφή ταρίφας</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Copy after fee</source>
|
||||||
|
<translation>Αντιγραφή μετα-ταρίφας</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Copy bytes</source>
|
<source>Copy bytes</source>
|
||||||
<translation>Αντιγραφή των byte</translation>
|
<translation>Αντιγραφή των byte</translation>
|
||||||
|
@ -1378,6 +1762,10 @@ Address: %4
|
||||||
<source>(no label)</source>
|
<source>(no label)</source>
|
||||||
<translation>(χωρίς ετικέτα)</translation>
|
<translation>(χωρίς ετικέτα)</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Copy dust</source>
|
||||||
|
<translation>Αντιγραφή 'σκόνης'</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Are you sure you want to send?</source>
|
<source>Are you sure you want to send?</source>
|
||||||
<translation>Είστε βέβαιοι για την αποστολή;</translation>
|
<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>
|
<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>
|
<translation>Μπορείτε να υπογράφετε μηνύματα με τις διευθύνσεις σας, ώστε ν' αποδεικνύετε πως αυτές σας ανήκουν. Αποφεύγετε να υπογράφετε κάτι αόριστο καθώς ενδέχεται να εξαπατηθείτε. Υπογράφετε μόνο πλήρης δηλώσεις με τις οποίες συμφωνείτε.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>The Bitcoin address to sign the message with</source>
|
||||||
|
<translation>Διεύθυνση Bitcoin που θα σταλεί το μήνυμα</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Choose previously used address</source>
|
<source>Choose previously used address</source>
|
||||||
<translation>Επιλογή διεύθυνσης που έχει ήδη χρησιμοποιηθεί</translation>
|
<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>
|
<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>
|
<translation>Πληκτρολογήστε την υπογραφή διεύθυνσης, μήνυμα (βεβαιωθείτε ότι έχετε αντιγράψει τις αλλαγές γραμμής, κενά, tabs, κ.λπ. ακριβώς) και την υπογραφή παρακάτω, για να ελέγξει το μήνυμα. Να είστε προσεκτικοί για να μην διαβάσετε περισσότερα στην υπογραφή ό, τι είναι στην υπογραφή ίδιο το μήνυμα , για να μην εξαπατηθούν από έναν άνθρωπο -in - the-middle επίθεση.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>The Bitcoin address the message was signed with</source>
|
||||||
|
<translation>Διεύθυνση Bitcoin η οποία το μήνυμα έχει υπογραφεί</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Verify the message to ensure it was signed with the specified Bitcoin address</source>
|
<source>Verify the message to ensure it was signed with the specified Bitcoin address</source>
|
||||||
<translation>Υπογράψτε ένα μήνυμα για ν' αποδείξετε πως υπογραφθηκε απο μια συγκεκριμένη διεύθυνση Bitcoin</translation>
|
<translation>Υπογράψτε ένα μήνυμα για ν' αποδείξετε πως υπογραφθηκε απο μια συγκεκριμένη διεύθυνση Bitcoin</translation>
|
||||||
|
@ -1608,6 +2004,10 @@ Address: %4
|
||||||
<source>Open until %1</source>
|
<source>Open until %1</source>
|
||||||
<translation>Ανοιχτό μέχρι %1</translation>
|
<translation>Ανοιχτό μέχρι %1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>conflicted</source>
|
||||||
|
<translation>σύγκρουση</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1/offline</source>
|
<source>%1/offline</source>
|
||||||
<translation>%1/χωρίς σύνδεση;</translation>
|
<translation>%1/χωρίς σύνδεση;</translation>
|
||||||
|
@ -1652,6 +2052,10 @@ Address: %4
|
||||||
<source>own address</source>
|
<source>own address</source>
|
||||||
<translation> δική σας διεύθυνση </translation>
|
<translation> δική σας διεύθυνση </translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>watch-only</source>
|
||||||
|
<translation>Επίβλεψη μόνο:</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>label</source>
|
<source>label</source>
|
||||||
<translation>eπιγραφή</translation>
|
<translation>eπιγραφή</translation>
|
||||||
|
@ -1672,6 +2076,14 @@ Address: %4
|
||||||
<source>Debit</source>
|
<source>Debit</source>
|
||||||
<translation>Debit</translation>
|
<translation>Debit</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Total debit</source>
|
||||||
|
<translation>Σύνολο χρέωσης</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Total credit</source>
|
||||||
|
<translation>Συνολική πίστωση</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Transaction fee</source>
|
<source>Transaction fee</source>
|
||||||
<translation>Τέλος συναλλαγής </translation>
|
<translation>Τέλος συναλλαγής </translation>
|
||||||
|
@ -1696,6 +2108,10 @@ Address: %4
|
||||||
<source>Merchant</source>
|
<source>Merchant</source>
|
||||||
<translation>Έμπορος</translation>
|
<translation>Έμπορος</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Debug information</source>
|
<source>Debug information</source>
|
||||||
<translation>Πληροφορίες αποσφαλμάτωσης</translation>
|
<translation>Πληροφορίες αποσφαλμάτωσης</translation>
|
||||||
|
@ -1786,6 +2202,10 @@ Address: %4
|
||||||
<source>Unconfirmed</source>
|
<source>Unconfirmed</source>
|
||||||
<translation>Ανεπιβεβαίωτες</translation>
|
<translation>Ανεπιβεβαίωτες</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Conflicted</source>
|
||||||
|
<translation>Σύγκρουση</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Received with</source>
|
<source>Received with</source>
|
||||||
<translation>Παραλαβή με</translation>
|
<translation>Παραλαβή με</translation>
|
||||||
|
@ -1806,6 +2226,10 @@ Address: %4
|
||||||
<source>Mined</source>
|
<source>Mined</source>
|
||||||
<translation>Εξόρυξη</translation>
|
<translation>Εξόρυξη</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>watch-only</source>
|
||||||
|
<translation>Επίβλεψη μόνο:</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>(n/a)</source>
|
<source>(n/a)</source>
|
||||||
<translation>(δ/α)</translation>
|
<translation>(δ/α)</translation>
|
||||||
|
@ -1917,6 +2341,10 @@ Address: %4
|
||||||
<source>Export Transaction History</source>
|
<source>Export Transaction History</source>
|
||||||
<translation>Εξαγωγή Ιστορικού Συναλλαγών</translation>
|
<translation>Εξαγωγή Ιστορικού Συναλλαγών</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Watch-only</source>
|
||||||
|
<translation>Επίβλεψη μόνο:</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Exporting Failed</source>
|
<source>Exporting Failed</source>
|
||||||
<translation>Η Εξαγωγή Απέτυχε</translation>
|
<translation>Η Εξαγωγή Απέτυχε</translation>
|
||||||
|
@ -2153,6 +2581,10 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com
|
||||||
<source>Error opening block database</source>
|
<source>Error opening block database</source>
|
||||||
<translation>Σφάλμα φορτωσης της βασης δεδομενων των μπλοκ</translation>
|
<translation>Σφάλμα φορτωσης της βασης δεδομενων των μπλοκ</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Error: A fatal internal error occured, see debug.log for details</source>
|
||||||
|
<translation>Σφάλμα: Παρουσιάστηκε ανεπανόρθωτο εσωτερικό σφάλμα, δείτε debug.log για λεπτομέρειες</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Error: Disk space is low!</source>
|
<source>Error: Disk space is low!</source>
|
||||||
<translation>Προειδοποίηση: Χαμηλός χώρος στο δίσκο </translation>
|
<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>
|
<source>Failed to listen on any port. Use -listen=0 if you want this.</source>
|
||||||
<translation>ταλαιπωρηθειτε για να ακούσετε σε οποιαδήποτε θύρα. Χρήση - ακούστε = 0 , αν θέλετε αυτό.</translation>
|
<translation>ταλαιπωρηθειτε για να ακούσετε σε οποιαδήποτε θύρα. Χρήση - ακούστε = 0 , αν θέλετε αυτό.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Importing...</source>
|
||||||
|
<translation>ΕΙσαγωγή...</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid -onion address: '%s'</source>
|
<source>Invalid -onion address: '%s'</source>
|
||||||
<translation>Άκυρη διεύθυνση -onion : '%s'</translation>
|
<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>
|
<source>Rebuild block chain index from current blk000??.dat files</source>
|
||||||
<translation>Εισαγωγή μπλοκ από εξωτερικό αρχείο blk000?.dat</translation>
|
<translation>Εισαγωγή μπλοκ από εξωτερικό αρχείο blk000?.dat</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Specify wallet file (within data directory)</source>
|
||||||
|
<translation>Επιλέξτε αρχείο πορτοφολιού (μέσα απο κατάλογο δεδομένων)</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Verifying blocks...</source>
|
<source>Verifying blocks...</source>
|
||||||
<translation>Επαλήθευση των μπλοκ... </translation>
|
<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>
|
<source>Imports blocks from external blk000??.dat file</source>
|
||||||
<translation>Εισαγωγή μπλοκ από εξωτερικό αρχείο blk000?.dat</translation>
|
<translation>Εισαγωγή μπλοκ από εξωτερικό αρχείο blk000?.dat</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Information</source>
|
<source>Information</source>
|
||||||
<translation>Πληροφορία</translation>
|
<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>
|
<source>Invalid amount for -mintxfee=<amount>: '%s'</source>
|
||||||
<translation>Μη έγκυρο ποσό για την παράμετρο -paytxfee=<amount>: '%s'</translation>
|
<translation>Μη έγκυρο ποσό για την παράμετρο -paytxfee=<amount>: '%s'</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
|
||||||
|
<translation>Ρυθμίσεις SSL: (ανατρέξτε στο Bitcoin Wiki για οδηγίες ρυθμίσεων SSL)</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Send trace/debug info to console instead of debug.log file</source>
|
<source>Send trace/debug info to console instead of debug.log file</source>
|
||||||
<translation>Αποστολή πληροφοριών εντοπισμού σφαλμάτων στην κονσόλα αντί του αρχείου debug.log</translation>
|
<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>
|
<source>Signing transaction failed</source>
|
||||||
<translation>Η υπογραφή συναλλαγής απέτυχε </translation>
|
<translation>Η υπογραφή συναλλαγής απέτυχε </translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>This is experimental software.</source>
|
||||||
|
<translation>Η εφαρμογή είναι σε πειραματικό στάδιο.</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Transaction amount too small</source>
|
<source>Transaction amount too small</source>
|
||||||
<translation>Το ποσό της συναλλαγής είναι πολύ μικρο </translation>
|
<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>
|
<source>Warning: This version is obsolete, upgrade required!</source>
|
||||||
<translation>Προειδοποίηση: Αυτή η έκδοση είναι ξεπερασμένη, απαιτείται αναβάθμιση </translation>
|
<translation>Προειδοποίηση: Αυτή η έκδοση είναι ξεπερασμένη, απαιτείται αναβάθμιση </translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Zapping all transactions from wallet...</source>
|
||||||
|
<translation>Μεταφορά όλων των συναλλαγών απο το πορτοφόλι</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>on startup</source>
|
<source>on startup</source>
|
||||||
<translation>κατά την εκκίνηση</translation>
|
<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>
|
<source>Error loading wallet.dat: Wallet corrupted</source>
|
||||||
<translation>Σφάλμα φόρτωσης wallet.dat: Κατεστραμμένο Πορτοφόλι</translation>
|
<translation>Σφάλμα φόρτωσης wallet.dat: Κατεστραμμένο Πορτοφόλι</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Error loading wallet.dat</source>
|
<source>Error loading wallet.dat</source>
|
||||||
<translation>Σφάλμα φόρτωσης αρχείου wallet.dat</translation>
|
<translation>Σφάλμα φόρτωσης αρχείου wallet.dat</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Invalid -proxy address: '%s'</source>
|
<source>Invalid -proxy address: '%s'</source>
|
||||||
<translation>Δεν είναι έγκυρη η διεύθυνση διαμεσολαβητή: '%s'</translation>
|
<translation>Δεν είναι έγκυρη η διεύθυνση διαμεσολαβητή: '%s'</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Unknown network specified in -onlynet: '%s'</source>
|
<source>Unknown network specified in -onlynet: '%s'</source>
|
||||||
<translation>Άγνωστo δίκτυο ορίζεται σε onlynet: '%s'</translation>
|
<translation>Άγνωστo δίκτυο ορίζεται σε onlynet: '%s'</translation>
|
||||||
|
|
|
@ -524,6 +524,10 @@ Dirección: %4
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoinControlDialog</name>
|
<name>CoinControlDialog</name>
|
||||||
|
<message>
|
||||||
|
<source>Coin Selection</source>
|
||||||
|
<translation>Selección de la moneda</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Quantity:</source>
|
<source>Quantity:</source>
|
||||||
<translation>Cantidad:</translation>
|
<translation>Cantidad:</translation>
|
||||||
|
@ -572,6 +576,14 @@ Dirección: %4
|
||||||
<source>Amount</source>
|
<source>Amount</source>
|
||||||
<translation>Cantidad</translation>
|
<translation>Cantidad</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Date</source>
|
<source>Date</source>
|
||||||
<translation>Fecha</translation>
|
<translation>Fecha</translation>
|
||||||
|
@ -1034,6 +1046,14 @@ Dirección: %4
|
||||||
<source>Map port using &UPnP</source>
|
<source>Map port using &UPnP</source>
|
||||||
<translation>Mapear el puerto mediante &UPnP</translation>
|
<translation>Mapear el puerto mediante &UPnP</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Proxy &IP:</source>
|
<source>Proxy &IP:</source>
|
||||||
<translation>Dirección &IP del proxy:</translation>
|
<translation>Dirección &IP del proxy:</translation>
|
||||||
|
@ -1824,6 +1844,50 @@ Dirección: %4
|
||||||
<source>Custom change address</source>
|
<source>Custom change address</source>
|
||||||
<translation>Dirección propia</translation>
|
<translation>Dirección propia</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Send to multiple recipients at once</source>
|
<source>Send to multiple recipients at once</source>
|
||||||
<translation>Enviar a múltiples destinatarios de una vez</translation>
|
<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>
|
<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>
|
<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>
|
||||||
|
<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>
|
<message>
|
||||||
<source>Warning: Invalid Bitcoin address</source>
|
<source>Warning: Invalid Bitcoin address</source>
|
||||||
<translation>Alerta: Dirección de Bitcoin inválida</translation>
|
<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>
|
<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>
|
<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>
|
||||||
|
<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>
|
<message>
|
||||||
<source>Enter regression test mode, which uses a special chain in which blocks can be solved instantly.</source>
|
<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>
|
<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>
|
<source>Up to date</source>
|
||||||
<translation>Aggiornato</translation>
|
<translation>Aggiornato</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Catching up...</source>
|
<source>Catching up...</source>
|
||||||
<translation>In aggiornamento...</translation>
|
<translation>In aggiornamento...</translation>
|
||||||
|
@ -521,6 +525,11 @@ Indirizzo: %4
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoinControlDialog</name>
|
<name>CoinControlDialog</name>
|
||||||
|
<message>
|
||||||
|
<source>Coin Selection</source>
|
||||||
|
<translation>Seleziona Moneta
|
||||||
|
</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Quantity:</source>
|
<source>Quantity:</source>
|
||||||
<translation>Quantità:</translation>
|
<translation>Quantità:</translation>
|
||||||
|
@ -569,6 +578,14 @@ Indirizzo: %4
|
||||||
<source>Amount</source>
|
<source>Amount</source>
|
||||||
<translation>Importo</translation>
|
<translation>Importo</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Date</source>
|
<source>Date</source>
|
||||||
<translation>Data</translation>
|
<translation>Data</translation>
|
||||||
|
@ -1024,6 +1041,14 @@ Più URL vengono separati da una barra verticale |.</translation>
|
||||||
<source>Map port using &UPnP</source>
|
<source>Map port using &UPnP</source>
|
||||||
<translation>Mappa le porte tramite &UPnP</translation>
|
<translation>Mappa le porte tramite &UPnP</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Proxy &IP:</source>
|
<source>Proxy &IP:</source>
|
||||||
<translation>&IP del proxy:</translation>
|
<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>
|
<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>
|
<translation>l'equilibrio estratto solo nello sguardo degli indirizzi non è ancora maturo </translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Current total balance in watch-only addresses</source>
|
||||||
|
<translation>Saldo corrente totale negli indirizzi watch-only</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>out of sync</source>
|
<source>out of sync</source>
|
||||||
<translation>non sincronizzato</translation>
|
<translation>non sincronizzato</translation>
|
||||||
|
@ -1810,6 +1839,50 @@ Più URL vengono separati da una barra verticale |.</translation>
|
||||||
<source>Custom change address</source>
|
<source>Custom change address</source>
|
||||||
<translation>Personalizza indirizzo di resto</translation>
|
<translation>Personalizza indirizzo di resto</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Send to multiple recipients at once</source>
|
<source>Send to multiple recipients at once</source>
|
||||||
<translation>Invia a diversi beneficiari in una volta sola</translation>
|
<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>
|
<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>
|
<translation>Imposta la dimensione massima in byte delle transazioni ad alta-priorità/basse-commissioni (predefinita: %d)</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Information</source>
|
<source>Information</source>
|
||||||
<translation>Informazioni</translation>
|
<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>
|
<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>
|
<translation>Invia le informazioni di trace/debug alla console invece che al file debug.log</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Show all debugging options (usage: --help -help-debug)</source>
|
<source>Show all debugging options (usage: --help -help-debug)</source>
|
||||||
<translation>Mostra tutte le opzioni di debug (utilizzo: --help -help-debug)</translation>
|
<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>
|
<source>Error loading wallet.dat</source>
|
||||||
<translation>Errore caricamento wallet.dat</translation>
|
<translation>Errore caricamento wallet.dat</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Invalid -proxy address: '%s'</source>
|
<source>Invalid -proxy address: '%s'</source>
|
||||||
<translation>Indirizzo -proxy non valido: '%s'</translation>
|
<translation>Indirizzo -proxy non valido: '%s'</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Unknown network specified in -onlynet: '%s'</source>
|
<source>Unknown network specified in -onlynet: '%s'</source>
|
||||||
<translation>Rete sconosciuta specificata in -onlynet: '%s'</translation>
|
<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>
|
<source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
|
||||||
<translation>これらは支払いを送信するためのあなたの Bitcoin アドレスです。コインを送信する前に、常に額と受信アドレスを確認してください。</translation>
|
<translation>これらは支払いを送信するためのあなたの Bitcoin アドレスです。コインを送信する前に、常に額と受信アドレスを確認してください。</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Copy &Label</source>
|
<source>Copy &Label</source>
|
||||||
<translation>ラベルをコピー (&L)</translation>
|
<translation>ラベルをコピー (&L)</translation>
|
||||||
|
@ -89,7 +93,11 @@
|
||||||
<source>Exporting Failed</source>
|
<source>Exporting Failed</source>
|
||||||
<translation>エクスポート失敗</translation>
|
<translation>エクスポート失敗</translation>
|
||||||
</message>
|
</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>
|
<context>
|
||||||
<name>AddressTableModel</name>
|
<name>AddressTableModel</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -175,6 +183,10 @@
|
||||||
<source>Wallet encrypted</source>
|
<source>Wallet encrypted</source>
|
||||||
<translation>ウォレットは暗号化されました</translation>
|
<translation>ウォレットは暗号化されました</translation>
|
||||||
</message>
|
</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>
|
<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>
|
<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>
|
<translation>Bitcoin は暗号化プロセスを終了するために今すぐ終了します。あなたのコンピュータがマルウェアに感染してコインを盗まれることもあるので、暗号化してもあなたのウォレットを完全に保護できないことを覚えていてください。</translation>
|
||||||
|
@ -282,6 +294,10 @@
|
||||||
<source>Open &URI...</source>
|
<source>Open &URI...</source>
|
||||||
<translation>URI を開く (&U)...</translation>
|
<translation>URI を開く (&U)...</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Bitcoin Core client</source>
|
||||||
|
<translation>Bitcoinコア クライアント</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Importing blocks from disk...</source>
|
<source>Importing blocks from disk...</source>
|
||||||
<translation>ディスクからブロックをインポートしています...</translation>
|
<translation>ディスクからブロックをインポートしています...</translation>
|
||||||
|
@ -334,6 +350,10 @@
|
||||||
<source>&Receive</source>
|
<source>&Receive</source>
|
||||||
<translation>受信 (&R)</translation>
|
<translation>受信 (&R)</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Show information about Bitcoin Core</source>
|
||||||
|
<translation>Bitcoinコアに関する情報を表示</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Show / Hide</source>
|
<source>&Show / Hide</source>
|
||||||
<translation>見る/隠す (&S)</translation>
|
<translation>見る/隠す (&S)</translation>
|
||||||
|
@ -374,10 +394,18 @@
|
||||||
<source>Bitcoin Core</source>
|
<source>Bitcoin Core</source>
|
||||||
<translation>Bitcoin のコア</translation>
|
<translation>Bitcoin のコア</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Request payments (generates QR codes and bitcoin: URIs)</source>
|
||||||
|
<translation>支払いを要求する (QRコードとbitcoin:ではじまるURIを生成する)</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&About Bitcoin Core</source>
|
<source>&About Bitcoin Core</source>
|
||||||
<translation>ビットコインコアについて (&A)</translation>
|
<translation>ビットコインコアについて (&A)</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Show the list of used sending addresses and labels</source>
|
||||||
|
<translation>使用済みの送金用アドレスとラベルの一覧を表示する</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Show the list of used receiving addresses and labels</source>
|
<source>Show the list of used receiving addresses and labels</source>
|
||||||
<translation>支払いを受け取るアドレスとラベルのリストを表示する</translation>
|
<translation>支払いを受け取るアドレスとラベルのリストを表示する</translation>
|
||||||
|
@ -483,6 +511,10 @@ Address: %4
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoinControlDialog</name>
|
<name>CoinControlDialog</name>
|
||||||
|
<message>
|
||||||
|
<source>Coin Selection</source>
|
||||||
|
<translation>コイン選択</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Quantity:</source>
|
<source>Quantity:</source>
|
||||||
<translation>数量:</translation>
|
<translation>数量:</translation>
|
||||||
|
@ -555,6 +587,14 @@ Address: %4
|
||||||
<source>Copy transaction ID</source>
|
<source>Copy transaction ID</source>
|
||||||
<translation>取引 ID をコピー</translation>
|
<translation>取引 ID をコピー</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Lock unspent</source>
|
||||||
|
<translation>未使用トランザクションをロックする</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Unlock unspent</source>
|
||||||
|
<translation>未使用トランザクションをアンロックする</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Copy quantity</source>
|
<source>Copy quantity</source>
|
||||||
<translation>数量をコピーする</translation>
|
<translation>数量をコピーする</translation>
|
||||||
|
@ -676,6 +716,10 @@ Address: %4
|
||||||
<source>version</source>
|
<source>version</source>
|
||||||
<translation>バージョン</translation>
|
<translation>バージョン</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>About Bitcoin Core</source>
|
||||||
|
<translation>Bitcoinコアについて</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Command-line options</source>
|
<source>Command-line options</source>
|
||||||
<translation>コマンドライン オプション</translation>
|
<translation>コマンドライン オプション</translation>
|
||||||
|
@ -735,7 +779,15 @@ Address: %4
|
||||||
<source>Error</source>
|
<source>Error</source>
|
||||||
<translation>エラー</translation>
|
<translation>エラー</translation>
|
||||||
</message>
|
</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>
|
<context>
|
||||||
<name>OpenURIDialog</name>
|
<name>OpenURIDialog</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -785,6 +837,14 @@ Address: %4
|
||||||
<source>MB</source>
|
<source>MB</source>
|
||||||
<translation>MB</translation>
|
<translation>MB</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Number of script &verification threads</source>
|
||||||
|
<translation>スクリプト検証用スレッド数 (&V)</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Accept connections from outside</source>
|
||||||
|
<translation>外部からの接続を許可する</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</source>
|
<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>
|
<translation>プロキシのIPアドレス (例えば IPv4: 127.0.0.1 / IPv6: ::1)</translation>
|
||||||
|
@ -932,6 +992,14 @@ Address: %4
|
||||||
<source>Your current total balance</source>
|
<source>Your current total balance</source>
|
||||||
<translation>あなたの現在の残高</translation>
|
<translation>あなたの現在の残高</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>out of sync</source>
|
<source>out of sync</source>
|
||||||
<translation>同期していない</translation>
|
<translation>同期していない</translation>
|
||||||
|
@ -947,6 +1015,14 @@ Address: %4
|
||||||
<source>Invalid payment address %1</source>
|
<source>Invalid payment address %1</source>
|
||||||
<translation>支払いのアドレス「%1」は無効です</translation>
|
<translation>支払いのアドレス「%1」は無効です</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Payment request rejected</source>
|
||||||
|
<translation>支払い要求は拒否されました</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Payment request has expired.</source>
|
||||||
|
<translation>支払いのリクエストは期限切れです</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Payment request error</source>
|
<source>Payment request error</source>
|
||||||
<translation>支払いのリクエストのエラーです</translation>
|
<translation>支払いのリクエストのエラーです</translation>
|
||||||
|
@ -974,6 +1050,10 @@ Address: %4
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>PeerTableModel</name>
|
<name>PeerTableModel</name>
|
||||||
|
<message>
|
||||||
|
<source>User Agent</source>
|
||||||
|
<translation>ユーザエージェント</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>QObject</name>
|
<name>QObject</name>
|
||||||
|
@ -1063,6 +1143,10 @@ Address: %4
|
||||||
<source>Current number of blocks</source>
|
<source>Current number of blocks</source>
|
||||||
<translation>現在のブロック数</translation>
|
<translation>現在のブロック数</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>User Agent</source>
|
||||||
|
<translation>ユーザエージェント</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Last block time</source>
|
<source>Last block time</source>
|
||||||
<translation>最終ブロックの日時</translation>
|
<translation>最終ブロックの日時</translation>
|
||||||
|
@ -1154,6 +1238,10 @@ Address: %4
|
||||||
<source>&Message:</source>
|
<source>&Message:</source>
|
||||||
<translation>メッセージ (&M):</translation>
|
<translation>メッセージ (&M):</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Clear all fields of the form.</source>
|
||||||
|
<translation>全ての入力項目をクリア</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Clear</source>
|
<source>Clear</source>
|
||||||
<translation>クリア</translation>
|
<translation>クリア</translation>
|
||||||
|
@ -1162,6 +1250,10 @@ Address: %4
|
||||||
<source>Show</source>
|
<source>Show</source>
|
||||||
<translation>表示</translation>
|
<translation>表示</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Remove the selected entries from the list</source>
|
||||||
|
<translation>リストから選択項目を削除</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Copy label</source>
|
<source>Copy label</source>
|
||||||
<translation>ラベルをコピーする</translation>
|
<translation>ラベルをコピーする</translation>
|
||||||
|
@ -1307,6 +1399,10 @@ Address: %4
|
||||||
<source>Add &Recipient</source>
|
<source>Add &Recipient</source>
|
||||||
<translation>受取人を追加 (&R)</translation>
|
<translation>受取人を追加 (&R)</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Clear all fields of the form.</source>
|
||||||
|
<translation>全ての入力項目をクリア</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Clear &All</source>
|
<source>Clear &All</source>
|
||||||
<translation>すべてクリア (&A)</translation>
|
<translation>すべてクリア (&A)</translation>
|
||||||
|
@ -1433,7 +1529,15 @@ Address: %4
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ShutdownWindow</name>
|
<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>
|
<context>
|
||||||
<name>SignVerifyMessageDialog</name>
|
<name>SignVerifyMessageDialog</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1956,7 +2060,11 @@ Address: %4
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>WalletFrame</name>
|
<name>WalletFrame</name>
|
||||||
</context>
|
<message>
|
||||||
|
<source>No wallet has been loaded.</source>
|
||||||
|
<translation>ウォレットがロードされていません</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>WalletModel</name>
|
<name>WalletModel</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -9,10 +9,22 @@
|
||||||
<source>Create a new address</source>
|
<source>Create a new address</source>
|
||||||
<translation>Жаңа адрес енгізу</translation>
|
<translation>Жаңа адрес енгізу</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>&New</source>
|
||||||
|
<translation>Жаңа</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Copy the currently selected address to the system clipboard</source>
|
<source>Copy the currently selected address to the system clipboard</source>
|
||||||
<translation>Таңдаған адресті тізімнен жою</translation>
|
<translation>Таңдаған адресті тізімнен жою</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>C&lose</source>
|
||||||
|
<translation>Жабу</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>&Export</source>
|
||||||
|
<translation>Экспорт</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Delete</source>
|
<source>&Delete</source>
|
||||||
<translation>Жою</translation>
|
<translation>Жою</translation>
|
||||||
|
@ -78,12 +90,140 @@
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>BitcoinGUI</name>
|
<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>
|
||||||
<context>
|
<context>
|
||||||
<name>ClientModel</name>
|
<name>ClientModel</name>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoinControlDialog</name>
|
<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>
|
<message>
|
||||||
<source>(no label)</source>
|
<source>(no label)</source>
|
||||||
<translation>(таңбасыз)</translation>
|
<translation>(таңбасыз)</translation>
|
||||||
|
@ -91,6 +231,10 @@
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>EditAddressDialog</name>
|
<name>EditAddressDialog</name>
|
||||||
|
<message>
|
||||||
|
<source>&Address</source>
|
||||||
|
<translation>Адрес</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>FreespaceChecker</name>
|
<name>FreespaceChecker</name>
|
||||||
|
@ -100,6 +244,10 @@
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>Intro</name>
|
<name>Intro</name>
|
||||||
|
<message>
|
||||||
|
<source>Error</source>
|
||||||
|
<translation>қате</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>OpenURIDialog</name>
|
<name>OpenURIDialog</name>
|
||||||
|
@ -118,6 +266,10 @@
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>QObject</name>
|
<name>QObject</name>
|
||||||
|
<message>
|
||||||
|
<source>Amount</source>
|
||||||
|
<translation>Саны</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>QRImageWidget</name>
|
<name>QRImageWidget</name>
|
||||||
|
@ -134,6 +286,10 @@
|
||||||
<source>Address</source>
|
<source>Address</source>
|
||||||
<translation>Адрес</translation>
|
<translation>Адрес</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Amount</source>
|
||||||
|
<translation>Саны</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Label</source>
|
<source>Label</source>
|
||||||
<translation>таңба</translation>
|
<translation>таңба</translation>
|
||||||
|
@ -141,10 +297,18 @@
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>RecentRequestsTableModel</name>
|
<name>RecentRequestsTableModel</name>
|
||||||
|
<message>
|
||||||
|
<source>Date</source>
|
||||||
|
<translation>Күні</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Label</source>
|
<source>Label</source>
|
||||||
<translation>таңба</translation>
|
<translation>таңба</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Amount</source>
|
||||||
|
<translation>Саны</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>(no label)</source>
|
<source>(no label)</source>
|
||||||
<translation>(таңбасыз)</translation>
|
<translation>(таңбасыз)</translation>
|
||||||
|
@ -152,6 +316,26 @@
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>SendCoinsDialog</name>
|
<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>
|
<message>
|
||||||
<source>(no label)</source>
|
<source>(no label)</source>
|
||||||
<translation>(таңбасыз)</translation>
|
<translation>(таңбасыз)</translation>
|
||||||
|
@ -174,12 +358,24 @@
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>TransactionDesc</name>
|
<name>TransactionDesc</name>
|
||||||
|
<message>
|
||||||
|
<source>Date</source>
|
||||||
|
<translation>Күні</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Amount</source>
|
||||||
|
<translation>Саны</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>TransactionDescDialog</name>
|
<name>TransactionDescDialog</name>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>TransactionTableModel</name>
|
<name>TransactionTableModel</name>
|
||||||
|
<message>
|
||||||
|
<source>Date</source>
|
||||||
|
<translation>Күні</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Address</source>
|
<source>Address</source>
|
||||||
<translation>Адрес</translation>
|
<translation>Адрес</translation>
|
||||||
|
@ -191,6 +387,14 @@
|
||||||
<source>Comma separated file (*.csv)</source>
|
<source>Comma separated file (*.csv)</source>
|
||||||
<translation>Үтірмен бөлінген файл (*.csv)</translation>
|
<translation>Үтірмен бөлінген файл (*.csv)</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Confirmed</source>
|
||||||
|
<translation>Растық</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Date</source>
|
||||||
|
<translation>Күні</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Label</source>
|
<source>Label</source>
|
||||||
<translation>таңба</translation>
|
<translation>таңба</translation>
|
||||||
|
@ -211,9 +415,17 @@
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>WalletView</name>
|
<name>WalletView</name>
|
||||||
|
<message>
|
||||||
|
<source>&Export</source>
|
||||||
|
<translation>Экспорт</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>bitcoin-core</name>
|
<name>bitcoin-core</name>
|
||||||
|
<message>
|
||||||
|
<source>Information</source>
|
||||||
|
<translation>Информация</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Transaction amount too small</source>
|
<source>Transaction amount too small</source>
|
||||||
<translation>Транзакция өте кішкентай</translation>
|
<translation>Транзакция өте кішкентай</translation>
|
||||||
|
@ -222,5 +434,13 @@
|
||||||
<source>Transaction too large</source>
|
<source>Transaction too large</source>
|
||||||
<translation>Транзакция өте үлкен</translation>
|
<translation>Транзакция өте үлкен</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
<message>
|
||||||
|
<source>Warning</source>
|
||||||
|
<translation>Ескерту</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Error</source>
|
||||||
|
<translation>қате</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
</TS>
|
</TS>
|
|
@ -67,7 +67,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
|
<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>
|
||||||
<message>
|
<message>
|
||||||
<source>These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction.</source>
|
<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>
|
<source>Up to date</source>
|
||||||
<translation>Bijgewerkt</translation>
|
<translation>Bijgewerkt</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Catching up...</source>
|
<source>Catching up...</source>
|
||||||
<translation>Aan het bijwerken...</translation>
|
<translation>Aan het bijwerken...</translation>
|
||||||
|
@ -520,6 +524,10 @@ Adres: %4
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoinControlDialog</name>
|
<name>CoinControlDialog</name>
|
||||||
|
<message>
|
||||||
|
<source>Coin Selection</source>
|
||||||
|
<translation>Munt Selectie</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Quantity:</source>
|
<source>Quantity:</source>
|
||||||
<translation>Kwantiteit</translation>
|
<translation>Kwantiteit</translation>
|
||||||
|
@ -568,6 +576,14 @@ Adres: %4
|
||||||
<source>Amount</source>
|
<source>Amount</source>
|
||||||
<translation>Bedrag</translation>
|
<translation>Bedrag</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Date</source>
|
<source>Date</source>
|
||||||
<translation>Datum</translation>
|
<translation>Datum</translation>
|
||||||
|
@ -904,7 +920,11 @@ Adres: %4
|
||||||
<source>%n GB of free space available</source>
|
<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>
|
<translation><numerusform>%n GB aan vrije oplsagruimte beschikbaar</numerusform><numerusform>%n GB aan vrije oplsagruimte beschikbaar</numerusform></translation>
|
||||||
</message>
|
</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>
|
<context>
|
||||||
<name>OpenURIDialog</name>
|
<name>OpenURIDialog</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1026,6 +1046,14 @@ Adres: %4
|
||||||
<source>Map port using &UPnP</source>
|
<source>Map port using &UPnP</source>
|
||||||
<translation>Portmapping via &UPnP</translation>
|
<translation>Portmapping via &UPnP</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Proxy &IP:</source>
|
<source>Proxy &IP:</source>
|
||||||
<translation>Proxy &IP:</translation>
|
<translation>Proxy &IP:</translation>
|
||||||
|
@ -1157,6 +1185,10 @@ Adres: %4
|
||||||
<source>Mined balance that has not yet matured</source>
|
<source>Mined balance that has not yet matured</source>
|
||||||
<translation>Gedolven saldo dat nog niet tot wasdom is gekomen</translation>
|
<translation>Gedolven saldo dat nog niet tot wasdom is gekomen</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Balances</source>
|
||||||
|
<translation>Saldi</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Total:</source>
|
<source>Total:</source>
|
||||||
<translation>Totaal:</translation>
|
<translation>Totaal:</translation>
|
||||||
|
@ -1165,10 +1197,30 @@ Adres: %4
|
||||||
<source>Your current total balance</source>
|
<source>Your current total balance</source>
|
||||||
<translation>Uw totale saldo</translation>
|
<translation>Uw totale saldo</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Recent transactions</source>
|
<source>Recent transactions</source>
|
||||||
<translation>Recente transacties</translation>
|
<translation>Recente transacties</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>out of sync</source>
|
<source>out of sync</source>
|
||||||
<translation>niet gesynchroniseerd</translation>
|
<translation>niet gesynchroniseerd</translation>
|
||||||
|
@ -1188,10 +1240,18 @@ Adres: %4
|
||||||
<source>Payment request rejected</source>
|
<source>Payment request rejected</source>
|
||||||
<translation>Betalingsverzoek geweigerd</translation>
|
<translation>Betalingsverzoek geweigerd</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Payment request network doesn't match client network.</source>
|
||||||
|
<translation>Betalingsaanvraagnetwerk komt niet overeen met klantennetwerk.</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Payment request has expired.</source>
|
<source>Payment request has expired.</source>
|
||||||
<translation>Betalingsverzoek is verlopen.</translation>
|
<translation>Betalingsverzoek is verlopen.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Payment request is not initialized.</source>
|
||||||
|
<translation>Betalingsaanvraag is niet geïnitialiseerd.</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Requested payment amount of %1 is too small (considered dust).</source>
|
<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>
|
<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>
|
<source>Payment request fetch URL is invalid: %1</source>
|
||||||
<translation>URL om betalingsverzoek te verkrijgen is ongeldig: %1</translation>
|
<translation>URL om betalingsverzoek te verkrijgen is ongeldig: %1</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Payment request file handling</source>
|
<source>Payment request file handling</source>
|
||||||
<translation>Betalingsverzoek bestandsafhandeling</translation>
|
<translation>Betalingsverzoek bestandsafhandeling</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Unverified payment requests to custom payment scripts are unsupported.</source>
|
<source>Unverified payment requests to custom payment scripts are unsupported.</source>
|
||||||
<translation>Niet-geverifieerde betalingsverzoeken naar aangepaste betaling scripts worden niet ondersteund.</translation>
|
<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>
|
<source>Error communicating with %1: %2</source>
|
||||||
<translation>Fout bij communiceren met %1: %2</translation>
|
<translation>Fout bij communiceren met %1: %2</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Payment request cannot be parsed!</source>
|
||||||
|
<translation>Betalingsverzoek kan niet juist worden ontleed of verwerkt!</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Bad response from server %1</source>
|
<source>Bad response from server %1</source>
|
||||||
<translation>Ongeldige respons van server %1</translation>
|
<translation>Ongeldige respons van server %1</translation>
|
||||||
|
@ -1243,7 +1315,15 @@ Adres: %4
|
||||||
<source>User Agent</source>
|
<source>User Agent</source>
|
||||||
<translation>User Agent</translation>
|
<translation>User Agent</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
<message>
|
||||||
|
<source>Address/Hostname</source>
|
||||||
|
<translation>Adres/Hostnaam</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Ping Time</source>
|
||||||
|
<translation>Ping tijd</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>QObject</name>
|
<name>QObject</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1340,6 +1420,10 @@ Adres: %4
|
||||||
<source>Using OpenSSL version</source>
|
<source>Using OpenSSL version</source>
|
||||||
<translation>Gebruikt OpenSSL versie</translation>
|
<translation>Gebruikt OpenSSL versie</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Using BerkeleyDB version</source>
|
||||||
|
<translation>Gebruikt BerkeleyDB versie</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Startup time</source>
|
<source>Startup time</source>
|
||||||
<translation>Opstarttijd</translation>
|
<translation>Opstarttijd</translation>
|
||||||
|
@ -1372,6 +1456,14 @@ Adres: %4
|
||||||
<source>Sent</source>
|
<source>Sent</source>
|
||||||
<translation>Verstuurd</translation>
|
<translation>Verstuurd</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Direction</source>
|
<source>Direction</source>
|
||||||
<translation>Directie</translation>
|
<translation>Directie</translation>
|
||||||
|
@ -1388,6 +1480,18 @@ Adres: %4
|
||||||
<source>Services</source>
|
<source>Services</source>
|
||||||
<translation>Services</translation>
|
<translation>Services</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Connection Time</source>
|
<source>Connection Time</source>
|
||||||
<translation>Connectie tijd</translation>
|
<translation>Connectie tijd</translation>
|
||||||
|
@ -1408,6 +1512,10 @@ Adres: %4
|
||||||
<source>Bytes Received</source>
|
<source>Bytes Received</source>
|
||||||
<translation>Bytes Ontvangen</translation>
|
<translation>Bytes Ontvangen</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Ping Time</source>
|
||||||
|
<translation>Ping Tijd</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Last block time</source>
|
<source>Last block time</source>
|
||||||
<translation>Tijd laatste blok</translation>
|
<translation>Tijd laatste blok</translation>
|
||||||
|
@ -1492,11 +1600,23 @@ Adres: %4
|
||||||
<source>never</source>
|
<source>never</source>
|
||||||
<translation>nooit</translation>
|
<translation>nooit</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Inbound</source>
|
||||||
|
<translation>Inkomend</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Outbound</source>
|
||||||
|
<translation>Uitgaand</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Unknown</source>
|
<source>Unknown</source>
|
||||||
<translation>Onbekend</translation>
|
<translation>Onbekend</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
<message>
|
||||||
|
<source>Fetching...</source>
|
||||||
|
<translation>Ophalen...</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ReceiveCoinsDialog</name>
|
<name>ReceiveCoinsDialog</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1724,6 +1844,50 @@ Adres: %4
|
||||||
<source>Custom change address</source>
|
<source>Custom change address</source>
|
||||||
<translation>Aangepast wisselgeldadres</translation>
|
<translation>Aangepast wisselgeldadres</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Send to multiple recipients at once</source>
|
<source>Send to multiple recipients at once</source>
|
||||||
<translation>Verstuur aan verschillende ontvangers ineens</translation>
|
<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>
|
<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>
|
<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>
|
||||||
|
<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>
|
<message>
|
||||||
<source>Warning: Invalid Bitcoin address</source>
|
<source>Warning: Invalid Bitcoin address</source>
|
||||||
<translation>Waarschuwing: Ongeldig Bitcoin adres</translation>
|
<translation>Waarschuwing: Ongeldig Bitcoin adres</translation>
|
||||||
|
@ -1879,6 +2055,10 @@ Adres: %4
|
||||||
<source>This is a normal payment.</source>
|
<source>This is a normal payment.</source>
|
||||||
<translation>Dit is een normale betaling.</translation>
|
<translation>Dit is een normale betaling.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>The Bitcoin address to send the payment to</source>
|
||||||
|
<translation>Het Bitcoin adres om betaling aan te voldoen</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Alt+A</source>
|
<source>Alt+A</source>
|
||||||
<translation>Alt+A</translation>
|
<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>
|
<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>
|
<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>
|
||||||
|
<message>
|
||||||
|
<source>The Bitcoin address to sign the message with</source>
|
||||||
|
<translation>Het Bitcoin adres om bericht mee te ondertekenen</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Choose previously used address</source>
|
<source>Choose previously used address</source>
|
||||||
<translation>Kies een eerder gebruikt adres</translation>
|
<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>
|
<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>
|
<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>
|
||||||
|
<message>
|
||||||
|
<source>The Bitcoin address the message was signed with</source>
|
||||||
|
<translation>Het Bitcoin adres waarmee het bericht ondertekend is</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Verify the message to ensure it was signed with the specified Bitcoin address</source>
|
<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>
|
<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>
|
<source>own address</source>
|
||||||
<translation>eigen adres</translation>
|
<translation>eigen adres</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>watch-only</source>
|
||||||
|
<translation>alleen-bekijkbaar</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>label</source>
|
<source>label</source>
|
||||||
<translation>label</translation>
|
<translation>label</translation>
|
||||||
|
@ -2162,6 +2354,14 @@ Adres: %4
|
||||||
<source>Debit</source>
|
<source>Debit</source>
|
||||||
<translation>Debet</translation>
|
<translation>Debet</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Total debit</source>
|
||||||
|
<translation>Totaal debit</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Total credit</source>
|
||||||
|
<translation>Totaal credit</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Transaction fee</source>
|
<source>Transaction fee</source>
|
||||||
<translation>Transactiekosten</translation>
|
<translation>Transactiekosten</translation>
|
||||||
|
@ -2312,6 +2512,10 @@ Adres: %4
|
||||||
<source>Mined</source>
|
<source>Mined</source>
|
||||||
<translation>Gedolven</translation>
|
<translation>Gedolven</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>watch-only</source>
|
||||||
|
<translation>alleen-bekijkbaar</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>(n/a)</source>
|
<source>(n/a)</source>
|
||||||
<translation>(nvt)</translation>
|
<translation>(nvt)</translation>
|
||||||
|
@ -2423,6 +2627,10 @@ Adres: %4
|
||||||
<source>Export Transaction History</source>
|
<source>Export Transaction History</source>
|
||||||
<translation>Exporteer Transactieverleden</translation>
|
<translation>Exporteer Transactieverleden</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Watch-only</source>
|
||||||
|
<translation>Alleen-bekijkbaar</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Exporting Failed</source>
|
<source>Exporting Failed</source>
|
||||||
<translation>Export Mislukt</translation>
|
<translation>Export Mislukt</translation>
|
||||||
|
@ -2478,7 +2686,11 @@ Adres: %4
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>UnitDisplayStatusBarControl</name>
|
<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>
|
<context>
|
||||||
<name>WalletFrame</name>
|
<name>WalletFrame</name>
|
||||||
<message>
|
<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>
|
<source>This is intended for regression testing tools and app development.</source>
|
||||||
<translation>Dit is bedoeld voor regressie test toepassingen en applicatie onwikkeling.</translation>
|
<translation>Dit is bedoeld voor regressie test toepassingen en applicatie onwikkeling.</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Verifying blocks...</source>
|
<source>Verifying blocks...</source>
|
||||||
<translation>Blokken aan het controleren...</translation>
|
<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>
|
<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>
|
<translation>Stel maximumgrootte in bytes in voor hoge-prioriteits-/lage-transactiekosten-transacties (standaard: %d)</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Information</source>
|
<source>Information</source>
|
||||||
<translation>Informatie</translation>
|
<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>
|
<source>Invalid amount for -mintxfee=<amount>: '%s'</source>
|
||||||
<translation>Ongeldig bedrag voor -mintxfee=<bedrag>: '%s'</translation>
|
<translation>Ongeldig bedrag voor -mintxfee=<bedrag>: '%s'</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Print block on startup, if found in block index</source>
|
<source>Print block on startup, if found in block index</source>
|
||||||
<translation>Toon block bij opstarten, wanneer gevonden in block index</translation>
|
<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>
|
<source>Error loading wallet.dat: Wallet corrupted</source>
|
||||||
<translation>Fout bij laden wallet.dat: Portemonnee corrupt</translation>
|
<translation>Fout bij laden wallet.dat: Portemonnee corrupt</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Error loading wallet.dat</source>
|
<source>Error loading wallet.dat</source>
|
||||||
<translation>Fout bij laden wallet.dat</translation>
|
<translation>Fout bij laden wallet.dat</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Invalid -proxy address: '%s'</source>
|
<source>Invalid -proxy address: '%s'</source>
|
||||||
<translation>Ongeldig -proxy adres: '%s'</translation>
|
<translation>Ongeldig -proxy adres: '%s'</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Unknown network specified in -onlynet: '%s'</source>
|
<source>Unknown network specified in -onlynet: '%s'</source>
|
||||||
<translation>Onbekend netwerk gespecificeerd in -onlynet: '%s'</translation>
|
<translation>Onbekend netwerk gespecificeerd in -onlynet: '%s'</translation>
|
||||||
|
|
|
@ -773,6 +773,10 @@ Adresa: %4
|
||||||
<source>version</source>
|
<source>version</source>
|
||||||
<translation>versiunea</translation>
|
<translation>versiunea</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>(%1-bit)</source>
|
||||||
|
<translation>(%1-bit)</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>About Bitcoin Core</source>
|
<source>About Bitcoin Core</source>
|
||||||
<translation>Despre Nucleul Bitcoin</translation>
|
<translation>Despre Nucleul Bitcoin</translation>
|
||||||
|
|
|
@ -520,6 +520,10 @@ Address: %4
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoinControlDialog</name>
|
<name>CoinControlDialog</name>
|
||||||
|
<message>
|
||||||
|
<source>Coin Selection</source>
|
||||||
|
<translation>Выбор монет</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Quantity:</source>
|
<source>Quantity:</source>
|
||||||
<translation>Количество:</translation>
|
<translation>Количество:</translation>
|
||||||
|
@ -1844,17 +1848,37 @@ Address: %4
|
||||||
<source>Choose...</source>
|
<source>Choose...</source>
|
||||||
<translation>Выберите...</translation>
|
<translation>Выберите...</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>collapse fee-settings</source>
|
||||||
|
<translation>Свернуть настройки комиссии</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Minimize</source>
|
<source>Minimize</source>
|
||||||
<translation>Сворачивать</translation>
|
<translation>Сворачивать</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>per kilobyte</source>
|
<source>per kilobyte</source>
|
||||||
<translation>за килобайт</translation>
|
<translation>за килобайт</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>total at least</source>
|
<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>
|
||||||
<message>
|
<message>
|
||||||
<source>Recommended:</source>
|
<source>Recommended:</source>
|
||||||
|
@ -1864,6 +1888,10 @@ Address: %4
|
||||||
<source>Custom:</source>
|
<source>Custom:</source>
|
||||||
<translation>Выборочно:</translation>
|
<translation>Выборочно:</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>(Smart fee not initialized yet. This usually takes a few blocks...)</source>
|
||||||
|
<translation>(Умная комиссия пока не инициализирована. Обычно для этого требуется несколько блоков...)</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Confirmation time:</source>
|
<source>Confirmation time:</source>
|
||||||
<translation>Время подтверждения:</translation>
|
<translation>Время подтверждения:</translation>
|
||||||
|
@ -1994,7 +2022,7 @@ Address: %4
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Estimated to begin confirmation within %1 block(s).</source>
|
<source>Estimated to begin confirmation within %1 block(s).</source>
|
||||||
<translation>Ожидается начать подтверждение через %1 блок(ов).</translation>
|
<translation>Начало подтверждения ожидается через %1 блок(ов).</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Warning: Invalid Bitcoin address</source>
|
<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>
|
<source>Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup</source>
|
||||||
<translation>Удалить все транзакции бумажника с возможностью восстановить эти части цепи блоков с помощью -rescan при запуске</translation>
|
<translation>Удалить все транзакции бумажника с возможностью восстановить эти части цепи блоков с помощью -rescan при запуске</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Enter regression test mode, which uses a special chain in which blocks can be solved instantly.</source>
|
<source>Enter regression test mode, which uses a special chain in which blocks can be solved instantly.</source>
|
||||||
<translation>Войти в режим тестирования на регрессии, в котором используется специальная цепь, где блоки находятся мгновенно.</translation>
|
<translation>Войти в режим тестирования на регрессии, в котором используется специальная цепь, где блоки находятся мгновенно.</translation>
|
||||||
|
@ -3064,7 +3096,7 @@ rpcpassword=%s
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Set the number of threads for coin generation if enabled (-1 = all cores, default: %d)</source>
|
<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>
|
||||||
<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>
|
<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>
|
||||||
<message>
|
<message>
|
||||||
<source>Disable safemode, override a real safe mode event (default: %u)</source>
|
<source>Disable safemode, override a real safe mode event (default: %u)</source>
|
||||||
<translation>Отключить безопасный режим, отклонить реальное событие безопасного режима (по умолчанию: %u)</translation>
|
<translation>Отключить безопасный режим, перекрыть реальное событие безопасного режима (по умолчанию: %u)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Error loading wallet.dat</source>
|
<source>Error loading wallet.dat</source>
|
||||||
|
|
|
@ -3,15 +3,31 @@
|
||||||
<name>AddressBookPage</name>
|
<name>AddressBookPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Double-click to edit address or label</source>
|
<source>Double-click to edit address or label</source>
|
||||||
<translation>Кликните два пута да промените адресу и/или етикету</translation>
|
<translation>Kliknite dva puta da izmenite adresu ili etiketu</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Create a new address</source>
|
<source>Create a new address</source>
|
||||||
<translation>Прави нову адресу</translation>
|
<translation>Napravite novu adresu</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>&New</source>
|
||||||
|
<translation>Novo</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Copy the currently selected address to the system clipboard</source>
|
<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>
|
||||||
<message>
|
<message>
|
||||||
<source>&Delete</source>
|
<source>&Delete</source>
|
||||||
|
|
|
@ -524,6 +524,10 @@ Address: %4
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoinControlDialog</name>
|
<name>CoinControlDialog</name>
|
||||||
|
<message>
|
||||||
|
<source>Coin Selection</source>
|
||||||
|
<translation>Вибір Монет</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Quantity:</source>
|
<source>Quantity:</source>
|
||||||
<translation>Кількість:</translation>
|
<translation>Кількість:</translation>
|
||||||
|
@ -572,6 +576,14 @@ Address: %4
|
||||||
<source>Amount</source>
|
<source>Amount</source>
|
||||||
<translation>Кількість</translation>
|
<translation>Кількість</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Received with label</source>
|
||||||
|
<translation>Отримано з позначкою</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Received with address</source>
|
||||||
|
<translation>Отримано з адресою</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Date</source>
|
<source>Date</source>
|
||||||
<translation>Дата</translation>
|
<translation>Дата</translation>
|
||||||
|
@ -1034,6 +1046,14 @@ Address: %4
|
||||||
<source>Map port using &UPnP</source>
|
<source>Map port using &UPnP</source>
|
||||||
<translation>Відображення порту через &UPnP</translation>
|
<translation>Відображення порту через &UPnP</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Proxy &IP:</source>
|
<source>Proxy &IP:</source>
|
||||||
<translation>&IP проксі:</translation>
|
<translation>&IP проксі:</translation>
|
||||||
|
@ -1824,6 +1844,78 @@ Address: %4
|
||||||
<source>Custom change address</source>
|
<source>Custom change address</source>
|
||||||
<translation>Вказати адресу для решти</translation>
|
<translation>Вказати адресу для решти</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Send to multiple recipients at once</source>
|
<source>Send to multiple recipients at once</source>
|
||||||
<translation>Відправити на декілька адрес</translation>
|
<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>
|
<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>
|
<translation>Транзакцію відхилено! Це може статись, якщо декілька монет з вашого гаманця вже використані, наприклад, якщо ви використовуєте одну копію гаманця (wallet.dat), а монети були використані з іншої копії, але не позначені як використані в цій.</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Warning: Invalid Bitcoin address</source>
|
<source>Warning: Invalid Bitcoin address</source>
|
||||||
<translation>Увага: Неправильна Bitcoin-адреса</translation>
|
<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>
|
<source>Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup</source>
|
||||||
<translation>Видалити всі транзакції гаманця та відновити ті, що будуть знайдені під час запуску за допомогою -rescan</translation>
|
<translation>Видалити всі транзакції гаманця та відновити ті, що будуть знайдені під час запуску за допомогою -rescan</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Enter regression test mode, which uses a special chain in which blocks can be solved instantly.</source>
|
<source>Enter regression test mode, which uses a special chain in which blocks can be solved instantly.</source>
|
||||||
<translation>Ввійти в режим регресивного тестування, що використовує спеціальний ланцюг з миттєвим знаходженням блоків.</translation>
|
<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>
|
<source>Fees (in BTC/Kb) smaller than this are considered zero fee for transaction creation (default: %s)</source>
|
||||||
<translation>Комісії (в BTC/КБ), що менші за вказану, вважатимуться нульовими (для створення транзакції) (типово: %s)</translation>
|
<translation>Комісії (в BTC/КБ), що менші за вказану, вважатимуться нульовими (для створення транзакції) (типово: %s)</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Maximum size of data in data carrier transactions we relay and mine (default: %u)</source>
|
||||||
|
<translation>Максимальний розмір даних в транзакціях носіїв даних, що ми передаємо і добуваємо (за замовчуванням: %u)</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect)</source>
|
<source>Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect)</source>
|
||||||
<translation>Дізнаватися адреси учасників через DNS при замалій кількості відомих адрес (типово: 1 за відсутності -connect)</translation>
|
<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>
|
<source>Set maximum size of high-priority/low-fee transactions in bytes (default: %d)</source>
|
||||||
<translation>Встановити максимальний розмір транзакцій з високим пріоритетом та низькою комісією (в байтах) (типово: %d)</translation>
|
<translation>Встановити максимальний розмір транзакцій з високим пріоритетом та низькою комісією (в байтах) (типово: %d)</translation>
|
||||||
</message>
|
</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>
|
<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>
|
<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>
|
<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>
|
<source>Send trace/debug info to console instead of debug.log file</source>
|
||||||
<translation>Відсилати налагоджувальну інформацію на консоль, а не у файл debug.log</translation>
|
<translation>Відсилати налагоджувальну інформацію на консоль, а не у файл debug.log</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Send transactions as zero-fee transactions if possible (default: %u)</source>
|
||||||
|
<translation>Встановити операцію надсилання, як неоплатну операцію, якщо це можливо (за замовчуванням: %u)</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Show all debugging options (usage: --help -help-debug)</source>
|
<source>Show all debugging options (usage: --help -help-debug)</source>
|
||||||
<translation>Показати всі налагоджувальні параметри (використання: --help -help-debug)</translation>
|
<translation>Показати всі налагоджувальні параметри (використання: --help -help-debug)</translation>
|
||||||
|
|
|
@ -478,6 +478,10 @@
|
||||||
<source>Up to date</source>
|
<source>Up to date</source>
|
||||||
<translation>最新狀態</translation>
|
<translation>最新狀態</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message numerus="yes">
|
||||||
|
<source>Processed %n blocks of transaction history.</source>
|
||||||
|
<translation><numerusform>已經處理了 %n 個區塊的交易紀錄。</numerusform></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Catching up...</source>
|
<source>Catching up...</source>
|
||||||
<translation>正在趕進度...</translation>
|
<translation>正在趕進度...</translation>
|
||||||
|
@ -520,6 +524,10 @@ Address: %4
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CoinControlDialog</name>
|
<name>CoinControlDialog</name>
|
||||||
|
<message>
|
||||||
|
<source>Coin Selection</source>
|
||||||
|
<translation>選擇錢幣</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Quantity:</source>
|
<source>Quantity:</source>
|
||||||
<translation>數目:</translation>
|
<translation>數目:</translation>
|
||||||
|
@ -1030,6 +1038,14 @@ Address: %4
|
||||||
<source>Map port using &UPnP</source>
|
<source>Map port using &UPnP</source>
|
||||||
<translation>用 &UPnP 設定通訊埠對應</translation>
|
<translation>用 &UPnP 設定通訊埠對應</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Proxy &IP:</source>
|
<source>Proxy &IP:</source>
|
||||||
<translation>代理位址:</translation>
|
<translation>代理位址:</translation>
|
||||||
|
@ -1820,6 +1836,38 @@ Address: %4
|
||||||
<source>Custom change address</source>
|
<source>Custom change address</source>
|
||||||
<translation>自定找零位址</translation>
|
<translation>自定找零位址</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Send to multiple recipients at once</source>
|
<source>Send to multiple recipients at once</source>
|
||||||
<translation>一次付給多個收款人</translation>
|
<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>
|
<source>Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup</source>
|
||||||
<translation>清掉錢包裡的所有交易,並且在下次啟動時,使用 -rescan 來從區塊鏈中復原回來。</translation>
|
<translation>清掉錢包裡的所有交易,並且在下次啟動時,使用 -rescan 來從區塊鏈中復原回來。</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Enter regression test mode, which uses a special chain in which blocks can be solved instantly.</source>
|
<source>Enter regression test mode, which uses a special chain in which blocks can be solved instantly.</source>
|
||||||
<translation>進入回歸測試模式,使用可以立即解出區塊的特殊區塊鏈。</translation>
|
<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>
|
<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>
|
<translation>警告: 錢包檔 wallet.dat 壞掉,但資料被拯救回來了!原來的 wallet.dat 會改儲存在 %s, 檔名是 wallet.{timestamp}.bak. 如果餘額或交易資料有誤,你應該要用備份資料復原回來。</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times.</source>
|
||||||
|
<translation>把來自指定網域或位址的節點放進白名單。這個選項可以設定多次。</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>(default: 1)</source>
|
<source>(default: 1)</source>
|
||||||
<translation>(預設值: 1)</translation>
|
<translation>(預設值: 1)</translation>
|
||||||
|
@ -2821,7 +2877,7 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Do not load the wallet and disable wallet RPC calls</source>
|
<source>Do not load the wallet and disable wallet RPC calls</source>
|
||||||
<translation>不要載入錢包,並且拿掉錢包相關的 RPC 功能呼叫。</translation>
|
<translation>不要載入錢包,並且拿掉錢包相關的 RPC 功能請求。</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Do you want to rebuild the block database now?</source>
|
<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>
|
<source>Cannot obtain a lock on data directory %s. Bitcoin Core is probably already running.</source>
|
||||||
<translation>沒辦法鎖定資料目錄 %s。位元幣核心可能已經在執行了。</translation>
|
<translation>沒辦法鎖定資料目錄 %s。位元幣核心可能已經在執行了。</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u)</source>
|
||||||
|
<translation>對沒付手續費的交易持續限制每分鐘內最多只能有 <n>*1000 個位元組(預設值: %u)</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality)</source>
|
<source>Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality)</source>
|
||||||
<translation>用系統預設權限來造出新的檔案,而不是用使用者權限罩遮(umask)值 077 (只有在關掉錢包功能時才有作用)。</translation>
|
<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>
|
<source>Fees (in BTC/Kb) smaller than this are considered zero fee for transaction creation (default: %s)</source>
|
||||||
<translation>當製造交易時,如果每千位元組(Kb)的手續費比這個值低,就視為沒付手續費 (預設值: %s)</translation>
|
<translation>當製造交易時,如果每千位元組(Kb)的手續費比這個值低,就視為沒付手續費 (預設值: %s)</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Maximum size of data in data carrier transactions we relay and mine (default: %u)</source>
|
||||||
|
<translation>轉發和開採時,對只帶資料的交易的大小上限(預設值: %u)</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect)</source>
|
<source>Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect)</source>
|
||||||
<translation>是否允許在節點位址數目不足時,使用域名查詢來搜尋節點 (預設值: 當沒用 -connect 時為 1)</translation>
|
<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>
|
<source>Set maximum size of high-priority/low-fee transactions in bytes (default: %d)</source>
|
||||||
<translation>設定高優先度或低手續費的交易資料大小上限成多少位元組(預設值: %d)</translation>
|
<translation>設定高優先度或低手續費的交易資料大小上限成多少位元組(預設值: %d)</translation>
|
||||||
</message>
|
</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>
|
<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>
|
<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>
|
<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>
|
<source>Send trace/debug info to console instead of debug.log file</source>
|
||||||
<translation>在終端機顯示追蹤或除錯資訊,而不是寫到檔案 debug.log 中</translation>
|
<translation>在終端機顯示追蹤或除錯資訊,而不是寫到檔案 debug.log 中</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Send transactions as zero-fee transactions if possible (default: %u)</source>
|
||||||
|
<translation>盡可能送出不用付手續費的交易(預設值: %u)</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Show all debugging options (usage: --help -help-debug)</source>
|
<source>Show all debugging options (usage: --help -help-debug)</source>
|
||||||
<translation>顯示所有的除錯選項 (用法: --help --help-debug)</translation>
|
<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>
|
<source>Error loading wallet.dat: Wallet corrupted</source>
|
||||||
<translation>載入檔案 wallet.dat 時發生錯誤: 錢包損毀了</translation>
|
<translation>載入檔案 wallet.dat 時發生錯誤: 錢包損毀了</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Error loading wallet.dat</source>
|
<source>Error loading wallet.dat</source>
|
||||||
<translation>載入錢包檔 wallet.dat 時發生錯誤</translation>
|
<translation>載入錢包檔 wallet.dat 時發生錯誤</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Invalid -proxy address: '%s'</source>
|
<source>Invalid -proxy address: '%s'</source>
|
||||||
<translation>無效的 -proxy 位址: '%s'</translation>
|
<translation>無效的 -proxy 位址: '%s'</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Unknown network specified in -onlynet: '%s'</source>
|
<source>Unknown network specified in -onlynet: '%s'</source>
|
||||||
<translation>在 -onlynet 指定了不明的網路別: '%s'</translation>
|
<translation>在 -onlynet 指定了不明的網路別: '%s'</translation>
|
||||||
|
|
|
@ -11,24 +11,73 @@
|
||||||
static const struct {
|
static const struct {
|
||||||
const char *networkId;
|
const char *networkId;
|
||||||
const char *appName;
|
const char *appName;
|
||||||
const char *appIcon;
|
const int iconColorHueShift;
|
||||||
|
const int iconColorSaturationReduction;
|
||||||
const char *titleAddText;
|
const char *titleAddText;
|
||||||
const char *splashImage;
|
|
||||||
} network_styles[] = {
|
} network_styles[] = {
|
||||||
{"main", QAPP_APP_NAME_DEFAULT, ":/icons/bitcoin", "", ":/images/splash"},
|
{"main", QAPP_APP_NAME_DEFAULT, 0, 0, ""},
|
||||||
{"newcc", QAPP_APP_NAME_DEFAULT, ":/icons/bitcoin", "", ":/images/splash"},
|
{"newcc", QAPP_APP_NAME_DEFAULT, 0, 0, ""},
|
||||||
{"test", QAPP_APP_NAME_TESTNET, ":/icons/bitcoin_testnet", QT_TRANSLATE_NOOP("SplashScreen", "[testnet]"), ":/images/splash_testnet"},
|
{"test", QAPP_APP_NAME_TESTNET, 70, 30, QT_TRANSLATE_NOOP("SplashScreen", "[testnet]")},
|
||||||
{"regtest", QAPP_APP_NAME_TESTNET, ":/icons/bitcoin_testnet", "[regtest]", ":/images/splash_testnet"}
|
{"regtest", QAPP_APP_NAME_TESTNET, 160, 30, "[regtest]"}
|
||||||
};
|
};
|
||||||
static const unsigned network_styles_count = sizeof(network_styles)/sizeof(*network_styles);
|
static const unsigned network_styles_count = sizeof(network_styles)/sizeof(*network_styles);
|
||||||
|
|
||||||
// titleAddText needs to be const char* for tr()
|
// 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),
|
appName(appName),
|
||||||
appIcon(appIcon),
|
titleAddText(qApp->translate("SplashScreen", titleAddText))
|
||||||
titleAddText(qApp->translate("SplashScreen", titleAddText)),
|
|
||||||
splashImage(splashImage)
|
|
||||||
{
|
{
|
||||||
|
// 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)
|
const NetworkStyle *NetworkStyle::instantiate(const QString &networkId)
|
||||||
|
@ -39,9 +88,9 @@ const NetworkStyle *NetworkStyle::instantiate(const QString &networkId)
|
||||||
{
|
{
|
||||||
return new NetworkStyle(
|
return new NetworkStyle(
|
||||||
network_styles[x].appName,
|
network_styles[x].appName,
|
||||||
network_styles[x].appIcon,
|
network_styles[x].iconColorHueShift,
|
||||||
network_styles[x].titleAddText,
|
network_styles[x].iconColorSaturationReduction,
|
||||||
network_styles[x].splashImage);
|
network_styles[x].titleAddText);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -18,16 +18,16 @@ public:
|
||||||
|
|
||||||
const QString &getAppName() const { return appName; }
|
const QString &getAppName() const { return appName; }
|
||||||
const QIcon &getAppIcon() const { return appIcon; }
|
const QIcon &getAppIcon() const { return appIcon; }
|
||||||
|
const QIcon &getTrayAndWindowIcon() const { return trayAndWindowIcon; }
|
||||||
const QString &getTitleAddText() const { return titleAddText; }
|
const QString &getTitleAddText() const { return titleAddText; }
|
||||||
const QPixmap &getSplashImage() const { return splashImage; }
|
|
||||||
|
|
||||||
private:
|
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;
|
QString appName;
|
||||||
QIcon appIcon;
|
QIcon appIcon;
|
||||||
|
QIcon trayAndWindowIcon;
|
||||||
QString titleAddText;
|
QString titleAddText;
|
||||||
QPixmap splashImage;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // BITCOIN_QT_NETWORKSTYLE_H
|
#endif // BITCOIN_QT_NETWORKSTYLE_H
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Copyright (c) 2011-2013 The Bitcoin developers
|
// 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.
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Copyright (c) 2011-2013 The Bitcoin developers
|
// 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.
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
#ifndef BITCOIN_QT_PAYMENTREQUESTPLUS_H
|
#ifndef BITCOIN_QT_PAYMENTREQUESTPLUS_H
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
// Copyright (c) 2011-2013 The Bitcoin developers
|
// 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.
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
#include "paymentserver.h"
|
#include "paymentserver.h"
|
||||||
|
|
||||||
#include "bitcoinunits.h"
|
#include "bitcoinunits.h"
|
||||||
#include "guiconstants.h"
|
|
||||||
#include "guiutil.h"
|
#include "guiutil.h"
|
||||||
#include "optionsmodel.h"
|
#include "optionsmodel.h"
|
||||||
|
|
||||||
|
@ -19,6 +18,7 @@
|
||||||
|
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
#include <openssl/x509_vfy.h>
|
#include <openssl/x509_vfy.h>
|
||||||
|
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
#include <QByteArray>
|
#include <QByteArray>
|
||||||
#include <QDataStream>
|
#include <QDataStream>
|
||||||
|
@ -46,14 +46,20 @@
|
||||||
#include <QUrlQuery>
|
#include <QUrlQuery>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
using namespace boost;
|
using namespace boost;
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
const int BITCOIN_IPC_CONNECT_TIMEOUT = 1000; // milliseconds
|
const int BITCOIN_IPC_CONNECT_TIMEOUT = 1000; // milliseconds
|
||||||
const QString BITCOIN_IPC_PREFIX("bitcoin:");
|
const QString BITCOIN_IPC_PREFIX("bitcoin:");
|
||||||
const char* BITCOIN_REQUEST_MIMETYPE = "application/bitcoin-paymentrequest";
|
// BIP70 payment protocol messages
|
||||||
const char* BITCOIN_PAYMENTACK_MIMETYPE = "application/bitcoin-paymentack";
|
const char* BIP70_MESSAGE_PAYMENTACK = "PaymentACK";
|
||||||
const char* BITCOIN_PAYMENTACK_CONTENTTYPE = "application/bitcoin-payment";
|
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;
|
X509_STORE* PaymentServer::certStore = NULL;
|
||||||
void PaymentServer::freeCertStore()
|
void PaymentServer::freeCertStore()
|
||||||
|
@ -184,7 +190,7 @@ void PaymentServer::LoadRootCAs(X509_STORE* _store)
|
||||||
// Warning: ipcSendCommandLine() is called early in init,
|
// Warning: ipcSendCommandLine() is called early in init,
|
||||||
// so don't use "emit message()", but "QMessageBox::"!
|
// 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++)
|
for (int i = 1; i < argc; i++)
|
||||||
{
|
{
|
||||||
|
@ -192,6 +198,10 @@ bool PaymentServer::ipcParseCommandLine(int argc, char* argv[])
|
||||||
if (arg.startsWith("-"))
|
if (arg.startsWith("-"))
|
||||||
continue;
|
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
|
if (arg.startsWith(BITCOIN_IPC_PREFIX, Qt::CaseInsensitive)) // bitcoin: URI
|
||||||
{
|
{
|
||||||
savedPaymentRequests.append(arg);
|
savedPaymentRequests.append(arg);
|
||||||
|
@ -216,7 +226,7 @@ bool PaymentServer::ipcParseCommandLine(int argc, char* argv[])
|
||||||
savedPaymentRequests.append(arg);
|
savedPaymentRequests.append(arg);
|
||||||
|
|
||||||
PaymentRequestPlus request;
|
PaymentRequestPlus request;
|
||||||
if (readPaymentRequest(arg, request))
|
if (readPaymentRequestFromFile(arg, request))
|
||||||
{
|
{
|
||||||
if (request.getDetails().network() == "main")
|
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;
|
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))
|
if (!socket->waitForConnected(BITCOIN_IPC_CONNECT_TIMEOUT))
|
||||||
{
|
{
|
||||||
delete socket;
|
delete socket;
|
||||||
|
socket = NULL;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -262,12 +272,14 @@ bool PaymentServer::ipcSendCommandLine()
|
||||||
out.setVersion(QDataStream::Qt_4_0);
|
out.setVersion(QDataStream::Qt_4_0);
|
||||||
out << r;
|
out << r;
|
||||||
out.device()->seek(0);
|
out.device()->seek(0);
|
||||||
|
|
||||||
socket->write(block);
|
socket->write(block);
|
||||||
socket->flush();
|
socket->flush();
|
||||||
|
|
||||||
socket->waitForBytesWritten(BITCOIN_IPC_CONNECT_TIMEOUT);
|
socket->waitForBytesWritten(BITCOIN_IPC_CONNECT_TIMEOUT);
|
||||||
socket->disconnectFromServer();
|
socket->disconnectFromServer();
|
||||||
|
|
||||||
delete socket;
|
delete socket;
|
||||||
|
socket = NULL;
|
||||||
fResult = true;
|
fResult = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -440,7 +452,7 @@ void PaymentServer::handleURIOrFile(const QString& s)
|
||||||
{
|
{
|
||||||
PaymentRequestPlus request;
|
PaymentRequestPlus request;
|
||||||
SendCoinsRecipient recipient;
|
SendCoinsRecipient recipient;
|
||||||
if (!readPaymentRequest(s, request))
|
if (!readPaymentRequestFromFile(s, request))
|
||||||
{
|
{
|
||||||
emit message(tr("Payment request file handling"),
|
emit message(tr("Payment request file handling"),
|
||||||
tr("Payment request file cannot be read! This can be caused by an invalid payment request file."),
|
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);
|
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);
|
QFile f(filename);
|
||||||
if (!f.open(QIODevice::ReadOnly))
|
if (!f.open(QIODevice::ReadOnly)) {
|
||||||
{
|
qWarning() << QString("PaymentServer::%1: Failed to open %2").arg(__func__).arg(filename);
|
||||||
qWarning() << "PaymentServer::readPaymentRequest : Failed to open " << filename;
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (f.size() > MAX_PAYMENT_REQUEST_SIZE)
|
// BIP70 DoS protection
|
||||||
{
|
if (f.size() > BIP70_MAX_PAYMENTREQUEST_SIZE) {
|
||||||
qWarning() << "PaymentServer::readPaymentRequest : " << filename << " too large";
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -580,10 +599,10 @@ bool PaymentServer::processPaymentRequest(PaymentRequestPlus& request, SendCoins
|
||||||
void PaymentServer::fetchRequest(const QUrl& url)
|
void PaymentServer::fetchRequest(const QUrl& url)
|
||||||
{
|
{
|
||||||
QNetworkRequest netRequest;
|
QNetworkRequest netRequest;
|
||||||
netRequest.setAttribute(QNetworkRequest::User, "PaymentRequest");
|
netRequest.setAttribute(QNetworkRequest::User, BIP70_MESSAGE_PAYMENTREQUEST);
|
||||||
netRequest.setUrl(url);
|
netRequest.setUrl(url);
|
||||||
netRequest.setRawHeader("User-Agent", CLIENT_NAME.c_str());
|
netRequest.setRawHeader("User-Agent", CLIENT_NAME.c_str());
|
||||||
netRequest.setRawHeader("Accept", BITCOIN_REQUEST_MIMETYPE);
|
netRequest.setRawHeader("Accept", BIP71_MIMETYPE_PAYMENTREQUEST);
|
||||||
netManager->get(netRequest);
|
netManager->get(netRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -594,11 +613,11 @@ void PaymentServer::fetchPaymentACK(CWallet* wallet, SendCoinsRecipient recipien
|
||||||
return;
|
return;
|
||||||
|
|
||||||
QNetworkRequest netRequest;
|
QNetworkRequest netRequest;
|
||||||
netRequest.setAttribute(QNetworkRequest::User, "PaymentACK");
|
netRequest.setAttribute(QNetworkRequest::User, BIP70_MESSAGE_PAYMENTACK);
|
||||||
netRequest.setUrl(QString::fromStdString(details.payment_url()));
|
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("User-Agent", CLIENT_NAME.c_str());
|
||||||
netRequest.setRawHeader("Accept", BITCOIN_PAYMENTACK_MIMETYPE);
|
netRequest.setRawHeader("Accept", BIP71_MIMETYPE_PAYMENTACK);
|
||||||
|
|
||||||
payments::Payment payment;
|
payments::Payment payment;
|
||||||
payment.set_merchant_data(details.merchant_data());
|
payment.set_merchant_data(details.merchant_data());
|
||||||
|
@ -616,7 +635,6 @@ void PaymentServer::fetchPaymentACK(CWallet* wallet, SendCoinsRecipient recipien
|
||||||
else {
|
else {
|
||||||
CPubKey newKey;
|
CPubKey newKey;
|
||||||
if (wallet->GetKeyFromPool(newKey)) {
|
if (wallet->GetKeyFromPool(newKey)) {
|
||||||
LOCK(wallet->cs_wallet); // SetAddressBook
|
|
||||||
CKeyID keyID = newKey.GetID();
|
CKeyID keyID = newKey.GetID();
|
||||||
wallet->SetAddressBook(keyID, strAccount, "refund");
|
wallet->SetAddressBook(keyID, strAccount, "refund");
|
||||||
|
|
||||||
|
@ -646,13 +664,26 @@ void PaymentServer::fetchPaymentACK(CWallet* wallet, SendCoinsRecipient recipien
|
||||||
void PaymentServer::netRequestFinished(QNetworkReply* reply)
|
void PaymentServer::netRequestFinished(QNetworkReply* reply)
|
||||||
{
|
{
|
||||||
reply->deleteLater();
|
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")
|
QString msg = tr("Error communicating with %1: %2")
|
||||||
.arg(reply->request().url().toString())
|
.arg(reply->request().url().toString())
|
||||||
.arg(reply->errorString());
|
.arg(reply->errorString());
|
||||||
|
|
||||||
qWarning() << "PaymentServer::netRequestFinished : " << msg;
|
qWarning() << "PaymentServer::netRequestFinished: " << msg;
|
||||||
emit message(tr("Payment request error"), msg, CClientUIInterface::MSG_ERROR);
|
emit message(tr("Payment request error"), msg, CClientUIInterface::MSG_ERROR);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -660,7 +691,7 @@ void PaymentServer::netRequestFinished(QNetworkReply* reply)
|
||||||
QByteArray data = reply->readAll();
|
QByteArray data = reply->readAll();
|
||||||
|
|
||||||
QString requestType = reply->request().attribute(QNetworkRequest::User).toString();
|
QString requestType = reply->request().attribute(QNetworkRequest::User).toString();
|
||||||
if (requestType == "PaymentRequest")
|
if (requestType == BIP70_MESSAGE_PAYMENTREQUEST)
|
||||||
{
|
{
|
||||||
PaymentRequestPlus request;
|
PaymentRequestPlus request;
|
||||||
SendCoinsRecipient recipient;
|
SendCoinsRecipient recipient;
|
||||||
|
@ -676,7 +707,7 @@ void PaymentServer::netRequestFinished(QNetworkReply* reply)
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (requestType == "PaymentACK")
|
else if (requestType == BIP70_MESSAGE_PAYMENTACK)
|
||||||
{
|
{
|
||||||
payments::PaymentACK paymentACK;
|
payments::PaymentACK paymentACK;
|
||||||
if (!paymentACK.ParseFromArray(data.data(), data.size()))
|
if (!paymentACK.ParseFromArray(data.data(), data.size()))
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Copyright (c) 2011-2014 The Bitcoin developers
|
// 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.
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
#ifndef BITCOIN_QT_PAYMENTSERVER_H
|
#ifndef BITCOIN_QT_PAYMENTSERVER_H
|
||||||
|
@ -40,6 +40,8 @@
|
||||||
|
|
||||||
class OptionsModel;
|
class OptionsModel;
|
||||||
|
|
||||||
|
class CWallet;
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
class QApplication;
|
class QApplication;
|
||||||
class QByteArray;
|
class QByteArray;
|
||||||
|
@ -50,7 +52,8 @@ class QSslError;
|
||||||
class QUrl;
|
class QUrl;
|
||||||
QT_END_NAMESPACE
|
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
|
class PaymentServer : public QObject
|
||||||
{
|
{
|
||||||
|
@ -59,7 +62,7 @@ class PaymentServer : public QObject
|
||||||
public:
|
public:
|
||||||
// Parse URIs on command line
|
// Parse URIs on command line
|
||||||
// Returns false on error
|
// 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
|
// Returns true if there were URIs on the command line
|
||||||
// which were successfully sent to an already-running
|
// which were successfully sent to an already-running
|
||||||
|
@ -85,6 +88,9 @@ public:
|
||||||
// OptionsModel is used for getting proxy settings and display unit
|
// OptionsModel is used for getting proxy settings and display unit
|
||||||
void setOptionsModel(OptionsModel *optionsModel);
|
void setOptionsModel(OptionsModel *optionsModel);
|
||||||
|
|
||||||
|
// This is now public, because we use it in paymentservertests.cpp
|
||||||
|
static bool readPaymentRequestFromFile(const QString& filename, PaymentRequestPlus& request);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
// Fired when a valid payment request is received
|
// Fired when a valid payment request is received
|
||||||
void receivedPaymentRequest(SendCoinsRecipient);
|
void receivedPaymentRequest(SendCoinsRecipient);
|
||||||
|
@ -118,7 +124,6 @@ protected:
|
||||||
bool eventFilter(QObject *object, QEvent *event);
|
bool eventFilter(QObject *object, QEvent *event);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static bool readPaymentRequest(const QString& filename, PaymentRequestPlus& request);
|
|
||||||
bool processPaymentRequest(PaymentRequestPlus& request, SendCoinsRecipient& recipient);
|
bool processPaymentRequest(PaymentRequestPlus& request, SendCoinsRecipient& recipient);
|
||||||
void fetchRequest(const QUrl& url);
|
void fetchRequest(const QUrl& url);
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
IDI_ICON1 ICON DISCARDABLE "icons/bitcoin.ico"
|
IDI_ICON1 ICON DISCARDABLE "icons/bitcoin.ico"
|
||||||
IDI_ICON2 ICON DISCARDABLE "icons/bitcoin_testnet.ico"
|
|
||||||
|
|
||||||
#include <windows.h> // needed for VERSIONINFO
|
#include <windows.h> // needed for VERSIONINFO
|
||||||
#include "../../clientversion.h" // holds the needed client version information
|
#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 |