From 0133e4fb48dc0a954232ba6290df7003e659a94a Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Thu, 11 Dec 2014 15:38:29 -0500 Subject: [PATCH 001/201] depends: Gitian 0.10 fixes Github-Pull: #5465 Rebased-From: 422f873ef3d62f7dff9c00dc0f221912ce28f130 d546191dc28fac0e365c8f2aba47ac69a8920d6c d7db4b6317fd9c79bd6fd7c7455d7186b306411f e27d7cb24835c6ce16c12eb758c2d75806103c4a --- depends/Makefile | 12 ++++++++++-- depends/README.usage | 5 ++++- depends/funcs.mk | 24 +++++++++++++----------- depends/packages/native_cctools.mk | 8 ++++---- depends/packages/native_comparisontool.mk | 2 +- doc/release-process.md | 18 +++++++++++++----- 6 files changed, 45 insertions(+), 24 deletions(-) diff --git a/depends/Makefile b/depends/Makefile index 5de01597142..e2ef7ee49bd 100644 --- a/depends/Makefile +++ b/depends/Makefile @@ -31,6 +31,7 @@ endif base_build_dir=$(BASEDIR)/work/build base_staging_dir=$(BASEDIR)/work/staging +base_download_dir=$(BASEDIR)/work/download canonical_host:=$(shell ./config.sub $(HOST)) build:=$(shell ./config.sub $(BUILD)) @@ -122,5 +123,12 @@ $(host_prefix)/share/config.site : config.site.in $(host_prefix)/.stamp_$(final_ $(AT)touch $@ install: $(host_prefix)/share/config.site -download: $(all_sources) -.PHONY: install cached +download-one: $(all_sources) +download-osx: + @$(MAKE) -s HOST=x86_64-apple-darwin11 download-one +download-linux: + @$(MAKE) -s HOST=x86_64-unknown-linux-gnu download-one +download-win: + @$(MAKE) -s HOST=x86_64-w64-mingw32 download-one +download: download-osx download-linux download-win +.PHONY: install cached download-one download-osx download-linux download-win download diff --git a/depends/README.usage b/depends/README.usage index e768feecf76..f5aa5314a1f 100644 --- a/depends/README.usage +++ b/depends/README.usage @@ -29,4 +29,7 @@ If some packages are not built, for example 'make NO_WALLET=1', the appropriate options will be passed to bitcoin's configure. In this case, --disable-wallet. Additional targets: -download: run 'make download' to fetch sources without building them +download: run 'make download' to fetch all sources without building them +download-osx: run 'make download-osx' to fetch all sources needed for osx builds +download-win: run 'make download-win' to fetch all sources needed for win builds +download-linux: run 'make download-linux' to fetch all sources needed for linux builds diff --git a/depends/funcs.mk b/depends/funcs.mk index c1fc0a0e331..79015c047ca 100644 --- a/depends/funcs.mk +++ b/depends/funcs.mk @@ -20,18 +20,19 @@ $(sort $(foreach dep,$(2),$(2) $(call int_get_all_dependencies,$(1),$($(dep)_dep endef define fetch_file -(test -f $(SOURCES_PATH)/$(4) || \ - ( mkdir -p $$($(1)_extract_dir) && \ - ( $(build_DOWNLOAD) "$$($(1)_extract_dir)/$(4).temp" "$(2)/$(3)" || \ - $(build_DOWNLOAD) "$$($(1)_extract_dir)/$(4).temp" "$(FALLBACK_DOWNLOAD_PATH)/$(3)" ) && \ - echo "$(5) $$($(1)_extract_dir)/$(4).temp" > $$($(1)_extract_dir)/.$(4).hash && \ - $(build_SHA256SUM) -c $$($(1)_extract_dir)/.$(4).hash && \ - mv $$($(1)_extract_dir)/$(4).temp $(SOURCES_PATH)/$(4) )) +(test -f $$($(1)_source_dir)/$(4) || \ + ( mkdir -p $$($(1)_download_dir) && echo Fetching $(1)... && \ + ( $(build_DOWNLOAD) "$$($(1)_download_dir)/$(4).temp" "$(2)/$(3)" || \ + $(build_DOWNLOAD) "$$($(1)_download_dir)/$(4).temp" "$(FALLBACK_DOWNLOAD_PATH)/$(3)" ) && \ + echo "$(5) $$($(1)_download_dir)/$(4).temp" > $$($(1)_download_dir)/.$(4).hash && \ + $(build_SHA256SUM) -c $$($(1)_download_dir)/.$(4).hash && \ + mv $$($(1)_download_dir)/$(4).temp $$($(1)_source_dir)/$(4) && \ + rm -rf $$($(1)_download_dir) )) endef define int_get_build_recipe_hash $(eval $(1)_all_file_checksums:=$(shell $(build_SHA256SUM) $(meta_depends) packages/$(1).mk $(addprefix $(PATCHES_PATH)/$(1)/,$($(1)_patches)))) -$(eval $(1)_recipe_hash:=$(shell echo -n "$($(1)_all_file_checksums)" | $(build_SHA256SUM))) +$(eval $(1)_recipe_hash:=$(shell echo -n "$($(1)_all_file_checksums)" | cut -d" " -f1 | $(build_SHA256SUM))) endef define int_get_build_id @@ -45,17 +46,19 @@ final_build_id_long+=$($(package)_build_id_long) #compute package-specific paths $(1)_build_subdir?=. $(1)_download_file?=$($(1)_file_name) -$(1)_source:=$(SOURCES_PATH)/$($(1)_file_name) +$(1)_source_dir:=$(SOURCES_PATH) +$(1)_source:=$$($(1)_source_dir)/$($(1)_file_name) $(1)_staging_dir=$(base_staging_dir)/$(host)/$(1)/$($(1)_version)-$($(1)_build_id) $(1)_staging_prefix_dir:=$$($(1)_staging_dir)$($($(1)_type)_prefix) $(1)_extract_dir:=$(base_build_dir)/$(host)/$(1)/$($(1)_version)-$($(1)_build_id) +$(1)_download_dir:=$(base_download_dir)/$(1)-$($(1)_version) $(1)_build_dir:=$$($(1)_extract_dir)/$$($(1)_build_subdir) $(1)_patch_dir:=$(base_build_dir)/$(host)/$(1)/$($(1)_version)-$($(1)_build_id)/.patches-$($(1)_build_id) $(1)_prefixbin:=$($($(1)_type)_prefix)/bin/ $(1)_cached:=$(BASE_CACHE)/$(host)/$(1)/$(1)-$($(1)_version)-$($(1)_build_id).tar.gz #stamps -$(1)_fetched=$$($(1)_extract_dir)/.stamp_fetched +$(1)_fetched=$$($(1)_source_dir)/download-stamps/.stamp_fetched-$(1)-$($(1)_file_name) $(1)_extracted=$$($(1)_extract_dir)/.stamp_extracted $(1)_preprocessed=$$($(1)_extract_dir)/.stamp_preprocessed $(1)_cleaned=$$($(1)_extract_dir)/.stamp_cleaned @@ -150,7 +153,6 @@ endef define int_add_cmds $($(1)_fetched): - $(AT)echo Fetching $(1)... $(AT)mkdir -p $$(@D) $(SOURCES_PATH) $(AT)cd $$(@D); $(call $(1)_fetch_cmds,$(1)) $(AT)touch $$@ diff --git a/depends/packages/native_cctools.mk b/depends/packages/native_cctools.mk index ad989cb544b..1675afe7813 100644 --- a/depends/packages/native_cctools.mk +++ b/depends/packages/native_cctools.mk @@ -39,11 +39,11 @@ $(package)_ldflags+=-m32 -Wl,-rpath=\\$$$$$$$$\$$$$$$$$ORIGIN/../lib $(package)_ldflags+=-L$$(native_cctools_extract_dir)/clang+llvm-3.2-x86-linux-ubuntu-12.04/lib endef define $(package)_extract_cmds - tar --strip-components=1 -xf $(SOURCES_PATH)/$($(package)_toolchain4_file_name) && \ + tar --strip-components=1 -xf $($(package)_source_dir)/$($(package)_toolchain4_file_name) && \ ln -sf $($(package)_source) cctools2odcctools/$($(package)_file_name) && \ - ln -sf $(SOURCES_PATH)/$($(package)_ld64_file_name) cctools2odcctools/$($(package)_ld64_file_name) && \ - ln -sf $(SOURCES_PATH)/$($(package)_dyld_file_name) cctools2odcctools/$($(package)_dyld_file_name) && \ - tar xf $(SOURCES_PATH)/$($(package)_clang_file_name) && \ + ln -sf $($(package)_source_dir)/$($(package)_ld64_file_name) cctools2odcctools/$($(package)_ld64_file_name) && \ + ln -sf $($(package)_source_dir)/$($(package)_dyld_file_name) cctools2odcctools/$($(package)_dyld_file_name) && \ + tar xf $($(package)_source_dir)/$($(package)_clang_file_name) && \ mkdir -p $(SDK_PATH) sdks &&\ cd sdks; ln -sf $(OSX_SDK) MacOSX$(OSX_SDK_VERSION).sdk endef diff --git a/depends/packages/native_comparisontool.mk b/depends/packages/native_comparisontool.mk index 3d430d4306a..d1b86dc2de5 100644 --- a/depends/packages/native_comparisontool.mk +++ b/depends/packages/native_comparisontool.mk @@ -17,5 +17,5 @@ endef define $(package)_stage_cmds mkdir -p $($(package)_staging_prefix_dir)/share/$($(package)_install_dirname) && \ - mv $(SOURCES_PATH)/$($(package)_file_name) $($(package)_staging_prefix_dir)/share/$($(package)_install_dirname)/$($(package)_install_filename) + cp $($(package)_source) $($(package)_staging_prefix_dir)/share/$($(package)_install_dirname)/$($(package)_install_filename) endef diff --git a/doc/release-process.md b/doc/release-process.md index a16d4ace4a6..30f9797752d 100644 --- a/doc/release-process.md +++ b/doc/release-process.md @@ -40,7 +40,7 @@ Release Process ###fetch and build inputs: (first time, or when dependency versions change) - mkdir -p inputs; cd inputs/ + mkdir -p inputs Register and download the Apple SDK: (see OSX Readme for details) @@ -50,7 +50,15 @@ Release Process tar -C /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/ -czf MacOSX10.7.sdk.tar.gz MacOSX10.7.sdk - Build Bitcoin Core for Linux, Windows, and OS X: +###Optional: Seed the Gitian sources cache + + By default, gitian will fetch source files as needed. For offline builds, they can be fetched ahead of time: + + make -C ../bitcoin/depends download SOURCES_PATH=`pwd`/cache/common + + Only missing files will be fetched, so this is safe to re-run for each build. + +###Build Bitcoin Core for Linux, Windows, and OS X: ./bin/gbuild --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml ./bin/gsign --signer $SIGNER --release ${VERSION}-linux --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml @@ -63,7 +71,6 @@ Release Process mv build/out/bitcoin-*-unsigned.tar.gz inputs mv build/out/bitcoin-*.tar.gz build/out/bitcoin-*.dmg ../ popd -bitcoin-0.9.99-osx-unsigned.tar.gz Build output expected: 1. source tarball (bitcoin-${VERSION}.tar.gz) @@ -84,11 +91,12 @@ Commit your signature to gitian.sigs: git push # Assuming you can push to the gitian.sigs tree popd -Wait for OSX detached signature: + Wait for OSX detached signature: Once the OSX build has 3 matching signatures, Gavin will sign it with the apple App-Store key. He will then upload a detached signature to be combined with the unsigned app to create a signed binary. -Create the signed OSX binary: + Create the signed OSX binary: + pushd ./gitian-builder # Fetch the signature as instructed by Gavin cp signature.tar.gz inputs/ From 44b4c0d8a9ba215cc47c8f2d99ffa92f3ccf536f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Jan=C3=ADk?= Date: Thu, 11 Dec 2014 16:06:23 +0100 Subject: [PATCH 002/201] signrawtransaction: validate private key. Github-Pull: #5461 Rebased-From: aa768f1848b00e0fd615016598d3fb1f1da240ed --- src/rpcrawtransaction.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/rpcrawtransaction.cpp b/src/rpcrawtransaction.cpp index 8de15ff9e2f..4a1af2207a2 100644 --- a/src/rpcrawtransaction.cpp +++ b/src/rpcrawtransaction.cpp @@ -587,6 +587,8 @@ Value signrawtransaction(const Array& params, bool fHelp) if (!fGood) throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid private key"); CKey key = vchSecret.GetKey(); + if (!key.IsValid()) + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Private key outside allowed range"); tempKeystore.AddKey(key); } } From a572ff7139854127542a76eaa346c0755ecf77a0 Mon Sep 17 00:00:00 2001 From: BtcDrak Date: Sat, 13 Dec 2014 09:03:33 +0000 Subject: [PATCH 003/201] Fix download link for gitian builds Rebased-From: 164a45f57a8a7367e67a5e65b9e938844730cd87 Github-Pull: #5471 --- depends/packages/native_cdrkit.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/depends/packages/native_cdrkit.mk b/depends/packages/native_cdrkit.mk index 2cc388b4b30..cf694edb30e 100644 --- a/depends/packages/native_cdrkit.mk +++ b/depends/packages/native_cdrkit.mk @@ -1,6 +1,6 @@ package=native_cdrkit $(package)_version=1.1.11 -$(package)_download_path=http://distro.ibiblio.org/fatdog/source/c +$(package)_download_path=http://distro.ibiblio.org/fatdog/source/600/c $(package)_file_name=cdrkit-$($(package)_version).tar.bz2 $(package)_sha256_hash=b50d64c214a65b1a79afe3a964c691931a4233e2ba605d793eb85d0ac3652564 $(package)_patches=cdrkit-deterministic.patch From c3c635b3167bac056030e3c8cbeb1343a4d244f5 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Tue, 16 Dec 2014 18:50:53 +0100 Subject: [PATCH 004/201] version 0.9.99 -> 0.10.0 Bump version but keep CLIENT_VERSION_IS_RELEASE at false as this is not a release yet. --- configure.ac | 4 ++-- doc/Doxyfile | 2 +- doc/README.md | 2 +- doc/README_windows.txt | 2 +- src/clientversion.h | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/configure.ac b/configure.ac index c4c21eaf4f6..25c81ccfb44 100644 --- a/configure.ac +++ b/configure.ac @@ -1,8 +1,8 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N) AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 0) -define(_CLIENT_VERSION_MINOR, 9) -define(_CLIENT_VERSION_REVISION, 99) +define(_CLIENT_VERSION_MINOR, 10) +define(_CLIENT_VERSION_REVISION, 0) define(_CLIENT_VERSION_BUILD, 0) define(_CLIENT_VERSION_IS_RELEASE, false) define(_COPYRIGHT_YEAR, 2014) diff --git a/doc/Doxyfile b/doc/Doxyfile index e0339e652eb..09a925f938f 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -34,7 +34,7 @@ PROJECT_NAME = Bitcoin # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = 0.9.99 +PROJECT_NUMBER = 0.10.0 # 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 diff --git a/doc/README.md b/doc/README.md index d5d61738e87..4f8f8ac717b 100644 --- a/doc/README.md +++ b/doc/README.md @@ -1,4 +1,4 @@ -Bitcoin 0.9.99 BETA +Bitcoin 0.10.0 BETA ===================== Copyright (c) 2009-2014 Bitcoin Developers diff --git a/doc/README_windows.txt b/doc/README_windows.txt index 368f2b45e1f..2c8f635a528 100644 --- a/doc/README_windows.txt +++ b/doc/README_windows.txt @@ -1,4 +1,4 @@ -Bitcoin 0.9.99 BETA +Bitcoin 0.10.0 BETA Copyright (c) 2009-2014 Bitcoin Core Developers diff --git a/src/clientversion.h b/src/clientversion.h index 0a36eb80123..ff979c6cb46 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -15,8 +15,8 @@ //! These need to be macros, as clientversion.cpp's and bitcoin*-res.rc's voodoo requires it #define CLIENT_VERSION_MAJOR 0 -#define CLIENT_VERSION_MINOR 9 -#define CLIENT_VERSION_REVISION 99 +#define CLIENT_VERSION_MINOR 10 +#define CLIENT_VERSION_REVISION 0 #define CLIENT_VERSION_BUILD 0 //! Set to true for release, false for prerelease or test build From b03632a6710e9bb1f7d73e0ccd39860c591d84e9 Mon Sep 17 00:00:00 2001 From: Philip Kaufmann Date: Sun, 7 Dec 2014 12:57:11 +0100 Subject: [PATCH 005/201] add missing CAutoFile::IsNull() check in main Rebased-From: 84857e87e42e412336ea60d0f8544c1679bab827 Github-Pull: #5437 --- src/main.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main.cpp b/src/main.cpp index 9e1c41ada7c..6c39e10570f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1079,6 +1079,8 @@ bool GetTransaction(const uint256 &hash, CTransaction &txOut, uint256 &hashBlock CDiskTxPos postx; if (pblocktree->ReadTxIndex(hash, postx)) { CAutoFile file(OpenBlockFile(postx, true), SER_DISK, CLIENT_VERSION); + if (file.IsNull()) + return error("%s: OpenBlockFile failed", __func__); CBlockHeader header; try { file >> header; From 0cb8763cbbece4b25ea9e9bd756bfefd52ce23d8 Mon Sep 17 00:00:00 2001 From: Peter Todd Date: Mon, 10 Nov 2014 02:52:28 -0500 Subject: [PATCH 006/201] Check against MANDATORY flags prior to accepting to mempool Previously transactions were only tested again the STANDARD_SCRIPT_VERIFY_FLAGS prior to mempool acceptance, so any bugs in those flags that allowed actually-invalid transactions to pass would result in allowing invalid transactions into the mempool. Fortunately there is a second check in CreateNewBlock() that would prevent those transactions from being mined, resulting in an invalid block, however this could still be exploited as a DoS attack. Rebased-From: 7c041b3b91aa08a8f5863382b865a5174281ad03 --- src/main.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main.cpp b/src/main.cpp index 6c39e10570f..a3c65dbb933 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1053,6 +1053,21 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa { return error("AcceptToMemoryPool: : ConnectInputs failed %s", hash.ToString()); } + + // Check again against just the consensus-critical mandatory script + // verification flags, in case of bugs in the standard flags that cause + // transactions to pass as valid when they're actually invalid. For + // instance the STRICTENC flag was incorrectly allowing certain + // CHECKSIG NOT scripts to pass, even though they were invalid. + // + // There is a similar check in CreateNewBlock() to prevent creating + // invalid blocks, however allowing such transactions into the mempool + // can be exploited as a DoS attack. + if (!CheckInputs(tx, state, view, true, MANDATORY_SCRIPT_VERIFY_FLAGS, true)) + { + return error("AcceptToMemoryPool: : BUG! PLEASE REPORT THIS! ConnectInputs failed against MANDATORY but not STANDARD flags %s", hash.ToString()); + } + // Store transaction in memory pool.addUnchecked(hash, entry); } From ad3d208fb9eebb06e497e4ec104aeb03dab77acc Mon Sep 17 00:00:00 2001 From: Jameson Lopp Date: Sun, 21 Dec 2014 09:10:43 -0500 Subject: [PATCH 007/201] remove max orphan blocks config parameter since it is no longer functional Rebased-From: 4bc95c43871645c1d69a0d719c13b38151a3a13f --- src/init.cpp | 1 - src/main.h | 2 -- 2 files changed, 3 deletions(-) diff --git a/src/init.cpp b/src/init.cpp index 11329c16aa4..5d42786038c 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -231,7 +231,6 @@ std::string HelpMessage(HelpMessageMode mode) strUsage += " -datadir= " + _("Specify data directory") + "\n"; strUsage += " -dbcache= " + strprintf(_("Set database cache size in megabytes (%d to %d, default: %d)"), nMinDbCache, nMaxDbCache, nDefaultDbCache) + "\n"; strUsage += " -loadblock= " + _("Imports blocks from external blk000??.dat file") + " " + _("on startup") + "\n"; - strUsage += " -maxorphanblocks= " + strprintf(_("Keep at most unconnectable blocks in memory (default: %u)"), DEFAULT_MAX_ORPHAN_BLOCKS) + "\n"; strUsage += " -maxorphantx= " + strprintf(_("Keep at most unconnectable transactions in memory (default: %u)"), DEFAULT_MAX_ORPHAN_TRANSACTIONS) + "\n"; strUsage += " -par= " + strprintf(_("Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d)"), -(int)boost::thread::hardware_concurrency(), MAX_SCRIPTCHECK_THREADS, DEFAULT_SCRIPTCHECK_THREADS) + "\n"; #ifndef WIN32 diff --git a/src/main.h b/src/main.h index 8f0378647d1..a62bebc49d3 100644 --- a/src/main.h +++ b/src/main.h @@ -64,8 +64,6 @@ static const unsigned int MAX_P2SH_SIGOPS = 15; static const unsigned int MAX_TX_SIGOPS = MAX_BLOCK_SIGOPS/5; /** Default for -maxorphantx, maximum number of orphan transactions kept in memory */ static const unsigned int DEFAULT_MAX_ORPHAN_TRANSACTIONS = 100; -/** Default for -maxorphanblocks, maximum number of orphan blocks kept in memory */ -static const unsigned int DEFAULT_MAX_ORPHAN_BLOCKS = 750; /** The maximum size of a blk?????.dat file (since 0.8) */ static const unsigned int MAX_BLOCKFILE_SIZE = 0x8000000; // 128 MiB /** The pre-allocation chunk size for blk?????.dat files (since 0.8) */ From 84462625975bd1a34dadc47c062a9999c6000203 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Thu, 11 Dec 2014 13:35:14 +0100 Subject: [PATCH 008/201] Reject headers that build on an invalid parent Rebased-From: 34970223472c9e83689a1c710eebc7c16f152b02 Github-Pull: #5459 --- src/main.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main.cpp b/src/main.cpp index a3c65dbb933..4a0008726e4 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -442,6 +442,10 @@ void FindNextBlocksToDownload(NodeId nodeid, unsigned int count, std::vectorIsValid(BLOCK_VALID_TREE)) { + // We consider the chain that this peer is on invalid. + return; + } if (pindex->nStatus & BLOCK_HAVE_DATA) { if (pindex->nChainTx) state->pindexLastCommonBlock = pindex; @@ -2559,6 +2563,8 @@ bool AcceptBlockHeader(const CBlockHeader& block, CValidationState& state, CBloc if (mi == mapBlockIndex.end()) return state.DoS(10, error("%s : prev block not found", __func__), 0, "bad-prevblk"); pindexPrev = (*mi).second; + if (pindexPrev->nStatus & BLOCK_FAILED_MASK) + return state.DoS(100, error("%s : prev block invalid", __func__), REJECT_INVALID, "bad-prevblk"); } if (!ContextualCheckBlockHeader(block, state, pindexPrev)) From 11855c1f990a4a66f55de60a30a8898ccbf766ec Mon Sep 17 00:00:00 2001 From: Gregory Maxwell Date: Tue, 16 Dec 2014 01:43:40 -0800 Subject: [PATCH 009/201] Enforce minRelayTxFee on wallet created tx and add a maxtxfee option. Previously the minRelayTxFee was only enforced on user specified values. It was possible for smartfee to produce a fee below minRelayTxFee which would just result in the transaction getting stuck because it can't be relayed. This also introduces a maxtxfee option which sets an absolute maximum for any fee created by the wallet, with an intention of increasing user confidence that the automatic fees won't burn them. This was frequently a concern even before smartfees. If the configured fee policy won't even allow the wallet to meet the relay fee the transaction creation may be aborted. Rebased-From: aa279d613152e87ea25edfdf76c86779c0632f18 Github-Pull: #5485 --- src/init.cpp | 15 +++++++++++++++ src/wallet.cpp | 47 ++++++++++++++++++++++++++++------------------- src/wallet.h | 5 +++++ 3 files changed, 48 insertions(+), 19 deletions(-) diff --git a/src/init.cpp b/src/init.cpp index 5d42786038c..3cdd42e2be3 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -287,6 +287,7 @@ std::string HelpMessage(HelpMessageMode mode) strUsage += " -sendfreetransactions " + strprintf(_("Send transactions as zero-fee transactions if possible (default: %u)"), 0) + "\n"; strUsage += " -spendzeroconfchange " + strprintf(_("Spend unconfirmed change when sending transactions (default: %u)"), 1) + "\n"; strUsage += " -txconfirmtarget= " + strprintf(_("If paytxfee is not set, include enough fee so transactions are confirmed on average within n blocks (default: %u)"), 1) + "\n"; + strUsage += " -maxtxfee= " + strprintf(_("Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s)"), FormatMoney(maxTxFee)) + "\n"; strUsage += " -upgradewallet " + _("Upgrade wallet to latest format") + " " + _("on startup") + "\n"; strUsage += " -wallet= " + _("Specify wallet file (within data directory)") + " " + strprintf(_("(default: %s)"), "wallet.dat") + "\n"; strUsage += " -walletnotify= " + _("Execute command when a wallet transaction changes (%s in cmd is replaced by TxID)") + "\n"; @@ -696,6 +697,20 @@ bool AppInit2(boost::thread_group& threadGroup) mapArgs["-paytxfee"], ::minRelayTxFee.ToString())); } } + if (mapArgs.count("-maxtxfee")) + { + CAmount nMaxFee = 0; + if (!ParseMoney(mapArgs["-maxtxfee"], nMaxFee)) + return InitError(strprintf(_("Invalid amount for -maxtxfee=: '%s'"), mapArgs["-maptxfee"])); + if (nMaxFee > nHighTransactionMaxFeeWarning) + InitWarning(_("Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction.")); + maxTxFee = nMaxFee; + if (CFeeRate(maxTxFee, 1000) < ::minRelayTxFee) + { + return InitError(strprintf(_("Invalid amount for -maxtxfee=: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)"), + mapArgs["-maxtxfee"], ::minRelayTxFee.ToString())); + } + } nTxConfirmTarget = GetArg("-txconfirmtarget", 1); bSpendZeroConfChange = GetArg("-spendzeroconfchange", true); fSendFreeTransactions = GetArg("-sendfreetransactions", false); diff --git a/src/wallet.cpp b/src/wallet.cpp index 32a64daac0c..dd87fab44b1 100644 --- a/src/wallet.cpp +++ b/src/wallet.cpp @@ -26,6 +26,7 @@ using namespace std; * Settings */ CFeeRate payTxFee(DEFAULT_TRANSACTION_FEE); +CAmount maxTxFee = DEFAULT_TRANSACTION_MAXFEE; unsigned int nTxConfirmTarget = 1; bool bSpendZeroConfChange = true; bool fSendFreeTransactions = false; @@ -1499,27 +1500,32 @@ bool CWallet::CreateTransaction(const vector >& vecSend, } dPriority = wtxNew.ComputePriority(dPriority, nBytes); - CAmount nFeeNeeded = GetMinimumFee(nBytes, nTxConfirmTarget, mempool); + // Can we complete this as a free transaction? + if (fSendFreeTransactions && nBytes <= MAX_FREE_TRANSACTION_CREATE_SIZE) + { + // Not enough fee: enough priority? + double dPriorityNeeded = mempool.estimatePriority(nTxConfirmTarget); + // Not enough mempool history to estimate: use hard-coded AllowFree. + if (dPriorityNeeded <= 0 && AllowFree(dPriority)) + break; + + // Small enough, and priority high enough, to send for free + if (dPriorityNeeded > 0 && dPriority >= dPriorityNeeded) + break; + } - if (nFeeRet >= nFeeNeeded) - break; // Done, enough fee included. + CAmount nFeeNeeded = GetMinimumFee(nBytes, nTxConfirmTarget, mempool); - // Too big to send for free? Include more fee and try again: - if (!fSendFreeTransactions || nBytes > MAX_FREE_TRANSACTION_CREATE_SIZE) + // If we made it here and we aren't even able to meet the relay fee on the next pass, give up + // because we must be at the maximum allowed fee. + if (nFeeNeeded < ::minRelayTxFee.GetFee(nBytes)) { - nFeeRet = nFeeNeeded; - continue; + strFailReason = _("Transaction too large for fee policy"); + return false; } - // Not enough fee: enough priority? - double dPriorityNeeded = mempool.estimatePriority(nTxConfirmTarget); - // Not enough mempool history to estimate: use hard-coded AllowFree. - if (dPriorityNeeded <= 0 && AllowFree(dPriority)) - break; - - // Small enough, and priority high enough, to send for free - if (dPriorityNeeded > 0 && dPriority >= dPriorityNeeded) - break; + if (nFeeRet >= nFeeNeeded) + break; // Done, enough fee included. // Include more fee and try again. nFeeRet = nFeeNeeded; @@ -1591,9 +1597,6 @@ CAmount CWallet::GetMinimumFee(unsigned int nTxBytes, unsigned int nConfirmTarge { // payTxFee is user-set "I want to pay this much" CAmount nFeeNeeded = payTxFee.GetFee(nTxBytes); - // prevent user from paying a non-sense fee (like 1 satoshi): 0 < fee < minRelayFee - if (nFeeNeeded > 0 && nFeeNeeded < ::minRelayTxFee.GetFee(nTxBytes)) - nFeeNeeded = ::minRelayTxFee.GetFee(nTxBytes); // user selected total at least (default=true) if (fPayAtLeastCustomFee && nFeeNeeded > 0 && nFeeNeeded < payTxFee.GetFeePerK()) nFeeNeeded = payTxFee.GetFeePerK(); @@ -1604,6 +1607,12 @@ CAmount CWallet::GetMinimumFee(unsigned int nTxBytes, unsigned int nConfirmTarge // back to a hard-coded fee if (nFeeNeeded == 0) nFeeNeeded = minTxFee.GetFee(nTxBytes); + // prevent user from paying a non-sense fee (like 1 satoshi): 0 < fee < minRelayFee + if (nFeeNeeded < ::minRelayTxFee.GetFee(nTxBytes)) + nFeeNeeded = ::minRelayTxFee.GetFee(nTxBytes); + // But always obey the maximum + if (nFeeNeeded > maxTxFee) + nFeeNeeded = maxTxFee; return nFeeNeeded; } diff --git a/src/wallet.h b/src/wallet.h index 2dd2146e8cf..058107edf17 100644 --- a/src/wallet.h +++ b/src/wallet.h @@ -30,6 +30,7 @@ * Settings */ extern CFeeRate payTxFee; +extern CAmount maxTxFee; extern unsigned int nTxConfirmTarget; extern bool bSpendZeroConfChange; extern bool fSendFreeTransactions; @@ -39,6 +40,10 @@ extern bool fPayAtLeastCustomFee; static const CAmount DEFAULT_TRANSACTION_FEE = 0; //! -paytxfee will warn if called with a higher fee than this amount (in satoshis) per KB static const CAmount nHighTransactionFeeWarning = 0.01 * COIN; +//! -maxtxfee default +static const CAmount DEFAULT_TRANSACTION_MAXFEE = 0.1 * COIN; +//! -maxtxfee will warn if called with a higher fee than this amount (in satoshis) +static const CAmount nHighTransactionMaxFeeWarning = 100 * nHighTransactionFeeWarning; //! Largest (in bytes) free transaction we're willing to create static const unsigned int MAX_FREE_TRANSACTION_CREATE_SIZE = 1000; From 15ad0b54fab09d31ab7171b83ef58fa4c5f4aea9 Mon Sep 17 00:00:00 2001 From: Gregory Maxwell Date: Mon, 15 Dec 2014 14:38:25 -0800 Subject: [PATCH 010/201] Apply AreSane() checks to the fees from the network. 'Sane' was already defined by this code as: fee.GetFeePerK() > minRelayFee.GetFeePerK() * 10000 But sanity was only enforced for data loaded from disk. Note that this is a pretty expansive definition of 'sane': A 10 BTC fee is still passes the test if its on a 100kb transaction. This prevents a single insane fee on the network from making us reject our stored fee data at start. We still may reject valid saved fee state if minRelayFee is changed between executions. This also reduces the risk and limits the damage from a cascading failure where one party pays a bunch of insane fees which cases others to pay insane fees. Rebased-From: 64849306905e625fd44d297e8d58c3e1dd98cb90 Github-Pull: #5481 --- src/txmempool.cpp | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/txmempool.cpp b/src/txmempool.cpp index 840eb536baa..dcdf5653fe8 100644 --- a/src/txmempool.cpp +++ b/src/txmempool.cpp @@ -91,22 +91,32 @@ class CBlockAverage * Used as belt-and-suspenders check when reading to detect * file corruption */ - bool AreSane(const std::vector& vecFee, const CFeeRate& minRelayFee) + static bool AreSane(const CFeeRate fee, const CFeeRate& minRelayFee) + { + if (fee < CFeeRate(0)) + return false; + if (fee.GetFeePerK() > minRelayFee.GetFeePerK() * 10000) + return false; + return true; + } + static bool AreSane(const std::vector& vecFee, const CFeeRate& minRelayFee) { BOOST_FOREACH(CFeeRate fee, vecFee) { - if (fee < CFeeRate(0)) - return false; - if (fee.GetFeePerK() > minRelayFee.GetFeePerK() * 10000) + if (!AreSane(fee, minRelayFee)) return false; } return true; } - bool AreSane(const std::vector vecPriority) + static bool AreSane(const double priority) + { + return priority >= 0; + } + static bool AreSane(const std::vector vecPriority) { BOOST_FOREACH(double priority, vecPriority) { - if (priority < 0) + if (!AreSane(priority)) return false; } return true; @@ -167,12 +177,12 @@ class CMinerPolicyEstimator bool sufficientFee = (feeRate > minRelayFee); bool sufficientPriority = AllowFree(dPriority); const char* assignedTo = "unassigned"; - if (sufficientFee && !sufficientPriority) + if (sufficientFee && !sufficientPriority && CBlockAverage::AreSane(feeRate, minRelayFee)) { history[nBlocksTruncated].RecordFee(feeRate); assignedTo = "fee"; } - else if (sufficientPriority && !sufficientFee) + else if (sufficientPriority && !sufficientFee && CBlockAverage::AreSane(dPriority)) { history[nBlocksTruncated].RecordPriority(dPriority); assignedTo = "priority"; From d10a9015ad324d03664ccbccfd23953733c6dc59 Mon Sep 17 00:00:00 2001 From: Adam Weiss Date: Thu, 18 Dec 2014 18:28:29 -0500 Subject: [PATCH 011/201] DOS: Respect max per-peer blocks in flight limit Don't allow immediate inv driven block downloads if a peer already has MAX_BLOCKS_IN_TRANSIT_PER_PEER active downloads. Prevents bogus inv spam from blowing up block transfer tracking data structures. Rebased-From: c90770430d7c1eb7ece2d4ddb987b0f2210fd86f Github-Pull: #5507 --- src/main.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 4a0008726e4..69fb5e25884 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3641,7 +3641,9 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, // doing this will result in the received block being rejected as an orphan in case it is // not a direct successor. pfrom->PushMessage("getheaders", chainActive.GetLocator(pindexBestHeader), inv.hash); - if (chainActive.Tip()->GetBlockTime() > GetAdjustedTime() - Params().TargetSpacing() * 20) { + CNodeState *nodestate = State(pfrom->GetId()); + if (chainActive.Tip()->GetBlockTime() > GetAdjustedTime() - Params().TargetSpacing() * 20 && + nodestate->nBlocksInFlight < MAX_BLOCKS_IN_TRANSIT_PER_PEER) { vToFetch.push_back(inv); // Mark block as in flight already, even though the actual "getdata" message only goes out // later (within the same cs_main lock, though). From 3a88ba07944f25349701f13371ca6e5f188a8fa4 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Tue, 23 Dec 2014 12:58:24 +0100 Subject: [PATCH 012/201] qt: periodic language update --- src/qt/locale/bitcoin_ca.ts | 358 +++++++++++++++++++++++++++++++++++++++-- src/qt/locale/bitcoin_ca_ES.ts | 358 +++++++++++++++++++++++++++++++++++++++-- src/qt/locale/bitcoin_es.ts | 8 + src/qt/locale/bitcoin_it.ts | 20 +++ src/qt/locale/bitcoin_pt_BR.ts | 8 + src/qt/locale/bitcoin_pt_PT.ts | 44 ++++- src/qt/locale/bitcoin_zh_TW.ts | 64 +++++++- 7 files changed, 838 insertions(+), 22 deletions(-) diff --git a/src/qt/locale/bitcoin_ca.ts b/src/qt/locale/bitcoin_ca.ts index 8f06ac3aa70..3e87383c503 100644 --- a/src/qt/locale/bitcoin_ca.ts +++ b/src/qt/locale/bitcoin_ca.ts @@ -478,6 +478,10 @@ Up to date Al dia + + Processed %n blocks of transaction history. + S'ha processat %n bloc de l'historial de transacció.S'han processat %n blocs de l'historial de transacció. + Catching up... S'està posant al dia ... @@ -517,6 +521,10 @@ Address: %4 CoinControlDialog + Coin Selection + Selecció de moneda + + Quantity: Quantitat: @@ -534,7 +542,7 @@ Address: %4 Fee: - Quota: + Comissió Dust: @@ -542,7 +550,7 @@ Address: %4 After Fee: - Quota posterior: + Comissió posterior: Change: @@ -565,6 +573,14 @@ Address: %4 Quantitat + Received with label + Rebut amb l'etiqueta + + + Received with address + Rebut amb l'adreça + + Date Data @@ -694,7 +710,7 @@ Address: %4 This means a fee of at least %1 per kB is required. - Això comporta una comissi d'almenys %1 per kB. + Això comporta una comissió d'almenys %1 per kB. Can vary +/- 1 byte per input. @@ -729,7 +745,7 @@ Address: %4 EditAddressDialog Edit Address - Editar Adreça + Edita l'adreça &Label @@ -839,7 +855,7 @@ Address: %4 Set language, for example "de_DE" (default: system locale) - Defineix un idioma, per exemple "de_DE" (per defecte: preferències locals de sistema) + Defineix un idioma, per exemple «de_DE» (per defecte: preferències locals de sistema) Start minimized @@ -896,7 +912,15 @@ Address: %4 Error Error - + + %n GB of free space available + %n GB d'espai lliure disponible%n GB d'espai lliure disponible + + + (of %n GB needed) + (de %n GB necessari)(de %n GB necessaris) + + OpenURIDialog @@ -1019,6 +1043,14 @@ Address: %4 Port obert amb &UPnP + Connect to the Bitcoin network through a SOCKS5 proxy. + Connecta a la xarxa Bitcoin a través d'un proxy SOCKS5. + + + &Connect through SOCKS5 proxy (default proxy): + &Connecta a través d'un proxy SOCKS5 (proxy per defecte): + + Proxy &IP: &IP del proxy: @@ -1150,6 +1182,10 @@ Address: %4 Balanç minat que encara no ha madurat + Balances + Balances + + Total: Total: @@ -1162,6 +1198,14 @@ Address: %4 El vostre balanç actual en adreces de només lectura + Spendable: + Que es pot gastar: + + + Recent transactions + Transaccions recents + + Unconfirmed transactions to watch-only addresses Transaccions sense confirmar a adreces de només lectura @@ -1782,7 +1826,7 @@ Address: %4 After Fee: - Quota posterior: + Comissió posterior: Change: @@ -1797,6 +1841,78 @@ Address: %4 Personalitza l'adreça de canvi + Transaction Fee: + Comissió de transacció + + + Choose... + Tria... + + + collapse fee-settings + redueix els paràmetres de comissió + + + Minimize + Minimitza + + + 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. + Si la comissió personalitzada es defineix a 1000 satoshis i la transacció és de només 250 bytes, llavors «per kilobyte» només es paguen 250 satoshis en una comissió, mentre que amb la de «com a mínim» es pagarien 1000 satoshis. Per a transaccions superiors al kilobyte, en tots dos casos es paga per kilobyte. + + + per kilobyte + per kilobyte + + + 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. + Si la comissió personalitzada es defineix a 1000 satoshis i la transacció és de només 250 bytes, llavors «per kilobyte» només es paguen 250 satoshis en una comissió, mentre que amb la de «total com a mínim» es pagarien 1000 satoshis. Per a transaccions superiors al kilobyte, en tots dos casos es paga per kilobyte. + + + total at least + total com a mínim + + + 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. + No hi ha cap problema en pagar només la comissió mínima sempre que hi hagi menys volum de transacció que espai en els blocs. Però tingueu present que això pot acabar en una transacció que mai es confirmi una vegada hi hagi més demanda de transaccions de bitcoins que la xarxa pugui processar. + + + (read the tooltip) + (llegiu l'indicador de funció) + + + Recommended: + Recomanada: + + + Custom: + Personalitzada: + + + (Smart fee not initialized yet. This usually takes a few blocks...) + (No s'ha inicialitzat encara la comissió intel·ligent. Normalment pren uns pocs blocs...) + + + Confirmation time: + Temps de confirmació: + + + normal + normal + + + fast + ràpid + + + Send as zero-fee transaction if possible + Envia com a transacció de comissió zero si és possible + + + (confirmation may take longer) + (la confirmació pot trigar més temps) + + Send to multiple recipients at once Envia a múltiples destinataris al mateix temps @@ -1846,7 +1962,7 @@ Address: %4 Copy fee - Copia la comissi + Copia la comissió Copy after fee @@ -1886,7 +2002,7 @@ Address: %4 The total exceeds your balance when the %1 transaction fee is included. - El total excedeix el teu balanç quan s'afegeix la comisió a la transacció %1. + El total excedeix el teu balanç quan s'afegeix la comissió a la transacció %1. Duplicate address found, can only send to each address once per send operation. @@ -1901,6 +2017,18 @@ Address: %4 S'ha rebutjat la transacció! Això pot passar si alguna de les monedes del vostre moneder ja s'han gastat; per exemple, si heu fet servir una còpia de seguretat del fitxer wallet.dat i s'haguessin gastat monedes de la còpia però sense marcar-les-hi com a gastades. + A fee higher than %1 is considered an insanely high fee. + Una comissió superior a %1 es considera una comissió excessiva. + + + Pay only the minimum fee of %1 + Paga només la comissió mínima de %1 + + + Estimated to begin confirmation within %1 block(s). + Estimat per a començar la confirmació en %1 bloc(s). + + Warning: Invalid Bitcoin address Avís: adreça Bitcoin no vàlida @@ -2429,6 +2557,10 @@ Address: %4 Tipus de transacció. + Whether or not a watch-only address is involved in this transaction. + Si està implicada o no una adreça només de lectura en la transacció. + + Destination address of transaction. Adreça del destinatari de la transacció. @@ -2524,6 +2656,10 @@ Address: %4 Exporta l'historial de transacció + Watch-only + Només de lectura + + Exporting Failed L'exportació ha fallat @@ -2698,6 +2834,10 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Elimina totes les transaccions del moneder i només recupera aquelles de la cadena de blocs a través de -rescan a l'inici + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + Distribuït sota llicència de programari MIT. Vegeu el fitxer acompanyant COPYING o <http://www.opensource.org/licenses/mit-license.php>. + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. Entra en el mode de proves de regressió, que utilitza una cadena especial en què els blocs poden resoldre's al moment. @@ -2750,6 +2890,10 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Avís: el fitxer wallet.dat és corrupte, dades rescatades! L'arxiu wallet.dat original ha estat desat com wallet.{estampa_temporal}.bak al directori %s; si el teu balanç o transaccions son incorrectes hauries de restaurar-lo de un backup. + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + Afegeix a la llista blanca els iguals que es connecten de la màscara de xarxa o adreça IP donada. Es pot especificar moltes vegades. + + (default: 1) (per defecte: 1) @@ -2810,6 +2954,10 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Error en obrir la base de dades de blocs + Error: A fatal internal error occured, see debug.log for details + Error: s'ha produït un error intern fatal. Consulteu debug.log per a més detalls + + Error: Disk space is low! Error: Espai al disc baix! @@ -2842,6 +2990,10 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com No hi ha suficient descriptors de fitxers disponibles. + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + Només connecta als nodes de la xarxa <net> (ipv4, ipv6 o onion) + + Rebuild block chain index from current blk000??.dat files Reconstrueix l'índex de la cadena de blocs dels fitxers actuals blk000??.dat @@ -2862,6 +3014,10 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Això es així per a eines de proves de regressió per al desenvolupament d'aplicacions. + Use UPnP to map the listening port (default: %u) + Utilitza UPnP per a mapejar el port d'escolta (per defecte: %u) + + Verifying blocks... S'estan verificant els blocs... @@ -2902,6 +3058,10 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com No es pot obtenir un bloqueig del directori de dades %s. El Bitcoin Core probablement ja s'estigui executant. + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + Limita contínuament la freqüència de les transaccions gratuïtes a <n>*1000 bytes per minut (per defecte: %u) + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) Crea fitxers nous amb els permisos per defecte del sistema, en comptes de l'umask 077 (només efectiu amb la funcionalitat de moneder inhabilitada) @@ -2926,6 +3086,10 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Comissions (en BTC/Kb) inferiors a això es consideren de comissió zero per a la creació de la transacció (per defecte: %s) + Maximum size of data in data carrier transactions we relay and mine (default: %u) + Mida màxima de les dades en les transaccions de l'operador en què confiem i en les meves (per defecte: %u) + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) Consulta a adreces d'iguals a través de DNS, si es troba baix en adreces (per defecte: 1 a menys que -connect) @@ -2934,6 +3098,10 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Defineix la mida màxima de transaccions d'alta prioritat / baixa comissió en bytes (per defecte: %d) + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + Defineix el nombre de fils per a la generació de moneda si està habilitat (-1 = tots els nuclis, per defecte: %d) + + 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. Aquest producte inclou programari desenvolupat pel projecte OpenSSL per a ús a l'OpenSSL Toolkit <https://www.openssl.org/> i programari criptogràfic escrit per Eric Young i programari UPnP escrit per Thomas Bernard. @@ -3002,6 +3170,10 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Manté com a màxim <n> blocs no connectables en memòria (per defecte: %u) + Keep at most <n> unconnectable transactions in memory (default: %u) + Manté com a màxim <n> transaccions no connectables en memòria (per defecte: %u) + + Need to specify a port with -whitebind: '%s' Cal especificar un port amb -whitebind: «%s» @@ -3034,6 +3206,10 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Envia informació de traça/depuració a la consola en comptes del fitxer debug.log + Send transactions as zero-fee transactions if possible (default: %u) + Envia les transaccions com a transaccions de comissió zero sempre que sigui possible (per defecte: %u) + + Show all debugging options (usage: --help -help-debug) Mostra totes les opcions de depuració (ús: --help --help-debug) @@ -3142,14 +3318,178 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Error en carregar wallet.dat: Moneder corrupte + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = manté les metadades de les tx, p. ex., propietari del compte i informació de sol·licitud del pagament, 2 = prescindeix de les metadades de les tx) + + + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + Buida l'activitat de la base de dades de la memòria disponible al registre del disc cada <n> megabytes (per defecte: %u) + + + How thorough the block verification of -checkblocks is (0-4, default: %u) + Com d'exhaustiva és la verificació de blocs del -checkblocks (0-4, per defecte: %u) + + + If paytxfee is not set, include enough fee so transactions are confirmed on average within n blocks (default: %u) + Si no es defineix una comissió de pagament de transacció (paytxfee), inclogueu suficient comissió per tal que les transaccions puguin confirmar-se cada n blocs com a mitja (per defecte: %u) + + + Log transaction priority and fee per kB when mining blocks (default: %u) + Enregistreu la prioritat de la transacció i la comissió per kB en minar blocs (per defecte: %u) + + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + Manté un índex complet de transaccions, utilitzat per la crida rpc getrawtransaction (per defecte: %u) + + + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + Nombre de segons necessaris perquè els iguals de comportament qüestionable puguin tornar a connectar-se (per defecte: %u) + + + Output debugging information (default: %u, supplying <category> is optional) + Informació de sortida de la depuració (per defecte: %u, proporcionar <category> és opcional) + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + Utilitza un proxy SOCKS4 apart per a arribar als iguals a través de serveis ocults de Tor (per defecte: %s) + + + (default: %s) + (per defecte: %s) + + + Acceptable ciphers (default: %s) + Xifrats acceptables (per defecte: %s) + + + Always query for peer addresses via DNS lookup (default: %u) + Demana sempre les adreces dels iguals a través de consultes DNS (per defecte: %u) + + + Disable safemode, override a real safe mode event (default: %u) + Inhabilita el mode segur, sobreescriu un esdeveniment de mode segur real (per defecte: %u) + + Error loading wallet.dat Error en carregar wallet.dat + Force safe mode (default: %u) + Força el mode segur (per defecte: %u) + + + Generate coins (default: %u) + Genera monedes (per defecte: %u) + + + How many blocks to check at startup (default: %u, 0 = all) + Quants blocs per comprovar a l'inici (per defecte: %u, 0 = tots) + + + Include IP addresses in debug output (default: %u) + Inclou l'adreça IP a la sortida de depuració (per defecte: %u) + + Invalid -proxy address: '%s' Adreça -proxy invalida: '%s' + Limit size of signature cache to <n> entries (default: %u) + Limita la mida de la cau de signatura a <n> entrades (per defecte: %u) + + + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + Escolta les connexions JSON-RPC en <port> (per defecte: %u o testnet: %u) + + + Listen for connections on <port> (default: %u or testnet: %u) + Escolta les connexions en <port> (per defecte: %u o testnet: %u) + + + Maintain at most <n> connections to peers (default: %u) + Manté com a màxim <n> connexions a iguals (per defecte: %u) + + + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + Memòria intermèdia màxima de recepció per connexió, <n>*1000 bytes (per defecte: %u) + + + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + Memòria intermèdia màxima d'enviament per connexió, <n>*1000 bytes (per defecte: %u) + + + Only accept block chain matching built-in checkpoints (default: %u) + Només accepta els punts de control integrats que coincideixen amb la cadena de blocs (per defecte: %u) + + + Prepend debug output with timestamp (default: %u) + Posa davant de la sortida de depuració una marca horària (per defecte: %u) + + + Print block tree on startup (default: %u) + Imprimeix l'arbre de blocs a l'inici (per defecte: %u) + + + Relay and mine data carrier transactions (default: %u) + Retransmet i mina les transaccions de l'operador (per defecte: %u) + + + Relay non-P2SH multisig (default: %u) + Retransmet multisig no P2SH (per defecte: %u) + + + Run a thread to flush wallet periodically (default: %u) + Executa un fil per buidar el moneder periòdicament (per defecte: %u) + + + Server certificate file (default: %s) + Fitxer de certificat del servidor (per defecte: %s) + + + Server private key (default: %s) + Clau privada del servidor (per defecte: %s) + + + Set key pool size to <n> (default: %u) + Defineix la mida clau disponible a <n> (per defecte: %u) + + + Set minimum block size in bytes (default: %u) + Defineix la mida de bloc mínima en bytes (per defecte: %u) + + + Set the number of threads to service RPC calls (default: %d) + Defineix el nombre de fils a crides de servei RPC (per defecte: %d) + + + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + Defineix el senyalador DB_PRIVATE en l'entorn db del moneder (per defecte: %u) + + + Specify configuration file (default: %s) + Especifica el fitxer de configuració (per defecte: %s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + Especifica el temps d'espera de la connexió en milisegons (mínim: 1, per defecte: %d) + + + Specify pid file (default: %s) + Especifica el fitxer pid (per defecte: %s) + + + Spend unconfirmed change when sending transactions (default: %u) + Gasta el canvi no confirmat en enviar les transaccions (per defecte: %u) + + + Stop running after importing blocks from disk (default: %u) + Atura l'execució després d'importar blocs del disc (per defecte: %u) + + + Threshold for disconnecting misbehaving peers (default: %u) + Llindar per a desconnectar els iguals de comportament qüestionable (per defecte: %u) + + Unknown network specified in -onlynet: '%s' Xarxa desconeguda especificada a -onlynet: '%s' diff --git a/src/qt/locale/bitcoin_ca_ES.ts b/src/qt/locale/bitcoin_ca_ES.ts index 60c6fa30f4c..0004d6da6f5 100644 --- a/src/qt/locale/bitcoin_ca_ES.ts +++ b/src/qt/locale/bitcoin_ca_ES.ts @@ -478,6 +478,10 @@ Up to date Al dia + + Processed %n blocks of transaction history. + S'ha processat %n bloc de l'historial de transacció.S'han processat %n blocs de l'historial de transacció. + Catching up... S'està posant al dia ... @@ -517,6 +521,10 @@ Address: %4 CoinControlDialog + Coin Selection + Selecció de moneda + + Quantity: Quantitat: @@ -534,7 +542,7 @@ Address: %4 Fee: - Quota: + Comissió Dust: @@ -542,7 +550,7 @@ Address: %4 After Fee: - Quota posterior: + Comissió posterior: Change: @@ -565,6 +573,14 @@ Address: %4 Quantitat + Received with label + Rebut amb l'etiqueta + + + Received with address + Rebut amb l'adreça + + Date Data @@ -694,7 +710,7 @@ Address: %4 This means a fee of at least %1 per kB is required. - Això comporta una comissi d'almenys %1 per kB. + Això comporta una comissió d'almenys %1 per kB. Can vary +/- 1 byte per input. @@ -729,7 +745,7 @@ Address: %4 EditAddressDialog Edit Address - Editar Adreça + Edita l'adreça &Label @@ -839,7 +855,7 @@ Address: %4 Set language, for example "de_DE" (default: system locale) - Defineix un idioma, per exemple "de_DE" (per defecte: preferències locals de sistema) + Defineix un idioma, per exemple «de_DE» (per defecte: preferències locals de sistema) Start minimized @@ -896,7 +912,15 @@ Address: %4 Error Error - + + %n GB of free space available + %n GB d'espai lliure disponible%n GB d'espai lliure disponible + + + (of %n GB needed) + (de %n GB necessari)(de %n GB necessaris) + + OpenURIDialog @@ -1019,6 +1043,14 @@ Address: %4 Port obert amb &UPnP + Connect to the Bitcoin network through a SOCKS5 proxy. + Connecta a la xarxa Bitcoin a través d'un proxy SOCKS5. + + + &Connect through SOCKS5 proxy (default proxy): + &Connecta a través d'un proxy SOCKS5 (proxy per defecte): + + Proxy &IP: &IP del proxy: @@ -1150,6 +1182,10 @@ Address: %4 Balanç minat que encara no ha madurat + Balances + Balances + + Total: Total: @@ -1162,6 +1198,14 @@ Address: %4 El vostre balanç actual en adreces de només lectura + Spendable: + Que es pot gastar: + + + Recent transactions + Transaccions recents + + Unconfirmed transactions to watch-only addresses Transaccions sense confirmar a adreces de només lectura @@ -1782,7 +1826,7 @@ Address: %4 After Fee: - Quota posterior: + Comissió posterior: Change: @@ -1797,6 +1841,78 @@ Address: %4 Personalitza l'adreça de canvi + Transaction Fee: + Comissió de transacció + + + Choose... + Tria... + + + collapse fee-settings + redueix els paràmetres de comissió + + + Minimize + Minimitza + + + 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. + Si la comissió personalitzada es defineix a 1000 satoshis i la transacció és de només 250 bytes, llavors «per kilobyte» només es paguen 250 satoshis en una comissió, mentre que amb la de «com a mínim» es pagarien 1000 satoshis. Per a transaccions superiors al kilobyte, en tots dos casos es paga per kilobyte. + + + per kilobyte + per kilobyte + + + 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. + Si la comissió personalitzada es defineix a 1000 satoshis i la transacció és de només 250 bytes, llavors «per kilobyte» només es paguen 250 satoshis en una comissió, mentre que amb la de «total com a mínim» es pagarien 1000 satoshis. Per a transaccions superiors al kilobyte, en tots dos casos es paga per kilobyte. + + + total at least + total com a mínim + + + 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. + No hi ha cap problema en pagar només la comissió mínima sempre que hi hagi menys volum de transacció que espai en els blocs. Però tingueu present que això pot acabar en una transacció que mai es confirmi una vegada hi hagi més demanda de transaccions de bitcoins que la xarxa pugui processar. + + + (read the tooltip) + (llegiu l'indicador de funció) + + + Recommended: + Recomanada: + + + Custom: + Personalitzada: + + + (Smart fee not initialized yet. This usually takes a few blocks...) + (No s'ha inicialitzat encara la comissió intel·ligent. Normalment pren uns pocs blocs...) + + + Confirmation time: + Temps de confirmació: + + + normal + normal + + + fast + ràpid + + + Send as zero-fee transaction if possible + Envia com a transacció de comissió zero si és possible + + + (confirmation may take longer) + (la confirmació pot trigar més temps) + + Send to multiple recipients at once Envia a múltiples destinataris al mateix temps @@ -1846,7 +1962,7 @@ Address: %4 Copy fee - Copia la comissi + Copia la comissió Copy after fee @@ -1886,7 +2002,7 @@ Address: %4 The total exceeds your balance when the %1 transaction fee is included. - El total excedeix el teu balanç quan s'afegeix la comisió a la transacció %1. + El total excedeix el teu balanç quan s'afegeix la comissió a la transacció %1. Duplicate address found, can only send to each address once per send operation. @@ -1901,6 +2017,18 @@ Address: %4 S'ha rebutjat la transacció! Això pot passar si alguna de les monedes del vostre moneder ja s'han gastat; per exemple, si heu fet servir una còpia de seguretat del fitxer wallet.dat i s'haguessin gastat monedes de la còpia però sense marcar-les-hi com a gastades. + A fee higher than %1 is considered an insanely high fee. + Una comissió superior a %1 es considera una comissió excessiva. + + + Pay only the minimum fee of %1 + Paga només la comissió mínima de %1 + + + Estimated to begin confirmation within %1 block(s). + Estimat per a començar la confirmació en %1 bloc(s). + + Warning: Invalid Bitcoin address Avís: adreça Bitcoin no vàlida @@ -2429,6 +2557,10 @@ Address: %4 Tipus de transacció. + Whether or not a watch-only address is involved in this transaction. + Si està implicada o no una adreça només de lectura en la transacció. + + Destination address of transaction. Adreça del destinatari de la transacció. @@ -2524,6 +2656,10 @@ Address: %4 Exporta l'historial de transacció + Watch-only + Només de lectura + + Exporting Failed L'exportació ha fallat @@ -2698,6 +2834,10 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Elimina totes les transaccions del moneder i només recupera aquelles de la cadena de blocs a través de -rescan a l'inici + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + Distribuït sota llicència de programari MIT. Vegeu el fitxer acompanyant COPYING o <http://www.opensource.org/licenses/mit-license.php>. + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. Entra en el mode de proves de regressió, que utilitza una cadena especial en què els blocs poden resoldre's al moment. @@ -2750,6 +2890,10 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Avís: el fitxer wallet.dat és corrupte, dades rescatades! L'arxiu wallet.dat original ha estat desat com wallet.{estampa_temporal}.bak al directori %s; si el teu balanç o transaccions son incorrectes hauries de restaurar-lo de un backup. + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + Afegeix a la llista blanca els iguals que es connecten de la màscara de xarxa o adreça IP donada. Es pot especificar moltes vegades. + + (default: 1) (per defecte: 1) @@ -2810,6 +2954,10 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Error en obrir la base de dades de blocs + Error: A fatal internal error occured, see debug.log for details + Error: s'ha produït un error intern fatal. Consulteu debug.log per a més detalls + + Error: Disk space is low! Error: Espai al disc baix! @@ -2842,6 +2990,10 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com No hi ha suficient descriptors de fitxers disponibles. + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + Només connecta als nodes de la xarxa <net> (ipv4, ipv6 o onion) + + Rebuild block chain index from current blk000??.dat files Reconstrueix l'índex de la cadena de blocs dels fitxers actuals blk000??.dat @@ -2862,6 +3014,10 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Això es així per a eines de proves de regressió per al desenvolupament d'aplicacions. + Use UPnP to map the listening port (default: %u) + Utilitza UPnP per a mapejar el port d'escolta (per defecte: %u) + + Verifying blocks... S'estan verificant els blocs... @@ -2902,6 +3058,10 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com No es pot obtenir un bloqueig del directori de dades %s. El Bitcoin Core probablement ja s'estigui executant. + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + Limita contínuament la freqüència de les transaccions gratuïtes a <n>*1000 bytes per minut (per defecte: %u) + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) Crea fitxers nous amb els permisos per defecte del sistema, en comptes de l'umask 077 (només efectiu amb la funcionalitat de moneder inhabilitada) @@ -2926,6 +3086,10 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Comissions (en BTC/Kb) inferiors a això es consideren de comissió zero per a la creació de la transacció (per defecte: %s) + Maximum size of data in data carrier transactions we relay and mine (default: %u) + Mida màxima de les dades en les transaccions de l'operador en què confiem i en les meves (per defecte: %u) + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) Consulta a adreces d'iguals a través de DNS, si es troba baix en adreces (per defecte: 1 a menys que -connect) @@ -2934,6 +3098,10 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Defineix la mida màxima de transaccions d'alta prioritat / baixa comissió en bytes (per defecte: %d) + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + Defineix el nombre de fils per a la generació de moneda si està habilitat (-1 = tots els nuclis, per defecte: %d) + + 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. Aquest producte inclou programari desenvolupat pel projecte OpenSSL per a ús a l'OpenSSL Toolkit <https://www.openssl.org/> i programari criptogràfic escrit per Eric Young i programari UPnP escrit per Thomas Bernard. @@ -3002,6 +3170,10 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Manté com a màxim <n> blocs no connectables en memòria (per defecte: %u) + Keep at most <n> unconnectable transactions in memory (default: %u) + Manté com a màxim <n> transaccions no connectables en memòria (per defecte: %u) + + Need to specify a port with -whitebind: '%s' Cal especificar un port amb -whitebind: «%s» @@ -3034,6 +3206,10 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Envia informació de traça/depuració a la consola en comptes del fitxer debug.log + Send transactions as zero-fee transactions if possible (default: %u) + Envia les transaccions com a transaccions de comissió zero sempre que sigui possible (per defecte: %u) + + Show all debugging options (usage: --help -help-debug) Mostra totes les opcions de depuració (ús: --help --help-debug) @@ -3142,14 +3318,178 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Error en carregar wallet.dat: Moneder corrupte + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = manté les metadades de les tx, p. ex., propietari del compte i informació de sol·licitud del pagament, 2 = prescindeix de les metadades de les tx) + + + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + Buida l'activitat de la base de dades de la memòria disponible al registre del disc cada <n> megabytes (per defecte: %u) + + + How thorough the block verification of -checkblocks is (0-4, default: %u) + Com d'exhaustiva és la verificació de blocs del -checkblocks (0-4, per defecte: %u) + + + If paytxfee is not set, include enough fee so transactions are confirmed on average within n blocks (default: %u) + Si no es defineix una comissió de pagament de transacció (paytxfee), inclogueu suficient comissió per tal que les transaccions puguin confirmar-se cada n blocs com a mitja (per defecte: %u) + + + Log transaction priority and fee per kB when mining blocks (default: %u) + Enregistreu la prioritat de la transacció i la comissió per kB en minar blocs (per defecte: %u) + + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + Manté un índex complet de transaccions, utilitzat per la crida rpc getrawtransaction (per defecte: %u) + + + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + Nombre de segons necessaris perquè els iguals de comportament qüestionable puguin tornar a connectar-se (per defecte: %u) + + + Output debugging information (default: %u, supplying <category> is optional) + Informació de sortida de la depuració (per defecte: %u, proporcionar <category> és opcional) + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + Utilitza un proxy SOCKS4 apart per a arribar als iguals a través de serveis ocults de Tor (per defecte: %s) + + + (default: %s) + (per defecte: %s) + + + Acceptable ciphers (default: %s) + Xifrats acceptables (per defecte: %s) + + + Always query for peer addresses via DNS lookup (default: %u) + Demana sempre les adreces dels iguals a través de consultes DNS (per defecte: %u) + + + Disable safemode, override a real safe mode event (default: %u) + Inhabilita el mode segur, sobreescriu un esdeveniment de mode segur real (per defecte: %u) + + Error loading wallet.dat Error en carregar wallet.dat + Force safe mode (default: %u) + Força el mode segur (per defecte: %u) + + + Generate coins (default: %u) + Genera monedes (per defecte: %u) + + + How many blocks to check at startup (default: %u, 0 = all) + Quants blocs per comprovar a l'inici (per defecte: %u, 0 = tots) + + + Include IP addresses in debug output (default: %u) + Inclou l'adreça IP a la sortida de depuració (per defecte: %u) + + Invalid -proxy address: '%s' Adreça -proxy invalida: '%s' + Limit size of signature cache to <n> entries (default: %u) + Limita la mida de la cau de signatura a <n> entrades (per defecte: %u) + + + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + Escolta les connexions JSON-RPC en <port> (per defecte: %u o testnet: %u) + + + Listen for connections on <port> (default: %u or testnet: %u) + Escolta les connexions en <port> (per defecte: %u o testnet: %u) + + + Maintain at most <n> connections to peers (default: %u) + Manté com a màxim <n> connexions a iguals (per defecte: %u) + + + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + Memòria intermèdia màxima de recepció per connexió, <n>*1000 bytes (per defecte: %u) + + + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + Memòria intermèdia màxima d'enviament per connexió, <n>*1000 bytes (per defecte: %u) + + + Only accept block chain matching built-in checkpoints (default: %u) + Només accepta els punts de control integrats que coincideixen amb la cadena de blocs (per defecte: %u) + + + Prepend debug output with timestamp (default: %u) + Posa davant de la sortida de depuració una marca horària (per defecte: %u) + + + Print block tree on startup (default: %u) + Imprimeix l'arbre de blocs a l'inici (per defecte: %u) + + + Relay and mine data carrier transactions (default: %u) + Retransmet i mina les transaccions de l'operador (per defecte: %u) + + + Relay non-P2SH multisig (default: %u) + Retransmet multisig no P2SH (per defecte: %u) + + + Run a thread to flush wallet periodically (default: %u) + Executa un fil per buidar el moneder periòdicament (per defecte: %u) + + + Server certificate file (default: %s) + Fitxer de certificat del servidor (per defecte: %s) + + + Server private key (default: %s) + Clau privada del servidor (per defecte: %s) + + + Set key pool size to <n> (default: %u) + Defineix la mida clau disponible a <n> (per defecte: %u) + + + Set minimum block size in bytes (default: %u) + Defineix la mida de bloc mínima en bytes (per defecte: %u) + + + Set the number of threads to service RPC calls (default: %d) + Defineix el nombre de fils a crides de servei RPC (per defecte: %d) + + + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + Defineix el senyalador DB_PRIVATE en l'entorn db del moneder (per defecte: %u) + + + Specify configuration file (default: %s) + Especifica el fitxer de configuració (per defecte: %s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + Especifica el temps d'espera de la connexió en milisegons (mínim: 1, per defecte: %d) + + + Specify pid file (default: %s) + Especifica el fitxer pid (per defecte: %s) + + + Spend unconfirmed change when sending transactions (default: %u) + Gasta el canvi no confirmat en enviar les transaccions (per defecte: %u) + + + Stop running after importing blocks from disk (default: %u) + Atura l'execució després d'importar blocs del disc (per defecte: %u) + + + Threshold for disconnecting misbehaving peers (default: %u) + Llindar per a desconnectar els iguals de comportament qüestionable (per defecte: %u) + + Unknown network specified in -onlynet: '%s' Xarxa desconeguda especificada a -onlynet: '%s' diff --git a/src/qt/locale/bitcoin_es.ts b/src/qt/locale/bitcoin_es.ts index b701366706f..a2bd4e8e89c 100644 --- a/src/qt/locale/bitcoin_es.ts +++ b/src/qt/locale/bitcoin_es.ts @@ -1849,6 +1849,14 @@ Dirección: %4 Comisión de Transacción: + Choose... + Elija... + + + collapse fee-settings + Colapsar ajustes de cuota + + Minimize Minimizar diff --git a/src/qt/locale/bitcoin_it.ts b/src/qt/locale/bitcoin_it.ts index 06cf0e0162a..cc85dfe2271 100644 --- a/src/qt/locale/bitcoin_it.ts +++ b/src/qt/locale/bitcoin_it.ts @@ -2962,6 +2962,10 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Questo è previsto per l'uso con test di regressione e per lo sviluppo di applicazioni. + Use UPnP to map the listening port (default: %u) + Usa UPnP per mappare la porta di ascolto (default: %u) + + Verifying blocks... Verifica blocchi... @@ -3022,6 +3026,10 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Connetti attraverso SOCKS5 proxy + Copyright (C) 2009-%i The Bitcoin Core Developers + Copyright (C) 2009-%i The Bitcoin Core Developers + + Error loading wallet.dat: Wallet requires newer version of Bitcoin Core Errore caricamento wallet.dat: il wallet richiede una versione nuova di Bitcoin Core @@ -3175,6 +3183,10 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Errore caricamento wallet.dat: Portamonete corrotto + (default: %s) + (default: %s) + + Error loading wallet.dat Errore caricamento wallet.dat @@ -3195,6 +3207,14 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Indirizzo -proxy non valido: '%s' + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + Ascolto di connessioni JSON-RPC su <port> (default: %u o testnet: %u) + + + Listen for connections on <port> (default: %u or testnet: %u) + Ascolto di connessioni su <port> (default: %u o testnet: %u) + + Maintain at most <n> connections to peers (default: %u) Mantieni al massimo <n> connessioni ai peers (default: %u) diff --git a/src/qt/locale/bitcoin_pt_BR.ts b/src/qt/locale/bitcoin_pt_BR.ts index 65f07ca59c6..b5b8e3e5d3e 100644 --- a/src/qt/locale/bitcoin_pt_BR.ts +++ b/src/qt/locale/bitcoin_pt_BR.ts @@ -520,6 +520,10 @@ Endereço: %4 CoinControlDialog + Coin Selection + Selecionar Moeda + + Quantity: Quantidade: @@ -1204,6 +1208,10 @@ Endereço: %4 Solicitação de pagamento expirou. + Payment request is not initialized. + Pedido de pagamento não é inicializado. + + Requested payment amount of %1 is too small (considered dust). Valor do pagamento solicitado de %1 é muito pequeno (Considerado poeira). diff --git a/src/qt/locale/bitcoin_pt_PT.ts b/src/qt/locale/bitcoin_pt_PT.ts index dc016623e4f..dd0d8823f6f 100644 --- a/src/qt/locale/bitcoin_pt_PT.ts +++ b/src/qt/locale/bitcoin_pt_PT.ts @@ -93,7 +93,11 @@ Exporting Failed A Exportação Falhou - + + There was an error trying to save the address list to %1. Please try again. + Houve um erro ao tentar a guardar a lista de endereços em %1. Por favor tente novamente. + + AddressTableModel @@ -291,6 +295,10 @@ Abrir &URI... + Bitcoin Core client + Cliente Bitcoin Core + + Importing blocks from disk... A importar blocos do disco... @@ -343,6 +351,10 @@ &Receber + Show information about Bitcoin Core + Mostrar informação sobre Bitcoin Core + + &Show / Hide Mo&strar / Ocultar @@ -793,6 +805,10 @@ Endereço: %4 versão + (%1-bit) + (%1-bit) + + About Bitcoin Core Sobre o Bitcoin Core @@ -863,7 +879,15 @@ Endereço: %4 Error Erro - + + %n GB of free space available + %n GB de espaço livre disponível %n GB de espaço livre disponível + + + (of %n GB needed) + (de %n GB necessários)(de %n GB necessário) + + OpenURIDialog @@ -1101,6 +1125,10 @@ Endereço: %4 O seu saldo total actual + Recent transactions + transações recentes + + out of sync fora de sincronia @@ -1174,6 +1202,10 @@ Endereço: %4 Quantia + %1 d + %1 d + + %1 h %1 h @@ -1182,6 +1214,14 @@ Endereço: %4 %1 m + %1 s + %1 s + + + None + Nenhum + + N/A N/D diff --git a/src/qt/locale/bitcoin_zh_TW.ts b/src/qt/locale/bitcoin_zh_TW.ts index 56d598fc649..72f3ac847d7 100644 --- a/src/qt/locale/bitcoin_zh_TW.ts +++ b/src/qt/locale/bitcoin_zh_TW.ts @@ -577,6 +577,14 @@ Address: %4 金額 + Received with label + 收款標記 + + + Received with address + 收款位址 + + Date 日期 @@ -1842,7 +1850,7 @@ Address: %4 Choose... - 選擇... + 選項... collapse fee-settings @@ -1850,25 +1858,65 @@ Address: %4 Minimize - 最小化 + 縮小 + + + 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. + 如果自訂手續費設定為 1000 satoshi, 而交易資料大小只有 250 個位元組的話,那麽選擇「每千位元組」就只會付 250 satoshi 的手續費,換做選「總共至少」就會付 1000 satoshi. 但是如果交易資料大小超過一千個位元組,那麽兩者都是每千位元組的費用。 per kilobyte 每千位元組 + 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. + 如果自訂手續費設定為 1000 satoshi, 而交易資料大小只有 250 個位元組的話,那麽選擇「每千位元組」就只會付 250 satoshi 的手續費,換做選「總共至少」就會付 1000 satoshi. 但是如果交易資料大小超過一千個位元組,那麽兩者都是每千位元組的費用。 + + + total at least + 總共最少 + + + 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. + 當交易量少於區塊可容納的空間時,只付最低手續費不會有什麽問題。但是當交易量的需求成長到超過整體網路可以處理的量時,可能會造成一筆一直不會被確認的交易。 + + (read the tooltip) (請看提示) + Recommended: + 建議值: + + + Custom: + 自訂: + + + (Smart fee not initialized yet. This usually takes a few blocks...) + (手續費智慧演算法還沒準備好。通常都要等幾個區塊才行...) + + Confirmation time: 確認時間: + normal + 正常 + + + fast + 快速 + + Send as zero-fee transaction if possible 盡可能送不用付手續費的交易 + (confirmation may take longer) + (確認時間可能拉長) + + Send to multiple recipients at once 一次付給多個收款人 @@ -1973,6 +2021,18 @@ Address: %4 交易被拒絕了!有時候會發生這種錯誤,是因為你錢包中的一些錢已經被花掉了。比如說你複製了錢包檔 wallet.dat, 然後用複製的錢包花掉了錢,你現在所用的原來的錢包中,卻沒有那筆錢已經花掉的紀錄。 + A fee higher than %1 is considered an insanely high fee. + 高於 %1 的手續費會被認為是不正常。 + + + Pay only the minimum fee of %1 + 只付最低手續費 %1 + + + Estimated to begin confirmation within %1 block(s). + 預計可在 %1 個區塊內開始確認。 + + Warning: Invalid Bitcoin address 警告: 位元幣位址無效 From c888111a3f70ce6ce6c25b9bd2fb6d2a5bff67b7 Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Fri, 19 Dec 2014 14:39:10 -0500 Subject: [PATCH 013/201] docs: update gitian building docs Github-Pull: #5512 Rebased-From: dd14a0e799b6552ae85aaab2b0b48f788c578aea --- doc/gitian-building.md | 36 ++++++++++++------------------------ 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/doc/gitian-building.md b/doc/gitian-building.md index b356a5d88d8..defddedc6e2 100644 --- a/doc/gitian-building.md +++ b/doc/gitian-building.md @@ -291,7 +291,7 @@ Setting up gitian images ------------------------- Gitian needs virtual images of the operating system to build in. -Currently this is Ubuntu Precise for both x86 architectures. +Currently this is Ubuntu Precise for x86_64. These images will be copied and used every time that a build is started to make sure that the build is deterministic. Creating the images will take a while, but only has to be done once. @@ -300,7 +300,6 @@ Execute the following as user `debian`: ```bash cd gitian-builder -bin/make-base-vm --lxc --arch i386 --suite precise bin/make-base-vm --lxc --arch amd64 --suite precise ``` @@ -311,33 +310,25 @@ There will be a lot of warnings printed during build of the images. These can be Getting and building the inputs -------------------------------- -In [doc/release-process.md](release-process.md) in the bitcoin repository under 'Fetch and build inputs'. -you will find a list of `wget` commands that can be executed to get the dependencies. +Follow the instructions in [doc/release-process.md](release-process.md) in the bitcoin repository +under 'Fetch and build inputs' to install sources which require manual intervention. Also follow +the next step: 'Seed the Gitian sources cache', which will fetch all necessary source files allowing +for gitian to work offline. -I needed to add `--no-check-certificate` to the OpenSSL wget line to make it work. -Likely this is because the ca-certificates in Debian 7.4 is fairly old. This does not create a -security issue as the gitian descriptors check the integrity of the input archives and refuse to work -if any one is corrupted. +Building Bitcoin +---------------- -After downloading the archives, execute the `gbuild` commands to build the dependencies. -This can take a long time, but only has to be done when the dependencies change, for example -to upgrade the used version. +To build Bitcoin (for Linux, OSX and Windows) just follow the steps under 'perform +gitian builds' in [doc/release-process.md](release-process.md) in the bitcoin repository. -**Note**: Do not forget to copy the result from `build/out` to `inputs` after every gbuild command! This will save -you a lot of time. +This may take a long time as it also builds the dependencies needed for each descriptor. +These dependencies will be cached after a successful build to avoid rebuilding them when possible. At any time you can check the package installation and build progress with ```bash tail -f var/install.log tail -f var/build.log -``` - -Building Bitcoin ----------------- - -To build Bitcoin (for Linux, OSX and Windows) just follow the steps under 'perform -gitian builds' in [doc/release-process.md](release-process.md) in the bitcoin repository. Output from `gbuild` will look something like @@ -348,7 +339,7 @@ Output from `gbuild` will look something like Resolving deltas: 100% (25724/25724), done. From https://github.com/bitcoin/bitcoin ... (new tags, new branch etc) - --- Building for precise i386 --- + --- Building for precise x86_64 --- Stopping target if it is up Making a new image copy stdin: is not a tty @@ -363,9 +354,6 @@ Output from `gbuild` will look something like lxc-start: Connection refused - inotify event with no name (mask 32768) Running build script (log in var/build.log) -As when building the dependencies, the progress of package installation and building -can be inspected in `var/install.log` and `var/build.log`. - Building an alternative repository ----------------------------------- From 63b5a1dc80ab978160b7ee036d5e55973e995fd5 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Tue, 23 Dec 2014 14:20:28 +0100 Subject: [PATCH 014/201] Do not use libgmp automatically in libsecp256k1 --- src/secp256k1/configure.ac | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/secp256k1/configure.ac b/src/secp256k1/configure.ac index 6e6fccd7fdd..017fd4e1d47 100644 --- a/src/secp256k1/configure.ac +++ b/src/secp256k1/configure.ac @@ -119,13 +119,6 @@ if test x"$req_field" = x"auto"; then fi if test x"$set_field" = x; then - SECP_GMP_CHECK - if test x"$has_gmp" = x"yes"; then - set_field=gmp - fi - fi - - if test x"$set_field" = x; then set_field=32bit fi else @@ -173,11 +166,6 @@ else fi if test x"$req_bignum" = x"auto"; then - SECP_GMP_CHECK - if test x"$has_gmp" = x"yes"; then - set_bignum=gmp - fi - if test x"$set_bignum" = x; then set_bignum=none fi From 3aa3c710ac36abe43bea2a05a2fd334419494c51 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Tue, 23 Dec 2014 18:10:18 +0100 Subject: [PATCH 015/201] Preliminary release notes for 0.10 --- doc/release-notes.md | 443 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 439 insertions(+), 4 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index f804e8c11b2..91c69b29a29 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,8 +1,31 @@ -(note: this is a temporary file, to be added-to by anybody, and moved to -release-notes at release time) +Bitcoin Core version 0.10.0 is now available from: -Block file backwards-compatibility warning -=========================================== + https://bitcoin.org/bin/0.10.0/ + +This is a new major version release, bringing both new features and +bug fixes. + +Please report bugs using the issue tracker at github: + + https://github.com/bitcoin/bitcoin/issues + +Upgrading and downgrading +========================== + +How to Upgrade +-------------- + +If you are running an older version, shut it down. Wait until it has completely +shut down (which might take a few minutes for older versions), then run the +installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or +bitcoind/bitcoin-qt (on Linux). + +If you are upgrading from version 0.7.2 or earlier, the first time you run +0.10.0 your blockchain files will be re-indexed, which will take anywhere from +30 minutes to several hours, depending on the speed of your machine. + +Downgrading 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 @@ -124,3 +147,415 @@ libsecp256k1 is better tested and more thoroughly reviewed than the implementation in OpenSSL. [1] https://eprint.iacr.org/2014/161.pdf + +0.10.0 Release notes +======================= + +Detailed release notes follow. This overview includes changes that affect external +behavior, not code moves, refactors or string updates. + +RPC: +- `f923c07` Support IPv6 lookup in bitcoin-cli even when IPv6 only bound on localhost +- `b641c9c` Fix addnode "onetry": Connect with OpenNetworkConnection +- `171ca77` estimatefee / estimatepriority RPC methods +- `b750cf1` Remove cli functionality from bitcoind +- `f6984e8` Add "chain" to getmininginfo, improve help in getblockchaininfo +- `99ddc6c` Add nLocalServices info to RPC getinfo +- `cf0c47b` Remove getwork() RPC call +- `2a72d45` prioritisetransaction +- `e44fea5` Add an option `-datacarrier` to allow users to disable relaying/mining data carrier transactions +- `2ec5a3d` Prevent easy RPC memory exhaustion attack +- `d4640d7` Added argument to getbalance to include watchonly addresses and fixed errors in balance calculation +- `83f3543` Added argument to listaccounts to include watchonly addresses +- `952877e` Showing 'involvesWatchonly' property for transactions returned by 'listtransactions' and 'listsinceblock'. It is only appended when the transaction involves a watchonly address +- `d7d5d23` Added argument to listtransactions and listsinceblock to include watchonly addresses +- `f87ba3d` added includeWatchonly argument to 'gettransaction' because it affects balance calculation +- `0fa2f88` added includedWatchonly argument to listreceivedbyaddress/...account +- `6c37f7f` `getrawchangeaddress`: fail when keypool exhausted and wallet locked +- `ff6a7af` getblocktemplate: longpolling support +- `c4a321f` Add peerid to getpeerinfo to allow correlation with the logs +- `1b4568c` Add vout to ListTransactions output +- `b33bd7a` Implement "getchaintips" RPC command to monitor blockchain forks +- `733177e` Remove size limit in RPC client, keep it in server +- `6b5b7cb` Categorize rpc help overview +- `6f2c26a` Closely track mempool byte total. Add "getmempoolinfo" RPC +- `aa82795` Add detailed network info to getnetworkinfo RPC +- `01094bd` Don't reveal whether password is <20 or >20 characters in RPC +- `57153d4` rpc: Compute number of confirmations of a block from block height +- `ff36cbe` getnetworkinfo: export local node's client sub-version string +- `d14d7de` SanitizeString: allow '(' and ')' +- `31d6390` Fixed setaccount accepting foreign address +- `b5ec5fe` update getnetworkinfo help with subversion +- `ad6e601` RPC additions after headers-first +- `33dfbf5` rpc: Fix leveldb iterator leak, and flush before `gettxoutsetinfo` +- `2aa6329` Enable customising node policy for datacarrier data size with a -datacarriersize option +- `f877aaa` submitblock: Use a temporary CValidationState to determine accurately the outcome of ProcessBlock +- `e69a587` submitblock: Support for returning specific rejection reasons +- `af82884` Add "warmup mode" for RPC server +- `e2655e0` Add unauthenticated HTTP REST interface to public blockchain data +- `683dc40` Disable SSLv3 (in favor of TLS) for the RPC client and server +- `44b4c0d` signrawtransaction: validate private key +- `9765a50` Implement BIP 23 Block Proposal +- `f9de17e` Add warning comment to getinfo + +Command-line options: +- `ee21912` Use netmasks instead of wildcards for IP address matching +- `deb3572` Add `-rpcbind` option to allow binding RPC port on a specific interface +- `96b733e` Add `-version` option to get just the version +- `1569353` Add `-stopafterblockimport` option +- `77cbd46` Let -zapwallettxes recover transaction meta data +- `1c750db` remove -tor compatibility code (only allow -onion) +- `4aaa017` rework help messages for fee-related options +- `4278b1d` Clarify error message when invalid -rpcallowip +- `6b407e4` -datadir is now allowed in config files +- `bdd5b58` Add option `-sysperms` to disable 077 umask (create new files with system default umask) +- `cbe39a3` Add "bitcoin-tx" command line utility and supporting modules +- `dbca89b` Trigger -alertnotify if network is upgrading without you +- `ad96e7c` Make -reindex cope with out-of-order blocks +- `16d5194` Skip reindexed blocks individually +- `ec01243` --tracerpc option for regression tests +- `f654f00` Change -genproclimit default to 1 +- `3c77714` Make -proxy set all network types, avoiding a connect leak +- `57be955` Remove -printblock, -printblocktree, and -printblockindex +- `ad3d208` remove -maxorphanblocks config parameter since it is no longer functional + +Block and transaction handling: +- `7a0e84d` ProcessGetData(): abort if a block file is missing from disk +- `8c93bf4` LoadBlockIndexDB(): Require block db reindex if any `blk*.dat` files are missing +- `77339e5` Get rid of the static chainMostWork (optimization) +- `4e0eed8` Allow ActivateBestChain to release its lock on cs_main +- `18e7216` Push cs_mains down in ProcessBlock +- `fa126ef` Avoid undefined behavior using CFlatData in CScript serialization +- `7f3b4e9` Relax IsStandard rules for pay-to-script-hash transactions +- `c9a0918` Add a skiplist to the CBlockIndex structure +- `bc42503` Use unordered_map for CCoinsViewCache with salted hash (optimization) +- `d4d3fbd` Do not flush the cache after every block outside of IBD (optimization) +- `ad08d0b` Bugfix: make CCoinsViewMemPool support pruned entries in underlying cache +- `5734d4d` Only remove actualy failed blocks from setBlockIndexValid +- `d70bc52` Rework block processing benchmark code +- `714a3e6` Only keep setBlockIndexValid entries that are possible improvements +- `ea100c7` Reduce maximum coinscache size during verification (reduce memory usage) +- `4fad8e6` Reject transactions with excessive numbers of sigops +- `b0875eb` Allow BatchWrite to destroy its input, reducing copying (optimization) +- `92bb6f2` Bypass reloading blocks from disk (optimization) +- `2e28031` Perform CVerifyDB on pcoinsdbview instead of pcoinsTip (reduce memory usage) +- `ab15b2e` Avoid copying undo data (optimization) +- `341735e` Headers-first synchronization +- `afc32c5` Fix rebuild-chainstate feature and improve its performance +- `e11b2ce` Fix large reorgs +- `ed6d1a2` Keep information about all block files in memory +- `a48f2d6` Abstract context-dependent block checking from acceptance +- `7e615f5` Fixed mempool sync after sending a transaction +- `51ce901` Improve chainstate/blockindex disk writing policy +- `a206950` Introduce separate flushing modes +- `9ec75c5` Add a locking mechanism to IsInitialBlockDownload to ensure it never goes from false to true +- `868d041` Remove coinbase-dependant transactions during reorg +- `723d12c` Remove txn which are invalidated by coinbase maturity during reorg +- `0cb8763` Check against MANDATORY flags prior to accepting to mempool +- `8446262` Reject headers that build on an invalid parent + +P2P protocol and network code: +- `f80cffa` Do not trigger a DoS ban if SCRIPT_VERIFY_NULLDUMMY fails +- `c30329a` Add testnet DNS seed of Alex Kotenko +- `45a4baf` Add testnet DNS seed of Andreas Schildbach +- `f1920e8` Ping automatically every 2 minutes (unconditionally) +- `806fd19` Allocate receive buffers in on the fly +- `6ecf3ed` Display unknown commands received +- `aa81564` Track peers' available blocks +- `caf6150` Use async name resolving to improve net thread responsiveness +- `9f4da19` Use pong receive time rather than processing time +- `0127a9b` remove SOCKS4 support from core and GUI, use SOCKS5 +- `40f5cb8` Send rejects and apply DoS scoring for errors in direct block validation +- `dc942e6` Introduce whitelisted peers +- `c994d2e` prevent SOCKET leak in BindListenPort() +- `a60120e` Add built-in seeds for .onion +- `60dc8e4` Allow -onlynet=onion to be used +- `3a56de7` addrman: Do not propagate obviously poor addresses onto the network +- `6050ab6` netbase: Make SOCKS5 negotiation interruptible +- `604ee2a` Remove tx from AlreadyAskedFor list once we receive it, not when we process it +- `efad808` Avoid reject message feedback loops +- `71697f9` Separate protocol versioning from clientversion +- `20a5f61` Don't relay alerts to peers before version negotiation +- `b4ee0bd` Introduce preferred download peers +- `845c86d` Do not use third party services for IP detection +- `12a49ca` Limit the number of new addressses to accumulate +- `35e408f` Regard connection failures as attempt for addrman + +Validation: +- `6fd7ef2` Also switch the (unused) verification code to low-s instead of even-s +- `584a358` Do merkle root and txid duplicates check simultaneously +- `217a5c9` When transaction outputs exceed inputs, show the offending amounts so as to aid debugging +- `f74fc9b` Print input index when signature validation fails, to aid debugging +- `6fd59ee` script.h: set_vch() should shift a >32 bit value +- `d752ba8` Add SCRIPT_VERIFY_SIGPUSHONLY (BIP62 rule 2) (test only) +- `698c6ab` Add SCRIPT_VERIFY_MINIMALDATA (BIP62 rules 3 and 4) (test only) +- `ab9edbd` script: create sane error return codes for script validation and remove logging +- `219a147` script: check ScriptError values in script tests +- `0391423` Discourage NOPs reserved for soft-fork upgrades +- `98b135f` Make STRICTENC invalid pubkeys fail the script rather than the opcode +- `307f7d4` Report script evaluation failures in log and reject messages + +Build system: +- `f25e3ad` Fix build in OS X 10.9 +- `65e8ba4` build: Switch to non-recursive make +- `460b32d` build: fix broken boost chrono check on some platforms +- `9ce0774` build: Fix windows configure when using --with-qt-libdir +- `ea96475` build: Add mention of --disable-wallet to bdb48 error messages +- `1dec09b` depends: add shared dependency builder +- `c101c76` build: Add --with-utils (bitcoin-cli and bitcoin-tx, default=yes). Help string consistency tweaks. Target sanity check fix +- `e432a5f` build: add option for reducing exports (v2) +- `6134b43` Fixing condition 'sabotaging' MSVC build +- `af0bd5e` osx: fix signing to make Gatekeeper happy (again) +- `a7d1f03` build: fix dynamic boost check when --with-boost= is used +- `d5fd094` build: fix qt test build when libprotobuf is in a non-standard path +- `2cf5f16` Add libbitcoinconsensus library +- `914868a` build: add a deterministic dmg signer + +Wallet: +- `b33d1f5` Use fee/priority estimates in wallet CreateTransaction +- `4b7b1bb` Sanity checks for estimates +- `c898846` Add support for watch-only addresses +- `d5087d1` Use script matching rather than destination matching for watch-only +- `d88af56` Fee fixes +- `a35b55b` Dont run full check every time we decrypt wallet +- `3a7c348` Fix make_change to not create half-satoshis +- `f606bb9` fix a possible memory leak in CWalletDB::Recover +- `870da77` fix possible memory leaks in CWallet::EncryptWallet +- `ccca27a` Watch-only fixes +- `9b1627d` [Wallet] Reduce minTxFee for transaction creation to 1000 satoshis +- `a53fd41` Deterministic signing +- `15ad0b5` Apply AreSane() checks to the fees from the network +- `11855c1` Enforce minRelayTxFee on wallet created tx and add a maxtxfee option + +GUI: +- `c21c74b` osx: Fix missing dock menu with qt5 +- `b90711c` Fix Transaction details shows wrong To: +- `516053c` Make links in 'About Bitcoin Core' clickable +- `bdc83e8` Ensure payment request network matches client network +- `65f78a1` Add GUI view of peer information +- `06a91d9` VerifyDB progress reporting +- `fe6bff2` Add BerkeleyDB version info to RPCConsole +- `b917555` PeerTableModel: Fix potential deadlock. #4296 +- `dff0e3b` Improve rpc console history behavior +- `95a9383` Remove CENT-fee-rule from coin control completely +- `56b07d2` Allow setting listen via GUI +- `d95ba75` Log messages with type>QtDebugMsg as non-debug +- `8969828` New status bar Unit Display Control and related changes +- `674c070` seed OpenSSL PNRG with Windows event data +- `509f926` Payment request parsing on startup now only changes network if a valid network name is specified +- `acd432b` Prevent balloon-spam after rescan +- `7007402` Implement SI-style (thin space) thoudands separator +- `91cce17` Use fixed-point arithmetic in amount spinbox +- `bdba2dd` Remove an obscure option no-one cares about +- `bd0aa10` Replace the temporary file hack currently used to change Bitcoin-Qt's dock icon (OS X) with a buffer-based solution +- `94e1b9e` Re-work overviewpage UI +- `8bfdc9a` Better looking trayicon +- `b197bf3` disable tray interactions when client model set to 0 +- `1c5f0af` Add column Watch-only to transactions list +- `21f139b` Fix tablet crash. closes #4854 +- `e84843c` Broken addresses on command line no longer trigger testnet +- `a49f11d` Change splash screen to normal window +- `1f9be98` Disable App Nap on OSX 10.9+ +- `27c3e91` Add proxy to options overridden if necessary +- `4bd1185` Allow "emergency" shutdown during startup +- `d52f072` Don't show wallet options in the preferences menu when running with -disablewallet +- `6093aa1` Qt: QProgressBar CPU-Issue workaround +- `0ed9675` [Wallet] Add global boolean whether to send free transactions (default=true) +- `ed3e5e4` [Wallet] Add global boolean whether to pay at least the custom fee (default=true) +- `e7876b2` [Wallet] Prevent user from paying a non-sense fee +- `c1c9d5b` Add Smartfee to GUI +- `e0a25c5` Make askpassphrase dialog behave more sanely + +Tests: +- `b41e594` Fix script test handling of empty scripts +- `d3a33fc` Test CHECKMULTISIG with m == 0 and n == 0 +- `29c1749` Let tx (in)valid tests use any SCRIPT_VERIFY flag +- `6380180` Add rejection of non-null CHECKMULTISIG dummy values +- `21bf3d2` Add tests for BoostAsioToCNetAddr +- `b5ad5e7` Add Python test for -rpcbind and -rpcallowip +- `9ec0306` Add CODESEPARATOR/FindAndDelete() tests +- `75ebced` Added many rpc wallet tests +- `0193fb8` Allow multiple regression tests to run at once +- `92a6220` Hook up sanity checks +- `3820e01` Extend and move all crypto tests to crypto_tests.cpp +- `3f9a019` added list/get received by address/ account tests +- `a90689f` Remove timing-based signature cache unit test +- `236982c` Add skiplist unit tests +- `f4b00be` Add CChain::GetLocator() unit test +- `b45a6e8` Add test for getblocktemplate longpolling +- `cdf305e` Set -discover=0 in regtest framework +- `ed02282` additional test for OP_SIZE in script_valid.json +- `0072d98` script tests: BOOLAND, BOOLOR decode to integer +- `833ff16` script tests: values that overflow to 0 are true +- `4cac5db` script tests: value with trailing 0x00 is true +- `89101c6` script test: test case for 5-byte bools +- `d2d9dc0` script tests: add tests for CHECKMULTISIG limits +- `d789386` Add "it works" test for bitcoin-tx +- `df4d61e` Add bitcoin-tx tests +- `aa41ac2` Test IsPushOnly() with invalid push +- `6022b5d` Make `script_{valid,invalid}.json` validation flags configurable +- `8138cbe` Add automatic script test generation, and actual checksig tests +- `ed27e53` Add coins_tests with a large randomized CCoinViewCache test +- `9df9cf5` Make SCRIPT_VERIFY_STRICTENC compatible with BIP62 +- `dcb9846` Extend getchaintips RPC test +- `554147a` Ensure MINIMALDATA invalid tests can only fail one way +- `dfeec18` Test every numeric-accepting opcode for correct handling of the numeric minimal encoding rule +- `2b62e17` Clearly separate PUSHDATA and numeric argument MINIMALDATA tests +- `16d78bd` Add valid invert of invalid every numeric opcode tests +- `f635269` tests: enable alertnotify test for Windows +- `7a41614` tests: allow rpc-tests to get filenames for bitcoind and bitcoin-cli from the environment +- `5122ea7` tests: fix forknotify.py on windows +- `fa7f8cd` tests: remove old pull-tester scripts +- `7667850` tests: replace the old (unused since Travis) tests with new rpc test scripts +- `f4e0aef` Do signature-s negation inside the tests +- `1837987` Optimize -regtest setgenerate block generation +- `2db4c8a` Fix node ranges in the test framework +- `a8b2ce5` regression test only setmocktime RPC call +- `daf03e7` RPC tests: create initial chain with specific timestamps +- `8656dbb` Port/fix txnmall.sh regression test +- `ca81587` Test the exact order of CHECKMULTISIG sig/pubkey evaluation +- `7357893` Prioritize and display -testsafemode status in UI +- `f321d6b` Add key generation/verification to ECC sanity check +- `132ea9b` miner_tests: Disable checkpoints so they don't fail the subsidy-change test +- `bc6cb41` QA RPC tests: Add tests block block proposals +- `f67a9ce` Use deterministically generated script tests +- `11d7a7d` [RPC] add rpc-test for http keep-alive (persistent connections) +- `34318d7` RPC-test based on invalidateblock for mempool coinbase spends +- `76ec867` Use actually valid transactions for script tests +- `c8589bf` Add actual signature tests + +Miscellaneous: +- `122549f` Fix incorrect checkpoint data for testnet3 +- `5bd02cf` Log used config file to debug.log on startup +- `68ba85f` Updated Debian example bitcoin.conf with config from wiki + removed some cruft and updated comments +- `e5ee8f0` Remove -beta suffix +- `38405ac` Add comment regarding experimental-use service bits +- `be873f6` Issue warning if collecting RandSeed data failed +- `8ae973c` Allocate more space if necessary in RandSeedAddPerfMon +- `675bcd5` Correct comment for 15-of-15 p2sh script size +- `fda3fed` libsecp256k1 integration +- `2e36866` Show nodeid instead of addresses in log (for anonymity) unless otherwise requested +- `cd01a5e` Enable paranoid corruption checks in LevelDB >= 1.16 +- `9365937` Add comment about never updating nTimeOffset past 199 samples +- `403c1bf` contrib: remove getwork-based pyminer (as getwork API call has been removed) +- `0c3e101` contrib: Added systemd .service file in order to help distributions integrate bitcoind +- `0a0878d` doc: Add new DNSseed policy +- `2887bff` Update coding style and add .clang-format +- `5cbda4f` Changed LevelDB cursors to use scoped pointers to ensure destruction when going out of scope +- `b4a72a7` contrib/linearize: split output files based on new-timestamp-year or max-file-size +- `e982b57` Use explicit fflush() instead of setvbuf() +- `234bfbf` contrib: Add init scripts and docs for Upstart and OpenRC +- `01c2807` Add warning about the merkle-tree algorithm duplicate txid flaw +- `d6712db` Also create pid file in non-daemon mode +- `772ab0e` contrib: use batched JSON-RPC in linarize-hashes (optimization) +- `7ab4358` Update bash-completion for v0.10 +- `6e6a36c` contrib: show pull # in prompt for github-merge script + +Credits +-------- + +Thanks to everyone who contributed to this release: + +- 21E14 +- Adam Weiss +- Aitor Pazos +- Alexander Jeng +- Alex Morcos +- Alon Muroch +- Andreas Schildbach +- Andrew Poelstra +- Andy Alness +- Ashley Holman +- Benedict Chan +- Ben Holden-Crowther +- Bryan Bishop +- BtcDrak +- Christian von Roques +- Clinton Christian +- Cory Fields +- Cozz Lovan +- daniel +- Daniel Kraft +- David Hill +- Derek701 +- dexX7 +- dllud +- Dominyk Tiller +- Doug +- elichai +- elkingtowa +- ENikS +- Eric Shaw +- Federico Bond +- Francis GASCHET +- Gavin Andresen +- Giuseppe Mazzotta +- Glenn Willen +- Gregory Maxwell +- gubatron +- HarryWu +- himynameismartin +- Huang Le +- Ian Carroll +- imharrywu +- Jameson Lopp +- Janusz Lenar +- JaSK +- Jeff Garzik +- JL2035 +- Johnathan Corgan +- Jonas Schnelli +- jtimon +- Julian Haight +- Kamil Domanski +- kazcw +- kevin +- kiwigb +- Kosta Zertsekel +- LongShao007 +- Luke Dashjr +- Mark Friedenbach +- Mathy Vanvoorden +- Matt Corallo +- Matthew Bogosian +- Micha +- Michael Ford +- Mike Hearn +- mrbandrews +- mruddy +- ntrgn +- Otto Allmendinger +- paveljanik +- Pavel Vasin +- Peter Todd +- phantomcircuit +- Philip Kaufmann +- Pieter Wuille +- pryds +- randy-waterhouse +- R E Broadley +- Rose Toomey +- Ross Nicoll +- Roy Badami +- Ruben Dario Ponticelli +- Rune K. Svendsen +- Ryan X. Charles +- Saivann +- sandakersmann +- SergioDemianLerner +- shshshsh +- sinetek +- Stuart Cardall +- Suhas Daftuar +- Tawanda Kembo +- Teran McKinney +- tm314159 +- Tom Harding +- Trevin Hofmann +- Whit J +- Wladimir J. van der Laan +- Yoichi Hirai +- Zak Wilcox + +As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). + From 13e129ed9ab3596bd46f8506af3277cc22aa0bec Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Tue, 23 Dec 2014 18:11:45 +0100 Subject: [PATCH 016/201] =?UTF-8?q?CLIENT=5FVERSION=5FIS=5FRELEASE=20?= =?UTF-8?q?=E2=86=92=20true?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- configure.ac | 2 +- src/clientversion.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 25c81ccfb44..c8149570b82 100644 --- a/configure.ac +++ b/configure.ac @@ -4,7 +4,7 @@ define(_CLIENT_VERSION_MAJOR, 0) define(_CLIENT_VERSION_MINOR, 10) define(_CLIENT_VERSION_REVISION, 0) define(_CLIENT_VERSION_BUILD, 0) -define(_CLIENT_VERSION_IS_RELEASE, false) +define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2014) AC_INIT([Bitcoin Core],[_CLIENT_VERSION_MAJOR._CLIENT_VERSION_MINOR._CLIENT_VERSION_REVISION],[info@bitcoin.org],[bitcoin]) AC_CONFIG_SRCDIR([src/main.cpp]) diff --git a/src/clientversion.h b/src/clientversion.h index ff979c6cb46..ba3035aed47 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -20,7 +20,7 @@ #define CLIENT_VERSION_BUILD 0 //! Set to true for release, false for prerelease or test build -#define CLIENT_VERSION_IS_RELEASE false +#define CLIENT_VERSION_IS_RELEASE true /** * Copyright year (2009-this) From 343492795af9b59cc03650bd8d45bb813f6b96ec Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Tue, 23 Dec 2014 18:19:54 +0100 Subject: [PATCH 017/201] doc: add section about watch-only addresses to release notes --- doc/release-notes.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/doc/release-notes.md b/doc/release-notes.md index 91c69b29a29..0a59d27a694 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -148,6 +148,31 @@ than the implementation in OpenSSL. [1] https://eprint.iacr.org/2014/161.pdf +Watch-only addresses in the wallet +================================== + +The wallet can now track transactions to addresses (or scripts) for which you +do not have the private keys. + +This can be used to track payments without needing the private keys online on a +possibly vulnerable system. In addition, it can help for (manual) construction +of multisig transactions where you are only one of the signers. + +One new RPC, `importaddress`, is added which functions similarly to +`importprivkey`, but instead takes an address or script (in hexadecimal) as +argument. After using it, outputs credited to this address or script are +considered to be yours. + +The following RPCs have optional support for watch-only addresses: +`getbalance`, `listreceivedbyaddress`, `listreceivedbyaccount`, +`listtransactions`, `listaccounts`, `listsinceblock`, `gettransaction`. See the +RPC documentation for those methods for more information. + +Compared to using `getrawtransaction`, this mechanism does not require +`-txindex`, scales better, integrates better with the wallet, and is compatible +with future block chain pruning functionality. It does mean the address needs +to added to the wallet before the payment, though. + 0.10.0 Release notes ======================= From a2300499b76e1a3654241f871ab53d5f6b95308e Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Tue, 23 Dec 2014 19:08:06 +0100 Subject: [PATCH 018/201] doc: mention consensus library in release notes --- doc/release-notes.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/doc/release-notes.md b/doc/release-notes.md index 0a59d27a694..803bb33e6bf 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -173,6 +173,28 @@ Compared to using `getrawtransaction`, this mechanism does not require with future block chain pruning functionality. It does mean the address needs to added to the wallet before the payment, though. +Consensus library +================= + +Starting from 0.10.0, the Bitcoin Core distribution includes a consensus library. + +The purpose of this library is to make the verification functionality that is +critical to Bitcoin's consensus available to other applications, e.g. to language +bindings such as [python_bitcoinlib](https://pypi.python.org/pypi/python-bitcoinlib) or +alternative node implementations. + +This library is called `libbitcoinconsensus.so` (or, `.dll` for Windows). +Its interface is defined in the C header [bitcoinconsensus.h](https://github.com/bitcoin/bitcoin/blob/0.10/src/script/bitcoinconsensus.h). + +In its initial version the API includes two functions: + +- `bitcoinconsensus_verify_script` verifies a script. It returns whether the indicated input of the provided serialized transaction +correctly spends the passed scriptPubKey under additional constraints indicated by flags +- `bitcoinconsensus_version` returns the API version, currently at an experimental `0` + +The functionality is planned to be extended to e.g. UTXO management in upcoming releases, but the interface +for existing methods should remain stable. + 0.10.0 Release notes ======================= From 2bb0ca9b5549e6612a71e9a046b3a973bc346195 Mon Sep 17 00:00:00 2001 From: Peter Todd Date: Tue, 23 Dec 2014 19:31:02 +0100 Subject: [PATCH 019/201] doc: mention P2SH IsStandard relaxation in release notes --- doc/release-notes.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/doc/release-notes.md b/doc/release-notes.md index 803bb33e6bf..e1998c6bdfa 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -195,6 +195,17 @@ correctly spends the passed scriptPubKey under additional constraints indicated The functionality is planned to be extended to e.g. UTXO management in upcoming releases, but the interface for existing methods should remain stable. +Standard script rules relaxed for P2SH addresses +================================================ + +The IsStandard() rules have been almost completely removed for P2SH +redemption scripts, allowing applications to make use of any valid +script type, such as "n-of-m OR y", hash-locked oracle addresses, etc. +While the Bitcoin protocol has always supported these types of script, +actually using them on mainnet has been previously inconvenient as +standard Bitcoin Core nodes wouldn't relay them to miners, nor would +most miners include them in blocks they mined. + 0.10.0 Release notes ======================= From 4e0bfa581438a662147fe4459522b308406d7f57 Mon Sep 17 00:00:00 2001 From: Jeff Garzik Date: Tue, 23 Dec 2014 20:14:37 +0100 Subject: [PATCH 020/201] doc: add bitcoin-tx section to release notes --- doc/release-notes.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/doc/release-notes.md b/doc/release-notes.md index e1998c6bdfa..da772434721 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -206,6 +206,30 @@ actually using them on mainnet has been previously inconvenient as standard Bitcoin Core nodes wouldn't relay them to miners, nor would most miners include them in blocks they mined. +bitcoin-tx +============= + +It has been observed that many of the RPC functions offered by bitcoind are +"pure functions", and operate independently of the bitcoind wallet. This +included many of the RPC "raw transaction" API functions, such as +createrawtransaction. + +bitcoin-tx is a newly introduced command line utility designed to enable easy +manipulation of bitcoin transactions. A summary of its operation may be +obtained via "bitcoin-tx --help" Transactions may be created or signed in a +manner similar to the RPC raw tx API. Transactions may be updated, deleting +inputs or outputs, or appending new inputs and outputs. Custom scripts may be +easily composed using a simple text notation, borrowed from the bitcoin test +suite. + +This tool may be used for experimenting with new transaction types, signing +multi-party transactions, and many other uses. Long term, the goal is to +deprecate and remove "pure function" RPC API calls, as those do not require a +server round-trip to execute. + +Other utilities "bitcoin-key" and "bitcoin-script" have been proposed, making +key and script operations easily accessible via command line. + 0.10.0 Release notes ======================= From 06ca0651b626eb6e500835e7d3cab9b3e43f3e38 Mon Sep 17 00:00:00 2001 From: Peter Todd Date: Thu, 25 Dec 2014 03:12:17 -0500 Subject: [PATCH 021/201] Fix CScriptID(const CScript& in) in empty script case Previously an empty script wouldn't be hashed, and CScriptID would be assigned the incorrect value of 0 instead. This bug can be seen in the RPC decodescript command: $ btc decodescript "" { "asm" : "", "type" : "nonstandard", "p2sh" : "31h1vYVSYuKP6AhS86fbRdMw9XHieotbST" } Correct output: $ btc decodescript "" { "asm" : "", "type" : "nonstandard", "p2sh" : "3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy" } Rebased-From: d78f0dafd520f481f909cca7e361a4e482cbea72 Github-Pull: #5541 --- src/script/standard.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/script/standard.cpp b/src/script/standard.cpp index ab6e6cde0de..6e2c465c865 100644 --- a/src/script/standard.cpp +++ b/src/script/standard.cpp @@ -18,7 +18,7 @@ typedef vector valtype; unsigned nMaxDatacarrierBytes = MAX_OP_RETURN_RELAY; -CScriptID::CScriptID(const CScript& in) : uint160(in.size() ? Hash160(in.begin(), in.end()) : 0) {} +CScriptID::CScriptID(const CScript& in) : uint160(Hash160(in.begin(), in.end())) {} const char* GetTxnOutputType(txnouttype t) { From b3d67e1c34aa65a6d4587e3aa1b533b333efaeb4 Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Tue, 23 Dec 2014 19:42:40 -0500 Subject: [PATCH 022/201] gitian: attempt to fix tarball determinisim Rebased-From: 566c6cb8a2a277d9c5e4897ad02c5bb15786523c Github-Pull: #5536 --- contrib/gitian-descriptors/gitian-linux.yml | 4 ++-- contrib/gitian-descriptors/gitian-osx.yml | 6 +++--- contrib/gitian-descriptors/gitian-win.yml | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/contrib/gitian-descriptors/gitian-linux.yml b/contrib/gitian-descriptors/gitian-linux.yml index bba2104edb7..28bd9211acd 100644 --- a/contrib/gitian-descriptors/gitian-linux.yml +++ b/contrib/gitian-descriptors/gitian-linux.yml @@ -79,7 +79,7 @@ script: | mkdir -p temp pushd temp tar xf ../$SOURCEDIST - find bitcoin-* | sort | tar --no-recursion -c -T - | gzip -9n > ../$SOURCEDIST + find bitcoin-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST popd ORIGPATH="$PATH" @@ -99,7 +99,7 @@ script: | find . -name "lib*.la" -delete find . -name "lib*.a" -delete rm -rf ${DISTNAME}/lib/pkgconfig - find . | sort | tar --no-recursion -c -T - | gzip -9n > ${OUTDIR}/${DISTNAME}-${i}.tar.gz + find . | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ${OUTDIR}/${DISTNAME}-${i}.tar.gz cd ../../ done mkdir -p $OUTDIR/src diff --git a/contrib/gitian-descriptors/gitian-osx.yml b/contrib/gitian-descriptors/gitian-osx.yml index eb6df2096eb..4f05aad2335 100644 --- a/contrib/gitian-descriptors/gitian-osx.yml +++ b/contrib/gitian-descriptors/gitian-osx.yml @@ -90,7 +90,7 @@ script: | mkdir -p temp pushd temp tar xf ../$SOURCEDIST - find bitcoin-* | sort | tar --no-recursion -c -T - | gzip -9n > ../$SOURCEDIST + find bitcoin-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST popd ORIGPATH="$PATH" @@ -116,7 +116,7 @@ script: | cp ${BASEPREFIX}/${i}/native/bin/${i}-pagestuff unsigned-app-${i}/pagestuff mv dist unsigned-app-${i} pushd unsigned-app-${i} - find . | sort | tar --no-recursion -czf ${OUTDIR}/${DISTNAME}-osx-unsigned.tar.gz -T - + find . | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ${OUTDIR}/${DISTNAME}-osx-unsigned.tar.gz popd make deploy @@ -126,7 +126,7 @@ script: | find . -name "lib*.la" -delete find . -name "lib*.a" -delete rm -rf ${DISTNAME}/lib/pkgconfig - find . | sort | tar --no-recursion -c -T - | gzip -9n > ${OUTDIR}/${DISTNAME}-${i}.tar.gz + find . | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ${OUTDIR}/${DISTNAME}-${i}.tar.gz cd ../../ done mkdir -p $OUTDIR/src diff --git a/contrib/gitian-descriptors/gitian-win.yml b/contrib/gitian-descriptors/gitian-win.yml index 97c823cde69..4baa08c88da 100644 --- a/contrib/gitian-descriptors/gitian-win.yml +++ b/contrib/gitian-descriptors/gitian-win.yml @@ -83,7 +83,7 @@ script: | mkdir -p temp pushd temp tar xf ../$SOURCEDIST - find bitcoin-* | sort | tar --no-recursion -c -T - | gzip -9n > ../$SOURCEDIST + find bitcoin-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST popd ORIGPATH="$PATH" From 52e57055cce3adedd72ad2dc9446c7c2858c3b72 Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Tue, 23 Dec 2014 22:02:16 +0000 Subject: [PATCH 023/201] en: Avoid ambiguous language regarding when transactions confirm Rebased-From: a15dba5dff1229b67ff44bf16ff14063e885f376 Github-Pull: #5533 --- src/init.cpp | 2 +- src/rpcmining.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/init.cpp b/src/init.cpp index 3cdd42e2be3..4374d60fe5f 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -286,7 +286,7 @@ std::string HelpMessage(HelpMessageMode mode) strUsage += " -salvagewallet " + _("Attempt to recover private keys from a corrupt wallet.dat") + " " + _("on startup") + "\n"; strUsage += " -sendfreetransactions " + strprintf(_("Send transactions as zero-fee transactions if possible (default: %u)"), 0) + "\n"; strUsage += " -spendzeroconfchange " + strprintf(_("Spend unconfirmed change when sending transactions (default: %u)"), 1) + "\n"; - strUsage += " -txconfirmtarget= " + strprintf(_("If paytxfee is not set, include enough fee so transactions are confirmed on average within n blocks (default: %u)"), 1) + "\n"; + strUsage += " -txconfirmtarget= " + strprintf(_("If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u)"), 1) + "\n"; strUsage += " -maxtxfee= " + strprintf(_("Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s)"), FormatMoney(maxTxFee)) + "\n"; strUsage += " -upgradewallet " + _("Upgrade wallet to latest format") + " " + _("on startup") + "\n"; strUsage += " -wallet= " + _("Specify wallet file (within data directory)") + " " + strprintf(_("(default: %s)"), "wallet.dat") + "\n"; diff --git a/src/rpcmining.cpp b/src/rpcmining.cpp index 45899d3db53..b406106ff28 100644 --- a/src/rpcmining.cpp +++ b/src/rpcmining.cpp @@ -674,7 +674,7 @@ Value estimatefee(const Array& params, bool fHelp) throw runtime_error( "estimatefee nblocks\n" "\nEstimates the approximate fee per kilobyte\n" - "needed for a transaction to get confirmed\n" + "needed for a transaction to begin confirmation\n" "within nblocks blocks.\n" "\nArguments:\n" "1. nblocks (numeric)\n" @@ -706,7 +706,7 @@ Value estimatepriority(const Array& params, bool fHelp) throw runtime_error( "estimatepriority nblocks\n" "\nEstimates the approximate priority\n" - "a zero-fee transaction needs to get confirmed\n" + "a zero-fee transaction needs to begin confirmation\n" "within nblocks blocks.\n" "\nArguments:\n" "1. nblocks (numeric)\n" From 591c5692f8dd166daf2f1e4f659c6a1cf1db8813 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Wed, 24 Dec 2014 17:39:53 +0100 Subject: [PATCH 024/201] Release notes: formatting, headers-first, rest --- doc/release-notes.md | 85 +++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 64 insertions(+), 21 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index da772434721..3df7b3a8e06 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -10,7 +10,7 @@ Please report bugs using the issue tracker at github: https://github.com/bitcoin/bitcoin/issues Upgrading and downgrading -========================== +========================= How to Upgrade -------------- @@ -28,8 +28,8 @@ Downgrading 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: +block download (see further), 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 @@ -45,8 +45,37 @@ bootstrap.dat) anew afterwards. This does not affect wallet forward or backward compatibility. + +Notable changes +=============== + +Faster synchronization +---------------------- + +Bitcoin Core now uses 'headers-first synchronization'. This means that we first +ask peers for block headers (a total of 27 megabytes, as of December 2014) and +validate those. In a second stage, when the headers have been discovered, we +download the blocks. However, as we already know about the whole chain in +advance, the blocks can be downloaded in parallel from all available peers. + +In practice, this means a much faster and more robust synchronization. On +recent hardware with a decent network link, it can be as little as 3 hours +for an initial full synchronization. You may notice a slower progress in the +very first few minutes, when headers are still being fetched and verified, but +it should gain speed afterwards. + +A few RPCs were added/updated as a result of this: +- `getblockchaininfo` now returns the number of validated headers in addition to +the number of validated blocks. +- `getpeerinfo` lists both the number of blocks and headers we know we have in +common with each peer. While synchronizing, the heights of the blocks that we +have requested from peers (but haven't received yet) are also listed as +'inflight'. +- A new RPC `getchaintips` lists all known branches of the block chain, +including those we only have headers for. + 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 @@ -61,27 +90,22 @@ 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 ---------------------------- - +New command line options for fee estimation: - `-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 ----------------- - +New RPC commands for fee estimation: - `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. @@ -107,8 +131,27 @@ Using wildcards will result in the rule being rejected with the following error 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). + +REST interface +-------------- + +A new HTTP API is exposed when running with the `-rest` flag, which allows +unauthenticated access to public node data. + +It is served on the same port as RPC, but does not need a password, and uses +plain HTTP instead of JSON-RPC. + +Assuming a local RPC server running on port 8332, it is possible to request: +- Blocks: http://localhost:8332/rest/block/*HASH*.*EXT* +- Blocks without transactions: http://localhost:8332/block/notxdetails/*HASH*.*EXT* +- Transactions (requires `-txindex`): http://localhost:8332/tx/*HASH*.*EXT* + +In every case, *EXT* can be `bin` (for raw binary data), `hex` (for hex-encoded binary) or `json`. + +For more details, see the `doc/REST-interface.md` document in the repository. + 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 @@ -120,7 +163,7 @@ 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. @@ -149,7 +192,7 @@ than the implementation in OpenSSL. [1] https://eprint.iacr.org/2014/161.pdf Watch-only addresses in the wallet -================================== +---------------------------------- The wallet can now track transactions to addresses (or scripts) for which you do not have the private keys. @@ -174,7 +217,7 @@ with future block chain pruning functionality. It does mean the address needs to added to the wallet before the payment, though. Consensus library -================= +----------------- Starting from 0.10.0, the Bitcoin Core distribution includes a consensus library. @@ -196,7 +239,7 @@ The functionality is planned to be extended to e.g. UTXO management in upcoming for existing methods should remain stable. Standard script rules relaxed for P2SH addresses -================================================ +------------------------------------------------ The IsStandard() rules have been almost completely removed for P2SH redemption scripts, allowing applications to make use of any valid @@ -207,7 +250,7 @@ standard Bitcoin Core nodes wouldn't relay them to miners, nor would most miners include them in blocks they mined. bitcoin-tx -============= +---------- It has been observed that many of the RPC functions offered by bitcoind are "pure functions", and operate independently of the bitcoind wallet. This @@ -230,8 +273,8 @@ server round-trip to execute. Other utilities "bitcoin-key" and "bitcoin-script" have been proposed, making key and script operations easily accessible via command line. -0.10.0 Release notes -======================= +0.10.0 Change log +================= Detailed release notes follow. This overview includes changes that affect external behavior, not code moves, refactors or string updates. @@ -534,7 +577,7 @@ Miscellaneous: - `6e6a36c` contrib: show pull # in prompt for github-merge script Credits --------- +======= Thanks to everyone who contributed to this release: From ed934bdb4dab0b765ce5d16cb5182ecee5fade0b Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Sun, 28 Dec 2014 12:21:17 +0100 Subject: [PATCH 025/201] pull new translations from transifex --- src/qt/locale/bitcoin_es.ts | 10 ++- src/qt/locale/bitcoin_it.ts | 58 +++++++++++++- src/qt/locale/bitcoin_nl.ts | 190 ++++++++++++++++++++++++++++++++++++++++---- src/qt/locale/bitcoin_uk.ts | 6 +- 4 files changed, 244 insertions(+), 20 deletions(-) diff --git a/src/qt/locale/bitcoin_es.ts b/src/qt/locale/bitcoin_es.ts index a2bd4e8e89c..aa008ad18c4 100644 --- a/src/qt/locale/bitcoin_es.ts +++ b/src/qt/locale/bitcoin_es.ts @@ -3,7 +3,7 @@ AddressBookPage Double-click to edit address or label - Haga doble clic para editar la etiqueta o dirección + Haga doble clic para editar la dirección o etiqueta Create a new address @@ -3107,6 +3107,10 @@ Por ejemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Error al cargar wallet.dat: El monedero requiere una versión más reciente de Bitcoin Core + Error: Unsupported argument -tor found, use -onion. + Error: Argumento encontrado -tor no soportado, utilice -onion + + Fee (in BTC/kB) to add to transactions you send (default: %s) Cuota (in BTC/kB) para añadir a las transacciones que envíes (por defecto: %s) @@ -3175,6 +3179,10 @@ Por ejemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Enviar información de trazas/depuración a la consola en lugar de al archivo debug.log + Send transactions as zero-fee transactions if possible (default: %u) + Mandar transacciones como comisión-cero si es posible (por defecto: %u) + + Show all debugging options (usage: --help -help-debug) Muestra todas las opciones de depuración (uso: --help -help-debug) diff --git a/src/qt/locale/bitcoin_it.ts b/src/qt/locale/bitcoin_it.ts index cc85dfe2271..60ffe6df155 100644 --- a/src/qt/locale/bitcoin_it.ts +++ b/src/qt/locale/bitcoin_it.ts @@ -3,7 +3,7 @@ AddressBookPage Double-click to edit address or label - Doppio click per modificare l'indirizzo o l'etichetta + Fai doppio click per modificare o cancellare l'etichetta Create a new address @@ -1860,6 +1860,10 @@ Più URL vengono separati da una barra verticale |. 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. + (read the tooltip) + (leggi il suggerimento) + + Recommended: Raccomandati: @@ -1884,6 +1888,10 @@ Più URL vengono separati da una barra verticale |. Invia una transazione a zero commissioni se possibile + (confirmation may take longer) + (la conferma potrebbe richiedere più tempo) + + Send to multiple recipients at once Invia a diversi beneficiari in una volta sola @@ -2790,6 +2798,10 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Elimina tutte le transazioni dal wallet e recupera solo le parti della blockchain con il comando -rescan all'avvio. + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + Distribuito secondo la licenza software MIT, vedi il file incluso COPYNG oppure <http://www.opensource.org/licenses/mit-license.php>. + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. Entra in modalità di test di regressione, la quale usa una speciale catena in cui i blocchi possono essere risolti istantaneamente. @@ -2842,6 +2854,10 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Attenzione: wallet.dat corrotto, dati recuperati! Il wallet.dat originale è stato salvato come wallet.{timestamp}.bak in %s; se il tuo saldo o le transazioni non sono corrette dovresti ripristinare da un backup. + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + Peer in whitelist connessi dalla data netmask oppure dall'indirizzo IP. Può essere specificato più volte. + + (default: 1) (predefinito: 1) @@ -2990,14 +3006,30 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Importa blocchi da un file blk000??.dat esterno + Allow JSON-RPC connections from specified source. Valid for <ip> 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). This option can be specified multiple times + Permetti connessioni JSON-RPC da una origine specifica. I valori validi per <ip> sono un singolo IP (ex: 1.2.3.4), un network/netmask (ex: 1.2.3.4/255.255.255.0) oppure un network/CIDR (ex: 1.2.3.4/24). Questa opzione può essere specificata più volte. + + An error occurred while setting up the RPC address %s port %u for listening: %s Si è verificato un errore durante l'impostazione della %s porta %u RPC per l'ascolto su: %s + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + Collega all'indirizzo indicato e resta permetti l'ascolto su questo. Usa la notazione [host]:porta per l'IPv6 + + + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + Associa un indirizzo per l'ascolto di connessioni JSON-RPC. Usa l'annotazione [host]:porta per IPv6. Questa opzione può essere specificata più volte (default: associa a tutte le interfacce) + + Cannot obtain a lock on data directory %s. Bitcoin Core is probably already running. Non è possibile ottenere un lock sulla cartella %s. Probabilmente Bitcoin Core è già in esecuzione. + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + Crea nuovi file con i permessi di default del sistema invece dell'umask 077 (effettiva solo con la funzionalità del wallet disabilitata) + + Error: Listening for incoming connections failed (listen returned error %s) Errore: l'ascolto per per connessioni in arrivo fallito (errore riportato %s) @@ -3050,6 +3082,10 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Importo non valido per -mintxfee=<amount>: '%s' + Invalid netmask specified in -whitelist: '%s' + Netmask non valida specificata in -whitelist: '%s' + + Node relay options: Opzioni relay nodo: @@ -3183,6 +3219,10 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Errore caricamento wallet.dat: Portamonete corrotto + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + Numero di secondi di sospensione per i peer di cattiva qualità prima di riconnettersi (default: %u) + + (default: %s) (default: %s) @@ -3203,6 +3243,10 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Quanti blocchi da controllare all'avvio (dafault: %u, 0 = tutti) + Include IP addresses in debug output (default: %u) + Includi gli indirizzi IP nell'output del debug (default: %u) + + Invalid -proxy address: '%s' Indirizzo -proxy non valido: '%s' @@ -3219,6 +3263,18 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Mantieni al massimo <n> connessioni ai peers (default: %u) + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + Buffer di ricezione massimo per connessione, <n>*1000 byte (default: %u) + + + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + Buffer di invio massimo per connessione, <n>*1000 byte (default: %u) + + + Only accept block chain matching built-in checkpoints (default: %u) + Accetta solo una catena di blocchi che corrisponde ai checkpoint predefiniti (default: %u) + + Prepend debug output with timestamp (default: %u) Pretendi output di debug con timestamp (default: %u) diff --git a/src/qt/locale/bitcoin_nl.ts b/src/qt/locale/bitcoin_nl.ts index 258c7f109fd..f5f708fac93 100644 --- a/src/qt/locale/bitcoin_nl.ts +++ b/src/qt/locale/bitcoin_nl.ts @@ -51,7 +51,7 @@ Choose the address to receive coins with - Kies het adres om munten voor te ontvangen + Kies het adres om munten op te ontvangen C&hoose @@ -59,15 +59,15 @@ Sending addresses - Bezig met het versturen van de adressen + Verstuur adressen Receiving addresses - Adressen ontvangen + Ontvang adressen These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Dit zijn uw Bitcoinadressen om betalingen mee te verzenden. Controleer altijd het bedrag en het ontvangende adres voordat u uw bitcoins verzendt. + Dit zijn uw Bitcoinadressen om betalingen mee te verzenden. Controleer altijd het bedrag en het ontvang adres voordat u uw bitcoins verzendt. These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. @@ -117,7 +117,7 @@ AskPassphraseDialog Passphrase Dialog - Wachtwoorddialoogscherm + Wachtwoorddialoog Enter passphrase @@ -185,11 +185,11 @@ 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>. - Vul een nieuw + Voer een nieuw wachtwoord in voor uw portomonee.<br/>Gebruik een wachtwoord van <b>tien of meer willekeurige karakters</b>, of <b>acht of meer woorden</b>. 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. - Bitcoin zal nu afsluiten om het versleutelingsproces te voltooien. Onthoud dat het versleutelen van uw portemonnee u niet volledig kan beschermen: Malware kan uw computer infecteren en uw bitcoins stelen. + Bitcoin zal nu afsluiten om het versleutelingsproces te voltooien. Onthoudt dat het versleutelen van uw portemonnee u niet volledig kan beschermen: Malware kan uw computer infecteren en uw bitcoins stelen. Wallet encryption failed @@ -240,7 +240,7 @@ Show general overview of wallet - Toon algemeen overzicht van de portemonnee + Toon algemeen overzicht van uw portemonnee &Transactions @@ -284,11 +284,11 @@ &Sending addresses... - &Adressen aan het versturen. + V&erstuur adressen... &Receiving addresses... - &Adressen aan het ontvangen... + O&ntvang adressen... Open &URI... @@ -296,7 +296,7 @@ Bitcoin Core client - Bitcoin kern applicatie + Bitcoin Kern applicatie Importing blocks from disk... @@ -424,11 +424,11 @@ %n active connection(s) to Bitcoin network - %n actieve connectie naar Bitcoinnetwerk%n actieve connecties naar Bitcoinnetwerk + %n actieve connectie naar Bitcoin netwerk%n actieve connecties naar Bitcoin netwerk No block source available... - Geen bron van blokken beschikbaar... + Geen bron voor blokken beschikbaar... %n hour(s) @@ -480,7 +480,7 @@ Processed %n blocks of transaction history. - %n Blok verwerkt van transactie geschiedenis.%n Blokken verwerkt van transactie geschiedenis. + %n Blok transactie geschiedenis verwerkt.%n Blokken transactie geschiedenis verwerkt. Catching up... @@ -618,7 +618,7 @@ Adres: %4 Lock unspent - Blokeer niet gebruikte + Blokeer ongebruikte Unlock unspent @@ -1865,6 +1865,10 @@ Adres: %4 totaal ten minste + (read the tooltip) + (lees de tooltip) + + Recommended: Aanbevolen: @@ -1873,6 +1877,10 @@ Adres: %4 Handmatig: + (Smart fee not initialized yet. This usually takes a few blocks...) + (Slimme vergoeding is nog niet geïnitialiseerd. Dit duurt meestal een paar blokken...) + + Confirmation time: Bevestigings tijd: @@ -1885,6 +1893,10 @@ Adres: %4 snel + Send as zero-fee transaction if possible + Verstuur als transactie zonder verzendkosten indien mogelijk + + (confirmation may take longer) (bevestiging kan langer duren) @@ -2533,6 +2545,10 @@ Adres: %4 Type transactie. + Whether or not a watch-only address is involved in this transaction. + Of er een alleen-bekijken adres is betrokken bij deze transactie. + + Destination address of transaction. Ontvangend adres van transactie. @@ -2801,6 +2817,14 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comBind aan opgegeven adres en luister er altijd op. Gebruik [host]:port notatie voor IPv6 + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + Verwijder alle transacties van de portemonnee en herstel alleen de delen van de blockchain door -rescan tijdens het opstarten + + + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + Uitgegeven onder de MIT software licentie, zie het bijgevoegde bestand COPYING of <http://www.opensource.org/licenses/mit-license.php>. + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. Schakel regressietest-modus in, die een speciale blokketen gebruikt waarin blokken onmiddellijk opgelost kunnen worden. @@ -2853,6 +2877,10 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comWaarschuwing: wallet.dat is corrupt, data is veiliggesteld! Originele wallet.dat is opgeslagen als wallet.{tijdstip}.bak in %s; als uw balans of transacties incorrect zijn dient u een backup terug te zetten. + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + Goedgekeurde peers die verbinden van het ingegeven netmask of IP adres. Kan meerdere keren gespecificeerd worden. + + (default: 1) (standaard: 1) @@ -2913,6 +2941,10 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comFout bij openen blokkendatabase + Error: A fatal internal error occured, see debug.log for details + Fout: Een fatale interne fout is opgetreden, zie debug.log voor details + + Error: Disk space is low! Fout: Weinig vrije diskruimte! @@ -2945,6 +2977,10 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comNiet genoeg file descriptors beschikbaar. + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + Verbind alleen met nodes in netwerk <net> (ipv4, ipv6 of onion) + + Rebuild block chain index from current blk000??.dat files Blokketen opnieuw opbouwen met behulp van huidige blk000??.dat-bestanden @@ -2993,10 +3029,38 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comImporteert blokken van extern blk000??.dat bestand + Allow JSON-RPC connections from specified source. Valid for <ip> 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). This option can be specified multiple times + Sta JSON-RPC verbindingen toe vanuit een gespecificeerde bron. Geldig voor <ip> zijn een enkel IP (bijv. 1.2.3.4), een netwerk/netmask (bijv. 1.2.3.4/255.255.255.0) of een netwerk/CIDR (bijv. 1.2.3.4/24). Deze optie kan meerdere keren gespecificeerd worden. + + + An error occurred while setting up the RPC address %s port %u for listening: %s + Er is een fout opgetreden tijdens het opzetten van het RPC adres %s poort %u voor luisteren: %s + + + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + Bind aan opgegeven adres en keur peers die ermee verbinden goed. Gebruik [host]:poort notatie voor IPv6 + + + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + Bind aan gegeven adres om te luisteren voor JSON-RPC verbindingen. Gebruik [host]:poort notatie voor IPv6. Deze optie kan meerdere keren gespecificeerd worden (standaard: bind aan alle interfaces. + + Cannot obtain a lock on data directory %s. Bitcoin Core is probably already running. Kan geen lock verkrijgen op gegevensmap %s. Bitcoin Core draait waarschijnlijk al. + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + Doorlopend tarief-limiet op gratis transacties toepassen tot <n>*1000 bytes per minuut (standaard: %u) + + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + Creër nieuwe bestanden met standaard systeem bestandsrechten in plaats van umask 077 (alleen effectief met uitgeschakelde portemonnee functionaliteit) + + + Error: Listening for incoming connections failed (listen returned error %s) + Fout: luisteren naar binnenkomende verbindingen mislukt (luisteren gaf foutmelding %s) + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) Voer commando uit zodra een waarschuwing is ontvangen of wanneer we een erg lange fork detecteren (%s in commando wordt vervangen door bericht) @@ -3005,14 +3069,58 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comStel maximumgrootte in bytes in voor hoge-prioriteits-/lage-transactiekosten-transacties (standaard: %d) + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + Stel het aantal threads in voor het genereren van coins indien ingesteld (-1 = alle kernen, standaard: %d) + + + 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. + Dit product bevat software dat ontwikkeld is door het OpenSSL Project voor gebruik in de OpenSSL Toolkit <https://www.openssl.org/> en cryptografische software geschreven door Eric Young en UPnP software geschreven door Thomas Bernard. + + + Warning: Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly. + Waarschuwing: Controleer dat de datum en tijd van uw computer correct zijn ingesteld! Bij een onjuist ingestelde klok zal Bitcoin Core niet goed werken. + + + Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway + Goedgekeurde peers kunnen niet ge-DoS-banned worden en hun transacties worden altijd doorgestuurd, zelfs als ze reeds in de mempool aanwezig zijn, nuttig voor bijv. een gateway + + + Cannot resolve -whitebind address: '%s' + Kan -whitebind adres niet herleiden: '%s' + + + Connect through SOCKS5 proxy + Verbind door SOCKS5 proxy + + + Copyright (C) 2009-%i The Bitcoin Core Developers + Auteursrecht (C) 2009-%i De Bitcoin Core Ontwikkelaars + + + Could not parse -rpcbind value %s as network address + Niet mogelijk om -rpcbind waarde %s te verwerken als netwerk adres + + Error loading wallet.dat: Wallet requires newer version of Bitcoin Core Fout bij laden wallet.dat: Portemonnee vereist een nieuwere versie van Bitcoin Core + Error: Unsupported argument -tor found, use -onion. + Fout: Niet ondersteund argument -tor gevonden, gebruik -onion. + + + Fee (in BTC/kB) to add to transactions you send (default: %s) + Transactiekosten (in BTC/kB) om toe te voegen aan transacties die u verstuurd (standaard: %s) + + Information Informatie + Initialization sanity check failed. Bitcoin Core is shutting down. + Initialisatie sanity check mislukt. Bitcoin Core is aan het afsluiten. + + Invalid amount for -minrelaytxfee=<amount>: '%s' Ongeldig bedrag voor -minrelaytxfee=<bedrag>: '%s' @@ -3025,6 +3133,10 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comOngeldig bedrag voor -paytxfee=<bedrag>: '%s' (Minimum %s) + Invalid netmask specified in -whitelist: '%s' + Ongeldig netmask gespecificeerd in -whitelist: '%s' + + Keep at most <n> unconnectable blocks in memory (default: %u) Houd maximaal <n> onverbonden blokken in geheugen (standaard: %u) @@ -3033,6 +3145,14 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comHoud maximaal <n> onverbonden transacties in geheugen (standaard: %u) + Need to specify a port with -whitebind: '%s' + Verplicht een poort met -whitebind op te geven: '%s' + + + Node relay options: + Node relay opties: + + Print block on startup, if found in block index Toon block bij opstarten, wanneer gevonden in block index @@ -3057,6 +3177,10 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comStuur trace/debug-info naar de console in plaats van het debug.log bestand + Send transactions as zero-fee transactions if possible (default: %u) + Verstuur transacties zonder verzendkosten indien mogelijk (standaard: %u) + + Show all debugging options (usage: --help -help-debug) Toon alle foutopsporingsopties (gebruik: --help -help-debug) @@ -3085,6 +3209,10 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comTransactie te groot + Unable to bind to %s on this computer (bind returned error %s) + Niet in staat om aan %s te binden op deze computer (bind gaf error %s) + + Use UPnP to map the listening port (default: 1 when listening) Gebruik UPnP om de luisterende poort te mappen (standaard: 1 als er wordt geluisterd) @@ -3093,6 +3221,10 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comGebruikersnaam voor JSON-RPC-verbindingen + Wallet needed to be rewritten: restart Bitcoin Core to complete + Portemonnee moest herschreven worden: Herstart Bitcoin Core om te voltooien + + Warning Waarschuwing @@ -3101,6 +3233,14 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comWaarschuwing: Deze versie is verouderd, een upgrade is vereist! + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + Waarschuwing: Niet ondersteund argument -benchmark genegeerd, gebruik -debug=bench. + + + Warning: Unsupported argument -debugnet ignored, use -debug=net. + Waarschuwing: Niet ondersteund argument -debugnet genegeerd, gebruik -debug=net. + + Zapping all transactions from wallet... Bezig met het zappen van alle transacties van de portemonnee... @@ -3149,6 +3289,18 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comFout bij laden wallet.dat: Portemonnee corrupt + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = behoudt tx meta data bijv. account eigenaar en betalingsverzoek informatie, 2. sla tx meta data niet op) + + + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + Leeg database-activiteit uit de geheugen pool naar schijf log elke <n> megabytes (standaard: %u) + + + How thorough the block verification of -checkblocks is (0-4, default: %u) + Hoe grondig de blokverificatie van -checkblocks is (0-4, standaard: %u) + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) Onderhoud een volledige transactieindex, gebruikt door de getrawtransaction rpc call (standaard: %u) @@ -3165,6 +3317,10 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comGebruik een aparte SOCKS5 proxy om 'Tor hidden services' te bereiken (standaard: %s) + Acceptable ciphers (default: %s) + Geaccepteerde versleutelingen (standaard: %s) + + Always query for peer addresses via DNS lookup (default: %u) Vind anderen door middel van een DNS-naslag (standaard: %u) @@ -3273,6 +3429,10 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comBesteed onbevestigd wisselgeld bij het versturen van transacties (standaard: %u) + Stop running after importing blocks from disk (default: %u) + Stop uitvoeren na het importeren van blokken van de schijf (standaard: %u) + + Threshold for disconnecting misbehaving peers (default: %u) Drempel om verbinding te verbreken naar zich misdragende peers (standaard: %u) diff --git a/src/qt/locale/bitcoin_uk.ts b/src/qt/locale/bitcoin_uk.ts index 9b5f4c9f4e7..fe39c8e2cf9 100644 --- a/src/qt/locale/bitcoin_uk.ts +++ b/src/qt/locale/bitcoin_uk.ts @@ -1830,7 +1830,7 @@ Address: %4 After Fee: - Після комісії + Після комісії: Change: @@ -1910,7 +1910,7 @@ Address: %4 Send as zero-fee transaction if possible - Надіслати як нульовий плата за передачу, якщо це можливо + Надіслати транзакцію без сплати комісії, якщо це можливо (confirmation may take longer) @@ -3216,7 +3216,7 @@ rpcpassword=%s Send transactions as zero-fee transactions if possible (default: %u) - Встановити операцію надсилання, як неоплатну операцію, якщо це можливо (за замовчуванням: %u) + Не сплачувати комісію за надсилання транзакцій, якщо це можливо (типово: %u) Show all debugging options (usage: --help -help-debug) From 87d43a3c8e8679cc4a88e4a29545e190c099d973 Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Mon, 29 Dec 2014 15:19:19 -0500 Subject: [PATCH 026/201] rpcserver: attempt to fix uncaught exception. Rebased-From: f9c571aad8261eb9a5cab9dce5b490bd253c5fe1 Github-Pull: #5565 --- src/rpcserver.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/rpcserver.cpp b/src/rpcserver.cpp index 252b0866a2f..4b826465858 100644 --- a/src/rpcserver.cpp +++ b/src/rpcserver.cpp @@ -650,14 +650,16 @@ void StartRPCThreads() bool fListening = false; std::string strerr; + std::string straddress; BOOST_FOREACH(const ip::tcp::endpoint &endpoint, vEndpoints) { - asio::ip::address bindAddress = endpoint.address(); - LogPrintf("Binding RPC on address %s port %i (IPv4+IPv6 bind any: %i)\n", bindAddress.to_string(), endpoint.port(), bBindAny); - boost::system::error_code v6_only_error; - boost::shared_ptr acceptor(new ip::tcp::acceptor(*rpc_io_service)); - try { + asio::ip::address bindAddress = endpoint.address(); + straddress = bindAddress.to_string(); + LogPrintf("Binding RPC on address %s port %i (IPv4+IPv6 bind any: %i)\n", straddress, endpoint.port(), bBindAny); + boost::system::error_code v6_only_error; + boost::shared_ptr acceptor(new ip::tcp::acceptor(*rpc_io_service)); + acceptor->open(endpoint.protocol()); acceptor->set_option(boost::asio::ip::tcp::acceptor::reuse_address(true)); @@ -678,8 +680,8 @@ void StartRPCThreads() } catch(boost::system::system_error &e) { - LogPrintf("ERROR: Binding RPC on address %s port %i failed: %s\n", bindAddress.to_string(), endpoint.port(), e.what()); - strerr = strprintf(_("An error occurred while setting up the RPC address %s port %u for listening: %s"), bindAddress.to_string(), endpoint.port(), e.what()); + LogPrintf("ERROR: Binding RPC on address %s port %i failed: %s\n", straddress, endpoint.port(), e.what()); + strerr = strprintf(_("An error occurred while setting up the RPC address %s port %u for listening: %s"), straddress, endpoint.port(), e.what()); } } From 968f13cae38c56efb65be712e48da7b89e8fd269 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Wed, 31 Dec 2014 09:29:12 +0100 Subject: [PATCH 027/201] mention leveldb 1.18 ARM/x86 db interop --- doc/release-notes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/release-notes.md b/doc/release-notes.md index 3df7b3a8e06..1cb6b4dbfa1 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -575,6 +575,7 @@ Miscellaneous: - `772ab0e` contrib: use batched JSON-RPC in linarize-hashes (optimization) - `7ab4358` Update bash-completion for v0.10 - `6e6a36c` contrib: show pull # in prompt for github-merge script +- `5b9f842` Upgrade leveldb to 1.18, make chainstate databases compatible between ARM and x86 (issue #2293) Credits ======= From 8543b0dfd9b8c0fd808d35a4bae128be34f3ab77 Mon Sep 17 00:00:00 2001 From: Michael Ford Date: Tue, 30 Dec 2014 17:46:57 +0800 Subject: [PATCH 028/201] Correct tooltip on address book page Rebased-From: 06206bb3b78067f1f433dde8062c8ab01aaf43eb Github-Pull: 5571 --- src/qt/forms/addressbookpage.ui | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qt/forms/addressbookpage.ui b/src/qt/forms/addressbookpage.ui index 52fdc6ef06b..264edeb7200 100644 --- a/src/qt/forms/addressbookpage.ui +++ b/src/qt/forms/addressbookpage.ui @@ -27,7 +27,7 @@ Qt::CustomContextMenu - Double-click to edit address or label + Right-click to edit address or label false From b790d139c96284e362f7a8a2d28ea0e61c1fab96 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Wed, 31 Dec 2014 10:39:08 +0100 Subject: [PATCH 029/201] English translation update --- src/qt/bitcoinstrings.cpp | 54 +++++----- src/qt/locale/bitcoin_en.ts | 254 +++++++++++++++++++++----------------------- 2 files changed, 149 insertions(+), 159 deletions(-) diff --git a/src/qt/bitcoinstrings.cpp b/src/qt/bitcoinstrings.cpp index 548529865a1..a19dab4577f 100644 --- a/src/qt/bitcoinstrings.cpp +++ b/src/qt/bitcoinstrings.cpp @@ -10,18 +10,6 @@ #endif static const char UNUSED *bitcoin_strings[] = { QT_TRANSLATE_NOOP("bitcoin-core", "" -"%s, you must set a rpcpassword in the configuration file:\n" -"%s\n" -"It is recommended you use the following random password:\n" -"rpcuser=bitcoinrpc\n" -"rpcpassword=%s\n" -"(you do not need to remember this password)\n" -"The username and password MUST NOT be the same.\n" -"If the file does not exist, create it with owner-readable-only file " -"permissions.\n" -"It is also recommended to set alertnotify so you are notified of problems;\n" -"for example: alertnotify=echo %%s | mail -s \"Bitcoin Alert\" admin@foo.com\n"), -QT_TRANSLATE_NOOP("bitcoin-core", "" "(1 = keep tx meta data e.g. account owner and payment request information, 2 " "= drop tx meta data)"), QT_TRANSLATE_NOOP("bitcoin-core", "" @@ -62,13 +50,6 @@ QT_TRANSLATE_NOOP("bitcoin-core", "" QT_TRANSLATE_NOOP("bitcoin-core", "" "Error: Listening for incoming connections failed (listen returned error %s)"), QT_TRANSLATE_NOOP("bitcoin-core", "" -"Error: The transaction was rejected! This might happen if some of the coins " -"in your wallet were already spent, such as if you used a copy of wallet.dat " -"and coins were spent in the copy but not marked as spent here."), -QT_TRANSLATE_NOOP("bitcoin-core", "" -"Error: This transaction requires a transaction fee of at least %s because of " -"its amount, complexity, or use of recently received funds!"), -QT_TRANSLATE_NOOP("bitcoin-core", "" "Error: Unsupported argument -socks found. Setting SOCKS version isn't " "possible anymore, only SOCKS5 proxies are supported."), QT_TRANSLATE_NOOP("bitcoin-core", "" @@ -92,12 +73,15 @@ QT_TRANSLATE_NOOP("bitcoin-core", "" QT_TRANSLATE_NOOP("bitcoin-core", "" "How thorough the block verification of -checkblocks is (0-4, default: %u)"), QT_TRANSLATE_NOOP("bitcoin-core", "" -"If paytxfee is not set, include enough fee so transactions are confirmed on " -"average within n blocks (default: %u)"), +"If paytxfee is not set, include enough fee so transactions begin " +"confirmation on average within n blocks (default: %u)"), QT_TRANSLATE_NOOP("bitcoin-core", "" "In this mode -genproclimit controls how many blocks are generated " "immediately."), QT_TRANSLATE_NOOP("bitcoin-core", "" +"Invalid amount for -maxtxfee=: '%s' (must be at least the minrelay " +"fee of %s to prevent stuck transactions)"), +QT_TRANSLATE_NOOP("bitcoin-core", "" "Log transaction priority and fee per kB when mining blocks (default: %u)"), QT_TRANSLATE_NOOP("bitcoin-core", "" "Maintain a full transaction index, used by the getrawtransaction rpc call " @@ -106,6 +90,9 @@ QT_TRANSLATE_NOOP("bitcoin-core", "" "Maximum size of data in data carrier transactions we relay and mine " "(default: %u)"), QT_TRANSLATE_NOOP("bitcoin-core", "" +"Maximum total fees to use in a single wallet transaction, setting too low " +"may abort large transactions (default: %s)"), +QT_TRANSLATE_NOOP("bitcoin-core", "" "Number of seconds to keep misbehaving peers from reconnecting (default: %u)"), QT_TRANSLATE_NOOP("bitcoin-core", "" "Output debugging information (default: %u, supplying is optional)"), @@ -128,12 +115,28 @@ QT_TRANSLATE_NOOP("bitcoin-core", "" "the OpenSSL Toolkit and cryptographic software " "written by Eric Young and UPnP software written by Thomas Bernard."), QT_TRANSLATE_NOOP("bitcoin-core", "" +"To use bitcoind, or the -server option to bitcoin-qt, you must set an " +"rpcpassword in the configuration file:\n" +"%s\n" +"It is recommended you use the following random password:\n" +"rpcuser=bitcoinrpc\n" +"rpcpassword=%s\n" +"(you do not need to remember this password)\n" +"The username and password MUST NOT be the same.\n" +"If the file does not exist, create it with owner-readable-only file " +"permissions.\n" +"It is also recommended to set alertnotify so you are notified of problems;\n" +"for example: alertnotify=echo %%s | mail -s \"Bitcoin Alert\" admin@foo.com\n"), +QT_TRANSLATE_NOOP("bitcoin-core", "" "Unable to bind to %s on this computer. Bitcoin Core is probably already " "running."), QT_TRANSLATE_NOOP("bitcoin-core", "" "Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: " "%s)"), QT_TRANSLATE_NOOP("bitcoin-core", "" +"Warning: -maxtxfee is set very high! Fees this large could be paid on a " +"single transaction."), +QT_TRANSLATE_NOOP("bitcoin-core", "" "Warning: -paytxfee is set very high! This is the transaction fee you will " "pay if you send a transaction."), QT_TRANSLATE_NOOP("bitcoin-core", "" @@ -163,6 +166,7 @@ QT_TRANSLATE_NOOP("bitcoin-core", "(default: 1)"), QT_TRANSLATE_NOOP("bitcoin-core", " can be:"), QT_TRANSLATE_NOOP("bitcoin-core", "Accept command line and JSON-RPC commands"), QT_TRANSLATE_NOOP("bitcoin-core", "Accept connections from outside (default: 1 if no -proxy or -connect)"), +QT_TRANSLATE_NOOP("bitcoin-core", "Accept public REST requests (default: %u)"), QT_TRANSLATE_NOOP("bitcoin-core", "Acceptable ciphers (default: %s)"), QT_TRANSLATE_NOOP("bitcoin-core", "Add a node to connect to and attempt to keep the connection open"), QT_TRANSLATE_NOOP("bitcoin-core", "Allow DNS lookups for -addnode, -seednode and -connect"), @@ -198,7 +202,6 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Error"), QT_TRANSLATE_NOOP("bitcoin-core", "Error: A fatal internal error occured, see debug.log for details"), QT_TRANSLATE_NOOP("bitcoin-core", "Error: Disk space is low!"), QT_TRANSLATE_NOOP("bitcoin-core", "Error: Unsupported argument -tor found, use -onion."), -QT_TRANSLATE_NOOP("bitcoin-core", "Error: Wallet locked, unable to create transaction!"), QT_TRANSLATE_NOOP("bitcoin-core", "Failed to listen on any port. Use -listen=0 if you want this."), QT_TRANSLATE_NOOP("bitcoin-core", "Fee (in BTC/kB) to add to transactions you send (default: %s)"), QT_TRANSLATE_NOOP("bitcoin-core", "Force safe mode (default: %u)"), @@ -214,13 +217,12 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Initialization sanity check failed. Bitcoin C QT_TRANSLATE_NOOP("bitcoin-core", "Insufficient funds"), QT_TRANSLATE_NOOP("bitcoin-core", "Invalid -onion address: '%s'"), QT_TRANSLATE_NOOP("bitcoin-core", "Invalid -proxy address: '%s'"), +QT_TRANSLATE_NOOP("bitcoin-core", "Invalid amount for -maxtxfee=: '%s'"), QT_TRANSLATE_NOOP("bitcoin-core", "Invalid amount for -minrelaytxfee=: '%s'"), QT_TRANSLATE_NOOP("bitcoin-core", "Invalid amount for -mintxfee=: '%s'"), QT_TRANSLATE_NOOP("bitcoin-core", "Invalid amount for -paytxfee=: '%s' (must be at least %s)"), QT_TRANSLATE_NOOP("bitcoin-core", "Invalid amount for -paytxfee=: '%s'"), -QT_TRANSLATE_NOOP("bitcoin-core", "Invalid amount"), QT_TRANSLATE_NOOP("bitcoin-core", "Invalid netmask specified in -whitelist: '%s'"), -QT_TRANSLATE_NOOP("bitcoin-core", "Keep at most unconnectable blocks in memory (default: %u)"), QT_TRANSLATE_NOOP("bitcoin-core", "Keep at most unconnectable transactions in memory (default: %u)"), QT_TRANSLATE_NOOP("bitcoin-core", "Limit size of signature cache to entries (default: %u)"), QT_TRANSLATE_NOOP("bitcoin-core", "Listen for JSON-RPC connections on (default: %u or testnet: %u)"), @@ -239,8 +241,6 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Only connect to nodes in network (ipv4, QT_TRANSLATE_NOOP("bitcoin-core", "Options:"), QT_TRANSLATE_NOOP("bitcoin-core", "Password for JSON-RPC connections"), QT_TRANSLATE_NOOP("bitcoin-core", "Prepend debug output with timestamp (default: %u)"), -QT_TRANSLATE_NOOP("bitcoin-core", "Print block on startup, if found in block index"), -QT_TRANSLATE_NOOP("bitcoin-core", "Print block tree on startup (default: %u)"), QT_TRANSLATE_NOOP("bitcoin-core", "RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions)"), QT_TRANSLATE_NOOP("bitcoin-core", "RPC server options:"), QT_TRANSLATE_NOOP("bitcoin-core", "Randomly drop 1 of every network messages"), @@ -277,9 +277,9 @@ QT_TRANSLATE_NOOP("bitcoin-core", "This help message"), QT_TRANSLATE_NOOP("bitcoin-core", "This is experimental software."), QT_TRANSLATE_NOOP("bitcoin-core", "This is intended for regression testing tools and app development."), QT_TRANSLATE_NOOP("bitcoin-core", "Threshold for disconnecting misbehaving peers (default: %u)"), -QT_TRANSLATE_NOOP("bitcoin-core", "To use the %s option"), QT_TRANSLATE_NOOP("bitcoin-core", "Transaction amount too small"), QT_TRANSLATE_NOOP("bitcoin-core", "Transaction amounts must be positive"), +QT_TRANSLATE_NOOP("bitcoin-core", "Transaction too large for fee policy"), QT_TRANSLATE_NOOP("bitcoin-core", "Transaction too large"), QT_TRANSLATE_NOOP("bitcoin-core", "Unable to bind to %s on this computer (bind returned error %s)"), QT_TRANSLATE_NOOP("bitcoin-core", "Unknown network specified in -onlynet: '%s'"), diff --git a/src/qt/locale/bitcoin_en.ts b/src/qt/locale/bitcoin_en.ts index 71c626be4b0..5291bfcc1b1 100644 --- a/src/qt/locale/bitcoin_en.ts +++ b/src/qt/locale/bitcoin_en.ts @@ -5,8 +5,8 @@ AddressBookPage - Double-click to edit address or label - Double-click to edit address or label + Right-click to edit address or label + @@ -1568,7 +1568,7 @@ Address: %4 PaymentServer - + URI handling @@ -1580,7 +1580,7 @@ Address: %4 - + Payment request rejected @@ -1607,17 +1607,17 @@ Address: %4 - - + + - + Payment request error - + Cannot start bitcoin: click-to-pay handler @@ -1642,7 +1642,7 @@ Address: %4 - + Unverified payment requests to custom payment scripts are unsupported. @@ -1653,6 +1653,16 @@ Address: %4 + Payment request %2 is too large (%3 bytes, allowed %4 bytes). + + + + + Payment request DoS protection + + + + Error communicating with %1: %2 @@ -1698,7 +1708,7 @@ Address: %4 QObject - + Amount Amount @@ -2301,7 +2311,7 @@ Address: %4 SendCoinsDialog - + Send Coins Send Coins @@ -2515,7 +2525,7 @@ Address: %4 - + Copy quantity @@ -2550,7 +2560,7 @@ Address: %4 - + Total Amount %1 (= %2) @@ -2625,12 +2635,12 @@ Address: %4 - + Copy dust - + Are you sure you want to send? @@ -3569,32 +3579,32 @@ Address: %4 bitcoin-core - + Options: Options: - + Specify data directory Specify data directory - + Connect to a node to retrieve peer addresses, and disconnect Connect to a node to retrieve peer addresses, and disconnect - + Specify your own public address Specify your own public address - + Accept command line and JSON-RPC commands Accept command line and JSON-RPC commands - + Run in the background as a daemon and accept commands Run in the background as a daemon and accept commands @@ -3604,37 +3614,12 @@ Address: %4 Use the test network - + Accept connections from outside (default: 1 if no -proxy or -connect) Accept connections from outside (default: 1 if no -proxy or -connect) - - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - - - + Bind to given address and always listen on it. Use [host]:port notation for IPv6 Bind to given address and always listen on it. Use [host]:port notation for IPv6 @@ -3654,17 +3639,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. - - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - - - + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) @@ -3674,7 +3649,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. - + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) @@ -3684,12 +3659,12 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. This is a pre-release test build - use at your own risk - do not use for mining or merchant applications - + Unable to bind to %s on this computer. Bitcoin Core is probably already running. - + Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. @@ -3729,7 +3704,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. - + Attempt to recover private keys from a corrupt wallet.dat Attempt to recover private keys from a corrupt wallet.dat @@ -3805,11 +3780,6 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. - Error: Wallet locked, unable to create transaction! - Error: Wallet locked, unable to create transaction! - - - Failed to listen on any port. Use -listen=0 if you want this. Failed to listen on any port. Use -listen=0 if you want this. @@ -3834,7 +3804,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. - + Not enough file descriptors available. Not enough file descriptors available. @@ -3844,7 +3814,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. - + Rebuild block chain index from current blk000??.dat files Rebuild block chain index from current blk000??.dat files @@ -3899,12 +3869,12 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. You need to rebuild the database using -reindex to change -txindex - + Imports blocks from external blk000??.dat file Imports blocks from external blk000??.dat file - + Allow JSON-RPC connections from specified source. Valid for <ip> 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). This option can be specified multiple times @@ -3944,7 +3914,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. - + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. @@ -3964,11 +3934,26 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. - + + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + + + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + + + + Maximum size of data in data carrier transactions we relay and mine (default: %u) + + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) @@ -3989,7 +3974,27 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. - + + To use bitcoind, or the -server option to bitcoin-qt, you must set an rpcpassword in the configuration file: +%s +It is recommended you use the following random password: +rpcuser=bitcoinrpc +rpcpassword=%s +(you do not need to remember this password) +The username and password MUST NOT be the same. +If the file does not exist, create it with owner-readable-only file permissions. +It is also recommended to set alertnotify so you are notified of problems; +for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + + + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + + + + Warning: Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly. @@ -3999,7 +4004,12 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. - + + Accept public REST requests (default: %u) + + + + Cannot resolve -whitebind address: '%s' @@ -4029,7 +4039,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. - + Fee (in BTC/kB) to add to transactions you send (default: %s) @@ -4045,6 +4055,11 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. + Invalid amount for -maxtxfee=<amount>: '%s' + + + + Invalid amount for -minrelaytxfee=<amount>: '%s' Invalid amount for -minrelaytxfee=<amount>: '%s' @@ -4059,17 +4074,12 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. - + Invalid netmask specified in -whitelist: '%s' - Keep at most <n> unconnectable blocks in memory (default: %u) - - - - Keep at most <n> unconnectable transactions in memory (default: %u) @@ -4085,11 +4095,6 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. - Print block on startup, if found in block index - - - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) @@ -4139,7 +4144,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. - + Transaction amount too small Transaction amount too small @@ -4150,6 +4155,11 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. + Transaction too large for fee policy + + + + Transaction too large Transaction too large @@ -4209,17 +4219,17 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. wallet.dat corrupt, salvage failed - + Password for JSON-RPC connections Password for JSON-RPC connections - + Execute command when the best block changes (%s in cmd is replaced by block hash) Execute command when the best block changes (%s in cmd is replaced by block hash) - + Upgrade wallet to latest format Upgrade wallet to latest format @@ -4239,27 +4249,27 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. This help message - + Allow DNS lookups for -addnode, -seednode and -connect Allow DNS lookups for -addnode, -seednode and -connect - + Loading addresses... Loading addresses... - + Error loading wallet.dat: Wallet corrupted Error loading wallet.dat: Wallet corrupted - + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) - + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) @@ -4269,12 +4279,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. - - If paytxfee is not set, include enough fee so transactions are confirmed on average within n blocks (default: %u) - - - - + Log transaction priority and fee per kB when mining blocks (default: %u) @@ -4284,7 +4289,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. - + Number of seconds to keep misbehaving peers from reconnecting (default: %u) @@ -4294,17 +4299,17 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. - + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) - + (default: %s) - + Acceptable ciphers (default: %s) @@ -4324,7 +4329,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. Error loading wallet.dat - + Force safe mode (default: %u) @@ -4349,7 +4354,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. Invalid -proxy address: '%s' - + Limit size of signature cache to <n> entries (default: %u) @@ -4389,11 +4394,6 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. - - Print block tree on startup (default: %u) - - - Relay and mine data carrier transactions (default: %u) @@ -4474,7 +4474,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. Unknown network specified in -onlynet: '%s' - + Cannot resolve -bind address: '%s' Cannot resolve -bind address: '%s' @@ -4489,32 +4489,27 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. Invalid amount for -paytxfee=<amount>: '%s' - - Invalid amount - Invalid amount - - Insufficient funds Insufficient funds - + Loading block index... Loading block index... - + Add a node to connect to and attempt to keep the connection open Add a node to connect to and attempt to keep the connection open - + Loading wallet... Loading wallet... - + Cannot downgrade wallet Cannot downgrade wallet @@ -4524,22 +4519,17 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. Cannot write default address - + Rescanning... Rescanning... - + Done loading Done loading - - To use the %s option - To use the %s option - - - + Error Error From 18021d08f76f966ca178a502c6223fab8e8cd960 Mon Sep 17 00:00:00 2001 From: Gregory Maxwell Date: Sat, 27 Dec 2014 01:38:47 -0800 Subject: [PATCH 030/201] Remove bitnodes.io from dnsseeds. I'm not comfortable with retaining this entry. Rebased-From: a094b3d9732aaca362e883655319852e4ce9a174 Github-Pull: #5545 --- src/chainparams.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 8a6a061ea1e..0291fd98640 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -156,7 +156,6 @@ class CMainParams : public CChainParams { vSeeds.push_back(CDNSSeedData("bluematt.me", "dnsseed.bluematt.me")); vSeeds.push_back(CDNSSeedData("dashjr.org", "dnsseed.bitcoin.dashjr.org")); vSeeds.push_back(CDNSSeedData("bitcoinstats.com", "seed.bitcoinstats.com")); - vSeeds.push_back(CDNSSeedData("bitnodes.io", "seed.bitnodes.io")); vSeeds.push_back(CDNSSeedData("xf2.org", "bitseed.xf2.org")); base58Prefixes[PUBKEY_ADDRESS] = list_of(0); From 1eadfd97538830a323c9ee40c18c6f8fb1e5ec36 Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Wed, 17 Dec 2014 09:34:09 +0000 Subject: [PATCH 031/201] Bugfix: prioritisetransaction: Do some basic sanity checking on txid Besides giving a nicer error, this also prevents logging arbitrary data (which could have been used to exploit log readers) into debug.log Rebased-From: 7f718139191d67da29c5d856d29e035bbc51e659 Github-Pull: #5499 --- src/core_io.h | 1 + src/core_read.cpp | 5 +++++ src/rpcmining.cpp | 3 +-- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/core_io.h b/src/core_io.h index aba1928a366..bc2eb1edd09 100644 --- a/src/core_io.h +++ b/src/core_io.h @@ -19,6 +19,7 @@ extern CScript ParseScript(std::string s); extern bool DecodeHexTx(CTransaction& tx, const std::string& strHexTx); extern bool DecodeHexBlk(CBlock&, const std::string& strHexBlk); extern uint256 ParseHashUV(const UniValue& v, const std::string& strName); +extern uint256 ParseHashStr(const std::string&, const std::string& strName); extern std::vector ParseHexUV(const UniValue& v, const std::string& strName); // core_write.cpp diff --git a/src/core_read.cpp b/src/core_read.cpp index 65c3a08c551..beb746ce970 100644 --- a/src/core_read.cpp +++ b/src/core_read.cpp @@ -131,6 +131,11 @@ uint256 ParseHashUV(const UniValue& v, const string& strName) string strHex; if (v.isStr()) strHex = v.getValStr(); + return ParseHashStr(strHex, strName); // Note: ParseHashStr("") throws a runtime_error +} + +uint256 ParseHashStr(const std::string& strHex, const std::string& strName) +{ if (!IsHex(strHex)) // Note: IsHex("") is false throw runtime_error(strName+" must be hexadecimal string (not '"+strHex+"')"); diff --git a/src/rpcmining.cpp b/src/rpcmining.cpp index b406106ff28..86230521ce8 100644 --- a/src/rpcmining.cpp +++ b/src/rpcmining.cpp @@ -288,8 +288,7 @@ Value prioritisetransaction(const Array& params, bool fHelp) + HelpExampleRpc("prioritisetransaction", "\"txid\", 0.0, 10000") ); - uint256 hash; - hash.SetHex(params[0].get_str()); + uint256 hash = ParseHashStr(params[0].get_str(), "txid"); CAmount nAmount = params[2].get_int64(); From d1bcef43910391da707ef9385c328977462c86e9 Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Tue, 23 Dec 2014 22:02:16 +0000 Subject: [PATCH 032/201] release-notes: updates - Avoid ambiguous language regarding when transactions confirm - Elaborate on downgrading warning - Other minor language improvements - Clarify watch-only behaviour Github-Pull: #5534 --- doc/release-notes.md | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index 1cb6b4dbfa1..f8fc3f0bc1c 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -29,7 +29,7 @@ Downgrading warning Because release 0.10.0 makes use of headers-first synchronization and parallel block download (see further), the block files and databases are not -backwards-compatible with older versions of Bitcoin Core: +backwards-compatible with older versions of Bitcoin Core or other software: * Blocks will be stored on disk out of order (in the order they are received, really), which makes it incompatible with some tools or @@ -41,7 +41,9 @@ 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. +bootstrap.dat) anew afterwards. It is possible that the data from a completely +synchronised 0.10 node may be usable in older versions as-is, but this is not +supported and may break as soon as the older version attempts to reindex. This does not affect wallet forward or backward compatibility. @@ -92,15 +94,15 @@ program shutdown, and are read in at startup. New command line options for fee estimation: - `-txconfirmtarget=n` : create transactions that have enough fees (or priority) -so they are likely to confirm within n blocks (default: 1). This setting +so they are likely to begin confirmation within n blocks (default: 1). This setting is over-ridden by the -paytxfee option. New RPC commands for fee estimation: - `estimatefee nblocks` : Returns approximate fee-per-1,000-bytes needed for -a transaction to be confirmed within nblocks. Returns -1 if not enough +a transaction to begin confirmation 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 +a zero-fee transaction to begin confirmation within nblocks. Returns -1 if not enough free transactions have been observed to compute a good estimate. @@ -125,7 +127,7 @@ For example: | `-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` | +| `-rpcallowip=*` (dangerous!) | `-rpcallowip=::/0` (still dangerous!) | Using wildcards will result in the rule being rejected with the following error in debug.log: @@ -180,8 +182,8 @@ 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 +and reduction in timing leaks that we've eagerly wanted to use 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 @@ -191,11 +193,11 @@ than the implementation in OpenSSL. [1] https://eprint.iacr.org/2014/161.pdf -Watch-only addresses in the wallet ----------------------------------- +Watch-only wallet support +------------------------- -The wallet can now track transactions to addresses (or scripts) for which you -do not have the private keys. +The wallet can now track transactions to and from wallets for which you know +all addresses (or scripts), even without the private keys. This can be used to track payments without needing the private keys online on a possibly vulnerable system. In addition, it can help for (manual) construction @@ -204,17 +206,18 @@ of multisig transactions where you are only one of the signers. One new RPC, `importaddress`, is added which functions similarly to `importprivkey`, but instead takes an address or script (in hexadecimal) as argument. After using it, outputs credited to this address or script are -considered to be yours. +considered to be received, and transactions consuming these outputs will be +considered to be sent. -The following RPCs have optional support for watch-only addresses: +The following RPCs have optional support for watch-only: `getbalance`, `listreceivedbyaddress`, `listreceivedbyaccount`, `listtransactions`, `listaccounts`, `listsinceblock`, `gettransaction`. See the RPC documentation for those methods for more information. Compared to using `getrawtransaction`, this mechanism does not require `-txindex`, scales better, integrates better with the wallet, and is compatible -with future block chain pruning functionality. It does mean the address needs -to added to the wallet before the payment, though. +with future block chain pruning functionality. It does mean that all relevant +addresses need to added to the wallet before the payment, though. Consensus library ----------------- From 8061d67aebd4bc1c2f23b896dd2c40bec04e313c Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Fri, 2 Jan 2015 10:42:33 +0100 Subject: [PATCH 033/201] Remove redundant copyright notices from README files The normative place for these for the entire project is COPYING, and the main README already has a MIT license section. Rebased-From: e6df2bb48f4bff7a2dec4aa226102b0cf2cd828b --- README.md | 2 -- doc/README.md | 5 +---- doc/README_windows.txt | 12 ++---------- src/test/data/README.md | 8 +++----- 4 files changed, 6 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index cf650fe5433..fb9c0b6d77c 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,6 @@ Bitcoin Core integration/staging tree https://www.bitcoin.org -Copyright (c) 2009-2014 Bitcoin Core Developers - What is Bitcoin? ---------------- diff --git a/doc/README.md b/doc/README.md index 4f8f8ac717b..ac22812da34 100644 --- a/doc/README.md +++ b/doc/README.md @@ -1,9 +1,6 @@ -Bitcoin 0.10.0 BETA +Bitcoin Core 0.10.0 ===================== -Copyright (c) 2009-2014 Bitcoin Developers - - Setup --------------------- [Bitcoin Core](http://bitcoin.org/en/download) is the original Bitcoin client and it builds the backbone of the network. However, it downloads and stores the entire history of Bitcoin transactions (which is currently several GBs); depending on the speed of your computer and network connection, the synchronization process can take anywhere from a few hours to a day or more. Thankfully you only have to do this once. If you would like the process to go faster you can [download the blockchain directly](bootstrap.md). diff --git a/doc/README_windows.txt b/doc/README_windows.txt index 2c8f635a528..472494172ad 100644 --- a/doc/README_windows.txt +++ b/doc/README_windows.txt @@ -1,13 +1,5 @@ -Bitcoin 0.10.0 BETA - -Copyright (c) 2009-2014 Bitcoin Core Developers - -Distributed under the MIT/X11 software license, see the accompanying -file COPYING or http://www.opensource.org/licenses/mit-license.php. -This product includes software developed by the OpenSSL Project for use in -the OpenSSL Toolkit (https://www.openssl.org/). This product includes -cryptographic software written by Eric Young (eay@cryptsoft.com). - +Bitcoin Core 0.10.0 +===================== Intro ----- diff --git a/src/test/data/README.md b/src/test/data/README.md index f69a021ca0a..2463daa42a5 100644 --- a/src/test/data/README.md +++ b/src/test/data/README.md @@ -6,9 +6,7 @@ This directory contains data-driven tests for various aspects of Bitcoin. License -------- -The data files in this directory are - - Copyright (c) 2012-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. +The data files in this directory are distributed under the MIT software +license, see the accompanying file COPYING or +http://www.opensource.org/licenses/mit-license.php. From 4f57a3b20c693f75be6fe7872192f3f2ef223d41 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Fri, 2 Jan 2015 10:49:20 +0100 Subject: [PATCH 034/201] Bump project-wide COPYRIGHT_YEAR to 2015 There is still a redundancy here between configure.ac and clientversion.h. Rebased-From: edbc9045cb21020d0cc19d226f55ee169e2ffb92 --- COPYING | 2 +- configure.ac | 2 +- src/clientversion.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/COPYING b/COPYING index 6219bd75a64..9fd32666224 100644 --- a/COPYING +++ b/COPYING @@ -1,4 +1,4 @@ -Copyright (c) 2009-2014 Bitcoin Developers +Copyright (c) 2009-2015 Bitcoin Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/configure.ac b/configure.ac index c8149570b82..3b912fb164c 100644 --- a/configure.ac +++ b/configure.ac @@ -5,7 +5,7 @@ define(_CLIENT_VERSION_MINOR, 10) define(_CLIENT_VERSION_REVISION, 0) define(_CLIENT_VERSION_BUILD, 0) define(_CLIENT_VERSION_IS_RELEASE, true) -define(_COPYRIGHT_YEAR, 2014) +define(_COPYRIGHT_YEAR, 2015) AC_INIT([Bitcoin Core],[_CLIENT_VERSION_MAJOR._CLIENT_VERSION_MINOR._CLIENT_VERSION_REVISION],[info@bitcoin.org],[bitcoin]) AC_CONFIG_SRCDIR([src/main.cpp]) AC_CONFIG_HEADERS([src/config/bitcoin-config.h]) diff --git a/src/clientversion.h b/src/clientversion.h index ba3035aed47..314ff7f9d74 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -26,7 +26,7 @@ * Copyright year (2009-this) * Todo: update this when changing our copyright comments in the source */ -#define COPYRIGHT_YEAR 2014 +#define COPYRIGHT_YEAR 2015 #endif //HAVE_CONFIG_H From 9241f7a7c1259379c667a8fbd22fd0d929b335b1 Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Tue, 30 Dec 2014 18:45:29 -0500 Subject: [PATCH 035/201] depends: fix major regression after d546191dc. Broken hash logic caused all depends on some platforms (osx at least) to end up with the same build-id. Without this fix, nothing will be rebuilt when recipes or dependencies change. Rebased-From: d57b303e1e5b3fc31da0769b14b01fdcc19b1f7a Github-Pull: #5586 --- depends/funcs.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/depends/funcs.mk b/depends/funcs.mk index 79015c047ca..337634253f5 100644 --- a/depends/funcs.mk +++ b/depends/funcs.mk @@ -31,8 +31,8 @@ define fetch_file endef define int_get_build_recipe_hash -$(eval $(1)_all_file_checksums:=$(shell $(build_SHA256SUM) $(meta_depends) packages/$(1).mk $(addprefix $(PATCHES_PATH)/$(1)/,$($(1)_patches)))) -$(eval $(1)_recipe_hash:=$(shell echo -n "$($(1)_all_file_checksums)" | cut -d" " -f1 | $(build_SHA256SUM))) +$(eval $(1)_all_file_checksums:=$(shell $(build_SHA256SUM) $(meta_depends) packages/$(1).mk $(addprefix $(PATCHES_PATH)/$(1)/,$($(1)_patches)) | cut -d" " -f1)) +$(eval $(1)_recipe_hash:=$(shell echo -n "$($(1)_all_file_checksums)" | $(build_SHA256SUM) | cut -d" " -f1)) endef define int_get_build_id From 50891ad080f34e3c3b053c2440332e1a1fd35082 Mon Sep 17 00:00:00 2001 From: Philip Kaufmann Date: Wed, 31 Dec 2014 12:03:00 +0100 Subject: [PATCH 036/201] [Qt] update a translation string and argument counts Rebased-From: 643415aade0dae528098df2d822288ba0c5f6ce2 Github-Pull: #5583 --- src/qt/paymentserver.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/qt/paymentserver.cpp b/src/qt/paymentserver.cpp index bd3dab41a8f..0f8f6f0ce81 100644 --- a/src/qt/paymentserver.cpp +++ b/src/qt/paymentserver.cpp @@ -667,8 +667,7 @@ void PaymentServer::netRequestFinished(QNetworkReply* reply) // 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__) + QString msg = tr("Payment request %1 is too large (%2 bytes, allowed %3 bytes).") .arg(reply->request().url().toString()) .arg(reply->size()) .arg(BIP70_MAX_PAYMENTREQUEST_SIZE); From c2029018cc55c784c4f03c9af4a68015cb7230d2 Mon Sep 17 00:00:00 2001 From: Jacob Welsh Date: Tue, 30 Dec 2014 22:49:42 -0500 Subject: [PATCH 037/201] Release notes: fix REST URIs and wrap line Rebased-From: e64e084e95ca85b038c7f65ad0824d14d03bc044 Github-Pull: #5581 --- doc/release-notes.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index f8fc3f0bc1c..590a61d0f19 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -145,10 +145,11 @@ plain HTTP instead of JSON-RPC. Assuming a local RPC server running on port 8332, it is possible to request: - Blocks: http://localhost:8332/rest/block/*HASH*.*EXT* -- Blocks without transactions: http://localhost:8332/block/notxdetails/*HASH*.*EXT* -- Transactions (requires `-txindex`): http://localhost:8332/tx/*HASH*.*EXT* +- Blocks without transactions: http://localhost:8332/rest/block/notxdetails/*HASH*.*EXT* +- Transactions (requires `-txindex`): http://localhost:8332/rest/tx/*HASH*.*EXT* -In every case, *EXT* can be `bin` (for raw binary data), `hex` (for hex-encoded binary) or `json`. +In every case, *EXT* can be `bin` (for raw binary data), `hex` (for hex-encoded +binary) or `json`. For more details, see the `doc/REST-interface.md` document in the repository. From 221a38024aa095afe089e6adfbbe65a12654d520 Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Tue, 30 Dec 2014 02:36:58 -0500 Subject: [PATCH 038/201] dmg: fix deterministic dmg creation and docs Rebased-From: 0d50c2fd81ee7239570954e6eacb3dbbfe3bb5fe Github-Pull: #5569 --- contrib/gitian-descriptors/gitian-osx-signer.yml | 6 +++--- doc/release-process.md | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/contrib/gitian-descriptors/gitian-osx-signer.yml b/contrib/gitian-descriptors/gitian-osx-signer.yml index db9b4af93d0..1792f9de3f5 100644 --- a/contrib/gitian-descriptors/gitian-osx-signer.yml +++ b/contrib/gitian-descriptors/gitian-osx-signer.yml @@ -10,7 +10,7 @@ packages: reference_datetime: "2013-06-01 00:00:00" remotes: [] files: -- "bitcoin-0.9.99-osx-unsigned.tar.gz" +- "bitcoin-osx-unsigned.tar.gz" - "signature.tar.gz" script: | WRAP_DIR=$HOME/wrapped @@ -28,8 +28,8 @@ script: | chmod +x ${WRAP_DIR}/${prog} done - UNSIGNED=`echo bitcoin-*.tar.gz` - SIGNED=`echo ${UNSIGNED} | sed 's/.tar.*//' | sed 's/-unsigned//'`.dmg + UNSIGNED=bitcoin-osx-unsigned.tar.gz + SIGNED=bitcoin-osx-signed.dmg tar -xf ${UNSIGNED} ./detached-sig-apply.sh ${UNSIGNED} signature.tar.gz diff --git a/doc/release-process.md b/doc/release-process.md index 30f9797752d..eb2eb619bd7 100644 --- a/doc/release-process.md +++ b/doc/release-process.md @@ -68,7 +68,7 @@ Release Process mv build/out/bitcoin-*.zip build/out/bitcoin-*.exe ../ ./bin/gbuild --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml ./bin/gsign --signer $SIGNER --release ${VERSION}-osx-unsigned --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml - mv build/out/bitcoin-*-unsigned.tar.gz inputs + mv build/out/bitcoin-*-unsigned.tar.gz inputs/bitcoin-osx-unsigned.tar.gz mv build/out/bitcoin-*.tar.gz build/out/bitcoin-*.dmg ../ popd Build output expected: @@ -102,7 +102,7 @@ Commit your signature to gitian.sigs: cp signature.tar.gz inputs/ ./bin/gbuild -i ../bitcoin/contrib/gitian-descriptors/gitian-osx-signer.yml ./bin/gsign --signer $SIGNER --release ${VERSION}-osx-signed --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-osx-signer.yml - mv build/out/bitcoin-${VERSION}-osx.dmg ../ + mv build/out/bitcoin-osx-signed.dmg ../bitcoin-${VERSION}-osx.dmg popd Commit your signature for the signed OSX binary: From 94b362dbd64ca39c642400cbae45743ef597a9b7 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Sun, 28 Dec 2014 22:39:53 +0100 Subject: [PATCH 039/201] On close of splashscreen interrupt verifyDB With the splashscreen being able to be closed it is possible to shutdown during the lengthy verifyDB method. (Takes about a minute on my machine). This change allows us to shutdown much sooner. Github-Pull: #5557 Rebased-From: 70477a0bdf6eb6d123ce256f064bbd3bc356c82a --- src/main.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main.cpp b/src/main.cpp index 69fb5e25884..c40a5e1672e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2986,6 +2986,8 @@ bool CVerifyDB::VerifyDB(CCoinsView *coinsview, int nCheckLevel, int nCheckDepth } else nGoodTransactions += block.vtx.size(); } + if (ShutdownRequested()) + return true; } if (pindexFailure) return error("VerifyDB() : *** coin database inconsistencies found (last %i blocks, %i good transactions before that)\n", chainActive.Height() - pindexFailure->nHeight + 1, nGoodTransactions); From 4a3d3e20c0bc35e6a7263c2c621c21d70d3e660e Mon Sep 17 00:00:00 2001 From: Peter Todd Date: Sun, 4 Jan 2015 19:45:51 -0500 Subject: [PATCH 040/201] Fix typo in release notes --- doc/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index da772434721..757b1a4432d 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -180,7 +180,7 @@ Starting from 0.10.0, the Bitcoin Core distribution includes a consensus library The purpose of this library is to make the verification functionality that is critical to Bitcoin's consensus available to other applications, e.g. to language -bindings such as [python_bitcoinlib](https://pypi.python.org/pypi/python-bitcoinlib) or +bindings such as [python-bitcoinlib](https://pypi.python.org/pypi/python-bitcoinlib) or alternative node implementations. This library is called `libbitcoinconsensus.so` (or, `.dll` for Windows). From 58fda4d6895aa1aba1d7a31500c0f823e736c3fa Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Tue, 23 Dec 2014 17:43:32 +0100 Subject: [PATCH 041/201] Update seed IPs, based on bitcoin.sipa.be crawler data Rebased-From: be22b3da1df15757ef15e4c4963507bcdff6a872 Github-Pull: #5532 --- contrib/seeds/README.md | 11 +- contrib/seeds/makeseeds.py | 122 ++++- share/seeds/nodes_main.txt | 1115 ++++++++++++++++++++------------------------ src/chainparamsseeds.h | 1092 ++++++++++++++++++++----------------------- 4 files changed, 1123 insertions(+), 1217 deletions(-) diff --git a/contrib/seeds/README.md b/contrib/seeds/README.md index f9a0c277e2e..bc88201f0fa 100644 --- a/contrib/seeds/README.md +++ b/contrib/seeds/README.md @@ -1,11 +1,8 @@ ### Seeds ### -Utility to generate the pnSeed[] array that is compiled into the client -(see [src/net.cpp](/src/net.cpp)). +Utility to generate the seeds.txt list that is compiled into the client +(see [src/chainparamsseeds.h](/src/chainparamsseeds.h) and [share/seeds](/share/seeds)). -The 600 seeds compiled into the 0.8 release were created from sipa's DNS seed data, like this: +The 512 seeds compiled into the 0.10 release were created from sipa's DNS seed data, like this: - curl -s http://bitcoin.sipa.be/seeds.txt | head -1000 | makeseeds.py - -The input to makeseeds.py is assumed to be approximately sorted from most-reliable to least-reliable, -with IP:port first on each line (lines that don't match IPv4:port are ignored). + curl -s http://bitcoin.sipa.be/seeds.txt | makeseeds.py diff --git a/contrib/seeds/makeseeds.py b/contrib/seeds/makeseeds.py index 1d01fd7d209..b831395f2c7 100755 --- a/contrib/seeds/makeseeds.py +++ b/contrib/seeds/makeseeds.py @@ -1,32 +1,118 @@ #!/usr/bin/env python # -# Generate pnSeed[] from Pieter's DNS seeder +# Generate seeds.txt from Pieter's DNS seeder # -NSEEDS=600 +NSEEDS=512 + +MAX_SEEDS_PER_ASN=2 + +MIN_BLOCKS = 337600 + +# These are hosts that have been observed to be behaving strangely (e.g. +# aggressively connecting to every node). +SUSPICIOUS_HOSTS = set([ + "130.211.129.106", "178.63.107.226", + "83.81.130.26", "88.198.17.7", "148.251.238.178", "176.9.46.6", + "54.173.72.127", "54.174.10.182", "54.183.64.54", "54.194.231.211", + "54.66.214.167", "54.66.220.137", "54.67.33.14", "54.77.251.214", + "54.94.195.96", "54.94.200.247" +]) import re import sys -from subprocess import check_output +import dns.resolver + +PATTERN_IPV4 = re.compile(r"^((\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})):8333$") +PATTERN_AGENT = re.compile(r"^(\/Satoshi:0.8.6\/|\/Satoshi:0.9.(2|3)\/|\/Satoshi:0.10.\d{1,2}\/)$") + +def parseline(line): + sline = line.split() + if len(sline) < 11: + return None + # Match only IPv4 + m = PATTERN_IPV4.match(sline[0]) + if m is None: + return None + # Do IPv4 sanity check + ip = 0 + for i in range(0,4): + if int(m.group(i+2)) < 0 or int(m.group(i+2)) > 255: + return None + ip = ip + (int(m.group(i+2)) << (8*(3-i))) + if ip == 0: + return None + # Skip bad results. + if sline[1] == 0: + return None + # Extract uptime %. + uptime30 = float(sline[7][:-1]) + # Extract Unix timestamp of last success. + lastsuccess = int(sline[2]) + # Extract protocol version. + version = int(sline[10]) + # Extract user agent. + agent = sline[11][1:-1] + # Extract service flags. + service = int(sline[9], 16) + # Extract blocks. + blocks = int(sline[8]) + # Construct result. + return { + 'ip': m.group(1), + 'ipnum': ip, + 'uptime': uptime30, + 'lastsuccess': lastsuccess, + 'version': version, + 'agent': agent, + 'service': service, + 'blocks': blocks, + } + +# Based on Greg Maxwell's seed_filter.py +def filterbyasn(ips, max_per_asn, max_total): + result = [] + asn_count = {} + for ip in ips: + if len(result) == max_total: + break + try: + asn = int([x.to_text() for x in dns.resolver.query('.'.join(reversed(ip['ip'].split('.'))) + '.origin.asn.cymru.com', 'TXT').response.answer][0].split('\"')[1].split(' ')[0]) + if asn not in asn_count: + asn_count[asn] = 0 + if asn_count[asn] == max_per_asn: + continue + asn_count[asn] += 1 + result.append(ip) + except: + sys.stderr.write('ERR: Could not resolve ASN for "' + ip['ip'] + '"\n') + return result def main(): lines = sys.stdin.readlines() + ips = [parseline(line) for line in lines] + + # Skip entries with valid IPv4 address. + ips = [ip for ip in ips if ip is not None] + # Skip entries from suspicious hosts. + ips = [ip for ip in ips if ip['ip'] not in SUSPICIOUS_HOSTS] + # Enforce minimal number of blocks. + ips = [ip for ip in ips if ip['blocks'] >= MIN_BLOCKS] + # Require service bit 1. + ips = [ip for ip in ips if (ip['service'] & 1) == 1] + # Require at least 50% 30-day uptime. + ips = [ip for ip in ips if ip['uptime'] > 50] + # Require a known and recent user agent. + ips = [ip for ip in ips if PATTERN_AGENT.match(ip['agent'])] + # Sort by availability (and use last success as tie breaker) + ips.sort(key=lambda x: (x['uptime'], x['lastsuccess'], x['ip']), reverse=True) + # Look up ASNs and limit results, both per ASN and globally. + ips = filterbyasn(ips, MAX_SEEDS_PER_ASN, NSEEDS) + # Sort the results by IP address (for deterministic output). + ips.sort(key=lambda x: (x['ipnum'])) - ips = [] - pattern = re.compile(r"^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3}):8333") - for line in lines: - m = pattern.match(line) - if m is None: - continue - ip = 0 - for i in range(0,4): - ip = ip + (int(m.group(i+1)) << (8*(i))) - if ip == 0: - continue - ips.append(ip) - - for row in range(0, min(NSEEDS,len(ips)), 8): - print " " + ", ".join([ "0x%08x"%i for i in ips[row:row+8] ]) + "," + for ip in ips: + print ip['ip'] if __name__ == '__main__': main() diff --git a/share/seeds/nodes_main.txt b/share/seeds/nodes_main.txt index f2558cf3c4f..3dba6d8a648 100644 --- a/share/seeds/nodes_main.txt +++ b/share/seeds/nodes_main.txt @@ -1,607 +1,518 @@ # List of fixed seed nodes for main network -# IPv4 nodes (in old chainparams.cpp 0xDDCCBBAA format) -# n.b. when importing a new list, there is no need to use this format, just use IPv4 dotted addresses directly -0x7e6a692e # 46.105.106.126 -0x7d04d1a2 # 162.209.4.125 -0x6c0c17d9 # 217.23.12.108 -0xdb330ab9 # 185.10.51.219 -0xc649c7c6 # 198.199.73.198 -0x7895484d # 77.72.149.120 -0x047109b0 # 176.9.113.4 -0xb90ca5bc # 188.165.12.185 -0xd130805f # 95.128.48.209 -0xbd074ea6 # 166.78.7.189 -0x578ff1c0 # 192.241.143.87 -0x286e09b0 # 176.9.110.40 -0xd4dcaf42 # 66.175.220.212 -0x529b6bb8 # 184.107.155.82 -0x635cc6c0 # 192.198.92.99 -0xedde892e # 46.137.222.237 -0xa976d9c7 # 199.217.118.169 -0xea91a4b8 # 184.164.145.234 -0x03fa4eb2 # 178.78.250.3 -0x6ca9008d # 141.0.169.108 -0xaf62c825 # 37.200.98.175 -0x93f3ba51 # 81.186.243.147 -0xc2c9efd5 # 213.239.201.194 -0x0ed5175e # 94.23.213.14 -0x487028bc # 188.40.112.72 -0x7297c225 # 37.194.151.114 -0x8af0c658 # 88.198.240.138 -0x2e57ba1f # 31.186.87.46 -0xd0098abc # 188.138.9.208 -0x46a8853e # 62.133.168.70 -0xcc92dc3e # 62.220.146.204 -0xeb6f1955 # 85.25.111.235 -0x8cce175e # 94.23.206.140 -0x237281ae # 174.129.114.35 -0x9d42795b # 91.121.66.157 -0x4f4f0905 # 5.9.79.79 -0xc50151d0 # 208.81.1.197 -0xb1ba90c6 # 198.144.186.177 -0xaed7175e # 94.23.215.174 -0x204de55b # 91.229.77.32 -0x4bb03245 # 69.50.176.75 -0x932b28bc # 188.40.43.147 -0x2dcce65b # 91.230.204.45 -0xe2708abc # 188.138.112.226 -0x1b08b8d5 # 213.184.8.27 -0x12a3dc5b # 91.220.163.18 -0x8a884c90 # 144.76.136.138 -0xa386a8b8 # 184.168.134.163 -0x18e417c6 # 198.23.228.24 -0x2e709ac3 # 195.154.112.46 -0xeb62e925 # 37.233.98.235 -0x6f6503ae # 174.3.101.111 -0x05d0814e # 78.129.208.5 -0x8a9ac545 # 69.197.154.138 -0x946fd65e # 94.214.111.148 -0x3f57495d # 93.73.87.63 -0x4a29c658 # 88.198.41.74 -0xad454c90 # 144.76.69.173 -0x15340905 # 5.9.52.21 -0x4c3f3b25 # 37.59.63.76 -0x01fe19b9 # 185.25.254.1 -0x5620595b # 91.89.32.86 -0x443c795b # 91.121.60.68 -0x44f24ac8 # 200.74.242.68 -0x0442464e # 78.70.66.4 -0xc8665882 # 130.88.102.200 -0xed3f3ec3 # 195.62.63.237 -0xf585bf5d # 93.191.133.245 -0x5dd141da # 218.65.209.93 -0xf93a084e # 78.8.58.249 -0x1264dd52 # 82.221.100.18 -0x0711c658 # 88.198.17.7 -0xf12e7bbe # 190.123.46.241 -0x5b02b740 # 64.183.2.91 -0x7d526dd5 # 213.109.82.125 -0x0cb04c90 # 144.76.176.12 -0x2abe1132 # 50.17.190.42 -0x61a39f58 # 88.159.163.97 -0x044a0618 # 24.6.74.4 -0xf3af7dce # 206.125.175.243 -0xb994c96d # 109.201.148.185 -0x361c5058 # 88.80.28.54 -0xca735d53 # 83.93.115.202 -0xeca743b0 # 176.67.167.236 -0xec790905 # 5.9.121.236 -0xc4d37845 # 69.120.211.196 -0xa1c4a2b2 # 178.162.196.161 -0x726fd453 # 83.212.111.114 -0x625cc6c0 # 192.198.92.98 -0x6c20132e # 46.19.32.108 -0xb7aa0c79 # 121.12.170.183 -0xc6ed983d # 61.152.237.198 -0x47e4cbc0 # 192.203.228.71 -0xa4ac75d4 # 212.117.172.164 -0xe2e59345 # 69.147.229.226 -0x4d784ad0 # 208.74.120.77 -0x18a5ec5e # 94.236.165.24 -0x481cc85b # 91.200.28.72 -0x7c6c2fd5 # 213.47.108.124 -0x5e4d6018 # 24.96.77.94 -0x5b4b6c18 # 24.108.75.91 -0xd99b4c90 # 144.76.155.217 -0xe63987dc # 220.135.57.230 -0xb817bb25 # 37.187.23.184 -0x141cfeb2 # 178.254.28.20 -0x5f005058 # 88.80.0.95 -0x0d987f47 # 71.127.152.13 -0x242a496d # 109.73.42.36 -0x3e519bc0 # 192.155.81.62 -0x02b2454b # 75.69.178.2 -0xdfaf3dc6 # 198.61.175.223 -0x888128bc # 188.40.129.136 -0x1165bb25 # 37.187.101.17 -0xabfeca5b # 91.202.254.171 -0x2ef63540 # 64.53.246.46 -0x5773c7c6 # 198.199.115.87 -0x1280dd52 # 82.221.128.18 -0x8ebcacd9 # 217.172.188.142 -0x81c439c6 # 198.57.196.129 -0x39fcfa45 # 69.250.252.57 -0x62177d41 # 65.125.23.98 -0xc975ed62 # 98.237.117.201 -0x05cff476 # 118.244.207.5 -0xdabda743 # 67.167.189.218 -0xaa1ac24e # 78.194.26.170 -0xe255a22e # 46.162.85.226 -0x88aac705 # 5.199.170.136 -0xe707c658 # 88.198.7.231 -0xa9e94b5e # 94.75.233.169 -0x2893484b # 75.72.147.40 -0x99512705 # 5.39.81.153 -0xd63970ca # 202.112.57.214 -0x45994f32 # 50.79.153.69 -0xe519a8ad # 173.168.25.229 -0x92e25f5d # 93.95.226.146 -0x8b84a9c1 # 193.169.132.139 -0x5eaa0a05 # 5.10.170.94 -0xa74de55b # 91.229.77.167 -0xb090ff62 # 98.255.144.176 -0x5eee326c # 108.50.238.94 -0xc331a679 # 121.166.49.195 -0xc1d9b72e # 46.183.217.193 -0x0c6ab982 # 130.185.106.12 -0x7362bb25 # 37.187.98.115 -0x4cfedd42 # 66.221.254.76 -0x1e09a032 # 50.160.9.30 -0xa4c34c5e # 94.76.195.164 -0x3777d9c7 # 199.217.119.55 -0x5edcf260 # 96.242.220.94 -0x3ce2b548 # 72.181.226.60 -0xd2ac0360 # 96.3.172.210 -0x2f80b992 # 146.185.128.47 -0x3e4cbb25 # 37.187.76.62 -0x3995e236 # 54.226.149.57 -0xd03977ae # 174.119.57.208 -0x953cf054 # 84.240.60.149 -0x3c654ed0 # 208.78.101.60 -0x74024c90 # 144.76.2.116 -0xa14f1155 # 85.17.79.161 -0x14ce0125 # 37.1.206.20 -0xc15ebb6a # 106.187.94.193 -0x2c08c452 # 82.196.8.44 -0xc7fd0652 # 82.6.253.199 -0x7604f8ce # 206.248.4.118 -0xffb38332 # 50.131.179.255 -0xa4c2efd5 # 213.239.194.164 -0xe9614018 # 24.64.97.233 -0xab49e557 # 87.229.73.171 -0x1648c052 # 82.192.72.22 -0x36024047 # 71.64.2.54 -0x0e8cffad # 173.255.140.14 -0x21918953 # 83.137.145.33 -0xb61f50ad # 173.80.31.182 -0x9b406b59 # 89.107.64.155 -0xaf282218 # 24.34.40.175 -0x7f1d164e # 78.22.29.127 -0x1f560da2 # 162.13.86.31 -0xe237be58 # 88.190.55.226 -0xbdeb1955 # 85.25.235.189 -0x6c0717d9 # 217.23.7.108 -0xdaf8ce62 # 98.206.248.218 -0x0f74246c # 108.36.116.15 -0xdee95243 # 67.82.233.222 -0xf23f1a56 # 86.26.63.242 -0x61bdf867 # 103.248.189.97 -0xd254c854 # 84.200.84.210 -0xc4422e4e # 78.46.66.196 -0xae0563c0 # 192.99.5.174 -0xbdb9a95f # 95.169.185.189 -0xa9eb32c6 # 198.50.235.169 -0xd9943950 # 80.57.148.217 -0x116add52 # 82.221.106.17 -0x73a54c90 # 144.76.165.115 -0xb36b525e # 94.82.107.179 -0xd734175e # 94.23.52.215 -0x333d7f76 # 118.127.61.51 -0x51431bc6 # 198.27.67.81 -0x084ae5cf # 207.229.74.8 -0xa60a236c # 108.35.10.166 -0x5c67692e # 46.105.103.92 -0x0177cf45 # 69.207.119.1 -0xa6683ac6 # 198.58.104.166 -0x7ff4ea47 # 71.234.244.127 -0x2192fab2 # 178.250.146.33 -0xa03a0f46 # 70.15.58.160 -0xfe3e39ae # 174.57.62.254 -0x2cce5fc1 # 193.95.206.44 -0xc8a6c148 # 72.193.166.200 -0x96fb7e4c # 76.126.251.150 -0x0a66c752 # 82.199.102.10 -0x6b4d2705 # 5.39.77.107 -0xeba0c118 # 24.193.160.235 -0x3ba0795b # 91.121.160.59 -0x1dccd23e # 62.210.204.29 -0x6912f3a2 # 162.243.18.105 -0x22f23c41 # 65.60.242.34 -0x65646b4a # 74.107.100.101 -0x8b9f8705 # 5.135.159.139 -0xeb9b9a95 # 149.154.155.235 -0x79fe6b4e # 78.107.254.121 -0x0536f447 # 71.244.54.5 -0x23224d61 # 97.77.34.35 -0x5d952ec6 # 198.46.149.93 -0x0cb4f736 # 54.247.180.12 -0xdc14be6d # 109.190.20.220 -0xb24609b0 # 176.9.70.178 -0xd3f79b62 # 98.155.247.211 -0x6518c836 # 54.200.24.101 -0x83a3cf42 # 66.207.163.131 -0x9b641fb0 # 176.31.100.155 -0x17fef1c0 # 192.241.254.23 -0xd508cc82 # 130.204.8.213 -0x91a4369b # 155.54.164.145 -0x39cb4a4c # 76.74.203.57 -0xbbc9536c # 108.83.201.187 -0xaf64c44a # 74.196.100.175 -0x605eca50 # 80.202.94.96 -0x0c6a6805 # 5.104.106.12 -0xd07e9d4e # 78.157.126.208 -0x78e6d3a2 # 162.211.230.120 -0x1b31eb6d # 109.235.49.27 -0xaa01feb2 # 178.254.1.170 -0x4603c236 # 54.194.3.70 -0x1ecba3b6 # 182.163.203.30 -0x0effe336 # 54.227.255.14 -0xc3fdcb36 # 54.203.253.195 -0xc290036f # 111.3.144.194 -0x4464692e # 46.105.100.68 -0x1aca7589 # 137.117.202.26 -0x59a9e52e # 46.229.169.89 -0x19aa7489 # 137.116.170.25 -0x2622c85e # 94.200.34.38 -0xa598d318 # 24.211.152.165 -0x438ec345 # 69.195.142.67 -0xc79619b9 # 185.25.150.199 -0xaf570360 # 96.3.87.175 -0x5098e289 # 137.226.152.80 -0x36add862 # 98.216.173.54 -0x83c1a2b2 # 178.162.193.131 -0x969d0905 # 5.9.157.150 -0xcf3d156c # 108.21.61.207 -0x49c1a445 # 69.164.193.73 -0xbd0b7562 # 98.117.11.189 -0x8fff1955 # 85.25.255.143 -0x1e51fe53 # 83.254.81.30 -0x28d6efd5 # 213.239.214.40 -0x2837cc62 # 98.204.55.40 -0x02f42d42 # 66.45.244.2 -0x070e3fb2 # 178.63.14.7 -0xbcb18705 # 5.135.177.188 -0x14a4e15b # 91.225.164.20 -0x82096844 # 68.104.9.130 -0xcfcb1c2e # 46.28.203.207 -0x37e27fc7 # 199.127.226.55 -0x07923748 # 72.55.146.7 -0x0c14bc2e # 46.188.20.12 -0x26100905 # 5.9.16.38 -0xcb7cd93e # 62.217.124.203 -0x3bc0d2c0 # 192.210.192.59 -0x97131b4c # 76.27.19.151 -0x6f1e5c17 # 23.92.30.111 -0xa7939f43 # 67.159.147.167 -0xb7a0bf58 # 88.191.160.183 -0xafa83a47 # 71.58.168.175 -0xcbb83f32 # 50.63.184.203 -0x5f321cb0 # 176.28.50.95 -0x52d6c3c7 # 199.195.214.82 -0xdeac5bc7 # 199.91.172.222 -0x2cf310cc # 204.16.243.44 -0x108a2bc3 # 195.43.138.16 -0x726fa14f # 79.161.111.114 -0x85bad2cc # 204.210.186.133 -0x459e4c90 # 144.76.158.69 -0x1a08b8d8 # 216.184.8.26 -0xcd7048c6 # 198.72.112.205 -0x6d5b4c90 # 144.76.91.109 -0xa66cfe7b # 123.254.108.166 -0xad730905 # 5.9.115.173 -0xdaac5bc7 # 199.91.172.218 -0x8417fd9f # 159.253.23.132 -0x41377432 # 50.116.55.65 -0x1f138632 # 50.134.19.31 -0x295a12b2 # 178.18.90.41 -0x7ac031b2 # 178.49.192.122 -0x3a87d295 # 149.210.135.58 -0xe219bc2e # 46.188.25.226 -0xf485d295 # 149.210.133.244 -0x137b6405 # 5.100.123.19 -0xcfffd9ad # 173.217.255.207 -0xafe20844 # 68.8.226.175 -0x32679a5f # 95.154.103.50 -0xa431c644 # 68.198.49.164 -0x0e5fce8c # 140.206.95.14 -0x305ef853 # 83.248.94.48 -0xad26ca32 # 50.202.38.173 -0xd9d21a54 # 84.26.210.217 -0xddd0d736 # 54.215.208.221 -0xc24ec0c7 # 199.192.78.194 -0x4aadcd5b # 91.205.173.74 -0x49109852 # 82.152.16.73 -0x9d6b3ac6 # 198.58.107.157 -0xf0aa1e8b # 139.30.170.240 -0xf1bfa343 # 67.163.191.241 -0x8a30c0ad # 173.192.48.138 -0x260f93d4 # 212.147.15.38 -0x2339e760 # 96.231.57.35 -0x8869959f # 159.149.105.136 -0xc207216c # 108.33.7.194 -0x29453448 # 72.52.69.41 -0xb651ec36 # 54.236.81.182 -0x45496259 # 89.98.73.69 -0xa23d1bcc # 204.27.61.162 -0xb39bcf43 # 67.207.155.179 -0xa1d29432 # 50.148.210.161 -0x3507c658 # 88.198.7.53 -0x4a88dd62 # 98.221.136.74 -0x27aff363 # 99.243.175.39 -0x7498ea6d # 109.234.152.116 -0x4a6785d5 # 213.133.103.74 -0x5e6d47c2 # 194.71.109.94 -0x3baba542 # 66.165.171.59 -0x045a37ae # 174.55.90.4 -0xa24dc0c7 # 199.192.77.162 -0xe981ea4d # 77.234.129.233 -0xed6ce217 # 23.226.108.237 -0x857214c6 # 198.20.114.133 -0x6b6c0464 # 100.4.108.107 -0x5a4945b8 # 184.69.73.90 -0x12f24742 # 66.71.242.18 -0xf35f42ad # 173.66.95.243 -0xfd0f5a4e # 78.90.15.253 -0xfb081556 # 86.21.8.251 -0xb24b5861 # 97.88.75.178 -0x2e114146 # 70.65.17.46 -0xb7780905 # 5.9.120.183 -0x33bb0e48 # 72.14.187.51 -0x39e26556 # 86.101.226.57 -0xa794484d # 77.72.148.167 -0x4225424d # 77.66.37.66 -0x3003795b # 91.121.3.48 -0x31c8cf44 # 68.207.200.49 -0xd65bad59 # 89.173.91.214 -0x127bc648 # 72.198.123.18 -0xf2bc4d4c # 76.77.188.242 -0x0273dc50 # 80.220.115.2 -0x4572d736 # 54.215.114.69 -0x064bf653 # 83.246.75.6 -0xcdcd126c # 108.18.205.205 -0x608281ae # 174.129.130.96 -0x4d130087 # 135.0.19.77 -0x1016f725 # 37.247.22.16 -0xba185fc0 # 192.95.24.186 -0x16c1a84f # 79.168.193.22 -0xfb697252 # 82.114.105.251 -0xa2942360 # 96.35.148.162 -0x53083b6c # 108.59.8.83 -0x0583f1c0 # 192.241.131.5 -0x2d5a2441 # 65.36.90.45 -0xc172aa43 # 67.170.114.193 -0xcd11cf36 # 54.207.17.205 -0x7b14ed62 # 98.237.20.123 -0x5c94f1c0 # 192.241.148.92 -0x7c23132e # 46.19.35.124 -0x39965a6f # 111.90.150.57 -0x7890e24e # 78.226.144.120 -0xa38ec447 # 71.196.142.163 -0xc187f1c0 # 192.241.135.193 -0xef80b647 # 71.182.128.239 -0xf20a7432 # 50.116.10.242 -0x7ad1d8d2 # 210.216.209.122 -0x869e2ec6 # 198.46.158.134 -0xccdb5c5d # 93.92.219.204 -0x9d11f636 # 54.246.17.157 -0x2161bb25 # 37.187.97.33 -0x7599f889 # 137.248.153.117 -0x2265ecad # 173.236.101.34 -0x0f4f0e55 # 85.14.79.15 -0x7d25854a # 74.133.37.125 -0xf857e360 # 96.227.87.248 -0xf83f3d6c # 108.61.63.248 -0x9cc93bb8 # 184.59.201.156 -0x02716857 # 87.104.113.2 -0x5dd8a177 # 119.161.216.93 -0x8adc6cd4 # 212.108.220.138 -0xe5613d46 # 70.61.97.229 -0x6a734f50 # 80.79.115.106 -0x2a5c3bae # 174.59.92.42 -0x4a04c3d1 # 209.195.4.74 -0xe4613d46 # 70.61.97.228 -0x8426f4bc # 188.244.38.132 -0x3e1b5fc0 # 192.95.27.62 -0x0d5a3c18 # 24.60.90.13 -0xd0f6d154 # 84.209.246.208 -0x21c7ff5e # 94.255.199.33 -0xeb3f3d6c # 108.61.63.235 -0x9da5edc0 # 192.237.165.157 -0x5d753b81 # 129.59.117.93 -0x0d8d53d4 # 212.83.141.13 -0x2613f018 # 24.240.19.38 -0x4443698d # 141.105.67.68 -0x8ca1edcd # 205.237.161.140 -0x10ed3f4e # 78.63.237.16 -0x789b403a # 58.64.155.120 -0x7b984a4b # 75.74.152.123 -0x964ebc25 # 37.188.78.150 -0x7520ee60 # 96.238.32.117 -0x4f4828bc # 188.40.72.79 -0x115c407d # 125.64.92.17 -0x32dd0667 # 103.6.221.50 -0xa741715e # 94.113.65.167 -0x1d3f3532 # 50.53.63.29 -0x817d1f56 # 86.31.125.129 -0x2f99a552 # 82.165.153.47 -0x6b2a5956 # 86.89.42.107 -0x8d4f4f05 # 5.79.79.141 -0xd23c1e17 # 23.30.60.210 -0x98993748 # 72.55.153.152 -0x2c92e536 # 54.229.146.44 -0x237ebdc3 # 195.189.126.35 -0xa762fb43 # 67.251.98.167 -0x32016b71 # 113.107.1.50 -0xd0e7cf79 # 121.207.231.208 -0x7d35bdd5 # 213.189.53.125 -0x53dac3d2 # 210.195.218.83 -0x31016b71 # 113.107.1.49 -0x7fb8f8ce # 206.248.184.127 -0x9a38c232 # 50.194.56.154 -0xefaa42ad # 173.66.170.239 -0x876b823d # 61.130.107.135 -0x18175347 # 71.83.23.24 -0xdb46597d # 125.89.70.219 -0xd2c168da # 218.104.193.210 -0xcd6fe9dc # 220.233.111.205 -0x45272e4e # 78.46.39.69 -0x8d4bca5b # 91.202.75.141 -0xa4043d47 # 71.61.4.164 -0xaab7aa47 # 71.170.183.170 -0x202881ae # 174.129.40.32 -0xa4aef160 # 96.241.174.164 -0xecd7e6bc # 188.230.215.236 -0x391359ad # 173.89.19.57 -0xd8cc9318 # 24.147.204.216 -0xbbeee52e # 46.229.238.187 -0x077067b0 # 176.103.112.7 -0xebd39d62 # 98.157.211.235 -0x0cedc547 # 71.197.237.12 -0x23d3e15e # 94.225.211.35 -0xa5a81318 # 24.19.168.165 -0x179a32c6 # 198.50.154.23 -0xe4d3483d # 61.72.211.228 -0x03680905 # 5.9.104.3 -0xe8018abc # 188.138.1.232 -0xdde9ef5b # 91.239.233.221 -0x438b8705 # 5.135.139.67 -0xb48224a0 # 160.36.130.180 -0xcbd69218 # 24.146.214.203 -0x9075795b # 91.121.117.144 -0xc6411c3e # 62.28.65.198 -0x03833f5c # 92.63.131.3 -0xf33f8b5e # 94.139.63.243 -0x495e464b # 75.70.94.73 -0x83c8e65b # 91.230.200.131 -0xac09cd25 # 37.205.9.172 -0xdaabc547 # 71.197.171.218 -0x7665a553 # 83.165.101.118 -0xc5263718 # 24.55.38.197 -0x2fd0c5cd # 205.197.208.47 -0x22224d61 # 97.77.34.34 -0x3e954048 # 72.64.149.62 -0xfaa37557 # 87.117.163.250 -0x36dbc658 # 88.198.219.54 -0xa81453d0 # 208.83.20.168 -0x5a941f5d # 93.31.148.90 -0xa598ea60 # 96.234.152.165 -0x65384ac6 # 198.74.56.101 -0x10aaa545 # 69.165.170.16 -0xaaab795b # 91.121.171.170 -0xdda7024c # 76.2.167.221 -0x0966f4c6 # 198.244.102.9 -0x68571c08 # 8.28.87.104 -0x8b40ee59 # 89.238.64.139 -0x33ac096c # 108.9.172.51 -0x844b4c4b # 75.76.75.132 -0xd392254d # 77.37.146.211 -0xba4d5a46 # 70.90.77.186 -0x63029653 # 83.150.2.99 -0xf655f636 # 54.246.85.246 -0xbe4c4bb1 # 177.75.76.190 -0x45dad036 # 54.208.218.69 -0x204bc052 # 82.192.75.32 -0x06c3a2b2 # 178.162.195.6 -0xf31fba6a # 106.186.31.243 -0xb21f09b0 # 176.9.31.178 -0x540d0751 # 81.7.13.84 -0xc7b46a57 # 87.106.180.199 -0x6a11795b # 91.121.17.106 -0x3d514045 # 69.64.81.61 -0x0318aa6d # 109.170.24.3 -0x30306ec3 # 195.110.48.48 -0x5c077432 # 50.116.7.92 -0x259ae46d # 109.228.154.37 -0x82bbd35f # 95.211.187.130 -0xae4222c0 # 192.34.66.174 -0x254415d4 # 212.21.68.37 -0xbd5f574b # 75.87.95.189 -0xd8fd175e # 94.23.253.216 -0x0a3f38c3 # 195.56.63.10 -0x2dce6bb8 # 184.107.206.45 -0xc201d058 # 88.208.1.194 -0x17fca5bc # 188.165.252.23 -0xe8453cca # 202.60.69.232 -0xd361f636 # 54.246.97.211 -0xa0d9edc0 # 192.237.217.160 -0x2f232e4e # 78.46.35.47 -0x134e116c # 108.17.78.19 -0x61ddc058 # 88.192.221.97 -0x05ba7283 # 131.114.186.5 -0xe1f7ed5b # 91.237.247.225 -0x040ec452 # 82.196.14.4 -0x4b672e4e # 78.46.103.75 -0xe4efa36d # 109.163.239.228 -0x47dca52e # 46.165.220.71 -0xe9332e4e # 78.46.51.233 -0xa3acb992 # 146.185.172.163 -0x24714c90 # 144.76.113.36 -0xa8cc8632 # 50.134.204.168 -0x26b1ce6d # 109.206.177.38 -0x264e53d4 # 212.83.78.38 -0xd3d2718c # 140.113.210.211 -0x225534ad # 173.52.85.34 -0xe289f3a2 # 162.243.137.226 -0x87341717 # 23.23.52.135 -0x9255ad4f # 79.173.85.146 -0x184bbb25 # 37.187.75.24 -0x885c7abc # 188.122.92.136 -0x3a6e9ac6 # 198.154.110.58 -0x1924185e # 94.24.36.25 -0xb73d4c90 # 144.76.61.183 -0x946d807a # 122.128.109.148 -0xa0d78e3f # 63.142.215.160 -0x5a16bb25 # 37.187.22.90 -0xcb09795b # 91.121.9.203 -0x8d0de657 # 87.230.13.141 -0x630b8b25 # 37.139.11.99 -0xe572c6cf # 207.198.114.229 -0x2b3f1118 # 24.17.63.43 -0x4242a91f # 31.169.66.66 -0x32990905 # 5.9.153.50 -0x058b0905 # 5.9.139.5 -0xe266fc60 # 96.252.102.226 -0xbe66c5b0 # 176.197.102.190 -0xcc98e46d # 109.228.152.204 -0x698c943e # 62.148.140.105 -0x44bd0cc3 # 195.12.189.68 -0x865c7abc # 188.122.92.134 -0x771764d3 # 211.100.23.119 -0x4675d655 # 85.214.117.70 -0x354e4826 # 38.72.78.53 -0xb67ac152 # 82.193.122.182 -0xaeccf285 # 133.242.204.174 -0xea625b4e # 78.91.98.234 -0xbcd6031f # 31.3.214.188 -0x5e81eb18 # 24.235.129.94 -0x74b347ce # 206.71.179.116 -0x3ca56ac1 # 193.106.165.60 -0x54ee4546 # 70.69.238.84 -0x38a8175e # 94.23.168.56 -0xa3c21155 # 85.17.194.163 -0x2f01576d # 109.87.1.47 -0x5d7ade50 # 80.222.122.93 -0xa003ae48 # 72.174.3.160 -0x2bc1d31f # 31.211.193.43 -0x13f5094c # 76.9.245.19 -0x7ab32648 # 72.38.179.122 -0x542e9fd5 # 213.159.46.84 -0x53136bc1 # 193.107.19.83 -0x7fdf51c0 # 192.81.223.127 -0x802197b2 # 178.151.33.128 -0xa2d2cc5b # 91.204.210.162 -0x6b5f4bc0 # 192.75.95.107 +# IPv4 nodes (generated using contrib/seeds/makeseeds.py) +1.33.197.110 +1.34.180.245 +1.202.128.218 +2.35.195.25 +5.100.123.19 +5.175.145.169 +5.199.133.193 +5.199.151.10 +5.228.1.230 +14.200.200.145 +18.228.0.188 +18.228.0.200 +23.30.243.153 +23.88.232.49 +23.99.105.9 +23.226.137.208 +23.227.177.161 +23.227.191.50 +23.229.45.32 +23.236.144.69 +23.253.148.113 +23.253.241.22 +23.255.227.231 +24.20.205.222 +24.23.120.252 +24.94.98.96 +24.98.95.201 +24.111.90.55 +24.119.119.105 +24.138.25.149 +31.3.214.45 +31.186.87.46 +31.186.101.98 +31.186.250.186 +31.204.153.107 +37.44.16.231 +37.44.44.11 +37.120.168.204 +37.143.86.26 +37.187.75.24 +37.188.68.169 +37.192.95.150 +37.201.246.116 +37.205.10.140 +46.10.210.17 +46.19.138.154 +46.28.204.123 +46.28.205.67 +46.38.235.229 +46.163.76.230 +46.166.162.91 +46.173.190.50 +46.227.66.132 +46.229.238.187 +46.236.116.209 +47.55.14.65 +50.7.252.229 +50.46.159.91 +50.78.49.181 +50.78.231.57 +50.79.153.65 +50.116.34.44 +50.126.86.253 +50.142.41.23 +50.199.113.193 +50.200.78.107 +50.206.138.177 +50.252.52.49 +54.165.25.75 +54.169.107.40 +54.179.190.56 +54.187.82.121 +54.246.85.246 +58.74.7.205 +58.96.183.121 +61.62.58.38 +61.63.91.72 +61.63.91.112 +61.72.211.228 +62.43.40.154 +62.43.130.178 +62.80.185.213 +62.109.49.26 +62.173.139.58 +62.181.238.186 +62.210.114.127 +63.141.228.138 +63.153.213.78 +63.223.84.145 +63.251.88.112 +64.31.110.50 +64.34.121.45 +64.114.6.42 +64.140.125.98 +64.156.193.100 +65.30.47.116 +65.35.132.177 +65.96.193.165 +65.111.189.26 +66.68.10.30 +66.114.33.250 +66.130.46.63 +66.175.215.135 +66.190.253.165 +66.194.38.254 +66.244.98.111 +67.162.238.30 +67.169.255.17 +67.183.173.25 +67.219.233.140 +67.227.240.115 +67.247.222.71 +68.43.114.66 +68.52.33.36 +68.198.245.241 +69.12.226.165 +69.13.198.188 +69.15.179.62 +69.39.239.47 +69.47.45.87 +69.62.217.206 +69.64.42.31 +69.64.81.61 +69.67.219.200 +69.90.132.157 +69.94.30.177 +69.136.175.241 +70.61.97.228 +70.123.118.132 +71.59.152.182 +71.198.248.151 +71.200.242.89 +71.225.179.157 +72.14.187.51 +72.38.34.180 +72.52.72.187 +72.91.144.182 +72.167.49.217 +72.201.243.55 +72.223.60.249 +72.228.153.102 +73.26.101.228 +73.50.158.200 +73.181.204.170 +74.57.199.180 +74.63.222.226 +74.81.231.21 +74.193.126.82 +74.207.235.164 +75.83.197.114 +75.144.114.9 +76.112.5.247 +76.174.20.247 +77.37.240.142 +77.57.202.107 +77.172.123.53 +77.221.91.253 +77.235.48.48 +77.245.78.2 +78.8.58.249 +78.27.191.182 +78.129.236.141 +78.131.88.47 +78.157.205.6 +79.132.230.144 +79.143.188.155 +79.160.221.140 +79.161.111.114 +80.100.189.3 +80.147.140.121 +80.203.75.133 +80.220.99.227 +80.222.20.169 +80.241.1.7 +81.23.191.243 +81.38.11.202 +81.80.9.71 +81.110.213.165 +81.133.155.237 +81.171.34.37 +81.181.155.180 +82.39.156.137 +82.73.161.95 +82.130.45.40 +82.165.153.47 +82.168.128.133 +82.179.225.118 +82.194.245.158 +82.199.102.10 +82.211.30.243 +82.217.133.145 +82.221.128.35 +82.221.131.177 +82.233.225.205 +83.0.249.146 +83.89.31.249 +83.128.29.231 +83.128.253.142 +83.143.130.56 +83.150.2.99 +83.150.9.196 +83.161.64.45 +83.212.103.212 +83.212.111.114 +83.246.75.8 +83.254.81.31 +83.254.150.54 +84.2.34.104 +84.15.61.60 +84.17.25.135 +84.42.144.19 +84.212.210.135 +84.215.165.231 +84.238.140.176 +84.240.31.184 +85.25.214.137 +85.139.163.132 +85.199.4.228 +85.214.61.209 +85.214.108.77 +86.123.16.17 +87.48.42.199 +87.104.168.104 +87.229.73.171 +87.236.196.77 +88.97.56.98 +88.134.178.89 +88.150.233.19 +88.168.133.3 +88.208.18.246 +88.208.33.202 +89.18.28.21 +89.85.220.84 +89.163.227.28 +89.184.83.60 +89.231.96.83 +89.236.49.117 +91.90.66.209 +91.106.194.97 +91.134.75.115 +91.152.193.36 +91.152.219.35 +91.197.10.234 +91.209.77.101 +91.210.106.147 +91.214.200.205 +91.223.115.38 +91.234.48.232 +91.250.86.18 +92.27.7.209 +92.255.207.73 +93.74.163.234 +93.84.114.106 +93.152.166.29 +93.171.216.221 +93.185.177.71 +94.19.12.244 +94.42.115.50 +94.79.177.206 +94.136.147.119 +94.143.245.5 +94.188.50.39 +94.190.227.112 +94.198.135.29 +94.226.107.86 +94.242.219.90 +94.242.229.168 +94.244.160.84 +95.31.10.209 +95.85.25.41 +95.105.161.136 +95.154.165.45 +95.154.200.216 +95.167.109.125 +95.211.125.231 +95.211.216.235 +96.33.25.17 +96.43.130.178 +97.118.8.236 +98.102.6.125 +98.202.20.45 +98.217.125.225 +98.234.210.111 +98.237.20.123 +98.255.144.176 +99.113.64.43 +99.229.22.8 +103.1.212.19 +103.30.42.189 +103.224.165.48 +103.243.94.140 +104.131.107.107 +104.131.116.184 +104.143.0.156 +104.219.184.9 +106.185.38.174 +107.6.4.145 +107.150.8.27 +107.150.33.20 +107.170.228.129 +107.170.240.173 +108.51.20.86 +108.61.149.222 +108.61.151.172 +108.161.129.247 +108.170.140.21 +109.60.211.216 +109.73.42.36 +109.73.172.138 +109.163.235.239 +109.190.196.220 +109.201.135.216 +109.228.152.2 +109.228.154.81 +109.230.220.125 +109.234.156.218 +109.235.49.27 +109.235.69.84 +112.124.71.0 +113.146.68.251 +115.29.17.82 +115.70.176.17 +117.41.162.184 +118.27.8.170 +119.230.7.211 +119.246.71.52 +121.172.8.100 +122.128.109.148 +123.231.224.63 +128.175.195.31 +128.199.164.96 +128.199.254.244 +129.97.69.76 +129.123.7.7 +129.123.7.39 +129.186.17.17 +131.247.169.190 +133.242.209.63 +134.102.94.38 +134.119.17.145 +137.116.160.176 +137.226.34.42 +138.210.217.170 +141.255.166.194 +143.215.129.126 +144.76.244.19 +146.148.52.162 +146.148.80.57 +146.185.19.30 +146.185.142.86 +146.185.253.51 +148.251.6.214 +149.154.155.235 +149.210.133.244 +151.224.248.252 +153.121.75.229 +153.127.251.67 +154.20.2.139 +157.13.61.5 +158.58.173.48 +159.253.23.132 +162.209.110.218 +162.213.254.205 +162.239.254.100 +162.242.150.39 +162.243.81.138 +162.243.235.56 +162.244.79.16 +162.245.217.119 +162.248.102.117 +162.251.108.53 +162.254.149.139 +162.255.116.78 +166.70.94.106 +167.88.45.124 +167.88.120.210 +173.26.49.43 +173.30.14.6 +173.80.114.197 +173.167.214.243 +173.208.219.108 +173.220.67.156 +173.236.101.34 +173.246.107.34 +173.255.237.241 +174.2.213.209 +174.51.23.224 +174.51.123.159 +174.57.212.121 +174.109.33.28 +175.126.124.91 +175.126.124.92 +176.10.116.242 +176.36.35.126 +176.36.99.222 +176.124.110.47 +176.194.33.44 +176.223.201.198 +178.62.26.83 +178.62.36.48 +178.62.212.141 +178.62.254.59 +178.78.250.3 +178.155.86.226 +178.175.134.35 +178.248.111.4 +178.254.1.170 +178.254.34.161 +179.43.114.14 +182.213.208.28 +184.68.2.46 +184.72.238.42 +184.94.226.34 +184.94.227.58 +184.107.139.58 +184.107.206.45 +185.10.48.117 +185.21.216.156 +185.38.47.224 +185.45.192.129 +185.53.129.230 +185.53.131.114 +185.55.53.61 +185.55.53.63 +185.61.119.2 +185.61.148.203 +186.2.167.23 +188.92.75.178 +188.122.92.134 +188.138.9.208 +188.165.209.148 +188.226.206.239 +190.10.8.124 +190.10.10.147 +192.0.130.142 +192.3.89.159 +192.73.234.138 +192.75.95.107 +192.95.100.102 +192.155.84.181 +192.169.233.206 +192.198.93.86 +192.227.135.216 +193.0.109.3 +193.77.50.208 +193.109.68.62 +193.150.121.37 +193.224.69.98 +194.79.8.37 +194.141.86.10 +195.12.180.94 +195.56.63.10 +195.116.93.93 +195.154.174.226 +195.159.111.98 +195.169.138.2 +195.189.126.35 +195.197.175.190 +197.242.93.82 +198.11.214.147 +198.49.41.21 +199.33.124.186 +199.204.186.146 +199.233.238.115 +199.241.189.66 +202.60.68.242 +202.60.69.232 +203.183.151.39 +203.219.14.204 +204.44.123.109 +204.44.123.162 +204.45.120.178 +206.190.134.44 +206.248.184.127 +207.244.73.8 +208.66.30.27 +209.81.9.223 +209.105.243.229 +209.126.70.159 +209.140.30.169 +209.165.128.235 +209.190.2.242 +210.66.254.236 +210.73.27.33 +211.72.66.229 +212.25.37.124 +212.71.235.114 +212.71.252.109 +212.114.48.31 +212.174.151.118 +213.66.205.194 +213.129.248.139 +213.136.87.34 +213.165.82.133 +213.167.17.6 +213.179.158.253 +213.189.53.125 +213.222.208.93 +216.49.158.161 +216.55.143.154 +216.131.91.100 +216.245.206.181 +216.250.138.230 +217.11.225.189 +217.23.6.133 +217.75.88.178 +217.172.143.140 +217.195.169.209 +217.196.248.106 +219.138.161.162 +222.167.248.90 +223.18.254.55 # Onion nodes bitcoinostk4e4re.onion:8333 diff --git a/src/chainparamsseeds.h b/src/chainparamsseeds.h index 575e1293342..6b6e5103f5f 100644 --- a/src/chainparamsseeds.h +++ b/src/chainparamsseeds.h @@ -8,606 +8,518 @@ * IPv4 as well as onion addresses are wrapped inside a IPv6 address accordingly. */ static SeedSpec6 pnSeed6_main[] = { - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0x69,0x6a,0x7e}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa2,0xd1,0x04,0x7d}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd9,0x17,0x0c,0x6c}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0x0a,0x33,0xdb}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc6,0xc7,0x49,0xc6}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4d,0x48,0x95,0x78}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb0,0x09,0x71,0x04}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0xa5,0x0c,0xb9}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0x80,0x30,0xd1}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa6,0x4e,0x07,0xbd}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0xf1,0x8f,0x57}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb0,0x09,0x6e,0x28}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x42,0xaf,0xdc,0xd4}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb8,0x6b,0x9b,0x52}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0xc6,0x5c,0x63}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0x89,0xde,0xed}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc7,0xd9,0x76,0xa9}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb8,0xa4,0x91,0xea}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0x4e,0xfa,0x03}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x8d,0x00,0xa9,0x6c}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0xc8,0x62,0xaf}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x51,0xba,0xf3,0x93}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd5,0xef,0xc9,0xc2}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x17,0xd5,0x0e}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0x28,0x70,0x48}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0xc2,0x97,0x72}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x58,0xc6,0xf0,0x8a}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x01,0x21,0xc5,0x6e}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x01,0x22,0xb4,0xf5}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x01,0xca,0x80,0xda}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x02,0x23,0xc3,0x19}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x64,0x7b,0x13}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0xaf,0x91,0xa9}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0xc7,0x85,0xc1}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0xc7,0x97,0x0a}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0xe4,0x01,0xe6}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x0e,0xc8,0xc8,0x91}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x12,0xe4,0x00,0xbc}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x12,0xe4,0x00,0xc8}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x17,0x1e,0xf3,0x99}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x17,0x58,0xe8,0x31}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x17,0x63,0x69,0x09}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x17,0xe2,0x89,0xd0}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x17,0xe3,0xb1,0xa1}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x17,0xe3,0xbf,0x32}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x17,0xe5,0x2d,0x20}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x17,0xec,0x90,0x45}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x17,0xfd,0x94,0x71}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x17,0xfd,0xf1,0x16}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x17,0xff,0xe3,0xe7}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x18,0x14,0xcd,0xde}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x18,0x17,0x78,0xfc}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x18,0x5e,0x62,0x60}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x18,0x62,0x5f,0xc9}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x18,0x6f,0x5a,0x37}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x18,0x77,0x77,0x69}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x18,0x8a,0x19,0x95}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x1f,0x03,0xd6,0x2d}, 8333}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x1f,0xba,0x57,0x2e}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0x8a,0x09,0xd0}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3e,0x85,0xa8,0x46}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3e,0xdc,0x92,0xcc}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0x19,0x6f,0xeb}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x17,0xce,0x8c}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xae,0x81,0x72,0x23}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0x79,0x42,0x9d}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x09,0x4f,0x4f}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd0,0x51,0x01,0xc5}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc6,0x90,0xba,0xb1}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x17,0xd7,0xae}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0xe5,0x4d,0x20}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x45,0x32,0xb0,0x4b}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0x28,0x2b,0x93}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0xe6,0xcc,0x2d}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0x8a,0x70,0xe2}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd5,0xb8,0x08,0x1b}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0xdc,0xa3,0x12}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x90,0x4c,0x88,0x8a}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb8,0xa8,0x86,0xa3}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc6,0x17,0xe4,0x18}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc3,0x9a,0x70,0x2e}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0xe9,0x62,0xeb}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xae,0x03,0x65,0x6f}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4e,0x81,0xd0,0x05}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x45,0xc5,0x9a,0x8a}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0xd6,0x6f,0x94}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5d,0x49,0x57,0x3f}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x58,0xc6,0x29,0x4a}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x90,0x4c,0x45,0xad}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x09,0x34,0x15}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0x3b,0x3f,0x4c}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0x19,0xfe,0x01}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0x59,0x20,0x56}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0x79,0x3c,0x44}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc8,0x4a,0xf2,0x44}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4e,0x46,0x42,0x04}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x82,0x58,0x66,0xc8}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc3,0x3e,0x3f,0xed}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5d,0xbf,0x85,0xf5}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xda,0x41,0xd1,0x5d}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x1f,0xba,0x65,0x62}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x1f,0xba,0xfa,0xba}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x1f,0xcc,0x99,0x6b}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0x2c,0x10,0xe7}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0x2c,0x2c,0x0b}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0x78,0xa8,0xcc}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0x8f,0x56,0x1a}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0xbb,0x4b,0x18}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0xbc,0x44,0xa9}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0xc0,0x5f,0x96}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0xc9,0xf6,0x74}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0xcd,0x0a,0x8c}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0x0a,0xd2,0x11}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0x13,0x8a,0x9a}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0x1c,0xcc,0x7b}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0x1c,0xcd,0x43}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0x26,0xeb,0xe5}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0xa3,0x4c,0xe6}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0xa6,0xa2,0x5b}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0xad,0xbe,0x32}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0xe3,0x42,0x84}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0xe5,0xee,0xbb}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0xec,0x74,0xd1}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2f,0x37,0x0e,0x41}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0x07,0xfc,0xe5}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0x2e,0x9f,0x5b}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0x4e,0x31,0xb5}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0x4e,0xe7,0x39}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0x4f,0x99,0x41}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0x74,0x22,0x2c}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0x7e,0x56,0xfd}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0x8e,0x29,0x17}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0xc7,0x71,0xc1}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0xc8,0x4e,0x6b}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0xce,0x8a,0xb1}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0xfc,0x34,0x31}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x36,0xa5,0x19,0x4b}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x36,0xa9,0x6b,0x28}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x36,0xb3,0xbe,0x38}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x36,0xbb,0x52,0x79}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x36,0xf6,0x55,0xf6}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3a,0x4a,0x07,0xcd}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3a,0x60,0xb7,0x79}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3d,0x3e,0x3a,0x26}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3d,0x3f,0x5b,0x48}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3d,0x3f,0x5b,0x70}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3d,0x48,0xd3,0xe4}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3e,0x2b,0x28,0x9a}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3e,0x2b,0x82,0xb2}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3e,0x50,0xb9,0xd5}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3e,0x6d,0x31,0x1a}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3e,0xad,0x8b,0x3a}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3e,0xb5,0xee,0xba}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3e,0xd2,0x72,0x7f}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3f,0x8d,0xe4,0x8a}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3f,0x99,0xd5,0x4e}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3f,0xdf,0x54,0x91}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3f,0xfb,0x58,0x70}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x40,0x1f,0x6e,0x32}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x40,0x22,0x79,0x2d}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x40,0x72,0x06,0x2a}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x40,0x8c,0x7d,0x62}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x40,0x9c,0xc1,0x64}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x41,0x1e,0x2f,0x74}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x41,0x23,0x84,0xb1}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x41,0x60,0xc1,0xa5}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x41,0x6f,0xbd,0x1a}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x42,0x44,0x0a,0x1e}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x42,0x72,0x21,0xfa}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x42,0x82,0x2e,0x3f}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x42,0xaf,0xd7,0x87}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x42,0xbe,0xfd,0xa5}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x42,0xc2,0x26,0xfe}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x42,0xf4,0x62,0x6f}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x43,0xa2,0xee,0x1e}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x43,0xa9,0xff,0x11}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x43,0xb7,0xad,0x19}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x43,0xdb,0xe9,0x8c}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x43,0xe3,0xf0,0x73}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x43,0xf7,0xde,0x47}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x44,0x2b,0x72,0x42}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x44,0x34,0x21,0x24}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x44,0xc6,0xf5,0xf1}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x45,0x0c,0xe2,0xa5}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x45,0x0d,0xc6,0xbc}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x45,0x0f,0xb3,0x3e}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x45,0x27,0xef,0x2f}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x45,0x2f,0x2d,0x57}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x45,0x3e,0xd9,0xce}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x45,0x40,0x2a,0x1f}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x45,0x40,0x51,0x3d}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x45,0x43,0xdb,0xc8}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x45,0x5a,0x84,0x9d}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x45,0x5e,0x1e,0xb1}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x45,0x88,0xaf,0xf1}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x46,0x3d,0x61,0xe4}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x46,0x7b,0x76,0x84}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x47,0x3b,0x98,0xb6}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x47,0xc6,0xf8,0x97}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x47,0xc8,0xf2,0x59}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x47,0xe1,0xb3,0x9d}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x48,0x0e,0xbb,0x33}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x48,0x26,0x22,0xb4}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x48,0x34,0x48,0xbb}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x48,0x5b,0x90,0xb6}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x48,0xa7,0x31,0xd9}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x48,0xc9,0xf3,0x37}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x48,0xdf,0x3c,0xf9}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x48,0xe4,0x99,0x66}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x49,0x1a,0x65,0xe4}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x49,0x32,0x9e,0xc8}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x49,0xb5,0xcc,0xaa}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4a,0x39,0xc7,0xb4}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4a,0x3f,0xde,0xe2}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4a,0x51,0xe7,0x15}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4a,0xc1,0x7e,0x52}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4a,0xcf,0xeb,0xa4}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4b,0x53,0xc5,0x72}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4b,0x90,0x72,0x09}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4c,0x70,0x05,0xf7}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4c,0xae,0x14,0xf7}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4d,0x25,0xf0,0x8e}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4d,0x39,0xca,0x6b}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4d,0xac,0x7b,0x35}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4d,0xdd,0x5b,0xfd}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4d,0xeb,0x30,0x30}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4d,0xf5,0x4e,0x02}, 8333}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4e,0x08,0x3a,0xf9}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0xdd,0x64,0x12}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x58,0xc6,0x11,0x07}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbe,0x7b,0x2e,0xf1}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x40,0xb7,0x02,0x5b}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd5,0x6d,0x52,0x7d}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x90,0x4c,0xb0,0x0c}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0x11,0xbe,0x2a}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x58,0x9f,0xa3,0x61}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x18,0x06,0x4a,0x04}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xce,0x7d,0xaf,0xf3}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6d,0xc9,0x94,0xb9}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x58,0x50,0x1c,0x36}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x53,0x5d,0x73,0xca}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb0,0x43,0xa7,0xec}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x09,0x79,0xec}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x45,0x78,0xd3,0xc4}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0xa2,0xc4,0xa1}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4e,0x1b,0xbf,0xb6}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4e,0x81,0xec,0x8d}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4e,0x83,0x58,0x2f}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4e,0x9d,0xcd,0x06}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4f,0x84,0xe6,0x90}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4f,0x8f,0xbc,0x9b}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4f,0xa0,0xdd,0x8c}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4f,0xa1,0x6f,0x72}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x50,0x64,0xbd,0x03}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x50,0x93,0x8c,0x79}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x50,0xcb,0x4b,0x85}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x50,0xdc,0x63,0xe3}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x50,0xde,0x14,0xa9}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x50,0xf1,0x01,0x07}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x51,0x17,0xbf,0xf3}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x51,0x26,0x0b,0xca}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x51,0x50,0x09,0x47}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x51,0x6e,0xd5,0xa5}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x51,0x85,0x9b,0xed}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x51,0xab,0x22,0x25}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x51,0xb5,0x9b,0xb4}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0x27,0x9c,0x89}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0x49,0xa1,0x5f}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0x82,0x2d,0x28}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0xa5,0x99,0x2f}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0xa8,0x80,0x85}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0xb3,0xe1,0x76}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0xc2,0xf5,0x9e}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0xc7,0x66,0x0a}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0xd3,0x1e,0xf3}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0xd9,0x85,0x91}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0xdd,0x80,0x23}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0xdd,0x83,0xb1}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0xe9,0xe1,0xcd}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x53,0x00,0xf9,0x92}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x53,0x59,0x1f,0xf9}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x53,0x80,0x1d,0xe7}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x53,0x80,0xfd,0x8e}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x53,0x8f,0x82,0x38}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x53,0x96,0x02,0x63}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x53,0x96,0x09,0xc4}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x53,0xa1,0x40,0x2d}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x53,0xd4,0x67,0xd4}, 8333}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x53,0xd4,0x6f,0x72}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0xc6,0x5c,0x62}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0x13,0x20,0x6c}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x79,0x0c,0xaa,0xb7}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3d,0x98,0xed,0xc6}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0xcb,0xe4,0x47}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd4,0x75,0xac,0xa4}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x45,0x93,0xe5,0xe2}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd0,0x4a,0x78,0x4d}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0xec,0xa5,0x18}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0xc8,0x1c,0x48}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd5,0x2f,0x6c,0x7c}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x18,0x60,0x4d,0x5e}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x18,0x6c,0x4b,0x5b}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x90,0x4c,0x9b,0xd9}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xdc,0x87,0x39,0xe6}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0xbb,0x17,0xb8}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0xfe,0x1c,0x14}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x58,0x50,0x00,0x5f}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x47,0x7f,0x98,0x0d}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6d,0x49,0x2a,0x24}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0x9b,0x51,0x3e}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4b,0x45,0xb2,0x02}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc6,0x3d,0xaf,0xdf}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0x28,0x81,0x88}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0xbb,0x65,0x11}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0xca,0xfe,0xab}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x40,0x35,0xf6,0x2e}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc6,0xc7,0x73,0x57}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0xdd,0x80,0x12}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd9,0xac,0xbc,0x8e}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc6,0x39,0xc4,0x81}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x45,0xfa,0xfc,0x39}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x41,0x7d,0x17,0x62}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x62,0xed,0x75,0xc9}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x76,0xf4,0xcf,0x05}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x43,0xa7,0xbd,0xda}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4e,0xc2,0x1a,0xaa}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0xa2,0x55,0xe2}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0xc7,0xaa,0x88}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x58,0xc6,0x07,0xe7}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x4b,0xe9,0xa9}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4b,0x48,0x93,0x28}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x27,0x51,0x99}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xca,0x70,0x39,0xd6}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0x4f,0x99,0x45}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0xa8,0x19,0xe5}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5d,0x5f,0xe2,0x92}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc1,0xa9,0x84,0x8b}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x0a,0xaa,0x5e}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0xe5,0x4d,0xa7}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x62,0xff,0x90,0xb0}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6c,0x32,0xee,0x5e}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x79,0xa6,0x31,0xc3}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0xb7,0xd9,0xc1}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x82,0xb9,0x6a,0x0c}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0xbb,0x62,0x73}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x42,0xdd,0xfe,0x4c}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0xa0,0x09,0x1e}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x4c,0xc3,0xa4}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc7,0xd9,0x77,0x37}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x60,0xf2,0xdc,0x5e}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x48,0xb5,0xe2,0x3c}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x60,0x03,0xac,0xd2}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x92,0xb9,0x80,0x2f}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0xbb,0x4c,0x3e}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x36,0xe2,0x95,0x39}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xae,0x77,0x39,0xd0}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x54,0xf0,0x3c,0x95}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd0,0x4e,0x65,0x3c}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x90,0x4c,0x02,0x74}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0x11,0x4f,0xa1}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0x01,0xce,0x14}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6a,0xbb,0x5e,0xc1}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0xc4,0x08,0x2c}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0x06,0xfd,0xc7}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xce,0xf8,0x04,0x76}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0x83,0xb3,0xff}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd5,0xef,0xc2,0xa4}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x18,0x40,0x61,0xe9}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x53,0xf6,0x4b,0x08}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x53,0xfe,0x51,0x1f}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x53,0xfe,0x96,0x36}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x54,0x02,0x22,0x68}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x54,0x0f,0x3d,0x3c}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x54,0x11,0x19,0x87}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x54,0x2a,0x90,0x13}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x54,0xd4,0xd2,0x87}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x54,0xd7,0xa5,0xe7}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x54,0xee,0x8c,0xb0}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x54,0xf0,0x1f,0xb8}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0x19,0xd6,0x89}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0x8b,0xa3,0x84}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0xc7,0x04,0xe4}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0xd6,0x3d,0xd1}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0xd6,0x6c,0x4d}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x56,0x7b,0x10,0x11}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x57,0x30,0x2a,0xc7}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x57,0x68,0xa8,0x68}, 8333}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x57,0xe5,0x49,0xab}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0xc0,0x48,0x16}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x47,0x40,0x02,0x36}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0xff,0x8c,0x0e}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x53,0x89,0x91,0x21}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0x50,0x1f,0xb6}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x59,0x6b,0x40,0x9b}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x18,0x22,0x28,0xaf}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4e,0x16,0x1d,0x7f}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa2,0x0d,0x56,0x1f}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x58,0xbe,0x37,0xe2}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0x19,0xeb,0xbd}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd9,0x17,0x07,0x6c}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x62,0xce,0xf8,0xda}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6c,0x24,0x74,0x0f}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x43,0x52,0xe9,0xde}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x56,0x1a,0x3f,0xf2}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x67,0xf8,0xbd,0x61}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x54,0xc8,0x54,0xd2}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4e,0x2e,0x42,0xc4}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0x63,0x05,0xae}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0xa9,0xb9,0xbd}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc6,0x32,0xeb,0xa9}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x50,0x39,0x94,0xd9}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0xdd,0x6a,0x11}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x90,0x4c,0xa5,0x73}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x52,0x6b,0xb3}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x17,0x34,0xd7}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x76,0x7f,0x3d,0x33}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc6,0x1b,0x43,0x51}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xcf,0xe5,0x4a,0x08}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6c,0x23,0x0a,0xa6}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0x69,0x67,0x5c}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x45,0xcf,0x77,0x01}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc6,0x3a,0x68,0xa6}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x47,0xea,0xf4,0x7f}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0xfa,0x92,0x21}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x46,0x0f,0x3a,0xa0}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xae,0x39,0x3e,0xfe}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc1,0x5f,0xce,0x2c}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x48,0xc1,0xa6,0xc8}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4c,0x7e,0xfb,0x96}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0xc7,0x66,0x0a}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x27,0x4d,0x6b}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x18,0xc1,0xa0,0xeb}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0x79,0xa0,0x3b}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3e,0xd2,0xcc,0x1d}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa2,0xf3,0x12,0x69}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x41,0x3c,0xf2,0x22}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4a,0x6b,0x64,0x65}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x87,0x9f,0x8b}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x95,0x9a,0x9b,0xeb}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4e,0x6b,0xfe,0x79}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x47,0xf4,0x36,0x05}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x61,0x4d,0x22,0x23}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc6,0x2e,0x95,0x5d}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x36,0xf7,0xb4,0x0c}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6d,0xbe,0x14,0xdc}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb0,0x09,0x46,0xb2}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x62,0x9b,0xf7,0xd3}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x36,0xc8,0x18,0x65}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x42,0xcf,0xa3,0x83}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb0,0x1f,0x64,0x9b}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0xf1,0xfe,0x17}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x82,0xcc,0x08,0xd5}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x9b,0x36,0xa4,0x91}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4c,0x4a,0xcb,0x39}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6c,0x53,0xc9,0xbb}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4a,0xc4,0x64,0xaf}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x50,0xca,0x5e,0x60}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x68,0x6a,0x0c}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4e,0x9d,0x7e,0xd0}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa2,0xd3,0xe6,0x78}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x57,0xec,0xc4,0x4d}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x58,0x61,0x38,0x62}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x58,0x86,0xb2,0x59}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x58,0x96,0xe9,0x13}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x58,0xa8,0x85,0x03}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x58,0xd0,0x12,0xf6}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x58,0xd0,0x21,0xca}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x59,0x12,0x1c,0x15}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x59,0x55,0xdc,0x54}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x59,0xa3,0xe3,0x1c}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x59,0xb8,0x53,0x3c}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x59,0xe7,0x60,0x53}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x59,0xec,0x31,0x75}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0x5a,0x42,0xd1}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0x6a,0xc2,0x61}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0x86,0x4b,0x73}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0x98,0xc1,0x24}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0x98,0xdb,0x23}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0xc5,0x0a,0xea}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0xd1,0x4d,0x65}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0xd2,0x6a,0x93}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0xd6,0xc8,0xcd}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0xdf,0x73,0x26}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0xea,0x30,0xe8}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0xfa,0x56,0x12}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5c,0x1b,0x07,0xd1}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5c,0xff,0xcf,0x49}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5d,0x4a,0xa3,0xea}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5d,0x54,0x72,0x6a}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5d,0x98,0xa6,0x1d}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5d,0xab,0xd8,0xdd}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5d,0xb9,0xb1,0x47}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x13,0x0c,0xf4}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x2a,0x73,0x32}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x4f,0xb1,0xce}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x88,0x93,0x77}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x8f,0xf5,0x05}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0xbc,0x32,0x27}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0xbe,0xe3,0x70}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0xc6,0x87,0x1d}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0xe2,0x6b,0x56}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0xf2,0xdb,0x5a}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0xf2,0xe5,0xa8}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0xf4,0xa0,0x54}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0x1f,0x0a,0xd1}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0x55,0x19,0x29}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0x69,0xa1,0x88}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0x9a,0xa5,0x2d}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0x9a,0xc8,0xd8}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0xa7,0x6d,0x7d}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0xd3,0x7d,0xe7}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0xd3,0xd8,0xeb}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x60,0x21,0x19,0x11}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x60,0x2b,0x82,0xb2}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x61,0x76,0x08,0xec}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x62,0x66,0x06,0x7d}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x62,0xca,0x14,0x2d}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x62,0xd9,0x7d,0xe1}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x62,0xea,0xd2,0x6f}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x62,0xed,0x14,0x7b}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x62,0xff,0x90,0xb0}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x63,0x71,0x40,0x2b}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x63,0xe5,0x16,0x08}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x67,0x01,0xd4,0x13}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x67,0x1e,0x2a,0xbd}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x67,0xe0,0xa5,0x30}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x67,0xf3,0x5e,0x8c}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x68,0x83,0x6b,0x6b}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x68,0x83,0x74,0xb8}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x68,0x8f,0x00,0x9c}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x68,0xdb,0xb8,0x09}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6a,0xb9,0x26,0xae}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6b,0x06,0x04,0x91}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6b,0x96,0x08,0x1b}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6b,0x96,0x21,0x14}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6b,0xaa,0xe4,0x81}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6b,0xaa,0xf0,0xad}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6c,0x33,0x14,0x56}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6c,0x3d,0x95,0xde}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6c,0x3d,0x97,0xac}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6c,0xa1,0x81,0xf7}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6c,0xaa,0x8c,0x15}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6d,0x3c,0xd3,0xd8}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6d,0x49,0x2a,0x24}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6d,0x49,0xac,0x8a}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6d,0xa3,0xeb,0xef}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6d,0xbe,0xc4,0xdc}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6d,0xc9,0x87,0xd8}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6d,0xe4,0x98,0x02}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6d,0xe4,0x9a,0x51}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6d,0xe6,0xdc,0x7d}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6d,0xea,0x9c,0xda}, 8333}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6d,0xeb,0x31,0x1b}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0xfe,0x01,0xaa}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x36,0xc2,0x03,0x46}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb6,0xa3,0xcb,0x1e}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x36,0xe3,0xff,0x0e}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x36,0xcb,0xfd,0xc3}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6f,0x03,0x90,0xc2}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0x69,0x64,0x44}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x89,0x75,0xca,0x1a}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0xe5,0xa9,0x59}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x89,0x74,0xaa,0x19}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0xc8,0x22,0x26}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x18,0xd3,0x98,0xa5}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x45,0xc3,0x8e,0x43}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0x19,0x96,0xc7}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x60,0x03,0x57,0xaf}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x89,0xe2,0x98,0x50}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x62,0xd8,0xad,0x36}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0xa2,0xc1,0x83}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x09,0x9d,0x96}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6c,0x15,0x3d,0xcf}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x45,0xa4,0xc1,0x49}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x62,0x75,0x0b,0xbd}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0x19,0xff,0x8f}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x53,0xfe,0x51,0x1e}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd5,0xef,0xd6,0x28}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x62,0xcc,0x37,0x28}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x42,0x2d,0xf4,0x02}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0x3f,0x0e,0x07}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x87,0xb1,0xbc}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0xe1,0xa4,0x14}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x44,0x68,0x09,0x82}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0x1c,0xcb,0xcf}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc7,0x7f,0xe2,0x37}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x48,0x37,0x92,0x07}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0xbc,0x14,0x0c}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x09,0x10,0x26}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3e,0xd9,0x7c,0xcb}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0xd2,0xc0,0x3b}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4c,0x1b,0x13,0x97}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x17,0x5c,0x1e,0x6f}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x43,0x9f,0x93,0xa7}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x58,0xbf,0xa0,0xb7}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x47,0x3a,0xa8,0xaf}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0x3f,0xb8,0xcb}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb0,0x1c,0x32,0x5f}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc7,0xc3,0xd6,0x52}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc7,0x5b,0xac,0xde}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xcc,0x10,0xf3,0x2c}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc3,0x2b,0x8a,0x10}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4f,0xa1,0x6f,0x72}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xcc,0xd2,0xba,0x85}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x90,0x4c,0x9e,0x45}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd8,0xb8,0x08,0x1a}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc6,0x48,0x70,0xcd}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x90,0x4c,0x5b,0x6d}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x7b,0xfe,0x6c,0xa6}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x09,0x73,0xad}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc7,0x5b,0xac,0xda}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x9f,0xfd,0x17,0x84}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0x74,0x37,0x41}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0x86,0x13,0x1f}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0x12,0x5a,0x29}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0x31,0xc0,0x7a}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x95,0xd2,0x87,0x3a}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0xbc,0x19,0xe2}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6d,0xeb,0x45,0x54}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x70,0x7c,0x47,0x00}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x71,0x92,0x44,0xfb}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x73,0x1d,0x11,0x52}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x73,0x46,0xb0,0x11}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x75,0x29,0xa2,0xb8}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x76,0x1b,0x08,0xaa}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x77,0xe6,0x07,0xd3}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x77,0xf6,0x47,0x34}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x79,0xac,0x08,0x64}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x7a,0x80,0x6d,0x94}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x7b,0xe7,0xe0,0x3f}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x80,0xaf,0xc3,0x1f}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x80,0xc7,0xa4,0x60}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x80,0xc7,0xfe,0xf4}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x81,0x61,0x45,0x4c}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x81,0x7b,0x07,0x07}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x81,0x7b,0x07,0x27}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x81,0xba,0x11,0x11}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x83,0xf7,0xa9,0xbe}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x85,0xf2,0xd1,0x3f}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x86,0x66,0x5e,0x26}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x86,0x77,0x11,0x91}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x89,0x74,0xa0,0xb0}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x89,0xe2,0x22,0x2a}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x8a,0xd2,0xd9,0xaa}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x8d,0xff,0xa6,0xc2}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x8f,0xd7,0x81,0x7e}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x90,0x4c,0xf4,0x13}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x92,0x94,0x34,0xa2}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x92,0x94,0x50,0x39}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x92,0xb9,0x13,0x1e}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x92,0xb9,0x8e,0x56}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x92,0xb9,0xfd,0x33}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x94,0xfb,0x06,0xd6}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x95,0x9a,0x9b,0xeb}, 8333}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x95,0xd2,0x85,0xf4}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x64,0x7b,0x13}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0xd9,0xff,0xcf}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x44,0x08,0xe2,0xaf}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0x9a,0x67,0x32}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x44,0xc6,0x31,0xa4}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x8c,0xce,0x5f,0x0e}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x53,0xf8,0x5e,0x30}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0xca,0x26,0xad}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x54,0x1a,0xd2,0xd9}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x36,0xd7,0xd0,0xdd}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc7,0xc0,0x4e,0xc2}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0xcd,0xad,0x4a}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0x98,0x10,0x49}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc6,0x3a,0x6b,0x9d}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x8b,0x1e,0xaa,0xf0}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x43,0xa3,0xbf,0xf1}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0xc0,0x30,0x8a}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd4,0x93,0x0f,0x26}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x60,0xe7,0x39,0x23}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x9f,0x95,0x69,0x88}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6c,0x21,0x07,0xc2}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x48,0x34,0x45,0x29}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x36,0xec,0x51,0xb6}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x59,0x62,0x49,0x45}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xcc,0x1b,0x3d,0xa2}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x43,0xcf,0x9b,0xb3}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0x94,0xd2,0xa1}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x58,0xc6,0x07,0x35}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x62,0xdd,0x88,0x4a}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x63,0xf3,0xaf,0x27}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6d,0xea,0x98,0x74}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd5,0x85,0x67,0x4a}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc2,0x47,0x6d,0x5e}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x42,0xa5,0xab,0x3b}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xae,0x37,0x5a,0x04}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc7,0xc0,0x4d,0xa2}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4d,0xea,0x81,0xe9}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x17,0xe2,0x6c,0xed}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc6,0x14,0x72,0x85}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x64,0x04,0x6c,0x6b}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb8,0x45,0x49,0x5a}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x42,0x47,0xf2,0x12}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0x42,0x5f,0xf3}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4e,0x5a,0x0f,0xfd}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x56,0x15,0x08,0xfb}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x61,0x58,0x4b,0xb2}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x46,0x41,0x11,0x2e}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x09,0x78,0xb7}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x48,0x0e,0xbb,0x33}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x56,0x65,0xe2,0x39}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4d,0x48,0x94,0xa7}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4d,0x42,0x25,0x42}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0x79,0x03,0x30}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x44,0xcf,0xc8,0x31}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x59,0xad,0x5b,0xd6}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x48,0xc6,0x7b,0x12}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4c,0x4d,0xbc,0xf2}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x50,0xdc,0x73,0x02}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x36,0xd7,0x72,0x45}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x53,0xf6,0x4b,0x06}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6c,0x12,0xcd,0xcd}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xae,0x81,0x82,0x60}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x87,0x00,0x13,0x4d}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0xf7,0x16,0x10}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0x5f,0x18,0xba}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4f,0xa8,0xc1,0x16}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0x72,0x69,0xfb}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x60,0x23,0x94,0xa2}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6c,0x3b,0x08,0x53}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0xf1,0x83,0x05}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x41,0x24,0x5a,0x2d}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x43,0xaa,0x72,0xc1}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x36,0xcf,0x11,0xcd}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x62,0xed,0x14,0x7b}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0xf1,0x94,0x5c}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0x13,0x23,0x7c}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6f,0x5a,0x96,0x39}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4e,0xe2,0x90,0x78}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x47,0xc4,0x8e,0xa3}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0xf1,0x87,0xc1}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x47,0xb6,0x80,0xef}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0x74,0x0a,0xf2}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd2,0xd8,0xd1,0x7a}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc6,0x2e,0x9e,0x86}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5d,0x5c,0xdb,0xcc}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x36,0xf6,0x11,0x9d}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0xbb,0x61,0x21}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x89,0xf8,0x99,0x75}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x97,0xe0,0xf8,0xfc}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x99,0x79,0x4b,0xe5}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x99,0x7f,0xfb,0x43}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x9a,0x14,0x02,0x8b}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x9d,0x0d,0x3d,0x05}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x9e,0x3a,0xad,0x30}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x9f,0xfd,0x17,0x84}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa2,0xd1,0x6e,0xda}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa2,0xd5,0xfe,0xcd}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa2,0xef,0xfe,0x64}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa2,0xf2,0x96,0x27}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa2,0xf3,0x51,0x8a}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa2,0xf3,0xeb,0x38}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa2,0xf4,0x4f,0x10}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa2,0xf5,0xd9,0x77}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa2,0xf8,0x66,0x75}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa2,0xfb,0x6c,0x35}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa2,0xfe,0x95,0x8b}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa2,0xff,0x74,0x4e}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa6,0x46,0x5e,0x6a}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa7,0x58,0x2d,0x7c}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa7,0x58,0x78,0xd2}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0x1a,0x31,0x2b}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0x1e,0x0e,0x06}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0x50,0x72,0xc5}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0xa7,0xd6,0xf3}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0xd0,0xdb,0x6c}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0xdc,0x43,0x9c}, 8333}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0xec,0x65,0x22}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0x0e,0x4f,0x0f}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4a,0x85,0x25,0x7d}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x60,0xe3,0x57,0xf8}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6c,0x3d,0x3f,0xf8}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb8,0x3b,0xc9,0x9c}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x57,0x68,0x71,0x02}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x77,0xa1,0xd8,0x5d}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd4,0x6c,0xdc,0x8a}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x46,0x3d,0x61,0xe5}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x50,0x4f,0x73,0x6a}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xae,0x3b,0x5c,0x2a}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd1,0xc3,0x04,0x4a}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x46,0x3d,0x61,0xe4}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0xf4,0x26,0x84}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0x5f,0x1b,0x3e}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x18,0x3c,0x5a,0x0d}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x54,0xd1,0xf6,0xd0}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0xff,0xc7,0x21}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6c,0x3d,0x3f,0xeb}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0xed,0xa5,0x9d}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x81,0x3b,0x75,0x5d}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd4,0x53,0x8d,0x0d}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x18,0xf0,0x13,0x26}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x8d,0x69,0x43,0x44}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xcd,0xed,0xa1,0x8c}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4e,0x3f,0xed,0x10}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3a,0x40,0x9b,0x78}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4b,0x4a,0x98,0x7b}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0xbc,0x4e,0x96}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x60,0xee,0x20,0x75}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0x28,0x48,0x4f}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x7d,0x40,0x5c,0x11}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x67,0x06,0xdd,0x32}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x71,0x41,0xa7}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0x35,0x3f,0x1d}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x56,0x1f,0x7d,0x81}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0xa5,0x99,0x2f}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x56,0x59,0x2a,0x6b}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x4f,0x4f,0x8d}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x17,0x1e,0x3c,0xd2}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x48,0x37,0x99,0x98}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x36,0xe5,0x92,0x2c}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc3,0xbd,0x7e,0x23}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x43,0xfb,0x62,0xa7}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x71,0x6b,0x01,0x32}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x79,0xcf,0xe7,0xd0}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd5,0xbd,0x35,0x7d}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd2,0xc3,0xda,0x53}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x71,0x6b,0x01,0x31}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xce,0xf8,0xb8,0x7f}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0xc2,0x38,0x9a}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0x42,0xaa,0xef}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3d,0x82,0x6b,0x87}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x47,0x53,0x17,0x18}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x7d,0x59,0x46,0xdb}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xda,0x68,0xc1,0xd2}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xdc,0xe9,0x6f,0xcd}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4e,0x2e,0x27,0x45}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0xca,0x4b,0x8d}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x47,0x3d,0x04,0xa4}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x47,0xaa,0xb7,0xaa}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xae,0x81,0x28,0x20}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x60,0xf1,0xae,0xa4}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0xe6,0xd7,0xec}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0x59,0x13,0x39}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x18,0x93,0xcc,0xd8}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0xe5,0xee,0xbb}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb0,0x67,0x70,0x07}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x62,0x9d,0xd3,0xeb}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x47,0xc5,0xed,0x0c}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0xe1,0xd3,0x23}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x18,0x13,0xa8,0xa5}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc6,0x32,0x9a,0x17}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3d,0x48,0xd3,0xe4}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x09,0x68,0x03}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0x8a,0x01,0xe8}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0xef,0xe9,0xdd}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x87,0x8b,0x43}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa0,0x24,0x82,0xb4}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x18,0x92,0xd6,0xcb}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0x79,0x75,0x90}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3e,0x1c,0x41,0xc6}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5c,0x3f,0x83,0x03}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x8b,0x3f,0xf3}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4b,0x46,0x5e,0x49}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0xe6,0xc8,0x83}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0xcd,0x09,0xac}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x47,0xc5,0xab,0xda}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x53,0xa5,0x65,0x76}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x18,0x37,0x26,0xc5}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xcd,0xc5,0xd0,0x2f}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x61,0x4d,0x22,0x22}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x48,0x40,0x95,0x3e}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x57,0x75,0xa3,0xfa}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x58,0xc6,0xdb,0x36}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd0,0x53,0x14,0xa8}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5d,0x1f,0x94,0x5a}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x60,0xea,0x98,0xa5}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc6,0x4a,0x38,0x65}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x45,0xa5,0xaa,0x10}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0x79,0xab,0xaa}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4c,0x02,0xa7,0xdd}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc6,0xf4,0x66,0x09}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x08,0x1c,0x57,0x68}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x59,0xee,0x40,0x8b}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6c,0x09,0xac,0x33}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4b,0x4c,0x4b,0x84}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4d,0x25,0x92,0xd3}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x46,0x5a,0x4d,0xba}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x53,0x96,0x02,0x63}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x36,0xf6,0x55,0xf6}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb1,0x4b,0x4c,0xbe}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x36,0xd0,0xda,0x45}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0xc0,0x4b,0x20}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0xa2,0xc3,0x06}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6a,0xba,0x1f,0xf3}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb0,0x09,0x1f,0xb2}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x51,0x07,0x0d,0x54}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x57,0x6a,0xb4,0xc7}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0x79,0x11,0x6a}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x45,0x40,0x51,0x3d}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6d,0xaa,0x18,0x03}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc3,0x6e,0x30,0x30}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0x74,0x07,0x5c}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6d,0xe4,0x9a,0x25}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0xd3,0xbb,0x82}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0x22,0x42,0xae}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd4,0x15,0x44,0x25}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4b,0x57,0x5f,0xbd}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x17,0xfd,0xd8}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc3,0x38,0x3f,0x0a}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0xf6,0x6b,0x22}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0xff,0xed,0xf1}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xae,0x02,0xd5,0xd1}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xae,0x33,0x17,0xe0}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xae,0x33,0x7b,0x9f}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xae,0x39,0xd4,0x79}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xae,0x6d,0x21,0x1c}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xaf,0x7e,0x7c,0x5b}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xaf,0x7e,0x7c,0x5c}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb0,0x0a,0x74,0xf2}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb0,0x24,0x23,0x7e}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb0,0x24,0x63,0xde}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb0,0x7c,0x6e,0x2f}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb0,0xc2,0x21,0x2c}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb0,0xdf,0xc9,0xc6}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0x3e,0x1a,0x53}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0x3e,0x24,0x30}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0x3e,0xd4,0x8d}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0x3e,0xfe,0x3b}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0x4e,0xfa,0x03}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0x9b,0x56,0xe2}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0xaf,0x86,0x23}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0xf8,0x6f,0x04}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0xfe,0x01,0xaa}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0xfe,0x22,0xa1}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb3,0x2b,0x72,0x0e}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb6,0xd5,0xd0,0x1c}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb8,0x44,0x02,0x2e}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb8,0x48,0xee,0x2a}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb8,0x5e,0xe2,0x22}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb8,0x5e,0xe3,0x3a}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb8,0x6b,0x8b,0x3a}, 8333}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb8,0x6b,0xce,0x2d}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x58,0xd0,0x01,0xc2}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0xa5,0xfc,0x17}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xca,0x3c,0x45,0xe8}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x36,0xf6,0x61,0xd3}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0xed,0xd9,0xa0}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4e,0x2e,0x23,0x2f}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6c,0x11,0x4e,0x13}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x58,0xc0,0xdd,0x61}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x83,0x72,0xba,0x05}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0xed,0xf7,0xe1}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0xc4,0x0e,0x04}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4e,0x2e,0x67,0x4b}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6d,0xa3,0xef,0xe4}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0xa5,0xdc,0x47}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4e,0x2e,0x33,0xe9}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x92,0xb9,0xac,0xa3}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x90,0x4c,0x71,0x24}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0x86,0xcc,0xa8}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6d,0xce,0xb1,0x26}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd4,0x53,0x4e,0x26}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x8c,0x71,0xd2,0xd3}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0x34,0x55,0x22}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa2,0xf3,0x89,0xe2}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x17,0x17,0x34,0x87}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4f,0xad,0x55,0x92}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0xbb,0x4b,0x18}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0x7a,0x5c,0x88}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc6,0x9a,0x6e,0x3a}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x18,0x24,0x19}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x90,0x4c,0x3d,0xb7}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x7a,0x80,0x6d,0x94}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3f,0x8e,0xd7,0xa0}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0xbb,0x16,0x5a}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0x79,0x09,0xcb}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x57,0xe6,0x0d,0x8d}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0x8b,0x0b,0x63}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xcf,0xc6,0x72,0xe5}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x18,0x11,0x3f,0x2b}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x1f,0xa9,0x42,0x42}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x09,0x99,0x32}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x09,0x8b,0x05}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x60,0xfc,0x66,0xe2}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb0,0xc5,0x66,0xbe}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6d,0xe4,0x98,0xcc}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3e,0x94,0x8c,0x69}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc3,0x0c,0xbd,0x44}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0x0a,0x30,0x75}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0x15,0xd8,0x9c}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0x26,0x2f,0xe0}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0x2d,0xc0,0x81}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0x35,0x81,0xe6}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0x35,0x83,0x72}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0x37,0x35,0x3d}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0x37,0x35,0x3f}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0x3d,0x77,0x02}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0x3d,0x94,0xcb}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xba,0x02,0xa7,0x17}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0x5c,0x4b,0xb2}, 8333}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0x7a,0x5c,0x86}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd3,0x64,0x17,0x77}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0xd6,0x75,0x46}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x26,0x48,0x4e,0x35}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0xc1,0x7a,0xb6}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x85,0xf2,0xcc,0xae}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4e,0x5b,0x62,0xea}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x1f,0x03,0xd6,0xbc}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x18,0xeb,0x81,0x5e}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xce,0x47,0xb3,0x74}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc1,0x6a,0xa5,0x3c}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x46,0x45,0xee,0x54}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x17,0xa8,0x38}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0x11,0xc2,0xa3}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6d,0x57,0x01,0x2f}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x50,0xde,0x7a,0x5d}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x48,0xae,0x03,0xa0}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x1f,0xd3,0xc1,0x2b}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4c,0x09,0xf5,0x13}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x48,0x26,0xb3,0x7a}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd5,0x9f,0x2e,0x54}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc1,0x6b,0x13,0x53}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0x51,0xdf,0x7f}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0x97,0x21,0x80}, 8333}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0xcc,0xd2,0xa2}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0x8a,0x09,0xd0}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0xa5,0xd1,0x94}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0xe2,0xce,0xef}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbe,0x0a,0x08,0x7c}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbe,0x0a,0x0a,0x93}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0x00,0x82,0x8e}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0x03,0x59,0x9f}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0x49,0xea,0x8a}, 8333}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0x4b,0x5f,0x6b}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0x5f,0x64,0x66}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0x9b,0x54,0xb5}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0xa9,0xe9,0xce}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0xc6,0x5d,0x56}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0xe3,0x87,0xd8}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc1,0x00,0x6d,0x03}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc1,0x4d,0x32,0xd0}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc1,0x6d,0x44,0x3e}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc1,0x96,0x79,0x25}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc1,0xe0,0x45,0x62}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc2,0x4f,0x08,0x25}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc2,0x8d,0x56,0x0a}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc3,0x0c,0xb4,0x5e}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc3,0x38,0x3f,0x0a}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc3,0x74,0x5d,0x5d}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc3,0x9a,0xae,0xe2}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc3,0x9f,0x6f,0x62}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc3,0xa9,0x8a,0x02}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc3,0xbd,0x7e,0x23}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc3,0xc5,0xaf,0xbe}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc5,0xf2,0x5d,0x52}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc6,0x0b,0xd6,0x93}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc6,0x31,0x29,0x15}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc7,0x21,0x7c,0xba}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc7,0xcc,0xba,0x92}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc7,0xe9,0xee,0x73}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc7,0xf1,0xbd,0x42}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xca,0x3c,0x44,0xf2}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xca,0x3c,0x45,0xe8}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xcb,0xb7,0x97,0x27}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xcb,0xdb,0x0e,0xcc}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xcc,0x2c,0x7b,0x6d}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xcc,0x2c,0x7b,0xa2}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xcc,0x2d,0x78,0xb2}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xce,0xbe,0x86,0x2c}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xce,0xf8,0xb8,0x7f}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xcf,0xf4,0x49,0x08}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd0,0x42,0x1e,0x1b}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd1,0x51,0x09,0xdf}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd1,0x69,0xf3,0xe5}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd1,0x7e,0x46,0x9f}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd1,0x8c,0x1e,0xa9}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd1,0xa5,0x80,0xeb}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd1,0xbe,0x02,0xf2}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd2,0x42,0xfe,0xec}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd2,0x49,0x1b,0x21}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd3,0x48,0x42,0xe5}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd4,0x19,0x25,0x7c}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd4,0x47,0xeb,0x72}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd4,0x47,0xfc,0x6d}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd4,0x72,0x30,0x1f}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd4,0xae,0x97,0x76}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd5,0x42,0xcd,0xc2}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd5,0x81,0xf8,0x8b}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd5,0x88,0x57,0x22}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd5,0xa5,0x52,0x85}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd5,0xa7,0x11,0x06}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd5,0xb3,0x9e,0xfd}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd5,0xbd,0x35,0x7d}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd5,0xde,0xd0,0x5d}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd8,0x31,0x9e,0xa1}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd8,0x37,0x8f,0x9a}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd8,0x83,0x5b,0x64}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd8,0xf5,0xce,0xb5}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd8,0xfa,0x8a,0xe6}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd9,0x0b,0xe1,0xbd}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd9,0x17,0x06,0x85}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd9,0x4b,0x58,0xb2}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd9,0xac,0x8f,0x8c}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd9,0xc3,0xa9,0xd1}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd9,0xc4,0xf8,0x6a}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xdb,0x8a,0xa1,0xa2}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xde,0xa7,0xf8,0x5a}, 8333}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xdf,0x12,0xfe,0x37}, 8333}, {{0xfd,0x87,0xd8,0x7e,0xeb,0x43,0x0a,0x26,0x27,0x21,0xae,0x94,0xd5,0xc2,0x72,0x24}, 8333}, {{0xfd,0x87,0xd8,0x7e,0xeb,0x43,0xea,0xb9,0x5b,0x63,0x1d,0x94,0xe2,0xed,0xec,0xa1}, 8333}, {{0xfd,0x87,0xd8,0x7e,0xeb,0x43,0xce,0x36,0xa1,0xc1,0xd6,0x64,0x43,0xfb,0xb3,0xe7}, 8333}, From 06fdf326d38b02efba0ebafa4be59b4ac062c092 Mon Sep 17 00:00:00 2001 From: "Eric R. Schulz" Date: Mon, 22 Dec 2014 21:04:53 -0500 Subject: [PATCH 042/201] bitcoin-tx: Fix JSON validation of prevtxs Github-Pull: #5528 Rebased-From: 2a3d988b802dcea4453241e37168d8511078940a a089c50981e822014ffc18e8a37b3518feb52206 2c14d1532fe66a243cdbfb7de48b298213305765 --- src/Makefile.test.include | 3 ++- src/bitcoin-tx.cpp | 6 +++--- src/test/data/bitcoin-util-test.json | 10 ++++++++++ src/test/data/txcreatesign.hex | 1 + 4 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 src/test/data/txcreatesign.hex diff --git a/src/Makefile.test.include b/src/Makefile.test.include index 9e9f478d8fe..b9d15f4df39 100644 --- a/src/Makefile.test.include +++ b/src/Makefile.test.include @@ -14,7 +14,8 @@ EXTRA_DIST += \ test/data/tt-locktime317000-out.hex \ test/data/tx394b54bb.hex \ test/data/txcreate1.hex \ - test/data/txcreate2.hex + test/data/txcreate2.hex \ + test/data/txcreatesign.hex JSON_TEST_FILES = \ test/data/script_valid.json \ diff --git a/src/bitcoin-tx.cpp b/src/bitcoin-tx.cpp index 7308d936617..0f16b36f14b 100644 --- a/src/bitcoin-tx.cpp +++ b/src/bitcoin-tx.cpp @@ -368,7 +368,7 @@ static void MutateTxSign(CMutableTransaction& tx, const string& flagStr) // Add previous txouts given in the RPC call: if (!registers.count("prevtxs")) throw runtime_error("prevtxs register variable must be set."); - UniValue prevtxsObj = registers["privatekeys"]; + UniValue prevtxsObj = registers["prevtxs"]; { for (unsigned int previdx = 0; previdx < prevtxsObj.count(); previdx++) { UniValue prevOut = prevtxsObj[previdx]; @@ -379,13 +379,13 @@ static void MutateTxSign(CMutableTransaction& tx, const string& flagStr) if (!prevOut.checkObject(types)) throw runtime_error("prevtxs internal object typecheck fail"); - uint256 txid = ParseHashUV(prevOut, "txid"); + uint256 txid = ParseHashUV(prevOut["txid"], "txid"); int nOut = atoi(prevOut["vout"].getValStr()); if (nOut < 0) throw runtime_error("vout must be positive"); - vector pkData(ParseHexUV(prevOut, "scriptPubKey")); + vector pkData(ParseHexUV(prevOut["scriptPubKey"], "scriptPubKey")); CScript scriptPubKey(pkData.begin(), pkData.end()); { diff --git a/src/test/data/bitcoin-util-test.json b/src/test/data/bitcoin-util-test.json index f8424b72a34..6090421cb66 100644 --- a/src/test/data/bitcoin-util-test.json +++ b/src/test/data/bitcoin-util-test.json @@ -46,5 +46,15 @@ { "exec": "./bitcoin-tx", "args": ["-create", "outscript=0:"], "output_cmp": "txcreate2.hex" + }, + { "exec": "./bitcoin-tx", + "args": + ["-create", + "in=4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc59485:0", + "set=privatekeys:[\"5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDf\"]", + "set=prevtxs:[{\"txid\":\"4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc59485\",\"vout\":0,\"scriptPubKey\":\"4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc59485\"}]", + "sign=ALL", + "outaddr=0.001:193P6LtvS4nCnkDvM9uXn1gsSRqh4aDAz7"], + "output_cmp": "txcreatesign.hex" } ] diff --git a/src/test/data/txcreatesign.hex b/src/test/data/txcreatesign.hex new file mode 100644 index 00000000000..56ce28a8655 --- /dev/null +++ b/src/test/data/txcreatesign.hex @@ -0,0 +1 @@ +01000000018594c5bdcaec8f06b78b596f31cd292a294fd031e24eec716f43dac91ea7494d0000000000ffffffff01a0860100000000001976a9145834479edbbe0539b31ffd3a8f8ebadc2165ed0188ac00000000 From 3022e7df2a3f2c6e9869877c189c7e7cea7d7b54 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Tue, 23 Dec 2014 23:50:21 +0100 Subject: [PATCH 043/201] Require sufficent priority for relay of free transactions Rebased-From: 1c52aad540ec1370db60fd68fc3485413e3cb8e1 Github-Pull: #5535 --- qa/pull-tester/run-bitcoind-for-test.sh.in | 2 +- src/init.cpp | 1 + src/main.cpp | 9 +++++++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/qa/pull-tester/run-bitcoind-for-test.sh.in b/qa/pull-tester/run-bitcoind-for-test.sh.in index 42d8ad52e88..14ae08e4e58 100755 --- a/qa/pull-tester/run-bitcoind-for-test.sh.in +++ b/qa/pull-tester/run-bitcoind-for-test.sh.in @@ -10,7 +10,7 @@ touch "$DATADIR/regtest/debug.log" tail -q -n 1 -F "$DATADIR/regtest/debug.log" | grep -m 1 -q "Done loading" & WAITER=$! PORT=`expr 10000 + $$ % 55536` -"@abs_top_builddir@/src/bitcoind@EXEEXT@" -connect=0.0.0.0 -datadir="$DATADIR" -rpcuser=user -rpcpassword=pass -listen -keypool=3 -debug -debug=net -logtimestamps -checkmempool=0 -port=$PORT -whitelist=127.0.0.1 -regtest -rpcport=`expr $PORT + 1` & +"@abs_top_builddir@/src/bitcoind@EXEEXT@" -connect=0.0.0.0 -datadir="$DATADIR" -rpcuser=user -rpcpassword=pass -listen -keypool=3 -debug -debug=net -logtimestamps -checkmempool=0 -relaypriority=0 -port=$PORT -whitelist=127.0.0.1 -regtest -rpcport=`expr $PORT + 1` & BITCOIND=$! #Install a watchdog. diff --git a/src/init.cpp b/src/init.cpp index 4374d60fe5f..c5430c1f251 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -324,6 +324,7 @@ std::string HelpMessage(HelpMessageMode mode) if (GetBoolArg("-help-debug", false)) { strUsage += " -limitfreerelay= " + strprintf(_("Continuously rate-limit free transactions to *1000 bytes per minute (default:%u)"), 15) + "\n"; + strUsage += " -relaypriority " + strprintf(_("Require high priority for relaying free or low-fee transactions (default:%u)"), 1) + "\n"; strUsage += " -maxsigcachesize= " + strprintf(_("Limit size of signature cache to entries (default: %u)"), 50000) + "\n"; } strUsage += " -minrelaytxfee= " + strprintf(_("Fees (in BTC/Kb) smaller than this are considered zero fee for relaying (default: %s)"), FormatMoney(::minRelayTxFee.GetFeePerK())) + "\n"; diff --git a/src/main.cpp b/src/main.cpp index c40a5e1672e..cf2d07604fa 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1022,7 +1022,12 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa hash.ToString(), nFees, txMinFee), REJECT_INSUFFICIENTFEE, "insufficient fee"); - // Continuously rate-limit free (really, very-low-fee)transactions + // Require that free transactions have sufficient priority to be mined in the next block. + if (GetBoolArg("-relaypriority", true) && nFees < ::minRelayTxFee.GetFee(nSize) && !AllowFree(view.GetPriority(tx, chainActive.Height() + 1))) { + return state.DoS(0, false, REJECT_INSUFFICIENTFEE, "insufficient priority"); + } + + // Continuously rate-limit free (really, very-low-fee) transactions // This mitigates 'penny-flooding' -- sending thousands of free transactions just to // be annoying or make others' transactions take longer to confirm. if (fLimitFree && nFees < ::minRelayTxFee.GetFee(nSize)) @@ -1041,7 +1046,7 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa // At default rate it would take over a month to fill 1GB if (dFreeCount >= GetArg("-limitfreerelay", 15)*10*1000) return state.DoS(0, error("AcceptToMemoryPool : free transaction rejected by rate limiter"), - REJECT_INSUFFICIENTFEE, "insufficient priority"); + REJECT_INSUFFICIENTFEE, "rate limited free transaction"); LogPrint("mempool", "Rate limit dFreeCount: %g => %g\n", dFreeCount, dFreeCount+nSize); dFreeCount += nSize; } From 008138c04a3242b72dc5128ac3585b50ac44e84e Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Sun, 4 Jan 2015 17:15:02 +0100 Subject: [PATCH 044/201] Bugfix: only track UTXO modification after lookup Otherwise, if CCoinsViewCache::ModifyCoins throws an exception in between setting hasModifier and constructing the CCoinsModifier, the cache ends up in an inconsistent state, resulting in an assert failure in the next modification. Bug discovered by Wladimir J. van der Laan. Rebased-From: 1c52aad540ec1370db60fd68fc3485413e3cb8e1 Github-Pull: #5597 --- src/coins.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/coins.cpp b/src/coins.cpp index c2e802c9536..66919da11e8 100644 --- a/src/coins.cpp +++ b/src/coins.cpp @@ -106,7 +106,6 @@ bool CCoinsViewCache::GetCoins(const uint256 &txid, CCoins &coins) const { CCoinsModifier CCoinsViewCache::ModifyCoins(const uint256 &txid) { assert(!hasModifier); - hasModifier = true; std::pair ret = cacheCoins.insert(std::make_pair(txid, CCoinsCacheEntry())); if (ret.second) { if (!base->GetCoins(txid, ret.first->second.coins)) { @@ -247,7 +246,10 @@ double CCoinsViewCache::GetPriority(const CTransaction &tx, int nHeight) const return tx.ComputePriority(dResult); } -CCoinsModifier::CCoinsModifier(CCoinsViewCache& cache_, CCoinsMap::iterator it_) : cache(cache_), it(it_) {} +CCoinsModifier::CCoinsModifier(CCoinsViewCache& cache_, CCoinsMap::iterator it_) : cache(cache_), it(it_) { + assert(!cache.hasModifier); + cache.hasModifier = true; +} CCoinsModifier::~CCoinsModifier() { From 867c600c292cf2a1c0f6f60742d8e23fb01179f6 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Sun, 4 Jan 2015 19:11:44 +0100 Subject: [PATCH 045/201] Catch LevelDB errors during flush Rebased-From: e41345790f1041f5c5e5605d73a0af174769aa55 Github-Pull: #5597 --- src/main.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main.cpp b/src/main.cpp index cf2d07604fa..5e1be0d25cc 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1805,6 +1805,7 @@ enum FlushStateMode { bool static FlushStateToDisk(CValidationState &state, FlushStateMode mode) { LOCK(cs_main); static int64_t nLastWrite = 0; + try { if ((mode == FLUSH_STATE_ALWAYS) || ((mode == FLUSH_STATE_PERIODIC || mode == FLUSH_STATE_IF_NEEDED) && pcoinsTip->GetCacheSize() > nCoinCacheSize) || (mode == FLUSH_STATE_PERIODIC && GetTimeMicros() > nLastWrite + DATABASE_WRITE_INTERVAL * 1000000)) { @@ -1845,6 +1846,9 @@ bool static FlushStateToDisk(CValidationState &state, FlushStateMode mode) { } nLastWrite = GetTimeMicros(); } + } catch (const std::runtime_error& e) { + return state.Abort(std::string("System error while flushing: ") + e.what()); + } return true; } From e2677d7ae8e6601a31c13aadf150cb48c29d7d1f Mon Sep 17 00:00:00 2001 From: Suhas Daftuar Date: Wed, 7 Jan 2015 10:11:23 -0500 Subject: [PATCH 046/201] Fix smartfees test for change to relay policy Github-Pull: #5575 Rebased-From: 1eb1e65f092dc2b6e1067d2018440fbbd997fa5c --- qa/rpc-tests/smartfees.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/qa/rpc-tests/smartfees.py b/qa/rpc-tests/smartfees.py index 924d1601025..0c07ef8a53d 100755 --- a/qa/rpc-tests/smartfees.py +++ b/qa/rpc-tests/smartfees.py @@ -16,20 +16,20 @@ class EstimateFeeTest(BitcoinTestFramework): def setup_network(self): self.nodes = [] self.nodes.append(start_node(0, self.options.tmpdir, - ["-debug=mempool", "-debug=estimatefee"])) + ["-debug=mempool", "-debug=estimatefee", "-relaypriority=0"])) # Node1 mines small-but-not-tiny blocks, and allows free transactions. # NOTE: the CreateNewBlock code starts counting block size at 1,000 bytes, # so blockmaxsize of 2,000 is really just 1,000 bytes (room enough for # 6 or 7 transactions) self.nodes.append(start_node(1, self.options.tmpdir, ["-blockprioritysize=1500", "-blockmaxsize=2000", - "-debug=mempool", "-debug=estimatefee"])) + "-debug=mempool", "-debug=estimatefee", "-relaypriority=0"])) connect_nodes(self.nodes[1], 0) # Node2 is a stingy miner, that # produces very small blocks (room for only 3 or so transactions) node2args = [ "-blockprioritysize=0", "-blockmaxsize=1500", - "-debug=mempool", "-debug=estimatefee"] + "-debug=mempool", "-debug=estimatefee", "-relaypriority=0"] self.nodes.append(start_node(2, self.options.tmpdir, node2args)) connect_nodes(self.nodes[2], 0) From 263b65ebf0ce0beae5622a533234c8f897aec4e1 Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Mon, 5 Jan 2015 21:39:40 -0500 Subject: [PATCH 047/201] tests: run sanity checks in tests too If these are going to fail in bitcoind, they should fail in the tests as well. Github-Pull: #5604 Rebased-From: d58c5d6f21fd2421bc8cbb224849e8c38b617775 --- src/Makefile.test.include | 1 + src/test/sanity_tests.cpp | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 src/test/sanity_tests.cpp diff --git a/src/Makefile.test.include b/src/Makefile.test.include index b9d15f4df39..0a9a335e7a3 100644 --- a/src/Makefile.test.include +++ b/src/Makefile.test.include @@ -57,6 +57,7 @@ BITCOIN_TESTS =\ test/netbase_tests.cpp \ test/pmt_tests.cpp \ test/rpc_tests.cpp \ + test/sanity_tests.cpp \ test/script_P2SH_tests.cpp \ test/script_tests.cpp \ test/scriptnum_tests.cpp \ diff --git a/src/test/sanity_tests.cpp b/src/test/sanity_tests.cpp new file mode 100644 index 00000000000..464a8fbb8cf --- /dev/null +++ b/src/test/sanity_tests.cpp @@ -0,0 +1,18 @@ +// Copyright (c) 2012-2013 The Bitcoin Core developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "compat/sanity.h" +#include "key.h" + +#include +BOOST_AUTO_TEST_SUITE(sanity_tests) + +BOOST_AUTO_TEST_CASE(basic_sanity) +{ + BOOST_CHECK_MESSAGE(glibc_sanity_test() == true, "libc sanity test"); + BOOST_CHECK_MESSAGE(glibcxx_sanity_test() == true, "stdlib sanity test"); + BOOST_CHECK_MESSAGE(ECC_InitSanityCheck() == true, "openssl ECC test"); +} + +BOOST_AUTO_TEST_SUITE_END() From ace39db7644d5cb6bb8f99a465c5635b090e9ca5 Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Fri, 9 Jan 2015 16:39:12 -0500 Subject: [PATCH 048/201] consensus: guard against openssl's new strict DER checks New versions of OpenSSL will reject non-canonical DER signatures. However, it'll happily decode them. Decode then re-encode before verification in order to ensure that it is properly consumed. Github-Pull: #5634 Rebased-From: 488ed32f2ada1d1dd108fc245d025c4d5f252783 --- src/ecwrapper.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/ecwrapper.cpp b/src/ecwrapper.cpp index 5ce7e612946..be33913d0d9 100644 --- a/src/ecwrapper.cpp +++ b/src/ecwrapper.cpp @@ -117,10 +117,20 @@ bool CECKey::SetPubKey(const unsigned char* pubkey, size_t size) { } bool CECKey::Verify(const uint256 &hash, const std::vector& vchSig) { - // -1 = error, 0 = bad sig, 1 = good - if (ECDSA_verify(0, (unsigned char*)&hash, sizeof(hash), &vchSig[0], vchSig.size(), pkey) != 1) + // New versions of OpenSSL will reject non-canonical DER signatures. de/re-serialize first. + unsigned char *norm_der = NULL; + ECDSA_SIG *norm_sig = ECDSA_SIG_new(); + const unsigned char* sigptr = &vchSig[0]; + d2i_ECDSA_SIG(&norm_sig, &sigptr, vchSig.size()); + int derlen = i2d_ECDSA_SIG(norm_sig, &norm_der); + ECDSA_SIG_free(norm_sig); + if (derlen <= 0) return false; - return true; + + // -1 = error, 0 = bad sig, 1 = good + bool ret = ECDSA_verify(0, (unsigned char*)&hash, sizeof(hash), norm_der, derlen, pkey) == 1; + OPENSSL_free(norm_der); + return ret; } bool CECKey::Recover(const uint256 &hash, const unsigned char *p64, int rec) From 2d375fe97b34b16c11868dca8c5dde5667026914 Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Fri, 9 Jan 2015 20:52:55 -0500 Subject: [PATCH 049/201] depends: bump openssl to 1.0.1k Github-Pull: #5634 Rebased-From: dad7764a9dedb1143b6ea8bfd37f71f7ff72f518 --- depends/packages/openssl.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/depends/packages/openssl.mk b/depends/packages/openssl.mk index 6d7a556c110..1ffcb56cb19 100644 --- a/depends/packages/openssl.mk +++ b/depends/packages/openssl.mk @@ -1,8 +1,8 @@ package=openssl -$(package)_version=1.0.1j +$(package)_version=1.0.1k $(package)_download_path=https://www.openssl.org/source $(package)_file_name=$(package)-$($(package)_version).tar.gz -$(package)_sha256_hash=1b60ca8789ba6f03e8ef20da2293b8dc131c39d83814e775069f02d26354edf3 +$(package)_sha256_hash=8f9faeaebad088e772f4ef5e38252d472be4d878c6b3a2718c10a4fcebe7a41c define $(package)_set_vars $(package)_config_env=AR="$($(package)_ar)" RANLIB="$($(package)_ranlib)" CC="$($(package)_cc)" From 76ce5c8de3b97c9843e23c9b30f1049045c4b293 Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Fri, 9 Jan 2015 22:06:08 -0500 Subject: [PATCH 050/201] fail immediately on an empty signature Github-Pull: #5634 Rebased-From: 8dccba6a45db0466370726ed462b9da2eae43bce --- src/ecwrapper.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ecwrapper.cpp b/src/ecwrapper.cpp index be33913d0d9..79f70d1f47b 100644 --- a/src/ecwrapper.cpp +++ b/src/ecwrapper.cpp @@ -117,6 +117,9 @@ bool CECKey::SetPubKey(const unsigned char* pubkey, size_t size) { } bool CECKey::Verify(const uint256 &hash, const std::vector& vchSig) { + if (vchSig.empty()) + return false; + // New versions of OpenSSL will reject non-canonical DER signatures. de/re-serialize first. unsigned char *norm_der = NULL; ECDSA_SIG *norm_sig = ECDSA_SIG_new(); From 12b7c444f0b0bee42e97b62b0b40f11c8d1debe7 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Sun, 11 Jan 2015 11:08:53 +0100 Subject: [PATCH 051/201] Improve robustness of DER recoding code Add some defensive programming on top of #5634. This copies the respective OpenSSL code in ECDSA_verify in OpenSSL pre-1.0.1k (e.g. https://github.com/openssl/openssl/blob/OpenSSL_1_0_1j/crypto/ecdsa/ecs_vrf.c#L89) more closely. As reported by @sergiodemianlerner. Github-Pull: #5640 Rebased-From: c6b7b29f232c651f898eeffb93f36c8f537c56d2 --- src/ecwrapper.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/ecwrapper.cpp b/src/ecwrapper.cpp index 79f70d1f47b..5bfa740cc6c 100644 --- a/src/ecwrapper.cpp +++ b/src/ecwrapper.cpp @@ -124,7 +124,18 @@ bool CECKey::Verify(const uint256 &hash, const std::vector& vchSi unsigned char *norm_der = NULL; ECDSA_SIG *norm_sig = ECDSA_SIG_new(); const unsigned char* sigptr = &vchSig[0]; - d2i_ECDSA_SIG(&norm_sig, &sigptr, vchSig.size()); + assert(norm_sig); + if (d2i_ECDSA_SIG(&norm_sig, &sigptr, vchSig.size()) == NULL) + { + /* As of OpenSSL 1.0.0p d2i_ECDSA_SIG frees and nulls the pointer on + * error. But OpenSSL's own use of this function redundantly frees the + * result. As ECDSA_SIG_free(NULL) is a no-op, and in the absence of a + * clear contract for the function behaving the same way is more + * conservative. + */ + ECDSA_SIG_free(norm_sig); + return false; + } int derlen = i2d_ECDSA_SIG(norm_sig, &norm_der); ECDSA_SIG_free(norm_sig); if (derlen <= 0) From a3a73170a96cdf4999b963a43852a555c458a6a5 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Tue, 6 Jan 2015 17:05:46 +0100 Subject: [PATCH 052/201] Introduce 10 minute block download timeout This will disconnect peers that do not transfer a block in 10 minutes, plus 5 minutes for every previously queued block with validated headers (accomodating downstream bandwidth down to a few kilobytes per second - below that the node would have trouble staying synchronized anyway). Github-Pull: #5608 Rebased-From: 916130348ca803d762db912307b247f60f9aacd6 --- src/main.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 5e1be0d25cc..8f58547fe5a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -131,9 +131,14 @@ namespace { uint256 hash; CBlockIndex *pindex; //! Optional. int64_t nTime; //! Time of "getdata" request in microseconds. + int nValidatedQueuedBefore; //! Number of blocks queued with validated headers (globally) at the time this one is requested. + bool fValidatedHeaders; //! Whether this block has validated headers at the time of request. }; map::iterator> > mapBlocksInFlight; + /** Number of blocks in flight with validated headers. */ + int nQueuedValidatedHeaders = 0; + /** Number of preferable block download peers. */ int nPreferredDownload = 0; @@ -315,6 +320,7 @@ void MarkBlockAsReceived(const uint256& hash) { map::iterator> >::iterator itInFlight = mapBlocksInFlight.find(hash); if (itInFlight != mapBlocksInFlight.end()) { CNodeState *state = State(itInFlight->second.first); + nQueuedValidatedHeaders -= itInFlight->second.second->fValidatedHeaders; state->vBlocksInFlight.erase(itInFlight->second.second); state->nBlocksInFlight--; state->nStallingSince = 0; @@ -330,7 +336,8 @@ void MarkBlockAsInFlight(NodeId nodeid, const uint256& hash, CBlockIndex *pindex // Make sure it's not listed somewhere already. MarkBlockAsReceived(hash); - QueuedBlock newentry = {hash, pindex, GetTimeMicros()}; + QueuedBlock newentry = {hash, pindex, GetTimeMicros(), nQueuedValidatedHeaders, pindex != NULL}; + nQueuedValidatedHeaders += newentry.fValidatedHeaders; list::iterator it = state->vBlocksInFlight.insert(state->vBlocksInFlight.end(), newentry); state->nBlocksInFlight++; mapBlocksInFlight[hash] = std::make_pair(nodeid, it); @@ -4497,6 +4504,15 @@ bool SendMessages(CNode* pto, bool fSendTrickle) LogPrintf("Peer=%d is stalling block download, disconnecting\n", pto->id); pto->fDisconnect = true; } + // In case there is a block that has been in flight from this peer for (1 + 0.5 * N) times the block interval + // (with N the number of validated blocks that were in flight at the time it was requested), disconnect due to + // timeout. We compensate for in-flight blocks to prevent killing off peers due to our own downstream link + // being saturated. We only count validated in-flight blocks so peers can't advertize nonexisting block hashes + // to unreasonably increase our timeout. + if (!pto->fDisconnect && state.vBlocksInFlight.size() > 0 && state.vBlocksInFlight.front().nTime < nNow - 500000 * Params().TargetSpacing() * (2 + state.vBlocksInFlight.front().nValidatedQueuedBefore)) { + LogPrintf("Timeout downloading block %s from peer=%d, disconnecting\n", state.vBlocksInFlight.front().hash.ToString(), pto->id); + pto->fDisconnect = true; + } // // Message: getdata (blocks) From 4e7c219122eccc6eca66d4cf95c697bea1480aab Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Thu, 8 Jan 2015 14:38:06 +0100 Subject: [PATCH 053/201] Catch UTXO set read errors and shutdown Github-Pull: #5619 Rebased-From: 13cdce4336818d0f6cefe6b3e61c45762d97d7c6 --- src/init.cpp | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/init.cpp b/src/init.cpp index c5430c1f251..49f80b8b0b7 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -112,7 +112,28 @@ bool ShutdownRequested() return fRequestShutdown; } +class CCoinsViewErrorCatcher : public CCoinsViewBacked +{ +public: + CCoinsViewErrorCatcher(CCoinsView* view) : CCoinsViewBacked(view) {} + bool GetCoins(const uint256 &txid, CCoins &coins) const { + try { + return CCoinsViewBacked::GetCoins(txid, coins); + } catch(const std::runtime_error& e) { + uiInterface.ThreadSafeMessageBox(_("Error reading from database, shutting down."), "", CClientUIInterface::MSG_ERROR); + LogPrintf("Error reading from database: %s\n", e.what()); + // Starting the shutdown sequence and returning false to the caller would be + // interpreted as 'entry not found' (as opposed to unable to read data), and + // could lead to invalid interpration. Just exit immediately, as we can't + // continue anyway, and all writes should be atomic. + abort(); + } + } + // Writes do not need similar protection, as failure to write is handled by the caller. +}; + static CCoinsViewDB *pcoinsdbview = NULL; +static CCoinsViewErrorCatcher *pcoinscatcher = NULL; void Shutdown() { @@ -155,6 +176,8 @@ void Shutdown() } delete pcoinsTip; pcoinsTip = NULL; + delete pcoinscatcher; + pcoinscatcher = NULL; delete pcoinsdbview; pcoinsdbview = NULL; delete pblocktree; @@ -986,11 +1009,13 @@ bool AppInit2(boost::thread_group& threadGroup) UnloadBlockIndex(); delete pcoinsTip; delete pcoinsdbview; + delete pcoinscatcher; delete pblocktree; pblocktree = new CBlockTreeDB(nBlockTreeDBCache, false, fReindex); pcoinsdbview = new CCoinsViewDB(nCoinDBCache, false, fReindex); - pcoinsTip = new CCoinsViewCache(pcoinsdbview); + pcoinscatcher = new CCoinsViewErrorCatcher(pcoinsdbview); + pcoinsTip = new CCoinsViewCache(pcoinscatcher); if (fReindex) pblocktree->WriteReindexing(true); From af35bdc6b0d628d36bfb486602c8843ed7d2754a Mon Sep 17 00:00:00 2001 From: Micha Date: Mon, 12 Jan 2015 15:18:53 +0200 Subject: [PATCH 054/201] Update 0.10 release notes as of 0.10.0rc2 Also add 0.9.4's release notes to the archive. Added commits based on http://sourceforge.net/p/bitcoin/mailman/message/33225960/ [skip ci] --- doc/release-notes.md | 22 ++++++-- doc/release-notes/release-notes-0.9.4.md | 95 ++++++++++++++++++++++++++++++++ 2 files changed, 113 insertions(+), 4 deletions(-) create mode 100644 doc/release-notes/release-notes-0.9.4.md diff --git a/doc/release-notes.md b/doc/release-notes.md index 6cd5b0583f3..bd1ad8faed9 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -20,10 +20,6 @@ shut down (which might take a few minutes for older versions), then run the installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux). -If you are upgrading from version 0.7.2 or earlier, the first time you run -0.10.0 your blockchain files will be re-indexed, which will take anywhere from -30 minutes to several hours, depending on the speed of your machine. - Downgrading warning --------------------- @@ -382,6 +378,7 @@ Block and transaction handling: - `723d12c` Remove txn which are invalidated by coinbase maturity during reorg - `0cb8763` Check against MANDATORY flags prior to accepting to mempool - `8446262` Reject headers that build on an invalid parent +- `008138c` Bugfix: only track UTXO modification after lookup P2P protocol and network code: - `f80cffa` Do not trigger a DoS ban if SCRIPT_VERIFY_NULLDUMMY fails @@ -409,6 +406,10 @@ P2P protocol and network code: - `845c86d` Do not use third party services for IP detection - `12a49ca` Limit the number of new addressses to accumulate - `35e408f` Regard connection failures as attempt for addrman +- `a3a7317` Introduce 10 minute block download timeout +- `3022e7d` Require sufficent priority for relay of free transactions +- `58fda4d` Update seed IPs, based on bitcoin.sipa.be crawler data +- `18021d0` Remove bitnodes.io from dnsseeds. Validation: - `6fd7ef2` Also switch the (unused) verification code to low-s instead of even-s @@ -423,6 +424,9 @@ Validation: - `0391423` Discourage NOPs reserved for soft-fork upgrades - `98b135f` Make STRICTENC invalid pubkeys fail the script rather than the opcode - `307f7d4` Report script evaluation failures in log and reject messages +- `ace39db` consensus: guard against openssl's new strict DER checks +- `12b7c44` Improve robustness of DER recoding code +- `76ce5c8` fail immediately on an empty signature Build system: - `f25e3ad` Fix build in OS X 10.9 @@ -439,6 +443,8 @@ Build system: - `d5fd094` build: fix qt test build when libprotobuf is in a non-standard path - `2cf5f16` Add libbitcoinconsensus library - `914868a` build: add a deterministic dmg signer +- `2d375fe` depends: bump openssl to 1.0.1k +- `b7a4ecc` Build: Only check for boost when building code that requires it Wallet: - `b33d1f5` Use fee/priority estimates in wallet CreateTransaction @@ -494,6 +500,9 @@ GUI: - `e7876b2` [Wallet] Prevent user from paying a non-sense fee - `c1c9d5b` Add Smartfee to GUI - `e0a25c5` Make askpassphrase dialog behave more sanely +- `94b362d` On close of splashscreen interrupt verifyDB +- `b790d13` English translation update +- `8543b0d` Correct tooltip on address book page Tests: - `b41e594` Fix script test handling of empty scripts @@ -552,6 +561,8 @@ Tests: - `34318d7` RPC-test based on invalidateblock for mempool coinbase spends - `76ec867` Use actually valid transactions for script tests - `c8589bf` Add actual signature tests +- `e2677d7` Fix smartfees test for change to relay policy +- `263b65e` tests: run sanity checks in tests too Miscellaneous: - `122549f` Fix incorrect checkpoint data for testnet3 @@ -580,6 +591,9 @@ Miscellaneous: - `7ab4358` Update bash-completion for v0.10 - `6e6a36c` contrib: show pull # in prompt for github-merge script - `5b9f842` Upgrade leveldb to 1.18, make chainstate databases compatible between ARM and x86 (issue #2293) +- `4e7c219` Catch UTXO set read errors and shutdown +- `867c600` Catch LevelDB errors during flush +- `06ca065` Fix CScriptID(const CScript& in) in empty script case Credits ======= diff --git a/doc/release-notes/release-notes-0.9.4.md b/doc/release-notes/release-notes-0.9.4.md new file mode 100644 index 00000000000..7ee73246a9b --- /dev/null +++ b/doc/release-notes/release-notes-0.9.4.md @@ -0,0 +1,95 @@ +Bitcoin Core version 0.9.4 is now available from: + + https://bitcoin.org/bin/0.9.4/ + +This is a new minor version release, bringing only bug fixes and updated +translations. Upgrading to this release is recommended. + +Please report bugs using the issue tracker at github: + + https://github.com/bitcoin/bitcoin/issues + +How to Upgrade +=============== + +If you are running an older version, shut it down. Wait until it has completely +shut down (which might take a few minutes for older versions), then run the +installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or +bitcoind/bitcoin-qt (on Linux). + +OpenSSL Warning +================ + +OpenSSL 1.0.0p / 1.0.1k was recently released and is being pushed out by +various operating system maintainers. Review by Gregory Maxwell determined that +this update is incompatible with the Bitcoin system and could lead to consensus +forks. + +Bitcoin Core released binaries from https://bitcoin.org are unaffected, +as are any built with the gitian deterministic build system. + +However, if you are running either + +- The Ubuntu PPA from https://launchpad.net/~bitcoin/+archive/ubuntu/bitcoin +- A third-party or self-compiled Bitcoin Core + +upgrade to Bitcoin Core 0.9.4, which includes a workaround, **before** updating +OpenSSL. + +The incompatibility is due to the OpenSSL update changing the +behavior of ECDSA validation to reject any signature which is +not encoded in a very rigid manner. This was a result of +OpenSSL's change for CVE-2014-8275 "Certificate fingerprints +can be modified". + +We are specifically aware of potential hard-forks due to signature +encoding handling and had been hoping to close them via BIP62 in 0.10. +BIP62's purpose is to improve transaction malleability handling and +as a side effect rigidly defines the encoding for signatures, but the +overall scope of BIP62 has made it take longer than we'd like to +deploy. + +0.9.4 changelog +================ + +Validation: +- `b8e81b7` consensus: guard against openssl's new strict DER checks +- `60c51f1` fail immediately on an empty signature +- `037bfef` Improve robustness of DER recoding code + +Command-line options: +- `cd5164a` Make -proxy set all network types, avoiding a connect leak. + +P2P: +- `bb424e4` Limit the number of new addressses to accumulate + +RPC: +- `0a94661` Disable SSLv3 (in favor of TLS) for the RPC client and server. + +Build system: +- `f047dfa` gitian: openssl-1.0.1i.tar.gz -> openssl-1.0.1k.tar.gz +- `5b9f78d` build: Fix OSX build when using Homebrew and qt5 +- `ffab1dd` Keep symlinks when copying into .app bundle +- `613247f` osx: fix signing to make Gatekeeper happy (again) + +Miscellaneous: +- `25b49b5` Refactor -alertnotify code +- `2743529` doc: Add instructions for consistent Mac OS X build names + +Credits +-------- + +Thanks to who contributed to this release, at least: + +- Cory Fields +- Gavin Andresen +- Gregory Maxwell +- Jeff Garzik +- Luke Dashjr +- Matt Corallo +- Pieter Wuille +- Saivann +- Sergio Demian Lerner +- Wladimir J. van der Laan + +As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). From c3200bcd1e7116e079aebabed3a01dc5385bfc9e Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Mon, 12 Jan 2015 15:29:51 +0100 Subject: [PATCH 055/201] depends: remove embedded OpenSSL timestamp for determinism --- depends/packages/openssl.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/depends/packages/openssl.mk b/depends/packages/openssl.mk index 1ffcb56cb19..eb4779410bf 100644 --- a/depends/packages/openssl.mk +++ b/depends/packages/openssl.mk @@ -20,7 +20,7 @@ $(package)_config_opts_i686_mingw32=mingw endef define $(package)_preprocess_cmds - sed -i.old "/define DATE/d" crypto/Makefile && \ + sed -i.old "/define DATE/d" util/mkbuildinf.pl && \ sed -i.old "s|engines apps test|engines|" Makefile.org endef From aaf55d25c6191c0effd5fa5dd5d2d0f17e715854 Mon Sep 17 00:00:00 2001 From: Gregory Maxwell Date: Tue, 13 Jan 2015 17:43:39 -0800 Subject: [PATCH 056/201] Add a -rpckeepalive and disable RPC use of HTTP persistent connections. It turns out that some miners have been staying with old versions of Bitcoin Core because their software behaves poorly with persistent connections and the Bitcoin Core thread and connection limits. What happens is that underlying HTTP libraries leave connections open invisibly to their users and then the user runs into the default four thread limit. This looks like Bitcoin Core is unresponsive to RPC. There are many things that should be improved in Bitcoin Core's behavior here, e.g. supporting more concurrent connections, not tying up threads for idle connections, disconnecting kept-alive connections when limits are reached, etc. All are fairly big, risky changes. Disabling keep-alive is a simple workaround. It's often not easy to turn off the keep-alive support in the client where it may be buried in some platform library. If you are one of the few who really needs persistent connections you probably know that you want them and can find a switch; while if you don't and the misbehavior is hitting you it is hard to discover the source of your problems is keepalive related. Given that it is best to default to off until they're handled better. Github-Merge: #5655 Rebased-From: 16a5c18cea7330bd68dc9d2f768eb518af88795b 56c1093dae0c523f9f643f00c67414691272a983 1dd8ee72afc26191da51d8d3a5590eab7c9368f6 --- qa/rpc-tests/httpbasics.py | 30 ++++++++++++++++++++++++++++-- qa/rpc-tests/test_framework.py | 5 ++++- src/init.cpp | 1 + src/rpcserver.cpp | 2 +- 4 files changed, 34 insertions(+), 4 deletions(-) diff --git a/qa/rpc-tests/httpbasics.py b/qa/rpc-tests/httpbasics.py index a94edaffa53..8cbf1d7f4c4 100755 --- a/qa/rpc-tests/httpbasics.py +++ b/qa/rpc-tests/httpbasics.py @@ -20,7 +20,10 @@ except ImportError: import urlparse -class RESTTest (BitcoinTestFramework): +class HTTPBasicsTest (BitcoinTestFramework): + def setup_nodes(self): + return start_nodes(4, self.options.tmpdir, extra_args=[['-rpckeepalive=1'], ['-rpckeepalive=0'], [], []]) + def run_test(self): ################################################# @@ -71,6 +74,29 @@ def run_test(self): assert_equal('"error":null' in out1, True) assert_equal(conn.sock!=None, False) #now the connection must be closed after the response + #node1 (2nd node) is running with disabled keep-alive option + urlNode1 = urlparse.urlparse(self.nodes[1].url) + authpair = urlNode1.username + ':' + urlNode1.password + headers = {"Authorization": "Basic " + base64.b64encode(authpair)} + + conn = httplib.HTTPConnection(urlNode1.hostname, urlNode1.port) + conn.connect() + conn.request('GET', '/', '{"method": "getbestblockhash"}', headers) + out1 = conn.getresponse().read(); + assert_equal('"error":null' in out1, True) + assert_equal(conn.sock!=None, False) #connection must be closed because keep-alive was set to false + + #node2 (third node) is running with standard keep-alive parameters which means keep-alive is off + urlNode2 = urlparse.urlparse(self.nodes[2].url) + authpair = urlNode2.username + ':' + urlNode2.password + headers = {"Authorization": "Basic " + base64.b64encode(authpair)} + + conn = httplib.HTTPConnection(urlNode2.hostname, urlNode2.port) + conn.connect() + conn.request('GET', '/', '{"method": "getbestblockhash"}', headers) + out1 = conn.getresponse().read(); + assert_equal('"error":null' in out1, True) + assert_equal(conn.sock!=None, False) #connection must be closed because bitcoind should use keep-alive by default if __name__ == '__main__': - RESTTest ().main () + HTTPBasicsTest ().main () diff --git a/qa/rpc-tests/test_framework.py b/qa/rpc-tests/test_framework.py index 6c4ec073c28..4c8a11b821d 100755 --- a/qa/rpc-tests/test_framework.py +++ b/qa/rpc-tests/test_framework.py @@ -33,8 +33,11 @@ def setup_chain(self): print("Initializing test directory "+self.options.tmpdir) initialize_chain(self.options.tmpdir) + def setup_nodes(self): + return start_nodes(4, self.options.tmpdir) + def setup_network(self, split = False): - self.nodes = start_nodes(4, self.options.tmpdir) + self.nodes = self.setup_nodes() # Connect the nodes as a "chain". This allows us # to split the network between nodes 1 and 2 to get diff --git a/src/init.cpp b/src/init.cpp index 49f80b8b0b7..436139ea2c4 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -381,6 +381,7 @@ std::string HelpMessage(HelpMessageMode mode) strUsage += " -rpcport= " + strprintf(_("Listen for JSON-RPC connections on (default: %u or testnet: %u)"), 8332, 18332) + "\n"; strUsage += " -rpcallowip= " + _("Allow JSON-RPC connections from specified source. Valid for 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). This option can be specified multiple times") + "\n"; strUsage += " -rpcthreads= " + strprintf(_("Set the number of threads to service RPC calls (default: %d)"), 4) + "\n"; + strUsage += " -rpckeepalive " + strprintf(_("RPC support for HTTP persistent connections (default: %d)"), 0) + "\n"; strUsage += "\n" + _("RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions)") + "\n"; strUsage += " -rpcssl " + _("Use OpenSSL (https) for JSON-RPC connections") + "\n"; diff --git a/src/rpcserver.cpp b/src/rpcserver.cpp index 4b826465858..aa0ed8ba960 100644 --- a/src/rpcserver.cpp +++ b/src/rpcserver.cpp @@ -954,7 +954,7 @@ void ServiceConnection(AcceptedConnection *conn) ReadHTTPMessage(conn->stream(), mapHeaders, strRequest, nProto, MAX_SIZE); // HTTP Keep-Alive is false; close connection immediately - if (mapHeaders["connection"] == "close") + if ((mapHeaders["connection"] == "close") || (!GetBoolArg("-rpckeepalive", false))) fRun = false; // Process via JSON-RPC API From 186a517692a659cd549e8e8e2161d7a99a188b9e Mon Sep 17 00:00:00 2001 From: Gregory Maxwell Date: Fri, 16 Jan 2015 05:59:36 -0800 Subject: [PATCH 057/201] Restore RPC HTTP keepalives to default. This avoids a regression for issues like #334 where high speed repeated connections eventually run the HTTP client out of sockets because all of theirs end up in time_wait. Maybe the trade-off here is suboptimal, but if both choices will fail then we prefer fewer changes until the root cause is solved. Rebased-From: 1a25a7edf82706c3152e2d978d320ec465a34de1 7d2cb485116636595250fce4ea4eab16a877479b Github-Pull: #5674 --- qa/rpc-tests/httpbasics.py | 16 ++++++++-------- src/init.cpp | 2 +- src/rpcserver.cpp | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/qa/rpc-tests/httpbasics.py b/qa/rpc-tests/httpbasics.py index 8cbf1d7f4c4..24533741e55 100755 --- a/qa/rpc-tests/httpbasics.py +++ b/qa/rpc-tests/httpbasics.py @@ -35,13 +35,13 @@ def run_test(self): conn = httplib.HTTPConnection(url.hostname, url.port) conn.connect() - conn.request('GET', '/', '{"method": "getbestblockhash"}', headers) + conn.request('POST', '/', '{"method": "getbestblockhash"}', headers) out1 = conn.getresponse().read(); assert_equal('"error":null' in out1, True) assert_equal(conn.sock!=None, True) #according to http/1.1 connection must still be open! #send 2nd request without closing connection - conn.request('GET', '/', '{"method": "getchaintips"}', headers) + conn.request('POST', '/', '{"method": "getchaintips"}', headers) out2 = conn.getresponse().read(); assert_equal('"error":null' in out1, True) #must also response with a correct json-rpc message assert_equal(conn.sock!=None, True) #according to http/1.1 connection must still be open! @@ -52,13 +52,13 @@ def run_test(self): conn = httplib.HTTPConnection(url.hostname, url.port) conn.connect() - conn.request('GET', '/', '{"method": "getbestblockhash"}', headers) + conn.request('POST', '/', '{"method": "getbestblockhash"}', headers) out1 = conn.getresponse().read(); assert_equal('"error":null' in out1, True) assert_equal(conn.sock!=None, True) #according to http/1.1 connection must still be open! #send 2nd request without closing connection - conn.request('GET', '/', '{"method": "getchaintips"}', headers) + conn.request('POST', '/', '{"method": "getchaintips"}', headers) out2 = conn.getresponse().read(); assert_equal('"error":null' in out1, True) #must also response with a correct json-rpc message assert_equal(conn.sock!=None, True) #according to http/1.1 connection must still be open! @@ -69,7 +69,7 @@ def run_test(self): conn = httplib.HTTPConnection(url.hostname, url.port) conn.connect() - conn.request('GET', '/', '{"method": "getbestblockhash"}', headers) + conn.request('POST', '/', '{"method": "getbestblockhash"}', headers) out1 = conn.getresponse().read(); assert_equal('"error":null' in out1, True) assert_equal(conn.sock!=None, False) #now the connection must be closed after the response @@ -81,7 +81,7 @@ def run_test(self): conn = httplib.HTTPConnection(urlNode1.hostname, urlNode1.port) conn.connect() - conn.request('GET', '/', '{"method": "getbestblockhash"}', headers) + conn.request('POST', '/', '{"method": "getbestblockhash"}', headers) out1 = conn.getresponse().read(); assert_equal('"error":null' in out1, True) assert_equal(conn.sock!=None, False) #connection must be closed because keep-alive was set to false @@ -93,10 +93,10 @@ def run_test(self): conn = httplib.HTTPConnection(urlNode2.hostname, urlNode2.port) conn.connect() - conn.request('GET', '/', '{"method": "getbestblockhash"}', headers) + conn.request('POST', '/', '{"method": "getbestblockhash"}', headers) out1 = conn.getresponse().read(); assert_equal('"error":null' in out1, True) - assert_equal(conn.sock!=None, False) #connection must be closed because bitcoind should use keep-alive by default + assert_equal(conn.sock!=None, True) #connection must be closed because bitcoind should use keep-alive by default if __name__ == '__main__': HTTPBasicsTest ().main () diff --git a/src/init.cpp b/src/init.cpp index 436139ea2c4..a91418cd5a6 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -381,7 +381,7 @@ std::string HelpMessage(HelpMessageMode mode) strUsage += " -rpcport= " + strprintf(_("Listen for JSON-RPC connections on (default: %u or testnet: %u)"), 8332, 18332) + "\n"; strUsage += " -rpcallowip= " + _("Allow JSON-RPC connections from specified source. Valid for 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). This option can be specified multiple times") + "\n"; strUsage += " -rpcthreads= " + strprintf(_("Set the number of threads to service RPC calls (default: %d)"), 4) + "\n"; - strUsage += " -rpckeepalive " + strprintf(_("RPC support for HTTP persistent connections (default: %d)"), 0) + "\n"; + strUsage += " -rpckeepalive " + strprintf(_("RPC support for HTTP persistent connections (default: %d)"), 1) + "\n"; strUsage += "\n" + _("RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions)") + "\n"; strUsage += " -rpcssl " + _("Use OpenSSL (https) for JSON-RPC connections") + "\n"; diff --git a/src/rpcserver.cpp b/src/rpcserver.cpp index aa0ed8ba960..6db2b0421fb 100644 --- a/src/rpcserver.cpp +++ b/src/rpcserver.cpp @@ -954,7 +954,7 @@ void ServiceConnection(AcceptedConnection *conn) ReadHTTPMessage(conn->stream(), mapHeaders, strRequest, nProto, MAX_SIZE); // HTTP Keep-Alive is false; close connection immediately - if ((mapHeaders["connection"] == "close") || (!GetBoolArg("-rpckeepalive", false))) + if ((mapHeaders["connection"] == "close") || (!GetBoolArg("-rpckeepalive", true))) fRun = false; // Process via JSON-RPC API From 58259ad1edf14a4f514fe5f837ac7d1d99b58422 Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Fri, 16 Jan 2015 16:27:12 -0500 Subject: [PATCH 058/201] qt: fix broken unicode chars on osx 10.10 - qt: avoid hard-coding font names They may not contain all necessary characters for a language - qt: fix broken unicode chars on osx 10.10 The default font changed again. The real fix is to compile qt against a >= 10.8 sdk, but this is simple enough to backport to 0.10 to avoid having to do that there. Note: NSAppKitVersionNumber is a double and there's no official value for NSAppKitVersionNumber10_10. Since == isn't reliable for doubles, use Apple's guidelines for testing versions here: https://developer.apple.com/library/mac/releasenotes/AppKit/RN-AppKit/ Chinese and Japanese fonts have been hard-coded as well, otherwise they fail to show up at all. - qt: fonts: allow SubstituteFonts to filter based on user's language SubstituteFonts() has been moved to after app identification so that QSettings are accessible. Github-Pull: #5671 Rebased-From: 73cd4edb4f1ff98c20549a609e96fa40834f5e73 52954e6efd373c14736237c4c79769bf00f5dfb8 f5ad78b34af8f50e12fab63b331768b96ec2c779 --- src/qt/bitcoin.cpp | 27 +++++++++++++++++---------- src/qt/guiutil.cpp | 25 ++++++++++++++++++++++--- src/qt/guiutil.h | 2 +- src/qt/splashscreen.cpp | 2 +- 4 files changed, 41 insertions(+), 15 deletions(-) diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index 123777a71bc..f30df348c5f 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -89,10 +89,24 @@ static std::string Translate(const char* psz) return QCoreApplication::translate("bitcoin-core", psz).toStdString(); } +static QString GetLangTerritory() +{ + QSettings settings; + // Get desired locale (e.g. "de_DE") + // 1) System default language + QString lang_territory = QLocale::system().name(); + // 2) Language from QSettings + QString lang_territory_qsettings = settings.value("language", "").toString(); + if(!lang_territory_qsettings.isEmpty()) + lang_territory = lang_territory_qsettings; + // 3) -lang command line argument + lang_territory = QString::fromStdString(GetArg("-lang", lang_territory.toStdString())); + return lang_territory; +} + /** Set up translations */ static void initTranslations(QTranslator &qtTranslatorBase, QTranslator &qtTranslator, QTranslator &translatorBase, QTranslator &translator) { - QSettings settings; // Remove old translators QApplication::removeTranslator(&qtTranslatorBase); @@ -102,13 +116,7 @@ static void initTranslations(QTranslator &qtTranslatorBase, QTranslator &qtTrans // Get desired locale (e.g. "de_DE") // 1) System default language - QString lang_territory = QLocale::system().name(); - // 2) Language from QSettings - QString lang_territory_qsettings = settings.value("language", "").toString(); - if(!lang_territory_qsettings.isEmpty()) - lang_territory = lang_territory_qsettings; - // 3) -lang command line argument - lang_territory = QString::fromStdString(GetArg("-lang", lang_territory.toStdString())); + QString lang_territory = GetLangTerritory(); // Convert to "de" only by truncating "_DE" QString lang = lang_territory; @@ -498,8 +506,6 @@ int main(int argc, char *argv[]) Q_INIT_RESOURCE(bitcoin); Q_INIT_RESOURCE(bitcoin_locale); - GUIUtil::SubstituteFonts(); - BitcoinApplication app(argc, argv); #if QT_VERSION > 0x050100 // Generate high-dpi pixmaps @@ -521,6 +527,7 @@ int main(int argc, char *argv[]) QApplication::setOrganizationName(QAPP_ORG_NAME); QApplication::setOrganizationDomain(QAPP_ORG_DOMAIN); QApplication::setApplicationName(QAPP_APP_NAME_DEFAULT); + GUIUtil::SubstituteFonts(GetLangTerritory()); /// 4. Initialization of translations, so that intro dialog is in user's language // Now that QSettings are accessible, initialize translations diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp index a1ae756c43e..de8edef7927 100644 --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -67,6 +67,9 @@ static boost::filesystem::detail::utf8_codecvt_facet utf8; #if defined(Q_OS_MAC) extern double NSAppKitVersionNumber; +#if !defined(NSAppKitVersionNumber10_8) +#define NSAppKitVersionNumber10_8 1187 +#endif #if !defined(NSAppKitVersionNumber10_9) #define NSAppKitVersionNumber10_9 1265 #endif @@ -383,7 +386,7 @@ void openDebugLogfile() QDesktopServices::openUrl(QUrl::fromLocalFile(boostPathToQString(pathDebug))); } -void SubstituteFonts() +void SubstituteFonts(const QString& language) { #if defined(Q_OS_MAC) // Background: @@ -393,12 +396,28 @@ void SubstituteFonts() // If this fallback is not properly loaded, some characters may fail to // render correctly. // +// The same thing happened with 10.10. .Helvetica Neue DeskInterface is now default. +// // Solution: If building with the 10.7 SDK or lower and the user's platform // is 10.9 or higher at runtime, substitute the correct font. This needs to // happen before the QApplication is created. #if defined(MAC_OS_X_VERSION_MAX_ALLOWED) && MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_8 - if (floor(NSAppKitVersionNumber) >= NSAppKitVersionNumber10_9) - QFont::insertSubstitution(".Lucida Grande UI", "Lucida Grande"); + if (floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_8) + { + if (floor(NSAppKitVersionNumber) <= NSAppKitVersionNumber10_9) + /* On a 10.9 - 10.9.x system */ + QFont::insertSubstitution(".Lucida Grande UI", "Lucida Grande"); + else + { + /* 10.10 or later system */ + if (language == "zh_CN" || language == "zh_TW" || language == "zh_HK") // traditional or simplified Chinese + QFont::insertSubstitution(".Helvetica Neue DeskInterface", "Heiti SC"); + else if (language == "ja") // Japanesee + QFont::insertSubstitution(".Helvetica Neue DeskInterface", "Songti SC"); + else + QFont::insertSubstitution(".Helvetica Neue DeskInterface", "Lucida Grande"); + } + } #endif #endif } diff --git a/src/qt/guiutil.h b/src/qt/guiutil.h index 09c79db2d91..41ff6087153 100644 --- a/src/qt/guiutil.h +++ b/src/qt/guiutil.h @@ -107,7 +107,7 @@ namespace GUIUtil void openDebugLogfile(); // Replace invalid default fonts with known good ones - void SubstituteFonts(); + void SubstituteFonts(const QString& language); /** Qt event filter that intercepts ToolTipChange events, and replaces the tooltip with a rich text representation if needed. This assures that Qt can word-wrap long tooltip messages. diff --git a/src/qt/splashscreen.cpp b/src/qt/splashscreen.cpp index b4b81440ca8..fed8e15fb52 100644 --- a/src/qt/splashscreen.cpp +++ b/src/qt/splashscreen.cpp @@ -37,7 +37,7 @@ SplashScreen::SplashScreen(Qt::WindowFlags f, const NetworkStyle *networkStyle) QString copyrightText = QChar(0xA9)+QString(" 2009-%1 ").arg(COPYRIGHT_YEAR) + QString(tr("The Bitcoin Core developers")); QString titleAddText = networkStyle->getTitleAddText(); - QString font = "Arial"; + QString font = QApplication::font().toString(); // load the bitmap for writing some text over it pixmap = networkStyle->getSplashImage(); From ed4206acb1bdc9d23abe30fefd13f9d49a1979b3 Mon Sep 17 00:00:00 2001 From: fsb4000 Date: Fri, 23 Jan 2015 20:01:07 +0600 Subject: [PATCH 059/201] fix crash: CoinControl "space" bug Just like https://github.com/novacoin-project/novacoin/commit/baf80c26a2e7f1ba6061d63d174eff0a09111e6f Github-Pull: #5700 Rebased-From: 944c256741b260bd8b758be4a0543af1cb080943 --- src/qt/coincontroltreewidget.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/qt/coincontroltreewidget.cpp b/src/qt/coincontroltreewidget.cpp index 907b5caa056..0082c9bfd0a 100644 --- a/src/qt/coincontroltreewidget.cpp +++ b/src/qt/coincontroltreewidget.cpp @@ -17,7 +17,8 @@ void CoinControlTreeWidget::keyPressEvent(QKeyEvent *event) { event->ignore(); int COLUMN_CHECKBOX = 0; - this->currentItem()->setCheckState(COLUMN_CHECKBOX, ((this->currentItem()->checkState(COLUMN_CHECKBOX) == Qt::Checked) ? Qt::Unchecked : Qt::Checked)); + if(this->currentItem()) + this->currentItem()->setCheckState(COLUMN_CHECKBOX, ((this->currentItem()->checkState(COLUMN_CHECKBOX) == Qt::Checked) ? Qt::Unchecked : Qt::Checked)); } else if (event->key() == Qt::Key_Escape) // press esc -> close dialog { @@ -29,4 +30,4 @@ void CoinControlTreeWidget::keyPressEvent(QKeyEvent *event) { this->QTreeWidget::keyPressEvent(event); } -} \ No newline at end of file +} From b24ff47c6487d6cb81c9691c4e68c33f367fce74 Mon Sep 17 00:00:00 2001 From: Peter Todd Date: Fri, 9 Jan 2015 05:52:57 -0500 Subject: [PATCH 060/201] Make empty byte arrays pass CheckSignatureEncoding() Makes it possible to compactly provide a delibrately invalid signature for use with CHECK(MULTI)SIG. For instance with BIP19 if m != n invalid signatures need to be provided in the scriptSig; prior to this change those invalid signatures would need to be large DER-encoded signatures. Note that we may want to further expand on this change in the future by saying that only OP_0 is a "valid" invalid signature; BIP19 even with this change is inherently malleable as the invalid signatures can be any validly encoded DER signature. Rebased-From: 2fa9a8ec86033b809a1c48f0396c3482c0d5d33c Github-Pull: #5627 --- src/script/interpreter.cpp | 5 +++++ src/test/data/script_invalid.json | 2 +- src/test/data/script_valid.json | 5 +++++ src/test/multisig_tests.cpp | 4 ---- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/script/interpreter.cpp b/src/script/interpreter.cpp index 3231f2e74e5..3128bae35f8 100644 --- a/src/script/interpreter.cpp +++ b/src/script/interpreter.cpp @@ -189,6 +189,11 @@ bool static IsDefinedHashtypeSignature(const valtype &vchSig) { } bool static CheckSignatureEncoding(const valtype &vchSig, unsigned int flags, ScriptError* serror) { + // Empty signature. Not strictly DER encoded, but allowed to provide a + // compact way to provide an invalid signature for use with CHECK(MULTI)SIG + if (vchSig.size() == 0) { + return true; + } if ((flags & (SCRIPT_VERIFY_DERSIG | SCRIPT_VERIFY_LOW_S | SCRIPT_VERIFY_STRICTENC)) != 0 && !IsDERSignature(vchSig)) { return set_error(serror, SCRIPT_ERR_SIG_DER); } else if ((flags & SCRIPT_VERIFY_LOW_S) != 0 && !IsLowDERSignature(vchSig, serror)) { diff --git a/src/test/data/script_invalid.json b/src/test/data/script_invalid.json index 86d39b5c208..09120e88385 100644 --- a/src/test/data/script_invalid.json +++ b/src/test/data/script_invalid.json @@ -504,7 +504,7 @@ "2-of-2 CHECKMULTISIG NOT with the first pubkey invalid, and both signatures validly encoded." ], [ - "0 0x47 0x3044022044dc17b0887c161bb67ba9635bf758735bdde503e4b0a0987f587f14a4e1143d022009a215772d49a85dae40d8ca03955af26ad3978a0ff965faa12915e9586249a501 0", + "0 0x47 0x3044022044dc17b0887c161bb67ba9635bf758735bdde503e4b0a0987f587f14a4e1143d022009a215772d49a85dae40d8ca03955af26ad3978a0ff965faa12915e9586249a501 1", "2 0x21 0x02865c40293a680cb9c020e7b1e106d8c1916d3cef99aa431a56d253e69256dac0 0x21 0x02865c40293a680cb9c020e7b1e106d8c1916d3cef99aa431a56d253e69256dac0 2 CHECKMULTISIG NOT", "STRICTENC", "2-of-2 CHECKMULTISIG NOT with both pubkeys valid, but first signature invalid." diff --git a/src/test/data/script_valid.json b/src/test/data/script_valid.json index d3075de646a..17398ca1bd7 100644 --- a/src/test/data/script_valid.json +++ b/src/test/data/script_valid.json @@ -662,6 +662,11 @@ ["0 0 0x02 0x0000", "CHECKMULTISIGVERIFY 1", ""], ["0 0x02 0x0000 0", "CHECKMULTISIGVERIFY 1", ""], +["While not really correctly DER encoded, the empty signature is allowed by"], +["STRICTENC to provide a compact way to provide a delibrately invalid signature."], +["0", "0x21 0x02865c40293a680cb9c020e7b1e106d8c1916d3cef99aa431a56d253e69256dac0 CHECKSIG NOT", "STRICTENC"], +["0 0", "1 0x21 0x02865c40293a680cb9c020e7b1e106d8c1916d3cef99aa431a56d253e69256dac0 1 CHECKMULTISIG NOT", "STRICTENC"], + ["CHECKMULTISIG evaluation order tests. CHECKMULTISIG evaluates signatures and"], ["pubkeys in a specific order, and will exit early if the number of signatures"], ["left to check is greater than the number of keys left. As STRICTENC fails the"], diff --git a/src/test/multisig_tests.cpp b/src/test/multisig_tests.cpp index 8d06caa147c..6c800efde2a 100644 --- a/src/test/multisig_tests.cpp +++ b/src/test/multisig_tests.cpp @@ -120,10 +120,6 @@ BOOST_AUTO_TEST_CASE(multisig_verify) } } s.clear(); - s << OP_0 << OP_0; - BOOST_CHECK(!VerifyScript(s, a_or_b, flags, SignatureChecker(txTo[1], 0), &err)); - BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_SIG_DER, ScriptErrorString(err)); - s.clear(); s << OP_0 << OP_1; BOOST_CHECK(!VerifyScript(s, a_or_b, flags, SignatureChecker(txTo[1], 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_SIG_DER, ScriptErrorString(err)); From c5044bc1693ced50ed070a27e7d2f3174202ace5 Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Fri, 7 Nov 2014 23:18:21 -0800 Subject: [PATCH 061/201] sleep-wait on genesis block during init with -reindex Rebased-From: ff09e31a51dcee404c9c037c7c5f50c522e67ea8 Github-Pull: #5243 --- src/init.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/init.cpp b/src/init.cpp index a91418cd5a6..df199ae487a 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -1248,6 +1248,11 @@ bool AppInit2(boost::thread_group& threadGroup) vImportFiles.push_back(strFile); } threadGroup.create_thread(boost::bind(&ThreadImport, vImportFiles)); + if (chainActive.Tip() == NULL) { + LogPrintf("Waiting for genesis block to be imported...\n"); + while (!fRequestShutdown && chainActive.Tip() == NULL) + MilliSleep(10); + } // ********************************************************* Step 10: start node From b61940b3a15a9776878b0affdd04e72d6b6dcc55 Mon Sep 17 00:00:00 2001 From: fsb4000 Date: Thu, 29 Jan 2015 01:25:11 +0600 Subject: [PATCH 062/201] Change Coin Control first column label Github-Pull: #5720 Rebased-From: 55eade9d46ebfa4b32b79893595d91d529fa30bb --- src/qt/coincontroldialog.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/qt/coincontroldialog.cpp b/src/qt/coincontroldialog.cpp index 85b43b7b1f5..19c5776b921 100644 --- a/src/qt/coincontroldialog.cpp +++ b/src/qt/coincontroldialog.cpp @@ -116,6 +116,10 @@ CoinControlDialog::CoinControlDialog(QWidget *parent) : // (un)select all connect(ui->pushButtonSelectAll, SIGNAL(clicked()), this, SLOT(buttonSelectAllClicked())); + // change coin control first column label due Qt4 bug. + // see https://github.com/bitcoin/bitcoin/issues/5716 + ui->treeWidget->headerItem()->setText(COLUMN_CHECKBOX, QString()); + ui->treeWidget->setColumnWidth(COLUMN_CHECKBOX, 84); ui->treeWidget->setColumnWidth(COLUMN_AMOUNT, 100); ui->treeWidget->setColumnWidth(COLUMN_LABEL, 170); From 6a02ef8bdb07ef42bdac0511b7f897d49f69f7eb Mon Sep 17 00:00:00 2001 From: Philip Kaufmann Date: Sat, 10 Jan 2015 15:02:12 +0100 Subject: [PATCH 063/201] [Qt] don't allow amount changes when AmountSpinBox is read-only - before it was possible to use the steps to change e.g. amouns of authenticated or unauthenticated payment requests (AmountSpinBox is already set to read-only here) - this is now fixed - also move the reimplemented stepEnabled() function to the protected section of our class, where it belongs (see Qt doc) Github-Pull: #5637 Rebased-From: 0fd9e2bf43d217d9a76003476661c8ab53606548 --- src/qt/bitcoinamountfield.cpp | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/src/qt/bitcoinamountfield.cpp b/src/qt/bitcoinamountfield.cpp index 5b8ab23b26a..4373357e444 100644 --- a/src/qt/bitcoinamountfield.cpp +++ b/src/qt/bitcoinamountfield.cpp @@ -20,6 +20,7 @@ class AmountSpinBox: public QAbstractSpinBox { Q_OBJECT + public: explicit AmountSpinBox(QWidget *parent): QAbstractSpinBox(parent), @@ -72,23 +73,6 @@ class AmountSpinBox: public QAbstractSpinBox setValue(val); } - StepEnabled stepEnabled() const - { - StepEnabled rv = 0; - if(text().isEmpty()) // Allow step-up with empty field - return StepUpEnabled; - bool valid = false; - CAmount val = value(&valid); - if(valid) - { - if(val > 0) - rv |= StepDownEnabled; - if(val < BitcoinUnits::maxMoney()) - rv |= StepUpEnabled; - } - return rv; - } - void setDisplayUnit(int unit) { bool valid = false; @@ -139,6 +123,7 @@ class AmountSpinBox: public QAbstractSpinBox } return cachedMinimumSizeHint; } + private: int currentUnit; CAmount singleStep; @@ -179,6 +164,25 @@ class AmountSpinBox: public QAbstractSpinBox return QAbstractSpinBox::event(event); } + StepEnabled stepEnabled() const + { + StepEnabled rv = 0; + if (isReadOnly()) // Disable steps when AmountSpinBox is read-only + return StepNone; + if(text().isEmpty()) // Allow step-up with empty field + return StepUpEnabled; + bool valid = false; + CAmount val = value(&valid); + if(valid) + { + if(val > 0) + rv |= StepDownEnabled; + if(val < BitcoinUnits::maxMoney()) + rv |= StepUpEnabled; + } + return rv; + } + signals: void valueChanged(); }; From abfbeafe8461131cc7e123b9da69e951f81fd7a3 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Tue, 13 Jan 2015 03:15:39 +0100 Subject: [PATCH 064/201] Change IsDERSignature to BIP66 implementation --- src/script/interpreter.cpp | 126 ++++++++++++++++++++++----------------------- 1 file changed, 63 insertions(+), 63 deletions(-) diff --git a/src/script/interpreter.cpp b/src/script/interpreter.cpp index 3128bae35f8..e049fed2e56 100644 --- a/src/script/interpreter.cpp +++ b/src/script/interpreter.cpp @@ -93,76 +93,76 @@ bool static IsCompressedOrUncompressedPubKey(const valtype &vchPubKey) { * in which case a single 0 byte is necessary and even required). * * See https://bitcointalk.org/index.php?topic=8392.msg127623#msg127623 + * + * This function is consensus-critical since BIP66. */ -bool static IsDERSignature(const valtype &vchSig) { +bool static IsValidSignatureEncoding(const std::vector &sig) { + // Format: 0x30 [total-length] 0x02 [R-length] [R] 0x02 [S-length] [S] [sighash] + // * total-length: 1-byte length descriptor of everything that follows, + // excluding the sighash byte. + // * R-length: 1-byte length descriptor of the R value that follows. + // * R: arbitrary-length big-endian encoded R value. It must use the shortest + // possible encoding for a positive integers (which means no null bytes at + // the start, except a single one when the next byte has its highest bit set). + // * S-length: 1-byte length descriptor of the S value that follows. + // * S: arbitrary-length big-endian encoded S value. The same rules apply. + // * sighash: 1-byte value indicating what data is hashed (not part of the DER + // signature) - if (vchSig.size() < 9) { - // Non-canonical signature: too short - return false; - } - if (vchSig.size() > 73) { - // Non-canonical signature: too long - return false; - } - if (vchSig[0] != 0x30) { - // Non-canonical signature: wrong type - return false; - } - if (vchSig[1] != vchSig.size()-3) { - // Non-canonical signature: wrong length marker - return false; - } - unsigned int nLenR = vchSig[3]; - if (5 + nLenR >= vchSig.size()) { - // Non-canonical signature: S length misplaced - return false; - } - unsigned int nLenS = vchSig[5+nLenR]; - if ((unsigned long)(nLenR+nLenS+7) != vchSig.size()) { - // Non-canonical signature: R+S length mismatch - return false; - } + // Minimum and maximum size constraints. + if (sig.size() < 9) return false; + if (sig.size() > 73) return false; - const unsigned char *R = &vchSig[4]; - if (R[-2] != 0x02) { - // Non-canonical signature: R value type mismatch - return false; - } - if (nLenR == 0) { - // Non-canonical signature: R length is zero - return false; - } - if (R[0] & 0x80) { - // Non-canonical signature: R value negative - return false; - } - if (nLenR > 1 && (R[0] == 0x00) && !(R[1] & 0x80)) { - // Non-canonical signature: R value excessively padded - return false; - } + // A signature is of type 0x30 (compound). + if (sig[0] != 0x30) return false; + + // Make sure the length covers the entire signature. + if (sig[1] != sig.size() - 3) return false; + + // Extract the length of the R element. + unsigned int lenR = sig[3]; + + // Make sure the length of the S element is still inside the signature. + if (5 + lenR >= sig.size()) return false; + + // Extract the length of the S element. + unsigned int lenS = sig[5 + lenR]; + + // Verify that the length of the signature matches the sum of the length + // of the elements. + if ((size_t)(lenR + lenS + 7) != sig.size()) return false; + + // Check whether the R element is an integer. + if (sig[2] != 0x02) return false; + + // Zero-length integers are not allowed for R. + if (lenR == 0) return false; + + // Negative numbers are not allowed for R. + if (sig[4] & 0x80) return false; + + // Null bytes at the start of R are not allowed, unless R would + // otherwise be interpreted as a negative number. + if (lenR > 1 && (sig[4] == 0x00) && !(sig[5] & 0x80)) return false; + + // Check whether the S element is an integer. + if (sig[lenR + 4] != 0x02) return false; + + // Zero-length integers are not allowed for S. + if (lenS == 0) return false; + + // Negative numbers are not allowed for S. + if (sig[lenR + 6] & 0x80) return false; + + // Null bytes at the start of S are not allowed, unless S would otherwise be + // interpreted as a negative number. + if (lenS > 1 && (sig[lenR + 6] == 0x00) && !(sig[lenR + 7] & 0x80)) return false; - const unsigned char *S = &vchSig[6+nLenR]; - if (S[-2] != 0x02) { - // Non-canonical signature: S value type mismatch - return false; - } - if (nLenS == 0) { - // Non-canonical signature: S length is zero - return false; - } - if (S[0] & 0x80) { - // Non-canonical signature: S value negative - return false; - } - if (nLenS > 1 && (S[0] == 0x00) && !(S[1] & 0x80)) { - // Non-canonical signature: S value excessively padded - return false; - } return true; } bool static IsLowDERSignature(const valtype &vchSig, ScriptError* serror) { - if (!IsDERSignature(vchSig)) { + if (!IsValidSignatureEncoding(vchSig)) { return set_error(serror, SCRIPT_ERR_SIG_DER); } unsigned int nLenR = vchSig[3]; @@ -194,7 +194,7 @@ bool static CheckSignatureEncoding(const valtype &vchSig, unsigned int flags, Sc if (vchSig.size() == 0) { return true; } - if ((flags & (SCRIPT_VERIFY_DERSIG | SCRIPT_VERIFY_LOW_S | SCRIPT_VERIFY_STRICTENC)) != 0 && !IsDERSignature(vchSig)) { + if ((flags & (SCRIPT_VERIFY_DERSIG | SCRIPT_VERIFY_LOW_S | SCRIPT_VERIFY_STRICTENC)) != 0 && !IsValidSignatureEncoding(vchSig)) { return set_error(serror, SCRIPT_ERR_SIG_DER); } else if ((flags & SCRIPT_VERIFY_LOW_S) != 0 && !IsLowDERSignature(vchSig, serror)) { // serror is set From 18695f08ef1150851b3ff86cdf7bd5870f65e1dd Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Mon, 19 Jan 2015 18:19:37 -0500 Subject: [PATCH 065/201] Example unit tests from BIP66 --- src/test/data/script_invalid.json | 96 +++++++++++++++++++++++++++++++++++++++ src/test/data/script_valid.json | 48 ++++++++++++++++++++ src/test/script_tests.cpp | 73 +++++++++++++++++++++++++++++ 3 files changed, 217 insertions(+) diff --git a/src/test/data/script_invalid.json b/src/test/data/script_invalid.json index 09120e88385..0477493e596 100644 --- a/src/test/data/script_invalid.json +++ b/src/test/data/script_invalid.json @@ -590,6 +590,102 @@ "P2PK NOT with too much R padding" ], [ + "0x47 0x30440220d7a0417c3f6d1a15094d1cf2a3378ca0503eb8a57630953a9e2987e21ddd0a6502207a6266d686c99090920249991d3d42065b6d43eb70187b219c0db82e4f94d1a201", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKSIG", + "DERSIG", + "BIP66 example 1, with DERSIG" +], +[ + "0x47 0x304402208e43c0b91f7c1e5bc58e41c8185f8a6086e111b0090187968a86f2822462d3c902200a58f4076b1133b18ff1dc83ee51676e44c60cc608d9534e0df5ace0424fc0be01", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKSIG NOT", + "", + "BIP66 example 2, without DERSIG" +], +[ + "0x47 0x304402208e43c0b91f7c1e5bc58e41c8185f8a6086e111b0090187968a86f2822462d3c902200a58f4076b1133b18ff1dc83ee51676e44c60cc608d9534e0df5ace0424fc0be01", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKSIG NOT", + "DERSIG", + "BIP66 example 2, with DERSIG" +], +[ + "0", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKSIG", + "", + "BIP66 example 3, without DERSIG" +], +[ + "0", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKSIG", + "DERSIG", + "BIP66 example 3, with DERSIG" +], +[ + "1", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKSIG", + "", + "BIP66 example 5, without DERSIG" +], +[ + "1", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKSIG", + "DERSIG", + "BIP66 example 5, with DERSIG" +], +[ + "1", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKSIG NOT", + "DERSIG", + "BIP66 example 6, with DERSIG" +], +[ + "0 0x47 0x30440220cae00b1444babfbf6071b0ba8707f6bd373da3df494d6e74119b0430c5db810502205d5231b8c5939c8ff0c82242656d6e06edb073d42af336c99fe8837c36ea39d501 0x47 0x304402200b3d0b0375bb15c14620afa4aa10ae90a0d6a046ce217bc20fe0bc1ced68c1b802204b550acab90ae6d3478057c9ad24f9df743815b799b6449dd7e7f6d3bc6e274c01", + "2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 2 CHECKMULTISIG", + "DERSIG", + "BIP66 example 7, with DERSIG" +], +[ + "0 0x47 0x30440220f00a77260d34ec2f0c59621dc710f58169d0ca06df1a88cd4b1f1b97bd46991b02201ee220c7e04f26aed03f94aa97fb09ca5627163bf4ba07e6979972ec737db22601 0x47 0x3044022079ea80afd538d9ada421b5101febeb6bc874e01dde5bca108c1d0479aec339a4022004576db8f66130d1df686ccf00935703689d69cf539438da1edab208b0d63c4801", + "2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 2 CHECKMULTISIG NOT", + "", + "BIP66 example 8, without DERSIG" +], +[ + "0 0x47 0x30440220f00a77260d34ec2f0c59621dc710f58169d0ca06df1a88cd4b1f1b97bd46991b02201ee220c7e04f26aed03f94aa97fb09ca5627163bf4ba07e6979972ec737db22601 0x47 0x3044022079ea80afd538d9ada421b5101febeb6bc874e01dde5bca108c1d0479aec339a4022004576db8f66130d1df686ccf00935703689d69cf539438da1edab208b0d63c4801", + "2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 2 CHECKMULTISIG NOT", + "DERSIG", + "BIP66 example 8, with DERSIG" +], +[ + "0 0 0x47 0x3044022081aa9d436f2154e8b6d600516db03d78de71df685b585a9807ead4210bd883490220534bb6bdf318a419ac0749660b60e78d17d515558ef369bf872eff405b676b2e01", + "2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 2 CHECKMULTISIG", + "", + "BIP66 example 9, without DERSIG" +], +[ + "0 0 0x47 0x3044022081aa9d436f2154e8b6d600516db03d78de71df685b585a9807ead4210bd883490220534bb6bdf318a419ac0749660b60e78d17d515558ef369bf872eff405b676b2e01", + "2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 2 CHECKMULTISIG", + "DERSIG", + "BIP66 example 9, with DERSIG" +], +[ + "0 0 0x47 0x30440220afa76a8f60622f813b05711f051c6c3407e32d1b1b70b0576c1f01b54e4c05c702200d58e9df044fd1845cabfbeef6e624ba0401daf7d7e084736f9ff601c3783bf501", + "2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 2 CHECKMULTISIG NOT", + "DERSIG", + "BIP66 example 10, with DERSIG" +], +[ + "0 0x47 0x30440220cae00b1444babfbf6071b0ba8707f6bd373da3df494d6e74119b0430c5db810502205d5231b8c5939c8ff0c82242656d6e06edb073d42af336c99fe8837c36ea39d501 0", + "2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 2 CHECKMULTISIG", + "", + "BIP66 example 11, without DERSIG" +], +[ + "0 0x47 0x30440220cae00b1444babfbf6071b0ba8707f6bd373da3df494d6e74119b0430c5db810502205d5231b8c5939c8ff0c82242656d6e06edb073d42af336c99fe8837c36ea39d501 0", + "2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 2 CHECKMULTISIG", + "DERSIG", + "BIP66 example 11, with DERSIG" +], +[ "0x49 0x304502203e4516da7253cf068effec6b95c41221c0cf3a8e6ccb8cbf1725b562e9afde2c022100ab1e3da73d67e32045a20e0b999e049978ea8d6ee5480d485fcf2ce0d03b2ef05101", "0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 CHECKSIG", "LOW_S", diff --git a/src/test/data/script_valid.json b/src/test/data/script_valid.json index 17398ca1bd7..3dde7ee0006 100644 --- a/src/test/data/script_valid.json +++ b/src/test/data/script_valid.json @@ -756,6 +756,54 @@ "P2PK NOT with bad sig with too much R padding but no DERSIG" ], [ + "0x47 0x30440220d7a0417c3f6d1a15094d1cf2a3378ca0503eb8a57630953a9e2987e21ddd0a6502207a6266d686c99090920249991d3d42065b6d43eb70187b219c0db82e4f94d1a201", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKSIG", + "", + "BIP66 example 1, without DERSIG" +], +[ + "0", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKSIG NOT", + "", + "BIP66 example 4, without DERSIG" +], +[ + "0", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKSIG NOT", + "DERSIG", + "BIP66 example 4, with DERSIG" +], +[ + "1", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKSIG NOT", + "", + "BIP66 example 6, without DERSIG" +], +[ + "0 0x47 0x30440220cae00b1444babfbf6071b0ba8707f6bd373da3df494d6e74119b0430c5db810502205d5231b8c5939c8ff0c82242656d6e06edb073d42af336c99fe8837c36ea39d501 0x47 0x304402200b3d0b0375bb15c14620afa4aa10ae90a0d6a046ce217bc20fe0bc1ced68c1b802204b550acab90ae6d3478057c9ad24f9df743815b799b6449dd7e7f6d3bc6e274c01", + "2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 2 CHECKMULTISIG", + "", + "BIP66 example 7, without DERSIG" +], +[ + "0 0 0x47 0x30440220afa76a8f60622f813b05711f051c6c3407e32d1b1b70b0576c1f01b54e4c05c702200d58e9df044fd1845cabfbeef6e624ba0401daf7d7e084736f9ff601c3783bf501", + "2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 2 CHECKMULTISIG NOT", + "", + "BIP66 example 10, without DERSIG" +], +[ + "0 0x47 0x30440220f00a77260d34ec2f0c59621dc710f58169d0ca06df1a88cd4b1f1b97bd46991b02201ee220c7e04f26aed03f94aa97fb09ca5627163bf4ba07e6979972ec737db22601 0", + "2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 2 CHECKMULTISIG NOT", + "", + "BIP66 example 12, without DERSIG" +], +[ + "0 0x47 0x30440220f00a77260d34ec2f0c59621dc710f58169d0ca06df1a88cd4b1f1b97bd46991b02201ee220c7e04f26aed03f94aa97fb09ca5627163bf4ba07e6979972ec737db22601 0", + "2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 2 CHECKMULTISIG NOT", + "DERSIG", + "BIP66 example 12, with DERSIG" +], +[ "0x49 0x304502203e4516da7253cf068effec6b95c41221c0cf3a8e6ccb8cbf1725b562e9afde2c022100ab1e3da73d67e32045a20e0b999e049978ea8d6ee5480d485fcf2ce0d03b2ef05101", "0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 CHECKSIG", "", diff --git a/src/test/script_tests.cpp b/src/test/script_tests.cpp index 4d2a9aff45c..c70158f0e95 100644 --- a/src/test/script_tests.cpp +++ b/src/test/script_tests.cpp @@ -413,6 +413,79 @@ BOOST_AUTO_TEST_CASE(script_build) "P2PK NOT with too much R padding", SCRIPT_VERIFY_DERSIG ).PushSig(keys.key2, SIGHASH_ALL, 31, 32).EditPush(1, "43021F", "44022000")); + good.push_back(TestBuilder(CScript() << ToByteVector(keys.pubkey1C) << OP_CHECKSIG, + "BIP66 example 1, without DERSIG", 0 + ).PushSig(keys.key1, SIGHASH_ALL, 33, 32).EditPush(1, "45022100", "440220")); + bad.push_back(TestBuilder(CScript() << ToByteVector(keys.pubkey1C) << OP_CHECKSIG, + "BIP66 example 1, with DERSIG", SCRIPT_VERIFY_DERSIG + ).PushSig(keys.key1, SIGHASH_ALL, 33, 32).EditPush(1, "45022100", "440220")); + bad.push_back(TestBuilder(CScript() << ToByteVector(keys.pubkey1C) << OP_CHECKSIG << OP_NOT, + "BIP66 example 2, without DERSIG", 0 + ).PushSig(keys.key1, SIGHASH_ALL, 33, 32).EditPush(1, "45022100", "440220")); + bad.push_back(TestBuilder(CScript() << ToByteVector(keys.pubkey1C) << OP_CHECKSIG << OP_NOT, + "BIP66 example 2, with DERSIG", SCRIPT_VERIFY_DERSIG + ).PushSig(keys.key1, SIGHASH_ALL, 33, 32).EditPush(1, "45022100", "440220")); + bad.push_back(TestBuilder(CScript() << ToByteVector(keys.pubkey1C) << OP_CHECKSIG, + "BIP66 example 3, without DERSIG", 0 + ).Num(0)); + bad.push_back(TestBuilder(CScript() << ToByteVector(keys.pubkey1C) << OP_CHECKSIG, + "BIP66 example 3, with DERSIG", SCRIPT_VERIFY_DERSIG + ).Num(0)); + good.push_back(TestBuilder(CScript() << ToByteVector(keys.pubkey1C) << OP_CHECKSIG << OP_NOT, + "BIP66 example 4, without DERSIG", 0 + ).Num(0)); + good.push_back(TestBuilder(CScript() << ToByteVector(keys.pubkey1C) << OP_CHECKSIG << OP_NOT, + "BIP66 example 4, with DERSIG", SCRIPT_VERIFY_DERSIG + ).Num(0)); + bad.push_back(TestBuilder(CScript() << ToByteVector(keys.pubkey1C) << OP_CHECKSIG, + "BIP66 example 5, without DERSIG", 0 + ).Num(1)); + bad.push_back(TestBuilder(CScript() << ToByteVector(keys.pubkey1C) << OP_CHECKSIG, + "BIP66 example 5, with DERSIG", SCRIPT_VERIFY_DERSIG + ).Num(1)); + good.push_back(TestBuilder(CScript() << ToByteVector(keys.pubkey1C) << OP_CHECKSIG << OP_NOT, + "BIP66 example 6, without DERSIG", 0 + ).Num(1)); + bad.push_back(TestBuilder(CScript() << ToByteVector(keys.pubkey1C) << OP_CHECKSIG << OP_NOT, + "BIP66 example 6, with DERSIG", SCRIPT_VERIFY_DERSIG + ).Num(1)); + good.push_back(TestBuilder(CScript() << OP_2 << ToByteVector(keys.pubkey1C) << ToByteVector(keys.pubkey2C) << OP_2 << OP_CHECKMULTISIG, + "BIP66 example 7, without DERSIG", 0 + ).Num(0).PushSig(keys.key1, SIGHASH_ALL, 33, 32).EditPush(1, "45022100", "440220").PushSig(keys.key2)); + bad.push_back(TestBuilder(CScript() << OP_2 << ToByteVector(keys.pubkey1C) << ToByteVector(keys.pubkey2C) << OP_2 << OP_CHECKMULTISIG, + "BIP66 example 7, with DERSIG", SCRIPT_VERIFY_DERSIG + ).Num(0).PushSig(keys.key1, SIGHASH_ALL, 33, 32).EditPush(1, "45022100", "440220").PushSig(keys.key2)); + bad.push_back(TestBuilder(CScript() << OP_2 << ToByteVector(keys.pubkey1C) << ToByteVector(keys.pubkey2C) << OP_2 << OP_CHECKMULTISIG << OP_NOT, + "BIP66 example 8, without DERSIG", 0 + ).Num(0).PushSig(keys.key1, SIGHASH_ALL, 33, 32).EditPush(1, "45022100", "440220").PushSig(keys.key2)); + bad.push_back(TestBuilder(CScript() << OP_2 << ToByteVector(keys.pubkey1C) << ToByteVector(keys.pubkey2C) << OP_2 << OP_CHECKMULTISIG << OP_NOT, + "BIP66 example 8, with DERSIG", SCRIPT_VERIFY_DERSIG + ).Num(0).PushSig(keys.key1, SIGHASH_ALL, 33, 32).EditPush(1, "45022100", "440220").PushSig(keys.key2)); + bad.push_back(TestBuilder(CScript() << OP_2 << ToByteVector(keys.pubkey1C) << ToByteVector(keys.pubkey2C) << OP_2 << OP_CHECKMULTISIG, + "BIP66 example 9, without DERSIG", 0 + ).Num(0).Num(0).PushSig(keys.key2, SIGHASH_ALL, 33, 32).EditPush(1, "45022100", "440220")); + bad.push_back(TestBuilder(CScript() << OP_2 << ToByteVector(keys.pubkey1C) << ToByteVector(keys.pubkey2C) << OP_2 << OP_CHECKMULTISIG, + "BIP66 example 9, with DERSIG", SCRIPT_VERIFY_DERSIG + ).Num(0).Num(0).PushSig(keys.key2, SIGHASH_ALL, 33, 32).EditPush(1, "45022100", "440220")); + good.push_back(TestBuilder(CScript() << OP_2 << ToByteVector(keys.pubkey1C) << ToByteVector(keys.pubkey2C) << OP_2 << OP_CHECKMULTISIG << OP_NOT, + "BIP66 example 10, without DERSIG", 0 + ).Num(0).Num(0).PushSig(keys.key2, SIGHASH_ALL, 33, 32).EditPush(1, "45022100", "440220")); + bad.push_back(TestBuilder(CScript() << OP_2 << ToByteVector(keys.pubkey1C) << ToByteVector(keys.pubkey2C) << OP_2 << OP_CHECKMULTISIG << OP_NOT, + "BIP66 example 10, with DERSIG", SCRIPT_VERIFY_DERSIG + ).Num(0).Num(0).PushSig(keys.key2, SIGHASH_ALL, 33, 32).EditPush(1, "45022100", "440220")); + bad.push_back(TestBuilder(CScript() << OP_2 << ToByteVector(keys.pubkey1C) << ToByteVector(keys.pubkey2C) << OP_2 << OP_CHECKMULTISIG, + "BIP66 example 11, without DERSIG", 0 + ).Num(0).PushSig(keys.key1, SIGHASH_ALL, 33, 32).EditPush(1, "45022100", "440220").Num(0)); + bad.push_back(TestBuilder(CScript() << OP_2 << ToByteVector(keys.pubkey1C) << ToByteVector(keys.pubkey2C) << OP_2 << OP_CHECKMULTISIG, + "BIP66 example 11, with DERSIG", SCRIPT_VERIFY_DERSIG + ).Num(0).PushSig(keys.key1, SIGHASH_ALL, 33, 32).EditPush(1, "45022100", "440220").Num(0)); + good.push_back(TestBuilder(CScript() << OP_2 << ToByteVector(keys.pubkey1C) << ToByteVector(keys.pubkey2C) << OP_2 << OP_CHECKMULTISIG << OP_NOT, + "BIP66 example 12, without DERSIG", 0 + ).Num(0).PushSig(keys.key1, SIGHASH_ALL, 33, 32).EditPush(1, "45022100", "440220").Num(0)); + good.push_back(TestBuilder(CScript() << OP_2 << ToByteVector(keys.pubkey1C) << ToByteVector(keys.pubkey2C) << OP_2 << OP_CHECKMULTISIG << OP_NOT, + "BIP66 example 12, with DERSIG", SCRIPT_VERIFY_DERSIG + ).Num(0).PushSig(keys.key1, SIGHASH_ALL, 33, 32).EditPush(1, "45022100", "440220").Num(0)); + good.push_back(TestBuilder(CScript() << ToByteVector(keys.pubkey2C) << OP_CHECKSIG, "P2PK with high S but no LOW_S", 0 ).PushSig(keys.key2, SIGHASH_ALL, 32, 33)); From 773c30d7564882d347ec80c77992a61935f6675a Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Mon, 19 Jan 2015 18:37:21 -0500 Subject: [PATCH 066/201] BIP66 changeover logic --- src/main.cpp | 12 ++++++++++++ src/primitives/block.h | 2 +- src/script/bitcoinconsensus.h | 1 + src/script/standard.h | 1 + 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 8f58547fe5a..47138aefe53 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1685,6 +1685,11 @@ bool ConnectBlock(const CBlock& block, CValidationState& state, CBlockIndex* pin unsigned int flags = fStrictPayToScriptHash ? SCRIPT_VERIFY_P2SH : SCRIPT_VERIFY_NONE; + // Start enforcing the DERSIG (BIP66) rules, for block.nVersion=3 blocks, when 75% of the network has upgraded: + if (block.nVersion >= 3 && CBlockIndex::IsSuperMajority(3, pindex->pprev, Params().EnforceBlockUpgradeMajority())) { + flags |= SCRIPT_VERIFY_DERSIG; + } + CBlockUndo blockundo; CCheckQueueControl control(fScriptChecks && nScriptCheckThreads ? &scriptcheckqueue : NULL); @@ -2524,6 +2529,13 @@ bool ContextualCheckBlockHeader(const CBlockHeader& block, CValidationState& sta REJECT_OBSOLETE, "bad-version"); } + // Reject block.nVersion=2 blocks when 95% (75% on testnet) of the network has upgraded: + if (block.nVersion < 3 && CBlockIndex::IsSuperMajority(3, pindexPrev, Params().RejectBlockOutdatedMajority())) + { + return state.Invalid(error("%s : rejected nVersion=2 block", __func__), + REJECT_OBSOLETE, "bad-version"); + } + return true; } diff --git a/src/primitives/block.h b/src/primitives/block.h index a1895925395..9c17902e15e 100644 --- a/src/primitives/block.h +++ b/src/primitives/block.h @@ -24,7 +24,7 @@ class CBlockHeader { public: // header - static const int32_t CURRENT_VERSION=2; + static const int32_t CURRENT_VERSION=3; int32_t nVersion; uint256 hashPrevBlock; uint256 hashMerkleRoot; diff --git a/src/script/bitcoinconsensus.h b/src/script/bitcoinconsensus.h index 15e3337a8de..c57d8b3cc59 100644 --- a/src/script/bitcoinconsensus.h +++ b/src/script/bitcoinconsensus.h @@ -46,6 +46,7 @@ enum { bitcoinconsensus_SCRIPT_FLAGS_VERIFY_NONE = 0, bitcoinconsensus_SCRIPT_FLAGS_VERIFY_P2SH = (1U << 0), // evaluate P2SH (BIP16) subscripts + bitcoinconsensus_SCRIPT_FLAGS_VERIFY_DERSIG = (1U << 2), // enforce strict DER (BIP66) compliance }; /// Returns 1 if the input nIn of the serialized transaction pointed to by diff --git a/src/script/standard.h b/src/script/standard.h index c4b82b4c45a..3fea6b9ab9d 100644 --- a/src/script/standard.h +++ b/src/script/standard.h @@ -45,6 +45,7 @@ static const unsigned int MANDATORY_SCRIPT_VERIFY_FLAGS = SCRIPT_VERIFY_P2SH; * blocks and we must accept those blocks. */ static const unsigned int STANDARD_SCRIPT_VERIFY_FLAGS = MANDATORY_SCRIPT_VERIFY_FLAGS | + SCRIPT_VERIFY_DERSIG | SCRIPT_VERIFY_STRICTENC | SCRIPT_VERIFY_MINIMALDATA | SCRIPT_VERIFY_NULLDUMMY | From 6da2028b55f3ab71c9b21ec37a11f89bd3749667 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Tue, 20 Jan 2015 16:39:19 -0500 Subject: [PATCH 067/201] Add RPC test for DERSIG BIP switchover logic --- qa/rpc-tests/bipdersig.py | 90 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100755 qa/rpc-tests/bipdersig.py diff --git a/qa/rpc-tests/bipdersig.py b/qa/rpc-tests/bipdersig.py new file mode 100755 index 00000000000..9f2cc846015 --- /dev/null +++ b/qa/rpc-tests/bipdersig.py @@ -0,0 +1,90 @@ +#!/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 the BIP66 changeover logic +# + +from test_framework import BitcoinTestFramework +from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException +from util import * +import os +import shutil + +class BIP66Test(BitcoinTestFramework): + + def setup_network(self): + self.nodes = [] + self.nodes.append(start_node(0, self.options.tmpdir, [])) + self.nodes.append(start_node(1, self.options.tmpdir, ["-blockversion=2"])) + self.nodes.append(start_node(2, self.options.tmpdir, ["-blockversion=3"])) + connect_nodes(self.nodes[1], 0) + connect_nodes(self.nodes[2], 0) + self.is_network_split = False + self.sync_all() + + def run_test(self): + cnt = self.nodes[0].getblockcount() + + # Mine some old-version blocks + self.nodes[1].setgenerate(True, 100) + self.sync_all() + if (self.nodes[0].getblockcount() != cnt + 100): + raise AssertionError("Failed to mine 100 version=2 blocks") + + # Mine 750 new-version blocks + for i in xrange(15): + self.nodes[2].setgenerate(True, 50) + self.sync_all() + if (self.nodes[0].getblockcount() != cnt + 850): + raise AssertionError("Failed to mine 750 version=3 blocks") + + # TODO: check that new DERSIG rules are not enforced + + # Mine 1 new-version block + self.nodes[2].setgenerate(True, 1) + self.sync_all() + if (self.nodes[0].getblockcount() != cnt + 851): + raise AssertionFailure("Failed to mine a version=3 blocks") + + # TODO: check that new DERSIG rules are enforced + + # Mine 198 new-version blocks + for i in xrange(2): + self.nodes[2].setgenerate(True, 99) + self.sync_all() + if (self.nodes[0].getblockcount() != cnt + 1049): + raise AssertionError("Failed to mine 198 version=3 blocks") + + # Mine 1 old-version block + self.nodes[1].setgenerate(True, 1) + self.sync_all() + if (self.nodes[0].getblockcount() != cnt + 1050): + raise AssertionError("Failed to mine a version=2 block after 949 version=3 blocks") + + # Mine 1 new-version blocks + self.nodes[2].setgenerate(True, 1) + self.sync_all() + if (self.nodes[0].getblockcount() != cnt + 1051): + raise AssertionError("Failed to mine a version=3 block") + + # Mine 1 old-version blocks + try: + self.nodes[1].setgenerate(True, 1) + raise AssertionError("Succeeded to mine a version=2 block after 950 version=3 blocks") + except JSONRPCException: + pass + self.sync_all() + if (self.nodes[0].getblockcount() != cnt + 1051): + raise AssertionError("Accepted a version=2 block after 950 version=3 blocks") + + # Mine 1 new-version blocks + self.nodes[2].setgenerate(True, 1) + self.sync_all() + if (self.nodes[0].getblockcount() != cnt + 1052): + raise AssertionError("Failed to mine a version=3 block") + +if __name__ == '__main__': + BIP66Test().main() From 3916a81a27b4be880361269d634dffbbbcad00a3 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Sun, 25 Jan 2015 12:46:31 -0400 Subject: [PATCH 068/201] Increase coverage of DERSIG edge cases --- src/test/data/script_invalid.json | 10 ++++++++++ src/test/data/script_valid.json | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/test/data/script_invalid.json b/src/test/data/script_invalid.json index 0477493e596..e63018051dd 100644 --- a/src/test/data/script_invalid.json +++ b/src/test/data/script_invalid.json @@ -510,6 +510,16 @@ "2-of-2 CHECKMULTISIG NOT with both pubkeys valid, but first signature invalid." ], +["Increase DERSIG test coverage"], +["0x4a 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "0 CHECKSIG NOT", "DERSIG", "Overly long signature is incorrectly encoded for DERSIG"], +["0x25 0x30220220000000000000000000000000000000000000000000000000000000000000000000", "0 CHECKSIG NOT", "DERSIG", "Missing S is incorrectly encoded for DERSIG"], +["0x27 0x3024021077777777777777777777777777777777020a7777777777777777777777777777777701", "0 CHECKSIG NOT", "DERSIG", "S with invalid S length is incorrectly encoded for DERSIG"], +["0x27 0x302403107777777777777777777777777777777702107777777777777777777777777777777701", "0 CHECKSIG NOT", "DERSIG", "Non-integer R is incorrectly encoded for DERSIG"], +["0x27 0x302402107777777777777777777777777777777703107777777777777777777777777777777701", "0 CHECKSIG NOT", "DERSIG", "Non-integer S is incorrectly encoded for DERSIG"], +["0x17 0x3014020002107777777777777777777777777777777701", "0 CHECKSIG NOT", "DERSIG", "Zero-length R is incorrectly encoded for DERSIG"], +["0x17 0x3014021077777777777777777777777777777777020001", "0 CHECKSIG NOT", "DERSIG", "Zero-length S is incorrectly encoded for DERSIG"], +["0x27 0x302402107777777777777777777777777777777702108777777777777777777777777777777701", "0 CHECKSIG NOT", "DERSIG", "Negative S is incorrectly encoded for DERSIG"], + ["Automatically generated test cases"], [ "0x47 0x3044022053205076a7bb12d2db3162a2d97d8197631f829b065948b7019b15482af819a902204328dcc02c994ca086b1226d0d5f1674d23cfae0d846143df812b81cab3391e801", diff --git a/src/test/data/script_valid.json b/src/test/data/script_valid.json index 3dde7ee0006..42e9edbd373 100644 --- a/src/test/data/script_valid.json +++ b/src/test/data/script_valid.json @@ -688,6 +688,16 @@ "2-of-2 CHECKMULTISIG NOT with both pubkeys valid, but second signature invalid. Valid pubkey fails, and CHECKMULTISIG exits early, prior to evaluation of second invalid signature." ], +["Increase test coverage for DERSIG"], +["0x4a 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "0 CHECKSIG NOT", "", "Overly long signature is correctly encoded"], +["0x25 0x30220220000000000000000000000000000000000000000000000000000000000000000000", "0 CHECKSIG NOT", "", "Missing S is correctly encoded"], +["0x27 0x3024021077777777777777777777777777777777020a7777777777777777777777777777777701", "0 CHECKSIG NOT", "", "S with invalid S length is correctly encoded"], +["0x27 0x302403107777777777777777777777777777777702107777777777777777777777777777777701", "0 CHECKSIG NOT", "", "Non-integer R is correctly encoded"], +["0x27 0x302402107777777777777777777777777777777703107777777777777777777777777777777701", "0 CHECKSIG NOT", "", "Non-integer S is correctly encoded"], +["0x17 0x3014020002107777777777777777777777777777777701", "0 CHECKSIG NOT", "", "Zero-length R is correctly encoded"], +["0x17 0x3014021077777777777777777777777777777777020001", "0 CHECKSIG NOT", "", "Zero-length S is correctly encoded for DERSIG"], +["0x27 0x302402107777777777777777777777777777777702108777777777777777777777777777777701", "0 CHECKSIG NOT", "", "Negative S is correctly encoded"], + ["Automatically generated test cases"], [ "0x47 0x3044022053205076a7bb13d2db3162a2d97d8197631f829b065948b7019b15482af819a902204328dcc02c994ca086b1226d0d5f1674d23cfae0d846143df812b81cab3391e801", From fd7350d22e7874b81e785c7f4221a69e08ff75af Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Mon, 2 Feb 2015 23:51:07 +0000 Subject: [PATCH 069/201] doc/release-notes.md: Add summary of mining enhancements --- doc/release-notes.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/doc/release-notes.md b/doc/release-notes.md index bd1ad8faed9..fba67fa1cf8 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -273,6 +273,26 @@ server round-trip to execute. Other utilities "bitcoin-key" and "bitcoin-script" have been proposed, making key and script operations easily accessible via command line. +Mining enhancements +------------------- + +The `prioritisetransaction` RPC method has been added to enable miners to +manipulate the priority of transactions on an individual basis. + +Bitcoin Core now supports BIP 22 long polling, so mining software can be +notified immediately of new templates rather than having to poll periodically. + +Support for BIP 23 block proposals is now available in Bitcoin Core's +`getblocktemplate` method. This enables miners to check the basic validity of +their next block before expending work on it, reducing risks of accidental +hardforks or mining invalid blocks. + +Two new options to control mining policy: +- `-datacarrier=0/1` : Relay and mine "data carrier" (OP_RETURN) transactions +if this is 1. +- `-datacarriersize=n` : Maximum size, in bytes, we consider acceptable for +"data carrier" outputs. + 0.10.0 Change log ================= From 1bbad80bf4a939bcacd419f19e46a12a5baa6174 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Tue, 27 Jan 2015 09:28:45 -0400 Subject: [PATCH 070/201] Use separate SignatureChecker for CMutableTransaction Conflicts: src/main.cpp src/script/bitcoinconsensus.cpp Rebased-From: 858809a33e4f690c4ad213f44a6c4465fc2ef025 Github-Pull: #5719 --- src/bitcoin-tx.cpp | 2 +- src/main.cpp | 4 ++-- src/rpcrawtransaction.cpp | 2 +- src/script/bitcoinconsensus.cpp | 4 ++-- src/script/interpreter.cpp | 4 ++-- src/script/interpreter.h | 14 ++++++++++++-- src/script/sigcache.cpp | 4 ++-- src/script/sigcache.h | 4 ++-- src/script/sign.cpp | 4 ++-- src/test/multisig_tests.cpp | 16 ++++++++-------- src/test/script_P2SH_tests.cpp | 2 +- src/test/script_tests.cpp | 28 ++++++++++++++-------------- src/test/transaction_tests.cpp | 4 ++-- 13 files changed, 51 insertions(+), 41 deletions(-) diff --git a/src/bitcoin-tx.cpp b/src/bitcoin-tx.cpp index 0f16b36f14b..94fd0fe60a3 100644 --- a/src/bitcoin-tx.cpp +++ b/src/bitcoin-tx.cpp @@ -437,7 +437,7 @@ static void MutateTxSign(CMutableTransaction& tx, const string& flagStr) BOOST_FOREACH(const CTransaction& txv, txVariants) { txin.scriptSig = CombineSignatures(prevPubKey, mergedTx, i, txin.scriptSig, txv.vin[i].scriptSig); } - if (!VerifyScript(txin.scriptSig, prevPubKey, STANDARD_SCRIPT_VERIFY_FLAGS, SignatureChecker(mergedTx, i))) + if (!VerifyScript(txin.scriptSig, prevPubKey, STANDARD_SCRIPT_VERIFY_FLAGS, MutableTransactionSignatureChecker(mergedTx, i))) fComplete = false; } diff --git a/src/main.cpp b/src/main.cpp index 8f58547fe5a..d5cef779d82 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1400,8 +1400,8 @@ void UpdateCoins(const CTransaction& tx, CValidationState &state, CCoinsViewCach bool CScriptCheck::operator()() { const CScript &scriptSig = ptxTo->vin[nIn].scriptSig; - if (!VerifyScript(scriptSig, scriptPubKey, nFlags, CachingSignatureChecker(*ptxTo, nIn, cacheStore), &error)) { - return ::error("CScriptCheck() : %s:%d VerifySignature failed: %s", ptxTo->GetHash().ToString(), nIn, ScriptErrorString(error)); + if (!VerifyScript(scriptSig, scriptPubKey, nFlags, CachingTransactionSignatureChecker(*ptxTo, nIn, cacheStore), &error)) { + return ::error("CScriptCheck(): %s:%d VerifySignature failed: %s", ptxTo->GetHash().ToString(), nIn, ScriptErrorString(error)); } return true; } diff --git a/src/rpcrawtransaction.cpp b/src/rpcrawtransaction.cpp index 4a1af2207a2..25bc5e8f90d 100644 --- a/src/rpcrawtransaction.cpp +++ b/src/rpcrawtransaction.cpp @@ -690,7 +690,7 @@ Value signrawtransaction(const Array& params, bool fHelp) BOOST_FOREACH(const CMutableTransaction& txv, txVariants) { txin.scriptSig = CombineSignatures(prevPubKey, mergedTx, i, txin.scriptSig, txv.vin[i].scriptSig); } - if (!VerifyScript(txin.scriptSig, prevPubKey, STANDARD_SCRIPT_VERIFY_FLAGS, SignatureChecker(mergedTx, i))) + if (!VerifyScript(txin.scriptSig, prevPubKey, STANDARD_SCRIPT_VERIFY_FLAGS, MutableTransactionSignatureChecker(mergedTx, i))) fComplete = false; } diff --git a/src/script/bitcoinconsensus.cpp b/src/script/bitcoinconsensus.cpp index d4fd2ad7d9b..6e3b0d7e9d4 100644 --- a/src/script/bitcoinconsensus.cpp +++ b/src/script/bitcoinconsensus.cpp @@ -78,8 +78,8 @@ int bitcoinconsensus_verify_script(const unsigned char *scriptPubKey, unsigned i // Regardless of the verification result, the tx did not error. set_error(err, bitcoinconsensus_ERR_OK); - return VerifyScript(tx.vin[nIn].scriptSig, CScript(scriptPubKey, scriptPubKey + scriptPubKeyLen), flags, SignatureChecker(tx, nIn), NULL); - } catch (std::exception &e) { + return VerifyScript(tx.vin[nIn].scriptSig, CScript(scriptPubKey, scriptPubKey + scriptPubKeyLen), flags, TransactionSignatureChecker(tx, nIn), NULL); + } catch (const std::exception&) { return set_error(err, bitcoinconsensus_ERR_TX_DESERIALIZE); // Error deserializing } } diff --git a/src/script/interpreter.cpp b/src/script/interpreter.cpp index 3128bae35f8..58604de88c0 100644 --- a/src/script/interpreter.cpp +++ b/src/script/interpreter.cpp @@ -1057,12 +1057,12 @@ uint256 SignatureHash(const CScript& scriptCode, const CTransaction& txTo, unsig return ss.GetHash(); } -bool SignatureChecker::VerifySignature(const std::vector& vchSig, const CPubKey& pubkey, const uint256& sighash) const +bool TransactionSignatureChecker::VerifySignature(const std::vector& vchSig, const CPubKey& pubkey, const uint256& sighash) const { return pubkey.Verify(sighash, vchSig); } -bool SignatureChecker::CheckSig(const vector& vchSigIn, const vector& vchPubKey, const CScript& scriptCode) const +bool TransactionSignatureChecker::CheckSig(const vector& vchSigIn, const vector& vchPubKey, const CScript& scriptCode) const { CPubKey pubkey(vchPubKey); if (!pubkey.IsValid()) diff --git a/src/script/interpreter.h b/src/script/interpreter.h index 35b2f6c65a1..7bc919e9fd9 100644 --- a/src/script/interpreter.h +++ b/src/script/interpreter.h @@ -7,6 +7,7 @@ #define BITCOIN_SCRIPT_INTERPRETER_H #include "script_error.h" +#include "primitives/transaction.h" #include #include @@ -84,7 +85,7 @@ class BaseSignatureChecker virtual ~BaseSignatureChecker() {} }; -class SignatureChecker : public BaseSignatureChecker +class TransactionSignatureChecker : public BaseSignatureChecker { private: const CTransaction& txTo; @@ -94,10 +95,19 @@ class SignatureChecker : public BaseSignatureChecker virtual bool VerifySignature(const std::vector& vchSig, const CPubKey& vchPubKey, const uint256& sighash) const; public: - SignatureChecker(const CTransaction& txToIn, unsigned int nInIn) : txTo(txToIn), nIn(nInIn) {} + TransactionSignatureChecker(const CTransaction& txToIn, unsigned int nInIn) : txTo(txToIn), nIn(nInIn) {} bool CheckSig(const std::vector& scriptSig, const std::vector& vchPubKey, const CScript& scriptCode) const; }; +class MutableTransactionSignatureChecker : public TransactionSignatureChecker +{ +private: + const CTransaction txTo; + +public: + MutableTransactionSignatureChecker(const CMutableTransaction& txToIn, unsigned int nInIn) : TransactionSignatureChecker(txTo, nInIn), txTo(txToIn) {} +}; + bool EvalScript(std::vector >& stack, const CScript& script, unsigned int flags, const BaseSignatureChecker& checker, ScriptError* error = NULL); bool VerifyScript(const CScript& scriptSig, const CScript& scriptPubKey, unsigned int flags, const BaseSignatureChecker& checker, ScriptError* error = NULL); diff --git a/src/script/sigcache.cpp b/src/script/sigcache.cpp index 5580a5933e6..2c4c14ac26e 100644 --- a/src/script/sigcache.cpp +++ b/src/script/sigcache.cpp @@ -74,14 +74,14 @@ class CSignatureCache } -bool CachingSignatureChecker::VerifySignature(const std::vector& vchSig, const CPubKey& pubkey, const uint256& sighash) const +bool CachingTransactionSignatureChecker::VerifySignature(const std::vector& vchSig, const CPubKey& pubkey, const uint256& sighash) const { static CSignatureCache signatureCache; if (signatureCache.Get(sighash, vchSig, pubkey)) return true; - if (!SignatureChecker::VerifySignature(vchSig, pubkey, sighash)) + if (!TransactionSignatureChecker::VerifySignature(vchSig, pubkey, sighash)) return false; if (store) diff --git a/src/script/sigcache.h b/src/script/sigcache.h index df2a2ea13c8..88880476bf6 100644 --- a/src/script/sigcache.h +++ b/src/script/sigcache.h @@ -12,13 +12,13 @@ class CPubKey; -class CachingSignatureChecker : public SignatureChecker +class CachingTransactionSignatureChecker : public TransactionSignatureChecker { private: bool store; public: - CachingSignatureChecker(const CTransaction& txToIn, unsigned int nInIn, bool storeIn=true) : SignatureChecker(txToIn, nInIn), store(storeIn) {} + CachingTransactionSignatureChecker(const CTransaction& txToIn, unsigned int nInIn, bool storeIn=true) : TransactionSignatureChecker(txToIn, nInIn), store(storeIn) {} bool VerifySignature(const std::vector& vchSig, const CPubKey& vchPubKey, const uint256& sighash) const; }; diff --git a/src/script/sign.cpp b/src/script/sign.cpp index 03c33ad9b52..377a2af16c1 100644 --- a/src/script/sign.cpp +++ b/src/script/sign.cpp @@ -123,7 +123,7 @@ bool SignSignature(const CKeyStore &keystore, const CScript& fromPubKey, CMutabl } // Test solution - return VerifyScript(txin.scriptSig, fromPubKey, STANDARD_SCRIPT_VERIFY_FLAGS, SignatureChecker(txTo, nIn)); + return VerifyScript(txin.scriptSig, fromPubKey, STANDARD_SCRIPT_VERIFY_FLAGS, MutableTransactionSignatureChecker(txTo, nIn)); } bool SignSignature(const CKeyStore &keystore, const CTransaction& txFrom, CMutableTransaction& txTo, unsigned int nIn, int nHashType) @@ -174,7 +174,7 @@ static CScript CombineMultisig(const CScript& scriptPubKey, const CTransaction& if (sigs.count(pubkey)) continue; // Already got a sig for this pubkey - if (SignatureChecker(txTo, nIn).CheckSig(sig, pubkey, scriptPubKey)) + if (TransactionSignatureChecker(txTo, nIn).CheckSig(sig, pubkey, scriptPubKey)) { sigs[pubkey] = sig; break; diff --git a/src/test/multisig_tests.cpp b/src/test/multisig_tests.cpp index 6c800efde2a..ff4b523f4e2 100644 --- a/src/test/multisig_tests.cpp +++ b/src/test/multisig_tests.cpp @@ -84,7 +84,7 @@ BOOST_AUTO_TEST_CASE(multisig_verify) keys.clear(); keys += key[0],key[1]; // magic operator+= from boost.assign s = sign_multisig(a_and_b, keys, txTo[0], 0); - BOOST_CHECK(VerifyScript(s, a_and_b, flags, SignatureChecker(txTo[0], 0), &err)); + BOOST_CHECK(VerifyScript(s, a_and_b, flags, MutableTransactionSignatureChecker(txTo[0], 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_OK, ScriptErrorString(err)); for (int i = 0; i < 4; i++) @@ -92,13 +92,13 @@ BOOST_AUTO_TEST_CASE(multisig_verify) keys.clear(); keys += key[i]; s = sign_multisig(a_and_b, keys, txTo[0], 0); - BOOST_CHECK_MESSAGE(!VerifyScript(s, a_and_b, flags, SignatureChecker(txTo[0], 0), &err), strprintf("a&b 1: %d", i)); + BOOST_CHECK_MESSAGE(!VerifyScript(s, a_and_b, flags, MutableTransactionSignatureChecker(txTo[0], 0), &err), strprintf("a&b 1: %d", i)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_INVALID_STACK_OPERATION, ScriptErrorString(err)); keys.clear(); keys += key[1],key[i]; s = sign_multisig(a_and_b, keys, txTo[0], 0); - BOOST_CHECK_MESSAGE(!VerifyScript(s, a_and_b, flags, SignatureChecker(txTo[0], 0), &err), strprintf("a&b 2: %d", i)); + BOOST_CHECK_MESSAGE(!VerifyScript(s, a_and_b, flags, MutableTransactionSignatureChecker(txTo[0], 0), &err), strprintf("a&b 2: %d", i)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_EVAL_FALSE, ScriptErrorString(err)); } @@ -110,18 +110,18 @@ BOOST_AUTO_TEST_CASE(multisig_verify) s = sign_multisig(a_or_b, keys, txTo[1], 0); if (i == 0 || i == 1) { - BOOST_CHECK_MESSAGE(VerifyScript(s, a_or_b, flags, SignatureChecker(txTo[1], 0), &err), strprintf("a|b: %d", i)); + BOOST_CHECK_MESSAGE(VerifyScript(s, a_or_b, flags, MutableTransactionSignatureChecker(txTo[1], 0), &err), strprintf("a|b: %d", i)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_OK, ScriptErrorString(err)); } else { - BOOST_CHECK_MESSAGE(!VerifyScript(s, a_or_b, flags, SignatureChecker(txTo[1], 0), &err), strprintf("a|b: %d", i)); + BOOST_CHECK_MESSAGE(!VerifyScript(s, a_or_b, flags, MutableTransactionSignatureChecker(txTo[1], 0), &err), strprintf("a|b: %d", i)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_EVAL_FALSE, ScriptErrorString(err)); } } s.clear(); s << OP_0 << OP_1; - BOOST_CHECK(!VerifyScript(s, a_or_b, flags, SignatureChecker(txTo[1], 0), &err)); + BOOST_CHECK(!VerifyScript(s, a_or_b, flags, MutableTransactionSignatureChecker(txTo[1], 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_SIG_DER, ScriptErrorString(err)); @@ -133,12 +133,12 @@ BOOST_AUTO_TEST_CASE(multisig_verify) s = sign_multisig(escrow, keys, txTo[2], 0); if (i < j && i < 3 && j < 3) { - BOOST_CHECK_MESSAGE(VerifyScript(s, escrow, flags, SignatureChecker(txTo[2], 0), &err), strprintf("escrow 1: %d %d", i, j)); + BOOST_CHECK_MESSAGE(VerifyScript(s, escrow, flags, MutableTransactionSignatureChecker(txTo[2], 0), &err), strprintf("escrow 1: %d %d", i, j)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_OK, ScriptErrorString(err)); } else { - BOOST_CHECK_MESSAGE(!VerifyScript(s, escrow, flags, SignatureChecker(txTo[2], 0), &err), strprintf("escrow 2: %d %d", i, j)); + BOOST_CHECK_MESSAGE(!VerifyScript(s, escrow, flags, MutableTransactionSignatureChecker(txTo[2], 0), &err), strprintf("escrow 2: %d %d", i, j)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_EVAL_FALSE, ScriptErrorString(err)); } } diff --git a/src/test/script_P2SH_tests.cpp b/src/test/script_P2SH_tests.cpp index a969eefa053..0cd4165c063 100644 --- a/src/test/script_P2SH_tests.cpp +++ b/src/test/script_P2SH_tests.cpp @@ -43,7 +43,7 @@ Verify(const CScript& scriptSig, const CScript& scriptPubKey, bool fStrict, Scri txTo.vin[0].scriptSig = scriptSig; txTo.vout[0].nValue = 1; - return VerifyScript(scriptSig, scriptPubKey, fStrict ? SCRIPT_VERIFY_P2SH : SCRIPT_VERIFY_NONE, SignatureChecker(txTo, 0), &err); + return VerifyScript(scriptSig, scriptPubKey, fStrict ? SCRIPT_VERIFY_P2SH : SCRIPT_VERIFY_NONE, MutableTransactionSignatureChecker(txTo, 0), &err); } diff --git a/src/test/script_tests.cpp b/src/test/script_tests.cpp index 4d2a9aff45c..315f9170cf8 100644 --- a/src/test/script_tests.cpp +++ b/src/test/script_tests.cpp @@ -100,7 +100,7 @@ void DoTest(const CScript& scriptPubKey, const CScript& scriptSig, int flags, bo ScriptError err; CMutableTransaction tx = BuildSpendingTransaction(scriptSig, BuildCreditingTransaction(scriptPubKey)); CMutableTransaction tx2 = tx; - BOOST_CHECK_MESSAGE(VerifyScript(scriptSig, scriptPubKey, flags, SignatureChecker(tx, 0), &err) == expect, message); + BOOST_CHECK_MESSAGE(VerifyScript(scriptSig, scriptPubKey, flags, MutableTransactionSignatureChecker(tx, 0), &err) == expect, message); BOOST_CHECK_MESSAGE(expect == (err == SCRIPT_ERR_OK), std::string(ScriptErrorString(err)) + ": " + message); #if defined(HAVE_CONSENSUS_LIB) CDataStream stream(SER_NETWORK, PROTOCOL_VERSION); @@ -673,18 +673,18 @@ BOOST_AUTO_TEST_CASE(script_CHECKMULTISIG12) CMutableTransaction txTo12 = BuildSpendingTransaction(CScript(), txFrom12); CScript goodsig1 = sign_multisig(scriptPubKey12, key1, txTo12); - BOOST_CHECK(VerifyScript(goodsig1, scriptPubKey12, flags, SignatureChecker(txTo12, 0), &err)); + BOOST_CHECK(VerifyScript(goodsig1, scriptPubKey12, flags, MutableTransactionSignatureChecker(txTo12, 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_OK, ScriptErrorString(err)); txTo12.vout[0].nValue = 2; - BOOST_CHECK(!VerifyScript(goodsig1, scriptPubKey12, flags, SignatureChecker(txTo12, 0), &err)); + BOOST_CHECK(!VerifyScript(goodsig1, scriptPubKey12, flags, MutableTransactionSignatureChecker(txTo12, 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_EVAL_FALSE, ScriptErrorString(err)); CScript goodsig2 = sign_multisig(scriptPubKey12, key2, txTo12); - BOOST_CHECK(VerifyScript(goodsig2, scriptPubKey12, flags, SignatureChecker(txTo12, 0), &err)); + BOOST_CHECK(VerifyScript(goodsig2, scriptPubKey12, flags, MutableTransactionSignatureChecker(txTo12, 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_OK, ScriptErrorString(err)); CScript badsig1 = sign_multisig(scriptPubKey12, key3, txTo12); - BOOST_CHECK(!VerifyScript(badsig1, scriptPubKey12, flags, SignatureChecker(txTo12, 0), &err)); + BOOST_CHECK(!VerifyScript(badsig1, scriptPubKey12, flags, MutableTransactionSignatureChecker(txTo12, 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_EVAL_FALSE, ScriptErrorString(err)); } @@ -706,54 +706,54 @@ BOOST_AUTO_TEST_CASE(script_CHECKMULTISIG23) std::vector keys; keys.push_back(key1); keys.push_back(key2); CScript goodsig1 = sign_multisig(scriptPubKey23, keys, txTo23); - BOOST_CHECK(VerifyScript(goodsig1, scriptPubKey23, flags, SignatureChecker(txTo23, 0), &err)); + BOOST_CHECK(VerifyScript(goodsig1, scriptPubKey23, flags, MutableTransactionSignatureChecker(txTo23, 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_OK, ScriptErrorString(err)); keys.clear(); keys.push_back(key1); keys.push_back(key3); CScript goodsig2 = sign_multisig(scriptPubKey23, keys, txTo23); - BOOST_CHECK(VerifyScript(goodsig2, scriptPubKey23, flags, SignatureChecker(txTo23, 0), &err)); + BOOST_CHECK(VerifyScript(goodsig2, scriptPubKey23, flags, MutableTransactionSignatureChecker(txTo23, 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_OK, ScriptErrorString(err)); keys.clear(); keys.push_back(key2); keys.push_back(key3); CScript goodsig3 = sign_multisig(scriptPubKey23, keys, txTo23); - BOOST_CHECK(VerifyScript(goodsig3, scriptPubKey23, flags, SignatureChecker(txTo23, 0), &err)); + BOOST_CHECK(VerifyScript(goodsig3, scriptPubKey23, flags, MutableTransactionSignatureChecker(txTo23, 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_OK, ScriptErrorString(err)); keys.clear(); keys.push_back(key2); keys.push_back(key2); // Can't re-use sig CScript badsig1 = sign_multisig(scriptPubKey23, keys, txTo23); - BOOST_CHECK(!VerifyScript(badsig1, scriptPubKey23, flags, SignatureChecker(txTo23, 0), &err)); + BOOST_CHECK(!VerifyScript(badsig1, scriptPubKey23, flags, MutableTransactionSignatureChecker(txTo23, 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_EVAL_FALSE, ScriptErrorString(err)); keys.clear(); keys.push_back(key2); keys.push_back(key1); // sigs must be in correct order CScript badsig2 = sign_multisig(scriptPubKey23, keys, txTo23); - BOOST_CHECK(!VerifyScript(badsig2, scriptPubKey23, flags, SignatureChecker(txTo23, 0), &err)); + BOOST_CHECK(!VerifyScript(badsig2, scriptPubKey23, flags, MutableTransactionSignatureChecker(txTo23, 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_EVAL_FALSE, ScriptErrorString(err)); keys.clear(); keys.push_back(key3); keys.push_back(key2); // sigs must be in correct order CScript badsig3 = sign_multisig(scriptPubKey23, keys, txTo23); - BOOST_CHECK(!VerifyScript(badsig3, scriptPubKey23, flags, SignatureChecker(txTo23, 0), &err)); + BOOST_CHECK(!VerifyScript(badsig3, scriptPubKey23, flags, MutableTransactionSignatureChecker(txTo23, 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_EVAL_FALSE, ScriptErrorString(err)); keys.clear(); keys.push_back(key4); keys.push_back(key2); // sigs must match pubkeys CScript badsig4 = sign_multisig(scriptPubKey23, keys, txTo23); - BOOST_CHECK(!VerifyScript(badsig4, scriptPubKey23, flags, SignatureChecker(txTo23, 0), &err)); + BOOST_CHECK(!VerifyScript(badsig4, scriptPubKey23, flags, MutableTransactionSignatureChecker(txTo23, 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_EVAL_FALSE, ScriptErrorString(err)); keys.clear(); keys.push_back(key1); keys.push_back(key4); // sigs must match pubkeys CScript badsig5 = sign_multisig(scriptPubKey23, keys, txTo23); - BOOST_CHECK(!VerifyScript(badsig5, scriptPubKey23, flags, SignatureChecker(txTo23, 0), &err)); + BOOST_CHECK(!VerifyScript(badsig5, scriptPubKey23, flags, MutableTransactionSignatureChecker(txTo23, 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_EVAL_FALSE, ScriptErrorString(err)); keys.clear(); // Must have signatures CScript badsig6 = sign_multisig(scriptPubKey23, keys, txTo23); - BOOST_CHECK(!VerifyScript(badsig6, scriptPubKey23, flags, SignatureChecker(txTo23, 0), &err)); + BOOST_CHECK(!VerifyScript(badsig6, scriptPubKey23, flags, MutableTransactionSignatureChecker(txTo23, 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_INVALID_STACK_OPERATION, ScriptErrorString(err)); } diff --git a/src/test/transaction_tests.cpp b/src/test/transaction_tests.cpp index e939e899725..6dfb12e61e0 100644 --- a/src/test/transaction_tests.cpp +++ b/src/test/transaction_tests.cpp @@ -145,7 +145,7 @@ BOOST_AUTO_TEST_CASE(tx_valid) unsigned int verify_flags = ParseScriptFlags(test[2].get_str()); BOOST_CHECK_MESSAGE(VerifyScript(tx.vin[i].scriptSig, mapprevOutScriptPubKeys[tx.vin[i].prevout], - verify_flags, SignatureChecker(tx, i), &err), + verify_flags, TransactionSignatureChecker(tx, i), &err), strTest); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_OK, ScriptErrorString(err)); } @@ -220,7 +220,7 @@ BOOST_AUTO_TEST_CASE(tx_invalid) unsigned int verify_flags = ParseScriptFlags(test[2].get_str()); fValid = VerifyScript(tx.vin[i].scriptSig, mapprevOutScriptPubKeys[tx.vin[i].prevout], - verify_flags, SignatureChecker(tx, i), &err); + verify_flags, TransactionSignatureChecker(tx, i), &err); } BOOST_CHECK_MESSAGE(!fValid, strTest); BOOST_CHECK_MESSAGE(err != SCRIPT_ERR_OK, ScriptErrorString(err)); From 2448d34298c12a8ef6e21788db5e70ffb554d8b2 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Tue, 27 Jan 2015 10:01:31 -0400 Subject: [PATCH 071/201] Avoid storing a reference passed to SignatureChecker constructors Rebased-From: 9fddceda44fb5592be179d783f0e5ac616c51c0d Github-Pull: #5719 --- src/bitcoin-tx.cpp | 2 +- src/main.cpp | 2 +- src/rpcrawtransaction.cpp | 2 +- src/script/bitcoinconsensus.cpp | 2 +- src/script/interpreter.cpp | 2 +- src/script/interpreter.h | 6 +++--- src/script/sigcache.h | 2 +- src/script/sign.cpp | 4 ++-- src/test/multisig_tests.cpp | 16 ++++++++-------- src/test/script_P2SH_tests.cpp | 2 +- src/test/script_tests.cpp | 28 ++++++++++++++-------------- src/test/transaction_tests.cpp | 4 ++-- 12 files changed, 36 insertions(+), 36 deletions(-) diff --git a/src/bitcoin-tx.cpp b/src/bitcoin-tx.cpp index 94fd0fe60a3..c1be1229d3b 100644 --- a/src/bitcoin-tx.cpp +++ b/src/bitcoin-tx.cpp @@ -437,7 +437,7 @@ static void MutateTxSign(CMutableTransaction& tx, const string& flagStr) BOOST_FOREACH(const CTransaction& txv, txVariants) { txin.scriptSig = CombineSignatures(prevPubKey, mergedTx, i, txin.scriptSig, txv.vin[i].scriptSig); } - if (!VerifyScript(txin.scriptSig, prevPubKey, STANDARD_SCRIPT_VERIFY_FLAGS, MutableTransactionSignatureChecker(mergedTx, i))) + if (!VerifyScript(txin.scriptSig, prevPubKey, STANDARD_SCRIPT_VERIFY_FLAGS, MutableTransactionSignatureChecker(&mergedTx, i))) fComplete = false; } diff --git a/src/main.cpp b/src/main.cpp index d5cef779d82..09b0ac7af98 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1400,7 +1400,7 @@ void UpdateCoins(const CTransaction& tx, CValidationState &state, CCoinsViewCach bool CScriptCheck::operator()() { const CScript &scriptSig = ptxTo->vin[nIn].scriptSig; - if (!VerifyScript(scriptSig, scriptPubKey, nFlags, CachingTransactionSignatureChecker(*ptxTo, nIn, cacheStore), &error)) { + if (!VerifyScript(scriptSig, scriptPubKey, nFlags, CachingTransactionSignatureChecker(ptxTo, nIn, cacheStore), &error)) { return ::error("CScriptCheck(): %s:%d VerifySignature failed: %s", ptxTo->GetHash().ToString(), nIn, ScriptErrorString(error)); } return true; diff --git a/src/rpcrawtransaction.cpp b/src/rpcrawtransaction.cpp index 25bc5e8f90d..1b9b1a0e1f3 100644 --- a/src/rpcrawtransaction.cpp +++ b/src/rpcrawtransaction.cpp @@ -690,7 +690,7 @@ Value signrawtransaction(const Array& params, bool fHelp) BOOST_FOREACH(const CMutableTransaction& txv, txVariants) { txin.scriptSig = CombineSignatures(prevPubKey, mergedTx, i, txin.scriptSig, txv.vin[i].scriptSig); } - if (!VerifyScript(txin.scriptSig, prevPubKey, STANDARD_SCRIPT_VERIFY_FLAGS, MutableTransactionSignatureChecker(mergedTx, i))) + if (!VerifyScript(txin.scriptSig, prevPubKey, STANDARD_SCRIPT_VERIFY_FLAGS, MutableTransactionSignatureChecker(&mergedTx, i))) fComplete = false; } diff --git a/src/script/bitcoinconsensus.cpp b/src/script/bitcoinconsensus.cpp index 6e3b0d7e9d4..f0d7e54e77f 100644 --- a/src/script/bitcoinconsensus.cpp +++ b/src/script/bitcoinconsensus.cpp @@ -78,7 +78,7 @@ int bitcoinconsensus_verify_script(const unsigned char *scriptPubKey, unsigned i // Regardless of the verification result, the tx did not error. set_error(err, bitcoinconsensus_ERR_OK); - return VerifyScript(tx.vin[nIn].scriptSig, CScript(scriptPubKey, scriptPubKey + scriptPubKeyLen), flags, TransactionSignatureChecker(tx, nIn), NULL); + return VerifyScript(tx.vin[nIn].scriptSig, CScript(scriptPubKey, scriptPubKey + scriptPubKeyLen), flags, TransactionSignatureChecker(&tx, nIn), NULL); } catch (const std::exception&) { return set_error(err, bitcoinconsensus_ERR_TX_DESERIALIZE); // Error deserializing } diff --git a/src/script/interpreter.cpp b/src/script/interpreter.cpp index 58604de88c0..41a0e1c4907 100644 --- a/src/script/interpreter.cpp +++ b/src/script/interpreter.cpp @@ -1075,7 +1075,7 @@ bool TransactionSignatureChecker::CheckSig(const vector& vchSigIn int nHashType = vchSig.back(); vchSig.pop_back(); - uint256 sighash = SignatureHash(scriptCode, txTo, nIn, nHashType); + uint256 sighash = SignatureHash(scriptCode, *txTo, nIn, nHashType); if (!VerifySignature(vchSig, pubkey, sighash)) return false; diff --git a/src/script/interpreter.h b/src/script/interpreter.h index 7bc919e9fd9..83d44a95895 100644 --- a/src/script/interpreter.h +++ b/src/script/interpreter.h @@ -88,14 +88,14 @@ class BaseSignatureChecker class TransactionSignatureChecker : public BaseSignatureChecker { private: - const CTransaction& txTo; + const CTransaction* txTo; unsigned int nIn; protected: virtual bool VerifySignature(const std::vector& vchSig, const CPubKey& vchPubKey, const uint256& sighash) const; public: - TransactionSignatureChecker(const CTransaction& txToIn, unsigned int nInIn) : txTo(txToIn), nIn(nInIn) {} + TransactionSignatureChecker(const CTransaction* txToIn, unsigned int nInIn) : txTo(txToIn), nIn(nInIn) {} bool CheckSig(const std::vector& scriptSig, const std::vector& vchPubKey, const CScript& scriptCode) const; }; @@ -105,7 +105,7 @@ class MutableTransactionSignatureChecker : public TransactionSignatureChecker const CTransaction txTo; public: - MutableTransactionSignatureChecker(const CMutableTransaction& txToIn, unsigned int nInIn) : TransactionSignatureChecker(txTo, nInIn), txTo(txToIn) {} + MutableTransactionSignatureChecker(const CMutableTransaction* txToIn, unsigned int nInIn) : TransactionSignatureChecker(&txTo, nInIn), txTo(*txToIn) {} }; bool EvalScript(std::vector >& stack, const CScript& script, unsigned int flags, const BaseSignatureChecker& checker, ScriptError* error = NULL); diff --git a/src/script/sigcache.h b/src/script/sigcache.h index 88880476bf6..38b032b67b5 100644 --- a/src/script/sigcache.h +++ b/src/script/sigcache.h @@ -18,7 +18,7 @@ class CachingTransactionSignatureChecker : public TransactionSignatureChecker bool store; public: - CachingTransactionSignatureChecker(const CTransaction& txToIn, unsigned int nInIn, bool storeIn=true) : TransactionSignatureChecker(txToIn, nInIn), store(storeIn) {} + CachingTransactionSignatureChecker(const CTransaction* txToIn, unsigned int nInIn, bool storeIn=true) : TransactionSignatureChecker(txToIn, nInIn), store(storeIn) {} bool VerifySignature(const std::vector& vchSig, const CPubKey& vchPubKey, const uint256& sighash) const; }; diff --git a/src/script/sign.cpp b/src/script/sign.cpp index 377a2af16c1..b6a441a798d 100644 --- a/src/script/sign.cpp +++ b/src/script/sign.cpp @@ -123,7 +123,7 @@ bool SignSignature(const CKeyStore &keystore, const CScript& fromPubKey, CMutabl } // Test solution - return VerifyScript(txin.scriptSig, fromPubKey, STANDARD_SCRIPT_VERIFY_FLAGS, MutableTransactionSignatureChecker(txTo, nIn)); + return VerifyScript(txin.scriptSig, fromPubKey, STANDARD_SCRIPT_VERIFY_FLAGS, MutableTransactionSignatureChecker(&txTo, nIn)); } bool SignSignature(const CKeyStore &keystore, const CTransaction& txFrom, CMutableTransaction& txTo, unsigned int nIn, int nHashType) @@ -174,7 +174,7 @@ static CScript CombineMultisig(const CScript& scriptPubKey, const CTransaction& if (sigs.count(pubkey)) continue; // Already got a sig for this pubkey - if (TransactionSignatureChecker(txTo, nIn).CheckSig(sig, pubkey, scriptPubKey)) + if (TransactionSignatureChecker(&txTo, nIn).CheckSig(sig, pubkey, scriptPubKey)) { sigs[pubkey] = sig; break; diff --git a/src/test/multisig_tests.cpp b/src/test/multisig_tests.cpp index ff4b523f4e2..0b5402f2fd2 100644 --- a/src/test/multisig_tests.cpp +++ b/src/test/multisig_tests.cpp @@ -84,7 +84,7 @@ BOOST_AUTO_TEST_CASE(multisig_verify) keys.clear(); keys += key[0],key[1]; // magic operator+= from boost.assign s = sign_multisig(a_and_b, keys, txTo[0], 0); - BOOST_CHECK(VerifyScript(s, a_and_b, flags, MutableTransactionSignatureChecker(txTo[0], 0), &err)); + BOOST_CHECK(VerifyScript(s, a_and_b, flags, MutableTransactionSignatureChecker(&txTo[0], 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_OK, ScriptErrorString(err)); for (int i = 0; i < 4; i++) @@ -92,13 +92,13 @@ BOOST_AUTO_TEST_CASE(multisig_verify) keys.clear(); keys += key[i]; s = sign_multisig(a_and_b, keys, txTo[0], 0); - BOOST_CHECK_MESSAGE(!VerifyScript(s, a_and_b, flags, MutableTransactionSignatureChecker(txTo[0], 0), &err), strprintf("a&b 1: %d", i)); + BOOST_CHECK_MESSAGE(!VerifyScript(s, a_and_b, flags, MutableTransactionSignatureChecker(&txTo[0], 0), &err), strprintf("a&b 1: %d", i)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_INVALID_STACK_OPERATION, ScriptErrorString(err)); keys.clear(); keys += key[1],key[i]; s = sign_multisig(a_and_b, keys, txTo[0], 0); - BOOST_CHECK_MESSAGE(!VerifyScript(s, a_and_b, flags, MutableTransactionSignatureChecker(txTo[0], 0), &err), strprintf("a&b 2: %d", i)); + BOOST_CHECK_MESSAGE(!VerifyScript(s, a_and_b, flags, MutableTransactionSignatureChecker(&txTo[0], 0), &err), strprintf("a&b 2: %d", i)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_EVAL_FALSE, ScriptErrorString(err)); } @@ -110,18 +110,18 @@ BOOST_AUTO_TEST_CASE(multisig_verify) s = sign_multisig(a_or_b, keys, txTo[1], 0); if (i == 0 || i == 1) { - BOOST_CHECK_MESSAGE(VerifyScript(s, a_or_b, flags, MutableTransactionSignatureChecker(txTo[1], 0), &err), strprintf("a|b: %d", i)); + BOOST_CHECK_MESSAGE(VerifyScript(s, a_or_b, flags, MutableTransactionSignatureChecker(&txTo[1], 0), &err), strprintf("a|b: %d", i)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_OK, ScriptErrorString(err)); } else { - BOOST_CHECK_MESSAGE(!VerifyScript(s, a_or_b, flags, MutableTransactionSignatureChecker(txTo[1], 0), &err), strprintf("a|b: %d", i)); + BOOST_CHECK_MESSAGE(!VerifyScript(s, a_or_b, flags, MutableTransactionSignatureChecker(&txTo[1], 0), &err), strprintf("a|b: %d", i)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_EVAL_FALSE, ScriptErrorString(err)); } } s.clear(); s << OP_0 << OP_1; - BOOST_CHECK(!VerifyScript(s, a_or_b, flags, MutableTransactionSignatureChecker(txTo[1], 0), &err)); + BOOST_CHECK(!VerifyScript(s, a_or_b, flags, MutableTransactionSignatureChecker(&txTo[1], 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_SIG_DER, ScriptErrorString(err)); @@ -133,12 +133,12 @@ BOOST_AUTO_TEST_CASE(multisig_verify) s = sign_multisig(escrow, keys, txTo[2], 0); if (i < j && i < 3 && j < 3) { - BOOST_CHECK_MESSAGE(VerifyScript(s, escrow, flags, MutableTransactionSignatureChecker(txTo[2], 0), &err), strprintf("escrow 1: %d %d", i, j)); + BOOST_CHECK_MESSAGE(VerifyScript(s, escrow, flags, MutableTransactionSignatureChecker(&txTo[2], 0), &err), strprintf("escrow 1: %d %d", i, j)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_OK, ScriptErrorString(err)); } else { - BOOST_CHECK_MESSAGE(!VerifyScript(s, escrow, flags, MutableTransactionSignatureChecker(txTo[2], 0), &err), strprintf("escrow 2: %d %d", i, j)); + BOOST_CHECK_MESSAGE(!VerifyScript(s, escrow, flags, MutableTransactionSignatureChecker(&txTo[2], 0), &err), strprintf("escrow 2: %d %d", i, j)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_EVAL_FALSE, ScriptErrorString(err)); } } diff --git a/src/test/script_P2SH_tests.cpp b/src/test/script_P2SH_tests.cpp index 0cd4165c063..bc40fd1b971 100644 --- a/src/test/script_P2SH_tests.cpp +++ b/src/test/script_P2SH_tests.cpp @@ -43,7 +43,7 @@ Verify(const CScript& scriptSig, const CScript& scriptPubKey, bool fStrict, Scri txTo.vin[0].scriptSig = scriptSig; txTo.vout[0].nValue = 1; - return VerifyScript(scriptSig, scriptPubKey, fStrict ? SCRIPT_VERIFY_P2SH : SCRIPT_VERIFY_NONE, MutableTransactionSignatureChecker(txTo, 0), &err); + return VerifyScript(scriptSig, scriptPubKey, fStrict ? SCRIPT_VERIFY_P2SH : SCRIPT_VERIFY_NONE, MutableTransactionSignatureChecker(&txTo, 0), &err); } diff --git a/src/test/script_tests.cpp b/src/test/script_tests.cpp index 315f9170cf8..1772a703225 100644 --- a/src/test/script_tests.cpp +++ b/src/test/script_tests.cpp @@ -100,7 +100,7 @@ void DoTest(const CScript& scriptPubKey, const CScript& scriptSig, int flags, bo ScriptError err; CMutableTransaction tx = BuildSpendingTransaction(scriptSig, BuildCreditingTransaction(scriptPubKey)); CMutableTransaction tx2 = tx; - BOOST_CHECK_MESSAGE(VerifyScript(scriptSig, scriptPubKey, flags, MutableTransactionSignatureChecker(tx, 0), &err) == expect, message); + BOOST_CHECK_MESSAGE(VerifyScript(scriptSig, scriptPubKey, flags, MutableTransactionSignatureChecker(&tx, 0), &err) == expect, message); BOOST_CHECK_MESSAGE(expect == (err == SCRIPT_ERR_OK), std::string(ScriptErrorString(err)) + ": " + message); #if defined(HAVE_CONSENSUS_LIB) CDataStream stream(SER_NETWORK, PROTOCOL_VERSION); @@ -673,18 +673,18 @@ BOOST_AUTO_TEST_CASE(script_CHECKMULTISIG12) CMutableTransaction txTo12 = BuildSpendingTransaction(CScript(), txFrom12); CScript goodsig1 = sign_multisig(scriptPubKey12, key1, txTo12); - BOOST_CHECK(VerifyScript(goodsig1, scriptPubKey12, flags, MutableTransactionSignatureChecker(txTo12, 0), &err)); + BOOST_CHECK(VerifyScript(goodsig1, scriptPubKey12, flags, MutableTransactionSignatureChecker(&txTo12, 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_OK, ScriptErrorString(err)); txTo12.vout[0].nValue = 2; - BOOST_CHECK(!VerifyScript(goodsig1, scriptPubKey12, flags, MutableTransactionSignatureChecker(txTo12, 0), &err)); + BOOST_CHECK(!VerifyScript(goodsig1, scriptPubKey12, flags, MutableTransactionSignatureChecker(&txTo12, 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_EVAL_FALSE, ScriptErrorString(err)); CScript goodsig2 = sign_multisig(scriptPubKey12, key2, txTo12); - BOOST_CHECK(VerifyScript(goodsig2, scriptPubKey12, flags, MutableTransactionSignatureChecker(txTo12, 0), &err)); + BOOST_CHECK(VerifyScript(goodsig2, scriptPubKey12, flags, MutableTransactionSignatureChecker(&txTo12, 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_OK, ScriptErrorString(err)); CScript badsig1 = sign_multisig(scriptPubKey12, key3, txTo12); - BOOST_CHECK(!VerifyScript(badsig1, scriptPubKey12, flags, MutableTransactionSignatureChecker(txTo12, 0), &err)); + BOOST_CHECK(!VerifyScript(badsig1, scriptPubKey12, flags, MutableTransactionSignatureChecker(&txTo12, 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_EVAL_FALSE, ScriptErrorString(err)); } @@ -706,54 +706,54 @@ BOOST_AUTO_TEST_CASE(script_CHECKMULTISIG23) std::vector keys; keys.push_back(key1); keys.push_back(key2); CScript goodsig1 = sign_multisig(scriptPubKey23, keys, txTo23); - BOOST_CHECK(VerifyScript(goodsig1, scriptPubKey23, flags, MutableTransactionSignatureChecker(txTo23, 0), &err)); + BOOST_CHECK(VerifyScript(goodsig1, scriptPubKey23, flags, MutableTransactionSignatureChecker(&txTo23, 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_OK, ScriptErrorString(err)); keys.clear(); keys.push_back(key1); keys.push_back(key3); CScript goodsig2 = sign_multisig(scriptPubKey23, keys, txTo23); - BOOST_CHECK(VerifyScript(goodsig2, scriptPubKey23, flags, MutableTransactionSignatureChecker(txTo23, 0), &err)); + BOOST_CHECK(VerifyScript(goodsig2, scriptPubKey23, flags, MutableTransactionSignatureChecker(&txTo23, 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_OK, ScriptErrorString(err)); keys.clear(); keys.push_back(key2); keys.push_back(key3); CScript goodsig3 = sign_multisig(scriptPubKey23, keys, txTo23); - BOOST_CHECK(VerifyScript(goodsig3, scriptPubKey23, flags, MutableTransactionSignatureChecker(txTo23, 0), &err)); + BOOST_CHECK(VerifyScript(goodsig3, scriptPubKey23, flags, MutableTransactionSignatureChecker(&txTo23, 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_OK, ScriptErrorString(err)); keys.clear(); keys.push_back(key2); keys.push_back(key2); // Can't re-use sig CScript badsig1 = sign_multisig(scriptPubKey23, keys, txTo23); - BOOST_CHECK(!VerifyScript(badsig1, scriptPubKey23, flags, MutableTransactionSignatureChecker(txTo23, 0), &err)); + BOOST_CHECK(!VerifyScript(badsig1, scriptPubKey23, flags, MutableTransactionSignatureChecker(&txTo23, 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_EVAL_FALSE, ScriptErrorString(err)); keys.clear(); keys.push_back(key2); keys.push_back(key1); // sigs must be in correct order CScript badsig2 = sign_multisig(scriptPubKey23, keys, txTo23); - BOOST_CHECK(!VerifyScript(badsig2, scriptPubKey23, flags, MutableTransactionSignatureChecker(txTo23, 0), &err)); + BOOST_CHECK(!VerifyScript(badsig2, scriptPubKey23, flags, MutableTransactionSignatureChecker(&txTo23, 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_EVAL_FALSE, ScriptErrorString(err)); keys.clear(); keys.push_back(key3); keys.push_back(key2); // sigs must be in correct order CScript badsig3 = sign_multisig(scriptPubKey23, keys, txTo23); - BOOST_CHECK(!VerifyScript(badsig3, scriptPubKey23, flags, MutableTransactionSignatureChecker(txTo23, 0), &err)); + BOOST_CHECK(!VerifyScript(badsig3, scriptPubKey23, flags, MutableTransactionSignatureChecker(&txTo23, 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_EVAL_FALSE, ScriptErrorString(err)); keys.clear(); keys.push_back(key4); keys.push_back(key2); // sigs must match pubkeys CScript badsig4 = sign_multisig(scriptPubKey23, keys, txTo23); - BOOST_CHECK(!VerifyScript(badsig4, scriptPubKey23, flags, MutableTransactionSignatureChecker(txTo23, 0), &err)); + BOOST_CHECK(!VerifyScript(badsig4, scriptPubKey23, flags, MutableTransactionSignatureChecker(&txTo23, 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_EVAL_FALSE, ScriptErrorString(err)); keys.clear(); keys.push_back(key1); keys.push_back(key4); // sigs must match pubkeys CScript badsig5 = sign_multisig(scriptPubKey23, keys, txTo23); - BOOST_CHECK(!VerifyScript(badsig5, scriptPubKey23, flags, MutableTransactionSignatureChecker(txTo23, 0), &err)); + BOOST_CHECK(!VerifyScript(badsig5, scriptPubKey23, flags, MutableTransactionSignatureChecker(&txTo23, 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_EVAL_FALSE, ScriptErrorString(err)); keys.clear(); // Must have signatures CScript badsig6 = sign_multisig(scriptPubKey23, keys, txTo23); - BOOST_CHECK(!VerifyScript(badsig6, scriptPubKey23, flags, MutableTransactionSignatureChecker(txTo23, 0), &err)); + BOOST_CHECK(!VerifyScript(badsig6, scriptPubKey23, flags, MutableTransactionSignatureChecker(&txTo23, 0), &err)); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_INVALID_STACK_OPERATION, ScriptErrorString(err)); } diff --git a/src/test/transaction_tests.cpp b/src/test/transaction_tests.cpp index 6dfb12e61e0..519ce6c3194 100644 --- a/src/test/transaction_tests.cpp +++ b/src/test/transaction_tests.cpp @@ -145,7 +145,7 @@ BOOST_AUTO_TEST_CASE(tx_valid) unsigned int verify_flags = ParseScriptFlags(test[2].get_str()); BOOST_CHECK_MESSAGE(VerifyScript(tx.vin[i].scriptSig, mapprevOutScriptPubKeys[tx.vin[i].prevout], - verify_flags, TransactionSignatureChecker(tx, i), &err), + verify_flags, TransactionSignatureChecker(&tx, i), &err), strTest); BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_OK, ScriptErrorString(err)); } @@ -220,7 +220,7 @@ BOOST_AUTO_TEST_CASE(tx_invalid) unsigned int verify_flags = ParseScriptFlags(test[2].get_str()); fValid = VerifyScript(tx.vin[i].scriptSig, mapprevOutScriptPubKeys[tx.vin[i].prevout], - verify_flags, TransactionSignatureChecker(tx, i), &err); + verify_flags, TransactionSignatureChecker(&tx, i), &err); } BOOST_CHECK_MESSAGE(!fValid, strTest); BOOST_CHECK_MESSAGE(err != SCRIPT_ERR_OK, ScriptErrorString(err)); From b6347bf8138395117fa6d3a753c8aa266b05ada0 Mon Sep 17 00:00:00 2001 From: Alex Morcos Date: Fri, 16 Jan 2015 12:17:57 -0500 Subject: [PATCH 072/201] Fix priority calculation in CreateTransaction Make this projection of priority in 1 block match the calculation in the low priority reject code. Rebased-From: 2d9b0b7f03a268e557c6dce1dfa29401b5c9178b Github-Pull: #5675 --- src/wallet.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/wallet.cpp b/src/wallet.cpp index dd87fab44b1..abdeed8f576 100644 --- a/src/wallet.cpp +++ b/src/wallet.cpp @@ -1418,10 +1418,14 @@ bool CWallet::CreateTransaction(const vector >& vecSend, BOOST_FOREACH(PAIRTYPE(const CWalletTx*, unsigned int) pcoin, setCoins) { CAmount nCredit = pcoin.first->vout[pcoin.second].nValue; - //The priority after the next block (depth+1) is used instead of the current, + //The coin age after the next block (depth+1) is used instead of the current, //reflecting an assumption the user would accept a bit more delay for //a chance at a free transaction. - dPriority += (double)nCredit * (pcoin.first->GetDepthInMainChain()+1); + //But mempool inputs might still be in the mempool, so their age stays 0 + int age = pcoin.first->GetDepthInMainChain(); + if (age != 0) + age += 1; + dPriority += (double)nCredit * age; } CAmount nChange = nValueIn - nValue - nFeeRet; From 1eb14af28f6fb24f5fd22a233d4f5d62b97b6be9 Mon Sep 17 00:00:00 2001 From: Gregory Maxwell Date: Mon, 12 Jan 2015 09:53:10 -0800 Subject: [PATCH 073/201] Increase block download timeout base from 10 to 20 minutes. This harmonizes the block fetch timeout with the existing ping timeout and eliminates a guaranteed eventual failure from congestion collapse for a network operating right at its limit. It's unlikely that we wouldn't suffer other failures if we were really anywhere near the network's limit, and a complete avoidance of congestion collapse risk requires (I think) an exponential back-off. So this isn't a major concern, but I think it's also useful for reducing the complexity of understanding out timeouts. Github-Pull: #5647 Rebased-From: 3ff735c99ae75c21397079f49859b81e89a2f5f8 --- src/main.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index a7d9391cd9f..4a95bb11565 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4516,12 +4516,12 @@ bool SendMessages(CNode* pto, bool fSendTrickle) LogPrintf("Peer=%d is stalling block download, disconnecting\n", pto->id); pto->fDisconnect = true; } - // In case there is a block that has been in flight from this peer for (1 + 0.5 * N) times the block interval + // In case there is a block that has been in flight from this peer for (2 + 0.5 * N) times the block interval // (with N the number of validated blocks that were in flight at the time it was requested), disconnect due to // timeout. We compensate for in-flight blocks to prevent killing off peers due to our own downstream link // being saturated. We only count validated in-flight blocks so peers can't advertize nonexisting block hashes // to unreasonably increase our timeout. - if (!pto->fDisconnect && state.vBlocksInFlight.size() > 0 && state.vBlocksInFlight.front().nTime < nNow - 500000 * Params().TargetSpacing() * (2 + state.vBlocksInFlight.front().nValidatedQueuedBefore)) { + if (!pto->fDisconnect && state.vBlocksInFlight.size() > 0 && state.vBlocksInFlight.front().nTime < nNow - 500000 * Params().TargetSpacing() * (4 + state.vBlocksInFlight.front().nValidatedQueuedBefore)) { LogPrintf("Timeout downloading block %s from peer=%d, disconnecting\n", state.vBlocksInFlight.front().hash.ToString(), pto->id); pto->fDisconnect = true; } From 63efb366727eb8890ccdd42d5b8f61b673ad8f56 Mon Sep 17 00:00:00 2001 From: Alex Morcos Date: Wed, 4 Feb 2015 11:03:32 -0500 Subject: [PATCH 074/201] Modify release-notes for changes related to free tranactions Add comment about free transactions no longer being the default Inform about the relay policy change --- doc/release-notes.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index fba67fa1cf8..53a022840c6 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -79,7 +79,8 @@ 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. +confirmation times. Fees are added by default unless the 'sendfreetransactions' +setting is enabled. Prior releases used hard-coded fees (and priorities), and would sometimes create transactions that took a very long time to confirm. @@ -88,10 +89,12 @@ 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 for fee estimation: +New command line options for transaction fee changes: - `-txconfirmtarget=n` : create transactions that have enough fees (or priority) so they are likely to begin confirmation within n blocks (default: 1). This setting is over-ridden by the -paytxfee option. +- `-sendfreetransactions` : Send transactions as zero-fee transactions if possible +(default: 0) New RPC commands for fee estimation: - `estimatefee nblocks` : Returns approximate fee-per-1,000-bytes needed for @@ -273,7 +276,7 @@ server round-trip to execute. Other utilities "bitcoin-key" and "bitcoin-script" have been proposed, making key and script operations easily accessible via command line. -Mining enhancements +Mining and relay policy enhancements ------------------- The `prioritisetransaction` RPC method has been added to enable miners to @@ -293,6 +296,11 @@ if this is 1. - `-datacarriersize=n` : Maximum size, in bytes, we consider acceptable for "data carrier" outputs. +The relay policy has changed to more properly implement the desired behavior of not +relaying free (or very low fee) transactions unless they have a priority above the +AllowFreeThreshold(), in which case they are relayed subject to the rate limiter. + + 0.10.0 Change log ================= From e43f25c5b1c7b38d28cd0fba09098a9d56d9ac6b Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Wed, 4 Feb 2015 10:27:48 -0800 Subject: [PATCH 075/201] Add BIP 66 notice to the 0.10 release notes. Conflicts: doc/release-notes.md Rebased-From: 04ca082dd9c1d4221af65d945a66b87e66058f92 Github-Pull: #5757 --- doc/release-notes.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/doc/release-notes.md b/doc/release-notes.md index 53a022840c6..b70d7eb96de 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -300,6 +300,22 @@ The relay policy has changed to more properly implement the desired behavior of relaying free (or very low fee) transactions unless they have a priority above the AllowFreeThreshold(), in which case they are relayed subject to the rate limiter. +BIP 66: strict DER encoding for signatures +------------------------------------------ + +Bitcoin Core 0.10 implements BIP 66, which introduces block version 3, and a new +consensus rule, which prohibits non-DER signatures. Such transactions have been +non-standard since Bitcoin v0.8.0 (released in February 2013), but were +technically still permitted inside blocks. + +This change breaks the dependency on OpenSSL's signature parsing, and is +required if implementations would want to remove all of OpenSSL from the +consensus code. + +The same miner-voting mechanism as in BIP 34 is used: when 751 out of a +sequence of 1001 blocks have version number 3 or higher, the new consensus +rule becomes active for those blocks. When 951 out of a sequence of 1001 +blocks have version number 3 or higher, it becomes mandatory for all blocks. 0.10.0 Change log ================= From 7b6c847f67e96bfc672e48a49ce7bc0510439492 Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Sun, 8 Feb 2015 09:24:35 +0000 Subject: [PATCH 076/201] doc/release-notes.md: Explain affect of BIP66 on miners --- doc/release-notes.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index b70d7eb96de..986b8832ec1 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -277,7 +277,17 @@ Other utilities "bitcoin-key" and "bitcoin-script" have been proposed, making key and script operations easily accessible via command line. Mining and relay policy enhancements -------------------- +------------------------------------ + +Bitcoin Core's block templates are now for version 3 blocks only, and any mining +software relying on its `getblocktemplate` must be updated in parallel to use +libblkmaker either version 0.4.2 or any version from 0.5.1 onward. +If you are solo mining, this will affect you the moment you upgrade Bitcoin +Core, which must be done prior to BIP66 achieving its 951/1001 status. +If you are mining with the stratum mining protocol: this does not affect you. +If you are mining with the getblocktemplate protocol to a pool: this will affect +you at the pool operator's discretion, which must be no later than BIP66 +achieving its 951/1001 status. The `prioritisetransaction` RPC method has been added to enable miners to manipulate the priority of transactions on an individual basis. @@ -317,6 +327,9 @@ sequence of 1001 blocks have version number 3 or higher, the new consensus rule becomes active for those blocks. When 951 out of a sequence of 1001 blocks have version number 3 or higher, it becomes mandatory for all blocks. +Backward compatibility with current mining software is NOT provided, thus miners +should read the first paragraph of "Mining and relay policy enhancements" above. + 0.10.0 Change log ================= From 047a89831760ff124740fe9f58411d57ee087078 Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Thu, 12 Feb 2015 17:07:13 -0500 Subject: [PATCH 077/201] gitian: don't add . to tar list Since permissions and timestamps are changed for the sake of determinism, . must not be added to the archive. Otherwise, tar may try to modify pwd when extracting. Rebased-From: 0c6ab676ee7d2071d48775d81116c86dacc6abf6 Github-Pull: #5790 --- contrib/gitian-descriptors/gitian-linux.yml | 2 +- contrib/gitian-descriptors/gitian-osx.yml | 2 +- contrib/gitian-descriptors/gitian-win.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/contrib/gitian-descriptors/gitian-linux.yml b/contrib/gitian-descriptors/gitian-linux.yml index 28bd9211acd..80de6770c5f 100644 --- a/contrib/gitian-descriptors/gitian-linux.yml +++ b/contrib/gitian-descriptors/gitian-linux.yml @@ -99,7 +99,7 @@ script: | find . -name "lib*.la" -delete find . -name "lib*.a" -delete rm -rf ${DISTNAME}/lib/pkgconfig - find . | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ${OUTDIR}/${DISTNAME}-${i}.tar.gz + find ${DISTNAME} | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ${OUTDIR}/${DISTNAME}-${i}.tar.gz cd ../../ done mkdir -p $OUTDIR/src diff --git a/contrib/gitian-descriptors/gitian-osx.yml b/contrib/gitian-descriptors/gitian-osx.yml index 4f05aad2335..c09786a56ce 100644 --- a/contrib/gitian-descriptors/gitian-osx.yml +++ b/contrib/gitian-descriptors/gitian-osx.yml @@ -126,7 +126,7 @@ script: | find . -name "lib*.la" -delete find . -name "lib*.a" -delete rm -rf ${DISTNAME}/lib/pkgconfig - find . | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ${OUTDIR}/${DISTNAME}-${i}.tar.gz + find ${DISTNAME} | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ${OUTDIR}/${DISTNAME}-${i}.tar.gz cd ../../ done mkdir -p $OUTDIR/src diff --git a/contrib/gitian-descriptors/gitian-win.yml b/contrib/gitian-descriptors/gitian-win.yml index 4baa08c88da..f0459ee9461 100644 --- a/contrib/gitian-descriptors/gitian-win.yml +++ b/contrib/gitian-descriptors/gitian-win.yml @@ -106,7 +106,7 @@ script: | find . -name "lib*.la" -delete find . -name "lib*.a" -delete rm -rf ${DISTNAME}/lib/pkgconfig - find . -type f | sort | zip -X@ ${OUTDIR}/${DISTNAME}-${i}.zip + find ${DISTNAME} -type f | sort | zip -X@ ${OUTDIR}/${DISTNAME}-${i}.zip cd ../.. done mkdir -p $OUTDIR/src From 7f502be2598af1cbe5b04776985e0da9bcaebe21 Mon Sep 17 00:00:00 2001 From: fsb4000 Date: Sun, 25 Jan 2015 18:11:57 +0600 Subject: [PATCH 078/201] fix crash: createmultisig and addmultisigaddress Rebased-From: e5d9d77df2de715d24638e3bab78750b7ad3e1fd Github-Pull: #5706 --- src/rpcmisc.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/rpcmisc.cpp b/src/rpcmisc.cpp index 90b9c99caa0..5842f6a2dab 100644 --- a/src/rpcmisc.cpp +++ b/src/rpcmisc.cpp @@ -213,6 +213,8 @@ CScript _createmultisig_redeemScript(const Array& params) throw runtime_error( strprintf("not enough keys supplied " "(got %u keys, but need at least %d to redeem)", keys.size(), nRequired)); + if (keys.size() > 16) + throw runtime_error("Number of addresses involved in the multisignature address creation > 16\nReduce the number"); std::vector pubkeys; pubkeys.resize(keys.size()); for (unsigned int i = 0; i < keys.size(); i++) From d148f62e00612fdd9aa44aa1d891b03e131918c8 Mon Sep 17 00:00:00 2001 From: Suhas Daftuar Date: Wed, 28 Jan 2015 13:48:36 -0500 Subject: [PATCH 079/201] Acquire CCheckQueue's lock to avoid race condition This fixes a potential race condition in the CCheckQueueControl constructor, which was looking directly at data in CCheckQueue without acquiring its lock. Remove the now-unnecessary friendship for CCheckQueueControl Rebased-From: cf008ac8c3c5d582562d88ad89020daef3e64dcb Github-Pull: #5721 --- src/checkqueue.h | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/checkqueue.h b/src/checkqueue.h index 2ee46a1210a..b27f9e3d171 100644 --- a/src/checkqueue.h +++ b/src/checkqueue.h @@ -161,7 +161,12 @@ class CCheckQueue { } - friend class CCheckQueueControl; + bool IsIdle() + { + boost::unique_lock lock(mutex); + return (nTotal == nIdle && nTodo == 0 && fAllOk == true); + } + }; /** @@ -180,9 +185,8 @@ class CCheckQueueControl { // passed queue is supposed to be unused, or NULL if (pqueue != NULL) { - assert(pqueue->nTotal == pqueue->nIdle); - assert(pqueue->nTodo == 0); - assert(pqueue->fAllOk == true); + bool isIdle = pqueue->IsIdle(); + assert(isIdle); } } From 23126a0a09c26486937c18f75f7701b416ee20af Mon Sep 17 00:00:00 2001 From: Gregory Maxwell Date: Sun, 8 Feb 2015 00:59:58 +0000 Subject: [PATCH 080/201] Sanitize command strings before logging them. Normally bitcoin core does not display any network originated strings without sanitizing or hex encoding. This wasn't done for strcommand in many places. This could be used to play havoc with a terminal displaying the logs, especially with printtoconsole in use. Thanks to Evil-Knievel for reporting this issue. Conflicts: src/main.cpp --- src/main.cpp | 16 ++++++++-------- src/net.cpp | 2 +- src/rpcserver.cpp | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 4a95bb11565..ce7c1277adf 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3422,7 +3422,7 @@ void static ProcessGetData(CNode* pfrom) bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, int64_t nTimeReceived) { RandAddSeedPerfmon(); - LogPrint("net", "received: %s (%u bytes) peer=%d\n", strCommand, vRecv.size(), pfrom->id); + LogPrint("net", "received: %s (%u bytes) peer=%d\n", SanitizeString(strCommand), vRecv.size(), pfrom->id); if (mapArgs.count("-dropmessagestest") && GetRand(atoi(mapArgs["-dropmessagestest"])) == 0) { LogPrintf("dropmessagestest DROPPING RECV MESSAGE\n"); @@ -4255,7 +4255,7 @@ bool ProcessMessages(CNode* pfrom) // Scan for message start if (memcmp(msg.hdr.pchMessageStart, Params().MessageStart(), MESSAGE_START_SIZE) != 0) { - LogPrintf("PROCESSMESSAGE: INVALID MESSAGESTART %s peer=%d\n", msg.hdr.GetCommand(), pfrom->id); + LogPrintf("PROCESSMESSAGE: INVALID MESSAGESTART %s peer=%d\n", SanitizeString(msg.hdr.GetCommand()), pfrom->id); fOk = false; break; } @@ -4264,7 +4264,7 @@ bool ProcessMessages(CNode* pfrom) CMessageHeader& hdr = msg.hdr; if (!hdr.IsValid()) { - LogPrintf("PROCESSMESSAGE: ERRORS IN HEADER %s peer=%d\n", hdr.GetCommand(), pfrom->id); + LogPrintf("PROCESSMESSAGE: ERRORS IN HEADER %s peer=%d\n", SanitizeString(hdr.GetCommand()), pfrom->id); continue; } string strCommand = hdr.GetCommand(); @@ -4279,8 +4279,8 @@ bool ProcessMessages(CNode* pfrom) memcpy(&nChecksum, &hash, sizeof(nChecksum)); if (nChecksum != hdr.nChecksum) { - LogPrintf("ProcessMessages(%s, %u bytes) : CHECKSUM ERROR nChecksum=%08x hdr.nChecksum=%08x\n", - strCommand, nMessageSize, nChecksum, hdr.nChecksum); + LogPrintf("ProcessMessages(%s, %u bytes): CHECKSUM ERROR nChecksum=%08x hdr.nChecksum=%08x\n", + SanitizeString(strCommand), nMessageSize, nChecksum, hdr.nChecksum); continue; } @@ -4297,12 +4297,12 @@ bool ProcessMessages(CNode* pfrom) if (strstr(e.what(), "end of data")) { // Allow exceptions from under-length message on vRecv - LogPrintf("ProcessMessages(%s, %u bytes) : Exception '%s' caught, normally caused by a message being shorter than its stated length\n", strCommand, nMessageSize, e.what()); + LogPrintf("ProcessMessages(%s, %u bytes): Exception '%s' caught, normally caused by a message being shorter than its stated length\n", SanitizeString(strCommand), nMessageSize, e.what()); } else if (strstr(e.what(), "size too large")) { // Allow exceptions from over-long size - LogPrintf("ProcessMessages(%s, %u bytes) : Exception '%s' caught\n", strCommand, nMessageSize, e.what()); + LogPrintf("ProcessMessages(%s, %u bytes): Exception '%s' caught\n", SanitizeString(strCommand), nMessageSize, e.what()); } else { @@ -4319,7 +4319,7 @@ bool ProcessMessages(CNode* pfrom) } if (!fRet) - LogPrintf("ProcessMessage(%s, %u bytes) FAILED peer=%d\n", strCommand, nMessageSize, pfrom->id); + LogPrintf("ProcessMessage(%s, %u bytes) FAILED peer=%d\n", SanitizeString(strCommand), nMessageSize, pfrom->id); break; } diff --git a/src/net.cpp b/src/net.cpp index 42b3c30fb77..5c8ff79702a 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -2021,7 +2021,7 @@ void CNode::BeginMessage(const char* pszCommand) EXCLUSIVE_LOCK_FUNCTION(cs_vSen ENTER_CRITICAL_SECTION(cs_vSend); assert(ssSend.size() == 0); ssSend << CMessageHeader(pszCommand, 0); - LogPrint("net", "sending: %s ", pszCommand); + LogPrint("net", "sending: %s ", SanitizeString(pszCommand)); } void CNode::AbortMessage() UNLOCK_FUNCTION(cs_vSend) diff --git a/src/rpcserver.cpp b/src/rpcserver.cpp index 6db2b0421fb..37e4f48a3da 100644 --- a/src/rpcserver.cpp +++ b/src/rpcserver.cpp @@ -820,7 +820,7 @@ void JSONRequest::parse(const Value& valRequest) throw JSONRPCError(RPC_INVALID_REQUEST, "Method must be a string"); strMethod = valMethod.get_str(); if (strMethod != "getblocktemplate") - LogPrint("rpc", "ThreadRPCServer method=%s\n", strMethod); + LogPrint("rpc", "ThreadRPCServer method=%s\n", SanitizeString(strMethod)); // Parse params Value valParams = find_value(request, "params"); From aeb92792281b4cb9958f3defc9e36f63e65b778a Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Tue, 24 Feb 2015 04:27:25 -0800 Subject: [PATCH 081/201] Better fingerprinting protection for non-main-chain getdatas. With headers-first we can compare against the best header timestamp, rather than using checkpoints which require code updates to maintain. Rebased-From: 85da07a5a001a563488382435202b74a3e3e964a Github-Pull: #5820 --- src/main.cpp | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index ce7c1277adf..d77eb2877e1 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3312,19 +3312,17 @@ void static ProcessGetData(CNode* pfrom) BlockMap::iterator mi = mapBlockIndex.find(inv.hash); if (mi != mapBlockIndex.end()) { - // If the requested block is at a height below our last - // checkpoint, only serve it if it's in the checkpointed chain - int nHeight = mi->second->nHeight; - CBlockIndex* pcheckpoint = Checkpoints::GetLastCheckpoint(); - if (pcheckpoint && nHeight < pcheckpoint->nHeight) { - if (!chainActive.Contains(mi->second)) - { - LogPrintf("ProcessGetData(): ignoring request for old block that isn't in the main chain\n"); - } else { - send = true; - } - } else { + if (chainActive.Contains(mi->second)) { send = true; + } else { + // To prevent fingerprinting attacks, only send blocks outside of the active + // chain if they are valid, and no more than a month older than the best header + // chain we know about. + send = mi->second->IsValid(BLOCK_VALID_SCRIPTS) && (pindexBestHeader != NULL) && + (mi->second->GetBlockTime() > pindexBestHeader->GetBlockTime() - 30 * 24 * 60 * 60); + if (!send) { + LogPrintf("ProcessGetData(): ignoring request from peer=%i for old block that isn't in the main chain\n", pfrom->GetId()); + } } } if (send) From 786cf72c7ff5d4042e7a7d010e96e53b0a597371 Mon Sep 17 00:00:00 2001 From: Jonas Schnelli Date: Fri, 6 Mar 2015 09:33:23 +0100 Subject: [PATCH 082/201] [Qt] fix a issue where "command line options"-action overwrite "Preference"-action (on OSX) - fixes #5800 Conflicts: src/qt/bitcoingui.cpp Rebased-From: 9bbb880be44dbc378bdd3210eed42eaa77efb774 Github-Pull: #5858 --- src/qt/bitcoingui.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 6a457d361fe..1314e0b1c97 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -325,6 +325,7 @@ void BitcoinGUI::createActions(const NetworkStyle *networkStyle) 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->setMenuRole(QAction::NoRole); 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())); From d5d89980284179436a5f3009a5346581fdaa9a01 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Thu, 5 Mar 2015 04:01:22 -0800 Subject: [PATCH 083/201] Limit message sizes before transfer This introduces a fixed limit for the size of p2p messages, and enforces it before download. Rebased-From: ba04c4a7801e7d68a5e84035b919e5c3626eb7a7 Github-Pull: #5843 --- src/net.cpp | 5 +++++ src/net.h | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/net.cpp b/src/net.cpp index 5c8ff79702a..7ed9d65fb2d 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -574,6 +574,11 @@ bool CNode::ReceiveMsgBytes(const char *pch, unsigned int nBytes) if (handled < 0) return false; + if (msg.in_data && msg.hdr.nMessageSize > MAX_PROTOCOL_MESSAGE_LENGTH) { + LogPrint("net", "Oversized message from peer=%i, disconnecting", GetId()); + return false; + } + pch += handled; nBytes -= handled; diff --git a/src/net.h b/src/net.h index a475be0b334..79d8baeb6d7 100644 --- a/src/net.h +++ b/src/net.h @@ -46,6 +46,8 @@ static const int TIMEOUT_INTERVAL = 20 * 60; static const unsigned int MAX_INV_SZ = 50000; /** The maximum number of new addresses to accumulate before announcing. */ static const unsigned int MAX_ADDR_TO_SEND = 1000; +/** Maximum length of incoming protocol messages (no message over 2 MiB is currently acceptable). */ +static const unsigned int MAX_PROTOCOL_MESSAGE_LENGTH = 2 * 1024 * 1024; /** -listen default */ static const bool DEFAULT_LISTEN = true; /** -upnp default */ From 200f29363b06cbe8e35dfc5e1b818a0dd96c8474 Mon Sep 17 00:00:00 2001 From: Ivan Pustogarov Date: Sun, 7 Dec 2014 17:30:57 +0100 Subject: [PATCH 084/201] Ignore getaddr messages on Outbound connections. The only time when a client sends a "getaddr" message is when he esatblishes an Outbound connection (see ProcessMessage() in src/main.cpp). Another bitcoin client is expected to receive a "getaddr" message only on Inbound connection. Ignoring "gettaddr" requests on Outbound connections can resolve potential privacy issues (and as was said such request normally do not happen anyway). Rebased-From: dca799e1db6e319fdd47e0bfdb038eab0efabb85 Github-Pull: #5442 --- src/main.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index d77eb2877e1..9295c81ce89 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3976,7 +3976,12 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, } - else if (strCommand == "getaddr") + // This asymmetric behavior for inbound and outbound connections was introduced + // to prevent a fingerprinting attack: an attacker can send specific fake addresses + // to users' AddrMan and later request them by sending getaddr messages. + // Making users (which are behind NAT and can only make outgoing connections) ignore + // getaddr message mitigates the attack. + else if ((strCommand == "getaddr") && (pfrom->fInbound)) { pfrom->vAddrToSend.clear(); vector vAddr = addrman.GetAddr(); From 002c8a24119d205b09ee10484097a4b18f4a17a9 Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Fri, 6 Mar 2015 20:26:09 -0500 Subject: [PATCH 085/201] fix possible block db breakage during re-index When re-indexing, there are a few cases where garbage data may be skipped in the block files. In these cases, the indices are correctly written to the index db, however the pointer to the next position for writing in the current block file is calculated by adding the sizes of the valid blocks found. As a result, when the re-index is finished, the index db is correct for all existing blocks, but the next block will be written to an incorrect offset, likely overwriting existing blocks. Rather than using the sum of all valid blocks to determine the next write position, use the end of the last block written to the file. Don't assume that the current block is the last one in the file, since they may be read out-of-order. Rebased-From: bb6acff07982dda68b5c2ac81c99dbd7255bb9cc Github-Pull: #5864 --- src/main.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 9295c81ce89..172d43c6582 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2362,8 +2362,11 @@ bool FindBlockPos(CValidationState &state, CDiskBlockPos &pos, unsigned int nAdd } nLastBlockFile = nFile; - vinfoBlockFile[nFile].nSize += nAddSize; vinfoBlockFile[nFile].AddBlock(nHeight, nTime); + if (fKnown) + vinfoBlockFile[nFile].nSize = std::max(pos.nPos + nAddSize, vinfoBlockFile[nFile].nSize); + else + vinfoBlockFile[nFile].nSize += nAddSize; if (!fKnown) { unsigned int nOldChunks = (pos.nPos + BLOCKFILE_CHUNK_SIZE - 1) / BLOCKFILE_CHUNK_SIZE; From c91c660e499ff8f92130a349226fb3200823a82d Mon Sep 17 00:00:00 2001 From: Alex Morcos Date: Wed, 11 Mar 2015 11:56:44 -0400 Subject: [PATCH 086/201] fix InvalidateBlock to repopulate setBlockIndexCandidates Rebased-From: a9af415887f03cb2565895bc55be72748549e527 Github-Pull: #5879 --- src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 172d43c6582..ebc9418891d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2219,7 +2219,7 @@ bool InvalidateBlock(CValidationState& state, CBlockIndex *pindex) { BlockMap::iterator it = mapBlockIndex.begin(); while (it != mapBlockIndex.end()) { if (it->second->IsValid(BLOCK_VALID_TRANSACTIONS) && it->second->nChainTx && setBlockIndexCandidates.value_comp()(chainActive.Tip(), it->second)) { - setBlockIndexCandidates.insert(pindex); + setBlockIndexCandidates.insert(it->second); } it++; } From 11173786ce0a8e170b6a96317b6bc82785ed5d1b Mon Sep 17 00:00:00 2001 From: Alex Morcos Date: Wed, 11 Mar 2015 11:58:40 -0400 Subject: [PATCH 087/201] add RPC test for InvalidateBlock Rebased-From: 88f6c8c3657cba81c65da34a7161c860c8a23c5f Github-Pull: #5879 --- qa/rpc-tests/invalidateblock.py | 51 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100755 qa/rpc-tests/invalidateblock.py diff --git a/qa/rpc-tests/invalidateblock.py b/qa/rpc-tests/invalidateblock.py new file mode 100755 index 00000000000..a8bfbe6e6c7 --- /dev/null +++ b/qa/rpc-tests/invalidateblock.py @@ -0,0 +1,51 @@ +#!/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 InvalidateBlock code +# + +from test_framework import BitcoinTestFramework +from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException +from util import * + +class InvalidateTest(BitcoinTestFramework): + + + def setup_chain(self): + print("Initializing test directory "+self.options.tmpdir) + initialize_chain_clean(self.options.tmpdir, 2) + + def setup_network(self): + self.nodes = [] + self.is_network_split = False + self.nodes.append(start_node(0, self.options.tmpdir, ["-debug"])) + self.nodes.append(start_node(1, self.options.tmpdir, ["-debug"])) + + def run_test(self): + print "Mine 4 blocks on Node 0" + self.nodes[0].setgenerate(True, 4) + assert(self.nodes[0].getblockcount() == 4) + besthash = self.nodes[0].getbestblockhash() + + print "Mine competing 6 blocks on Node 1" + self.nodes[1].setgenerate(True, 6) + assert(self.nodes[1].getblockcount() == 6) + + print "Connect nodes to force a reorg" + connect_nodes_bi(self.nodes,0,1) + sync_blocks(self.nodes) + assert(self.nodes[0].getblockcount() == 6) + badhash = self.nodes[1].getblockhash(2) + + print "Invalidate block 2 on node 0 and verify we reorg to node 0's original chain" + self.nodes[0].invalidateblock(badhash) + newheight = self.nodes[0].getblockcount() + newhash = self.nodes[0].getbestblockhash() + if (newheight != 4 or newhash != besthash): + raise AssertionError("Wrong tip for node0, hash %s, height %d"%(newhash,newheight)) + +if __name__ == '__main__': + InvalidateTest().main() From 81145a6ccd1060ce4b53c98b819a12bd0a99854f Mon Sep 17 00:00:00 2001 From: Jonas Schnelli Date: Thu, 12 Mar 2015 00:08:22 +0100 Subject: [PATCH 088/201] [QT] fix OSX dock icon window reopening fixes #5878 Rebased-From: 89e70e931d3d320d2dae4c296601aab113b2e508 Github-Pull: #5880 --- src/qt/macdockiconhandler.mm | 55 +++++++++++++++++++------------------------- 1 file changed, 24 insertions(+), 31 deletions(-) diff --git a/src/qt/macdockiconhandler.mm b/src/qt/macdockiconhandler.mm index a2ff148d9da..5834a8dfca4 100644 --- a/src/qt/macdockiconhandler.mm +++ b/src/qt/macdockiconhandler.mm @@ -11,52 +11,46 @@ #undef slots #include +#include +#include #if QT_VERSION < 0x050000 extern void qt_mac_set_dock_menu(QMenu *); #endif -@interface DockIconClickEventHandler : NSObject -{ - MacDockIconHandler* dockIconHandler; -} - -@end - -@implementation DockIconClickEventHandler +static MacDockIconHandler *s_instance = NULL; -- (id)initWithDockIconHandler:(MacDockIconHandler *)aDockIconHandler -{ - self = [super init]; - if (self) { - dockIconHandler = aDockIconHandler; - - [[NSAppleEventManager sharedAppleEventManager] - setEventHandler:self - andSelector:@selector(handleDockClickEvent:withReplyEvent:) - forEventClass:kCoreEventClass - andEventID:kAEReopenApplication]; - } - return self; +bool dockClickHandler(id self,SEL _cmd,...) { + Q_UNUSED(self) + Q_UNUSED(_cmd) + + s_instance->handleDockIconClickEvent(); + + // Return NO (false) to suppress the default OS X actions + return false; } -- (void)handleDockClickEvent:(NSAppleEventDescriptor*)event withReplyEvent:(NSAppleEventDescriptor*)replyEvent -{ - Q_UNUSED(event) - Q_UNUSED(replyEvent) - - if (dockIconHandler) { - dockIconHandler->handleDockIconClickEvent(); +void setupDockClickHandler() { + Class cls = objc_getClass("NSApplication"); + id appInst = objc_msgSend((id)cls, sel_registerName("sharedApplication")); + + if (appInst != NULL) { + id delegate = objc_msgSend(appInst, sel_registerName("delegate")); + Class delClass = (Class)objc_msgSend(delegate, sel_registerName("class")); + SEL shouldHandle = sel_registerName("applicationShouldHandleReopen:hasVisibleWindows:"); + if (class_getInstanceMethod(delClass, shouldHandle)) + class_replaceMethod(delClass, shouldHandle, (IMP)dockClickHandler, "B@:"); + else + class_addMethod(delClass, shouldHandle, (IMP)dockClickHandler,"B@:"); } } -@end MacDockIconHandler::MacDockIconHandler() : QObject() { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - this->m_dockIconClickEventHandler = [[DockIconClickEventHandler alloc] initWithDockIconHandler:this]; + setupDockClickHandler(); this->m_dummyWidget = new QWidget(); this->m_dockMenu = new QMenu(this->m_dummyWidget); this->setMainWindow(NULL); @@ -119,7 +113,6 @@ - (void)handleDockClickEvent:(NSAppleEventDescriptor*)event withReplyEvent:(NSAp MacDockIconHandler *MacDockIconHandler::instance() { - static MacDockIconHandler *s_instance = NULL; if (!s_instance) s_instance = new MacDockIconHandler(); return s_instance; From 2c0840631d560c5621063d163728932212e8db60 Mon Sep 17 00:00:00 2001 From: Jonas Schnelli Date: Fri, 13 Mar 2015 15:40:53 +0100 Subject: [PATCH 089/201] [QT] some mac specifiy cleanup (memory handling, unnecessary code) Rebased-From: 8b60808c1eaddb402a699ba53d865932e08109ec Github-Pull: #5880 --- src/qt/bitcoingui.cpp | 2 +- src/qt/macdockiconhandler.h | 9 +-------- src/qt/macdockiconhandler.mm | 6 +++++- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 1314e0b1c97..30b7b54de79 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -232,7 +232,7 @@ BitcoinGUI::~BitcoinGUI() trayIcon->hide(); #ifdef Q_OS_MAC delete appMenuBar; - MacDockIconHandler::instance()->setMainWindow(NULL); + MacDockIconHandler::cleanup(); #endif } diff --git a/src/qt/macdockiconhandler.h b/src/qt/macdockiconhandler.h index 1ffab75c9a1..7c60908876e 100644 --- a/src/qt/macdockiconhandler.h +++ b/src/qt/macdockiconhandler.h @@ -14,12 +14,6 @@ class QMenu; class QWidget; QT_END_NAMESPACE -#ifdef __OBJC__ -@class DockIconClickEventHandler; -#else -class DockIconClickEventHandler; -#endif - /** Macintosh-specific dock icon handler. */ class MacDockIconHandler : public QObject @@ -33,7 +27,7 @@ class MacDockIconHandler : public QObject void setIcon(const QIcon &icon); void setMainWindow(QMainWindow *window); static MacDockIconHandler *instance(); - + static void cleanup(); void handleDockIconClickEvent(); signals: @@ -42,7 +36,6 @@ class MacDockIconHandler : public QObject private: MacDockIconHandler(); - DockIconClickEventHandler *m_dockIconClickEventHandler; QWidget *m_dummyWidget; QMenu *m_dockMenu; QMainWindow *mainWindow; diff --git a/src/qt/macdockiconhandler.mm b/src/qt/macdockiconhandler.mm index 5834a8dfca4..e66154f144f 100644 --- a/src/qt/macdockiconhandler.mm +++ b/src/qt/macdockiconhandler.mm @@ -68,7 +68,6 @@ void setupDockClickHandler() { MacDockIconHandler::~MacDockIconHandler() { - [this->m_dockIconClickEventHandler release]; delete this->m_dummyWidget; this->setMainWindow(NULL); } @@ -118,6 +117,11 @@ void setupDockClickHandler() { return s_instance; } +void MacDockIconHandler::cleanup() +{ + delete s_instance; +} + void MacDockIconHandler::handleDockIconClickEvent() { if (this->mainWindow) From ca301bf98c5929e19abf63773b29b7a53a327e41 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Thu, 5 Mar 2015 04:01:22 -0800 Subject: [PATCH 090/201] Reduce fingerprinting through timestamps in 'addr' messages. Suggested by Jonas Nick. Rebased-From: 9c2737901b5203f267d21d728019d64b46f1d9f3 Github-Pull: #5860 --- src/addrman.cpp | 3 ++- src/main.cpp | 21 ++++++++++++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/addrman.cpp b/src/addrman.cpp index 1982db52ae3..e4e001348ee 100644 --- a/src/addrman.cpp +++ b/src/addrman.cpp @@ -272,8 +272,9 @@ void CAddrMan::Good_(const CService& addr, int64_t nTime) // update info info.nLastSuccess = nTime; info.nLastTry = nTime; - info.nTime = nTime; info.nAttempts = 0; + // nTime is not updated here, to avoid leaking information about + // currently-connected peers. // if it is already in the tried set, don't do anything else if (info.fInTried) diff --git a/src/main.cpp b/src/main.cpp index ebc9418891d..8bedae6dd8c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -231,6 +231,10 @@ struct CBlockReject { * and we're no longer holding the node's locks. */ struct CNodeState { + //! The peer's address + CService address; + //! Whether we have a fully established connection. + bool fCurrentlyConnected; //! Accumulated misbehaviour score for this peer. int nMisbehavior; //! Whether this peer should be disconnected and banned (unless whitelisted). @@ -255,6 +259,7 @@ struct CNodeState { bool fPreferredDownload; CNodeState() { + fCurrentlyConnected = false; nMisbehavior = 0; fShouldBan = false; pindexBestKnownBlock = NULL; @@ -298,6 +303,7 @@ void InitializeNode(NodeId nodeid, const CNode *pnode) { LOCK(cs_main); CNodeState &state = mapNodeState.insert(std::make_pair(nodeid, CNodeState())).first->second; state.name = pnode->addrName; + state.address = pnode->addr; } void FinalizeNode(NodeId nodeid) { @@ -307,6 +313,10 @@ void FinalizeNode(NodeId nodeid) { if (state->fSyncStarted) nSyncStarted--; + if (state->nMisbehavior == 0 && state->fCurrentlyConnected) { + AddressCurrentlyConnected(state->address); + } + BOOST_FOREACH(const QueuedBlock& entry, state->vBlocksInFlight) mapBlocksInFlight.erase(entry.hash); EraseOrphansFor(nodeid); @@ -3563,6 +3573,12 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, else if (strCommand == "verack") { pfrom->SetRecvVersion(min(pfrom->nVersion, PROTOCOL_VERSION)); + + // Mark this node as currently connected, so we update its timestamp later. + if (pfrom->fNetworkNode) { + LOCK(cs_main); + State(pfrom->GetId())->fCurrentlyConnected = true; + } } @@ -4207,11 +4223,6 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, } - // Update the last seen time for this node's address - if (pfrom->fNetworkNode) - if (strCommand == "version" || strCommand == "addr" || strCommand == "inv" || strCommand == "getdata" || strCommand == "ping") - AddressCurrentlyConnected(pfrom->addr); - return true; } From 601327be8ca971895bef8f3e5cdde86ca220e8d6 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Wed, 18 Mar 2015 13:00:45 +0100 Subject: [PATCH 091/201] bump version to 0.10.1 in preparation of RC1 --- configure.ac | 2 +- doc/Doxyfile | 2 +- doc/README.md | 2 +- doc/README_windows.txt | 2 +- src/clientversion.h | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/configure.ac b/configure.ac index 2859753a31b..695e4665f51 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N) AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 0) define(_CLIENT_VERSION_MINOR, 10) -define(_CLIENT_VERSION_REVISION, 0) +define(_CLIENT_VERSION_REVISION, 1) define(_CLIENT_VERSION_BUILD, 0) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2015) diff --git a/doc/Doxyfile b/doc/Doxyfile index 09a925f938f..aee5dbe079a 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -34,7 +34,7 @@ PROJECT_NAME = Bitcoin # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = 0.10.0 +PROJECT_NUMBER = 0.10.1 # 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 diff --git a/doc/README.md b/doc/README.md index ac22812da34..78a59af5b98 100644 --- a/doc/README.md +++ b/doc/README.md @@ -1,4 +1,4 @@ -Bitcoin Core 0.10.0 +Bitcoin Core 0.10.1 ===================== Setup diff --git a/doc/README_windows.txt b/doc/README_windows.txt index 472494172ad..b854505e901 100644 --- a/doc/README_windows.txt +++ b/doc/README_windows.txt @@ -1,4 +1,4 @@ -Bitcoin Core 0.10.0 +Bitcoin Core 0.10.1 ===================== Intro diff --git a/src/clientversion.h b/src/clientversion.h index 314ff7f9d74..a6b5a14faf0 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -16,7 +16,7 @@ //! These need to be macros, as clientversion.cpp's and bitcoin*-res.rc's voodoo requires it #define CLIENT_VERSION_MAJOR 0 #define CLIENT_VERSION_MINOR 10 -#define CLIENT_VERSION_REVISION 0 +#define CLIENT_VERSION_REVISION 1 #define CLIENT_VERSION_BUILD 0 //! Set to true for release, false for prerelease or test build From 8752b5c882fb94f223b117153bdac024f1dfb25f Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Tue, 17 Feb 2015 16:15:01 -0500 Subject: [PATCH 092/201] 0.10 fix for crashes on OSX 10.6 strnlen is available at build-time but not at runtime, causing a crash. 0.11 drops support for 10.6, so this is not needed in master. --- src/compat.h | 4 +--- src/compat/strnlen.cpp | 7 +++---- src/protocol.cpp | 2 +- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/compat.h b/src/compat.h index dffd4ecf52f..477dd2bfebd 100644 --- a/src/compat.h +++ b/src/compat.h @@ -88,8 +88,6 @@ typedef u_int SOCKET; #define THREAD_PRIORITY_ABOVE_NORMAL (-2) #endif -#if HAVE_DECL_STRNLEN == 0 -size_t strnlen( const char *start, size_t max_len); -#endif // HAVE_DECL_STRNLEN +size_t strnlen_int( const char *start, size_t max_len); #endif // BITCOIN_COMPAT_H diff --git a/src/compat/strnlen.cpp b/src/compat/strnlen.cpp index 7f3e1598875..7dafd98c0b5 100644 --- a/src/compat/strnlen.cpp +++ b/src/compat/strnlen.cpp @@ -7,12 +7,11 @@ #endif #include - -#if HAVE_DECL_STRNLEN == 0 -size_t strnlen( const char *start, size_t max_len) +// OSX 10.6 is missing strnlen at runtime, but builds targetting it will still +// succeed. Define our own version here to avoid a crash. +size_t strnlen_int( const char *start, size_t max_len) { const char *end = (const char *)memchr(start, '\0', max_len); return end ? (size_t)(end - start) : max_len; } -#endif // HAVE_DECL_STRNLEN diff --git a/src/protocol.cpp b/src/protocol.cpp index 72fdd753a81..f03d6e75897 100644 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -40,7 +40,7 @@ CMessageHeader::CMessageHeader(const char* pszCommand, unsigned int nMessageSize std::string CMessageHeader::GetCommand() const { - return std::string(pchCommand, pchCommand + strnlen(pchCommand, COMMAND_SIZE)); + return std::string(pchCommand, pchCommand + strnlen_int(pchCommand, COMMAND_SIZE)); } bool CMessageHeader::IsValid() const From c9e022b7eee9f77cd33b333d6ff52f711d3bc989 Mon Sep 17 00:00:00 2001 From: dexX7 Date: Wed, 11 Mar 2015 13:34:20 +0100 Subject: [PATCH 093/201] Initialization: set Boost path locale in main thread The path locale is lazy initialized and to avoid deinitialization errors in multithreading environments, it is set explicitly by the main thread. Conflicts: src/util.cpp Rebased-From: 317e66c741aef0fd272e50aa2e82ff192ca5f7e5 Github-Pull: #5877 --- src/util.cpp | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/util.cpp b/src/util.cpp index 0cdf4e614d8..a03f55c910c 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -713,19 +713,18 @@ void RenameThread(const char* name) void SetupEnvironment() { -#ifndef WIN32 - try - { -#if BOOST_FILESYSTEM_VERSION == 3 - boost::filesystem::path::codecvt(); // Raises runtime error if current locale is invalid -#else // boost filesystem v2 - std::locale(); // Raises runtime error if current locale is invalid -#endif - } catch(std::runtime_error &e) - { - setenv("LC_ALL", "C", 1); // Force C locale + // On most POSIX systems (e.g. Linux, but not BSD) the environment's locale + // may be invalid, in which case the "C" locale is used as fallback. +#if !defined(WIN32) && !defined(MAC_OSX) && !defined(__FreeBSD__) && !defined(__OpenBSD__) + try { + std::locale(""); // Raises a runtime error if current locale is invalid + } catch (const std::runtime_error&) { + std::locale::global(std::locale("C")); } #endif + // The path locale is lazy initialized and to avoid deinitialization errors + // in multithreading environments, it is set explicitly by the main thread. + boost::filesystem::path::imbue(std::locale()); } void SetThreadPriority(int nPriority) From 1d2cdd2ef9091508c42619c94d4a7106b1471a14 Mon Sep 17 00:00:00 2001 From: Alex Morcos Date: Thu, 12 Mar 2015 16:03:23 -0400 Subject: [PATCH 094/201] Fix InvalidateBlock to add chainActive.Tip to setBlockIndexCandidates Rebased-From: cd3d67cf3b0d573d2c387c2ec35e8b52129863d9 Github-Pull: #5890 --- qa/rpc-tests/invalidateblock.py | 29 +++++++++++++++++++++++++++-- src/main.cpp | 2 +- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/qa/rpc-tests/invalidateblock.py b/qa/rpc-tests/invalidateblock.py index a8bfbe6e6c7..ccfcf00e30e 100755 --- a/qa/rpc-tests/invalidateblock.py +++ b/qa/rpc-tests/invalidateblock.py @@ -16,15 +16,17 @@ class InvalidateTest(BitcoinTestFramework): def setup_chain(self): print("Initializing test directory "+self.options.tmpdir) - initialize_chain_clean(self.options.tmpdir, 2) + initialize_chain_clean(self.options.tmpdir, 3) def setup_network(self): self.nodes = [] self.is_network_split = False self.nodes.append(start_node(0, self.options.tmpdir, ["-debug"])) self.nodes.append(start_node(1, self.options.tmpdir, ["-debug"])) + self.nodes.append(start_node(2, self.options.tmpdir, ["-debug"])) def run_test(self): + print "Make sure we repopulate setBlockIndexCandidates after InvalidateBlock:" print "Mine 4 blocks on Node 0" self.nodes[0].setgenerate(True, 4) assert(self.nodes[0].getblockcount() == 4) @@ -36,7 +38,7 @@ def run_test(self): print "Connect nodes to force a reorg" connect_nodes_bi(self.nodes,0,1) - sync_blocks(self.nodes) + sync_blocks(self.nodes[0:2]) assert(self.nodes[0].getblockcount() == 6) badhash = self.nodes[1].getblockhash(2) @@ -47,5 +49,28 @@ def run_test(self): if (newheight != 4 or newhash != besthash): raise AssertionError("Wrong tip for node0, hash %s, height %d"%(newhash,newheight)) + print "\nMake sure we won't reorg to a lower work chain:" + connect_nodes_bi(self.nodes,1,2) + print "Sync node 2 to node 1 so both have 6 blocks" + sync_blocks(self.nodes[1:3]) + assert(self.nodes[2].getblockcount() == 6) + print "Invalidate block 5 on node 1 so its tip is now at 4" + self.nodes[1].invalidateblock(self.nodes[1].getblockhash(5)) + assert(self.nodes[1].getblockcount() == 4) + print "Invalidate block 3 on node 2, so its tip is now 2" + self.nodes[2].invalidateblock(self.nodes[2].getblockhash(3)) + assert(self.nodes[2].getblockcount() == 2) + print "..and then mine a block" + self.nodes[2].setgenerate(True, 1) + print "Verify all nodes are at the right height" + time.sleep(5) + for i in xrange(3): + print i,self.nodes[i].getblockcount() + assert(self.nodes[2].getblockcount() == 3) + assert(self.nodes[0].getblockcount() == 4) + node1height = self.nodes[1].getblockcount() + if node1height < 4: + raise AssertionError("Node 1 reorged to a lower height: %d"%node1height) + if __name__ == '__main__': InvalidateTest().main() diff --git a/src/main.cpp b/src/main.cpp index 8bedae6dd8c..64185904624 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2228,7 +2228,7 @@ bool InvalidateBlock(CValidationState& state, CBlockIndex *pindex) { // add them again. BlockMap::iterator it = mapBlockIndex.begin(); while (it != mapBlockIndex.end()) { - if (it->second->IsValid(BLOCK_VALID_TRANSACTIONS) && it->second->nChainTx && setBlockIndexCandidates.value_comp()(chainActive.Tip(), it->second)) { + if (it->second->IsValid(BLOCK_VALID_TRANSACTIONS) && it->second->nChainTx && !setBlockIndexCandidates.value_comp()(it->second, chainActive.Tip())) { setBlockIndexCandidates.insert(it->second); } it++; From a316622fd012d36aa5885ecd938da671ae802ea2 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Wed, 25 Mar 2015 16:54:14 +0100 Subject: [PATCH 095/201] Clean out release notes for 0.10.1 --- doc/release-notes.md | 703 +-------------------------------------------------- 1 file changed, 11 insertions(+), 692 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index 986b8832ec1..53ea3aed4e5 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,9 +1,10 @@ -Bitcoin Core version 0.10.0 is now available from: +Bitcoin Core version 0.10.1 is now available from: - https://bitcoin.org/bin/0.10.0/ + https://bitcoin.org/bin/0.10.1/ -This is a new major version release, bringing both new features and -bug fixes. +This is a new minor version release, bringing bug fixes and robustness +improvements. If you are using 0.10.0, it is recommended to upgrade to this +version. Please report bugs using the issue tracker at github: @@ -20,12 +21,12 @@ shut down (which might take a few minutes for older versions), then run the installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux). -Downgrading warning ---------------------- +Downgrade warning +------------------ -Because release 0.10.0 makes use of headers-first synchronization and parallel -block download (see further), the block files and databases are not -backwards-compatible with older versions of Bitcoin Core or other software: +Because release 0.10.0 and later makes use of headers-first synchronization and +parallel block download (see further), the block files and databases are not +backwards-compatible with pre-0.10 versions of Bitcoin Core or other software: * Blocks will be stored on disk out of order (in the order they are received, really), which makes it incompatible with some tools or @@ -43,720 +44,38 @@ supported and may break as soon as the older version attempts to reindex. This does not affect wallet forward or backward compatibility. - Notable changes =============== -Faster synchronization ----------------------- - -Bitcoin Core now uses 'headers-first synchronization'. This means that we first -ask peers for block headers (a total of 27 megabytes, as of December 2014) and -validate those. In a second stage, when the headers have been discovered, we -download the blocks. However, as we already know about the whole chain in -advance, the blocks can be downloaded in parallel from all available peers. - -In practice, this means a much faster and more robust synchronization. On -recent hardware with a decent network link, it can be as little as 3 hours -for an initial full synchronization. You may notice a slower progress in the -very first few minutes, when headers are still being fetched and verified, but -it should gain speed afterwards. - -A few RPCs were added/updated as a result of this: -- `getblockchaininfo` now returns the number of validated headers in addition to -the number of validated blocks. -- `getpeerinfo` lists both the number of blocks and headers we know we have in -common with each peer. While synchronizing, the heights of the blocks that we -have requested from peers (but haven't received yet) are also listed as -'inflight'. -- A new RPC `getchaintips` lists all known branches of the block chain, -including those we only have headers for. - -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. Fees are added by default unless the 'sendfreetransactions' -setting is enabled. - -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 for transaction fee changes: -- `-txconfirmtarget=n` : create transactions that have enough fees (or priority) -so they are likely to begin confirmation within n blocks (default: 1). This setting -is over-ridden by the -paytxfee option. -- `-sendfreetransactions` : Send transactions as zero-fee transactions if possible -(default: 0) - -New RPC commands for fee estimation: -- `estimatefee nblocks` : Returns approximate fee-per-1,000-bytes needed for -a transaction to begin confirmation 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 begin confirmation 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` (still dangerous!) | - -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). - - -REST interface --------------- - -A new HTTP API is exposed when running with the `-rest` flag, which allows -unauthenticated access to public node data. - -It is served on the same port as RPC, but does not need a password, and uses -plain HTTP instead of JSON-RPC. - -Assuming a local RPC server running on port 8332, it is possible to request: -- Blocks: http://localhost:8332/rest/block/*HASH*.*EXT* -- Blocks without transactions: http://localhost:8332/rest/block/notxdetails/*HASH*.*EXT* -- Transactions (requires `-txindex`): http://localhost:8332/rest/tx/*HASH*.*EXT* - -In every case, *EXT* can be `bin` (for raw binary data), `hex` (for hex-encoded -binary) or `json`. - -For more details, see the `doc/REST-interface.md` document in the repository. - -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 that we've eagerly wanted to use 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 -Watch-only wallet support -------------------------- - -The wallet can now track transactions to and from wallets for which you know -all addresses (or scripts), even without the private keys. - -This can be used to track payments without needing the private keys online on a -possibly vulnerable system. In addition, it can help for (manual) construction -of multisig transactions where you are only one of the signers. - -One new RPC, `importaddress`, is added which functions similarly to -`importprivkey`, but instead takes an address or script (in hexadecimal) as -argument. After using it, outputs credited to this address or script are -considered to be received, and transactions consuming these outputs will be -considered to be sent. - -The following RPCs have optional support for watch-only: -`getbalance`, `listreceivedbyaddress`, `listreceivedbyaccount`, -`listtransactions`, `listaccounts`, `listsinceblock`, `gettransaction`. See the -RPC documentation for those methods for more information. - -Compared to using `getrawtransaction`, this mechanism does not require -`-txindex`, scales better, integrates better with the wallet, and is compatible -with future block chain pruning functionality. It does mean that all relevant -addresses need to added to the wallet before the payment, though. - -Consensus library ------------------ - -Starting from 0.10.0, the Bitcoin Core distribution includes a consensus library. - -The purpose of this library is to make the verification functionality that is -critical to Bitcoin's consensus available to other applications, e.g. to language -bindings such as [python-bitcoinlib](https://pypi.python.org/pypi/python-bitcoinlib) or -alternative node implementations. - -This library is called `libbitcoinconsensus.so` (or, `.dll` for Windows). -Its interface is defined in the C header [bitcoinconsensus.h](https://github.com/bitcoin/bitcoin/blob/0.10/src/script/bitcoinconsensus.h). - -In its initial version the API includes two functions: - -- `bitcoinconsensus_verify_script` verifies a script. It returns whether the indicated input of the provided serialized transaction -correctly spends the passed scriptPubKey under additional constraints indicated by flags -- `bitcoinconsensus_version` returns the API version, currently at an experimental `0` - -The functionality is planned to be extended to e.g. UTXO management in upcoming releases, but the interface -for existing methods should remain stable. - -Standard script rules relaxed for P2SH addresses ------------------------------------------------- - -The IsStandard() rules have been almost completely removed for P2SH -redemption scripts, allowing applications to make use of any valid -script type, such as "n-of-m OR y", hash-locked oracle addresses, etc. -While the Bitcoin protocol has always supported these types of script, -actually using them on mainnet has been previously inconvenient as -standard Bitcoin Core nodes wouldn't relay them to miners, nor would -most miners include them in blocks they mined. - -bitcoin-tx ----------- - -It has been observed that many of the RPC functions offered by bitcoind are -"pure functions", and operate independently of the bitcoind wallet. This -included many of the RPC "raw transaction" API functions, such as -createrawtransaction. - -bitcoin-tx is a newly introduced command line utility designed to enable easy -manipulation of bitcoin transactions. A summary of its operation may be -obtained via "bitcoin-tx --help" Transactions may be created or signed in a -manner similar to the RPC raw tx API. Transactions may be updated, deleting -inputs or outputs, or appending new inputs and outputs. Custom scripts may be -easily composed using a simple text notation, borrowed from the bitcoin test -suite. - -This tool may be used for experimenting with new transaction types, signing -multi-party transactions, and many other uses. Long term, the goal is to -deprecate and remove "pure function" RPC API calls, as those do not require a -server round-trip to execute. - -Other utilities "bitcoin-key" and "bitcoin-script" have been proposed, making -key and script operations easily accessible via command line. - -Mining and relay policy enhancements ------------------------------------- - -Bitcoin Core's block templates are now for version 3 blocks only, and any mining -software relying on its `getblocktemplate` must be updated in parallel to use -libblkmaker either version 0.4.2 or any version from 0.5.1 onward. -If you are solo mining, this will affect you the moment you upgrade Bitcoin -Core, which must be done prior to BIP66 achieving its 951/1001 status. -If you are mining with the stratum mining protocol: this does not affect you. -If you are mining with the getblocktemplate protocol to a pool: this will affect -you at the pool operator's discretion, which must be no later than BIP66 -achieving its 951/1001 status. - -The `prioritisetransaction` RPC method has been added to enable miners to -manipulate the priority of transactions on an individual basis. - -Bitcoin Core now supports BIP 22 long polling, so mining software can be -notified immediately of new templates rather than having to poll periodically. - -Support for BIP 23 block proposals is now available in Bitcoin Core's -`getblocktemplate` method. This enables miners to check the basic validity of -their next block before expending work on it, reducing risks of accidental -hardforks or mining invalid blocks. - -Two new options to control mining policy: -- `-datacarrier=0/1` : Relay and mine "data carrier" (OP_RETURN) transactions -if this is 1. -- `-datacarriersize=n` : Maximum size, in bytes, we consider acceptable for -"data carrier" outputs. - -The relay policy has changed to more properly implement the desired behavior of not -relaying free (or very low fee) transactions unless they have a priority above the -AllowFreeThreshold(), in which case they are relayed subject to the rate limiter. - -BIP 66: strict DER encoding for signatures ------------------------------------------- - -Bitcoin Core 0.10 implements BIP 66, which introduces block version 3, and a new -consensus rule, which prohibits non-DER signatures. Such transactions have been -non-standard since Bitcoin v0.8.0 (released in February 2013), but were -technically still permitted inside blocks. - -This change breaks the dependency on OpenSSL's signature parsing, and is -required if implementations would want to remove all of OpenSSL from the -consensus code. - -The same miner-voting mechanism as in BIP 34 is used: when 751 out of a -sequence of 1001 blocks have version number 3 or higher, the new consensus -rule becomes active for those blocks. When 951 out of a sequence of 1001 -blocks have version number 3 or higher, it becomes mandatory for all blocks. - -Backward compatibility with current mining software is NOT provided, thus miners -should read the first paragraph of "Mining and relay policy enhancements" above. - -0.10.0 Change log +0.10.1 Change log ================= Detailed release notes follow. This overview includes changes that affect external behavior, not code moves, refactors or string updates. RPC: -- `f923c07` Support IPv6 lookup in bitcoin-cli even when IPv6 only bound on localhost -- `b641c9c` Fix addnode "onetry": Connect with OpenNetworkConnection -- `171ca77` estimatefee / estimatepriority RPC methods -- `b750cf1` Remove cli functionality from bitcoind -- `f6984e8` Add "chain" to getmininginfo, improve help in getblockchaininfo -- `99ddc6c` Add nLocalServices info to RPC getinfo -- `cf0c47b` Remove getwork() RPC call -- `2a72d45` prioritisetransaction -- `e44fea5` Add an option `-datacarrier` to allow users to disable relaying/mining data carrier transactions -- `2ec5a3d` Prevent easy RPC memory exhaustion attack -- `d4640d7` Added argument to getbalance to include watchonly addresses and fixed errors in balance calculation -- `83f3543` Added argument to listaccounts to include watchonly addresses -- `952877e` Showing 'involvesWatchonly' property for transactions returned by 'listtransactions' and 'listsinceblock'. It is only appended when the transaction involves a watchonly address -- `d7d5d23` Added argument to listtransactions and listsinceblock to include watchonly addresses -- `f87ba3d` added includeWatchonly argument to 'gettransaction' because it affects balance calculation -- `0fa2f88` added includedWatchonly argument to listreceivedbyaddress/...account -- `6c37f7f` `getrawchangeaddress`: fail when keypool exhausted and wallet locked -- `ff6a7af` getblocktemplate: longpolling support -- `c4a321f` Add peerid to getpeerinfo to allow correlation with the logs -- `1b4568c` Add vout to ListTransactions output -- `b33bd7a` Implement "getchaintips" RPC command to monitor blockchain forks -- `733177e` Remove size limit in RPC client, keep it in server -- `6b5b7cb` Categorize rpc help overview -- `6f2c26a` Closely track mempool byte total. Add "getmempoolinfo" RPC -- `aa82795` Add detailed network info to getnetworkinfo RPC -- `01094bd` Don't reveal whether password is <20 or >20 characters in RPC -- `57153d4` rpc: Compute number of confirmations of a block from block height -- `ff36cbe` getnetworkinfo: export local node's client sub-version string -- `d14d7de` SanitizeString: allow '(' and ')' -- `31d6390` Fixed setaccount accepting foreign address -- `b5ec5fe` update getnetworkinfo help with subversion -- `ad6e601` RPC additions after headers-first -- `33dfbf5` rpc: Fix leveldb iterator leak, and flush before `gettxoutsetinfo` -- `2aa6329` Enable customising node policy for datacarrier data size with a -datacarriersize option -- `f877aaa` submitblock: Use a temporary CValidationState to determine accurately the outcome of ProcessBlock -- `e69a587` submitblock: Support for returning specific rejection reasons -- `af82884` Add "warmup mode" for RPC server -- `e2655e0` Add unauthenticated HTTP REST interface to public blockchain data -- `683dc40` Disable SSLv3 (in favor of TLS) for the RPC client and server -- `44b4c0d` signrawtransaction: validate private key -- `9765a50` Implement BIP 23 Block Proposal -- `f9de17e` Add warning comment to getinfo - -Command-line options: -- `ee21912` Use netmasks instead of wildcards for IP address matching -- `deb3572` Add `-rpcbind` option to allow binding RPC port on a specific interface -- `96b733e` Add `-version` option to get just the version -- `1569353` Add `-stopafterblockimport` option -- `77cbd46` Let -zapwallettxes recover transaction meta data -- `1c750db` remove -tor compatibility code (only allow -onion) -- `4aaa017` rework help messages for fee-related options -- `4278b1d` Clarify error message when invalid -rpcallowip -- `6b407e4` -datadir is now allowed in config files -- `bdd5b58` Add option `-sysperms` to disable 077 umask (create new files with system default umask) -- `cbe39a3` Add "bitcoin-tx" command line utility and supporting modules -- `dbca89b` Trigger -alertnotify if network is upgrading without you -- `ad96e7c` Make -reindex cope with out-of-order blocks -- `16d5194` Skip reindexed blocks individually -- `ec01243` --tracerpc option for regression tests -- `f654f00` Change -genproclimit default to 1 -- `3c77714` Make -proxy set all network types, avoiding a connect leak -- `57be955` Remove -printblock, -printblocktree, and -printblockindex -- `ad3d208` remove -maxorphanblocks config parameter since it is no longer functional Block and transaction handling: -- `7a0e84d` ProcessGetData(): abort if a block file is missing from disk -- `8c93bf4` LoadBlockIndexDB(): Require block db reindex if any `blk*.dat` files are missing -- `77339e5` Get rid of the static chainMostWork (optimization) -- `4e0eed8` Allow ActivateBestChain to release its lock on cs_main -- `18e7216` Push cs_mains down in ProcessBlock -- `fa126ef` Avoid undefined behavior using CFlatData in CScript serialization -- `7f3b4e9` Relax IsStandard rules for pay-to-script-hash transactions -- `c9a0918` Add a skiplist to the CBlockIndex structure -- `bc42503` Use unordered_map for CCoinsViewCache with salted hash (optimization) -- `d4d3fbd` Do not flush the cache after every block outside of IBD (optimization) -- `ad08d0b` Bugfix: make CCoinsViewMemPool support pruned entries in underlying cache -- `5734d4d` Only remove actualy failed blocks from setBlockIndexValid -- `d70bc52` Rework block processing benchmark code -- `714a3e6` Only keep setBlockIndexValid entries that are possible improvements -- `ea100c7` Reduce maximum coinscache size during verification (reduce memory usage) -- `4fad8e6` Reject transactions with excessive numbers of sigops -- `b0875eb` Allow BatchWrite to destroy its input, reducing copying (optimization) -- `92bb6f2` Bypass reloading blocks from disk (optimization) -- `2e28031` Perform CVerifyDB on pcoinsdbview instead of pcoinsTip (reduce memory usage) -- `ab15b2e` Avoid copying undo data (optimization) -- `341735e` Headers-first synchronization -- `afc32c5` Fix rebuild-chainstate feature and improve its performance -- `e11b2ce` Fix large reorgs -- `ed6d1a2` Keep information about all block files in memory -- `a48f2d6` Abstract context-dependent block checking from acceptance -- `7e615f5` Fixed mempool sync after sending a transaction -- `51ce901` Improve chainstate/blockindex disk writing policy -- `a206950` Introduce separate flushing modes -- `9ec75c5` Add a locking mechanism to IsInitialBlockDownload to ensure it never goes from false to true -- `868d041` Remove coinbase-dependant transactions during reorg -- `723d12c` Remove txn which are invalidated by coinbase maturity during reorg -- `0cb8763` Check against MANDATORY flags prior to accepting to mempool -- `8446262` Reject headers that build on an invalid parent -- `008138c` Bugfix: only track UTXO modification after lookup P2P protocol and network code: -- `f80cffa` Do not trigger a DoS ban if SCRIPT_VERIFY_NULLDUMMY fails -- `c30329a` Add testnet DNS seed of Alex Kotenko -- `45a4baf` Add testnet DNS seed of Andreas Schildbach -- `f1920e8` Ping automatically every 2 minutes (unconditionally) -- `806fd19` Allocate receive buffers in on the fly -- `6ecf3ed` Display unknown commands received -- `aa81564` Track peers' available blocks -- `caf6150` Use async name resolving to improve net thread responsiveness -- `9f4da19` Use pong receive time rather than processing time -- `0127a9b` remove SOCKS4 support from core and GUI, use SOCKS5 -- `40f5cb8` Send rejects and apply DoS scoring for errors in direct block validation -- `dc942e6` Introduce whitelisted peers -- `c994d2e` prevent SOCKET leak in BindListenPort() -- `a60120e` Add built-in seeds for .onion -- `60dc8e4` Allow -onlynet=onion to be used -- `3a56de7` addrman: Do not propagate obviously poor addresses onto the network -- `6050ab6` netbase: Make SOCKS5 negotiation interruptible -- `604ee2a` Remove tx from AlreadyAskedFor list once we receive it, not when we process it -- `efad808` Avoid reject message feedback loops -- `71697f9` Separate protocol versioning from clientversion -- `20a5f61` Don't relay alerts to peers before version negotiation -- `b4ee0bd` Introduce preferred download peers -- `845c86d` Do not use third party services for IP detection -- `12a49ca` Limit the number of new addressses to accumulate -- `35e408f` Regard connection failures as attempt for addrman -- `a3a7317` Introduce 10 minute block download timeout -- `3022e7d` Require sufficent priority for relay of free transactions -- `58fda4d` Update seed IPs, based on bitcoin.sipa.be crawler data -- `18021d0` Remove bitnodes.io from dnsseeds. Validation: -- `6fd7ef2` Also switch the (unused) verification code to low-s instead of even-s -- `584a358` Do merkle root and txid duplicates check simultaneously -- `217a5c9` When transaction outputs exceed inputs, show the offending amounts so as to aid debugging -- `f74fc9b` Print input index when signature validation fails, to aid debugging -- `6fd59ee` script.h: set_vch() should shift a >32 bit value -- `d752ba8` Add SCRIPT_VERIFY_SIGPUSHONLY (BIP62 rule 2) (test only) -- `698c6ab` Add SCRIPT_VERIFY_MINIMALDATA (BIP62 rules 3 and 4) (test only) -- `ab9edbd` script: create sane error return codes for script validation and remove logging -- `219a147` script: check ScriptError values in script tests -- `0391423` Discourage NOPs reserved for soft-fork upgrades -- `98b135f` Make STRICTENC invalid pubkeys fail the script rather than the opcode -- `307f7d4` Report script evaluation failures in log and reject messages -- `ace39db` consensus: guard against openssl's new strict DER checks -- `12b7c44` Improve robustness of DER recoding code -- `76ce5c8` fail immediately on an empty signature Build system: -- `f25e3ad` Fix build in OS X 10.9 -- `65e8ba4` build: Switch to non-recursive make -- `460b32d` build: fix broken boost chrono check on some platforms -- `9ce0774` build: Fix windows configure when using --with-qt-libdir -- `ea96475` build: Add mention of --disable-wallet to bdb48 error messages -- `1dec09b` depends: add shared dependency builder -- `c101c76` build: Add --with-utils (bitcoin-cli and bitcoin-tx, default=yes). Help string consistency tweaks. Target sanity check fix -- `e432a5f` build: add option for reducing exports (v2) -- `6134b43` Fixing condition 'sabotaging' MSVC build -- `af0bd5e` osx: fix signing to make Gatekeeper happy (again) -- `a7d1f03` build: fix dynamic boost check when --with-boost= is used -- `d5fd094` build: fix qt test build when libprotobuf is in a non-standard path -- `2cf5f16` Add libbitcoinconsensus library -- `914868a` build: add a deterministic dmg signer -- `2d375fe` depends: bump openssl to 1.0.1k -- `b7a4ecc` Build: Only check for boost when building code that requires it Wallet: -- `b33d1f5` Use fee/priority estimates in wallet CreateTransaction -- `4b7b1bb` Sanity checks for estimates -- `c898846` Add support for watch-only addresses -- `d5087d1` Use script matching rather than destination matching for watch-only -- `d88af56` Fee fixes -- `a35b55b` Dont run full check every time we decrypt wallet -- `3a7c348` Fix make_change to not create half-satoshis -- `f606bb9` fix a possible memory leak in CWalletDB::Recover -- `870da77` fix possible memory leaks in CWallet::EncryptWallet -- `ccca27a` Watch-only fixes -- `9b1627d` [Wallet] Reduce minTxFee for transaction creation to 1000 satoshis -- `a53fd41` Deterministic signing -- `15ad0b5` Apply AreSane() checks to the fees from the network -- `11855c1` Enforce minRelayTxFee on wallet created tx and add a maxtxfee option GUI: -- `c21c74b` osx: Fix missing dock menu with qt5 -- `b90711c` Fix Transaction details shows wrong To: -- `516053c` Make links in 'About Bitcoin Core' clickable -- `bdc83e8` Ensure payment request network matches client network -- `65f78a1` Add GUI view of peer information -- `06a91d9` VerifyDB progress reporting -- `fe6bff2` Add BerkeleyDB version info to RPCConsole -- `b917555` PeerTableModel: Fix potential deadlock. #4296 -- `dff0e3b` Improve rpc console history behavior -- `95a9383` Remove CENT-fee-rule from coin control completely -- `56b07d2` Allow setting listen via GUI -- `d95ba75` Log messages with type>QtDebugMsg as non-debug -- `8969828` New status bar Unit Display Control and related changes -- `674c070` seed OpenSSL PNRG with Windows event data -- `509f926` Payment request parsing on startup now only changes network if a valid network name is specified -- `acd432b` Prevent balloon-spam after rescan -- `7007402` Implement SI-style (thin space) thoudands separator -- `91cce17` Use fixed-point arithmetic in amount spinbox -- `bdba2dd` Remove an obscure option no-one cares about -- `bd0aa10` Replace the temporary file hack currently used to change Bitcoin-Qt's dock icon (OS X) with a buffer-based solution -- `94e1b9e` Re-work overviewpage UI -- `8bfdc9a` Better looking trayicon -- `b197bf3` disable tray interactions when client model set to 0 -- `1c5f0af` Add column Watch-only to transactions list -- `21f139b` Fix tablet crash. closes #4854 -- `e84843c` Broken addresses on command line no longer trigger testnet -- `a49f11d` Change splash screen to normal window -- `1f9be98` Disable App Nap on OSX 10.9+ -- `27c3e91` Add proxy to options overridden if necessary -- `4bd1185` Allow "emergency" shutdown during startup -- `d52f072` Don't show wallet options in the preferences menu when running with -disablewallet -- `6093aa1` Qt: QProgressBar CPU-Issue workaround -- `0ed9675` [Wallet] Add global boolean whether to send free transactions (default=true) -- `ed3e5e4` [Wallet] Add global boolean whether to pay at least the custom fee (default=true) -- `e7876b2` [Wallet] Prevent user from paying a non-sense fee -- `c1c9d5b` Add Smartfee to GUI -- `e0a25c5` Make askpassphrase dialog behave more sanely -- `94b362d` On close of splashscreen interrupt verifyDB -- `b790d13` English translation update -- `8543b0d` Correct tooltip on address book page Tests: -- `b41e594` Fix script test handling of empty scripts -- `d3a33fc` Test CHECKMULTISIG with m == 0 and n == 0 -- `29c1749` Let tx (in)valid tests use any SCRIPT_VERIFY flag -- `6380180` Add rejection of non-null CHECKMULTISIG dummy values -- `21bf3d2` Add tests for BoostAsioToCNetAddr -- `b5ad5e7` Add Python test for -rpcbind and -rpcallowip -- `9ec0306` Add CODESEPARATOR/FindAndDelete() tests -- `75ebced` Added many rpc wallet tests -- `0193fb8` Allow multiple regression tests to run at once -- `92a6220` Hook up sanity checks -- `3820e01` Extend and move all crypto tests to crypto_tests.cpp -- `3f9a019` added list/get received by address/ account tests -- `a90689f` Remove timing-based signature cache unit test -- `236982c` Add skiplist unit tests -- `f4b00be` Add CChain::GetLocator() unit test -- `b45a6e8` Add test for getblocktemplate longpolling -- `cdf305e` Set -discover=0 in regtest framework -- `ed02282` additional test for OP_SIZE in script_valid.json -- `0072d98` script tests: BOOLAND, BOOLOR decode to integer -- `833ff16` script tests: values that overflow to 0 are true -- `4cac5db` script tests: value with trailing 0x00 is true -- `89101c6` script test: test case for 5-byte bools -- `d2d9dc0` script tests: add tests for CHECKMULTISIG limits -- `d789386` Add "it works" test for bitcoin-tx -- `df4d61e` Add bitcoin-tx tests -- `aa41ac2` Test IsPushOnly() with invalid push -- `6022b5d` Make `script_{valid,invalid}.json` validation flags configurable -- `8138cbe` Add automatic script test generation, and actual checksig tests -- `ed27e53` Add coins_tests with a large randomized CCoinViewCache test -- `9df9cf5` Make SCRIPT_VERIFY_STRICTENC compatible with BIP62 -- `dcb9846` Extend getchaintips RPC test -- `554147a` Ensure MINIMALDATA invalid tests can only fail one way -- `dfeec18` Test every numeric-accepting opcode for correct handling of the numeric minimal encoding rule -- `2b62e17` Clearly separate PUSHDATA and numeric argument MINIMALDATA tests -- `16d78bd` Add valid invert of invalid every numeric opcode tests -- `f635269` tests: enable alertnotify test for Windows -- `7a41614` tests: allow rpc-tests to get filenames for bitcoind and bitcoin-cli from the environment -- `5122ea7` tests: fix forknotify.py on windows -- `fa7f8cd` tests: remove old pull-tester scripts -- `7667850` tests: replace the old (unused since Travis) tests with new rpc test scripts -- `f4e0aef` Do signature-s negation inside the tests -- `1837987` Optimize -regtest setgenerate block generation -- `2db4c8a` Fix node ranges in the test framework -- `a8b2ce5` regression test only setmocktime RPC call -- `daf03e7` RPC tests: create initial chain with specific timestamps -- `8656dbb` Port/fix txnmall.sh regression test -- `ca81587` Test the exact order of CHECKMULTISIG sig/pubkey evaluation -- `7357893` Prioritize and display -testsafemode status in UI -- `f321d6b` Add key generation/verification to ECC sanity check -- `132ea9b` miner_tests: Disable checkpoints so they don't fail the subsidy-change test -- `bc6cb41` QA RPC tests: Add tests block block proposals -- `f67a9ce` Use deterministically generated script tests -- `11d7a7d` [RPC] add rpc-test for http keep-alive (persistent connections) -- `34318d7` RPC-test based on invalidateblock for mempool coinbase spends -- `76ec867` Use actually valid transactions for script tests -- `c8589bf` Add actual signature tests -- `e2677d7` Fix smartfees test for change to relay policy -- `263b65e` tests: run sanity checks in tests too Miscellaneous: -- `122549f` Fix incorrect checkpoint data for testnet3 -- `5bd02cf` Log used config file to debug.log on startup -- `68ba85f` Updated Debian example bitcoin.conf with config from wiki + removed some cruft and updated comments -- `e5ee8f0` Remove -beta suffix -- `38405ac` Add comment regarding experimental-use service bits -- `be873f6` Issue warning if collecting RandSeed data failed -- `8ae973c` Allocate more space if necessary in RandSeedAddPerfMon -- `675bcd5` Correct comment for 15-of-15 p2sh script size -- `fda3fed` libsecp256k1 integration -- `2e36866` Show nodeid instead of addresses in log (for anonymity) unless otherwise requested -- `cd01a5e` Enable paranoid corruption checks in LevelDB >= 1.16 -- `9365937` Add comment about never updating nTimeOffset past 199 samples -- `403c1bf` contrib: remove getwork-based pyminer (as getwork API call has been removed) -- `0c3e101` contrib: Added systemd .service file in order to help distributions integrate bitcoind -- `0a0878d` doc: Add new DNSseed policy -- `2887bff` Update coding style and add .clang-format -- `5cbda4f` Changed LevelDB cursors to use scoped pointers to ensure destruction when going out of scope -- `b4a72a7` contrib/linearize: split output files based on new-timestamp-year or max-file-size -- `e982b57` Use explicit fflush() instead of setvbuf() -- `234bfbf` contrib: Add init scripts and docs for Upstart and OpenRC -- `01c2807` Add warning about the merkle-tree algorithm duplicate txid flaw -- `d6712db` Also create pid file in non-daemon mode -- `772ab0e` contrib: use batched JSON-RPC in linarize-hashes (optimization) -- `7ab4358` Update bash-completion for v0.10 -- `6e6a36c` contrib: show pull # in prompt for github-merge script -- `5b9f842` Upgrade leveldb to 1.18, make chainstate databases compatible between ARM and x86 (issue #2293) -- `4e7c219` Catch UTXO set read errors and shutdown -- `867c600` Catch LevelDB errors during flush -- `06ca065` Fix CScriptID(const CScript& in) in empty script case Credits ======= Thanks to everyone who contributed to this release: -- 21E14 -- Adam Weiss -- Aitor Pazos -- Alexander Jeng -- Alex Morcos -- Alon Muroch -- Andreas Schildbach -- Andrew Poelstra -- Andy Alness -- Ashley Holman -- Benedict Chan -- Ben Holden-Crowther -- Bryan Bishop -- BtcDrak -- Christian von Roques -- Clinton Christian -- Cory Fields -- Cozz Lovan -- daniel -- Daniel Kraft -- David Hill -- Derek701 -- dexX7 -- dllud -- Dominyk Tiller -- Doug -- elichai -- elkingtowa -- ENikS -- Eric Shaw -- Federico Bond -- Francis GASCHET -- Gavin Andresen -- Giuseppe Mazzotta -- Glenn Willen -- Gregory Maxwell -- gubatron -- HarryWu -- himynameismartin -- Huang Le -- Ian Carroll -- imharrywu -- Jameson Lopp -- Janusz Lenar -- JaSK -- Jeff Garzik -- JL2035 -- Johnathan Corgan -- Jonas Schnelli -- jtimon -- Julian Haight -- Kamil Domanski -- kazcw -- kevin -- kiwigb -- Kosta Zertsekel -- LongShao007 -- Luke Dashjr -- Mark Friedenbach -- Mathy Vanvoorden -- Matt Corallo -- Matthew Bogosian -- Micha -- Michael Ford -- Mike Hearn -- mrbandrews -- mruddy -- ntrgn -- Otto Allmendinger -- paveljanik -- Pavel Vasin -- Peter Todd -- phantomcircuit -- Philip Kaufmann -- Pieter Wuille -- pryds -- randy-waterhouse -- R E Broadley -- Rose Toomey -- Ross Nicoll -- Roy Badami -- Ruben Dario Ponticelli -- Rune K. Svendsen -- Ryan X. Charles -- Saivann -- sandakersmann -- SergioDemianLerner -- shshshsh -- sinetek -- Stuart Cardall -- Suhas Daftuar -- Tawanda Kembo -- Teran McKinney -- tm314159 -- Tom Harding -- Trevin Hofmann -- Whit J -- Wladimir J. van der Laan -- Yoichi Hirai -- Zak Wilcox - As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). From 78f64ef0b2c949496242bd97f403e3717b5f2fad Mon Sep 17 00:00:00 2001 From: Ruben de Vries Date: Tue, 24 Mar 2015 14:29:13 +0100 Subject: [PATCH 096/201] don't trickle for whitelisted nodes Rebased-From: fc720207e0e513e531b1f266b966a2ffa57b936a Github-Pull: #5942 --- src/main.h | 7 ++++++- src/net.cpp | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main.h b/src/main.h index a62bebc49d3..e4096e9612b 100644 --- a/src/main.h +++ b/src/main.h @@ -179,7 +179,12 @@ bool LoadBlockIndex(); void UnloadBlockIndex(); /** Process protocol messages received from a given node */ bool ProcessMessages(CNode* pfrom); -/** Send queued protocol messages to be sent to a give node */ +/** + * Send queued protocol messages to be sent to a give node. + * + * @param[in] pto The node which we are sending messages to. + * @param[in] fSendTrickle When true send the trickled data, otherwise trickle the data until true. + */ bool SendMessages(CNode* pto, bool fSendTrickle); /** Run an instance of the script checking thread */ void ThreadScriptCheck(); diff --git a/src/net.cpp b/src/net.cpp index 7ed9d65fb2d..1d95932ca6a 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -1456,7 +1456,7 @@ void ThreadMessageHandler() { TRY_LOCK(pnode->cs_vSend, lockSend); if (lockSend) - g_signals.SendMessages(pnode, pnode == pnodeTrickle); + g_signals.SendMessages(pnode, pnode == pnodeTrickle || pnode->fWhitelisted); } boost::this_thread::interruption_point(); } From 0eccf0ae30d0214701f4eae1d6542283f19109f7 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Thu, 26 Mar 2015 08:48:32 +0100 Subject: [PATCH 097/201] Add commits (up to now) to release notes --- doc/release-notes.md | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index 53ea3aed4e5..74b387d38c3 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -55,27 +55,56 @@ Detailed release notes follow. This overview includes changes that affect extern behavior, not code moves, refactors or string updates. RPC: +- `7f502be` fix crash: createmultisig and addmultisigaddress -Block and transaction handling: +Block (database) and transaction handling: +- `1d2cdd2` Fix InvalidateBlock to add chainActive.Tip to setBlockIndexCandidates +- `c91c660` fix InvalidateBlock to repopulate setBlockIndexCandidates +- `002c8a2` fix possible block db breakage during re-index P2P protocol and network code: +- `78f64ef` don't trickle for whitelisted nodes +- `ca301bf` Reduce fingerprinting through timestamps in 'addr' messages. +- `200f293` Ignore getaddr messages on Outbound connections. +- `d5d8998` Limit message sizes before transfer +- `aeb9279` Better fingerprinting protection for non-main-chain getdatas. Validation: +- `d148f62` Acquire CCheckQueue's lock to avoid race condition Build system: +- `8752b5c` 0.10 fix for crashes on OSX 10.6 Wallet: +- N/A GUI: +- `2c08406` some mac specifiy cleanup (memory handling, unnecessary code) +- `81145a6` fix OSX dock icon window reopening +- `786cf72` fix a issue where "command line options"-action overwrite "Preference"-action (on OSX) Tests: +- `1117378` add RPC test for InvalidateBlock Miscellaneous: +- `c9e022b` Initialization: set Boost path locale in main thread +- `23126a0` Sanitize command strings before logging them. Credits ======= Thanks to everyone who contributed to this release: -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). +- Alex Morcos +- Cory Fields +- dexX7 +- fsb4000 +- Gregory Maxwell +- Ivan Pustogarov +- Jonas Schnelli +- Pieter Wuille +- Ruben de Vries +- Suhas Daftuar +- Wladimir J. van der Laan +As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). From 4635a4c4e7b706f4fab35a06cf2782d55a11b1b8 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Thu, 26 Mar 2015 08:59:06 +0100 Subject: [PATCH 098/201] Translations update from transifex --- doc/release-notes.md | 4 +- src/qt/bitcoinstrings.cpp | 4 + src/qt/locale/bitcoin_af_ZA.ts | 8 - src/qt/locale/bitcoin_ar.ts | 24 +- src/qt/locale/bitcoin_be_BY.ts | 8 - src/qt/locale/bitcoin_bg.ts | 272 +++++++- src/qt/locale/bitcoin_ca.ts | 124 ++-- src/qt/locale/bitcoin_ca@valencia.ts | 55 -- src/qt/locale/bitcoin_ca_ES.ts | 124 ++-- src/qt/locale/bitcoin_cs.ts | 372 ++++++++-- src/qt/locale/bitcoin_cy.ts | 4 - src/qt/locale/bitcoin_da.ts | 124 ++-- src/qt/locale/bitcoin_de.ts | 130 ++-- src/qt/locale/bitcoin_el_GR.ts | 53 -- src/qt/locale/bitcoin_en.ts | 113 ++-- src/qt/locale/bitcoin_eo.ts | 68 +- src/qt/locale/bitcoin_es.ts | 186 +++-- src/qt/locale/bitcoin_es_CL.ts | 112 +++- src/qt/locale/bitcoin_es_DO.ts | 68 +- src/qt/locale/bitcoin_es_MX.ts | 4 - src/qt/locale/bitcoin_es_UY.ts | 4 - src/qt/locale/bitcoin_et.ts | 60 +- src/qt/locale/bitcoin_eu_ES.ts | 4 - src/qt/locale/bitcoin_fa.ts | 20 - src/qt/locale/bitcoin_fa_IR.ts | 16 +- src/qt/locale/bitcoin_fi.ts | 406 +++++++++-- src/qt/locale/bitcoin_fr.ts | 132 ++-- src/qt/locale/bitcoin_fr_CA.ts | 4 - src/qt/locale/bitcoin_gl.ts | 48 -- src/qt/locale/bitcoin_he.ts | 52 -- src/qt/locale/bitcoin_hi_IN.ts | 8 - src/qt/locale/bitcoin_hr.ts | 8 - src/qt/locale/bitcoin_hu.ts | 96 ++- src/qt/locale/bitcoin_id_ID.ts | 20 - src/qt/locale/bitcoin_it.ts | 757 +++++++++++++-------- src/qt/locale/bitcoin_ja.ts | 1229 ++++++++++++++++++++++++++++++++-- src/qt/locale/bitcoin_ka.ts | 48 -- src/qt/locale/bitcoin_kk_KZ.ts | 4 - src/qt/locale/bitcoin_ko_KR.ts | 30 - src/qt/locale/bitcoin_la.ts | 48 -- src/qt/locale/bitcoin_lt.ts | 8 - src/qt/locale/bitcoin_lv_LV.ts | 16 - src/qt/locale/bitcoin_mn.ts | 12 - src/qt/locale/bitcoin_ms_MY.ts | 4 - src/qt/locale/bitcoin_nb.ts | 143 ++-- src/qt/locale/bitcoin_nl.ts | 122 ++-- src/qt/locale/bitcoin_pam.ts | 12 - src/qt/locale/bitcoin_pl.ts | 665 ++++++++++++++---- src/qt/locale/bitcoin_pt_BR.ts | 326 +++++++-- src/qt/locale/bitcoin_pt_PT.ts | 134 ++-- src/qt/locale/bitcoin_ro_RO.ts | 221 ++++-- src/qt/locale/bitcoin_ru.ts | 128 ++-- src/qt/locale/bitcoin_sah.ts | 4 - src/qt/locale/bitcoin_sk.ts | 132 ++-- src/qt/locale/bitcoin_sl_SI.ts | 24 - src/qt/locale/bitcoin_sq.ts | 200 +++++- src/qt/locale/bitcoin_sr.ts | 4 - src/qt/locale/bitcoin_sv.ts | 124 ++-- src/qt/locale/bitcoin_th_TH.ts | 4 - src/qt/locale/bitcoin_tr.ts | 128 ++-- src/qt/locale/bitcoin_uk.ts | 120 ++-- src/qt/locale/bitcoin_ur_PK.ts | 8 - src/qt/locale/bitcoin_uz@Cyrl.ts | 4 - src/qt/locale/bitcoin_vi.ts | 4 - src/qt/locale/bitcoin_vi_VN.ts | 644 +++++++++++++++++- src/qt/locale/bitcoin_zh_CN.ts | 604 +++++++++++++++-- src/qt/locale/bitcoin_zh_TW.ts | 124 ++-- 67 files changed, 6254 insertions(+), 2516 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index 74b387d38c3..5083e6ccd6a 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -2,8 +2,8 @@ Bitcoin Core version 0.10.1 is now available from: https://bitcoin.org/bin/0.10.1/ -This is a new minor version release, bringing bug fixes and robustness -improvements. If you are using 0.10.0, it is recommended to upgrade to this +This is a new minor version release, bringing bug fixes and translation +updates. If you are using 0.10.0, it is recommended to upgrade to this version. Please report bugs using the issue tracker at github: diff --git a/src/qt/bitcoinstrings.cpp b/src/qt/bitcoinstrings.cpp index a19dab4577f..cd3a92ba314 100644 --- a/src/qt/bitcoinstrings.cpp +++ b/src/qt/bitcoinstrings.cpp @@ -100,6 +100,8 @@ QT_TRANSLATE_NOOP("bitcoin-core", "" "Query for peer addresses via DNS lookup, if low on addresses (default: 1 " "unless -connect)"), QT_TRANSLATE_NOOP("bitcoin-core", "" +"Require high priority for relaying free or low-fee transactions (default:%u)"), +QT_TRANSLATE_NOOP("bitcoin-core", "" "Set maximum size of high-priority/low-fee transactions in bytes (default: %d)"), QT_TRANSLATE_NOOP("bitcoin-core", "" "Set the number of script verification threads (%u to %d, 0 = auto, <0 = " @@ -198,6 +200,7 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Error loading wallet.dat"), QT_TRANSLATE_NOOP("bitcoin-core", "Error loading wallet.dat: Wallet corrupted"), QT_TRANSLATE_NOOP("bitcoin-core", "Error loading wallet.dat: Wallet requires newer version of Bitcoin Core"), QT_TRANSLATE_NOOP("bitcoin-core", "Error opening block database"), +QT_TRANSLATE_NOOP("bitcoin-core", "Error reading from database, shutting down."), QT_TRANSLATE_NOOP("bitcoin-core", "Error"), QT_TRANSLATE_NOOP("bitcoin-core", "Error: A fatal internal error occured, see debug.log for details"), QT_TRANSLATE_NOOP("bitcoin-core", "Error: Disk space is low!"), @@ -243,6 +246,7 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Password for JSON-RPC connections"), QT_TRANSLATE_NOOP("bitcoin-core", "Prepend debug output with timestamp (default: %u)"), QT_TRANSLATE_NOOP("bitcoin-core", "RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions)"), QT_TRANSLATE_NOOP("bitcoin-core", "RPC server options:"), +QT_TRANSLATE_NOOP("bitcoin-core", "RPC support for HTTP persistent connections (default: %d)"), QT_TRANSLATE_NOOP("bitcoin-core", "Randomly drop 1 of every network messages"), QT_TRANSLATE_NOOP("bitcoin-core", "Randomly fuzz 1 of every network messages"), QT_TRANSLATE_NOOP("bitcoin-core", "Rebuild block chain index from current blk000??.dat files"), diff --git a/src/qt/locale/bitcoin_af_ZA.ts b/src/qt/locale/bitcoin_af_ZA.ts index c369c3c68ff..3ca7164e68d 100644 --- a/src/qt/locale/bitcoin_af_ZA.ts +++ b/src/qt/locale/bitcoin_af_ZA.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - Dubbel-klik om die adres of etiket te wysig - - Create a new address Skep 'n nuwe adres @@ -659,10 +655,6 @@ Laai adresse... - Invalid amount - Ongeldige bedrag - - Insufficient funds Onvoldoende fondse diff --git a/src/qt/locale/bitcoin_ar.ts b/src/qt/locale/bitcoin_ar.ts index 101f51f8dcb..5662054279d 100644 --- a/src/qt/locale/bitcoin_ar.ts +++ b/src/qt/locale/bitcoin_ar.ts @@ -2,8 +2,8 @@ AddressBookPage - Double-click to edit address or label - أنقر بالماوس مرتين لتعديل العنوان او الوصف + Right-click to edit address or label + انقر بالزر الايمن لتعديل العنوان Create a new address @@ -295,6 +295,14 @@ عميل bitcion core + Importing blocks from disk... + استيراد كتل من القرص ... + + + Reindexing blocks on disk... + إعادة فهرسة الكتل على القرص + + Send coins to a Bitcoin address ارسل عملات الى عنوان بيتكوين @@ -1675,10 +1683,6 @@ تحذير: مساحة القرص منخفضة - Error: Wallet locked, unable to create transaction! - تحذير: المحفظة مغلقة , لا تستطيع تنفيذ المعاملة - - Failed to listen on any port. Use -listen=0 if you want this. فشل في الاستماع على أي منفذ. استخدام الاستماع = 0 إذا كنت تريد هذا. @@ -1747,10 +1751,6 @@ عنوان البروكسي غير صحيح : '%s' - Invalid amount - قيمة غير صحيحة - - Insufficient funds اموال غير كافية @@ -1771,10 +1771,6 @@ انتهاء التحميل - To use the %s option - لاستخدام %s الخيار - - Error خطأ diff --git a/src/qt/locale/bitcoin_be_BY.ts b/src/qt/locale/bitcoin_be_BY.ts index e63628396c8..ad0f8cf923a 100644 --- a/src/qt/locale/bitcoin_be_BY.ts +++ b/src/qt/locale/bitcoin_be_BY.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - Двайны клік для рэдагавання адрасу ці пазнакі - - Create a new address Стварыць новы адрас @@ -955,10 +951,6 @@ Address: %4 Памылка загрузкі wallet.dat - Invalid amount - Памылковая колькасць - - Insufficient funds Недастаткова сродкаў diff --git a/src/qt/locale/bitcoin_bg.ts b/src/qt/locale/bitcoin_bg.ts index 3095aa11728..e810dfad045 100644 --- a/src/qt/locale/bitcoin_bg.ts +++ b/src/qt/locale/bitcoin_bg.ts @@ -2,18 +2,26 @@ AddressBookPage - Double-click to edit address or label - Двоен клик за редакция на адрес или име - - Create a new address Създаване на нов адрес + &New + Нов + + Copy the currently selected address to the system clipboard Копиране на избрания адрес + &Copy + Копирай + + + C&lose + Затвори + + &Copy Address &Копирай @@ -26,10 +34,26 @@ Запишете данните от текущия раздел във файл + &Export + Изнеси + + &Delete &Изтриване + Choose the address to send coins to + Изберете адрес, на който да се изпращат монети + + + Choose the address to receive coins with + Изберете адрес за получаване на монети + + + C&hoose + Избери + + Sending addresses Адреси за изпращане @@ -38,6 +62,10 @@ Адреси за получаване + These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. + Това са адресите на получателите на плащания. Винаги проверявайте размера на сумата и адреса на получателя, преди да изпратите монети. + + Copy &Label Копирай &име @@ -231,10 +259,22 @@ &Смяна на паролата... + Open &URI... + Отвори &URI... + + + Bitcoin Core client + Bitcoin Core клиент + + Send coins to a Bitcoin address Изпращане към Биткоин адрес + Backup wallet to another location + Запазване на портфейла на друго място + + Change the passphrase used for wallet encryption Променя паролата за портфейла @@ -255,6 +295,10 @@ &Изпращане + &Receive + &Получаване + + &Show / Hide &Покажи / Скрий @@ -278,6 +322,10 @@ Tabs toolbar Раздели + + &About Bitcoin Core + &Относно Bitcoin Core + %n active connection(s) to Bitcoin network %n връзка към Биткоин мрежата%n връзки към Биткоин мрежата @@ -331,6 +379,18 @@ Входяща трансакция + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + Дата: %1 +Сума: %2 +Вид: %3 +Адрес: %4 + + + Wallet is <b>encrypted</b> and currently <b>unlocked</b> Портфейлът е <b>криптиран</b> и <b>отключен</b> @@ -393,6 +453,14 @@ Копирай сума + Copy transaction ID + Копирай транзакция с ID + + + none + нищо + + yes да @@ -401,10 +469,18 @@ не + This label turns red, if any recipient receives an amount smaller than %1. + Това наименование се оцветява в червено, ако произволен получател получи сума по-малка от %1. + + (no label) (без име) - + + (change) + (промени) + + EditAddressDialog @@ -474,6 +550,14 @@ версия + (%1-bit) + (%1-битов) + + + About Bitcoin Core + За Bitcoin Core + + Usage: Използване: @@ -511,10 +595,26 @@ &Пускане на Биткоин при вход в системата + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + IP адрес на прокси (напр. за IPv4: 127.0.0.1 / за IPv6: ::1) + + + &Reset Options + &Нулирай настройките + + &Network &Мрежа + W&allet + По&ртфейл + + + Expert + Експерт + + Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. Автоматично отваряне на входящия Bitcoin порт. Работи само с рутери поддържащи UPnP. @@ -587,6 +687,10 @@ подразбиране + none + нищо + + The supplied proxy address is invalid. Прокси адресът е невалиден. @@ -598,6 +702,10 @@ Форма + 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. + Текущата информация на екрана може да не е актуална. Вашият портфейл ще се синхронизира автоматично с мрежата на Биткоин, щом поне една връзката с нея се установи; този процес все още не е приключил. + + Available: Налично: @@ -606,6 +714,10 @@ Изчакващо: + Balances + Баланс + + Total: Общо: @@ -621,6 +733,10 @@ PaymentServer + Requested payment amount of %1 is too small (considered dust). + Заявената сума за плащане: %1 е твърде малка (счита се за отпадък) + + Payment acknowledged Плащането е приета @@ -641,7 +757,23 @@ QRImageWidget - + + &Save Image... + &Запиши изображение... + + + &Copy Image + &Копирай изображение + + + Save QR Code + Запази QR Код + + + PNG Image (*.png) + PNG Изображение (*.png) + + RPCConsole @@ -661,6 +793,10 @@ Данни + General + Основни + + Using OpenSSL version Използване на OpenSSL версия @@ -681,10 +817,46 @@ Текущ брой блокове + Received + Получени + + + Sent + Изпратени + + + &Peers + &Пиъри + + + Select a peer to view detailed information. + Избери пиър за детайлна информация. + + + Version + Версия + + Last block time Време на последния блок + &Open + &Отвори + + + &Console + &Конзола + + + &Network Traffic + &Мрежов Трафик + + + &Clear + &Изчисти + + Totals Общо: @@ -704,10 +876,26 @@ ReceiveCoinsDialog + &Amount: + &Сума + + &Label: &Име: + Use this form to request payments. All fields are <b>optional</b>. + Използвате този формуляр за заявяване на плащания. Всички полета са <b>незадължителни</b>. + + + An optional amount to request. Leave this empty or zero to not request a specific amount. + Незадължително заявяване на сума. Оставете полето празно или нулево, за да не заявите конкретна сума. + + + Clear all fields of the form. + Изчисти всички полета от формуляра. + + Clear Изчистване @@ -735,6 +923,14 @@ ReceiveRequestDialog + Copy &Address + &Копирай адрес + + + &Save Image... + &Запиши изображение... + + Payment information Данни за плащането @@ -781,7 +977,11 @@ (no label) (без име) - + + (no amount) + (липсва сума) + + SendCoinsDialog @@ -813,6 +1013,10 @@ Добави &получател + Clear all fields of the form. + Изчисти всички полета от формуляра. + + Clear &All &Изчисти @@ -837,6 +1041,10 @@ Копирай сума + Total Amount %1 (= %2) + Пълна сума %1 (= %2) + + or или @@ -888,6 +1096,10 @@ &Име: + Choose previously used address + Изберете използван преди адрес + + This is a normal payment. Това е нормално плащане. @@ -934,6 +1146,10 @@ Можете да подпишете съобщение като доказателство, че притежавате определен адрес. Бъдете внимателни и не подписвайте съобщения, които биха разкрили лична информация без вашето съгласие. + Choose previously used address + Изберете използван преди адрес + + Alt+A Alt+A @@ -990,6 +1206,10 @@ Моля проверете адреса и опитайте отново. + The entered address does not refer to a key. + Въведеният адрес не може да се съпостави с валиден ключ. + + Wallet unlock was cancelled. Отключването на портфейла беше отменено. @@ -1029,6 +1249,10 @@ SplashScreen + The Bitcoin Core developers + Разработчици на Bitcoin Core + + [testnet] [testnet] @@ -1316,6 +1540,10 @@ Копирай сума + Copy transaction ID + Копирай транзакция с ID + + Edit label Редактирай име @@ -1392,6 +1620,10 @@ WalletView + &Export + Изнеси + + Export the data in the current tab to a file Запишете данните от текущия раздел във файл @@ -1399,7 +1631,15 @@ Backup Wallet Запазване на портфейла - + + Backup Failed + Неуспешно запазване на портфейла + + + Backup Successful + Успешно запазване на портфейла + + bitcoin-core @@ -1411,6 +1651,10 @@ Определете директория за данните + Specify your own public address + Въведете Ваш публичен адрес + + Use the test network Използвайте тестовата мрежа @@ -1455,6 +1699,14 @@ Данни + Invalid amount for -minrelaytxfee=<amount>: '%s' + Невалидна сума за -minrelaytxfee=<amount>: '%s' + + + Invalid amount for -mintxfee=<amount>: '%s' + Невалидна сума за -mintxfee=<amount>: '%s' + + Send trace/debug info to console instead of debug.log file Изпрати локализиращата или дебъг информацията към конзолата, вместо файлът debug.log @@ -1519,6 +1771,10 @@ Невалиден -proxy address: '%s' + Invalid amount for -paytxfee=<amount>: '%s' + Невалидна сума за -paytxfee=<amount>: '%s' + + Insufficient funds Недостатъчно средства diff --git a/src/qt/locale/bitcoin_ca.ts b/src/qt/locale/bitcoin_ca.ts index 3e87383c503..9d934cd602d 100644 --- a/src/qt/locale/bitcoin_ca.ts +++ b/src/qt/locale/bitcoin_ca.ts @@ -2,8 +2,8 @@ AddressBookPage - Double-click to edit address or label - Feu doble clic per editar l'adreça o l'etiqueta + Right-click to edit address or label + Feu clic dret per a editar l'adreça o l'etiqueta Create a new address @@ -570,7 +570,7 @@ Address: %4 Amount - Quantitat + Import Received with label @@ -1285,6 +1285,10 @@ Address: %4 Reemborsament de %1 + Payment request DoS protection + Protecció de DoS per a la sol·licitud de pagament + + Error communicating with %1: %2 Error en comunicar amb %1: %2 @@ -1324,7 +1328,7 @@ Address: %4 QObject Amount - Quantitat + Import Enter a Bitcoin address (e.g. %1) @@ -2428,7 +2432,7 @@ Address: %4 Amount - Quantitat + Import true @@ -2803,29 +2807,6 @@ Address: %4 Accepta connexions de fora (per defecte: 1 si no -proxy o -connect) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, heu de establir una contrasenya RPC al fitxer de configuració: %s -Es recomana que useu la següent contrasenya aleatòria: -rpcuser=bitcoinrpc -rpcpassword=%s -(no necesiteu recordar aquesta contrasenya) -El nom d'usuari i la contrasenya NO HAN de ser els mateixos. -Si el fitxer no existeix, crea'l amb els permisos de fitxer de només lectura per al propietari. -També es recomana establir la notificació d'alertes i així sereu notificat de les incidències; -per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 Vincula a una adreça específica i sempre escolta-hi. Utilitza la notació [host]:port per IPv6 @@ -2842,14 +2823,6 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Entra en el mode de proves de regressió, que utilitza una cadena especial en què els blocs poden resoldre's al moment. - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Error: La transacció ha estat rebutjada. Això pot passar si alguna de les monedes del teu moneder ja s'han gastat, com si haguesis usat una copia de l'arxiu wallet.dat i s'haguessin gastat monedes de la copia però sense marcar com gastades en aquest. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - Error: Aquesta transacció requereix una comissió d'almenys %s degut al seu import, complexitat o per l'ús de fons recentment rebuts! - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Executa una ordre quan una transacció del moneder canviï (%s en cmd es canvia per TxID) @@ -2962,10 +2935,6 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Error: Espai al disc baix! - Error: Wallet locked, unable to create transaction! - Error: El moneder està bloquejat, no és possible crear la transacció! - - Failed to listen on any port. Use -listen=0 if you want this. Ha fallat escoltar a qualsevol port. Feu servir -listen=0 si voleu fer això. @@ -3086,10 +3055,22 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Comissions (en BTC/Kb) inferiors a això es consideren de comissió zero per a la creació de la transacció (per defecte: %s) + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Si no s'especifica una paytxfee (comissió de transacció de pagament), inclogueu suficient comissió per tal que les transaccions comencin a confirmar-se en una mitja de n blocs (per defecte: %u) + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Import no vàlid per a -maxtxfee=<amount>: '%s' (cal que sigui com a mínim la comissió de minrelay de %s per evitar que les comissions s'encallin) + + Maximum size of data in data carrier transactions we relay and mine (default: %u) Mida màxima de les dades en les transaccions de l'operador en què confiem i en les meves (per defecte: %u) + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Comissions totals màximes que s'utilitzaran en una transacció d'un únic moneder. Si es defineix un valor massa baix les transaccions més grans poden interrompre's (per defecte: %s) + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) Consulta a adreces d'iguals a través de DNS, si es troba baix en adreces (per defecte: 1 a menys que -connect) @@ -3106,6 +3087,33 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Aquest producte inclou programari desenvolupat pel projecte OpenSSL per a ús a l'OpenSSL Toolkit <https://www.openssl.org/> i programari criptogràfic escrit per Eric Young i programari UPnP escrit per Thomas Bernard. + To use bitcoind, or the -server option to bitcoin-qt, you must set an rpcpassword in the configuration file: +%s +It is recommended you use the following random password: +rpcuser=bitcoinrpc +rpcpassword=%s +(you do not need to remember this password) +The username and password MUST NOT be the same. +If the file does not exist, create it with owner-readable-only file permissions. +It is also recommended to set alertnotify so you are notified of problems; +for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + Per utilitzar bitcoind, o l'opció de serviddor de bitcoin-qt, heu de definir una rpcpassword en el fitxer de configuració: +%s +Es recomana que utilitzeu la contrasenya aleatòria següent: +rpcuser=bitcoinrpc +rpcpassword=%s +(no cal que recordeu la contrasenya) +El nom d'usuari i la contrasenya NO han de ser els mateixos. +Si el fitxer no existeix, creeu-ne un amb permisos de lectura només per al seu propietari. +Es recomana definir alertnotify per tal de ser notificat de qualsevol problema; +per exemple: alertnotify=echo %%s | mail -s "Avís de Bitcoin" admin@foo.com + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Avís: s'ha especificat un -maxtxfee molt alt! Comissions tan grans podrien pagar-se en una única transacció. + + Warning: Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly. Avís: comproveu que la data i hora del vostre ordinador siguin correctes! Si el vostre rellotge no és correcte, el Bitcoin Core no funcionarà correctament. @@ -3114,6 +3122,10 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Els iguals en la llista blanca no poden ser bandejats per DoS i es transmetran sempre llurs transaccions, fins i tot si ja són a la mempool. Això és útil, p. ex., per a una passarel·la + Accept public REST requests (default: %u) + Accepta sol·licituds REST públiques (per defecte: %u) + + Cannot resolve -whitebind address: '%s' No es pot resoldre l'adreça -whitebind: «%s» @@ -3150,6 +3162,10 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Ha fallat la inicialització de la comprovació de validesa. El Bitcoin Core s'està aturant. + Invalid amount for -maxtxfee=<amount>: '%s' + Import no vàlid per a -maxtxfee=<amount>: '%s' + + Invalid amount for -minrelaytxfee=<amount>: '%s' Import no vàlid per a -minrelaytxfee=<amount>: «%s» @@ -3166,10 +3182,6 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com S'ha especificat una màscara de xarxa no vàlida a -whitelist: «%s» - Keep at most <n> unconnectable blocks in memory (default: %u) - Manté com a màxim <n> blocs no connectables en memòria (per defecte: %u) - - Keep at most <n> unconnectable transactions in memory (default: %u) Manté com a màxim <n> transaccions no connectables en memòria (per defecte: %u) @@ -3182,10 +3194,6 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Opcions de transmissió del node: - Print block on startup, if found in block index - Imprimeix el block a l'inici, si es troba l'índex de blocs - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) Opcions RPC SSL: (veieu el wiki del Bitcoin per a instruccions de configuració de l'SSL) @@ -3234,6 +3242,10 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Els imports de les transaccions han de ser positius + Transaction too large for fee policy + Transacció massa gran per a la política de comissions + + Transaction too large La transacció és massa gran @@ -3330,10 +3342,6 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Com d'exhaustiva és la verificació de blocs del -checkblocks (0-4, per defecte: %u) - If paytxfee is not set, include enough fee so transactions are confirmed on average within n blocks (default: %u) - Si no es defineix una comissió de pagament de transacció (paytxfee), inclogueu suficient comissió per tal que les transaccions puguin confirmar-se cada n blocs com a mitja (per defecte: %u) - - Log transaction priority and fee per kB when mining blocks (default: %u) Enregistreu la prioritat de la transacció i la comissió per kB en minar blocs (per defecte: %u) @@ -3426,10 +3434,6 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Posa davant de la sortida de depuració una marca horària (per defecte: %u) - Print block tree on startup (default: %u) - Imprimeix l'arbre de blocs a l'inici (per defecte: %u) - - Relay and mine data carrier transactions (default: %u) Retransmet i mina les transaccions de l'operador (per defecte: %u) @@ -3506,10 +3510,6 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Import no vàlid per a -paytxfee=<amount>: «%s» - Invalid amount - Import no vàlid - - Insufficient funds Balanç insuficient @@ -3542,10 +3542,6 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Ha acabat la càrrega - To use the %s option - Utilitza l'opció %s - - Error Error diff --git a/src/qt/locale/bitcoin_ca@valencia.ts b/src/qt/locale/bitcoin_ca@valencia.ts index d3bf33ebfbe..12f18f66ac1 100644 --- a/src/qt/locale/bitcoin_ca@valencia.ts +++ b/src/qt/locale/bitcoin_ca@valencia.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - Feu doble clic per editar l'adreça o l'etiqueta - - Create a new address Crea una nova adreça @@ -2631,29 +2627,6 @@ Address: %4 Accepta connexions de fora (per defecte: 1 si no -proxy o -connect) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, heu d'establir una contrasenya RPC al fitxer de configuració: %s -Es recomana que useu la següent contrasenya aleatòria: -rpcuser=bitcoinrpc -rpcpassword=%s -(no necesiteu recordar esta contrasenya) -El nom d'usuari i la contrasenya NO HAN de ser els mateixos. -Si el fitxer no existeix, crea'l amb els permisos de fitxer de només lectura per al propietari. -També es recomana establir la notificació d'alertes i així sereu notificat de les incidències; -per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 Vincula a una adreça específica i sempre escolta-hi. Utilitza la notació [host]:port per IPv6 @@ -2666,14 +2639,6 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Entra en el mode de proves de regressió, que utilitza una cadena especial en què els blocs poden resoldre's al moment. - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Error: La transacció ha estat rebutjada. Això pot passar si alguna de les monedes del teu moneder ja s'han gastat, com si haguesis usat una copia de l'arxiu wallet.dat i s'hagueren gastat monedes de la copia però sense marcar com gastades en este. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - Error: Esta transacció requereix una comissió d'almenys %s degut al seu import, complexitat o per l'ús de fons recentment rebuts! - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Executa una orde quan una transacció del moneder canvie (%s en cmd es canvia per TxID) @@ -2778,10 +2743,6 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Error: Espai al disc baix! - Error: Wallet locked, unable to create transaction! - Error: El moneder està bloquejat, no és possible crear la transacció! - - Failed to listen on any port. Use -listen=0 if you want this. Ha fallat escoltar a qualsevol port. Feu servir -listen=0 si voleu fer això. @@ -2962,10 +2923,6 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com S'ha especificat una màscara de xarxa no vàlida a -whitelist: «%s» - Keep at most <n> unconnectable blocks in memory (default: %u) - Manté com a màxim <n> blocs no connectables en memòria (per defecte: %u) - - Need to specify a port with -whitebind: '%s' Cal especificar un port amb -whitebind: «%s» @@ -2974,10 +2931,6 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Opcions de transmissió del node: - Print block on startup, if found in block index - Imprimeix el block a l'inici, si es troba l'índex de blocs - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) Opcions RPC SSL: (veieu el wiki del Bitcoin per a instruccions de configuració de l'SSL) @@ -3130,10 +3083,6 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Import no vàlid per a -paytxfee=<amount>: «%s» - Invalid amount - Import no vàlid - - Insufficient funds Balanç insuficient @@ -3166,10 +3115,6 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Ha acabat la càrrega - To use the %s option - Utilitza l'opció %s - - Error Error diff --git a/src/qt/locale/bitcoin_ca_ES.ts b/src/qt/locale/bitcoin_ca_ES.ts index 0004d6da6f5..073c910a1ce 100644 --- a/src/qt/locale/bitcoin_ca_ES.ts +++ b/src/qt/locale/bitcoin_ca_ES.ts @@ -2,8 +2,8 @@ AddressBookPage - Double-click to edit address or label - Feu doble clic per editar l'adreça o l'etiqueta + Right-click to edit address or label + Feu clic dret per a editar l'adreça o l'etiqueta Create a new address @@ -570,7 +570,7 @@ Address: %4 Amount - Quantitat + Import Received with label @@ -1285,6 +1285,10 @@ Address: %4 Reemborsament de %1 + Payment request DoS protection + Protecció de DoS per a la sol·licitud de pagament + + Error communicating with %1: %2 Error en comunicar amb %1: %2 @@ -1324,7 +1328,7 @@ Address: %4 QObject Amount - Quantitat + Import Enter a Bitcoin address (e.g. %1) @@ -2428,7 +2432,7 @@ Address: %4 Amount - Quantitat + Import true @@ -2803,29 +2807,6 @@ Address: %4 Accepta connexions de fora (per defecte: 1 si no -proxy o -connect) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, heu de establir una contrasenya RPC al fitxer de configuració: %s -Es recomana que useu la següent contrasenya aleatòria: -rpcuser=bitcoinrpc -rpcpassword=%s -(no necesiteu recordar aquesta contrasenya) -El nom d'usuari i la contrasenya NO HAN de ser els mateixos. -Si el fitxer no existeix, crea'l amb els permisos de fitxer de només lectura per al propietari. -També es recomana establir la notificació d'alertes i així sereu notificat de les incidències; -per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 Vincula a una adreça específica i sempre escolta-hi. Utilitza la notació [host]:port per IPv6 @@ -2842,14 +2823,6 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Entra en el mode de proves de regressió, que utilitza una cadena especial en què els blocs poden resoldre's al moment. - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Error: La transacció ha estat rebutjada. Això pot passar si alguna de les monedes del teu moneder ja s'han gastat, com si haguesis usat una copia de l'arxiu wallet.dat i s'haguessin gastat monedes de la copia però sense marcar com gastades en aquest. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - Error: Aquesta transacció requereix una comissió d'almenys %s degut al seu import, complexitat o per l'ús de fons recentment rebuts! - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Executa una ordre quan una transacció del moneder canviï (%s en cmd es canvia per TxID) @@ -2962,10 +2935,6 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Error: Espai al disc baix! - Error: Wallet locked, unable to create transaction! - Error: El moneder està bloquejat, no és possible crear la transacció! - - Failed to listen on any port. Use -listen=0 if you want this. Ha fallat escoltar a qualsevol port. Feu servir -listen=0 si voleu fer això. @@ -3086,10 +3055,22 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Comissions (en BTC/Kb) inferiors a això es consideren de comissió zero per a la creació de la transacció (per defecte: %s) + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Si no s'especifica una paytxfee (comissió de transacció de pagament), inclogueu suficient comissió per tal que les transaccions comencin a confirmar-se en una mitja de n blocs (per defecte: %u) + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Import no vàlid per a -maxtxfee=<amount>: '%s' (cal que sigui com a mínim la comissió de minrelay de %s per evitar que les comissions s'encallin) + + Maximum size of data in data carrier transactions we relay and mine (default: %u) Mida màxima de les dades en les transaccions de l'operador en què confiem i en les meves (per defecte: %u) + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Comissions totals màximes que s'utilitzaran en una transacció d'un únic moneder. Si es defineix un valor massa baix les transaccions més grans poden interrompre's (per defecte: %s) + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) Consulta a adreces d'iguals a través de DNS, si es troba baix en adreces (per defecte: 1 a menys que -connect) @@ -3106,6 +3087,33 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Aquest producte inclou programari desenvolupat pel projecte OpenSSL per a ús a l'OpenSSL Toolkit <https://www.openssl.org/> i programari criptogràfic escrit per Eric Young i programari UPnP escrit per Thomas Bernard. + To use bitcoind, or the -server option to bitcoin-qt, you must set an rpcpassword in the configuration file: +%s +It is recommended you use the following random password: +rpcuser=bitcoinrpc +rpcpassword=%s +(you do not need to remember this password) +The username and password MUST NOT be the same. +If the file does not exist, create it with owner-readable-only file permissions. +It is also recommended to set alertnotify so you are notified of problems; +for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + Per utilitzar bitcoind, o l'opció de serviddor de bitcoin-qt, heu de definir una rpcpassword en el fitxer de configuració: +%s +Es recomana que utilitzeu la contrasenya aleatòria següent: +rpcuser=bitcoinrpc +rpcpassword=%s +(no cal que recordeu la contrasenya) +El nom d'usuari i la contrasenya NO han de ser els mateixos. +Si el fitxer no existeix, creeu-ne un amb permisos de lectura només per al seu propietari. +Es recomana definir alertnotify per tal de ser notificat de qualsevol problema; +per exemple: alertnotify=echo %%s | mail -s "Avís de Bitcoin" admin@foo.com + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Avís: s'ha especificat un -maxtxfee molt alt! Comissions tan grans podrien pagar-se en una única transacció. + + Warning: Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly. Avís: comproveu que la data i hora del vostre ordinador siguin correctes! Si el vostre rellotge no és correcte, el Bitcoin Core no funcionarà correctament. @@ -3114,6 +3122,10 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Els iguals en la llista blanca no poden ser bandejats per DoS i es transmetran sempre llurs transaccions, fins i tot si ja són a la mempool. Això és útil, p. ex., per a una passarel·la + Accept public REST requests (default: %u) + Accepta sol·licituds REST públiques (per defecte: %u) + + Cannot resolve -whitebind address: '%s' No es pot resoldre l'adreça -whitebind: «%s» @@ -3150,6 +3162,10 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Ha fallat la inicialització de la comprovació de validesa. El Bitcoin Core s'està aturant. + Invalid amount for -maxtxfee=<amount>: '%s' + Import no vàlid per a -maxtxfee=<amount>: '%s' + + Invalid amount for -minrelaytxfee=<amount>: '%s' Import no vàlid per a -minrelaytxfee=<amount>: «%s» @@ -3166,10 +3182,6 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com S'ha especificat una màscara de xarxa no vàlida a -whitelist: «%s» - Keep at most <n> unconnectable blocks in memory (default: %u) - Manté com a màxim <n> blocs no connectables en memòria (per defecte: %u) - - Keep at most <n> unconnectable transactions in memory (default: %u) Manté com a màxim <n> transaccions no connectables en memòria (per defecte: %u) @@ -3182,10 +3194,6 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Opcions de transmissió del node: - Print block on startup, if found in block index - Imprimeix el block a l'inici, si es troba l'índex de blocs - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) Opcions RPC SSL: (veieu el wiki del Bitcoin per a instruccions de configuració de l'SSL) @@ -3234,6 +3242,10 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Els imports de les transaccions han de ser positius + Transaction too large for fee policy + Transacció massa gran per a la política de comissions + + Transaction too large La transacció és massa gran @@ -3330,10 +3342,6 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Com d'exhaustiva és la verificació de blocs del -checkblocks (0-4, per defecte: %u) - If paytxfee is not set, include enough fee so transactions are confirmed on average within n blocks (default: %u) - Si no es defineix una comissió de pagament de transacció (paytxfee), inclogueu suficient comissió per tal que les transaccions puguin confirmar-se cada n blocs com a mitja (per defecte: %u) - - Log transaction priority and fee per kB when mining blocks (default: %u) Enregistreu la prioritat de la transacció i la comissió per kB en minar blocs (per defecte: %u) @@ -3426,10 +3434,6 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Posa davant de la sortida de depuració una marca horària (per defecte: %u) - Print block tree on startup (default: %u) - Imprimeix l'arbre de blocs a l'inici (per defecte: %u) - - Relay and mine data carrier transactions (default: %u) Retransmet i mina les transaccions de l'operador (per defecte: %u) @@ -3506,10 +3510,6 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Import no vàlid per a -paytxfee=<amount>: «%s» - Invalid amount - Import no vàlid - - Insufficient funds Balanç insuficient @@ -3542,10 +3542,6 @@ per exemple: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Ha acabat la càrrega - To use the %s option - Utilitza l'opció %s - - Error Error diff --git a/src/qt/locale/bitcoin_cs.ts b/src/qt/locale/bitcoin_cs.ts index bc2a2ef7b5d..966303c33a7 100644 --- a/src/qt/locale/bitcoin_cs.ts +++ b/src/qt/locale/bitcoin_cs.ts @@ -2,8 +2,8 @@ AddressBookPage - Double-click to edit address or label - Dvojklikem myši začneš upravovat označení adresy + Right-click to edit address or label + Pravým tlačítkem myši začneš upravovat označení adresy Create a new address @@ -430,10 +430,26 @@ No block source available... Není dostupný žádný zdroj bloků... + + %n hour(s) + %n hodinu%n hodiny%n hodin + + + %n day(s) + %n den%n dny%n dnů + + + %n week(s) + %n týden%n týdny%n týdnů + %1 and %2 %1 a %2 + + %n year(s) + %n rok%n roky%n roků + %1 behind Stahuji ještě bloky transakcí za poslední %1 @@ -462,6 +478,10 @@ Up to date Aktuální + + Processed %n blocks of transaction history. + Zpracován %n blok transakční historie.Zpracovány %n bloky transakční historie.Zpracováno %n bloků transakční historie. + Catching up... Stahuji... @@ -505,6 +525,10 @@ Adresa: %4 CoinControlDialog + Coin Selection + Výběr mincí + + Quantity: Počet: @@ -553,6 +577,14 @@ Adresa: %4 Částka + Received with label + Příjem na označení + + + Received with address + Příjem na adrese + + Date Datum @@ -884,7 +916,15 @@ Adresa: %4 Error Chyba - + + %n GB of free space available + %n GB volného místa%n GB volného místa%n GB volného místa + + + (of %n GB needed) + (z potřebného %n GB)(z potřebných %n GB)(z potřebných %n GB) + + OpenURIDialog @@ -1007,6 +1047,14 @@ Adresa: %4 Namapovat port přes &UPnP + Connect to the Bitcoin network through a SOCKS5 proxy. + Připojí se do Bitcoinové sítě přes SOCKS5 proxy. + + + &Connect through SOCKS5 proxy (default proxy): + &Připojit přes SOCKS5 proxy (výchozí proxy): + + Proxy &IP: &IP adresa proxy: @@ -1138,6 +1186,10 @@ Adresa: %4 Vytěžené mince, které ještě nejsou zralé + Balances + Stavy účtů + + Total: Celkem: @@ -1150,6 +1202,14 @@ Adresa: %4 Aktuální stav účtu sledovaných adres + Spendable: + Běžné: + + + Recent transactions + Poslední transakce + + Unconfirmed transactions to watch-only addresses Nepotvrzené transakce sledovaných adres @@ -1229,6 +1289,10 @@ Adresa: %4 Vrácení peněz od %1 + Payment request DoS protection + DoS ochrana platebního požadavku + + Error communicating with %1: %2 Chyba při komunikaci s %1: %2 @@ -1785,6 +1849,54 @@ Adresa: %4 Vlastní adresa pro drobné + Transaction Fee: + Transakční poplatek: + + + Choose... + Zvol... + + + collapse fee-settings + sbal nastavení poplatků + + + Minimize + Skryj + + + per kilobyte + za kilobajt + + + 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. + Pokud je vlastní poplatek nastavený na 1000 satoshi a transakce má pouze 250 bajtů, tak „za kilobajt“ zaplatí poplatek jen 250 satoshi, zatímco „přinejmenším“ zaplatí 1000 satoshi. Pro transakce větší než kilobajt obě možnosti platí za kilobajt. + + + total at least + přinejmenším + + + (read the tooltip) + (viz bublina) + + + Recommended: + Doporučený: + + + Custom: + Vlastní: + + + Send as zero-fee transaction if possible + Pošli transakci pokud možno bez poplatku + + + (confirmation may take longer) + (potvrzení může trvat déle) + + Send to multiple recipients at once Pošli více příjemcům naráz @@ -2216,7 +2328,7 @@ Adresa: %4 watch-only - sledovací + sledovaná label @@ -2226,6 +2338,10 @@ Adresa: %4 Credit Příjem + + matures in %n more block(s) + dozraje po %n blokudozraje po %n blocíchdozraje po %n blocích + not accepted neakceptováno @@ -2413,6 +2529,10 @@ Adresa: %4 Druh transakce. + Whether or not a watch-only address is involved in this transaction. + Zda tato transakce zahrnuje i některou sledovanou adresu. + + Destination address of transaction. Cílová adresa transakce. @@ -2508,6 +2628,10 @@ Adresa: %4 Exportuj transakční historii + Watch-only + Sledovaná + + Exporting Failed Exportování selhalo @@ -2651,30 +2775,6 @@ Adresa: %4 Přijímat spojení zvenčí (výchozí: 1, pokud není zadáno -proxy nebo -connect) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, musíš nastavit rpcpassword v konfiguračním souboru: -%s -Je vhodné použít následující náhodné heslo: -rpcuser=bitcoinrpc -rpcpassword=%s -(není potřeba si ho pamatovat) -rpcuser a rpcpassword NESMÍ být stejné. -Pokud konfigurační soubor ještě neexistuje, vytvoř ho tak, aby ho mohl číst pouze vlastník. -Je také doporučeno si nastavit alertnotify, abys byl upozorněn na případné problémy; -například: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 Poslouchat na zadané adrese. Pro zápis IPv6 adresy použij notaci [adresa]:port @@ -2683,16 +2783,12 @@ například: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Smazat všechny transakce peněženky a při startu obnovit pouze relevantní části řetězce bloků pomocí -rescan - Enter regression test mode, which uses a special chain in which blocks can be solved instantly. - Přepnout do módu testování regresí, který používá speciální řetězec, ve kterém mohou být bloky okamžitě vyřešeny. - - - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Chyba: Transakce byla odmítnuta! Tohle může nastat, pokud nějaké mince z tvé peněženky už jednou byly utraceny, například pokud používáš kopii souboru wallet.dat a mince byly utraceny v druhé kopii, ale nebyly označeny jako utracené v této. + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + Šířen pod softwarovou licencí MIT, viz přiložený soubor COPYING nebo <http://www.opensource.org/licenses/mit-license.php>. - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - Chyba: Tahle transakce vyžaduje transakční poplatek nejméně %s kvůli velikosti zasílané částky, komplexnosti nebo použití nedávno přijatých mincí! + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + Přepnout do módu testování regresí, který používá speciální řetězec, ve kterém mohou být bloky okamžitě vyřešeny. Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) @@ -2735,6 +2831,10 @@ například: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Upozornění: soubor wallet.dat je poškozený, data jsou však zachráněna! Původní soubor wallet.dat je uložený jako wallet.{timestamp}.bak v %s. Pokud je stav tvého účtu nebo transakce nesprávné, zřejmě bys měl obnovit zálohu. + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + Umístit na bílou listinu protějšky připojující se z dané podsítě či IP adresy. Lze zadat i vícekrát. + + (default: 1) (výchozí: 1) @@ -2795,12 +2895,12 @@ například: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Chyba při otevírání databáze bloků - Error: Disk space is low! - Problém: Na disku je málo místa! + Error: A fatal internal error occured, see debug.log for details + Chyba: Stala se fatální vnitřní chyba. detaily viz v debug.log - Error: Wallet locked, unable to create transaction! - Chyba: Peněženka je zamčená, nemohu vytvořit transakci! + Error: Disk space is low! + Problém: Na disku je málo místa! Failed to listen on any port. Use -listen=0 if you want this. @@ -2827,6 +2927,10 @@ například: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Je nedostatek deskriptorů souborů. + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + Připojovat se pouze k uzlům v <net> síti (ipv4, ipv6 nebo onion) + + Rebuild block chain index from current blk000??.dat files Znovu vytvořit index řetězce bloků z aktuálních blk000??.dat souborů @@ -2847,6 +2951,10 @@ například: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Tohle je určeno pro nástroje na regresní testování a vyvíjení aplikací. + Use UPnP to map the listening port (default: %u) + Použít UPnP k namapování naslouchacího portu (výchozí: %u) + + Verifying blocks... Ověřuji bloky... @@ -2891,6 +2999,10 @@ například: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Nedaří se mi získat zámek na datový adresář %s. Bitcoin Core pravděpodobně už jednou běží. + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + Kontinuálně omezovat bezpoplatkové transakce na <n>*1000 bajtů za minutu (výchozí: %u) + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) Vytvářet nové soubory s výchozími systémovými právy namísto umask 077 (uplatní se, pouze pokud je vypnutá funkce peněženky) @@ -2915,6 +3027,10 @@ například: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Poplatky (v BTC/Kb) menší než tato hodnota jsou považovány za nulové pro účely vytváření transakcí (výchozí: %s) + Maximum size of data in data carrier transactions we relay and mine (default: %u) + Maximální velikost dat v transakcích nesoucích data, se kterou jsme ochotni je ještě přeposílat a těžit (výchozí: %u) + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) Při nedostatku adres získat další protějšky z DNS (výchozí: 1, pokud není použito -connect) @@ -2923,6 +3039,10 @@ například: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Nastavit maximální velikost prioritních/nízkopoplatkových transakcí v bajtech (výchozí: %d) + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + Nastavení počtu vláken pro těžení, je-li zapnuté (-1 = všechna jádra, výchozí: %d) + + 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. Tento produkt zahrnuje programy vyvinuté OpenSSL Projektem pro použití v OpenSSL Toolkitu <https://www.openssl.org/> a kryptografický program od Erika Younga a program UPnP od Thomase Bernarda. @@ -2987,8 +3107,8 @@ například: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Ve -whitelist byla zadána neplatná podsíť: '%s' - Keep at most <n> unconnectable blocks in memory (default: %u) - Držet v paměti nejvýše <n> nespojitelných bloků (výchozí: %u) + Keep at most <n> unconnectable transactions in memory (default: %u) + Držet v paměti nejvýše <n> nespojitelných transakcí (výchozí: %u) Need to specify a port with -whitebind: '%s' @@ -2999,10 +3119,6 @@ například: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Možnosti přeposílání: - Print block on startup, if found in block index - Vypsat při startu blok,pokud se nachází v indexu bloků - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) Možnosti SSL pro RPC: (viz instrukce nastavení SSL na Bitcoin Wiki) @@ -3023,6 +3139,10 @@ například: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Posílat stopovací/ladicí informace do konzole místo do souboru debug.log + Send transactions as zero-fee transactions if possible (default: %u) + Posílat transakce pokud možno bez poplatků (výchozí: %u) + + Show all debugging options (usage: --help -help-debug) Zobrazit všechny možnosti ladění (užití: --help -help-debug) @@ -3131,14 +3251,166 @@ například: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Chyba při načítání wallet.dat: peněženka je poškozená + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = ukládat transakční metadata, např. majitele účtu a informace o platebním požadavku, 2 = mazat transakční metadata) + + + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + Promítnout databázovou aktivitu z paměťového prostoru do záznamu na disku každých <n> megabajtů (výchozí: %u) + + + How thorough the block verification of -checkblocks is (0-4, default: %u) + Jak moc důkladná má být verifikace bloků -checkblocks (0-4, výchozí: %u) + + + Log transaction priority and fee per kB when mining blocks (default: %u) + Zaznamenávat během těžení bloků prioritu transakce a poplatek za kB (výchozí: %u) + + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + Spravovat úplný index transakcí, který je využíván rpc voláním getrawtransaction (výchozí: %u) + + + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + Doba ve vteřinách, po kterou se nebudou moci zlobivé protějšky znovu připojit (výchozí: %u) + + + Output debugging information (default: %u, supplying <category> is optional) + Tisknout ladicí informace (výchozí: %u, zadání <category> je volitelné) + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + Použít samostatnou SOCKS5 proxy ke spojení s protějšky přes skryté služby v Toru (výchozí: %s) + + + (default: %s) + (výchozí: %s) + + + Acceptable ciphers (default: %s) + Akceptovatelné šifry (výchozí: %s) + + + Always query for peer addresses via DNS lookup (default: %u) + Vždy získávat adresy dalších protějšků přes DNS (výchozí: %u) + + + Disable safemode, override a real safe mode event (default: %u) + Vypnout bezpečný režim (safemode), překrýt skutečnou událost bezpečného režimu (výchozí: %u) + + Error loading wallet.dat Chyba při načítání wallet.dat + Force safe mode (default: %u) + Vynutit bezpečný mód (výchozí: %u) + + + Generate coins (default: %u) + Těžit (výchozí: %u) + + + How many blocks to check at startup (default: %u, 0 = all) + Kolik bloků při startu zkontrolovat (výchozí: %u, 0 = všechny) + + + Include IP addresses in debug output (default: %u) + Zaznamenávat do ladicích výstupů i IP adresy (výchozí: %u) + + Invalid -proxy address: '%s' Neplatná -proxy adresa: '%s' + Limit size of signature cache to <n> entries (default: %u) + Omezit velikost vyrovnávací paměti pro podpisy na <n> položek (výchozí: %u) + + + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + Čekat na JSON-RPC spojení na <portu> (výchozí: %u nebo testnet: %u) + + + Listen for connections on <port> (default: %u or testnet: %u) + Čekat na spojení na <portu> (výchozí: %u nebo testnet: %u) + + + Maintain at most <n> connections to peers (default: %u) + Povolit nejvýše <n> protějšků (výchozí: %u) + + + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + Maximální velikost přijímacího bufferu pro každé spojení, <n>*1000 bajtů (výchozí: %u) + + + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + Maximální velikost odesílacího bufferu pro každé spojení, <n>*1000 bajtů (výchozí: %u) + + + Only accept block chain matching built-in checkpoints (default: %u) + Uznávat pouze řetězec bloků, který odpovídá vnitřním kontrolním bodům (výchozí: %u) + + + Prepend debug output with timestamp (default: %u) + Připojit před ladicí výstup časové razítko (výchozí: %u) + + + Relay and mine data carrier transactions (default: %u) + Přeposílat a těžit transakce nesoucí data (výchozí: %u) + + + Relay non-P2SH multisig (default: %u) + Přeposílat ne-P2SH multisig (výchozí: %u) + + + Run a thread to flush wallet periodically (default: %u) + Spustit vlákno pročišťující periodicky peněženku (výchozí: %u) + + + Server certificate file (default: %s) + Soubor se serverovým certifikátem (výchozí: %s) + + + Server private key (default: %s) + Soubor se serverovým soukromým klíčem (výchozí: %s) + + + Set key pool size to <n> (default: %u) + Nastavit zásobník klíčů na velikost <n> (výchozí: %u) + + + Set minimum block size in bytes (default: %u) + Nastavit minimální velikost bloku v bajtech (výchozí: %u) + + + Set the number of threads to service RPC calls (default: %d) + Nastavení počtu vláken pro servisní RPC volání (výchozí: %d) + + + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + Nastavit příznak DB_PRIVATE v databázovém prostředí peněženky (výchozí: %u) + + + Specify configuration file (default: %s) + Konfigurační soubor (výchozí: %s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + Zadej časový limit spojení v milivteřinách (minimum: 1, výchozí: %d) + + + Spend unconfirmed change when sending transactions (default: %u) + Utrácet i ještě nepotvrzené drobné při posílání transakcí (výchozí: %u) + + + Stop running after importing blocks from disk (default: %u) + Ukončit se po importu bloků z disku (výchozí: %u) + + + Threshold for disconnecting misbehaving peers (default: %u) + Práh pro odpojování zlobivých protějšků (výchozí: %u) + + Unknown network specified in -onlynet: '%s' V -onlynet byla uvedena neznámá síť: '%s' @@ -3155,10 +3427,6 @@ například: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Neplatná částka pro -paytxfee=<částka>: '%s' - Invalid amount - Neplatná částka - - Insufficient funds Nedostatek prostředků @@ -3191,10 +3459,6 @@ například: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Načítání dokončeno - To use the %s option - K použití volby %s - - Error Chyba diff --git a/src/qt/locale/bitcoin_cy.ts b/src/qt/locale/bitcoin_cy.ts index c68fc274f32..89b0cbe919e 100644 --- a/src/qt/locale/bitcoin_cy.ts +++ b/src/qt/locale/bitcoin_cy.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - Clicio dwywaith i olygu cyfeiriad neu label - - Create a new address Creu cyfeiriad newydd diff --git a/src/qt/locale/bitcoin_da.ts b/src/qt/locale/bitcoin_da.ts index f7335910984..a1d507b5996 100644 --- a/src/qt/locale/bitcoin_da.ts +++ b/src/qt/locale/bitcoin_da.ts @@ -2,8 +2,8 @@ AddressBookPage - Double-click to edit address or label - Dobbeltklik for at redigere adresse eller mærkat + Right-click to edit address or label + Højreklik for at redigere adresse eller mærke Create a new address @@ -1285,6 +1285,14 @@ Adresse: %4 Tilbagebetaling fra %1 + Payment request %2 is too large (%3 bytes, allowed %4 bytes). + Betalingsanmodning %2 er for stor (%3 byte, %4 byte tilladt). + + + Payment request DoS protection + Beskyttelse mod DoS-angreb via betalingsanmodninger + + Error communicating with %1: %2 Fejl under kommunikation med %1: %2 @@ -2803,30 +2811,6 @@ Adresse: %4 Acceptér forbindelser udefra (standard: 1 hvis hverken -proxy eller -connect) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, du skal angive en RPC-adgangskode i konfigurationsfilen: -%s -Det anbefales, at du bruger nedenstående, tilfældige adgangskode: -rpcuser=bitcoinrpc -rpcpassword=%s -(du behøver ikke huske denne adgangskode) -Brugernavnet og adgangskode MÅ IKKE være det samme. -Hvis filen ikke eksisterer, opret den og giv ingen andre end ejeren læserettighed. -Det anbefales også at angive alertnotify, så du påmindes om problemer; -fx: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 Tildel til den givne adresse og lyt altid på den. Brug [vært]:port-notation for IPv6 @@ -2843,14 +2827,6 @@ fx: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Start regressionstesttilstand, som bruger en speciel kæde, hvor blokke kan løses med det samme. - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Fejl: Transaktionen blev afvist. Dette kan ske, hvis nogle af dine bitcoins i din tegnebog allerede er brugt, som hvis du brugte en kopi af wallet.dat og dine bitcoins er blevet brugt i kopien, men ikke er markeret som brugt her. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - Fejl: Denne transaktion kræver et transaktionsgebyr på minimum %s pga. dens beløb, kompleksitet eller anvendelse af nyligt modtagne bitcoins! - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Udfør kommando, når en transaktion i tegnebogen ændres (%s i kommandoen erstattes med TxID) @@ -2963,10 +2939,6 @@ fx: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Fejl: Mangel på ledig diskplads! - Error: Wallet locked, unable to create transaction! - Fejl: Tegnebog låst, kan ikke oprette transaktion! - - Failed to listen on any port. Use -listen=0 if you want this. Lytning på enhver port mislykkedes. Brug -listen=0, hvis du ønsker dette. @@ -3091,10 +3063,22 @@ fx: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Gebyrer (i BTC/Kb) mindre end dette opfattes som nulgebyr for oprettelse af transaktion (standard: %s) + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Hvis paytxfee ikke er sat, inkluderes nok gebyr til at transaktioner begynder at blive bekræftet ingen for gennemsnitligt n blokke (standard: %u) + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Ugyldigt beløb for -maxtxfee=<beløb>: "%s" (skal være på mindst minrelay-gebyret på %s for at undgå hængende transaktioner) + + Maximum size of data in data carrier transactions we relay and mine (default: %u) Maksimal størrelse på data i transaktioner til dataoverførsel, som vi videresender og miner (standard: %u) + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Maksimalt totalgebyr der bruges på en enkelt tegnebogstransaktion. Sættes det for lavt kan store transaktioner afbrydes (standard: %s) + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) Forespørgsel @@ -3111,6 +3095,34 @@ fx: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Dette produkt indeholder software, der er udviklet af OpenSSL-projektet for brug i OpenSSL-værktøjskassen <https://www.openssl.org/>, samt kryptografisk software, der er skrevet af Eric Young, samt UPnP-software, der er skrevet af Thomas Bernard. + To use bitcoind, or the -server option to bitcoin-qt, you must set an rpcpassword in the configuration file: +%s +It is recommended you use the following random password: +rpcuser=bitcoinrpc +rpcpassword=%s +(you do not need to remember this password) +The username and password MUST NOT be the same. +If the file does not exist, create it with owner-readable-only file permissions. +It is also recommended to set alertnotify so you are notified of problems; +for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + For at bruge bitcoind eller valgmuligheden -server i bitcoin-qt skal du oprette et rpcpassword i konfigurationsfilen: +%s +Det anbefales, at du bruger følgende tilfældige adgangskode: +rpcuser=bitcoinrpc +rpcpassword=%s +(du behøver ikke at huske adgangskoden) +Brugernavnet og adgangskoden MÅ IKKE være det samme. +Hvis filen ikke eksisterer, opret den da så kun ejeren har læserettigheder. +Det anbefales også at sætte alertnotify, så du får besked omkring problemer; +for eksempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Advarsel: -maxtxfee er sat meget højt! Så store gebyrer kan betales på en enkelt transaktion. + + Warning: Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly. Advarsel: Undersøg venligst at din computers dato og klokkeslet er korrekt indstillet! Hvis der er fejl i disse vil Bitcoin Core ikke fungere korrekt. @@ -3119,6 +3131,10 @@ fx: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Andre knuder på hvidliste kan ikke DoS-bandlyses, og deres transaktioner videresendes altid, selv hvis de allerede er i mempool'en. Brugbart til fx et adgangspunkt + Accept public REST requests (default: %u) + Acceptér offentlige REST-anmodninger (standard: %u) + + Cannot resolve -whitebind address: '%s' Kan ikke løse -whitebind adresse: "%s" @@ -3155,6 +3171,10 @@ fx: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Sundhedstjek under klargøring mislykkedes. Bitcoin Core lukker ned. + Invalid amount for -maxtxfee=<amount>: '%s' + Ugyldigt beløb for -maxtxfee=<beløb>: "%s" + + Invalid amount for -minrelaytxfee=<amount>: '%s' Ugyldigt beløb til -minrelaytxfee=<beløb>: "%s" @@ -3171,10 +3191,6 @@ fx: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Ugyldig netmaske angivet i -whitelist: "%s" - Keep at most <n> unconnectable blocks in memory (default: %u) - Behold højest <n> uforbindelige blokke i hukommelsen (standard: %u) - - Keep at most <n> unconnectable transactions in memory (default: %u) Behold højest <n> uforbindelige transaktioner i hukommelsen (standard: %u) @@ -3187,10 +3203,6 @@ fx: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Videresendelsesvalgmuligheder for knude: - Print block on startup, if found in block index - Udskriv blok under opstart, hvis den findes i blokindeks - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) Tilvalg for RPC SSL: (se Bitcoin Wiki for instruktioner i SSL-opstart) @@ -3239,6 +3251,10 @@ fx: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Transaktionsbeløb skal være positive + Transaction too large for fee policy + Transaktion for stor til gebyrretningslinjer + + Transaction too large Transaktionen er for stor @@ -3335,10 +3351,6 @@ fx: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Hvor gennemarbejdet blokverificeringen for -checkblocks er (0-4; standard: %u) - If paytxfee is not set, include enough fee so transactions are confirmed on average within n blocks (default: %u) - Hvis paytxfee ikke er angivet, inkludér da nok gebyr til at transaktioner gennemsnitligt bekræftes inden for n blokke (standard: %u) - - Log transaction priority and fee per kB when mining blocks (default: %u) Prioritet for transaktionslog og gebyr pr. kB under udvinding af blokke (standard: %u) @@ -3431,10 +3443,6 @@ fx: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Føj tidsstempel foran fejlsøgningsoutput (standard: %u) - Print block tree on startup (default: %u) - Udskriv bloktræ under opstart (standard: %u) - - Relay and mine data carrier transactions (default: %u) Videresend og udvind databærer-transaktioner (standard: %u) @@ -3513,10 +3521,6 @@ fx: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Ugyldigt beløb for -paytxfee=<beløb>: "%s" - Invalid amount - Ugyldigt beløb - - Insufficient funds Manglende dækning @@ -3549,10 +3553,6 @@ fx: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Indlæsning gennemført - To use the %s option - For at bruge %s mulighed - - Error Fejl diff --git a/src/qt/locale/bitcoin_de.ts b/src/qt/locale/bitcoin_de.ts index 2804d2d6654..3d61eb4d3e4 100644 --- a/src/qt/locale/bitcoin_de.ts +++ b/src/qt/locale/bitcoin_de.ts @@ -2,8 +2,8 @@ AddressBookPage - Double-click to edit address or label - Doppelklick zum Bearbeiten der Adresse oder der Bezeichnung + Right-click to edit address or label + Rechtsklick zum Bearbeiten der Adresse oder der Bezeichnung Create a new address @@ -478,6 +478,10 @@ Up to date Auf aktuellem Stand + + Processed %n blocks of transaction history. + %n Block des Transaktionsverlaufs verarbeitet.%n Blöcke des Transaktionsverlaufs verarbeitet. + Catching up... Hole auf... @@ -862,7 +866,7 @@ Adresse: %4 Set SSL root certificates for payment request (default: -system-) - SSL-Wurzelzertifikate für Zahlungsanforderungen festlegen (Standard: Systemstandard) + SSL-Wurzelzertifikate für Zahlungsanforderungen festlegen (Standard: -system-) Show splash screen on startup (default: 1) @@ -1284,6 +1288,14 @@ Adresse: %4 Rücküberweisung von %1 + Payment request %2 is too large (%3 bytes, allowed %4 bytes). + Zahlungsanforderung %2 ist zu groß (%3 Byte, erlaubt sind %4 Byte). + + + Payment request DoS protection + Zahlungsanforderungs-DoS-Schutz + + Error communicating with %1: %2 Kommunikationsfehler mit %1: %2 @@ -2802,30 +2814,6 @@ Adresse: %4 Eingehende Verbindungen annehmen (Standard: 1, wenn nicht -proxy oder -connect) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, Sie müssen den Wert rpcpasswort in dieser Konfigurationsdatei angeben: -%s -Es wird empfohlen das folgende Zufallspasswort zu verwenden: -rpcuser=bitcoinrpc -rpcpassword=%s -(Sie müssen sich dieses Passwort nicht merken!) -Der Benutzername und das Passwort dürfen NICHT identisch sein. -Falls die Konfigurationsdatei nicht existiert, erzeugen Sie diese bitte mit Leserechten nur für den Dateibesitzer. -Es wird ebenfalls empfohlen alertnotify anzugeben, um im Problemfall benachrichtig zu werden; -zum Beispiel: alertnotify=echo %%s | mail -s \"Bitcoin Alert\" admin@foo.com - - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 An die angegebene Adresse binden und immer abhören. Für IPv6 "[Host]:Port"-Notation verwenden @@ -2842,14 +2830,6 @@ zum Beispiel: alertnotify=echo %%s | mail -s \"Bitcoin Alert\" admin@foo.com Regressionstest-Modus aktivieren, der eine spezielle Blockkette nutzt, in der Blöcke sofort gelöst werden können. - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Fehler: Die Transaktion wurde abgelehnt! Dies kann passieren, wenn einige Bitcoins aus Ihrer Wallet bereits ausgegeben wurden. Beispielsweise weil Sie eine Kopie Ihrer wallet.dat genutzt, die Bitcoins dort ausgegeben haben und dies daher in der derzeit aktiven Wallet nicht vermerkt ist. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - Fehler: Diese Transaktion benötigt aufgrund Ihres Betrags, Ihrer Komplexität oder der Nutzung erst kürzlich erhaltener Zahlungen eine Transaktionsgebühr in Höhe von mindestens %s! - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Befehl ausführen wenn sich eine Wallet-Transaktion verändert (%s im Befehl wird durch die Transaktions-ID ersetzt) @@ -2962,10 +2942,6 @@ zum Beispiel: alertnotify=echo %%s | mail -s \"Bitcoin Alert\" admin@foo.com Fehler: Zu wenig freier Speicherplatz auf dem Datenträger! - Error: Wallet locked, unable to create transaction! - Fehler: Wallet gesperrt, Transaktion kann nicht erstellt werden! - - Failed to listen on any port. Use -listen=0 if you want this. Fehler, es konnte kein Port abgehört werden. Wenn dies so gewünscht wird -listen=0 verwenden. @@ -3090,10 +3066,22 @@ zum Beispiel: alertnotify=echo %%s | mail -s \"Bitcoin Alert\" admin@foo.com Niedrigere Gebühren (in BTC/Kb) als diese werden bei der Transaktionserstellung als gebührenfrei angesehen (Standard: %s) + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Wenn -paytxfee nicht festgelegt wurde Gebühren einschließen, so dass mit der Bestätigung von Transaktionen im Schnitt innerhalb von n Blöcken begonnen wird (Standard: %u) + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Ungültiger Betrag für -maxtxfee=<amount>: '%s' (muss mindestens die minimale Weiterleitungsgebühr in Höhe von %s sein, um zu verhindern dass Transaktionen nicht bearbeitet werden) + + Maximum size of data in data carrier transactions we relay and mine (default: %u) Maximale Datengröße in "Data Carrier"-Transaktionen die weitergeleitet und erarbeitet werden (Standard: %u) + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Maximale Gesamtgebühren je Wallet-Transaktion, ein zu niedriger Wert kann große Transaktionen abbrechen (Standard: %s) + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) Adressen von Gegenstellen via DNS-Namensauflösung finden, falls zu wenige Adressen verfügbar sind (Standard: 1, außer bei -connect) @@ -3110,6 +3098,34 @@ zum Beispiel: alertnotify=echo %%s | mail -s \"Bitcoin Alert\" admin@foo.com Dieses Produkt enthält Software, die vom OpenSSL-Projekt zur Verwendung im OpenSSL-Toolkit <https://www.openssl.org/> entwickelt wird, sowie von Eric Young geschriebene kryptographische Software und von Thomas Bernard geschriebene UPnP-Software. + To use bitcoind, or the -server option to bitcoin-qt, you must set an rpcpassword in the configuration file: +%s +It is recommended you use the following random password: +rpcuser=bitcoinrpc +rpcpassword=%s +(you do not need to remember this password) +The username and password MUST NOT be the same. +If the file does not exist, create it with owner-readable-only file permissions. +It is also recommended to set alertnotify so you are notified of problems; +for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + Um bitcoind oder die Option -server mit bitcoin-qt verwenden zu können, müssen Sie rpcpassword in der Konfigurationsdatei angeben: +%s +Es wird empfohlen das folgende Zufallspasswort zu verwenden. +rpcuser=bitcoinrpc +rpcpassword=%s +(Sie müssen sich dieses Passwort nicht merken!) +Der Benutzername und das Passwort dürfen NICHT identisch sein. +Falls die Konfigurationsdatei nicht existiert, erzeugen Sie diese bitte mit Leserechten nur für den Dateibesitzer. +Es wird ebenfalls empfohlen alertnotify anzugeben, um im Problemfall benachrichtigt zu werden. +Beispiel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Warnung: -maxtxfee ist auf einen sehr hohen Wert festgelegt! Gebühren dieser Höhe könnten für eine einzelne Transaktion bezahlt werden. + + Warning: Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly. Warnung: Bitte korrigieren Sie die Datums- und Uhrzeiteinstellungen Ihres Computers, da Bitcoin Core ansonsten nicht ordnungsgemäß funktionieren wird. @@ -3118,6 +3134,10 @@ zum Beispiel: alertnotify=echo %%s | mail -s \"Bitcoin Alert\" admin@foo.com Erlaubte Gegenstellen werden nicht für DoS-Attacken gesperrt und ihre Transkationen werden immer weitergeleitet, auch wenn sie sich bereits im Speicherpool befinden, was z.B. für Gateways sinnvoll ist. + Accept public REST requests (default: %u) + Öffentliche REST-Anfragen annehmen (Standard: %u) + + Cannot resolve -whitebind address: '%s' Kann Adresse in -whitebind nicht auflösen: '%s' @@ -3154,6 +3174,10 @@ zum Beispiel: alertnotify=echo %%s | mail -s \"Bitcoin Alert\" admin@foo.com Initialisierungsplausibilitätsprüfung fehlgeschlagen. Bitcoin Core wird beendet. + Invalid amount for -maxtxfee=<amount>: '%s' + Ungültiger Betrag für -maxtxfee=<amount>: '%s' + + Invalid amount for -minrelaytxfee=<amount>: '%s' Ungültiger Betrag für -minrelaytxfee=<amount>: '%s' @@ -3170,10 +3194,6 @@ zum Beispiel: alertnotify=echo %%s | mail -s \"Bitcoin Alert\" admin@foo.com Ungültige Netzmaske angegeben in -whitelist: '%s' - Keep at most <n> unconnectable blocks in memory (default: %u) - Maximal <n> nicht-verbindbare Blöcke im Speicher halten (Standard: %u) - - Keep at most <n> unconnectable transactions in memory (default: %u) Maximal <n> nicht-verbindbare Transaktionen im Speicher halten (Standard: %u) @@ -3186,10 +3206,6 @@ zum Beispiel: alertnotify=echo %%s | mail -s \"Bitcoin Alert\" admin@foo.com Knoten-Weiterleitungsoptionen: - Print block on startup, if found in block index - Block beim Starten ausgeben, wenn dieser im Blockindex gefunden wurde. - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) RPC-SSL-Optionen (siehe Bitcoin-Wiki für SSL-Einrichtung): @@ -3238,6 +3254,10 @@ zum Beispiel: alertnotify=echo %%s | mail -s \"Bitcoin Alert\" admin@foo.com Transaktionsbeträge müssen positiv sein + Transaction too large for fee policy + Transaktion ist für die Gebührenrichtlinie zu groß + + Transaction too large Transaktion zu groß @@ -3334,10 +3354,6 @@ zum Beispiel: alertnotify=echo %%s | mail -s \"Bitcoin Alert\" admin@foo.com Legt fest, wie gründlich die Blockverifikation von -checkblocks ist (0-4, Standard: %u) - If paytxfee is not set, include enough fee so transactions are confirmed on average within n blocks (default: %u) - Wenn keine Transaktionsgebühr festgelegt wurde eine Gebühr einbeziehen, sodass Transaktionen im Schnitt innerhalb von <n> Blöcken bestätigt werden (Standard: %u) - - Log transaction priority and fee per kB when mining blocks (default: %u) Transaktionspriorität und Gebühr pro kB beim Erzeugen von Blöcken protokollieren (Standard: %u) @@ -3426,10 +3442,6 @@ zum Beispiel: alertnotify=echo %%s | mail -s \"Bitcoin Alert\" admin@foo.com Debugausgaben einen Zeitstempel voranstellen (Standard: %u) - Print block tree on startup (default: %u) - Blockbaum beim Starten ausgeben (Standard: %u) - - Relay and mine data carrier transactions (default: %u) "Data Carrier"-Transaktionen weiterleiten und erarbeiten (Standard: %u) @@ -3506,10 +3518,6 @@ zum Beispiel: alertnotify=echo %%s | mail -s \"Bitcoin Alert\" admin@foo.com Ungültiger Betrag für -paytxfee=<amount>: '%s' - Invalid amount - Ungültiger Betrag - - Insufficient funds Unzureichender Kontostand @@ -3542,10 +3550,6 @@ zum Beispiel: alertnotify=echo %%s | mail -s \"Bitcoin Alert\" admin@foo.com Laden abgeschlossen - To use the %s option - Zur Nutzung der %s-Option - - Error Fehler diff --git a/src/qt/locale/bitcoin_el_GR.ts b/src/qt/locale/bitcoin_el_GR.ts index cf29c222ed5..5f2b9d07251 100644 --- a/src/qt/locale/bitcoin_el_GR.ts +++ b/src/qt/locale/bitcoin_el_GR.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - Διπλό-κλικ για επεξεργασία της διεύθυνσης ή της ετικέτας - - Create a new address Δημιουργία νέας διεύθυνσης @@ -2477,43 +2473,10 @@ Address: %4 Να δέχεσαι συνδέσεις από έξω(προεπιλογή:1) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 Αποθηκευση σε συγκεκριμένη διεύθυνση. Χρησιμοποιήστε τα πλήκτρα [Host] : συμβολισμός θύρα για IPv6 - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Σφάλμα: Η συναλλαγή απορρίφθηκε. -Αυτό ίσως οφείλεται στο ότι τα νομίσματά σας έχουν ήδη ξοδευτεί, π.χ. με την αντιγραφή του wallet.dat σε άλλο σύστημα και την χρήση τους εκεί, χωρίς η συναλλαγή να έχει καταγραφεί στο παρόν σύστημα. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - Σφάλμα: Αυτή η συναλλαγή απαιτεί αμοιβή συναλλαγής τουλάχιστον %s λόγω του μεγέθους, πολυπλοκότητας ή της χρήσης πρόσφατης παραλαβής κεφαλαίου - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Εκτέλεσε την εντολή όταν το καλύτερο μπλοκ αλλάξει(%s στην εντολή αντικαθίσταται από το hash του μπλοκ) @@ -2590,10 +2553,6 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Προειδοποίηση: Χαμηλός χώρος στο δίσκο - Error: Wallet locked, unable to create transaction! - Σφάλμα: το πορτοφόλι είναι κλειδωμένο, δεν μπορεί να δημιουργηθεί συναλλαγή - - Failed to listen on any port. Use -listen=0 if you want this. ταλαιπωρηθειτε για να ακούσετε σε οποιαδήποτε θύρα. Χρήση - ακούστε = 0 , αν θέλετε αυτό. @@ -2798,10 +2757,6 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Δεν είναι έγκυρη η διεύθυνση διαμεσολαβητή: '%s' - Print block tree on startup (default: %u) - Εκτύπωση μπλοκ δέντρου κατά την εκκίνηση (προεπιλογή: %u) - - Server certificate file (default: %s) Αρχείο πιστοποιητικού του διακομιστή (προεπιλογή: %s) @@ -2834,10 +2789,6 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Μη έγκυρο ποσό για την παράμετρο -paytxfee=<amount>: '%s' - Invalid amount - Λάθος ποσότητα - - Insufficient funds Ανεπαρκές κεφάλαιο @@ -2870,10 +2821,6 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Η φόρτωση ολοκληρώθηκε - To use the %s option - Χρήση της %s επιλογής - - Error Σφάλμα diff --git a/src/qt/locale/bitcoin_en.ts b/src/qt/locale/bitcoin_en.ts index 5291bfcc1b1..0f13916c1c8 100644 --- a/src/qt/locale/bitcoin_en.ts +++ b/src/qt/locale/bitcoin_en.ts @@ -1,6 +1,6 @@ - + AddressBookPage @@ -291,12 +291,12 @@ Sign &message... - + Synchronizing with network... Synchronizing with network... - + &Overview &Overview @@ -377,7 +377,7 @@ - + Bitcoin Core client @@ -392,7 +392,7 @@ Reindexing blocks on disk... - + Send coins to a Bitcoin address Send coins to a Bitcoin address @@ -427,12 +427,12 @@ &Verify message... - + Bitcoin Bitcoin - + Wallet Wallet @@ -477,7 +477,7 @@ Verify messages to ensure they were signed with specified Bitcoin addresses - + &File &File @@ -497,7 +497,7 @@ Tabs toolbar - + Bitcoin Core Bitcoin Core @@ -532,7 +532,7 @@ - + Show the Bitcoin Core help message to get a list with possible Bitcoin command-line options @@ -841,7 +841,7 @@ Address: %4 - + highest @@ -1610,14 +1610,14 @@ Address: %4 - + Payment request error - + Cannot start bitcoin: click-to-pay handler @@ -1653,11 +1653,11 @@ Address: %4 - Payment request %2 is too large (%3 bytes, allowed %4 bytes). + Payment request %1 is too large (%2 bytes, allowed %3 bytes). - + Payment request DoS protection @@ -1713,12 +1713,12 @@ Address: %4 Amount - + Enter a Bitcoin address (e.g. %1) - + %1 d @@ -3579,32 +3579,32 @@ Address: %4 bitcoin-core - + Options: Options: - + Specify data directory Specify data directory - + Connect to a node to retrieve peer addresses, and disconnect Connect to a node to retrieve peer addresses, and disconnect - + Specify your own public address Specify your own public address - + Accept command line and JSON-RPC commands Accept command line and JSON-RPC commands - + Run in the background as a daemon and accept commands Run in the background as a daemon and accept commands @@ -3614,12 +3614,12 @@ Address: %4 Use the test network - + Accept connections from outside (default: 1 if no -proxy or -connect) Accept connections from outside (default: 1 if no -proxy or -connect) - + Bind to given address and always listen on it. Use [host]:port notation for IPv6 Bind to given address and always listen on it. Use [host]:port notation for IPv6 @@ -3649,7 +3649,7 @@ Address: %4 - + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) @@ -3769,7 +3769,7 @@ Address: %4 Error opening block database - + Error: A fatal internal error occured, see debug.log for details @@ -3814,7 +3814,7 @@ Address: %4 - + Rebuild block chain index from current blk000??.dat files Rebuild block chain index from current blk000??.dat files @@ -3869,12 +3869,12 @@ Address: %4 You need to rebuild the database using -reindex to change -txindex - + Imports blocks from external blk000??.dat file Imports blocks from external blk000??.dat file - + Allow JSON-RPC connections from specified source. Valid for <ip> 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). This option can be specified multiple times @@ -3960,6 +3960,11 @@ Address: %4 + Require high priority for relaying free or low-fee transactions (default:%u) + + + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) @@ -4034,7 +4039,12 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. - + + Error reading from database, shutting down. + + + + Error: Unsupported argument -tor found, use -onion. @@ -4105,6 +4115,11 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. + RPC support for HTTP persistent connections (default: %d) + + + + Randomly drop 1 of every <n> network messages @@ -4219,17 +4234,17 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. wallet.dat corrupt, salvage failed - + Password for JSON-RPC connections Password for JSON-RPC connections - + Execute command when the best block changes (%s in cmd is replaced by block hash) Execute command when the best block changes (%s in cmd is replaced by block hash) - + Upgrade wallet to latest format Upgrade wallet to latest format @@ -4249,22 +4264,22 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. This help message - + Allow DNS lookups for -addnode, -seednode and -connect Allow DNS lookups for -addnode, -seednode and -connect - + Loading addresses... Loading addresses... - + Error loading wallet.dat: Wallet corrupted Error loading wallet.dat: Wallet corrupted - + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) @@ -4299,7 +4314,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. - + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) @@ -4329,7 +4344,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. Error loading wallet.dat - + Force safe mode (default: %u) @@ -4394,7 +4409,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. - + Relay and mine data carrier transactions (default: %u) @@ -4474,7 +4489,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. Unknown network specified in -onlynet: '%s' - + Cannot resolve -bind address: '%s' Cannot resolve -bind address: '%s' @@ -4484,7 +4499,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. Cannot resolve -externalip address: '%s' - + Invalid amount for -paytxfee=<amount>: '%s' Invalid amount for -paytxfee=<amount>: '%s' @@ -4499,17 +4514,17 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. Loading block index... - + Add a node to connect to and attempt to keep the connection open Add a node to connect to and attempt to keep the connection open - + Loading wallet... Loading wallet... - + Cannot downgrade wallet Cannot downgrade wallet @@ -4519,17 +4534,17 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. Cannot write default address - + Rescanning... Rescanning... - + Done loading Done loading - + Error Error diff --git a/src/qt/locale/bitcoin_eo.ts b/src/qt/locale/bitcoin_eo.ts index 5189310e649..e89eea4bf4e 100644 --- a/src/qt/locale/bitcoin_eo.ts +++ b/src/qt/locale/bitcoin_eo.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - Duoble-klaku por redakti adreson aŭ etikedon - - Create a new address Krei novan adreson @@ -89,6 +85,10 @@ Comma separated file (*.csv) Perkome disigita dosiero (*.csv) + + Exporting Failed + ekspotado malsukcesinta + AddressTableModel @@ -283,6 +283,10 @@ Malfermi &URI-on... + Bitcoin Core client + kliento de bitmon-kerno + + Importing blocks from disk... Importado de blokoj el disko... @@ -422,6 +426,10 @@ %1 and %2 %1 kaj %2 + + %n year(s) + %n jaro%n jaroj + %1 behind mankas %1 @@ -2080,6 +2088,10 @@ Adreso: %4 Montri detalojn de transakcio + Exporting Failed + ekspotado malsukcesinta + + Comma separated file (*.csv) Perkome disigita dosiero (*.csv) @@ -2191,42 +2203,10 @@ Adreso: %4 Akcepti konektojn el ekstere (defaŭlte: 1 se ne estas -proxy nek -connect) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, vi devas specifi rpcpassword en la konfigura dosiero: -%s -Estas konsilinde uzi tiun ĉi aleatore kreitan pasvorton: -rpcuser=bitcoinrpc -rpcpassword=%s -(ne utilas al vi memorigi tiun ĉi pasvorton) -La salutnomo kaj la pasvorto estu nepre MALSAMAJ. -Se la dosiero ne ekzistas, kreu ĝin kun permeso "nur posedanto rajtas legi". -Estas konsilinde ankaŭ agordi alertnotify por ke vi ricevu avertojn pri eventualaj problemoj; -ekzemple: alertnotify=echo %%s | mail -s "Averto de Bitmono" admin@foo.com - - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 Bindi al donita adreso kaj ĉiam aŭskulti per ĝi. Uzu la formaton [gastigo]:pordo por IPv6 - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Eraro: la transakcio estas rifuzita. Tio povas okazi se iom da Bitmono en via monujo jam elspeziĝis (ekz. se vi uzis kopion de wallet.dat kies Bitmono jam elspeziĝis, sed ne estis markita kiel elspezita ĉi tie). - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - Eraro: tiu ĉi transakcio bezonas krompagon de almenaŭ %s pro la sumo, la komplekseco, aŭ la uzo de ĵus ricevita mono! - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Plenumi komandon kiam monuja transakcio ŝanĝiĝas (%s en cmd anstataŭiĝas per TxID) @@ -2303,10 +2283,6 @@ ekzemple: alertnotify=echo %%s | mail -s "Averto de Bitmono" admin@foo.com Eraro: restas malmulte da diskospaco! - Error: Wallet locked, unable to create transaction! - Eraro: monujo ŝlosita, ne eblas krei transakcion! - - Failed to listen on any port. Use -listen=0 if you want this. Ne sukcesis aŭskulti ajnan pordon. Uzu -listen=0 se tion vi volas. @@ -2383,6 +2359,10 @@ ekzemple: alertnotify=echo %%s | mail -s "Averto de Bitmono" admin@foo.com Subskriba transakcio fiaskis + This is experimental software. + ĝi estas eksperimenta programo + + Transaction amount too small Transakcia sumo tro malgranda @@ -2475,10 +2455,6 @@ ekzemple: alertnotify=echo %%s | mail -s "Averto de Bitmono" admin@foo.com Nevalida sumo por -paytxfee=<amount>: '%s' - Invalid amount - Nevalida sumo - - Insufficient funds Nesufiĉa mono @@ -2511,10 +2487,6 @@ ekzemple: alertnotify=echo %%s | mail -s "Averto de Bitmono" admin@foo.com Ŝargado finiĝis - To use the %s option - Por uzi la agordon %s - - Error Eraro diff --git a/src/qt/locale/bitcoin_es.ts b/src/qt/locale/bitcoin_es.ts index aa008ad18c4..ed1d08d35c9 100644 --- a/src/qt/locale/bitcoin_es.ts +++ b/src/qt/locale/bitcoin_es.ts @@ -2,8 +2,8 @@ AddressBookPage - Double-click to edit address or label - Haga doble clic para editar la dirección o etiqueta + Right-click to edit address or label + Haz-clic para editar la dirección o etiqueta Create a new address @@ -35,7 +35,7 @@ Export the data in the current tab to a file - Exportar a un archivo los datos de esta pestaña + Exportar los datos en la ficha actual a un archivo &Export @@ -47,11 +47,11 @@ Choose the address to send coins to - Escoja la dirección a la que enviar bitcoins + Elije la dirección para enviar monedas a Choose the address to receive coins with - Escoja la dirección de la que recibir bitcoins + Elije la dirección para recibir monedas con C&hoose @@ -67,11 +67,11 @@ These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Estas son sus direcciones Bitcoin para enviar pagos. Compruebe siempre la cantidad y la dirección receptora antes de enviar bitcoins. + Estas son tus direcciones Bitcoin para enviar los pagos. Comprueba siempre la cantidad y la dirección receptora antes de enviar las monedas. These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Estas son sus direcciones de Bitcoin para recibir pagos. Se recomienda utilizar una nueva dirección de recepción para cada transacción. + Estas son tus direcciones de Bitcoin para recibir los pagos. Se recomienda utilizar una nueva dirección de recepción para cada transacción. Copy &Label @@ -87,17 +87,13 @@ Comma separated file (*.csv) - Archivos de columnas separadas por coma (*.csv) + Archivos separados por coma (*.csv) Exporting Failed - Error exportando + Fallo al exportar - - There was an error trying to save the address list to %1. Please try again. - Se ha producido un error al intentar guardar la lista de direcciones en %1. Por favor vuelva a intentarlo. - - + AddressTableModel @@ -157,7 +153,7 @@ Enter the old and new passphrase to the wallet. - Introduzca la contraseña anterior del monedero y la nueva. + Introduce la antigua y la nueva contraseña a el monedero. Confirm wallet encryption @@ -169,7 +165,7 @@ Are you sure you wish to encrypt your wallet? - ¿Seguro que desea cifrar su monedero? + ¿Estás seguro que deseas cifrar tu monedero ? IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. @@ -177,7 +173,7 @@ Warning: The Caps Lock key is on! - Aviso: ¡La tecla de bloqueo de mayúsculas está activada! + Aviso: ¡La tecla de Mayúsculas está activada! Wallet encrypted @@ -1289,6 +1285,14 @@ Dirección: %4 Devolución desde %1 + Payment request %2 is too large (%3 bytes, allowed %4 bytes). + Petición pago %2 es demasiado grande ( %3 bytes , permitió %4 bytes ) . + + + Payment request DoS protection + Solicitud pago de protección DoS + + Error communicating with %1: %2 Error en la comunicación con %1: %2 @@ -1861,14 +1865,30 @@ Dirección: %4 Minimizar + 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. + Si la tarifa de aduana se establece en 1000 satoshis y la transacción está a disponible a solo 250 bytes, entonces "por kilobyte" sólo paga 250 satoshis de cuota, mientras que "por lo menos" paga 1.000 satoshis. Para las transacciones más grandes que un kilobyte ambos pagan por kilobyte. + + per kilobyte por kilobyte + 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. + Si la tarifa de aduana se establece en 1000 satoshis y la transacción está a sólo 250 bytes, entonces "por kilobyte" sólo paga 250 satoshis de cuota, mientras que "el mínimo total" pagaría 1.000 satoshis. Para las transacciones más grandes que un kilobyte ambos pagan por kilobyte + + total at least total por lo menos + 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. + Pagando solamente la cuota mínima es correcto, siempre y cuando haya menos volumen de transacciones que el espacio en los bloques. Pero tenga en cuenta que esto puede terminar en una transacción nunca confirmada, una vez que haya más demanda para transacciones Bitcoin que la red pueda procesar. + + + (read the tooltip) + (leer la sugerencia) + + Recommended: Recomendado: @@ -1893,6 +1913,10 @@ Dirección: %4 rápido + Send as zero-fee transaction if possible + Enviar transacción, si es posible, sin comisión + + (confirmation may take longer) (confirmación puede tardar más tiempo) @@ -2787,30 +2811,6 @@ Dirección: %4 Aceptar conexiones desde el exterior (predeterminado: 1 si no -proxy o -connect) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, debe establecer un valor rpcpassword en el archivo de configuración: -%s -Se recomienda utilizar la siguiente contraseña aleatoria: -rpcuser=bitcoinrpc -rpcpassword=%s -(no es necesario recordar esta contraseña) -El nombre de usuario y la contraseña DEBEN NO ser iguales. -Si el archivo no existe, créelo con permisos de archivo de solo lectura. -Se recomienda también establecer alertnotify para recibir notificaciones de problemas. -Por ejemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 Vincular a la dirección dada y escuchar siempre en ella. Utilice la notación [host]:port para IPv6 @@ -2827,14 +2827,6 @@ Por ejemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Ingresar en el modo de prueba de regresión, que utiliza una cadena especial en la que los bloques se pueden resolver instantáneamente. - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - ¡Error: se ha rechazado la transacción! Esto puede ocurrir si ya se han gastado algunos de los bitcoins del monedero, como ocurriría si hubiera hecho una copia de wallet.dat y se hubieran gastado bitcoins a partir de la copia, con lo que no se habrían marcado aquí como gastados. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - ¡Error: Esta transacción requiere una comisión de al menos %s debido a su cantidad, complejidad, o al uso de fondos recién recibidos! - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Ejecutar comando cuando una transacción del monedero cambia (%s en cmd se remplazará por TxID) @@ -2947,10 +2939,6 @@ Por ejemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Error: ¡Espacio en disco bajo! - Error: Wallet locked, unable to create transaction! - Error: ¡El monedero está bloqueado; no se puede crear la transacción! - - Failed to listen on any port. Use -listen=0 if you want this. Ha fallado la escucha en todos los puertos. Use -listen=0 si desea esto. @@ -3075,6 +3063,14 @@ Por ejemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Tarifas (en BTC/Kb) más pequeños que esto se consideran cero cuota para la creación de la transacción (por defecto: %s) + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Si el pago de comisión no está establecido, incluir la cuota suficiente para que las transacciones comiencen la confirmación en una media de n bloques ( por defecto :%u) + + + Maximum size of data in data carrier transactions we relay and mine (default: %u) + El tamaño máximo de los datos en las operaciones de transporte de datos que transmitimos y el mio (default: %u) + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) Consulta de direcciones pares mediante búsqueda de DNS, si bajo en direcciones (por defecto: 1 a menos que - conectar) @@ -3083,10 +3079,42 @@ Por ejemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Establecer tamaño máximo de las transacciones de alta prioridad/baja comisión en bytes (predeterminado: %d) + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + Ajuste el número de hilos para la generación de moneda si está habilitado (-1 = all cores, default: %d) + + 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. Este producto incluye software desarrollado por el OpenSSL Project para su uso en OpenSSL Toolkit <https://www.openssl.org/>, software de cifrado escrito por Eric Young y software UPnP escrito por Thomas Bernard. + To use bitcoind, or the -server option to bitcoin-qt, you must set an rpcpassword in the configuration file: +%s +It is recommended you use the following random password: +rpcuser=bitcoinrpc +rpcpassword=%s +(you do not need to remember this password) +The username and password MUST NOT be the same. +If the file does not exist, create it with owner-readable-only file permissions. +It is also recommended to set alertnotify so you are notified of problems; +for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + Para utilizar bitcoind, o la -opción servidor a bitcoin-qt, debes establecer una rpcpassword en el fichero de configuración: +%s +Se recomienda utilizar la siguiente contraseña aleatoria: +rpcuser=bitcoinrpc +rpcpassword=%s +(no es necesario que recuerdes esta contraseña) +El nombre de usuario y contraseña NO DEBEN ser la misma. +Si no existe el archivo, crearlo con los permisos de archivos de propietarios de -sólo lectura-. +También se recomienda establecer una notificación de alerta para ser notificado de problemas; +por ejemplo: alertnotify=echo %% s | correo -s "Alerta Bitcoin" admin@foo.com + + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Advertencia: ¡-maxtxfee se establece muy alta! Esta gran tarifa podría ser pagada en una sola transacción . + + Warning: Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly. Aviso: ¡Comprueba la fecha y hora de tu ordenador y verifica si es correcta! Si no es correcta Bitcoin Core no funcionará adecuadamente. @@ -3095,6 +3123,14 @@ Por ejemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com A los equipos en lista blanca no se les pueden prohibir los ataques DoS y sus transacciones siempre son retransmitidas, incluso si ya están en el mempool, es útil por ejemplo para un gateway. + Accept public REST requests (default: %u) + Aceptar solicitudes públicas en FERIADOS (por defecto: %u) + + + Cannot resolve -whitebind address: '%s' + No se puede resolver -whitebind address: '%s' + + Connect through SOCKS5 proxy Conectar usando SOCKS5 proxy @@ -3103,6 +3139,10 @@ Por ejemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Copyright (C) 2009-%i The Bitcoin Core Developers + Could not parse -rpcbind value %s as network address + No se pudo analizar -rpcbind valor%s como dirección de red + + Error loading wallet.dat: Wallet requires newer version of Bitcoin Core Error al cargar wallet.dat: El monedero requiere una versión más reciente de Bitcoin Core @@ -3123,6 +3163,10 @@ Por ejemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com La inicialización de la verificación de validez falló. Se está apagando Bitcoin Core. + Invalid amount for -maxtxfee=<amount>: '%s' + Monto inválido para -maxtxfee=<amount>: '%s' + + Invalid amount for -minrelaytxfee=<amount>: '%s' Cantidad inválida para -minrelaytxfee=<amount>: '%s' @@ -3139,10 +3183,6 @@ Por ejemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Máscara de red inválida especificada en -whitelist: '%s' - Keep at most <n> unconnectable blocks in memory (default: %u) - Mantener como máximo <n> bloques no conectables en memoria (por defecto: %u) - - Keep at most <n> unconnectable transactions in memory (default: %u) Mantener como máximo <n> transacciones no conectables en memoria (por defecto: %u) @@ -3155,10 +3195,6 @@ Por ejemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Opciones de nodos de retransmisión: - Print block on startup, if found in block index - Imprimir bloque al iniciar, si se encuentra en el índice de bloques - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) Opciones SSL de RPC: (véase la wiki de Bitcoin para las instrucciones de instalación de SSL) @@ -3207,6 +3243,10 @@ Por ejemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Las cantidades en las transacciones deben ser positivas + Transaction too large for fee policy + Operación demasiado grande para la política de tasas + + Transaction too large Transacción demasiado grande @@ -3236,6 +3276,10 @@ Por ejemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Aviso: Esta versión es obsoleta, actualización necesaria! + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + Advertencia: Argumento no soportado -benchmark ignored, use -debug=bench. + + Warning: Unsupported argument -debugnet ignored, use -debug=net. Aviso: Argumento no sportado -debugnet anticuado, utilice -debug=net. @@ -3291,6 +3335,10 @@ Por ejemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Error al cargar wallet.dat: el monedero está dañado + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) Volcar la actividad de la base de datos de memoria al registro en disco cada <n> megabytes (predeterminado: %u) @@ -3391,14 +3439,14 @@ Por ejemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Anteponer marca temporal a la información de depuración (por defecto: %u) - Print block tree on startup (default: %u) - Imprimir árbol de bloques al iniciar (predeterminado: %u) - - Relay and mine data carrier transactions (default: %u) Retransmitir y minar transacciones de transporte de datos (por defecto: %u) + Relay non-P2SH multisig (default: %u) + Relay non-P2SH multisig (default: %u) + + Run a thread to flush wallet periodically (default: %u) Ejecutar un hilo para limpiar de la memoria el monedero periódicamente (predeterminado: %u) @@ -3467,10 +3515,6 @@ Por ejemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Cantidad inválida para -paytxfee=<amount>: '%s' - Invalid amount - Cuantía no válida - - Insufficient funds Fondos insuficientes @@ -3503,10 +3547,6 @@ Por ejemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Se terminó de cargar - To use the %s option - Para utilizar la opción %s - - Error Error diff --git a/src/qt/locale/bitcoin_es_CL.ts b/src/qt/locale/bitcoin_es_CL.ts index e6f81e650f0..d6451185a42 100644 --- a/src/qt/locale/bitcoin_es_CL.ts +++ b/src/qt/locale/bitcoin_es_CL.ts @@ -2,26 +2,46 @@ AddressBookPage - Double-click to edit address or label - Haz doble clic para editar una dirección o etiqueta + Right-click to edit address or label + Haga clic para editar la dirección o etiqueta Create a new address - Crea una nueva dirección + Crea una nueva direCrea una nueva direccióncción + + + &New + y nueva Copy the currently selected address to the system clipboard Copia la dirección seleccionada al portapapeles + &Copy + y copiar + + + C&lose + C y perder + + &Copy Address &Copia dirección + Delete the currently selected address from the list + Eliminar la dirección seleccionada de la lista + + Export the data in the current tab to a file Exportar los datos de la pestaña actual a un archivo + &Export + y exportar + + &Delete &Borrar @@ -211,6 +231,14 @@ &Cambiar la contraseña... + Open &URI... + Abrir y url... + + + Bitcoin Core client + cliente bitcoin core + + Reindexing blocks on disk... Cargando el index de bloques... @@ -251,6 +279,10 @@ &Envía + &Receive + y recibir + + &Show / Hide &Mostrar/Ocultar @@ -274,6 +306,10 @@ Tabs toolbar Barra de pestañas + + Bitcoin Core + bitcoin core + %n active connection(s) to Bitcoin network %n conexión activa hacia la red Bitcoin%n conexiones activas hacia la red Bitcoin @@ -364,6 +400,10 @@ Dirección: %4 Confirmado + Priority + prioridad + + Copy address Copia dirección @@ -376,6 +416,18 @@ Dirección: %4 Copiar Cantidad + medium + medio + + + yes + si + + + no + no + + (no label) (sin etiqueta) @@ -437,6 +489,10 @@ Dirección: %4 HelpMessageDialog + Bitcoin Core + bitcoin core + + version versión @@ -457,12 +513,24 @@ Dirección: %4 Intro + Welcome + bienvenido + + + Bitcoin Core + bitcoin core + + Error Error OpenURIDialog + + URI: + url: + OptionsDialog @@ -491,6 +559,10 @@ Dirección: %4 &Red + Expert + experto + + Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. Abre automáticamente el puerto del cliente Bitcoin en el router. Esto funciona solo cuando tu router es compatible con UPnP y está habilitado. @@ -511,6 +583,11 @@ Dirección: %4 Puerto del servidor proxy (ej. 9050) + &Window + y windows + + + Show only a tray icon after minimizing the window. Muestra solo un ícono en la bandeja después de minimizar la ventana @@ -587,6 +664,10 @@ Dirección: %4 Cantidad + UNKNOWN + DESCONOCIDO + + N/A N/A @@ -621,6 +702,10 @@ Dirección: %4 &Información + General + General + + Startup time Tiempo de inicio @@ -641,6 +726,11 @@ Dirección: %4 Bloquea cadena + Version + version + + + &Open &Abrir @@ -909,6 +999,10 @@ Dirección: %4 SplashScreen + Bitcoin Core + bitcoin core + + [testnet] [red-de-pruebas] @@ -1236,6 +1330,10 @@ Dirección: %4 WalletView + &Export + y exportar + + Export the data in the current tab to a file Exportar los datos de la pestaña actual a un archivo @@ -1379,10 +1477,6 @@ Dirección: %4 Cantidad inválida para -paytxfee=<amount>: '%s' - Invalid amount - Cantidad inválida - - Insufficient funds Fondos insuficientes @@ -1407,10 +1501,6 @@ Dirección: %4 Carga completa - To use the %s option - Para utilizar la opción %s - - Error Error diff --git a/src/qt/locale/bitcoin_es_DO.ts b/src/qt/locale/bitcoin_es_DO.ts index 2e5daf4cdb4..9a8e3d59380 100644 --- a/src/qt/locale/bitcoin_es_DO.ts +++ b/src/qt/locale/bitcoin_es_DO.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - Haga doble clic para editar una dirección o etiqueta - - Create a new address Crear una nueva dirección @@ -2231,42 +2227,10 @@ Dirección: %4 Aceptar conexiones desde el exterior (predeterminado: 1 si no -proxy o -connect) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, debe establecer un valor rpcpassword en el archivo de configuración: -%s -Se recomienda utilizar la siguiente contraseña aleatoria: -rpcuser=bitcoinrpc -rpcpassword=%s -(no es necesario recordar esta contraseña) -El nombre de usuario y la contraseña DEBEN NO ser iguales. -Si el archivo no existe, créelo con permisos de archivo de solo lectura. -Se recomienda también establecer alertnotify para recibir notificaciones de problemas. -Por ejemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 Vincular a la dirección dada y escuchar siempre en ella. Utilice la notación [host]:port para IPv6 - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - ¡Error: se ha rechazado la transacción! Esto puede ocurrir si ya se han gastado algunas de las monedas del monedero, como ocurriría si hubiera hecho una copia de wallet.dat y se hubieran gastado monedas a partir de la copia, con lo que no se habrían marcado aquí como gastadas. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - ¡Error: Esta transacción requiere una comisión de al menos %s debido a su monto, complejidad, o al uso de fondos recién recibidos! - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Ejecutar comando cuando una transacción del monedero cambia (%s en cmd se remplazará por TxID) @@ -2343,10 +2307,6 @@ Por ejemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Error: ¡Espacio en disco bajo! - Error: Wallet locked, unable to create transaction! - Error: ¡El monedero está bloqueado; no se puede crear la transacción! - - Failed to listen on any port. Use -listen=0 if you want this. Ha fallado la escucha en todos los puertos. Use -listen=0 si desea esto. @@ -2419,10 +2379,26 @@ Por ejemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Inválido por el monto -mintxfee=<amount>: '%s' + RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) + Opciones RPC SSL: (Vea la Wiki de Bitcoin para las instrucciones de la configuración de SSL) + + + RPC server options: + Opciones del sservidor RPC: + + + Randomly drop 1 of every <n> network messages + Descartar aleatoriamente 1 de cada <n> mensajes de red + + Send trace/debug info to console instead of debug.log file Enviar información de trazas/depuración a la consola en lugar de al archivo debug.log + Show all debugging options (usage: --help -help-debug) + Mostrar todas las opciones de depuración (uso: --help -help-debug) + + Shrink debug.log file on client startup (default: 1 when no -debug) Reducir el archivo debug.log al iniciar el cliente (predeterminado: 1 sin -debug) @@ -2460,6 +2436,10 @@ Por ejemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Aviso: Esta versión es obsoleta, actualización necesaria! + on startup + al iniciar + + wallet.dat corrupt, salvage failed wallet.dat corrupto. Ha fallado la recuperación. @@ -2527,10 +2507,6 @@ Por ejemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Cantidad inválida para -paytxfee=<amount>: '%s' - Invalid amount - Cuantía no válida - - Insufficient funds Fondos insuficientes @@ -2563,10 +2539,6 @@ Por ejemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Generado pero no aceptado - To use the %s option - Para utilizar la opción %s - - Error Error diff --git a/src/qt/locale/bitcoin_es_MX.ts b/src/qt/locale/bitcoin_es_MX.ts index bedc5d243e0..1f1d712da49 100644 --- a/src/qt/locale/bitcoin_es_MX.ts +++ b/src/qt/locale/bitcoin_es_MX.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - Haga doble clic para editar el domicilio o la etiqueta - - Create a new address Crear una dirección nueva diff --git a/src/qt/locale/bitcoin_es_UY.ts b/src/qt/locale/bitcoin_es_UY.ts index a5a1583b19c..31107444f47 100644 --- a/src/qt/locale/bitcoin_es_UY.ts +++ b/src/qt/locale/bitcoin_es_UY.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - Doble clic para editar etiqueta o dirección - - Create a new address Crear una nueva dirección diff --git a/src/qt/locale/bitcoin_et.ts b/src/qt/locale/bitcoin_et.ts index 801fcf6258e..ee50226abb0 100644 --- a/src/qt/locale/bitcoin_et.ts +++ b/src/qt/locale/bitcoin_et.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - Topeltklõps aadressi või märgise muutmiseks - - Create a new address Loo uus aadress @@ -14,6 +10,10 @@ Kopeeri märgistatud aadress vahemällu + &Copy + &Kopeeri + + &Copy Address &Aadressi kopeerimine @@ -497,6 +497,10 @@ Aadress: %4⏎ versioon + About Bitcoin Core + Kirjeldus Bitcoini Tuumast + + Command-line options Käsurea valikud @@ -1088,6 +1092,10 @@ Aadress: %4⏎ Bitcoini tuumik + The Bitcoin Core developers + Bitcoini Tuuma arendajad + + [testnet] [testnet] @@ -1498,42 +1506,10 @@ Aadress: %4⏎ Luba välisühendusi (vaikeväärtus: 1 kui puudub -proxy või -connect) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, sul tuleb rpcpassword määrata seadete failis: -%s -Soovitatav on kasutada järgmist juhuslikku parooli: -rpcuser=bitcoinrpc -rpcpassword=%s -(seda parooli ei pea meeles pidama) -Kasutajanimi ning parool EI TOHI kattuda. -Kui faili ei leita, loo see ainult-omaniku-loetavas failiõigustes . -Soovitatav on seadistada tõrgete puhul teavitus; -nt: alertnotify=echo %%s | email -s "Bitcoin Alert" admin@foo.com - - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 Määratud aadressiga sidumine ning sellelt kuulamine. IPv6 jaoks kasuta vormingut [host]:port - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Tõrge: Tehingust keelduti! Põhjuseks võib olla juba kulutatud mündid, nt kui wallet.dat fail koopias kulutatid mündid, kuid ei märgitud neid siin vastavalt. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - Tõrge: Selle tehingu jaoks on nõutav lisatasu vähemalt %s. Põhjuseks võib olla summa suurus, keerukus või hiljuti saadud summade kasutamine! - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Käivita käsklus, kui rahakoti tehing muutub (%s cmd's muudetakse TxID'ks) @@ -1598,10 +1574,6 @@ nt: alertnotify=echo %%s | email -s "Bitcoin Alert" admin@foo.com Tõrge: liiga vähe kettaruumi! - Error: Wallet locked, unable to create transaction! - Tõrge: Rahakott on lukus, tehingu loomine ei ole võimalik! - - Failed to listen on any port. Use -listen=0 if you want this. Pordi kuulamine nurjus. Soovikorral kasuta -listen=0. @@ -1714,10 +1686,6 @@ nt: alertnotify=echo %%s | email -s "Bitcoin Alert" admin@foo.com -paytxfee=<amount> jaoks vigane kogus: '%s' - Invalid amount - Kehtetu summa - - Insufficient funds Liiga suur summa @@ -1750,10 +1718,6 @@ nt: alertnotify=echo %%s | email -s "Bitcoin Alert" admin@foo.com Laetud - To use the %s option - %s valiku kasutamine - - Error Tõrge diff --git a/src/qt/locale/bitcoin_eu_ES.ts b/src/qt/locale/bitcoin_eu_ES.ts index ea0ce1a67d3..72118102daa 100644 --- a/src/qt/locale/bitcoin_eu_ES.ts +++ b/src/qt/locale/bitcoin_eu_ES.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - Klik bikoitza helbidea edo etiketa editatzeko - - Create a new address Sortu helbide berria diff --git a/src/qt/locale/bitcoin_fa.ts b/src/qt/locale/bitcoin_fa.ts index 475515f4b72..3fbf558770b 100644 --- a/src/qt/locale/bitcoin_fa.ts +++ b/src/qt/locale/bitcoin_fa.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - برای ویرایش نشانی یا برچسب دوبار کلیک کنید - - Create a new address ایجاد نشانی جدید @@ -1639,14 +1635,6 @@ Address: %4 مقید به نشانی داده شده باشید و همیشه از آن پیروی کنید. از نشانه گذاری استاندار IPv6 به صورت Host]:Port] استفاده کنید. - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - تراکنش پذیرفته نیست! این خطا ممکن است در حالتی رخ داده باشد که مقداری از سکه های شما در کیف پولتان از جایی دیگر، همانند یک کپی از کیف پول اصلی اتان، خرج شده باشد اما در کیف پول اصلی اتان به عنوان مبلغ خرج شده، نشانه گذاری نشده باشد. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - خطا: این تراکنش به علت میزان وجه، دشواری، و یا استفاده از وجوه دریافتی اخیر نیازمند کارمزد به مبلغ حداقل %s است. - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) هنگامی که یک تراکنش در کیف پولی رخ می دهد، دستور را اجرا کن(%s در دستورات بوسیله ی TxID جایگزین می شود) @@ -1791,10 +1779,6 @@ Address: %4 میزان وجه اشتباه برای paytxfee=<میزان وجه>: %s - Invalid amount - میزان وجه اشتباه - - Insufficient funds بود جه نا کافی @@ -1827,10 +1811,6 @@ Address: %4 بار گیری انجام شده است - To use the %s option - برای استفاده از %s از انتخابات - - Error خطا diff --git a/src/qt/locale/bitcoin_fa_IR.ts b/src/qt/locale/bitcoin_fa_IR.ts index 1a639a85920..f0e6770edc7 100644 --- a/src/qt/locale/bitcoin_fa_IR.ts +++ b/src/qt/locale/bitcoin_fa_IR.ts @@ -2,14 +2,14 @@ AddressBookPage - Double-click to edit address or label - برای ویرایش حساب و یا برچسب دوبار کلیک نمایید - - Create a new address گشایش حسابی جدید + &New + جدید + + Copy the currently selected address to the system clipboard کپی کردن حساب انتخاب شده به حافظه سیستم - کلیپ بورد @@ -986,10 +986,6 @@ Address: %4 میزان اشتباه است for -paytxfee=<amount>: '%s' - Invalid amount - میزان اشتباه است - - Insufficient funds وجوه ناکافی @@ -1022,10 +1018,6 @@ Address: %4 اتمام لود شدن - To use the %s option - برای استفاده از %s از اختیارات - - Error خطا diff --git a/src/qt/locale/bitcoin_fi.ts b/src/qt/locale/bitcoin_fi.ts index 9a2eadd6ea2..f7e6a8ccf72 100644 --- a/src/qt/locale/bitcoin_fi.ts +++ b/src/qt/locale/bitcoin_fi.ts @@ -2,8 +2,8 @@ AddressBookPage - Double-click to edit address or label - Kaksoisnapauta muokataksesi osoitetta tai nimeä + Right-click to edit address or label + Klikkaa hiiren oikealla painikkeella muokataksesi osoitetta tai nimikettä Create a new address @@ -23,7 +23,7 @@ C&lose - &Sulje + S&ulje &Copy Address @@ -39,7 +39,7 @@ &Export - &Vie... + &Vie &Delete @@ -47,15 +47,15 @@ Choose the address to send coins to - Valitse osoite johon lähetetään kolikoita + Valitse osoite johon kolikot lähetetään Choose the address to receive coins with - Valitse osoite jolla vastaanotetaan kolikoita + Valitse osoite johon vastaanotetaan kolikoita C&hoose - &Valitse + V&alitse Sending addresses @@ -75,7 +75,7 @@ Copy &Label - Kopioi &Nimi + Kopioi &nimike &Edit @@ -110,14 +110,14 @@ (no label) - (ei nimeä) + (ei nimikettä) AskPassphraseDialog Passphrase Dialog - Tunnuslauseen Dialogi + Tunnuslauseen tekstinsyöttökenttä Enter passphrase @@ -129,7 +129,7 @@ Repeat new passphrase - Kirjoita uusi tunnuslause uudelleen + Toista uusi tunnuslause Encrypt wallet @@ -478,6 +478,10 @@ Up to date Rahansiirtohistoria on ajan tasalla + + Processed %n blocks of transaction history. + Käsitelty %n lohko rahansiirtohistoriasta.Käsitelty %n lohkoa rahansiirtohistoriasta. + Catching up... Saavutetaan verkkoa... @@ -520,6 +524,10 @@ Osoite: %4 CoinControlDialog + Coin Selection + Kolikoiden valinta + + Quantity: Määrä: @@ -568,6 +576,14 @@ Osoite: %4 Määrä + Received with label + Vastaanotettu nimikkeellä + + + Received with address + Vastaanotettu osoitteella + + Date Aika @@ -899,7 +915,15 @@ Osoite: %4 Error Virhe - + + %n GB of free space available + %n Gt vapaata tilaa käytettävissä%n Gt vapaata tilaa käytettävissä + + + (of %n GB needed) + (%n Gt tarvittavasta tilasta)(%n Gt tarvittavasta tilasta) + + OpenURIDialog @@ -1022,6 +1046,14 @@ Osoite: %4 Portin uudelleenohjaus &UPnP:llä + Connect to the Bitcoin network through a SOCKS5 proxy. + Yhdistä Bitcoin-verkkoon SOCKS5-välityspalvelimen kautta. + + + &Connect through SOCKS5 proxy (default proxy): + &Yhdistä SOCKS5-välityspalvelimen kautta (oletus välityspalvelin): + + Proxy &IP: Proxyn &IP: @@ -1153,6 +1185,10 @@ Osoite: %4 Louhittu saldo, joka ei ole vielä kypsynyt + Balances + Saldot + + Total: Yhteensä: @@ -1165,6 +1201,22 @@ Osoite: %4 Nykyinen tase seurantaosoitetteissa + Spendable: + Käytettävissä: + + + Recent transactions + Viimeisimmät rahansiirrot + + + Unconfirmed transactions to watch-only addresses + Vahvistamattomat rahansiirrot vain katseltaviin osoitteisiin + + + Mined balance in watch-only addresses that has not yet matured + Louhittu, ei vielä kypsynyt saldo vain katseltavissa osoitteissa + + Current total balance in watch-only addresses Nykyinen tase seurantaosoitetteissa @@ -1188,10 +1240,18 @@ Osoite: %4 Maksupyyntö hylätty + Payment request network doesn't match client network. + Maksypyyntö verkossa ei täsmää asiakasohjelman verkkoon. + + Payment request has expired. Maksupyyntö on vanhentunut. + Payment request is not initialized. + Maksupyyntöä ei ole alustettu. + + Requested payment amount of %1 is too small (considered dust). Maksupyyntö %1 on liian pieni (huomioidaan tomuna). @@ -1224,6 +1284,10 @@ Osoite: %4 Maksupalautus %1:sta + Payment request DoS protection + Maksupyynnön DoS-suojaus + + Error communicating with %1: %2 Virhe kommunikoidessa %1n kanssa: %2 @@ -1246,7 +1310,15 @@ Osoite: %4 User Agent Käyttöliittymä - + + Address/Hostname + Osoite/Isäntänimi + + + Ping Time + Vasteaika + + QObject @@ -1254,6 +1326,10 @@ Osoite: %4 Määrä + Enter a Bitcoin address (e.g. %1) + Syötä Bitcoin-osoite (esim. %1) + + %1 d %1 d @@ -1270,6 +1346,18 @@ Osoite: %4 %1 s + NETWORK + VERKKO + + + UNKNOWN + TUNNISTAMATON + + + None + Ei yhtään + + N/A Ei saatavilla @@ -1328,6 +1416,10 @@ Osoite: %4 Käytössä oleva OpenSSL-versio + Using BerkeleyDB version + Käyttää BerkeleyDB-versiota + + Startup time Käynnistysaika @@ -1360,6 +1452,18 @@ Osoite: %4 Lähetetyt + &Peers + &Vertaiset + + + Select a peer to view detailed information. + Valitse vertainen eriteltyjä tietoja varten. + + + Direction + Suunta + + Version Versio @@ -1368,6 +1472,46 @@ Osoite: %4 Käyttöliittymä + Services + Palvelut + + + Starting Height + Aloituskorkeus + + + Sync Height + Synkronointikorkeus + + + Ban Score + Panna-pisteytys + + + Connection Time + Yhteysaika + + + Last Send + Viimeisin lähetetty + + + Last Receive + Viimeisin vastaanotettu + + + Bytes Sent + Tavua lähetetty + + + Bytes Received + Tavua vastaanotettu + + + Ping Time + Vasteaika + + Last block time Viimeisimmän lohkon aika @@ -1444,10 +1588,30 @@ Osoite: %4 %1 GB + via %1 + %1 kautta + + + never + ei koskaan + + + Inbound + Sisääntuleva + + + Outbound + Ulosmenevä + + Unknown Tuntematon - + + Fetching... + Hankitaan... + + ReceiveCoinsDialog @@ -1676,6 +1840,62 @@ Osoite: %4 Kustomoitu vaihtorahan osoite + Transaction Fee: + Rahansiirtokulu: + + + Choose... + Valitse... + + + collapse fee-settings + pudota kulujen asetukset + + + Minimize + Pienennä + + + per kilobyte + per kilotavu + + + total at least + yhteensä ainakin + + + (read the tooltip) + (lue työkaluvinkki) + + + Recommended: + Suositeltu: + + + Custom: + Muokattu: + + + Confirmation time: + Vahvistusaika: + + + normal + normaali + + + fast + nopea + + + Send as zero-fee transaction if possible + Lähetä siirtokuluttomana jos mahdollista + + + (confirmation may take longer) + (vahvistaminen voi viedä kauemmin) + + Send to multiple recipients at once Lähetä usealla vastaanottajalle samanaikaisesti @@ -1780,6 +2000,10 @@ Osoite: %4 Rahansiirto hylättiin! Tämä saattaa tapahtua jos lompakossa olevat kolikot on jo kulutettu, kuten jos käytät kopioita wallet.dat tiedostosta ja kolikot oli jos käytetty mutta ei merkattu täällä. + Pay only the minimum fee of %1 + Maksa vain vähimmäiskulu %1 + + Warning: Invalid Bitcoin address Varoitus: Virheellinen Bitcoin osoite @@ -1831,6 +2055,10 @@ Osoite: %4 Tämä on normaali maksu. + The Bitcoin address to send the payment to + Bitcoin-osoite johon maksu lähetetään + + Alt+A Alt+A @@ -1901,6 +2129,10 @@ Osoite: %4 Voit allekirjoittaa viestit omalla osoitteellasi todistaaksesi että omistat ne. Ole huolellinen, että et allekirjoita mitään epämääräistä, phishing-hyökkääjät voivat huijata sinua allekirjoittamaan luovuttamalla henkilöllisyytesi. Allekirjoita selvitys täysin yksityiskohtaisesti mihin olet sitoutunut. + The Bitcoin address to sign the message with + Bitcoin-osoite jolla viesti allekirjoitetaan + + Choose previously used address Valitse aikaisemmin käytetty osoite @@ -1953,6 +2185,10 @@ Osoite: %4 Syötä allekirjoittava osoite, viesti ja allekirjoitus alla oleviin kenttiin varmistaaksesi allekirjoituksen aitouden. Varmista että kopioit kaikki kentät täsmälleen oikein, myös rivinvaihdot, välilyönnit, tabulaattorit, jne. + The Bitcoin address the message was signed with + Bitcoin-osoite jolla viesti on allekirjoitettu + + Verify the message to ensure it was signed with the specified Bitcoin address Tarkista viestin allekirjoitus varmistaaksesi, että se allekirjoitettiin tietyllä Bitcoin-osoitteella @@ -2094,6 +2330,10 @@ Osoite: %4 oma osoite + watch-only + vain katseltava + + label nimi @@ -2114,6 +2354,14 @@ Osoite: %4 Debit + Total debit + Yhteensä debit + + + Total credit + Yhteensä credit + + Transaction fee Maksukulu @@ -2264,6 +2512,10 @@ Osoite: %4 Louhittu + watch-only + vain katseltava + + (n/a) (ei saatavilla) @@ -2375,6 +2627,10 @@ Osoite: %4 Vie rahansiirtohistoria + Watch-only + Vain katseltava + + Exporting Failed Vienti epäonnistui @@ -2429,7 +2685,11 @@ Osoite: %4 UnitDisplayStatusBarControl - + + Unit to show amounts in. Click to select another unit. + Yksikkö jossa määrät näytetään. Klikkaa valitaksesi toisen yksikön. + + WalletFrame @@ -2514,30 +2774,6 @@ Osoite: %4 Hyväksy yhteyksiä ulkopuolelta (vakioasetus: 1 jos -proxy tai -connect ei määritelty) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, sinun tulee asettaa rpcpassword asetustietostossa: -%s -Suositellaan että käytät allaolevaa satunnaista salasanaa: -rpcuser=bitcoinrpc -rpcpassword=%s -(sinun ei tarvitse muistaa tätä salasanaa) -Tämän tunnuksen ja salasanan TULEE OLLA sama. -Jos tiedostoa ei ole, luo se vain omistajan-luku-oikeudella. -Suositellaan asettaa alertnotify jotta saat tietoa ongelmista; -esimerkiksi: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 Kytkeydy annettuun osoitteeseen ja pidä linja aina auki. Käytä [host]:portin merkintätapaa IPv6:lle. @@ -2546,14 +2782,6 @@ esimerkiksi: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Aloita regression testimoodi joka käyttää erikoisketjua jossa lohkoja voidaan ratkaista välittömästi. - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Virhe: Rahansiirto hylättiin! Tämä saattaa tapahtua jos jotkut kolikot lompakossa on jo käytetty. Esimerkiksi jos kopioit wallet.dat tiedoston ja kolikot on käytetty mutta ei merkattu täällä. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - Virhe: Tämä rahansiirto vaatii rahansiirtopalkkion vähintään %s johtuen sen määrästä, monimutkaisuudesta tai hiljattain vastaanotettujen summien käytöstä - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Suorita käsky kun lompakossa rahansiirto muuttuu (%s cmd on vaihdettu TxID kanssa) @@ -2658,10 +2886,6 @@ esimerkiksi: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Varoitus: Levytila on vähissä! - Error: Wallet locked, unable to create transaction! - Virhe: Lompakko on lukittu, rahansiirtoa ei voida luoda - - Failed to listen on any port. Use -listen=0 if you want this. Ei onnistuttu kuuntelemaan missään portissa. Käytä -listen=0 jos haluat tätä. @@ -2706,6 +2930,10 @@ esimerkiksi: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Tämä on tarkoitettu regression testityökaluille ja ohjelman kehittämiseen. + Use UPnP to map the listening port (default: %u) + Käytä UPnP:ta kuuntelevan portin kartoittamiseen (oletus: %u) + + Verifying blocks... Varmistetaan lohkoja... @@ -2742,6 +2970,10 @@ esimerkiksi: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Aseta maksimikoko korkea prioriteetti/pieni palkkio rahansiirtoihin tavuissa (oletus: %d) + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + Aseta kolikoiden luomiseen tarkoitettujen säikeiden lukumäärä (-1 = kaikki ytimet, oletus: %d) + + Connect through SOCKS5 proxy Yhdistä SOCKS5 proxin kautta @@ -2766,8 +2998,8 @@ esimerkiksi: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Virheellinen määrä -mintxfee=<amount>: '%s' - Print block on startup, if found in block index - Tulosta lohko käynnistyksessä jos löydetään lohkoindeksistä + Node relay options: + Välityssolmukohdan asetukset: RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) @@ -2802,6 +3034,10 @@ esimerkiksi: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Siirron vahvistus epäonnistui + This is experimental software. + Tämä on ohjelmistoa kokeelliseen käyttöön. + + Transaction amount too small Siirtosumma liian pieni @@ -2882,14 +3118,70 @@ esimerkiksi: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Virhe ladattaessa wallet.dat-tiedostoa: Lompakko vioittunut + (default: %s) + (oletus: %s) + + + Acceptable ciphers (default: %s) + Hyväksyttävät salaukset (oletus: %s) + + Error loading wallet.dat Virhe ladattaessa wallet.dat-tiedostoa + Force safe mode (default: %u) + Pakota yhteensopivuustila (oletus: %u) + + + Generate coins (default: %u) + Luo kolikoita (oletus: %u) + + + How many blocks to check at startup (default: %u, 0 = all) + Kuinka monta lohkoa tarkistetaan käynnistyksessä (oletus: %u, 0 = kaikki) + + + Include IP addresses in debug output (default: %u) + Sisällytä IP-osoitteet virheenkorjauslokissa (oletus: %u) + + Invalid -proxy address: '%s' Virheellinen proxy-osoite '%s' + Relay non-P2SH multisig (default: %u) + Välitä ei-P2SH-multisig (oletus: %u) + + + Server certificate file (default: %s) + Palvelimen sertifikaattitiedosto (oletus: %s) + + + Server private key (default: %s) + Palvelimen private key (oletus: %s) + + + Set key pool size to <n> (default: %u) + Aseta avainaltaan kooksi <n> (oletus: %u) + + + Set minimum block size in bytes (default: %u) + Aseta pienin mahdollinen lohkokoko tavuina (oletus: %u) + + + Set the number of threads to service RPC calls (default: %d) + Aseta RPC-kutsujen palvelemiseen tarkoitettujen säikeiden lukumäärä (oletus: %d) + + + Specify configuration file (default: %s) + Määritä asetustiedosto (oletus: %s) + + + Specify pid file (default: %s) + Määritä pid-tiedosto (oletus: %s) + + Unknown network specified in -onlynet: '%s' Tuntematon verkko -onlynet parametrina: '%s' @@ -2906,10 +3198,6 @@ esimerkiksi: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com -paytxfee=<amount>: '%s' on virheellinen - Invalid amount - Virheellinen määrä - - Insufficient funds Lompakon saldo ei riitä @@ -2942,10 +3230,6 @@ esimerkiksi: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Lataus on valmis - To use the %s option - Käytä %s optiota - - Error Virhe diff --git a/src/qt/locale/bitcoin_fr.ts b/src/qt/locale/bitcoin_fr.ts index 71a15194111..612e7481289 100644 --- a/src/qt/locale/bitcoin_fr.ts +++ b/src/qt/locale/bitcoin_fr.ts @@ -2,8 +2,8 @@ AddressBookPage - Double-click to edit address or label - Double cliquer afin de modifier l'adresse ou l'étiquette + Right-click to edit address or label + Cliquer à droite pour modifier l'adresse ou l'étiquette Create a new address @@ -300,7 +300,7 @@ Importing blocks from disk... - Importation des blocs depuis le disque... + Importation des blocs à partir du disque... Reindexing blocks on disk... @@ -1281,6 +1281,14 @@ Adresse : %4 Remboursement de %1 + Payment request %2 is too large (%3 bytes, allowed %4 bytes). + La demande de paiement %2 est trop grande (%3 octets, %4 octets permis). + + + Payment request DoS protection + Protection DdS des demandes de paiement + + Error communicating with %1: %2 Erreur de communication avec %1 : %2 @@ -1566,7 +1574,7 @@ Adresse : %4 Type <b>help</b> for an overview of available commands. - Taper <b>help</b> pour afficher une vue générale des commandes disponibles. + Taper <b>help</b> pour afficher une vue générale des commandes proposées. %1 B @@ -2243,7 +2251,7 @@ Adresse : %4 Private key for the entered address is not available. - La clef privée pour l'adresse indiquée n'est pas disponible. + La clef privée n'est pas disponible pour l'adresse indiquée. Message signing failed. @@ -2799,30 +2807,6 @@ Adresse : %4 Accepter les connexions entrantes (par défaut : 1 si aucun -proxy ou -connect ) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, vous devez définir un mot de passe rpc dans le fichier de configuration : -%s -Il vous est conseillé d'utiliser le mot de passe aléatoire suivant : -rpcuser=bitcoinrpc -rpcpassword=%s -(vous n'avez pas besoin de retenir ce mot de passe) -Le nom d'utilisateur et le mot de passe NE DOIVENT PAS être identiques. -Si le fichier n'existe pas, créez-le avec les droits de lecture accordés au propriétaire. -Il est aussi conseillé de régler alertnotify pour être prévenu des problèmes ; -par exemple : alertnotify=echo %%s | mail -s "Alerte Bitcoin" admin@foo.com - - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 Se lier à l'adresse donnée et toujours l'écouter. Utilisez la notation [host]:port pour l'IPv6 @@ -2839,14 +2823,6 @@ par exemple : alertnotify=echo %%s | mail -s "Alerte Bitcoin" admin@foo.com Passer en mode de test de régression qui utilise une chaîne spéciale dans laquelle les blocs sont résolus instantanément. - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Erreur : La transaction a été rejetée ! Ceci peut arriver si certaines pièces de votre portefeuille étaient déjà dépensées, par exemple si vous avez utilisé une copie de wallet.dat et les pièces ont été dépensées avec cette copie sans être marquées comme tel ici. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - Erreur : cette transaction exige des frais de transaction d'au moins %s en raison de son montant, de sa complexité ou de l'utilisation de fonds reçus récemment ! - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Exécuter la commande lorsqu'une transaction de portefeuille change (%s dans la commande est remplacée par TxID) @@ -2959,10 +2935,6 @@ par exemple : alertnotify=echo %%s | mail -s "Alerte Bitcoin" admin@foo.com Erreur : l'espace disque est faible ! - Error: Wallet locked, unable to create transaction! - Erreur : Portefeuille verrouillé, impossible de créer la transaction ! - - Failed to listen on any port. Use -listen=0 if you want this. Échec de l'écoute sur un port quelconque. Utilisez -listen=0 si vous voulez ceci. @@ -2984,7 +2956,7 @@ par exemple : alertnotify=echo %%s | mail -s "Alerte Bitcoin" admin@foo.com Not enough file descriptors available. - Pas assez de descripteurs de fichiers de disponibles. + Pas assez de descripteurs de fichiers proposés. Only connect to nodes in network <net> (ipv4, ipv6 or onion) @@ -3087,10 +3059,22 @@ par exemple : alertnotify=echo %%s | mail -s "Alerte Bitcoin" admin@foo.com Les frais (en BTC/Ko) inférieurs à ce seuil sont considérés comme étant nuls pour la création de transactions (par défaut : %s) + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Si paytxfee n'est pas défini, inclure suffisamment de frais afin que les transactions commencent la confirmation en moyenne avant n blocs (par défaut : %u) + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Montant invalide pour -maxtxfee=<amount> : « %s » (doit être au moins les frais minrelay de %s pour prévenir le blocage des transactions) + + Maximum size of data in data carrier transactions we relay and mine (default: %u) Quantité maximale de données dans les transactions du porteur de données que nous relayons et minons (par défaut : %u) + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Total maximal des frais à utiliser en une seule transaction de portefeuille. Le définir trop bas pourrait empêcher les grosses transactions (par défaut : %s) + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) Demander les adresses des pairs par recherche DNS si l'on manque d'adresses (par défaut : 1 sauf si -connect) @@ -3107,6 +3091,34 @@ par exemple : alertnotify=echo %%s | mail -s "Alerte Bitcoin" admin@foo.com Ce produit comprend des logiciels développés par le projet OpenSSL pour être utilisés dans la boîte à outils OpenSSL <https://www.openssl.org/> et un logiciel cryptographique écrit par Eric Young, ainsi qu'un logiciel UPnP écrit par Thomas Bernard. + To use bitcoind, or the -server option to bitcoin-qt, you must set an rpcpassword in the configuration file: +%s +It is recommended you use the following random password: +rpcuser=bitcoinrpc +rpcpassword=%s +(you do not need to remember this password) +The username and password MUST NOT be the same. +If the file does not exist, create it with owner-readable-only file permissions. +It is also recommended to set alertnotify so you are notified of problems; +for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + Pour utiliser bitcoind, ou l'option -server de bitcoin-qt, vous devez définir un mot de passe rpc dans le fichier de configuration : +%s +Il est recommandé d'utiliser le mot de passe aléatoire suivant : +rpcuser=bitcoinrpc +rpcpassword=%s +(vous n'avez pas à mémoriser ce mot de passe) +Le nom d'utilisateur et le mot de passe NE DOIVENT PAS être identiques. +Si le fichier n'existe pas, créez-le avec la permission lecture-seule-par-le-propriétaire. +Il est aussi recommandé de définir alertnotify afin que les problèmes vous soient signalés ; +par exemple : alertnotify=echo %%s | mail -s "Alerte Bitcoin" admin@foo.com + + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Avertissement :-maxtxfee est défini très haut ! Des frais aussi élevés pourraient être payés sur une seule transaction. + + Warning: Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly. Avertissement : veuillez vérifier que l'heure et la date de votre ordinateur sont correctes ! Si votre horloge n'est pas à l'heure, Bitcoin Core ne fonctionnera pas correctement. @@ -3115,6 +3127,10 @@ par exemple : alertnotify=echo %%s | mail -s "Alerte Bitcoin" admin@foo.com Les pairs de la liste blanche ne peuvent pas être bannis DoS et leurs transactions sont toujours relayées, même si elles sont déjà dans le mempool, utile p. ex. pour une passerelle + Accept public REST requests (default: %u) + Accepter les demandes REST publiques (par défaut : %u) + + Cannot resolve -whitebind address: '%s' Impossible de résoudre l'adresse -whitebind : « %s » @@ -3151,6 +3167,10 @@ par exemple : alertnotify=echo %%s | mail -s "Alerte Bitcoin" admin@foo.com L'initialisation du test de cohérence a échoué. Bitcoin est en cours de fermeture. + Invalid amount for -maxtxfee=<amount>: '%s' + Montant invalide pour -maxtxfee=<amount> : « %s » + + Invalid amount for -minrelaytxfee=<amount>: '%s' Montant invalide pour -minrelayfee=<montant> : « %s » @@ -3167,10 +3187,6 @@ par exemple : alertnotify=echo %%s | mail -s "Alerte Bitcoin" admin@foo.com Masque réseau invalide spécifié dans -whitelist : « %s » - Keep at most <n> unconnectable blocks in memory (default: %u) - Garder au plus <n> blocs non connectables en mémoire (par défaut : %u) - - Keep at most <n> unconnectable transactions in memory (default: %u) Garder au plus <n> transactions non connectables en mémoire (par défaut : %u) @@ -3183,10 +3199,6 @@ par exemple : alertnotify=echo %%s | mail -s "Alerte Bitcoin" admin@foo.com Options de relais du nœud : - Print block on startup, if found in block index - Imprimer le bloc au démarrage s'il est trouvé dans l'index des blocs - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) Options RPC SSL : (voir le wiki Bitcoin pour les instructions de configuration de SSL) @@ -3235,6 +3247,10 @@ par exemple : alertnotify=echo %%s | mail -s "Alerte Bitcoin" admin@foo.com Les montants de transaction doivent être positifs + Transaction too large for fee policy + La transaction est trop grosse pour la politique de frais + + Transaction too large Transaction trop volumineuse @@ -3331,10 +3347,6 @@ par exemple : alertnotify=echo %%s | mail -s "Alerte Bitcoin" admin@foo.com Degré de profondeur de la vérification des blocs -checkblocks (0-4, par défaut : %u) - If paytxfee is not set, include enough fee so transactions are confirmed on average within n blocks (default: %u) - Si paytxfee n'est pas défini, inclure des frais suffisants afin que les transactions soient confirmées en moyenne en n blocs (par défaut : %u) - - Log transaction priority and fee per kB when mining blocks (default: %u) Lors du minage, journaliser la priorité des transactions et les frais par ko (par défaut : %u) @@ -3427,10 +3439,6 @@ par exemple : alertnotify=echo %%s | mail -s "Alerte Bitcoin" admin@foo.com Ajouter l'horodatage au début de la sortie de débogage (par défaut : %u) - Print block tree on startup (default: %u) - Imprimer l'arborescence des blocs au démarrage (par défaut : %u) - - Relay and mine data carrier transactions (default: %u) Relayer et miner les transactions du porteur de données (par défaut : %u) @@ -3495,10 +3503,6 @@ par exemple : alertnotify=echo %%s | mail -s "Alerte Bitcoin" admin@foo.com Montant invalide pour -paytxfee=<montant> : « %s » - Invalid amount - Montant invalide - - Insufficient funds Fonds insuffisants @@ -3531,10 +3535,6 @@ par exemple : alertnotify=echo %%s | mail -s "Alerte Bitcoin" admin@foo.com Chargement terminé - To use the %s option - Pour utiliser l'option %s - - Error Erreur diff --git a/src/qt/locale/bitcoin_fr_CA.ts b/src/qt/locale/bitcoin_fr_CA.ts index eae0b00b76c..c6b7dd7ffa8 100644 --- a/src/qt/locale/bitcoin_fr_CA.ts +++ b/src/qt/locale/bitcoin_fr_CA.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - Double-cliquez afin de modifier l'adress ou l'étiquette - - Create a new address Créer une nouvelle adresse diff --git a/src/qt/locale/bitcoin_gl.ts b/src/qt/locale/bitcoin_gl.ts index 2252baec732..cf16a129caf 100644 --- a/src/qt/locale/bitcoin_gl.ts +++ b/src/qt/locale/bitcoin_gl.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - Doble click para editar a dirección ou a etiqueta - - Create a new address Crear unha nova dirección @@ -2063,42 +2059,10 @@ Dirección: %4 Aceptar conexións de fóra (por defecto: 1 se non -proxy ou -connect) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, debes fixar unha rpcpassword no arquivo de configuración: -%s -Reoméndase usar o seguinte contrasinal aleatorio: -rpcuser=bitcoinrpc -rpcpassword=%s -(non precisas lembrar este contrasinal) -O nome do usuario e o contrasinal DEBEN NON ser o mesmo. -Se o arquivo non existe, debes crealo con permisos de so lectura para o propietario. -Tamén é recomendable fixar alertnotify de modo que recibas notificación dos problemas; -por exemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 Enlazar a unha dirección dada e escoitar sempre nela. Emprega a notación [host]:post para IPv6 - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Erro: A transacción foi rexeitada! Esto podería suceder se unha das moedas do teu moedeiro xa foi gastada, como se usas unha copia de wallet.dat e hai moedas que se gastaron na copia pero non foron marcadas como gastadas aquí. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - Erro: Esta transacción require unha tarifa de transacción de alomenos %s debido á súa cantidade, complexidade ou emprego de fondos recentemente recibidos! - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Executar comando cando unha transacción do moedeiro cambia (%s no comando é substituído por TxID) @@ -2175,10 +2139,6 @@ por exemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Erro: Espacio en disco escaso! - Error: Wallet locked, unable to create transaction! - Erro: Moedeiro bloqueado, imposible crear transacción! - - Failed to listen on any port. Use -listen=0 if you want this. Fallou escoitar en calquera porto. Emprega -listen=0 se queres esto. @@ -2343,10 +2303,6 @@ por exemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Cantidade inválida para -paytxfee=<cantidade>: '%s' - Invalid amount - Cantidade inválida - - Insufficient funds Fondos insuficientes @@ -2379,10 +2335,6 @@ por exemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Carga completa - To use the %s option - Empregar a opción %s - - Error Erro diff --git a/src/qt/locale/bitcoin_he.ts b/src/qt/locale/bitcoin_he.ts index b5470589860..2aff8300fd6 100644 --- a/src/qt/locale/bitcoin_he.ts +++ b/src/qt/locale/bitcoin_he.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - לחיצה כפולה לעריכת כתובת או תווית - - Create a new address יצירת כתובת חדשה @@ -2658,30 +2654,6 @@ Address: %4 קבלת חיבורים מבחוץ (בררת מחדל: 1 ללא ‎-proxy או ‎-connect) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, עליך להגדיר את ססמת ה־RPC בקובץ התצורה: - %s -מומלץ להשתמש בססמה האקראית הבאה: -rpcuser=bitcoinrpc -rpcpassword=%s -(אין צורך לזכור את הססמה) -אסור ששם המשתמש והססמה יהיו זהים. -אם הקובץ אינו קיים, יש ליצור אותו עם הרשאות קריאה לבעלים בלבד. -כמו כן, מומלץ להגדיר את alertnotify כדי לקבל דיווח על תקלות; -למשל: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 להתאגד לכתובת נתונה להאזין לה תמיד. יש להשתמש בצורה ‎[host]:port עבור IPv6. @@ -2694,14 +2666,6 @@ rpcpassword=%s כניסה למצב בדיקת נסיגה, שמשתמש בשרשרת מיוחדת בה ניתן לפתור את המקטעים במהירות. - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - שגיאה: ההעברה נדחתה! מצב כזה עלול לקרות אם כמה מהמטבעות בארנק שלך כבר נוצלו, למשל אם השתמשת בעותק של wallet.dat ומטבעות נשלחו בעותק אך לא סומנו כמושקעות כאן. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - שגיאה: ההעברה הזאת דורשת עמלת פעולה של לפחות %s עקב הכמות, המורכבות או השימוש בכספים שהתקבלו לאחרונה! - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) ביצוע פקודה כאשר העברה בארנק משתנה (%s ב־cmd יוחלף ב־TxID) @@ -2798,10 +2762,6 @@ rpcpassword=%s שגיאה: מעט מקום פנוי בכונן! - Error: Wallet locked, unable to create transaction! - שגיאה: הארנק נעול, אין אפשרות ליצור העברה! - - Failed to listen on any port. Use -listen=0 if you want this. האזנה נכשלה בכל פורט. השתמש ב- -listen=0 אם ברצונך בכך. @@ -2946,10 +2906,6 @@ rpcpassword=%s אפשרויות ממסר מפרק: - Print block on startup, if found in block index - הצגת מקטע בהפעלה, אם נמצא במפתח המקטעים - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) אפשרויות RPC SSL: (נא לעיין בוויקי של ביטקוין לקבלת הנחיות על הגדרת SSL) @@ -3094,10 +3050,6 @@ rpcpassword=%s כמות לא תקינה עבור ‎-paytxfee=<amount>‎:‏ '%s' - Invalid amount - כמות לא תקינה - - Insufficient funds אין מספיק כספים @@ -3130,10 +3082,6 @@ rpcpassword=%s טעינה הושלמה - To use the %s option - שימוש באפשרות %s - - Error שגיאה diff --git a/src/qt/locale/bitcoin_hi_IN.ts b/src/qt/locale/bitcoin_hi_IN.ts index 09a8392c27a..a0f52609a37 100644 --- a/src/qt/locale/bitcoin_hi_IN.ts +++ b/src/qt/locale/bitcoin_hi_IN.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - दो बार क्लिक करे पता या लेबल संपादन करने के लिए ! - - Create a new address नया पता लिखिए ! @@ -877,10 +873,6 @@ Address: %4 पता पुस्तक आ रही है... - Invalid amount - राशि ग़लत है - - Loading block index... ब्लॉक इंडेक्स आ रहा है... diff --git a/src/qt/locale/bitcoin_hr.ts b/src/qt/locale/bitcoin_hr.ts index 22831a0fd5a..d751c763de3 100644 --- a/src/qt/locale/bitcoin_hr.ts +++ b/src/qt/locale/bitcoin_hr.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - Dvostruki klik za uređivanje adrese ili oznake - - Create a new address Dodajte novu adresu @@ -1503,10 +1499,6 @@ Adresa:%4 Nevaljali iznos za opciju -paytxfee=<amount>: '%s' - Invalid amount - Nevaljali iznos za opciju - - Insufficient funds Nedovoljna sredstva diff --git a/src/qt/locale/bitcoin_hu.ts b/src/qt/locale/bitcoin_hu.ts index 81095424059..1f9f252106c 100644 --- a/src/qt/locale/bitcoin_hu.ts +++ b/src/qt/locale/bitcoin_hu.ts @@ -2,8 +2,8 @@ AddressBookPage - Double-click to edit address or label - Dupla-kattintás a cím vagy címke szerkesztéséhez + Right-click to edit address or label + A cím vagy címke szerkeszteséhez kattintson a jobb gombbal Create a new address @@ -870,10 +870,22 @@ Cím: %4 Üdvözlünk a Bitcoin Core-ban. + Use the default data directory + Az alapértelmezett adat könyvtár használata + + + Use a custom data directory: + Saját adatkönyvtár használata: + + Bitcoin Core Bitcoin Core + Error: Specified data directory "%1" cannot be created. + Hiba: A megadott "%1" adatkönyvtár nem hozható létre. + + Error Hiba @@ -896,7 +908,11 @@ Cím: %4 Select payment request file Fizetési kérelmi fájl kiválasztása - + + Select payment request file to open + Fizetés kérelmi fájl kiválasztása + + OptionsDialog @@ -920,6 +936,18 @@ Cím: %4 MB + Accept connections from outside + Külső kapcsolatok elfogadása + + + Allow incoming connections + Bejövő kapcsolatok engedélyezése + + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + A proxy IP címe (pl.: IPv4: 127.0.0.1 / IPv6: ::1) + + Reset all client options to default. Minden kliensbeállítás alapértelmezettre állítása. @@ -1012,6 +1040,10 @@ Cím: %4 Beállítások törlésének jóváhagyása. + Client restart required to activate changes. + A változtatások aktiválásahoz újra kell indítani a klienst. + + The supplied proxy address is invalid. A megadott proxy cím nem érvényes. @@ -1059,6 +1091,14 @@ Cím: %4 Aktuális egyenleged + Spendable: + Elkölthető: + + + Recent transactions + A legutóbbi tranzakciók + + out of sync Nincs szinkronban. @@ -1076,7 +1116,11 @@ Cím: %4 PeerTableModel - + + Ping Time + Ping idő + + QObject @@ -1084,6 +1128,22 @@ Cím: %4 Összeg + %1 d + %1 n + + + %1 h + %1 ó + + + %1 m + %1 p + + + %1 s + %1 mp + + NETWORK HÁLÓZAT @@ -1134,6 +1194,10 @@ Cím: %4 Debug ablak + General + Általános + + Using OpenSSL version Használt OpenSSL verzió @@ -1174,6 +1238,18 @@ Cím: %4 &Peerek + Version + Verzió + + + Services + Szolgáltatások + + + Ping Time + Ping idő + + Last block time Utolsó blokk ideje @@ -2058,10 +2134,6 @@ Cím: %4 Kívülről érkező kapcsolatok elfogadása (alapértelmezett: 1, ha nem használt a -proxy vagy a -connect) - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Hiba: a tranzakciót elutasították. Ezt az okozhatja, ha már elköltöttél valamennyi érmét a tárcádból például ha a wallet.dat-od egy másolatát használtad, és így az elköltés csak abban lett jelölve, de itt nem. - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Parancs, amit akkor hajt végre, amikor egy tárca-tranzakció megváltozik (%s a parancsban lecserélődik a blokk TxID-re) @@ -2251,10 +2323,6 @@ Cím: %4 Étvénytelen -paytxfee=<összeg> összeg: '%s' - Invalid amount - Étvénytelen összeg - - Insufficient funds Nincs elég bitcoinod. @@ -2287,10 +2355,6 @@ Cím: %4 Betöltés befejezve. - To use the %s option - Használd a %s opciót - - Error Hiba diff --git a/src/qt/locale/bitcoin_id_ID.ts b/src/qt/locale/bitcoin_id_ID.ts index ea2750ed083..012db4f4a22 100644 --- a/src/qt/locale/bitcoin_id_ID.ts +++ b/src/qt/locale/bitcoin_id_ID.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - Klik-ganda untuk mengubah alamat atau label - - Create a new address Buat alamat baru @@ -2307,10 +2303,6 @@ Alamat: %4 Terima hubungan dari luar (standar: 1 kalau -proxy atau -connect tidak dipilih) - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Gagal: Transaksi ditolak. Ini mungkin terjadi jika beberapa dari koin dalam dompet Anda telah digunakan, seperti ketika Anda menggunakan salinan wallet.dat dan beberapa koin telah dibelanjakan dalam salinan tersebut tetapi disini tidak tertandai sebagai terpakai. - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Jalankan perintah ketika perubahan transaksi dompet (%s di cmd digantikan oleh TxID) @@ -2391,10 +2383,6 @@ Alamat: %4 Gagal: Hard disk hampir terisi! - Error: Wallet locked, unable to create transaction! - Gagal: Dompet terkunci, transaksi tidak bisa dibuat! - - Importing... mengimpor... @@ -2567,10 +2555,6 @@ Alamat: %4 Nilai salah untuk -paytxfee=<amount>: '%s' - Invalid amount - Nilai salah - - Insufficient funds Saldo tidak mencukupi @@ -2603,10 +2587,6 @@ Alamat: %4 Memuat selesai - To use the %s option - Gunakan pilihan %s - - Error Gagal diff --git a/src/qt/locale/bitcoin_it.ts b/src/qt/locale/bitcoin_it.ts index 60ffe6df155..43fbf9aba93 100644 --- a/src/qt/locale/bitcoin_it.ts +++ b/src/qt/locale/bitcoin_it.ts @@ -2,8 +2,8 @@ AddressBookPage - Double-click to edit address or label - Fai doppio click per modificare o cancellare l'etichetta + Right-click to edit address or label + Fare clic con il tasto destro del mouse per modificare l'indirizzo o l'etichetta Create a new address @@ -15,7 +15,7 @@ Copy the currently selected address to the system clipboard - Copia l'indirizzo attualmente selezionato negli appunti + Copia negli appunti l'indirizzo attualmente selezionato &Copy @@ -31,11 +31,11 @@ Delete the currently selected address from the list - Cancella l'indirizzo attualmente selezionato dalla lista + Rimuove dalla lista l'indirizzo attualmente selezionato Export the data in the current tab to a file - Esporta i dati nella tabella corrente in un file + Esporta su file i dati contenuti nella tabella corrente &Export @@ -43,7 +43,7 @@ &Delete - &Cancella + &Elimina Choose the address to send coins to @@ -67,11 +67,11 @@ These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Questo è un elenco di indirizzi bitcoin a cui puoi inviare pagamenti. Controlla sempre l'importo e l'indirizzo del beneficiario prima di inviare bitcoin. + Questo è un elenco di indirizzi Bitcoin a cui puoi inviare pagamenti. Controlla sempre l'importo e l'indirizzo del beneficiario prima di inviare bitcoin. These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Questi sono i tuoi indirizzi bitcoin che puoi usare per ricevere pagamenti. Si raccomanda di generare un nuovo indirizzo per ogni transazione. + Questi sono i tuoi indirizzi Bitcoin che puoi usare per ricevere pagamenti. Si raccomanda di generare un nuovo indirizzo per ogni transazione. Copy &Label @@ -95,7 +95,7 @@ There was an error trying to save the address list to %1. Please try again. - Si è verificato un errore tentando di salvare la lista degli indirizzi. %1. Riprova + Si è verificato un errore tentando di salvare la lista degli indirizzi su %1. Si prega di riprovare. @@ -117,19 +117,19 @@ AskPassphraseDialog Passphrase Dialog - Finestra parola d'ordine + Finestra passphrase Enter passphrase - Inserisci la parola d'ordine + Inserisci la passphrase New passphrase - Nuova parola d'ordine + Nuova passphrase Repeat new passphrase - Ripeti la nuova parola d'ordine + Ripeti la nuova passphrase Encrypt wallet @@ -137,7 +137,7 @@ This operation needs your wallet passphrase to unlock the wallet. - Quest'operazione necessita della passphrase per sbloccare il portamonete. + Questa operazione necessita della passphrase per sbloccare il portamonete. Unlock wallet @@ -165,7 +165,7 @@ Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - Attenzione: se si cifra il portamonete e si perde la passphrase <b>TUTTI I PROPRI BITCOIN ANDRANNO PERSI</b>! + Attenzione: perdendo la passphrase di un portamonete cifrato <b>TUTTI I PROPRI BITCOIN ANDRANNO PERSI</b>! Are you sure you wish to encrypt your wallet? @@ -185,7 +185,7 @@ 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>. - Inserisci una nuona password per il postafoglio.<br/>Perfavore usa una password di<b>dieci o più caratteri</b>, o <b>otto o più parole</b>. + Inserisci la nuova passphrase per il portamonete.<br/>Si consiglia di utilizzare <b>almeno dieci caratteri casuali</b> oppure <b>otto o più parole</b>. 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. @@ -224,7 +224,7 @@ BitcoinGUI Sign &message... - Firma il &messaggio... + Firma &messaggio... Synchronizing with network... @@ -264,7 +264,7 @@ Show information about Qt - Mostra informazioni su Qt + Mostra le informazioni su Qt &Options... @@ -276,11 +276,11 @@ &Backup Wallet... - &Backup Portamonete... + &Backup portamonete... &Change Passphrase... - &Cambia la passphrase... + &Cambia passphrase... &Sending addresses... @@ -308,11 +308,11 @@ Send coins to a Bitcoin address - Invia monete ad un indirizzo bitcoin + Invia fondi ad un indirizzo Bitcoin Modify configuration options for Bitcoin - Modifica opzioni di configurazione per bitcoin + Modifica opzioni di configurazione per Bitcoin Backup wallet to another location @@ -324,7 +324,7 @@ &Debug window - Finestra &Debug + Finestra di &debug Open debugging and diagnostic console @@ -352,7 +352,7 @@ Show information about Bitcoin Core - Mostra le informazioni riguardo a Bitcoin core + Mostra le informazioni su Bitcoin Core &Show / Hide @@ -368,11 +368,11 @@ Sign messages with your Bitcoin addresses to prove you own them - Firma i messaggi con il tuo indirizzo bitcoin per dimostrarne il possesso + Firma messaggi con i tuoi indirizzi Bitcoin per dimostrarne il possesso Verify messages to ensure they were signed with specified Bitcoin addresses - Verifica i messaggi per accertare che siano stati firmati con gli indirizzi bitcoin specificati + Verifica che i messaggi siano stati firmati con gli indirizzi Bitcoin specificati &File @@ -388,7 +388,7 @@ Tabs toolbar - Barra degli strumenti "Tabs" + Barra degli strumenti Bitcoin Core @@ -400,7 +400,7 @@ &About Bitcoin Core - Info su Bitcoin Core + &Informazioni su Bitcoin Core Show the list of used sending addresses and labels @@ -412,23 +412,23 @@ Open a bitcoin: URI or payment request - Apri un URI o una richiesta di pagamento + Apri un bitcoin: URI o una richiesta di pagamento &Command-line options - Opzioni riga di &comando + Opzioni della riga di &comando Show the Bitcoin Core help message to get a list with possible Bitcoin command-line options - Mostra il messaggio di aiuto di Bitcoin Core per avere la lista di tutte le opzioni della riga di comando di Bitcoin. + Mostra il messaggio di aiuto di Bitcoin Core per ottenere la lista delle opzioni della riga di comando valide. %n active connection(s) to Bitcoin network - %n connessione attiva alla rete Bitcoin%n connessioni attive alla rete Bitcoin + %n connessione attiva alla rete Bitcoin%n connessioni alla rete Bitcoin attive No block source available... - Nessuna fonte di blocchi disponibile + Nessuna fonte di blocchi disponibile... %n hour(s) @@ -460,7 +460,7 @@ Transactions after this will not yet be visible. - Transazioni successive a questa non saranno ancora visibili. + Le transazioni effettuate successivamente non sono ancora visibili. Error @@ -527,8 +527,7 @@ Indirizzo: %4 CoinControlDialog Coin Selection - Seleziona Moneta - + Selezione Input Quantity: @@ -552,7 +551,7 @@ Indirizzo: %4 Dust: - Importo + Trascurabile: After Fee: @@ -580,7 +579,7 @@ Indirizzo: %4 Received with label - Ricevuto con etichetta + Ricevuto con l'etichetta Received with address @@ -592,7 +591,7 @@ Indirizzo: %4 Confirmations - Conferme: + Conferme Confirmed @@ -612,7 +611,7 @@ Indirizzo: %4 Copy amount - Copia l'importo + Copia importo Copy transaction ID @@ -648,7 +647,7 @@ Indirizzo: %4 Copy dust - Copia l'importo + Copia trascurabile Copy change @@ -660,7 +659,7 @@ Indirizzo: %4 higher - superiore + molto alta high @@ -684,7 +683,7 @@ Indirizzo: %4 lower - minore + molto bassa lowest @@ -700,7 +699,7 @@ Indirizzo: %4 Can vary +/- %1 satoshi(s) per input. - Può variare +/- %1 satoshi(s) per input. + Può variare di +/- %1 satoshi per input. yes @@ -712,11 +711,11 @@ Indirizzo: %4 This label turns red, if the transaction size is greater than 1000 bytes. - Questa etichetta diventa rossa se la dimensione della transazione supera i 1000 bytes + Questa etichetta diventerà rossa se la dimensione della transazione supererà i 1000 byte. This means a fee of at least %1 per kB is required. - Questo significa che è richiesta una commissione di almeno %1 per ogni kB. + In tal caso sarà necessaria una commissione di almeno %1 per ogni kB. Can vary +/- 1 byte per input. @@ -728,11 +727,11 @@ Indirizzo: %4 This label turns red, if the priority is smaller than "medium". - Questa etichetta diventa rossa se la priorità è inferiore a "media". + Questa etichetta diventerà rossa se la priorità sarà inferiore a "media". This label turns red, if any recipient receives an amount smaller than %1. - Questa etichetta diventa rossa se uno qualsiasi dei destinatari riceve un ammontare inferiore di %1. + Questa etichetta diventerà rossa se uno qualsiasi dei destinatari riceverà un ammontare inferiore a %1. (no label) @@ -763,7 +762,7 @@ Indirizzo: %4 The address associated with this address list entry. This can only be modified for sending addresses. - L'indirizzo associato a questa voce della rubrica. Può essere modificato solo per gli indirizzi d'invio. + L'indirizzo associato con questa voce della lista degli indirizzi. Può essere modificato solo per gli indirizzi d'invio. &Address @@ -787,11 +786,11 @@ Indirizzo: %4 The entered address "%1" is already in the address book. - L'indirizzo inserito "%1" è già in rubrica. + L'indirizzo "%1" è già presente in rubrica. The entered address "%1" is not a valid Bitcoin address. - L'indirizzo inserito "%1" non è un indirizzo bitcoin valido. + L'indirizzo "%1" non è un indirizzo bitcoin valido. Could not unlock wallet. @@ -810,11 +809,11 @@ Indirizzo: %4 name - Nome + nome Directory already exists. Add %1 if you intend to create a new directory here. - La cartella esiste già. Aggiungi %1 se intendi creare qui una nuova cartella. + Cartella già esistente. Aggiungi %1 se intendi creare qui una nuova cartella. Path already exists, and is not a directory. @@ -822,7 +821,7 @@ Indirizzo: %4 Cannot create data directory here. - Qui non è possibile creare una cartella dati. + Impossibile creare una cartella dati qui. @@ -841,11 +840,11 @@ Indirizzo: %4 About Bitcoin Core - Info su Bitcoin Core + Informazioni su Bitcoin Core Command-line options - opzioni riga di comando + Opzioni della riga di comando Usage: @@ -853,15 +852,15 @@ Indirizzo: %4 command-line options - opzioni riga di comando + opzioni della riga di comando UI options - UI opzioni + Opzioni UI Set language, for example "de_DE" (default: system locale) - Imposta lingua, ad esempio "it_IT" (predefinita: lingua di sistema) + Imposta lingua, ad esempio "it_IT" (predefinito: lingua di sistema) Start minimized @@ -877,7 +876,7 @@ Indirizzo: %4 Choose data directory on startup (default: 0) - Scegli una cartella dati all'avvio (predefinito: 0) + Seleziona la cartella dati all'avvio (predefinito: 0) @@ -896,7 +895,7 @@ Indirizzo: %4 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. - Bitcoin Core scaricherà e salverà una copia del block chain di Bitcoin. Almeno %1GB di dati che andranno ad aumentare col tempo saranno salvati in questa cartella. Anche il portamonete sarà salvato in questa cartella. + Bitcoin Core scaricherà e salverà una copia della block chain di Bitcoin. Il portamonete ed almeno %1GB di dati saranno salvati in questa cartella. Si ricorda che lo spazio occupato andrà ad aumentare nel tempo. Use the default data directory @@ -974,20 +973,20 @@ Indirizzo: %4 Accept connections from outside - Accetta connessioni da fuori + Accetta connessioni provenienti dall'esterno Allow incoming connections - Permetti connessioni in entrata + Permetti connessioni in ingresso IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - Indirizzo IP del proxy (es: IPv4: 127.0.0.1 / IPv6: ::1) + Indirizzo IP del proxy (ad es. IPv4: 127.0.0.1 / IPv6: ::1) Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - URL di terze parti (es: un block explorer) che appaiono nella tabella delle transazioni come voci nel menu contestuale. %s nell'URL è sostituito dall'hash della transazione. -Più URL vengono separati da una barra verticale |. + URL di terze parti (ad es. un block explorer) che appaiono nella tabella delle transazioni come voci nel menu contestuale. "%s" nell'URL è sostituito dall'hash della transazione. +Per specificare più URL separarli con una barra verticale "|". Third party transaction URLs @@ -995,7 +994,7 @@ Più URL vengono separati da una barra verticale |. Active command-line options that override above options: - Opzioni command-line attive che sostituiscono i settaggi sopra elencati: + Opzioni della riga di comando attive che sostituiscono i settaggi sopra elencati: Reset all client options to default. @@ -1027,11 +1026,11 @@ Più URL vengono separati da una barra verticale |. If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed. - Disabilitando l'uso di resti non confermati, il resto di una transazione non potrà essere speso fino a quando la transazione non avrà ottenuto almeno una conferma. Questa impostazione influisce inoltre sul calcolo saldo. + Disabilitando l'uso di resti non confermati, il resto di una transazione non potrà essere speso fino a quando non avrà ottenuto almeno una conferma. Questa impostazione influisce inoltre sul calcolo del saldo. &Spend unconfirmed change - &Spendere resti non confermati + &Spendi resti non confermati Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. @@ -1059,7 +1058,7 @@ Più URL vengono separati da una barra verticale |. Port of the proxy (e.g. 9050) - Porta del proxy (es. 9050) + Porta del proxy (ad es. 9050) &Window @@ -1099,7 +1098,7 @@ Più URL vengono separati da una barra verticale |. Choose the default subdivision unit to show in the interface and when sending coins. - Scegli l'unità di suddivisione predefinita da utilizzare per l'interfaccia e per l'invio di monete. + Scegli l'unità di suddivisione predefinita da utilizzare per l'interfaccia e per l'invio di bitcoin. Whether to show coin control features or not. @@ -1127,7 +1126,7 @@ Più URL vengono separati da una barra verticale |. Client restart required to activate changes. - È necessario un riavvio del client per rendere attivi i cambiamenti. + È necessario un riavvio del client per applicare le modifiche. Client will be shutdown, do you want to proceed? @@ -1135,11 +1134,11 @@ Più URL vengono separati da una barra verticale |. This change would require a client restart. - Questo cambiamento richiede un riavvio del client. + Questa modifica richiede un riavvio del client. The supplied proxy address is invalid. - L'indirizzo proxy che hai fornito è invalido. + L'indirizzo proxy che hai fornito non è valido. @@ -1154,7 +1153,7 @@ Più URL vengono separati da una barra verticale |. Watch-only: - Guarda solo + Sola lettura: Available: @@ -1162,7 +1161,7 @@ Più URL vengono separati da una barra verticale |. Your current spendable balance - Saldo spendibile attuale + Il tuo saldo spendibile attuale Pending: @@ -1190,15 +1189,15 @@ Più URL vengono separati da una barra verticale |. Your current total balance - Saldo totale attuale + Il tuo saldo totale attuale Your current balance in watch-only addresses - Il tuo saldo attuale negli indirizzi watch-only + Il tuo saldo attuale negli indirizzi di sola lettura Spendable: - Saldo Spendibile: + Spendibile: Recent transactions @@ -1210,11 +1209,11 @@ Più URL vengono separati da una barra verticale |. Mined balance in watch-only addresses that has not yet matured - l'equilibrio estratto solo nello sguardo degli indirizzi non è ancora maturo + Importo generato dal mining su indirizzi di sola lettura e non ancora maturato Current total balance in watch-only addresses - Saldo corrente totale negli indirizzi watch-only + Saldo corrente totale negli indirizzi di sola lettura out of sync @@ -1233,15 +1232,15 @@ Più URL vengono separati da una barra verticale |. Payment request rejected - Richiesta di pagamento rifiutata + Richiesta di pagamento respinta Payment request network doesn't match client network. - Il network della richiesta di pagamento non corrisponde al network del client. + La rete della richiesta di pagamento non corrisponde alla rete del client. Payment request has expired. - Richieda di pagamento scaduta + Richiesta di pagamento scaduta. Payment request is not initialized. @@ -1249,7 +1248,7 @@ Più URL vengono separati da una barra verticale |. Requested payment amount of %1 is too small (considered dust). - L'importo di pagamento richiesto di %1 è troppo basso (considerato come trascurabile). + L'importo di pagamento di %1 richiesto è troppo basso (considerato come trascurabile). Payment request error @@ -1265,7 +1264,7 @@ Più URL vengono separati da una barra verticale |. URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - Impossibile interpretare l'URI! Ciò può essere causato da un indirizzo Bitcoin invalido o da parametri URI non corretti. + Impossibile interpretare l'URI! I parametri URI o l'indirizzo Bitcoin potrebbero non essere corretti. Payment request file handling @@ -1273,7 +1272,7 @@ Più URL vengono separati da una barra verticale |. Payment request file cannot be read! This can be caused by an invalid payment request file. - Il file di richiesta del pagamento non può essere letto o elaborato! Questo può essere causato da una richiesta di pagamento non valida. + Impossibile leggere il file della richiesta di pagamento! Il file della richiesta di pagamento potrebbe non essere valido. Unverified payment requests to custom payment scripts are unsupported. @@ -1284,12 +1283,20 @@ Più URL vengono separati da una barra verticale |. Rimborso da %1 + Payment request %2 is too large (%3 bytes, allowed %4 bytes). + La richiesta di pagamento %2 (%3 byte) supera la dimensione massima di %4 byte. + + + Payment request DoS protection + Protezione DoS per la richiesta di pagamento + + Error communicating with %1: %2 Errore di comunicazione con %1: %2 Payment request cannot be parsed! - La richiesta di pagamento non può essere analizzata. + La richiesta di pagamento non può essere analizzata! Bad response from server %1 @@ -1312,7 +1319,7 @@ Più URL vengono separati da una barra verticale |. Address/Hostname - Indirizzo/Hostname + Indirizzo/Nome host Ping Time @@ -1327,7 +1334,7 @@ Più URL vengono separati da una barra verticale |. Enter a Bitcoin address (e.g. %1) - Inserisci un indirizzo Bitcoin (e.g. %1) + Inserisci un indirizzo Bitcoin (ad es. %1) %1 d @@ -1370,7 +1377,7 @@ Più URL vengono separati da una barra verticale |. QRImageWidget &Save Image... - &Salva Immagine + &Salva Immagine... &Copy Image @@ -1421,7 +1428,7 @@ Più URL vengono separati da una barra verticale |. Startup time - Tempo di avvio + Ora di avvio Network @@ -1453,7 +1460,7 @@ Più URL vengono separati da una barra verticale |. &Peers - &Peers + &Peer Select a peer to view detailed information. @@ -1477,35 +1484,35 @@ Più URL vengono separati da una barra verticale |. Starting Height - Blocco di partenza + Nr. Blocco Iniziale Sync Height - valore di sincronizzazione + Nr. Blocco Sincronizzato Ban Score - divieto di segnalazione + Punteggio di Ban Connection Time - Tempo di connessione + Tempo di Connessione Last Send - Ultimo invio + Ultimo Invio Last Receive - Ultima ricevuta + Ultima Ricezione Bytes Sent - Bytes Inviati + Byte Inviati Bytes Received - Bytes Ricevuti + Byte Ricevuti Ping Time @@ -1553,7 +1560,7 @@ Più URL vengono separati da una barra verticale |. Open the Bitcoin debug log file from the current data directory. This can take a few seconds for large log files. - Apri il file di log del debug di Bitcoin dalla cartella attuale. Può richiedere alcuni secondi per file di log grandi. + Apri il file log del debug di Bitcoin dalla cartella dati attuale. Può richiedere alcuni secondi per file di log di grandi dimensioni. Clear console @@ -1561,15 +1568,15 @@ Più URL vengono separati da una barra verticale |. Welcome to the Bitcoin RPC console. - Benvenuto nella console RPC di Bitcoin + Benvenuto nella console RPC di Bitcoin. Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Usa le frecce direzionali per navigare la cronologia, e <b>Ctrl-L</b> per cancellarla. + Usa le frecce direzionali per scorrere la cronologia, e <b>Ctrl-L</b> per cancellarla. Type <b>help</b> for an overview of available commands. - Scrivi <b>help</b> per un riassunto dei comandi disponibili + Scrivi <b>help</b> per un riassunto dei comandi disponibili. %1 B @@ -1609,7 +1616,7 @@ Più URL vengono separati da una barra verticale |. Fetching... - attraente + Recuperando... @@ -1620,7 +1627,7 @@ Più URL vengono separati da una barra verticale |. &Label: - &Etichetta + &Etichetta: &Message: @@ -1628,7 +1635,7 @@ Più URL vengono separati da una barra verticale |. Reuse one of the previously used receiving addresses. Reusing addresses has security and privacy issues. Do not use this unless re-generating a payment request made before. - Riutilizza uno degli indirizzi di ricezione generati in precedenza. Riutilizzare un indirizzo comporta problemi di sicurezza e privacy. Non utilizzare a meno che non si stia rigenerando una richiesta di pagamento creata in precedenza. + Riutilizza uno degli indirizzi di ricezione generati in precedenza. Riutilizzare un indirizzo comporta problemi di sicurezza e privacy. Non selezionare questa opzione a meno che non si stia rigenerando una richiesta di pagamento creata in precedenza. R&euse an existing receiving address (not recommended) @@ -1636,11 +1643,11 @@ Più URL vengono separati da una barra verticale |. An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Un messaggio opzionale da allegare alla richiesta di pagamento, il quale sarà mostrato all'apertura della richiesta. Nota: Il messaggio non sarà inviato con il pagamento sulla rete Bitcoin. + Un messaggio opzionale da allegare e mostrare all'apertura della richiesta di pagamento. Nota: Il messaggio non sarà inviato con il pagamento sulla rete Bitcoin. An optional label to associate with the new receiving address. - Un'etichetta facoltativa da associare al nuovo indirizzo di ricezione + Un'etichetta opzionale da associare al nuovo indirizzo di ricezione. Use this form to request payments. All fields are <b>optional</b>. @@ -1688,7 +1695,7 @@ Più URL vengono separati da una barra verticale |. Copy message - Copia messaggio + Copia il messaggio Copy amount @@ -1711,7 +1718,7 @@ Più URL vengono separati da una barra verticale |. &Save Image... - &Salva Immagine + &Salva Immagine... Request payment to %1 @@ -1747,7 +1754,7 @@ Più URL vengono separati da una barra verticale |. Error encoding URI into QR Code. - Errore nella codifica dell'URI nel codice QR + Errore nella codifica dell'URI nel codice QR. @@ -1833,7 +1840,7 @@ Più URL vengono separati da una barra verticale |. If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Se questo è abilitato e l'indirizzo per il resto è vuoto o invalido, il resto sarà inviato ad un nuovo indirizzo bitcoin generato appositamente. + In caso di abilitazione con indirizzo vuoto o non valido, il resto sarà inviato ad un nuovo indirizzo generato appositamente. Custom change address @@ -1841,23 +1848,39 @@ Più URL vengono separati da una barra verticale |. Transaction Fee: - Tasse di Transazione + Commissione di Transazione: Choose... Scegli... + collapse fee-settings + minimizza le impostazioni di commissione + + Minimize Minimizza + 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. + Se la commissione personalizzata è impostata su 1000 satoshi e la transazione è di soli 250 byte, allora "per kilobyte" paga solo 250 satoshi di commissione, mentre "somma almeno" paga 1000 satoshi. Per transazioni più grandi di un kilobyte, entrambe le opzioni pagano al kilobyte. + + per kilobyte per kilobyte + 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. + Se la commissione personalizzata è impostata su 1000 satoshi e la transazione è di soli 250 byte, allora "per kilobyte" paga solo 250 satoshi di commissione, mentre "somma almeno" paga 1000 satoshi. Per transazioni più grandi di un kilobyte, entrambe le opzioni pagano al kilobyte. + + + total at least + somma almeno + + 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. - 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. + Non vi è alcuna controindicazione a pagare la commissione minima, a patto che il volume delle transazioni sia inferiore allo spazio disponibile nei blocchi. Occorre comunque essere consapevoli che ciò potrebbe impedire la conferma delle transazioni nel caso in cui la rete risultasse satura. (read the tooltip) @@ -1865,11 +1888,15 @@ Più URL vengono separati da una barra verticale |. Recommended: - Raccomandati: + Raccomandata: Custom: - Personalizza: + Personalizzata: + + + (Smart fee not initialized yet. This usually takes a few blocks...) + (Commissione intelligente non ancora inizializzata. Normalmente richiede un'attesa di alcuni blocchi...) Confirmation time: @@ -1885,7 +1912,7 @@ Più URL vengono separati da una barra verticale |. Send as zero-fee transaction if possible - Invia una transazione a zero commissioni se possibile + Invia come transazione a zero commissioni se possibile (confirmation may take longer) @@ -1893,7 +1920,7 @@ Più URL vengono separati da una barra verticale |. Send to multiple recipients at once - Invia a diversi beneficiari in una volta sola + Invia simultaneamente a più beneficiari Add &Recipient @@ -1905,7 +1932,7 @@ Più URL vengono separati da una barra verticale |. Dust: - Trascurabile + Trascurabile: Clear &All @@ -1937,7 +1964,7 @@ Più URL vengono separati da una barra verticale |. Copy amount - Copia l'importo + Copia importo Copy fee @@ -1973,11 +2000,11 @@ Più URL vengono separati da una barra verticale |. The amount to pay must be larger than 0. - L'importo da pagare dev'essere maggiore di 0. + L'importo da pagare deve essere maggiore di 0. The amount exceeds your balance. - L'importo è superiore al tuo saldo attuale + L'importo è superiore al tuo saldo attuale. The total exceeds your balance when the %1 transaction fee is included. @@ -1985,7 +2012,7 @@ Più URL vengono separati da una barra verticale |. Duplicate address found, can only send to each address once per send operation. - Rilevato un indirizzo duplicato, è possibile inviare bitcoin una sola volta agli indirizzi durante un'operazione di invio. + Rilevato un indirizzo duplicato. È possibile inviare bitcoin una sola volta a ciascun indirizzo durante un'operazione di invio. Transaction creation failed! @@ -1993,7 +2020,19 @@ Più URL vengono separati da una barra verticale |. 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. - La transazione è stata rifiutata! Questo può accadere se alcuni bitcoin nel tuo portamonete sono già stati spesi, ad esempio se hai utilizzato una copia del file wallet.dat per spendere bitcoin e questi non sono stati considerati spesi dal portamonete corrente. + La transazione è stata respinta! Questo può accadere se alcuni bitcoin nel tuo portamonete sono già stati spesi, come nel caso in cui tu avessi utilizzato una copia del file wallet.dat per spendere bitcoin e questi non fossero stati considerati come spesi dal portamonete corrente. + + + A fee higher than %1 is considered an insanely high fee. + Una commissione maggiore di %1 è considerata irragionevolmente elevata. + + + Pay only the minimum fee of %1 + Paga solamente la commissione minima di %1 + + + Estimated to begin confirmation within %1 block(s). + Inizio delle conferme stimato entro %1 blocchi. Warning: Invalid Bitcoin address @@ -2009,7 +2048,7 @@ Più URL vengono separati da una barra verticale |. Copy dust - Copia l'importo + Copia trascurabile Are you sure you want to send? @@ -2032,11 +2071,11 @@ Più URL vengono separati da una barra verticale |. Enter a label for this address to add it to your address book - Inserisci un'etichetta per questo indirizzo, per aggiungerlo nella rubrica + Inserisci un'etichetta per questo indirizzo, per aggiungerlo alla rubrica &Label: - &Etichetta + &Etichetta: Choose previously used address @@ -2114,7 +2153,7 @@ Più URL vengono separati da una barra verticale |. &Sign Message - &Firma il messaggio + &Firma Messaggio 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. @@ -2122,7 +2161,7 @@ Più URL vengono separati da una barra verticale |. The Bitcoin address to sign the message with - L'indirizzo Bitcoin con cui vuoi contrassegnare il messaggio + L'indirizzo Bitcoin da utilizzare per firmare il messaggio Choose previously used address @@ -2154,7 +2193,7 @@ Più URL vengono separati da una barra verticale |. Sign the message to prove you own this Bitcoin address - Firma un messaggio per dimostrare di possedere questo indirizzo + Firma un messaggio per dimostrare di possedere questo indirizzo Bitcoin Sign &Message @@ -2166,7 +2205,7 @@ Più URL vengono separati da una barra verticale |. Clear &All - Cancella &tutto + Cancella &Tutto &Verify Message @@ -2174,7 +2213,7 @@ Più URL vengono separati da una barra verticale |. 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. - Inserisci l'indirizzo del firmatario, il messaggio (assicurati di copiare esattamente anche i ritorni a capo, gli spazi, le tabulazioni, etc..) e la firma qui sotto, per verificare il messaggio. Presta attenzione a non vedere nella firma più di quanto non sia riportato nel messaggio stesso, per evitare di cadere vittima di attacchi di tipo man-in-the-middle. + Inserisci l'indirizzo del firmatario, il messaggio (assicurandoti di copiare esattamente anche i ritorni a capo, gli spazi, le tabulazioni, etc..) e la firma qui sotto, per verificare il messaggio. Presta attenzione a non vedere nella sola firma più di quanto non sia riportato nel messaggio stesso, in modo da evitare di cadere vittima di attacchi di tipo man-in-the-middle. The Bitcoin address the message was signed with @@ -2202,7 +2241,7 @@ Più URL vengono separati da una barra verticale |. Please check the address and try again. - Per favore controlla l'indirizzo e prova ancora + Per favore controlla l'indirizzo e prova di nuovo. The entered address does not refer to a key. @@ -2230,7 +2269,7 @@ Più URL vengono separati da una barra verticale |. Please check the signature and try again. - Per favore controlla la firma e prova ancora. + Per favore controlla la firma e prova di nuovo. The signature did not match the message digest. @@ -2253,7 +2292,7 @@ Più URL vengono separati da una barra verticale |. The Bitcoin Core developers - Gli sviluppatori del Bitcoin Core + Gli sviluppatori di Bitcoin Core [testnet] @@ -2283,7 +2322,7 @@ Più URL vengono separati da una barra verticale |. %1/unconfirmed - %1/non confermato + %1/non confermata %1 confirmations @@ -2295,7 +2334,7 @@ Più URL vengono separati da una barra verticale |. , broadcast through %n node(s) - , trasmesso attraverso %n nodo, trasmesso attraverso %n nodi + , trasmesso attraverso %n nodo, trasmessa attraverso %n nodi Date @@ -2323,7 +2362,7 @@ Più URL vengono separati da una barra verticale |. watch-only - Guarda solo + sola lettura label @@ -2347,7 +2386,7 @@ Più URL vengono separati da una barra verticale |. Total debit - Credito Totale + Debito totale Total credit @@ -2375,11 +2414,11 @@ Più URL vengono separati da una barra verticale |. Merchant - Mercante + Commerciante 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. - È necessario attendere %1 blocchi prima che i bitcoin generati possano essere spesi. Quando è stato generato questo blocco, è stato trasmesso alla rete in modo da poter essere aggiunto alla block chain. Se l'inserimento avrà esito negativo il suo stato sarà modificato in "non accettato" e risulterà non spendibile. Questo può occasionalmente accadere se un altro nodo genera un blocco entro pochi secondi dal tuo. + È necessario attendere %1 blocchi prima che i bitcoin generati possano essere spesi. Al momento della generazione questo blocco è stato trasmesso alla rete in modo da poter essere aggiunto alla block chain. Se l'inserimento avrà esito negativo lo stato del blocco sarà modificato in "non accettato" ed esso risulterà non spendibile. Ciò può verificarsi occasionalmente nel caso in cui un altro blocco sia stato generato entro pochi secondi dal tuo. Debug information @@ -2407,7 +2446,7 @@ Più URL vengono separati da una barra verticale |. , has not been successfully broadcast yet - , non è stato ancora trasmesso con successo + , non è ancora stata trasmessa con successo Open for %n more block(s) @@ -2457,11 +2496,11 @@ Più URL vengono separati da una barra verticale |. Confirmed (%1 confirmations) - Confermato (%1 conferme) + Confermata (%1 conferme) This block was not received by any other nodes and will probably not be accepted! - Questo blocco non è stato ricevuto dagli altri nodi e probabilmente non sarà accettato! + Questo blocco non è stato ricevuto da alcun altro nodo e probabilmente non sarà accettato! Generated but not accepted @@ -2473,7 +2512,7 @@ Più URL vengono separati da una barra verticale |. Unconfirmed - Non confermato: + Non confermata Confirming (%1 of %2 recommended confirmations) @@ -2505,11 +2544,11 @@ Più URL vengono separati da una barra verticale |. watch-only - Guarda solo + sola lettura (n/a) - (N / a) + (n/d) Transaction status. Hover over this field to show number of confirmations. @@ -2524,6 +2563,10 @@ Più URL vengono separati da una barra verticale |. Tipo di transazione. + Whether or not a watch-only address is involved in this transaction. + Indica se un indirizzo di sola lettura sia o meno coinvolto in questa transazione. + + Destination address of transaction. Indirizzo di destinazione della transazione. @@ -2679,7 +2722,7 @@ Più URL vengono separati da una barra verticale |. UnitDisplayStatusBarControl Unit to show amounts in. Click to select another unit. - Tipo di unità visualizzata. Clicca per selezionare un altra unità + Unità con cui visualizzare gli importi. Clicca per selezionare un altra unità. @@ -2704,7 +2747,7 @@ Più URL vengono separati da una barra verticale |. Export the data in the current tab to a file - Esporta su file i dati della tabella corrente + Esporta su file i dati contenuti nella tabella corrente Backup Wallet @@ -2743,7 +2786,7 @@ Più URL vengono separati da una barra verticale |. Connect to a node to retrieve peer addresses, and disconnect - Connettiti ad un nodo per recuperare gli indirizzi dei peer e scollegati + Connessione ad un nodo e successiva disconnessione per recuperare gli indirizzi dei peer Specify your own public address @@ -2763,59 +2806,27 @@ Più URL vengono separati da una barra verticale |. Accept connections from outside (default: 1 if no -proxy or -connect) - Accetta connessioni dall'esterno (predefinito: 1 se no -proxy o -connect) - - - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, devi impostare una rpcpassword nel file di configurazione: -%s -Si raccomanda l'uso della seguente password generata casualmente: -rpcuser=bitcoinrpc -rpcpassword=%s -(non serve ricordare questa password) -Il nome utente e la password NON DEVONO essere uguali. -Se il file non esiste, crealo concedendo permessi di lettura al solo proprietario del file. -Si raccomanda anche di impostare alertnotify così sarai avvisato di eventuali problemi; -ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com - + Accetta connessioni dall'esterno (predefinito: 1 se -proxy o -connect non sono utilizzati) Bind to given address and always listen on it. Use [host]:port notation for IPv6 - Associa all'indirizzo indicato e resta permanentemente in ascolto su questo. Usa la notazione [host]:porta per l'IPv6 + Associa all'indirizzo indicato e resta permanentemente in ascolto su di esso. Usa la notazione [host]:porta per l'IPv6 Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup - Elimina tutte le transazioni dal wallet e recupera solo le parti della blockchain con il comando -rescan all'avvio. + Elimina tutte le transazioni dal portamonete e recupera solo quelle che fanno parte della blockchain attraverso il comando -rescan all'avvio. Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. - Distribuito secondo la licenza software MIT, vedi il file incluso COPYNG oppure <http://www.opensource.org/licenses/mit-license.php>. + Distribuito secondo la licenza software MIT, vedi il file COPYING incluso oppure <http://www.opensource.org/licenses/mit-license.php>. Enter regression test mode, which uses a special chain in which blocks can be solved instantly. - Entra in modalità di test di regressione, la quale usa una speciale catena in cui i blocchi possono essere risolti istantaneamente. - - - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Errore: la transazione è stata rifiutata! Questo può accadere se alcuni bitcoin nel tuo portamonete sono già stati spesi, ad esempio se hai utilizzato una copia del file wallet.dat per spendere bitcoin e questi non sono stati considerati spesi dal portamonete corrente. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - Errore: questa transazione necessita di una commissione di almeno %s a causa del suo ammontare, della sua complessità, o dell'uso di fondi recentemente ricevuti! + Entra in modalità test di regressione. Questa utilizza una speciale catena in cui i blocchi possono essere risolti istantaneamente. Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) - Esegui comando quando una transazione del portamonete cambia (%s in cmd è sostituito da TxID) + Esegue un comando quando lo stato di una transazione del portamonete cambia (%s in cmd è sostituito da TxID) In this mode -genproclimit controls how many blocks are generated immediately. @@ -2835,27 +2846,27 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. - Attenzione: -paytxfee è molto alta. Questa è la commissione che si paga quando si invia una transazione. + Attenzione: -paytxfee è impostato su un valore molto elevato. Questa è la commissione che si paga quando si invia una transazione. Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. - Attenzione: La rete non sembra essere d'accordo pienamente! Alcuni minatori sembrano riscontrare problemi. + Attenzione: La rete non sembra trovarsi in pieno consenso! Alcuni minatori sembrano riscontrare problemi. Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. - Attenzione: Sembra che non ci sia completo accordo con i nostri peer! Un aggiornamento da parte tua o degli altri nodi potrebbe essere necessario. + Attenzione: Sembra che non vi sia pieno consenso con i nostri peer! Un aggiornamento da parte tua o degli altri nodi potrebbe essere necessario. Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. - Attenzione: errore di lettura di wallet.dat! Tutte le chiavi sono state lette correttamente, ma i dati delle transazioni o le voci in rubrica potrebbero mancare o non essere corretti. + Attenzione: errore di lettura di wallet.dat! Tutte le chiavi sono state lette correttamente, ma i dati delle transazioni o della rubrica potrebbero essere mancanti o non corretti. 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. - Attenzione: wallet.dat corrotto, dati recuperati! Il wallet.dat originale è stato salvato come wallet.{timestamp}.bak in %s; se il tuo saldo o le transazioni non sono corrette dovresti ripristinare da un backup. + Attenzione: wallet.dat corrotto, dati recuperati! Il wallet.dat originale è stato salvato come wallet.{timestamp}.bak in %s. Se i dati relativi a saldo o transazioni non dovessero risultare corretti si consiglia di procedere al ripristino da un backup. Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. - Peer in whitelist connessi dalla data netmask oppure dall'indirizzo IP. Può essere specificato più volte. + Inserisce in whitelist i peer che si connettono da un dato indirizzo IP o netmask. Può essere specificato più volte. (default: 1) @@ -2863,7 +2874,7 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com <category> can be: - <category> può essere: + Valori possibili per <category>: Attempt to recover private keys from a corrupt wallet.dat @@ -2875,7 +2886,7 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Connect only to the specified node(s) - Connetti solo al nodo specificato + Connessione ai soli nodi specificati Connection options: @@ -2891,11 +2902,11 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Discover own IP address (default: 1 when listening and no -externalip) - Scopre il proprio indirizzo IP (predefinito: 1 se in ascolto e no -externalip) + Scopre il proprio indirizzo IP (predefinito: 1 se in ascolto ed -externalip non è specificato) Do not load the wallet and disable wallet RPC calls - Non caricare il portamonete e disabilita le chiamate RPC al portamonete + Disabilita il portamonete e le relative chiamate RPC Do you want to rebuild the block database now? @@ -2907,29 +2918,25 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Error initializing wallet database environment %s! - Errore durante l'inizializzazione dell'ambiente %s del database del portamonete! + Errore durante l'inizializzazione dell'ambiente del database del portamonete %s! Error loading block database - Errore caricamento database blocchi + Errore durante il caricamento del database blocchi Error opening block database - Errore caricamento database blocchi + Errore durante l'apertura del database blocchi Error: A fatal internal error occured, see debug.log for details - Errore: si è verificato un errore fatale, consulta il file debug.log for maggiori dettagli. + Errore: si è verificato un errore interno fatale. Consulta il file debug.log for maggiori dettagli. Error: Disk space is low! Errore: la spazio libero sul disco è insufficiente! - Error: Wallet locked, unable to create transaction! - Errore: portamonete bloccato, impossibile creare la transazione! - - Failed to listen on any port. Use -listen=0 if you want this. Nessuna porta disponibile per l'ascolto. Usa -listen=0 se vuoi procedere comunque. @@ -2943,7 +2950,7 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Incorrect or no genesis block found. Wrong datadir for network? - Blocco genesis non corretto o non trovato. Cartella dati errata? + Blocco genesi non corretto o non trovato. È possibile che la cartella dati appartenga ad un'altra rete. Invalid -onion address: '%s' @@ -2955,31 +2962,31 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Only connect to nodes in network <net> (ipv4, ipv6 or onion) - Connetti solo ai nodi nella rete <net> (ipv4, ipv6 o Tor) + Connessione ai soli nodi appartenenti alla rete <net> (ipv4, ipv6 o Tor) Rebuild block chain index from current blk000??.dat files - Ricreare l'indice della catena di blocchi dai file blk000??.dat correnti + Ricostruzione dell'indice della block chain dai file blk000??.dat correnti Set database cache size in megabytes (%d to %d, default: %d) - Imposta la dimensione cache del database in megabyte (%d a %d, predefinito: %d) + Imposta la dimensione della cache del database in megabyte (%d a %d, predefinito: %d) Set maximum block size in bytes (default: %d) - Imposta la dimensione massima del blocco in byte (predefinita: %d) + Imposta la dimensione massima del blocco in byte (predefinito: %d) Specify wallet file (within data directory) - Specifica il file portamonete (all'interno della cartella dati) + Specifica il file del portamonete (all'interno della cartella dati) This is intended for regression testing tools and app development. - Questo è previsto per l'uso con test di regressione e per lo sviluppo di applicazioni. + Questa impostazione è destinata all'uso con i test di regressione e per lo sviluppo di applicazioni. Use UPnP to map the listening port (default: %u) - Usa UPnP per mappare la porta di ascolto (default: %u) + Usa UPnP per mappare la porta di ascolto (predefinito: %u) Verifying blocks... @@ -3007,73 +3014,160 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Allow JSON-RPC connections from specified source. Valid for <ip> 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). This option can be specified multiple times - Permetti connessioni JSON-RPC da una origine specifica. I valori validi per <ip> sono un singolo IP (ex: 1.2.3.4), un network/netmask (ex: 1.2.3.4/255.255.255.0) oppure un network/CIDR (ex: 1.2.3.4/24). Questa opzione può essere specificata più volte. - - - An error occurred while setting up the RPC address %s port %u for listening: %s - Si è verificato un errore durante l'impostazione della %s porta %u RPC per l'ascolto su: %s + Permette connessioni JSON-RPC dall'origine specificata. I valori validi per <ip> sono un singolo IP (ad es. 1.2.3.4), una network/netmask (ad es. 1.2.3.4/255.255.255.0) oppure una network/CIDR (ad es. 1.2.3.4/24). Questa opzione può essere specificata più volte. Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 - Collega all'indirizzo indicato e resta permetti l'ascolto su questo. Usa la notazione [host]:porta per l'IPv6 + Resta in ascolto sull'indirizzo indicato ed inserisce in whitelist i peer che vi si collegano. Usa la notazione [host]:porta per l'IPv6 Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) - Associa un indirizzo per l'ascolto di connessioni JSON-RPC. Usa l'annotazione [host]:porta per IPv6. Questa opzione può essere specificata più volte (default: associa a tutte le interfacce) + Resta in attesa di connessioni JSON-RPC sull'indirizzo indicato. Usa la notazione [host]:porta per IPv6. Questa opzione può essere specificata più volte (predefinito: associa a tutte le interfacce) Cannot obtain a lock on data directory %s. Bitcoin Core is probably already running. Non è possibile ottenere un lock sulla cartella %s. Probabilmente Bitcoin Core è già in esecuzione. + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + Limita la quantità di transazioni gratuite ad <n>*1000 byte al minuto (predefinito: %u) + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) - Crea nuovi file con i permessi di default del sistema invece dell'umask 077 (effettiva solo con la funzionalità del wallet disabilitata) + Crea nuovi file con i permessi di default del sistema, invece che con umask 077 (ha effetto solo con funzionalità di portamonete disabilitate) Error: Listening for incoming connections failed (listen returned error %s) - Errore: l'ascolto per per connessioni in arrivo fallito (errore riportato %s) + Errore: attesa per connessioni in arrivo fallita (errore riportato %s) + + + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + Errore: individuato argomento -socks non supportato. Non è più possibile impostare la versione SOCKS, solamente i proxy SOCKS5 sono supportati. Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) - Esegue un comando quando viene ricevuto un allarme rilevante o quando vediamo un fork veramente lungo (%s in cmd è sostituito dal messaggio) + Esegue un comando in caso di ricezione di un allarme pertinente o se si rileva un fork molto lungo (%s in cmd è sostituito dal messaggio) Fees (in BTC/Kb) smaller than this are considered zero fee for relaying (default: %s) - Le commissioni (in BTC/kb) minori di questa saranno considerate nulle per la trasmissione (predefinito: %s) + Le commissioni (in BTC/kB) inferiori a questo valore sono considerate pari a zero relativamente alla trasmissione (predefinito: %s) Fees (in BTC/Kb) smaller than this are considered zero fee for transaction creation (default: %s) - Le commissioni inferiori a questo valore saranno considerate nulle per la creazione della transazione (predefinito: %s) + Le commissioni (in BTC/kB) inferiori a questo valore sono considerate pari a zero relativamente alla creazione della transazione (predefinito: %s) + + + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Nel caso in cui paytxfee non sia impostato, include una commissione tale da ottenere un avvio delle conferme entro una media di n blocchi (predefinito: %u) + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Importo non valido per -maxtxfee=<amount>: '%s' (deve essere almeno pari alla commissione 'minrelay fee' di %s per prevenire transazioni bloccate) + + + Maximum size of data in data carrier transactions we relay and mine (default: %u) + Dimensione massima dei dati in transazioni di trasporto dati che saranno trasmesse ed incluse nei blocchi (predefinito: %u) + + + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Commissioni massime totali da includere in una singola transazione dal portamonete. Un'impostazione troppo bassa potrebbe provocare il fallimento di transazioni di grosse dimensioni (predefinito: %s) + + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) + Ottiene gli indirizzi dei peer attraverso interrogazioni DNS, in caso di scarsa disponibilità (predefinito: 1 a meno che -connect non sia specificato) Set maximum size of high-priority/low-fee transactions in bytes (default: %d) - Imposta la dimensione massima in byte delle transazioni ad alta-priorità/basse-commissioni (predefinita: %d) + Imposta la dimensione massima in byte delle transazioni ad alta-priorità/basse-commissioni (predefinito: %d) + + + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + Specifica il numero di thread per la generazione di bitcoin, se abilitata (-1 = tutti i core, predefinito: %d) + + + 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. + Questo prodotto include software sviluppato dal progetto OpenSSL per l'uso del Toolkit OpenSSL <https://www.openssl.org/>, software crittografico scritto da Eric Young e software UPnP scritto da Thomas Bernard. + + + To use bitcoind, or the -server option to bitcoin-qt, you must set an rpcpassword in the configuration file: +%s +It is recommended you use the following random password: +rpcuser=bitcoinrpc +rpcpassword=%s +(you do not need to remember this password) +The username and password MUST NOT be the same. +If the file does not exist, create it with owner-readable-only file permissions. +It is also recommended to set alertnotify so you are notified of problems; +for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + Per utilizzare bitcoind o l'opzione -server in Bitcoin Core è necessario specificare una rpcpassword nel file di configurazione: +%s +Si raccomanda di utilizzare la seguente password casuale: +rpcuser=bitcoinrpc +rpcpassword=%s +(non è necessario ricordare questa password) +Il nome utente e la password NON DEVONO corrispondere. +Se il file non esiste si raccomanda di crearlo con permessi di lettura per il solo proprietario. +Si raccomanda inoltre di configurare alertnotify in modo da ricevere notifiche di eventuali problemi, ad es. alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Attenzione: -maxtxfee è impostato su un valore molto elevato. Tali commissioni potrebbero essere pagate anche in una singola transazione. + + + Warning: Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly. + Attenzione: Si prega di verificare che data ed ora del computer siano corrette! Una configurazione errata dell'orologio di sistema potrebbe impedire a Bitcoin Core di funzionare regolarmente. + + + Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway + I peer inclusi in whitelist non possono subire ban per DoS e le loro transazioni saranno sempre trasmesse, anche nel caso in cui si trovino già nel mempool. Ciò è utile ad es. per i gateway + + + Accept public REST requests (default: %u) + Accetta richieste REST pubbliche (predefinito: %u) Cannot resolve -whitebind address: '%s' - Impossibile risolvere -whitebind address: '%s' + Impossibile risolvere indirizzo -whitebind: '%s' Connect through SOCKS5 proxy - Connetti attraverso SOCKS5 proxy + Connessione attraverso un proxy SOCKS5 Copyright (C) 2009-%i The Bitcoin Core Developers - Copyright (C) 2009-%i The Bitcoin Core Developers + Copyright (C) 2009-%i Gli sviluppatori di Bitcoin Core + + + Could not parse -rpcbind value %s as network address + Non è stato possibile riconoscere il valore %s di -rpcbind come indirizzo di rete Error loading wallet.dat: Wallet requires newer version of Bitcoin Core - Errore caricamento wallet.dat: il wallet richiede una versione nuova di Bitcoin Core + Errore durante il caricamento del file wallet.dat: il portamonete richiede una versione di Bitcoin Core più recente + + + Error: Unsupported argument -tor found, use -onion. + Errore: Rilevato argomento -tor non supportato, utilizzare -onion. Fee (in BTC/kB) to add to transactions you send (default: %s) - Commissione (in BTC/kB) da aggiungere alla transazione che invii (default: %s) + Commissione (in BTC/kB) da aggiungere alle transazioni che invii (predefinito: %s) Information Informazioni + Initialization sanity check failed. Bitcoin Core is shutting down. + Test di integrità iniziale fallito. Bitcoin Core si arresterà. + + + Invalid amount for -maxtxfee=<amount>: '%s' + Importo non valido per -maxtxfee=<amount>: '%s' + + Invalid amount for -minrelaytxfee=<amount>: '%s' Importo non valido per -minrelaytxfee=<amount>: '%s' @@ -3082,16 +3176,24 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Importo non valido per -mintxfee=<amount>: '%s' + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + Importo non valido per -paytxfee=<amount>: '%s' (deve essere almeno %s) + + Invalid netmask specified in -whitelist: '%s' Netmask non valida specificata in -whitelist: '%s' - Node relay options: - Opzioni relay nodo: + Keep at most <n> unconnectable transactions in memory (default: %u) + Mantiene in memoria al massimo <n> transazioni non collegabili (predefinito: %u) - Print block on startup, if found in block index - Stampa il blocco all'avvio, se presente nell'indice dei blocchi + Need to specify a port with -whitebind: '%s' + È necessario specificare una porta con -whitebind: '%s' + + + Node relay options: + Opzioni trasmissione nodo: RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) @@ -3115,7 +3217,7 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Send transactions as zero-fee transactions if possible (default: %u) - Invia transazioni a zero commissioni se possibile (default: %u) + Invia transazioni a zero commissioni se possibile (predefinito: %u) Show all debugging options (usage: --help -help-debug) @@ -3123,11 +3225,11 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Shrink debug.log file on client startup (default: 1 when no -debug) - Riduci il file debug.log all'avvio del client (predefinito: 1 se non impostato -debug) + Riduce il file debug.log all'avvio del client (predefinito: 1 se -debug non è impostato) Signing transaction failed - Transazione di firma fallita + Firma transazione fallita This is experimental software. @@ -3139,24 +3241,31 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Transaction amounts must be positive - L'importo della transazione deve essere positivo + Gli importi della transazione devono essere positivi + + + Transaction too large for fee policy + Transazione troppo grande in base alla policy sulle commissioni Transaction too large Transazione troppo grande + Unable to bind to %s on this computer (bind returned error %s) + Impossibile associarsi a %s su questo computer (l'associazione ha restituito l'errore %s) + + Use UPnP to map the listening port (default: 1 when listening) - Usa UPnP per mappare la porta in ascolto (predefinito: 1 when listening) + Usa UPnP per mappare la porta in ascolto (predefinito: 1 quando in ascolto) Username for JSON-RPC connections - Nome utente per connessioni JSON-RPC - + Nome utente per connessioni JSON-RPC Wallet needed to be rewritten: restart Bitcoin Core to complete - Il wallet ha bisogno di essere reiscritto : riavvia Bitcoin Core per completare l'operazione + Il portamonete necessitava di essere riscritto: riavviare Bitcoin Core per completare l'operazione Warning @@ -3167,8 +3276,16 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Attenzione: questa versione è obsoleta, aggiornamento necessario! + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + Attenzione: Argomento -benchmark ignorato in quanto non supportato, usare -debug=bench. + + + Warning: Unsupported argument -debugnet ignored, use -debug=net. + Attenzione: Argomento -debugnet ignorato in quanto non supportato, usare -debug=net. + + Zapping all transactions from wallet... - Cancella e ricompila tutte le transazioni dal wallet... + Eliminazione dal portamonete di tutte le transazioni... on startup @@ -3180,12 +3297,11 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Password for JSON-RPC connections - Password per connessioni JSON-RPC - + Password per connessioni JSON-RPC Execute command when the best block changes (%s in cmd is replaced by block hash) - Esegui il comando quando il migliore blocco cambia(%s nel cmd è sostituito dall'hash del blocco) + Esegue un comando quando il miglior blocco cambia (%s nel cmd è sostituito dall'hash del blocco) Upgrade wallet to latest format @@ -3193,22 +3309,19 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Rescan the block chain for missing wallet transactions - Ripeti analisi della catena dei blocchi per cercare le transazioni mancanti dal portamonete - + Ripete la scansione della block chain per individuare le transazioni che mancano dal portamonete Use OpenSSL (https) for JSON-RPC connections - Utilizzare OpenSSL (https) per le connessioni JSON-RPC - + Utilizza OpenSSL (https) per le connessioni JSON-RPC This help message - Questo messaggio di aiuto - + Questo messaggio di aiuto Allow DNS lookups for -addnode, -seednode and -connect - Consenti ricerche DNS per -addnode, -seednode e -connect + Consente interrogazioni DNS per -addnode, -seednode e -connect Loading addresses... @@ -3219,12 +3332,52 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Errore caricamento wallet.dat: Portamonete corrotto + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = mantiene metadati tx, ad es. proprietario account ed informazioni di richiesta di pagamento, 2 = scarta metadati tx) + + + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + Scarica l'attività del database dal pool in memoria al log su disco ogni <n> megabyte (predefinito: %u) + + + How thorough the block verification of -checkblocks is (0-4, default: %u) + Determina quanto sarà approfondita la verifica da parte di -checkblocks (0-4, predefinito: %u) + + + Log transaction priority and fee per kB when mining blocks (default: %u) + Abilita il log della priorità di transazione e della commissione per kB quando si generano blocchi (predefinito: %u) + + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + Mantiene l'indice completo delle transazioni usato dalla chiamata rpc getrawtransaction (predefinito: %u) + + Number of seconds to keep misbehaving peers from reconnecting (default: %u) - Numero di secondi di sospensione per i peer di cattiva qualità prima di riconnettersi (default: %u) + Numero di secondi di sospensione prima della riconnessione per i peer che mostrano un comportamento anomalo (predefinito: %u) + + + Output debugging information (default: %u, supplying <category> is optional) + Emette informazioni di debug (predefinito: %u, fornire <category> è opzionale) + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + Usa un proxy SOCKS5 a parte per raggiungere i peer attraverso gli hidden services di Tor (predefinito: %s) (default: %s) - (default: %s) + (predefinito: %s) + + + Acceptable ciphers (default: %s) + Cifrari accettabili (predefinito: %s) + + + Always query for peer addresses via DNS lookup (default: %u) + Interroga sempre i DNS per ottenere gli indirizzi dei peer (predefinito: %u) + + + Disable safemode, override a real safe mode event (default: %u) + Disabilita la modalità sicura ignorando gli eventi che porterebbero alla sua attivazione (predefinito: %u) Error loading wallet.dat @@ -3232,83 +3385,115 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Force safe mode (default: %u) - Forza modalità provvisoria (dafault: %u) + Forza modalità sicura (predefinito: %u) Generate coins (default: %u) - Genera coins (default: %u) + Genera bitcoin (predefinito: %u) How many blocks to check at startup (default: %u, 0 = all) - Quanti blocchi da controllare all'avvio (dafault: %u, 0 = tutti) + Numero di blocchi da controllare all'avvio (predefinito: %u, 0 = tutti) Include IP addresses in debug output (default: %u) - Includi gli indirizzi IP nell'output del debug (default: %u) + Include gli indirizzi IP nell'output del debug (predefinito: %u) Invalid -proxy address: '%s' Indirizzo -proxy non valido: '%s' + Limit size of signature cache to <n> entries (default: %u) + Limita la dimensione della cache delle firme a <n> voci (predefinito: %u) + + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) - Ascolto di connessioni JSON-RPC su <port> (default: %u o testnet: %u) + Resta in attesa di connessioni JSON-RPC su <port> (predefinito: %u o testnet: %u) Listen for connections on <port> (default: %u or testnet: %u) - Ascolto di connessioni su <port> (default: %u o testnet: %u) + Resta in attesa di connessioni su <port> (predefinito: %u o testnet: %u) Maintain at most <n> connections to peers (default: %u) - Mantieni al massimo <n> connessioni ai peers (default: %u) + Mantiene al massimo <n> connessioni verso i peer (predefinito: %u) Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) - Buffer di ricezione massimo per connessione, <n>*1000 byte (default: %u) + Buffer di ricezione massimo per connessione, <n>*1000 byte (predefinito: %u) Maximum per-connection send buffer, <n>*1000 bytes (default: %u) - Buffer di invio massimo per connessione, <n>*1000 byte (default: %u) + Buffer di invio massimo per connessione, <n>*1000 byte (predefinito: %u) Only accept block chain matching built-in checkpoints (default: %u) - Accetta solo una catena di blocchi che corrisponde ai checkpoint predefiniti (default: %u) + Accetta solo block chain corrispondenti ai checkpoint integrati nel codice (predefinito: %u) Prepend debug output with timestamp (default: %u) - Pretendi output di debug con timestamp (default: %u) + Antepone un timestamp all'output del debug (predefinito: %u) + + + Relay and mine data carrier transactions (default: %u) + Trasmette ed include nei blocchi transazioni di trasporto dati (predefinito: %u) + + + Relay non-P2SH multisig (default: %u) + Trasmette transazioni non-P2SH multisig (predefinito: %u) - Print block tree on startup (default: %u) - Stampa l'albero dei blocchi all'avvio (default: %u) + Run a thread to flush wallet periodically (default: %u) + Mantieni in esecuzione un thread per scaricare periodicamente il portamonete (predefinito: %u) Server certificate file (default: %s) - File certificato del server (default: %s) + File del certificato del server (predefinito: %s) Server private key (default: %s) - Chiave privata del server (default: %s) + Chiave privata del server (predefinito: %s) + + + Set key pool size to <n> (default: %u) + Imposta la dimensione del pool di chiavi a <n> (predefinito: %u) + + + Set minimum block size in bytes (default: %u) + Imposta la dimensione minima del blocco in byte (predefinito: %u) + + + Set the number of threads to service RPC calls (default: %d) + Imposta il numero di thread destinati a rispondere alle chiamate RPC (predefinito %d) + + + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + Imposta il flag DB_PRIVATE nell'ambiente di database del portamonete (predefinito: %u) Specify configuration file (default: %s) - Specifica il file di configurazione (default: %s) + Specifica il file di configurazione (predefinito: %s) Specify connection timeout in milliseconds (minimum: 1, default: %d) - Specifica il timeout di connessione in millisecondi (minimo:1, default: %d) + Specifica il timeout di connessione in millisecondi (minimo:1, predefinito: %d) Specify pid file (default: %s) - Specifica il file pid (default: %s) + Specifica il file pid (predefinito: %s) Spend unconfirmed change when sending transactions (default: %u) - Spendi il resto non confermato quando si inviano transazioni (default: %u) + Abilita la spesa di resto non confermato quando si inviano transazioni (predefinito: %u) Stop running after importing blocks from disk (default: %u) - Interrompi dopo aver importato i blocchi dal disco (default: %u) + Interrompi l'esecuzione dopo aver importato i blocchi dal disco (predefinito: %u) + + + Threshold for disconnecting misbehaving peers (default: %u) + Soglia di disconnessione per i peer che si comportano in maniera anomala (predefinito: %u) Unknown network specified in -onlynet: '%s' @@ -3316,7 +3501,7 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Cannot resolve -bind address: '%s' - Impossibile risolvere -bind address: '%s' + Impossibile risolvere indirizzo -bind: '%s' Cannot resolve -externalip address: '%s' @@ -3327,20 +3512,16 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Importo non valido per -paytxfee=<amount>: '%s' - Invalid amount - Importo non valido - - Insufficient funds Fondi insufficienti Loading block index... - Caricamento dell'indice del blocco... + Caricamento dell'indice dei blocchi... Add a node to connect to and attempt to keep the connection open - Aggiunge un nodo a cui connettersi e tenta di tenere aperta la connessione + Aggiunge un nodo a cui connettersi e tenta di mantenere aperta la connessione Loading wallet... @@ -3363,10 +3544,6 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com Caricamento completato - To use the %s option - Per usare l'opzione %s - - Error Errore diff --git a/src/qt/locale/bitcoin_ja.ts b/src/qt/locale/bitcoin_ja.ts index 0c9805de8f9..fe8cb41b01d 100644 --- a/src/qt/locale/bitcoin_ja.ts +++ b/src/qt/locale/bitcoin_ja.ts @@ -2,8 +2,8 @@ AddressBookPage - Double-click to edit address or label - アドレスまたはラベルを編集するにはダブルクリック + Right-click to edit address or label + 右クリックでアドレスまたはラベルを編集します Create a new address @@ -411,9 +411,17 @@ 支払いを受け取るアドレスとラベルのリストを表示する + Open a bitcoin: URI or payment request + bitcoin: URIまたは支払いリクエストを開く + + &Command-line options コマンドラインオプション (&C) + + Show the Bitcoin Core help message to get a list with possible Bitcoin command-line options + 有効な Bitcoin のコマンドライン オプションを見るために Bitcoin Core のヘルプメッセージを表示します。 + %n active connection(s) to Bitcoin network %n の Bitcoin ネットワークへのアクティブな接続 @@ -470,6 +478,10 @@ Up to date バージョンは最新です + + Processed %n blocks of transaction history. + トランザクション履歴の %n ブロックを処理しました。 + Catching up... 追跡中... @@ -536,10 +548,18 @@ Address: %4 手数料: + Dust: + ダスト: + + After Fee: 手数料差引後: + Change: + 釣り銭: + + (un)select all すべて選択/選択解除 @@ -556,6 +576,14 @@ Address: %4 総額 + Received with label + ラベルに対する入金一覧 + + + Received with address + アドレスに対する入金一覧 + + Date 日付 @@ -616,10 +644,62 @@ Address: %4 優先度をコピーする + Copy dust + ダストをコピーする + + + Copy change + 釣り銭をコピー + + + highest + 最高 + + + higher + 非常に高 + + + high + + + + medium-high + 中〜高 + + + medium + + + + low-medium + 低〜中 + + + low + + + + lower + 非常に低 + + + lowest + 最低 + + + (%1 locked) + (%1 がロック済み) + + none なし + Can vary +/- %1 satoshi(s) per input. + ひとつの入力につき %1 satoshi 前後ずれることがあります。 + + yes はい @@ -628,14 +708,42 @@ Address: %4 いいえ + This label turns red, if the transaction size is greater than 1000 bytes. + トランザクションサイズが1000バイトを超える場合にはこのラベルは赤くなります。 + + + This means a fee of at least %1 per kB is required. + これは少なくとも1kBあたり %1 の手数料が必要であることを意味します。 + + + Can vary +/- 1 byte per input. + ひとつの入力につき1バイト程度ずれることがあります。 + + + Transactions with higher priority are more likely to get included into a block. + より高い優先度を持つトランザクションの方がブロックに取り込まれやすくなります。 + + This label turns red, if the priority is smaller than "medium". 優先度が「中」未満の場合には、このラベルは赤くなります。 + This label turns red, if any recipient receives an amount smaller than %1. + 少なくともひとつの受取額が %1 を下回る場合にはこのラベルは赤くなります。 + + (no label) (ラベル無し) - + + change from %1 (%2) + %1 (%2) からのおつり + + + (change) + (おつり) + + EditAddressDialog @@ -647,6 +755,14 @@ Address: %4 ラベル(&L) + The label associated with this address list entry + このアドレス帳項目に結びつけられているラベル + + + The address associated with this address list entry. This can only be modified for sending addresses. + このアドレス帳項目に結びつけられているアドレス。この項目は送金用アドレスの場合のみ編集することができます。 + + &Address アドレス帳 (&A) @@ -717,6 +833,10 @@ Address: %4 バージョン + (%1-bit) + (%1ビット) + + About Bitcoin Core Bitcoinコアについて @@ -745,6 +865,10 @@ Address: %4 最小化された状態で起動する + Set SSL root certificates for payment request (default: -system-) + 支払いリクエスト用にSSLルート証明書を設定する(デフォルト:-system-) + + Show splash screen on startup (default: 1) 起動時にスプラッシュ画面を表示する (初期値: 1) @@ -764,6 +888,14 @@ Address: %4 ようこそ! + As this is the first time the program is launched, you can choose where Bitcoin Core will store its data. + これはプログラム最初の起動です。Bitcoin Coreがデータを保存する場所を選択して下さい。 + + + 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. + Bitcoin Coreは、ビットコインのブロックチェーンのコピーを、ダウンロードして保存します。少なくとも%1ギガバイトのデータが、このディレクトリに保存されます。そしてそれは時間と共に増加します。またウォレットもこのディレクトリに保存されます。 + + Use the default data directory 初期値のデータ ディレクトリを使用 @@ -776,6 +908,10 @@ Address: %4 Bitcoin のコア + Error: Specified data directory "%1" cannot be created. + エラー: 指定のデータディレクトリ "%1" を作成できません。 + + Error エラー @@ -846,10 +982,26 @@ Address: %4 外部からの接続を許可する + Allow incoming connections + 外部からの接続を許可する + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) プロキシのIPアドレス (例えば IPv4: 127.0.0.1 / IPv6: ::1) + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. + トランザクションタブのコンテキストメニュー項目に表示する、サードパーティURL (例えばブロックエクスプローラ)。URL中の%sはトランザクションのハッシュ値に置き換えられます。垂直バー | で区切ることで、複数のURLを指定できます。 + + + Third party transaction URLs + サードパーティのトランザクションURL + + + Active command-line options that override above options: + 上のオプションを置き換えることのできる、有効なコマンドラインオプションの一覧: + + Reset all client options to default. すべてのオプションを初期値に戻します。 @@ -862,6 +1014,10 @@ Address: %4 ネットワーク (&N) + (0 = auto, <0 = leave that many cores free) + (0 = 自動、0以上 = 指定した数のコアをフリーにする) + + W&allet ウォレット (&A) @@ -874,6 +1030,14 @@ Address: %4 コインコントロール機能を有効化する (&C) + If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed. + 未検証のおつりの使用を無効化すると、トランザクションが少なくとも1検証を獲得するまではそのトランザクションのおつりは利用できなくなります。これは残高の計算方法にも影響します。 + + + &Spend unconfirmed change + 未検証のおつりを使用する (&S) + + Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. 自動的にルーター上の Bitcoin クライアントのポートを開きます。あなたのルーターが UPnP に対応していて、それが有効になっている場合に作動します。 @@ -882,6 +1046,14 @@ Address: %4 UPnP を使ってポートを割り当てる (&U) + Connect to the Bitcoin network through a SOCKS5 proxy. + SOCKS5 プロキシ経由でBitcoinネットワークに接続する + + + &Connect through SOCKS5 proxy (default proxy): + SOCKS5 プロキシ経由で接続する (デフォルトプロキシ): (&C) + + Proxy &IP: プロキシの IP (&I) : @@ -934,6 +1106,10 @@ Address: %4 インターフェース上の表示とコインの送信で使用する単位を選択します。 + Whether to show coin control features or not. + コインコントロール機能を表示するかどうか。 + + &OK &OK @@ -954,6 +1130,18 @@ Address: %4 オプションのリセットの確認 + Client restart required to activate changes. + 変更を有効化するにはクライアントを再起動する必要があります。 + + + Client will be shutdown, do you want to proceed? + クライアントは停止されます。続行しますか? + + + This change would require a client restart. + この変更はクライアントの再起動が必要です。 + + The supplied proxy address is invalid. プロキシアドレスが無効です。 @@ -969,10 +1157,22 @@ Address: %4 表示された情報は古いかもしれません。接続が確立されると、あなたのウォレットは Bitcoin ネットワークと自動的に同期しますが、このプロセスはまだ完了していません。 + Watch-only: + 監視限定: + + + Available: + 利用可能: + + Your current spendable balance あなたの利用可能残高 + Pending: + 検証待ち: + + Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance 未検証の取引で利用可能残高に反映されていない数 @@ -985,6 +1185,10 @@ Address: %4 完成していない採掘された残高 + Balances + 残高 + + Total: 合計: @@ -993,14 +1197,30 @@ Address: %4 あなたの現在の残高 + Your current balance in watch-only addresses + 監視限定アドレス内の現在の残高 + + + Spendable: + 使用可能: + + Recent transactions 最近のトランザクション + Unconfirmed transactions to watch-only addresses + 監視限定アドレスに対する未検証のトランザクション + + Mined balance in watch-only addresses that has not yet matured ウォッチオンリーアドレスの採掘された残高のうち、成熟していないもの + Current total balance in watch-only addresses + 監視限定アドレス内の現在の全残高 + + out of sync 同期していない @@ -1020,10 +1240,22 @@ Address: %4 支払い要求は拒否されました + Payment request network doesn't match client network. + 支払いリクエストのネットワークは現在のクライアントのネットワークに一致しません。 + + Payment request has expired. 支払いのリクエストは期限切れです + Payment request is not initialized. + 支払いリクエストは開始されていません。 + + + Requested payment amount of %1 is too small (considered dust). + 要求された支払額 %1 は少なすぎます (ダストとみなされてしまいます)。 + + Payment request error 支払いのリクエストのエラーです @@ -1032,10 +1264,46 @@ Address: %4 Bitcoin を起動できません: click-to-pay handler + Payment request fetch URL is invalid: %1 + 支払い要求の取得先URLが無効です: %1 + + + URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. + URI を解析できません! これは無効な Bitcoin アドレスあるいや不正な形式の URI パラメーターによって引き起こされる場合があります。 + + + Payment request file handling + 支払いリクエストファイルを処理しています + + + Payment request file cannot be read! This can be caused by an invalid payment request file. + 支払いリクエストファイルを読み込めませんでした!無効な支払いリクエストファイルにより引き起こされた可能性があります。 + + + Unverified payment requests to custom payment scripts are unsupported. + カスタム支払いスクリプトに対する、検証されていない支払いリクエストはサポートされていません。 + + + Refund from %1 + %1 からの返金 + + + Payment request %2 is too large (%3 bytes, allowed %4 bytes). + 支払リクエスト %2 は大きすぎます(%3バイトですが、%4バイトまでが許されています)。 + + + Payment request DoS protection + 支払リクエストDoS保護 + + Error communicating with %1: %2 %1: %2とコミュニケーション・エラーです + Payment request cannot be parsed! + 支払リクエストを読み込めませんでした! + + Bad response from server %1 サーバーの返事は無効 %1 @@ -1054,7 +1322,15 @@ Address: %4 User Agent ユーザエージェント - + + Address/Hostname + アドレス/ホスト名 + + + Ping Time + Ping時間 + + QObject @@ -1062,6 +1338,14 @@ Address: %4 総額 + Enter a Bitcoin address (e.g. %1) + Bitcoinアドレスを入力してください (例 %1) + + + %1 d + %1日 + + %1 h %1 h @@ -1070,10 +1354,30 @@ Address: %4 %1 m + %1 s + %1秒 + + + NETWORK + ネットワーク + + + UNKNOWN + 未知 + + + None + なし + + N/A N/A - + + %1 ms + %1ミリ秒 + + QRImageWidget @@ -1116,10 +1420,18 @@ Address: %4 デバッグ ウインドウ + General + 一般 + + Using OpenSSL version 使用中の OpenSSL のバージョン + Using BerkeleyDB version + 使用中のBerkleyDBバージョン + + Startup time 起動した日時 @@ -1144,10 +1456,74 @@ Address: %4 現在のブロック数 + Received + 受取 + + + Sent + 送金 + + + &Peers + ピア (&P) + + + Select a peer to view detailed information. + 詳しい情報を見たいピアを選択してください。 + + + Direction + 方向 + + + Version + バージョン + + User Agent ユーザエージェント + Services + サービス + + + Starting Height + 開始時のブロック高 + + + Sync Height + 同期済みブロック高 + + + Ban Score + Banスコア + + + Connection Time + 接続時間 + + + Last Send + 最終送信 + + + Last Receive + 最終受信 + + + Bytes Sent + 送信済バイト数 + + + Bytes Received + 受信済バイト数 + + + Ping Time + Ping時間 + + Last block time 最終ブロックの日時 @@ -1223,7 +1599,31 @@ Address: %4 %1 GB %1 GB - + + via %1 + %1経由 + + + never + 一度もなし + + + Inbound + 内向き + + + Outbound + 外向き + + + Unknown + 未知 + + + Fetching... + 取得中…… + + ReceiveCoinsDialog @@ -1239,6 +1639,30 @@ Address: %4 メッセージ (&M): + Reuse one of the previously used receiving addresses. Reusing addresses has security and privacy issues. Do not use this unless re-generating a payment request made before. + 以前利用した受取用アドレスのどれかを再利用します。アドレスの再利用はセキュリティおよびプライバシーにおいて問題があります。以前作成した支払リクエストを再生成するとき以外は利用しないでください。 + + + R&euse an existing receiving address (not recommended) + 既存の受取用アドレスを再利用する (非推奨) (&E) + + + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. + 支払リクエストが開始された時に表示される、支払リクエストに添える任意のメッセージです。注意:メッセージはBitcoinネットワークを通じて、支払と共に送られるわけではありません。 + + + An optional label to associate with the new receiving address. + 受取用アドレスに紐づく任意のラベル。 + + + Use this form to request payments. All fields are <b>optional</b>. + このフォームを使用して支払のリクエストを行いましょう。すべての項目は<b>任意入力</b>です。 + + + An optional amount to request. Leave this empty or zero to not request a specific amount. + リクエストする任意の金額。特定の金額をリクエストするのでない場合には、この欄は空白のままかゼロにしてください。 + + Clear all fields of the form. 全ての入力項目をクリア @@ -1247,6 +1671,18 @@ Address: %4 クリア + Requested payments history + 支払リクエスト履歴 + + + &Request payment + 支払をリクエストする (&R) + + + Show the selected request (does the same as double clicking an entry) + 選択されたリクエストを表示する(項目をダブルクリックすることでも表示できます) + + Show 表示 @@ -1255,6 +1691,10 @@ Address: %4 リストから選択項目を削除 + Remove + 削除 + + Copy label ラベルをコピーする @@ -1344,7 +1784,15 @@ Address: %4 (no label) (ラベル無し) - + + (no message) + (メッセージなし) + + + (no amount) + (金額なし) + + SendCoinsDialog @@ -1392,51 +1840,143 @@ Address: %4 手数料差引後: - Send to multiple recipients at once - 一度に複数の人に送る + Change: + 釣り銭: - Add &Recipient - 受取人を追加 (&R) + If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. + これが有効にもかかわらずおつりアドレスが空欄であったり無効であった場合には、おつりは新しく生成されたアドレスへ送金されます。 - Clear all fields of the form. - 全ての入力項目をクリア + Custom change address + カスタムおつりアドレス - Clear &All - すべてクリア (&A) + Transaction Fee: + トランザクション手数料: - Balance: - 残高: + Choose... + 選択…… - Confirm the send action - 送る操作を確認する + collapse fee-settings + 手数料設定を折りたたむ - S&end - 送る (&e) + Minimize + 最小化 - Confirm send coins - コインを送る確認 + 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. + カスタム手数料が1000satoshiに設定されている場合、トランザクションサイズが250バイトとすると、「1キロバイトあたり手数料」では250satoshiの手数料のみを支払いますが、「最小手数料」では1000satoshiを支払います。1キロバイトを超えるトランザクションの場合には、どちらの方法を選択したとしても1キロバイトあたりで支払われます。 - Copy quantity - 数量をコピーする + per kilobyte + 1キロバイトあたり手数料 - Copy amount - 総額のコピー + 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. + カスタム手数料が1000satoshiに設定されている場合、トランザクションサイズが250バイトとすると、「1キロバイトあたり手数料」では250satoshiの手数料のみを支払いますが、「最小手数料」では1000satoshiを支払います。1キロバイトを超えるトランザクションの場合には、どちらの方法を選択したとしても1キロバイトあたりで支払われます。 - Copy fee - 手数料をコピーする + total at least + 最小手数料 - Copy after fee + 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. + ブロックの容量に比べてトランザクション流量が少ないうちは最小手数料のみの支払で十分です。しかしながらネットワークが処理しきれないほどbitcoinトランザクションの需要がひとたび生まれてしまった場合には、永遠に検証がされないトランザクションになってしまう可能性があることに注意してください。 + + + (read the tooltip) + (ツールチップをお読みください) + + + Recommended: + 推奨: + + + Custom: + カスタム: + + + (Smart fee not initialized yet. This usually takes a few blocks...) + (スマート手数料はまだ初期化されていません。これにはおおよそ数ブロックほどかかります……) + + + Confirmation time: + 検証時間: + + + normal + 普通 + + + fast + 高速 + + + Send as zero-fee transaction if possible + 可能な場合には手数料ゼロのトランザクションとして送金する + + + (confirmation may take longer) + (検証に長い時間がかかる可能性があります) + + + Send to multiple recipients at once + 一度に複数の人に送る + + + Add &Recipient + 受取人を追加 (&R) + + + Clear all fields of the form. + 全ての入力項目をクリア + + + Dust: + ダスト: + + + Clear &All + すべてクリア (&A) + + + Balance: + 残高: + + + Confirm the send action + 送る操作を確認する + + + S&end + 送る (&e) + + + Confirm send coins + コインを送る確認 + + + %1 to %2 + %1 から %2 + + + Copy quantity + 数量をコピーする + + + Copy amount + 総額のコピー + + + Copy fee + 手数料をコピーする + + + Copy after fee 手数料差引後の値をコピーする @@ -1448,6 +1988,18 @@ Address: %4 優先度をコピーする + Copy change + 釣り銭をコピー + + + Total Amount %1 (= %2) + 総送金額 %1 (= %2) + + + or + または + + The recipient address is not valid, please recheck. 受取人のアドレスが不正です。再確認してください。 @@ -1468,10 +2020,42 @@ Address: %4 重複しているアドレスが見つかりました。1回の送信で同じアドレスに送ることは出来ません。 + Transaction creation failed! + トラザクションの作成に失敗しました! + + + 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. + トランザクションは拒否されました。wallet.dat のコピーを使い、そしてコピーしたウォレットからコインを使用したことがマークされなかったときなど、ウォレットのいくつかのコインがすでに使用されている場合に、このエラーは起こるかもしれません。 + + + A fee higher than %1 is considered an insanely high fee. + %1 よりも高い手数料は、異常に高い手数料だと考えられます。 + + + Pay only the minimum fee of %1 + 最小手数料 %1 のみを支払う + + + Estimated to begin confirmation within %1 block(s). + %1 ブロック以内に検証が終わると予想されます。 + + + Warning: Invalid Bitcoin address + 警告:無効なBitcoinアドレスです + + (no label) (ラベル無し) + Warning: Unknown change address + 警告:未知のおつりアドレスです + + + Copy dust + ダストをコピーする + + Are you sure you want to send? 送ってよろしいですか? @@ -1503,6 +2087,14 @@ Address: %4 前に使用したアドレスを選ぶ + This is a normal payment. + これは通常の支払です。 + + + The Bitcoin address to send the payment to + 支払の送金先Bitcoinアドレス + + Alt+A Alt+A @@ -1515,10 +2107,30 @@ Address: %4 Alt+P + Remove this entry + この項目を削除する + + Message: メッセージ: + This is a verified payment request. + これは検証済みの支払リクエストです。 + + + Enter a label for this address to add it to the list of used addresses + このアドレスに対するラベルを入力することで、使用済みアドレスの一覧に追加することができます + + + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. + bitcoin: URIに添付されていたメッセージです。これは参照用としてトランザクションとともに保存されます。注意:このメッセージはBitcoinネットワークを通して送信されるわけではありません。 + + + This is an unverified payment request. + これは未検証の支払リクエストです。 + + Pay To: 支払先: @@ -1553,6 +2165,10 @@ Address: %4 あなた自身を立証するためにあなたのアドレスでメッセージに署名することができます。フィッシング攻撃によってあなたを騙して署名を譲渡させようとするかもしれないので、不明確なものは絶対に署名しないように注意してください。あなたが同意する完全に詳細な声明にだけ署名してください。 + The Bitcoin address to sign the message with + メッセージを署名するBitcoinアドレス + + Choose previously used address 前に使用したアドレスを選ぶ @@ -1605,6 +2221,10 @@ Address: %4 メッセージを検証するために、署名するアドレスとメッセージ(改行、スペース、タブなどを正確にコピーしてください)、そして署名を入力します。中間者攻撃によってだまされることを避けるために、署名されたメッセージそのものよりも、署名を読み取られないように注意してください。 + The Bitcoin address the message was signed with + メッセージの署名に使われたBitcoinアドレス + + Verify the message to ensure it was signed with the specified Bitcoin address 指定された Bitcoin アドレスで署名されたことを保証するメッセージを検証 @@ -1698,6 +2318,10 @@ Address: %4 ユニット %1 を開く + conflicted + 衝突 + + %1/offline %1/オフライン @@ -1742,6 +2366,10 @@ Address: %4 自分のアドレス + watch-only + 監視限定 + + label ラベル @@ -1762,6 +2390,14 @@ Address: %4 引き落とし額 + Total debit + 総出金額 + + + Total credit + 総入金額 + + Transaction fee 取引手数料 @@ -1786,6 +2422,10 @@ Address: %4 商人 + 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. + 生成されたコインは使う前に%1のブロックを完成させる必要があります。あなたが生成した時、このブロックはブロック チェーンに追加されるネットワークにブロードキャストされました。チェーンに追加されるのが失敗した場合、状態が"不承認"に変更されて使えなくなるでしょう。これは、別のノードがあなたの数秒前にブロックを生成する場合に時々起こるかもしれません。 + + Debug information デバッグ情報 @@ -1847,6 +2487,10 @@ Address: %4 Address Helbidea + + Immature (%1 confirmations, will be available after %2) + 未成熟(%1検証。%2検証完了後に使用可能となります) + Open for %n more block(s) %n 以上のブロックを開く @@ -1876,6 +2520,14 @@ Address: %4 未検証 + Confirming (%1 of %2 recommended confirmations) + 検証中(%2の推奨検証数のうち、%1検証が完了) + + + Conflicted + 衝突 + + Received with 受信元 @@ -1896,6 +2548,10 @@ Address: %4 発掘した + watch-only + 監視限定 + + (n/a) (n/a) @@ -1912,6 +2568,10 @@ Address: %4 取引の種類。 + Whether or not a watch-only address is involved in this transaction. + 監視限定アドレスがこのトランザクションに含まれているかどうか + + Destination address of transaction. 取引の宛先アドレス。 @@ -2007,6 +2667,10 @@ Address: %4 トランザクション履歴をエクスポートする + Watch-only + 監視限定 + + Exporting Failed エクスポートに失敗しました @@ -2019,6 +2683,10 @@ Address: %4 エクスポートに成功しました + The transaction history was successfully saved to %1. + トランザクション履歴は正常に%1に保存されました。 + + Comma separated file (*.csv) テキスト CSV (*.csv) @@ -2057,7 +2725,11 @@ Address: %4 UnitDisplayStatusBarControl - + + Unit to show amounts in. Click to select another unit. + 金額を表示する際の単位。クリックすることで他の単位を選択します。 + + WalletFrame @@ -2095,6 +2767,14 @@ Address: %4 バックアップに失敗しました + There was an error trying to save the wallet data to %1. + ウォレットデータを%1へ保存する際にエラーが発生しました。 + + + The wallet data was successfully saved to %1. + ウォレット データは正常に%1に保存されました。 + + Backup Successful バックアップ成功 @@ -2134,49 +2814,42 @@ Address: %4 外部からの接続を許可 (初期値: -proxy または -connect を使用していない場合は1) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, rpcpassword を設定ファイルで設定してください: -%s -下記のランダムなパスワードの使用を推奨します: -rpcuser=bitcoinrpc -rpcpassword=%s -(このパスワードを覚える必要はありません) -ユーザー名とパスワードが同じであってはいけません。 -もしもファイルが存在しないなら、所有者だけが読み取れる権限で作成してください。 -また、問題が通知されるように alertnotify を設定することをお勧めします; -例えば: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 指定のアドレスへバインドし、その上で常にリスンします。IPv6 は [ホスト名]:ポート番号 と表記します - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - エラー: 取引は拒否されました。wallet.dat のコピーを使い、そしてコピーしたウォレットからコインを使用したことがマークされなかったときなど、ウォレットのいくつかのコインがすでに使用されている場合に、このエラーは起こるかもしれません。 + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + ウォレットの全トランザクションを削除し、これらを-rescanオプションを用いることで起動時にブロックチェインのデータのみからリカバリします。 - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - エラー: この取引は、額、複雑さ、あるいは最近受け取った資金の使用のために、少なくとも %s の手数料が必要です! + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + MITソフトウェアライセンスのもとで配布されています。付属のCOPYINGファイルまたは<http://www.opensource.org/licenses/mit-license.php>を参照してください。 + + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + ブロックを瞬時に解決することができる特別なチェーンを使用して、リグレッションテストモードに入る。 Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) ウォレットの取引を変更する際にコマンドを実行 (cmd の %s は TxID に置換される) + In this mode -genproclimit controls how many blocks are generated immediately. + このモードでは -genproclimit は何個のブロックをただちに生成するのか制御します。 + + + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) + スクリプト検証スレッドを設定 (%uから%dの間, 0 = 自動, <0 = たくさんのコアを自由にしておく, 初期値: %d) + + This is a pre-release test build - use at your own risk - do not use for mining or merchant applications これはリリース前のテストビルドです - 各自の責任で利用すること - 採掘や商取引に使用しないでください + Unable to bind to %s on this computer. Bitcoin Core is probably already running. + このコンピュータの %s にバインドすることができません。おそらく Bitcoin Core は既に実行されています。 + + Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. 警告: -paytxfee が非常に高く設定されています! これは取引を送信する場合に支払う取引手数料です。 @@ -2197,10 +2870,18 @@ rpcpassword=%s 警告: wallet.dat が壊れたのでデータを復旧しました! オリジナルの wallet.dat は wallet.{timestamp}.bak として %s に保存されました; もしもあなたの残高や取引が正しくないならバックアップから復元してください。 + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + 与えられたネットマスクやIPアドレスから接続を行う、ホワイトリストのピア。複数回指定できます。 + + (default: 1) (デフォルト: 1) + <category> can be: + <category>は以下の値を指定できます: + + Attempt to recover private keys from a corrupt wallet.dat 壊れた wallet.dat から秘密鍵を復旧することを試す @@ -2213,6 +2894,10 @@ rpcpassword=%s 指定したノードだけに接続 + Connection options: + 接続オプション: + + Corrupted block database detected 破損したブロック データベースが見つかりました @@ -2226,6 +2911,10 @@ rpcpassword=%s 自分の IP アドレスを発見 (初期値: リスン中と -externalip を使用していない場合は1) + Do not load the wallet and disable wallet RPC calls + ウォレットは読み込まず、ウォレットRPCコールを無効化する + + Do you want to rebuild the block database now? ブロック データベースを今すぐ再構築しますか? @@ -2246,12 +2935,12 @@ rpcpassword=%s ブロック データベースの開始エラー - Error: Disk space is low! - エラー: ディスク容量不足! + Error: A fatal internal error occured, see debug.log for details + エラー:致命的な内部エラーが発生しました。詳細はdebug.logを参照してください - Error: Wallet locked, unable to create transaction! - エラー: ウォレットはロックされ、取引を作成できません! + Error: Disk space is low! + エラー: ディスク容量不足! Failed to listen on any port. Use -listen=0 if you want this. @@ -2262,22 +2951,50 @@ rpcpassword=%s <category> が与えられなかった場合には、すべてのデバッグ情報が出力されます。 + Importing... + インポートしています…… + + Incorrect or no genesis block found. Wrong datadir for network? 不正なブロックあるいは、生成されていないブロックが見つかりました。ネットワークの datadir が間違っていませんか? + Invalid -onion address: '%s' + 無効な -onion アドレス:'%s' + + Not enough file descriptors available. 使用可能なファイルディスクリプタが不足しています。 + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + <net> (ipv4, ipv6 または onion) ネットワーク内のノードだけに接続する + + Rebuild block chain index from current blk000??.dat files 現在の blk000??.dat ファイルからブロック チェーンのインデックスを再構築 + Set database cache size in megabytes (%d to %d, default: %d) + データベースのキャッシュサイズをメガバイトで設定 (%dから%d。初期値: %d) + + + Set maximum block size in bytes (default: %d) + 最大ブロックサイズをバイトで設定 (初期値: %d) + + Specify wallet file (within data directory) ウォレットのファイルを指定 (データ・ディレクトリの中に) + This is intended for regression testing tools and app development. + これはリグレッションテストツールやアプリ開発のためのものです。 + + + Use UPnP to map the listening port (default: %u) + リッスンポートの割当に UPnP を使用 (初期値: %u) + + Verifying blocks... ブロックの検証中... @@ -2290,6 +3007,10 @@ rpcpassword=%s 財布 %s はデータ・ディレクトリ%sの外にあります + Wallet options: + ウォレットオプション: + + You need to rebuild the database using -reindex to change -txindex -txindex を変更するには -reindex を使用してデータベースを再構築する必要があります @@ -2298,14 +3019,166 @@ rpcpassword=%s 外部の blk000??.dat ファイルからブロックをインポート + Allow JSON-RPC connections from specified source. Valid for <ip> 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). This option can be specified multiple times + 指定したアクセス元からのJSON-RPC接続を許可する。有効な<ip>は、単一のIP (例 1.2.3.4)、ネットワーク/ネットマスク (1.2.3.4/255.255.255.0)、またはネットワーク/CIDR (1.2.3.4/24)です。このオプションは複数回指定できます。 + + + An error occurred while setting up the RPC address %s port %u for listening: %s + リッスンする RPC アドレス %s、ポート %u の設定中にエラーが発生しました: %s + + + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + 指定されたアドレスおよび、そこに接続を行ってきたホワイトリストのピアに対してバインドを行います。IPv6の場合には [host]:port 表記を使用してください + + + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + 指定されたアドレスに対して JSON-RPC 接続をリッスンしするようバインドします。IPv6の場合には [host]:port 表記を使用してください。このオプションは複数回指定することが可能です (初期値: すべてのインターフェースに対してバインドする) + + + Cannot obtain a lock on data directory %s. Bitcoin Core is probably already running. + データ ディレクトリ %s のロックを取得することができません。おそらく Bitcoin Core は実行中です。 + + + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + 手数料ゼロのトランザクションのリレー速度を一分間あたり <n>*1000 バイトに常に制限する (初期値: %u) + + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + umask 077 ではなく、システムのデフォルトパーミッションで新規ファイルを作成する (ウォレット機能が無効化されていた場合にのみ有効) + + + Error: Listening for incoming connections failed (listen returned error %s) + エラー: 内向きの接続をリッスンするのに失敗しました (エラー %s が返却されました) + + + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + エラー: サポートされていない引数 -socks が見つかりました。SOCKSバージョンの設定はできないようになりました。SOCKS5プロキシのみがサポートされています。 + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) 関連のアラートをもらってもすごく長いのフォークを見てもコマンドを実行 (コマンドの中にあるの%sはメッセージから置き換えさせる) + Fees (in BTC/Kb) smaller than this are considered zero fee for relaying (default: %s) + 中継の際、この値未満の手数料 (BTC/Kb単位) はゼロであるとみなす (デフォルト: %s) + + + Fees (in BTC/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + トランザクション作成の際、この値未満の手数料 (BTC/Kb単位) はゼロであるとみなす (デフォルト: %s) + + + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + paytxfee が設定されていなかった場合、平均して n ブロック以内にトランザクションが検証され始めるのに十分な手数料を含める (初期値: %u) + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + -maxtxfee=<amount> の数量の指定が不正です: '%s' (トランザクションが詰まってしまうのを防ぐため、少なくとも %s の最小中継手数料を指定しなければいけません) + + + Maximum size of data in data carrier transactions we relay and mine (default: %u) + 中継および採掘を行う際の、データ運送トランザクションの中のデータの最大サイズ (初期値: %u) + + + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + ひとつのウォレットトランザクションで使用する合計手数料の最大値。低く設定し過ぎると大きなトランザクションの生成に失敗することがあります (初期値: %s) + + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) + 保有するピアアドレスが少ない場合、DNS ルックアップによりピアアドレスを問い合わせる (-connect を使っていない場合の初期値: 1) + + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) + 最優先/最低手数料の最大サイズをバイトで指定 (初期値: %d) + + + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + コイン生成が有効になっていた場合の利用スレッド数を設定する (-1 = すべてのコア, 初期値: %d) + + + 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. + この製品はOpenSSLプロジェクトにより開発されたソフトウェアをOpenSSLツールキットとして利用しています <https://www.openssl.org/>。また、Eric Young氏により開発された暗号ソフトウェア、Thomas Bernard氏により書かれたUPnPソフトウェアを用いています。 + + + To use bitcoind, or the -server option to bitcoin-qt, you must set an rpcpassword in the configuration file: +%s +It is recommended you use the following random password: +rpcuser=bitcoinrpc +rpcpassword=%s +(you do not need to remember this password) +The username and password MUST NOT be the same. +If the file does not exist, create it with owner-readable-only file permissions. +It is also recommended to set alertnotify so you are notified of problems; +for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + bitcoindを用いる場合や、-server オプションをbitcoin-qtに指定する場合には、設定ファイルにrpcpasswordを設定しなければなりません: +%s +以下のランダムなパスワードを用いることが推奨されます: +rpcuser=bitcoinrpc +rpcpassword=%s +(このパスワードを暗記する必要はありません) +ユーザ名とパスワードは一致してはいけません。 +ファイルが存在しない場合には、所有者のみ読み込み可能なファイルパーミッションでファイルを作成してください。 +またalertnotifyを設定し、問題発生時に通知が行くようにすることをおすすめします; +例: alertnotify=echo %%s | mail -s "Bitcoinアラート" admin@foo.com + + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + 警告: -maxtxfee が非常に高く設定されています!ひとつのトランザクションでこの量の手数料が支払われてしまうことがあります。 + + + Warning: Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly. + 警告: あなたのPCの日付と時刻が正しいことを確認して下さい! もしあなたの時計が正しくなければBitcoin Coreが正確に動作しません。 + + + Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway + ホワイトリストのピアはDoSによるアクセス禁止処理が無効化され、トランザクションは例えmempool内に既に存在していたとしても常にリレーされます。これは例えばゲートウェイに対して有用です + + + Accept public REST requests (default: %u) + 公開 REST リクエストを許可する (初期値: %u) + + + Cannot resolve -whitebind address: '%s' + -whitebind アドレス '%s' を解決できません + + + Connect through SOCKS5 proxy + SOCKS5 プロキシ経由で接続する + + + Copyright (C) 2009-%i The Bitcoin Core Developers + Copyright (C) 2009-%i Bitcoin Core 開発者 + + + Could not parse -rpcbind value %s as network address + -rpcbind の値 %s をネットワークアドレスとして解釈できませんでした + + + Error loading wallet.dat: Wallet requires newer version of Bitcoin Core + wallet.dat の読み込みに失敗しました: ウォレットの読み込みにはより新しいバージョンの Bitcoin Core が必要です + + + Error: Unsupported argument -tor found, use -onion. + エラー: サポートされていない引数 -tor が見つかりました。-onion を使用してください。 + + + Fee (in BTC/kB) to add to transactions you send (default: %s) + 送信するトランザクションに付加する手数料 (BTC/kB単位) (初期値: %s) + + Information 情報 + Initialization sanity check failed. Bitcoin Core is shutting down. + 初期化時の健全性チェックに失敗しました。Bitcoin Coreを終了します。 + + + Invalid amount for -maxtxfee=<amount>: '%s' + -maxtxfee=<amount> に対する無効な数量です: '%s' + + Invalid amount for -minrelaytxfee=<amount>: '%s' 不正な額 -minrelaytxfee=<amount>: '%s' @@ -2314,6 +3187,26 @@ rpcpassword=%s 不正な額 -minrelaytxfee=<amount>: '%s' + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + -paytxfee=<amount> に対する無効な数量です: '%s' (少なくとも %s でなければいけません) + + + Invalid netmask specified in -whitelist: '%s' + -whitelist に対する無効なネットマスクです: '%s' + + + Keep at most <n> unconnectable transactions in memory (default: %u) + 最大で <n> 個の孤立したトランザクションをメモリの中に保持する (初期値: %u) + + + Need to specify a port with -whitebind: '%s' + -whitebind を用いてポートを指定する必要があります: '%s' + + + Node relay options: + ノード中継オプション: + + RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) RPC SSL オプション: (SSLのセットアップ手順はビットコインWikiを参照してください) @@ -2322,10 +3215,26 @@ rpcpassword=%s RPCサーバのオプション: + Randomly drop 1 of every <n> network messages + <n> 個のネットワークメッセージごとにひとつをランダムに捨てる + + + Randomly fuzz 1 of every <n> network messages + <n>個のネットワークメッセージごとにひとつをランダムに改変する + + Send trace/debug info to console instead of debug.log file トレース/デバッグ情報を debug.log ファイルの代わりにコンソールへ送る + Send transactions as zero-fee transactions if possible (default: %u) + 可能な場合には手数料ゼロのトランザクションとしてトランザクションを送信する (初期値: %u) + + + Show all debugging options (usage: --help -help-debug) + すべてのデバッグオプションを表示する (使い方: --help -help-debug) + + Shrink debug.log file on client startup (default: 1 when no -debug) クライアント起動時に debug.log ファイルを縮小 (初期値: -debug オプションを指定しない場合は1) @@ -2334,6 +3243,10 @@ rpcpassword=%s 取引の署名に失敗しました + This is experimental software. + これは実験的なソフトウェアです。 + + Transaction amount too small 取引の額が小さ過ぎます @@ -2342,10 +3255,18 @@ rpcpassword=%s 取引の額は0より大きくしてください + Transaction too large for fee policy + 手数料ポリシーに対してトランザクションが大きすぎます + + Transaction too large 取引が大き過ぎます + Unable to bind to %s on this computer (bind returned error %s) + このコンピュータの %s にバインドすることができません (バインドが返したエラーは %s) + + Use UPnP to map the listening port (default: 1 when listening) リスン ポートの割当に UPnP を使用 (初期値: リスン中は1) @@ -2354,6 +3275,10 @@ rpcpassword=%s JSON-RPC 接続のユーザー名 + Wallet needed to be rewritten: restart Bitcoin Core to complete + ウォレットが書き直される必要がありました: 完了するために Bitcoin Core を再起動します + + Warning 警告 @@ -2362,6 +3287,22 @@ rpcpassword=%s 警告: このバージョンは古いのでアップグレードが必要です! + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + 警告: サポートされていない引数 -benchmark は無視されました。-debug=bench を使用してください。 + + + Warning: Unsupported argument -debugnet ignored, use -debug=net. + 警告: サポートされていない引数 -debugnet は無視されました。-debug=net を使用してください。 + + + Zapping all transactions from wallet... + ウォレットからすべてのトランザクションを消去しています... + + + on startup + 起動時 + + wallet.dat corrupt, salvage failed wallet.dat が壊れ、復旧に失敗しました @@ -2402,14 +3343,170 @@ rpcpassword=%s wallet.dat 読み込みエラー: ウォレットが壊れました + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = トランザクションのメタデータ、例えばアカウントの所有者や支払リクエストの内容を保持する, 2 = トランザクションのメタデータを破棄する) + + + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + <n> メガバイトごとにメモリプールからデータベースのアクティビティをディスクログに書き出す (初期値: %u) + + + How thorough the block verification of -checkblocks is (0-4, default: %u) + -checkblocks のブロックの検証レベル (0-4, 初期値: %u) + + + Log transaction priority and fee per kB when mining blocks (default: %u) + ブロックの採掘時にトランザクションの優先度と1kBあたりの手数料をログに残す (デフォルト: %u) + + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + getrawtransaction rpc 呼び出し時に用いる、完全なトランザクションインデックスを保持する (初期値: %u) + + + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + 不正なピアを再接続するまでの秒数 (初期値: %u) + + + Output debugging information (default: %u, supplying <category> is optional) + デバッグ情報を出力する (初期値: %u, <category> の指定は任意です) + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + Tor 秘匿サービスを通し、別々の SOCKS5 プロキシを用いることでピアに到達する (初期値: %s) + + + (default: %s) + (デフォルト: %s) + + + Acceptable ciphers (default: %s) + 受付可能な暗号化方式 (初期値: %s) + + + Always query for peer addresses via DNS lookup (default: %u) + DNS ルックアップを通してピアアドレスを常に問い合わせる (初期値: %u) + + + Disable safemode, override a real safe mode event (default: %u) + セーフモードを無効化し、実際のセーフモードイベントも無効化する (初期値: %u) + + Error loading wallet.dat wallet.dat 読み込みエラー + Force safe mode (default: %u) + セーフモードを強制する (初期値: %u) + + + Generate coins (default: %u) + コインを生成 (初期値: %u) + + + How many blocks to check at startup (default: %u, 0 = all) + 起動時に点検するブロック数 (初期値: %u, 0=すべて) + + + Include IP addresses in debug output (default: %u) + デバッグ出力にIPアドレスを含める (初期値: %u) + + Invalid -proxy address: '%s' 無効な -proxy アドレス: '%s' + Limit size of signature cache to <n> entries (default: %u) + 署名キャッシュのサイズを <n> エントリーに制限する (デフォルト: %u) + + + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + <port> で JSON-RPC 接続をリスン (初期値: %u、testnet は %u) + + + Listen for connections on <port> (default: %u or testnet: %u) + 接続のリッスンを <port> で行う (初期値: %u、testnet: %u) + + + Maintain at most <n> connections to peers (default: %u) + ピアの接続数を最大でも <n> 個に維持する (初期値: %u) + + + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + 接続毎の最大受信バッファ <n>*1000 バイト (初期値: %u) + + + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + 接続毎の最大送信バッファ <n>*1000 バイト (初期値: %u) + + + Only accept block chain matching built-in checkpoints (default: %u) + 内蔵のチェックポイントと一致するブロック チェーンのみを許可 (初期値: %u) + + + Prepend debug output with timestamp (default: %u) + デバッグ出力にタイムスタンプを付ける (初期値: %u) + + + Relay and mine data carrier transactions (default: %u) + データ運送トランザクションのリレーおよび採掘を行う (初期値: %u) + + + Relay non-P2SH multisig (default: %u) + P2SHでないマルチシグトランザクションをリレーする (初期値: %u) + + + Run a thread to flush wallet periodically (default: %u) + ウォレットを定期的に書き出すためのスレッドを走らせる (初期値: %u) + + + Server certificate file (default: %s) + サーバ証明書ファイル (初期値: %s) + + + Server private key (default: %s) + サーバの秘密鍵 (初期値: %s) + + + Set key pool size to <n> (default: %u) + key pool のサイズを <n> (初期値: %u) にセット + + + Set minimum block size in bytes (default: %u) + 最小ブロックサイズをバイトで設定 (初期値: %u) + + + Set the number of threads to service RPC calls (default: %d) + RPC サービスのスレッド数を設定 (初期値: %d) + + + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + ウォレットDB環境内にDB_PRIVATEフラグを設定する (デフォルト: %u) + + + Specify configuration file (default: %s) + 設定ファイルの指定 (初期値: %s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + 接続のタイムアウトをミリセコンドで指定 (最小値: 1, 初期値: %d) + + + Specify pid file (default: %s) + pid ファイルの指定 (初期値: %s) + + + Spend unconfirmed change when sending transactions (default: %u) + トランザクション送信時に未検証のおつりを使用する (デフォルト: %u) + + + Stop running after importing blocks from disk (default: %u) + ディスクからブロックを読み込んだ後に終了する (デフォルト: %u) + + + Threshold for disconnecting misbehaving peers (default: %u) + 不正なピアを切断するためのしきい値 (初期値: %u) + + Unknown network specified in -onlynet: '%s' -onlynet で指定された '%s' は未知のネットワークです @@ -2426,10 +3523,6 @@ rpcpassword=%s -paytxfee=<amount> の額 '%s' が無効です - Invalid amount - 無効な総額 - - Insufficient funds 残高不足 @@ -2462,10 +3555,6 @@ rpcpassword=%s 読み込み完了 - To use the %s option - %s オプションを使うには - - Error エラー diff --git a/src/qt/locale/bitcoin_ka.ts b/src/qt/locale/bitcoin_ka.ts index 3faad159adc..b2831b79e78 100644 --- a/src/qt/locale/bitcoin_ka.ts +++ b/src/qt/locale/bitcoin_ka.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - დააკლიკეთ ორჯერ მისამართის ან ნიშნულის შესაცვლელად - - Create a new address ახალი მისამართის შექმნა @@ -2331,30 +2327,6 @@ Address: %4 გარედან შეერთებების დაშვება (ნაგულისხმევი: 1 თუ არ გამოიყენება -proxy ან -connect) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, მიუთითეთ rpcpassword საკონფიგურაციო ფაილში: -%s -რეკომენდებულია შემდეგი შემთხვევითი პაროლი: -rpcuser=bitcoinrpc -rpcpassword=%s -(ამის დამახსოვრება არ გჭირდებათ) -სახელი და პაროლი ერთმანეთს არ უნდა ემთხვეოდეს. -თუ ფაილი არ არსებობს, შექმენით იგი უფლებებით owner-readable-only. -ასევე რეკომენდებულია დააყენოთ alertnotify რათა მიიღოთ შეტყობინებები პრობლემების შესახებ; -მაგალითად: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 მოცემულ მისამართზე მიჯაჭვა მუდმივად მასზე მიყურადებით. გამოიყენეთ [host]:port ფორმა IPv6-სათვის @@ -2363,14 +2335,6 @@ rpcpassword=%s გადასვლა რეგრესული ტესტირების რეჟიმში, რომელიც იყენებს სპეციალურ ჯაჭვს ბლოკების დაუყოვნებლივი პოვნის შესაძლებლობით. - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - შეცდომა: ტრანსაქცია უარყოფილია! შესაძლოა მონეტების ნაწილი თქვენი საფულიდან უკვე გამოყენებულია, რაც შეიძლება მოხდეს wallet.dat-ის ასლის გამოყენებისას, როცა მონეტები გაიგზავნა სხვა ასლიდან, აქ კი არ არის გაგზავნილად მონიშნული. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - შეცდომა: ტრანსაქცია მოითხოვს საკომისიოს მინიმუმ %s რაოდენობის, სირთულის ან ბოლოს მიღებული თანხების შესაბამისად! - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) კომანდის შესრულება საფულის ტრანსაქციის ცვლილებისას (%s კომანდაში ჩანაცვლდება TxID-ით) @@ -2451,10 +2415,6 @@ rpcpassword=%s შეცდომა: დისზე არ არის ადგილი! - Error: Wallet locked, unable to create transaction! - შეცდომა: საფულე დაბლოკილია, ტრანსაქცია ვერ შეიქმნება! - - Failed to listen on any port. Use -listen=0 if you want this. ვერ ხერხდება პორტების მიყურადება. თუ გსურთ, გამოიყენეთ -listen=0. @@ -2643,10 +2603,6 @@ rpcpassword=%s დაუშვებელი მნიშვნელობა -paytxfee=<amount>: '%s' - Invalid amount - დაუშვებელი თანხა - - Insufficient funds არ არის საკმარისი თანხა @@ -2679,10 +2635,6 @@ rpcpassword=%s ჩატვირთვა დასრულებულია - To use the %s option - %s ოპციის გამოსაყენებლად - - Error შეცდომა diff --git a/src/qt/locale/bitcoin_kk_KZ.ts b/src/qt/locale/bitcoin_kk_KZ.ts index 5a39417a7ae..1623c25f42c 100644 --- a/src/qt/locale/bitcoin_kk_KZ.ts +++ b/src/qt/locale/bitcoin_kk_KZ.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - Адресті немесе белгіні өзгерту үшін екі рет шертіңіз - - Create a new address Жаңа адрес енгізу diff --git a/src/qt/locale/bitcoin_ko_KR.ts b/src/qt/locale/bitcoin_ko_KR.ts index efc41ec6b70..d0119a21b00 100644 --- a/src/qt/locale/bitcoin_ko_KR.ts +++ b/src/qt/locale/bitcoin_ko_KR.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - 지갑 주소나 이름을 수정하려면 더블클릭하세요. - - Create a new address 새 주소 만들기 @@ -2347,16 +2343,6 @@ Address: %4 선택된 주소로 고정하며 항상 리슨(Listen)합니다. IPv6 프로토콜인 경우 [host]:port 방식의 명령어 표기법을 사용합니다. - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - 에러: 거래가 거부되었습니다! 이런 일이 생길 수 있습니다 만약 몇개의 코인들을 지갑에서 이미 사용했다면요, 예를 들어 만약 당신이 wallet.dat를 복사해서 사용했거나 코인들을 사용 후에 복사했다면 여기선 표시가 안되서 사용할 수 없습니다 - --번역은 했으나 약간 이상한점이 있어서 수정해야함- - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - 오류 : 해당 거래는 송금액, 다중 거래, 최근 수령한 금액의 사용 등의 이유로 최소 %s 이상의 송금 수수료가 필요합니다. - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) 지갑 거래가 바뀌면 명령을 실행합니다.(%s 안의 명령어가 TxID로 바뀝니다) @@ -2441,10 +2427,6 @@ Address: %4 오류: 디스크 공간이 부족합니다! - Error: Wallet locked, unable to create transaction! - 오류: 지갑이 잠금상태여서 거래를 생성할 수 없습니다! - - Failed to listen on any port. Use -listen=0 if you want this. 어떤 포트도 반응하지 않습니다. 사용자 반응=0 만약 원한다면 @@ -2533,10 +2515,6 @@ Address: %4 최저 거래 수수료가 부족합니다. -mintxfee=<amount>: '%s' - Print block on startup, if found in block index - 블럭 색인을 발견하면 구동 시 블럭을 출력합니다. - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) RPC SSL 옵션: (비트코인 위키의 SSL 설정 설명서 참고) @@ -2665,10 +2643,6 @@ Address: %4 -paytxfee=<amount>에 대한 양이 잘못되었습니다: '%s' - Invalid amount - 효력없는 금액 - - Insufficient funds 자금 부족 @@ -2701,10 +2675,6 @@ Address: %4 로딩 완료 - To use the %s option - %s 옵션을 사용하려면 - - Error 오류 diff --git a/src/qt/locale/bitcoin_la.ts b/src/qt/locale/bitcoin_la.ts index c399f361593..7539327cda2 100644 --- a/src/qt/locale/bitcoin_la.ts +++ b/src/qt/locale/bitcoin_la.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - Dupliciter-clicca ut inscriptionem vel titulum mutes - - Create a new address Crea novam inscriptionem @@ -1515,42 +1511,10 @@ Inscriptio: %4 Accipe conexiones externas (praedefinitum: 1 nisi -proxy neque -connect) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, necesse est te rpcpassword constituere in plica configurationis: -%s -Hortatur te hanc fortuitam tesseram uti: -rpcuser=bitcoinrpc -rpcpassword=%s -(non est necesse te hanc tesseram meminisse) -Nomen usoris et tessera eadem esse NON POSSUNT. -Si plica non existit, eam crea cum permissionibus ut eius dominus tantum sinitur id legere. -Quoque hortatur alertnotify constituere ut tu notificetur de problematibus; -exempli gratia: alertnotify=echo %%s | mail -s "Bitcoin Notificatio" admin@foo.com - - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 Conglutina ad inscriptionem datam et semper in eam ausculta. Utere [moderatrum]:porta notationem pro IPv6 - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Error: Transactio eiecta est! Hoc possit accidere si alii nummorum in cassidili tuo iam soluti sint, ut si usus es exemplar de wallet.dat et nummi soluti sunt in exemplari sed non hic notati ut soluti. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - Error: Huic transactioni necesse est merces saltem %s propter eius magnitudinem, complexitatem, vel usum recentum acceptorum nummorum! - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Facere mandatum quotiescumque cassidilis transactio mutet (%s in mandato sbstituitur ab TxID) @@ -1615,10 +1579,6 @@ exempli gratia: alertnotify=echo %%s | mail -s "Bitcoin Notificatio" admin@foo.c Error: Inopia spatii disci! - Error: Wallet locked, unable to create transaction! - Error: Cassidile seratum, non posse transactionem creare! - - Failed to listen on any port. Use -listen=0 if you want this. Non potuisse auscultare in ulla porta. Utere -listen=0 si hoc vis. @@ -1759,10 +1719,6 @@ exempli gratia: alertnotify=echo %%s | mail -s "Bitcoin Notificatio" admin@foo.c Quantitas non valida pro -paytxfee=<quantitas>: '%s' - Invalid amount - Quantitas non valida - - Insufficient funds Inopia nummorum @@ -1795,10 +1751,6 @@ exempli gratia: alertnotify=echo %%s | mail -s "Bitcoin Notificatio" admin@foo.c Completo lengendi - To use the %s option - Ut utaris optione %s - - Error Error diff --git a/src/qt/locale/bitcoin_lt.ts b/src/qt/locale/bitcoin_lt.ts index 1f70400df61..e18e7237567 100644 --- a/src/qt/locale/bitcoin_lt.ts +++ b/src/qt/locale/bitcoin_lt.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - Spragtelėkite, kad pakeistumėte adresą arba žymę - - Create a new address Sukurti naują adresą @@ -1734,10 +1730,6 @@ Adresas: %4 Neteisinga suma -paytxfee=<amount>: '%s' - Invalid amount - Neteisinga suma - - Insufficient funds Nepakanka lėšų diff --git a/src/qt/locale/bitcoin_lv_LV.ts b/src/qt/locale/bitcoin_lv_LV.ts index ac5a1a1396c..66669a63bd3 100644 --- a/src/qt/locale/bitcoin_lv_LV.ts +++ b/src/qt/locale/bitcoin_lv_LV.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - Adresi vai nosaukumu rediģē ar dubultklikšķi - - Create a new address Izveidot jaunu adresi @@ -2235,10 +2231,6 @@ Adrese: %4 Kļūda: Zema diska vieta! - Error: Wallet locked, unable to create transaction! - Kļūda: Maciņš ir aizslēgts, nevar izveidot transakciju! - - If <category> is not supplied, output all debugging information. Ja <category> nav norādīta, izvadīt visu atkļūdošanas informāciju. @@ -2371,10 +2363,6 @@ Adrese: %4 Nederīgs daudzums priekš -paytxfree=<amount>: '%s' - Invalid amount - Nederīgs daudzums - - Insufficient funds Nepietiek bitkoinu @@ -2407,10 +2395,6 @@ Adrese: %4 Ielāde pabeigta - To use the %s option - Izmantot opciju %s - - Error Kļūda diff --git a/src/qt/locale/bitcoin_mn.ts b/src/qt/locale/bitcoin_mn.ts index f1b0174111d..5f016fd80d7 100644 --- a/src/qt/locale/bitcoin_mn.ts +++ b/src/qt/locale/bitcoin_mn.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - Хаяг эсвэл шошгыг ѳѳрчлѳхийн тулд хоёр удаа дар - - Create a new address Шинэ хаяг нээх @@ -1038,10 +1034,6 @@ Address: %4 Эдгээр прокси хаягнууд буруу байна: '%s' - Invalid amount - Буруу хэмжээ - - Insufficient funds Таны дансны үлдэгдэл хүрэлцэхгүй байна @@ -1066,10 +1058,6 @@ Address: %4 Ачааллаж дууслаа - To use the %s option - %s сонголтыг ашиглахын тулд - - Error Алдаа diff --git a/src/qt/locale/bitcoin_ms_MY.ts b/src/qt/locale/bitcoin_ms_MY.ts index d2e8efbb499..7ab50d66149 100644 --- a/src/qt/locale/bitcoin_ms_MY.ts +++ b/src/qt/locale/bitcoin_ms_MY.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - Klik dua kali untuk mengubah alamat atau label - - Create a new address Cipta alamat baru diff --git a/src/qt/locale/bitcoin_nb.ts b/src/qt/locale/bitcoin_nb.ts index bdde3da5347..f54fd8059b0 100644 --- a/src/qt/locale/bitcoin_nb.ts +++ b/src/qt/locale/bitcoin_nb.ts @@ -2,12 +2,12 @@ AddressBookPage - Double-click to edit address or label - Dobbelklikk for å redigere adresse eller merkelapp + Right-click to edit address or label + Høyreklikk for å redigere adressen eller merkelappen Create a new address - Lag en ny adresse + Opprett en ny addresse &New @@ -91,7 +91,7 @@ Exporting Failed - Ekport Feilet + Eksportering feilet There was an error trying to save the address list to %1. Please try again. @@ -476,7 +476,7 @@ Up to date - Ajour + Oppdatert Processed %n blocks of transaction history. @@ -484,7 +484,7 @@ Catching up... - Kommer ajour... + Laster ned... Sent transaction @@ -508,7 +508,7 @@ Adresse: %4 Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Lommeboken er <b>kryptert</b> og for tiden <b>ulåst</b> + Lommeboken er <b>kryptert</b> og for tiden <b>låst opp</b> Wallet is <b>encrypted</b> and currently <b>locked</b> @@ -554,7 +554,7 @@ Adresse: %4 After Fee: - Etter Gebyr: + Totalt: Change: @@ -562,15 +562,15 @@ Adresse: %4 (un)select all - velg (fjern) alt + velg (fjern) alle Tree mode - Tremodus + Trevisning List mode - Listemodus + Listevisning Amount @@ -634,7 +634,7 @@ Adresse: %4 Copy after fee - Kopier fra gebyr + Kopier totalt Copy bytes @@ -1289,6 +1289,14 @@ Adresse: %4 Refundering fra %1 + Payment request %2 is too large (%3 bytes, allowed %4 bytes). + Betalingsforespørsel %2 er for stor (%3 bytes, tillatt %4 bytes). + + + Payment request DoS protection + Betalingsforespørsel DoS-beskyttelse + + Error communicating with %1: %2 Feil i kommunikasjonen med %1: %2 @@ -2807,29 +2815,6 @@ Adresse: %4 Ta imot tilkoblinger fra utsiden (standardverdi: 1 hvis uten -proxy eller -connect) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, du må angi rpcpassord i konfigurasjonsfilen. -%s -Det anbefales at du bruker det følgende tilfeldige passordet: -rpcbruker=bitcoinrpc -rpcpassord=%s -(du behøver ikke å huske passordet) -Brukernavnet og passordet MÅ IKKE være like. -Om filen ikke eksisterer, opprett den nå med eier-kun-les filrettigheter. -Det er også anbefalt at å sette varselsmelding slik du får melding om problemer. -For eksempel: varselmelding=echo %%s | mail -s "Bitcoin Varsel" admin@foo.com - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 Bind til angitt adresse. Bruk [vertsmaskin]:port notasjon for IPv6 @@ -2846,14 +2831,6 @@ For eksempel: varselmelding=echo %%s | mail -s "Bitcoin Varsel" admin@foo.comGå til modus for regresjonstesting, som bruker en spesiell blokkjede der blokker kan bli løst momentant. - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Feil: Transaksjonen ble avvist! Dette kan skje hvis noen av myntene i lommeboken allerede er blitt brukt, som om du brukte en kopi av wallet.dat og myntene ble brukt i kopien, men ikke markert som brukt her. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - Feil: Denne transaksjonen trenger et gebyr på minst %s på grunn av beløpet, kompleksiteten eller bruk av allerede mottatte penger! - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Kjør kommando når en lommeboktransaksjon endres (%s i kommando er erstattet med TxID) @@ -2966,10 +2943,6 @@ For eksempel: varselmelding=echo %%s | mail -s "Bitcoin Varsel" admin@foo.comFeil: Lite ledig lagringsplass! - Error: Wallet locked, unable to create transaction! - Feil: Lommebok låst, kan ikke opprette transaksjon! - - Failed to listen on any port. Use -listen=0 if you want this. Kunne ikke lytte på noen port. Bruk -listen=0 hvis det er dette du vil. @@ -3094,10 +3067,22 @@ For eksempel: varselmelding=echo %%s | mail -s "Bitcoin Varsel" admin@foo.comGebyrer (i BTC/Kb) mindre enn dette anses som null gebyr for laging av transaksjoner (standardverdi: %s) + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Hvis paytxfee ikke er angitt, inkluderer da nok i gebyr til at transaksjoner gjennomsnittligt bekreftes innen n blokker (standardverdi: %u) + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Ugyldig beløp for -maxtxfee=<amount>: '%s' (må være minst minimum relé gebyr på %s for å hindre fastlåste transaksjoner) + + Maximum size of data in data carrier transactions we relay and mine (default: %u) Maksimal størrelse på data i databærende transaksjoner vi videresender og ufører graving på (standardverdi: %u) + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Maksimal sum av gebyrer som kan brukes i en enkelt lommebokstransaksjon, settes den for lavt kan store transaksjoner bli avbrutt (standardverdi: %s) + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) Søk etter nodeadresser via DNS-oppslag, hvis vi har få adresser å koble til (standard: 1 med mindre -connect) @@ -3114,6 +3099,34 @@ For eksempel: varselmelding=echo %%s | mail -s "Bitcoin Varsel" admin@foo.comDette produktet inneholder programvare utviklet av OpenSSL Project for bruk i OpenSSL Toolkit <https://www.openssl.org/> og kryptografisk programvare skrevet av Eric Young og UPnP-programvare skrevet av Thomas Bernard. + To use bitcoind, or the -server option to bitcoin-qt, you must set an rpcpassword in the configuration file: +%s +It is recommended you use the following random password: +rpcuser=bitcoinrpc +rpcpassword=%s +(you do not need to remember this password) +The username and password MUST NOT be the same. +If the file does not exist, create it with owner-readable-only file permissions. +It is also recommended to set alertnotify so you are notified of problems; +for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + For å bruke bitcoind, eller -server valget til bitcoin-qt, må du angi et rpcpassord i konfigurasjonsfilen: +%s +Det anbefales at du bruker det følgende tilfeldige passordet: +rpcuser=bitcoinrpc +rpcpassword=%s +(du behøver ikke å huske passordet) +Brukernavnet og passordet MÅ IKKE være like. +Om filen ikke eksisterer, opprett den med eier-kun-les filrettigheter. +Det er også anbefalt at å sette varselsmelding slik du får melding om problemer; +for eksempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Advarsel: -paytxfee er satt veldig høyt! Så stort gebyr kan bli betalt ved en enkelt transaksjon. + + Warning: Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly. Advarsel: Vennligst undersøk at din datamaskin har riktig dato og klokkeslett! Hvis klokken er stilt feil vil ikke Bitcoin Core fungere riktig. @@ -3122,6 +3135,10 @@ For eksempel: varselmelding=echo %%s | mail -s "Bitcoin Varsel" admin@foo.comHvitlistede noder kan ikke DoS-blokkeres, og deres transaksjoner videresendes alltid, selv om de allerede er i minnelageret. Nyttig f.eks. for en gateway. + Accept public REST requests (default: %u) + Godta offentlige REST forespørsler (standardverdi: %u) + + Cannot resolve -whitebind address: '%s' Kan ikke løse -whitebind-adresse: '%s' @@ -3158,6 +3175,10 @@ For eksempel: varselmelding=echo %%s | mail -s "Bitcoin Varsel" admin@foo.comSunnhetssjekk ved oppstart feilet. Bitcoin Core stenges ned. + Invalid amount for -maxtxfee=<amount>: '%s' + Ugyldig beløp for -maxtxfee=<amount>: '%s' + + Invalid amount for -minrelaytxfee=<amount>: '%s' Ugyldig mengde for -minrelaytxfee=<beløp>: '%s' @@ -3174,10 +3195,6 @@ For eksempel: varselmelding=echo %%s | mail -s "Bitcoin Varsel" admin@foo.comUgyldig nettmaske spesifisert i -whitelist: '%s' - Keep at most <n> unconnectable blocks in memory (default: %u) - Behold på det meste <n> blokker i minnet som ikke er mulig å koble (standardverdi: %u) - - Keep at most <n> unconnectable transactions in memory (default: %u) Hold på det meste <n> transaksjoner som ikke kobles i minnet (standardverdi: %u) @@ -3190,10 +3207,6 @@ For eksempel: varselmelding=echo %%s | mail -s "Bitcoin Varsel" admin@foo.comNode alternativer for videresending: - Print block on startup, if found in block index - Skriv ut blokken ved oppstart, hvis funnet i blokkindeksen - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) RPC SSL-valg: (se Bitcoin Wiki for oppsettsinstruksjoner for SSL) @@ -3242,6 +3255,10 @@ For eksempel: varselmelding=echo %%s | mail -s "Bitcoin Varsel" admin@foo.comTransaksjonsbeløpet må være positivt + Transaction too large for fee policy + Transaksjon for stor for gebyrpolitikken + + Transaction too large Transaksjonen er for stor @@ -3338,10 +3355,6 @@ For eksempel: varselmelding=echo %%s | mail -s "Bitcoin Varsel" admin@foo.comHvor grundig blokkverifiseringen til -checkblocks er (0-4, standardverdi: %u) - If paytxfee is not set, include enough fee so transactions are confirmed on average within n blocks (default: %u) - Hvis paytxfee ikke er angitt, inkluderer da nok gebyr til at transaksjoner gjennomsnittligt bekreftes innen n blokker (standardverdi: %u) - - Log transaction priority and fee per kB when mining blocks (default: %u) Logg transaksjonsprioritet og gebyr per kB under blokkutvinning (standardverdi: %u) @@ -3434,10 +3447,6 @@ For eksempel: varselmelding=echo %%s | mail -s "Bitcoin Varsel" admin@foo.comSett inn tidsstempel i front av feilsøkingsdata (standardverdi: %u) - Print block tree on startup (default: %u) - Skriv ut blokktreet ved oppstart (standardverdi: %u) - - Relay and mine data carrier transactions (default: %u) Videresend og ufør graving av databærende transaksjoner (standardverdi: %u) @@ -3514,10 +3523,6 @@ For eksempel: varselmelding=echo %%s | mail -s "Bitcoin Varsel" admin@foo.comUgyldig beløp for -paytxfee=<beløp>: '%s' - Invalid amount - Ugyldig beløp - - Insufficient funds Utilstrekkelige midler @@ -3550,10 +3555,6 @@ For eksempel: varselmelding=echo %%s | mail -s "Bitcoin Varsel" admin@foo.comFerdig med lasting - To use the %s option - For å bruke %s opsjonen - - Error Feil diff --git a/src/qt/locale/bitcoin_nl.ts b/src/qt/locale/bitcoin_nl.ts index f5f708fac93..71389b63467 100644 --- a/src/qt/locale/bitcoin_nl.ts +++ b/src/qt/locale/bitcoin_nl.ts @@ -2,12 +2,12 @@ AddressBookPage - Double-click to edit address or label - Dubbelklik om het adres of label te wijzigen + Right-click to edit address or label + Klik met de rechtermuisknop om het adres of label te wijzigen Create a new address - Maak een nieuw adres aan + Maak een nieuw adres &New @@ -15,7 +15,7 @@ Copy the currently selected address to the system clipboard - Kopieer het huidig geselecteerde adres naar het klembord + Kopieer het geselecteerde adres naar het klembord &Copy @@ -1289,6 +1289,14 @@ Adres: %4 Restitutie van %1 + Payment request %2 is too large (%3 bytes, allowed %4 bytes). + Betalingsaanvraag %2 is te groot (%3 bytes, %4 bytes toegestaan). + + + Payment request DoS protection + Betalingsaanvraag DoS bescherming + + Error communicating with %1: %2 Fout bij communiceren met %1: %2 @@ -1853,18 +1861,34 @@ Adres: %4 Kies... + collapse fee-settings + Transactiekosteninstellingen verbergen + + Minimize Minimaliseer + 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. + Als de aangepaste toeslag is ingesteld op 1000 satoshis en de transactie is maar 250 bytes, dan wordt bij "per kilobyte" 250 satoshis aan toeslag berekend, terwijl er bij "tenminste" 1000 satoshis worden berekend. Voor transacties die groter zijn dan een kilobyte, wordt in beide gevallen per kilobyte de toeslag berekend. + + per kilobyte per kilobyte + 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. + Als de aangepaste toeslag is ingesteld op 1000 satoshis en de transactie is maar 250 bytes, dan wordt bij "per kilobyte" 250 satoshis aan toeslag berekend, terwijl er bij "totaal tenminste" 1000 satoshis worden berekend. Voor transacties die groter zijn dan een kilobyte, wordt in beide gevallen per kilobyte de toeslag berekend. + + total at least totaal ten minste + 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. + De minimale toeslag betalen is prima mits het transactievolume kleiner is dan de ruimte in de blokken. Let wel op dat dit tot gevolg kan hebben dat een transactie nooit wordt bevestigd als er meer vraag is naar bitcointransacties dan het netwerk kan verwerken. + + (read the tooltip) (lees de tooltip) @@ -2791,28 +2815,6 @@ Adres: %4 Accepteer verbindingen van buitenaf (standaard: 1 als geen -proxy of -connect is opgegeven) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, u moet een RPC-wachtwoord instellen in het configuratiebestand: %s -U wordt aangeraden het volgende willekeurige wachtwoord te gebruiken: -rpcuser=bitcoinrpc -rpcpassword=%s -(u hoeft dit wachtwoord niet te onthouden) -De gebruikersnaam en wachtwoord mogen niet hetzelfde zijn. -Als het bestand niet bestaat, make hem dan aan met leesrechten voor enkel de eigenaar. -Het is ook aan te bevelen "alertnotify" in te stellen zodat u op de hoogte gesteld wordt van problemen; -bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 Bind aan opgegeven adres en luister er altijd op. Gebruik [host]:port notatie voor IPv6 @@ -2829,14 +2831,6 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comSchakel regressietest-modus in, die een speciale blokketen gebruikt waarin blokken onmiddellijk opgelost kunnen worden. - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Fout: De transactie was afgewezen! Dit kan gebeuren als sommige munten in uw portemonnee al eerder uitgegeven zijn, zoals wanneer u een kopie van uw wallet.dat heeft gebruikt en in de kopie deze munten zijn uitgegeven, maar in deze portemonnee die munten nog niet als zodanig zijn gemarkeerd. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - Fout: Deze transactie vereist transactiekosten van tenminste %s, vanwege zijn grootte, complexiteit, of het gebruik van onlangs ontvangen munten! - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Voer opdracht uit zodra een portemonneetransactie verandert (%s in cmd wordt vervangen door TxID) @@ -2949,10 +2943,6 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comFout: Weinig vrije diskruimte! - Error: Wallet locked, unable to create transaction! - Fout: Portemonnee vergrendeld, aanmaak transactie niet mogelijk! - - Failed to listen on any port. Use -listen=0 if you want this. Mislukt om op welke poort dan ook te luisteren. Gebruik -listen=0 as u dit wilt. @@ -3061,10 +3051,22 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comFout: luisteren naar binnenkomende verbindingen mislukt (luisteren gaf foutmelding %s) + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + Fout: er is een niet-ondersteund argument -socks aangetroffen. Het instellen van de SOCKS-versie is niet langer mogelijk. Alleen SOCKS5-proxy's worden ondersteund. + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) Voer commando uit zodra een waarschuwing is ontvangen of wanneer we een erg lange fork detecteren (%s in commando wordt vervangen door bericht) + Fees (in BTC/Kb) smaller than this are considered zero fee for relaying (default: %s) + Toeslagen (in BTC/Kb) kleiner dan dit worden beschouwd als geen vergoeding (voor doorgeven) (standaard: %s) + + + Fees (in BTC/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + Toeslagen (in BTC/Kb) kleiner dan dit worden beschouwd als geen vergoeding transactieaanmaak (standaard: %s) + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) Stel maximumgrootte in bytes in voor hoge-prioriteits-/lage-transactiekosten-transacties (standaard: %d) @@ -3077,6 +3079,10 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comDit product bevat software dat ontwikkeld is door het OpenSSL Project voor gebruik in de OpenSSL Toolkit <https://www.openssl.org/> en cryptografische software geschreven door Eric Young en UPnP software geschreven door Thomas Bernard. + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Let op: -maxtxfee is erg hoog ingesteld! Transactiekosten van dergelijke groottes kunnen in een enkele transactie worden betaald. + + Warning: Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly. Waarschuwing: Controleer dat de datum en tijd van uw computer correct zijn ingesteld! Bij een onjuist ingestelde klok zal Bitcoin Core niet goed werken. @@ -3085,6 +3091,10 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comGoedgekeurde peers kunnen niet ge-DoS-banned worden en hun transacties worden altijd doorgestuurd, zelfs als ze reeds in de mempool aanwezig zijn, nuttig voor bijv. een gateway + Accept public REST requests (default: %u) + Accepteer publieke REST-requests (standaard: %u) + + Cannot resolve -whitebind address: '%s' Kan -whitebind adres niet herleiden: '%s' @@ -3121,6 +3131,10 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comInitialisatie sanity check mislukt. Bitcoin Core is aan het afsluiten. + Invalid amount for -maxtxfee=<amount>: '%s' + Ongeldig bedrag voor -maxtxfee=<amount>: '%s' + + Invalid amount for -minrelaytxfee=<amount>: '%s' Ongeldig bedrag voor -minrelaytxfee=<bedrag>: '%s' @@ -3137,10 +3151,6 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comOngeldig netmask gespecificeerd in -whitelist: '%s' - Keep at most <n> unconnectable blocks in memory (default: %u) - Houd maximaal <n> onverbonden blokken in geheugen (standaard: %u) - - Keep at most <n> unconnectable transactions in memory (default: %u) Houd maximaal <n> onverbonden transacties in geheugen (standaard: %u) @@ -3153,10 +3163,6 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comNode relay opties: - Print block on startup, if found in block index - Toon block bij opstarten, wanneer gevonden in block index - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) RPC SSL opties: (zie de Bitcoin Wiki voor SSL installatie-instructies) @@ -3205,6 +3211,10 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comTransactiebedragen moeten positief zijn + Transaction too large for fee policy + De transactie is te groot voor het toeslagenbeleid + + Transaction too large Transactie te groot @@ -3301,6 +3311,10 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comHoe grondig de blokverificatie van -checkblocks is (0-4, standaard: %u) + Log transaction priority and fee per kB when mining blocks (default: %u) + Log transactieprioriteit en -kosten per kB bij het mijnen van blokken (standaard: %u) + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) Onderhoud een volledige transactieindex, gebruikt door de getrawtransaction rpc call (standaard: %u) @@ -3345,6 +3359,10 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comAantal te checken blokken bij het opstarten (standaard: %u, 0 = allemaal) + Include IP addresses in debug output (default: %u) + IP-adressen toevoegen in de debuguitvoer (standaard: %u) + + Invalid -proxy address: '%s' Ongeldig -proxy adres: '%s' @@ -3381,10 +3399,6 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comPrepend debug output met tijdstempel (standaard: %u) - Print block tree on startup (default: %u) - Toon block structuur bij opstarten (default: %u) - - Run a thread to flush wallet periodically (default: %u) Draai een proces om de wallet periodiek te flushen (default: %u) @@ -3453,10 +3467,6 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comOngeldig bedrag voor -paytxfee=<bedrag>: '%s' - Invalid amount - Ongeldig bedrag - - Insufficient funds Ontoereikend saldo @@ -3489,10 +3499,6 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.comKlaar met laden - To use the %s option - Om de %s optie te gebruiken - - Error Fout diff --git a/src/qt/locale/bitcoin_pam.ts b/src/qt/locale/bitcoin_pam.ts index b0a92a1578f..1aafea3936c 100644 --- a/src/qt/locale/bitcoin_pam.ts +++ b/src/qt/locale/bitcoin_pam.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - Pindutan meng makatidduang besis ban ayalilan me ing address o label - - Create a new address Maglalang kang bayung address @@ -1543,10 +1539,6 @@ Address: %4 Eya maliari ing alaga keng -paytxfee=<amount>: '%s' - Invalid amount - Ing alaga e ya katanggap-tanggap - - Insufficient funds Kulang a pondo @@ -1579,10 +1571,6 @@ Address: %4 Yari ne ing pamag-load - To use the %s option - Para agamit ing %s a pimamilian - - Error Mali diff --git a/src/qt/locale/bitcoin_pl.ts b/src/qt/locale/bitcoin_pl.ts index c53a9970efe..ea6cedf1541 100644 --- a/src/qt/locale/bitcoin_pl.ts +++ b/src/qt/locale/bitcoin_pl.ts @@ -2,8 +2,8 @@ AddressBookPage - Double-click to edit address or label - Kliknij dwukrotnie, aby edytować adres lub etykietę + Right-click to edit address or label + Prawy klik żeby edytować adres lub etykietę Create a new address @@ -47,11 +47,11 @@ Choose the address to send coins to - Wybierz adres żeby wysłać bitcoins + Wybierz adres, na który chcesz wysłać monety Choose the address to receive coins with - Wybierz adres do otrzymania monet. + Wybierz adres, na który chcesz otrzymać monety C&hoose @@ -67,11 +67,11 @@ These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Tutaj znajdują się Twoje adresy Bitcoin do wysyłania płatności. Zawsze sprawdzaj ilość i adres odbiorcy przed wysyłką monet. + Tutaj znajdują się adresy Bitcoin na które wysyłasz płatności. Zawsze sprawdzaj ilość i adres odbiorcy przed wysyłką monet. These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - To twoje adresy bitcoin do odbierania płatności. Zaleca się używanie nowych adresów odbiorczych dla każdej tranzakcji. + To twoje adresy Bitcoin, na które otrzymujesz płatności. Zaleca się używanie nowych adresów odbiorczych dla każdej transakcji. Copy &Label @@ -95,7 +95,7 @@ There was an error trying to save the address list to %1. Please try again. - Wystąpił błąd podczas próby zapisu listy adresów %1. Proszę spróbować ponownie + Wystąpił błąd podczas próby zapisu listy adresów %1. Proszę spróbować ponownie. @@ -110,7 +110,7 @@ (no label) - (bez etykiety) + (brak etykiety) @@ -177,13 +177,17 @@ Warning: The Caps Lock key is on! - Uwaga: Klawisz Caps Lock jest włączony + Uwaga: Klawisz Caps Lock jest włączony! Wallet encrypted Portfel zaszyfrowany + 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>. + Wprowadź nowe hasło do portfela.<br/>Proszę używać hasła złożonego z <b>10 lub więcej losowych znaków</b> lub <b>ośmiu lub więcej słów.</b> + + 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. Program Bitcoin zamknie się aby dokończyć proces szyfrowania. Pamiętaj, że szyfrowanie portfela nie zabezpiecza w pełni Twoich bitcoinów przed kradzieżą przez wirusy lub trojany mogące zainfekować Twój komputer. @@ -236,7 +240,7 @@ Show general overview of wallet - Pokazuje ogólny zarys portfela + Pokazuje ogólny widok portfela &Transactions @@ -280,11 +284,11 @@ &Sending addresses... - Adres wysyłania + Adresy wysyłania... &Receiving addresses... - Adres odbiorczy + Adresy odbioru... Open &URI... @@ -360,7 +364,7 @@ Encrypt the private keys that belong to your wallet - Szyfruj klucze prywatne, które są powiązane z twoim portfelem + Szyfruj klucze prywatne, które są w Twoim portfelu Sign messages with your Bitcoin addresses to prove you own them @@ -368,7 +372,7 @@ Verify messages to ensure they were signed with specified Bitcoin addresses - Zweryfikuj wiadomość, aby upewnić się, że została podpisana odpowiednim adresem Bitcoin. + Zweryfikuj wiadomość, aby upewnić się, że została podpisana podanym adresem Bitcoin. &File @@ -388,7 +392,7 @@ Bitcoin Core - Rdzeń BitCoin + Rdzeń Bitcoin Request payments (generates QR codes and bitcoin: URIs) @@ -400,15 +404,19 @@ Show the list of used sending addresses and labels - Pokaż listę użytych adresów wysyłających i etykiety + Pokaż listę adresów i etykiet użytych do wysyłania Show the list of used receiving addresses and labels - Pokaż listę użytych adresów odbiorczych i etykiety + Pokaż listę adresów i etykiet użytych do odbierania + + + Open a bitcoin: URI or payment request + Otwórz URI bitcoin: lub żądanie zapłaty &Command-line options - &Opcje konsoli + &Opcje linii komend Show the Bitcoin Core help message to get a list with possible Bitcoin command-line options @@ -470,9 +478,13 @@ Up to date Aktualny + + Processed %n blocks of transaction history. + Przetworzono %n blok historii transakcji.Przetworzono %n bloki historii transakcji.Przetworzono %n bloków historii transakcji. + Catching up... - Łapanie bloków... + Synchronizuję się... Sent transaction @@ -496,7 +508,7 @@ Adres: %4 Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Portfel jest <b>zaszyfrowany</b> i obecnie <b>niezablokowany</b> + Portfel jest <b>zaszyfrowany</b> i obecnie <b>odblokowany</b> Wallet is <b>encrypted</b> and currently <b>locked</b> @@ -507,12 +519,16 @@ Adres: %4 ClientModel Network Alert - Sieć Alert + Komunikat Sieci CoinControlDialog + Coin Selection + Wybór monet + + Quantity: Ilość: @@ -533,6 +549,10 @@ Adres: %4 Opłata: + Dust: + Pył: + + After Fee: Po opłacie: @@ -557,6 +577,14 @@ Adres: %4 Kwota + Received with label + Otrzymano z opisem + + + Received with address + Otrzymano z adresem + + Date Data @@ -590,11 +618,11 @@ Adres: %4 Lock unspent - Zablokuj + Zablokuj niewydane Unlock unspent - Odblokuj + Odblokuj niewydane Copy quantity @@ -617,6 +645,10 @@ Adres: %4 Skopiuj priorytet + Copy dust + Kopiuj pył + + Copy change Skopiuj resztę @@ -665,6 +697,10 @@ Adres: %4 żaden + Can vary +/- %1 satoshi(s) per input. + Waha się +/- %1 satoshi na wejście. + + yes tak @@ -674,7 +710,7 @@ Adres: %4 This label turns red, if the transaction size is greater than 1000 bytes. - Etykieta staje się czerwona kiedy transakcja jest większa niż 1000 bajtów. + Ta etykieta staje się czerwona, kiedy transakcja jest większa niż 1000 bajtów. This means a fee of at least %1 per kB is required. @@ -686,7 +722,7 @@ Adres: %4 Transactions with higher priority are more likely to get included into a block. - Transakcje o wyższym priorytecie zostają szybciej dołączone do bloku. + Transakcje o wyższym priorytecie zwykle szybciej zostają dołączone do bloku. This label turns red, if the priority is smaller than "medium". @@ -698,7 +734,7 @@ Adres: %4 (no label) - (bez etykiety) + (brak etykiety) change from %1 (%2) @@ -733,7 +769,7 @@ Adres: %4 New receiving address - Nowy adres odbiorczy + Nowy adres otrzymywania New sending address @@ -768,7 +804,7 @@ Adres: %4 FreespaceChecker A new data directory will be created. - Utworzono nowy folder danych. + Będzie utworzony nowy folder danych. name @@ -780,7 +816,7 @@ Adres: %4 Path already exists, and is not a directory. - Ścieżka już istnieje i nie wskazuje na folder. + Ścieżka już istnieje i nie jest katalogiem. Cannot create data directory here. @@ -791,7 +827,7 @@ Adres: %4 HelpMessageDialog Bitcoin Core - Rdzeń BitCoin + Rdzeń Bitcoin version @@ -819,7 +855,7 @@ Adres: %4 UI options - UI opcje + Opcje UI Set language, for example "de_DE" (default: system locale) @@ -830,6 +866,10 @@ Adres: %4 Uruchom zminimalizowany + Set SSL root certificates for payment request (default: -system-) + Ustaw certyfikaty główne SSL dla żądań płatności (domyślnie: -system-) + + Show splash screen on startup (default: 1) Pokazuj okno powitalne przy starcie (domyślnie: 1) @@ -850,11 +890,11 @@ Adres: %4 As this is the first time the program is launched, you can choose where Bitcoin Core will store its data. - Ponieważ jest to pierwsze uruchomienie programu, możesz wybrać gdzie będą przechowywane informacje. + Ponieważ jest to pierwsze uruchomienie programu, możesz wybrać gdzie Bitcoin Core będzie przechowywał swoje dane. 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. - Program pobierze i będzie przechowywał kopię łańcucha bloków Bitcoin. W wybranym katalogu musi być przynajmniej %1GB miejsca, a z czasem wielkość danych będzie rosła. Portfel będzie przechowywany w tym samym katalogu. + Program pobierze i będzie przechowywał kopię łańcucha bloków Bitcoin. W wybranym katalogu musi być przynajmniej %1GB miejsca, a z czasem ilość danych będzie rosła. Portfel będzie przechowywany w tym samym katalogu. Use the default data directory @@ -866,7 +906,7 @@ Adres: %4 Bitcoin Core - Rdzeń BitCoin + Rdzeń Bitcoin Error: Specified data directory "%1" cannot be created. @@ -876,12 +916,20 @@ Adres: %4 Error Błąd - + + %n GB of free space available + %n GB dostępnego wolnego miejsca%n GB dostępnego wolnego miejsca%n GB dostępnego wolnego miejsca + + + (of %n GB needed) + (z %n GB potrzebnego)(z %n GB potrzebnych)(z %n GB potrzebnych) + + OpenURIDialog Open URI - Otwórz URI: + Otwórz URI Open payment request from URI or file @@ -919,6 +967,10 @@ Adres: %4 Uruchamiaj Bitcoin wraz z zalogowaniem do &systemu + Size of &database cache + Wielkość bufora bazy &danych + + MB MB @@ -944,7 +996,7 @@ Adres: %4 Reset all client options to default. - Przywróć domyślne wszystkie ustawienia klienta. + Przywróć wszystkie domyślne ustawienia klienta. &Reset Options @@ -955,6 +1007,10 @@ Adres: %4 &Sieć + (0 = auto, <0 = leave that many cores free) + (0 = automatycznie, <0 = zostaw tyle wolnych rdzeni) + + W&allet Portfel @@ -963,6 +1019,14 @@ Adres: %4 Ekspert + Enable coin &control features + Włącz funk&cje kontoli monet + + + &Spend unconfirmed change + Wydaj niepotwierdzoną re&sztę + + Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. Automatycznie otwiera port klienta Bitcoin na routerze. Ta opcja dzieła tylko jeśli twój router wspiera UPnP i jest ono włączone. @@ -971,6 +1035,10 @@ Adres: %4 Mapuj port używając &UPnP + Connect to the Bitcoin network through a SOCKS5 proxy. + Połącz się z siecią Bitcoin poprzez proxy SOCKS5. + + Proxy &IP: Proxy &IP: @@ -1023,6 +1091,10 @@ Adres: %4 Wybierz podział jednostki pokazywany w interfejsie oraz podczas wysyłania monet + Whether to show coin control features or not. + Wybierz pokazywanie lub nie funkcji kontroli monet. + + &OK &OK @@ -1070,6 +1142,10 @@ Adres: %4 Wyświetlana informacja może być nieaktualna. Twój portfel synchronizuje się automatycznie z siecią bitcoin, zaraz po tym jak uzyskano połączenie, ale proces ten nie został jeszcze ukończony. + Watch-only: + Tylko podglądaj: + + Available: Dostępne: @@ -1091,7 +1167,11 @@ Adres: %4 Mined balance that has not yet matured - Balans wydobycia, który jeszcze nie dojrzał + Balans wydobytych monet, które jeszcze nie dojrzały + + + Balances + Salda Total: @@ -1102,8 +1182,32 @@ Adres: %4 Twoje obecne saldo + Your current balance in watch-only addresses + Twoje obecne saldo na podglądanym adresie + + + Spendable: + Możliwe do wydania: + + + Recent transactions + Ostatnie transakcje + + + Unconfirmed transactions to watch-only addresses + Niepotwierdzone transakcje na podglądanych adresach + + + Mined balance in watch-only addresses that has not yet matured + Wykopane monety na podglądanych adresach które jeszcze nie dojrzały + + + Current total balance in watch-only addresses + Łączna kwota na podglądanych adresach + + out of sync - desynchronizacja + nie zsynchronizowany @@ -1117,6 +1221,18 @@ Adres: %4 błędny adres płatności %1 + Payment request rejected + Żądanie płatności odrzucone + + + Payment request has expired. + Zażądanie płatności się przedawniło. + + + Payment request is not initialized. + Żądanie płatności nie jest zainicjowane. + + Requested payment amount of %1 is too small (considered dust). Żądana kwota %1 jest za niska (uznano za kurz). @@ -1126,7 +1242,11 @@ Adres: %4 Cannot start bitcoin: click-to-pay handler - Nie można rozpocząć bitcoin: kliknij-by-zapłacić opiekunowi + Nie można uruchomić protokołu bitcoin: kliknij-by-zapłacić + + + Payment request fetch URL is invalid: %1 + URL pobrania żądania zapłaty jest nieprawidłowe: %1 Refund from %1 @@ -1151,7 +1271,11 @@ Adres: %4 PeerTableModel - + + Ping Time + Czas odpowiedzi + + QObject @@ -1159,6 +1283,14 @@ Adres: %4 Kwota + Enter a Bitcoin address (e.g. %1) + Wprowadź adres Bitcoin (np. %1) + + + %1 d + %1 d + + %1 h %1 h @@ -1167,10 +1299,30 @@ Adres: %4 %1 m + %1 s + %1 s + + + NETWORK + SIEĆ + + + UNKNOWN + NIEZNANY + + + None + Żaden + + N/A NIEDOSTĘPNE - + + %1 ms + %1 ms + + QRImageWidget @@ -1221,6 +1373,10 @@ Adres: %4 Używana wersja OpenSSL + Using BerkeleyDB version + Używana wersja BerkeleyDB + + Startup time Czas uruchomienia @@ -1238,13 +1394,53 @@ Adres: %4 Block chain - Ciąg bloków + Łańcuch bloków Current number of blocks Aktualna liczba bloków + Received + Otrzymane + + + Sent + Wysłane + + + Select a peer to view detailed information. + Wybierz węzeł żeby zobaczyć szczegóły. + + + Direction + Kierunek + + + Version + Wersja + + + Starting Height + Początkowa wysokość + + + Connection Time + Czas połączenia + + + Bytes Sent + Bajtów wysłano + + + Bytes Received + Bajtów pobrano + + + Ping Time + Czas odpowiedzi + + Last block time Czas ostatniego bloku @@ -1294,7 +1490,7 @@ Adres: %4 Welcome to the Bitcoin RPC console. - Witam w konsoli Bitcoin RPC + Witam w konsoli Bitcoin RPC. Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. @@ -1320,7 +1516,31 @@ Adres: %4 %1 GB %1 GB - + + via %1 + przez %1 + + + never + nigdy + + + Inbound + Wejściowy + + + Outbound + Wyjściowy + + + Unknown + Nieznany + + + Fetching... + Pobieram... + + ReceiveCoinsDialog @@ -1337,7 +1557,7 @@ Adres: %4 Reuse one of the previously used receiving addresses. Reusing addresses has security and privacy issues. Do not use this unless re-generating a payment request made before. - Użyj jeden z poprzednio użytych adresów odbiorczych. Podczas ponownego używania adresów występują problemy z bezpieczeństwem i prywatnością. Nie korzystaj z tej opcji, chyba że odtwarzasz żądanie płatności wykonane już wcześniej. + Użyj jednego z poprzednio użytych adresów odbiorczych. Podczas ponownego używania adresów występują problemy z bezpieczeństwem i prywatnością. Nie korzystaj z tej opcji, chyba że odtwarzasz żądanie płatności wykonane już wcześniej. An optional label to associate with the new receiving address. @@ -1349,7 +1569,7 @@ Adres: %4 Clear all fields of the form. - Wyczyść pola formularza + Wyczyść pola formularza. Clear @@ -1408,7 +1628,7 @@ Adres: %4 Request payment to %1 - Żądaj płatności do %1 + Zażądaj płatności do %1 Payment information @@ -1481,6 +1701,10 @@ Adres: %4 Wyślij Monety + Coin Control Features + Funkcje kontroli monet + + Inputs... Wejścia... @@ -1490,7 +1714,7 @@ Adres: %4 Insufficient funds! - Niewystarczające środki + Niewystarczające środki! Quantity: @@ -1522,7 +1746,63 @@ Adres: %4 If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Kiedy ta opcja jest wybrana, ale adres reszty jest pusty lub nieprawidłowy to reszta będzie wysyłana na adres nowo-wygenerowany. + Kiedy ta opcja jest wybrana, to jeżeli adres reszty jest pusty lub nieprawidłowy, to reszta będzie wysyłana na nowo wygenerowany adres, + + + Custom change address + Niestandardowe zmiany adresu + + + Transaction Fee: + Opłata transakcyjna: + + + Choose... + Wybierz... + + + collapse fee-settings + zwiń opcje opłaty + + + Minimize + Minimalizuj + + + per kilobyte + za kilobajt + + + (read the tooltip) + (przeczytaj podpowiedź) + + + Recommended: + Zalecane: + + + (Smart fee not initialized yet. This usually takes a few blocks...) + (Sprytne opłaty nie są jeszcze zainicjowane. Trwa to zwykle kilka bloków...) + + + Confirmation time: + Czas potwierdzenia: + + + normal + normalnie + + + fast + szybko + + + Send as zero-fee transaction if possible + Wyślij bez opłaty jeżeli to możliwe + + + (confirmation may take longer) + (potwierdzenie może potrwać dłużej) Send to multiple recipients at once @@ -1530,11 +1810,15 @@ Adres: %4 Add &Recipient - Dodaj Odbio&rce + Dodaj Odbio&rcę Clear all fields of the form. - Wyczyść wszystkie pola formularza + Wyczyść wszystkie pola formularza. + + + Dust: + Pył: Clear &All @@ -1598,7 +1882,7 @@ Adres: %4 The recipient address is not valid, please recheck. - Adres odbiorcy jest nieprawidłowy, proszę poprawić + Adres odbiorcy jest nieprawidłowy, proszę poprawić. The amount to pay must be larger than 0. @@ -1614,7 +1898,7 @@ Adres: %4 Duplicate address found, can only send to each address once per send operation. - Znaleziono powtórzony adres, można wysłać tylko raz na każdy adres podczas operacji wysyłania. + Znaleziono powtórzony adres, można wysłać tylko raz na każdy adres podczas jednej operacji wysyłania. Transaction creation failed! @@ -1625,6 +1909,14 @@ Adres: %4 Transakcja została odrzucona! Może się to zdarzyć jeśli część monet z portfela została już wydana używając kopii pliku wallet.dat i nie zostało to tutaj uwzględnione. + A fee higher than %1 is considered an insanely high fee. + Opłata wyższa niż %1 jest uważana za szalenie wysoką. + + + Pay only the minimum fee of %1 + Płac tylko minimalna opłatę %1 + + Warning: Invalid Bitcoin address Ostrzeżenie: nieprawidłowy adres Bitcoin @@ -1634,7 +1926,11 @@ Adres: %4 Warning: Unknown change address - Ostrzeżenie: Nieznany adres + Ostrzeżenie: Nieznany adres reszty + + + Copy dust + Kopiuj kurz Are you sure you want to send? @@ -1693,7 +1989,7 @@ Adres: %4 This is a verified payment request. - Zweryfikowano żądanie zapłaty. + To żądanie zapłaty jest zweryfikowane. Enter a label for this address to add it to the list of used addresses @@ -1755,7 +2051,7 @@ Adres: %4 Enter the message you want to sign here - Wprowadź wiadomość, którą chcesz podpisać, tutaj + Tutaj wprowadź wiadomość, którą chcesz podpisać Signature @@ -1823,11 +2119,11 @@ Adres: %4 Private key for the entered address is not available. - Klucz prywatny dla podanego adresu nie jest dostępny + Klucz prywatny dla podanego adresu nie jest dostępny. Message signing failed. - Podpisanie wiadomości nie powiodło się + Podpisanie wiadomości nie powiodło się. Message signed. @@ -1843,7 +2139,7 @@ Adres: %4 The signature did not match the message digest. - Podpis nie odpowiadał streszczeniu wiadomości + Podpis nie odpowiada skrótowi wiadomości. Message verification failed. @@ -1858,7 +2154,7 @@ Adres: %4 SplashScreen Bitcoin Core - Rdzeń BitCoin + Rdzeń Bitcoin The Bitcoin Core developers @@ -1883,6 +2179,10 @@ Adres: %4 Otwórz do %1 + conflicted + konflikt + + %1/offline %1/offline @@ -1900,7 +2200,7 @@ Adres: %4 , broadcast through %n node(s) - , emitowany przez %n węzeł, emitowany przez %n węzły, emitowany przez %n węzłów + , przekazywany przez %n węzeł, przekazywany przez %n węzły, przekazywany przez %n węzłów Date @@ -1948,7 +2248,7 @@ Adres: %4 Transaction fee - Prowizja transakcji + Opłata transakcyjna Net amount @@ -1972,7 +2272,7 @@ Adres: %4 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. - Wygenerowane monety muszą dojrzeć przez %1 bloków zanim będzie można je wysłać. Gdy wygenerowałeś ten blok został on ogłoszony w sieci i dodany do łańcucha bloków. Jeżeli nie uda mu się wejść do łańcucha jego status zostanie zmieniony na "nie zaakceptowano" i nie będzie można go wydać. To czasem zdarza się gdy inny węzeł wygeneruje blok w kilka sekund od twojego. + Wygenerowane monety muszą dojrzeć przez %1 bloków zanim będzie można je wydać. Gdy wygenerowałeś ten blok został on ogłoszony w sieci i dodany do łańcucha bloków. Jeżeli nie uda mu się wejść do łańcucha jego status zostanie zmieniony na "nie zaakceptowano" i nie będzie można go wydać. To czasem zdarza się gdy inny węzeł wygeneruje blok w kilka sekund od twojego. Debug information @@ -2000,7 +2300,7 @@ Adres: %4 , has not been successfully broadcast yet - , nie został jeszcze pomyślnie wyemitowany + , nie został jeszcze pomyślnie rozesłany Open for %n more block(s) @@ -2065,6 +2365,10 @@ Adres: %4 Potwierdzanie (%1 z %2 rekomendowanych potwierdzeń) + Conflicted + Konflikt + + Received with Otrzymane przez @@ -2262,7 +2566,7 @@ Adres: %4 WalletModel Send Coins - Wyślij płatność + Wyślij monety @@ -2335,39 +2639,8 @@ Adres: %4 Akceptuj połączenia z zewnątrz (domyślnie: 1 jeśli nie ustawiono -proxy lub -connect) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, musisz ustawić rpcpassword w pliku konfiguracyjnym:⏎ -%s⏎ -Zalecane jest użycie losowego hasła:⏎ -rpcuser=bitcoinrpc⏎ -rpcpassword=%s⏎ -(nie musisz pamiętać tego hasła)⏎ -Użytkownik i hasło nie mogą być takie same.⏎ -Jeśli plik nie istnieje, utwórz go z uprawnieniami tylko-do-odczytu dla właściciela.⏎ -Zalecane jest ustawienie alertnotify aby poinformować o problemach:⏎ -na przykład: alertnotify=echo %%s | mail -s "Alarm Bitcoin" admin@foo.com⏎ - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 - Skojarz z podanym adresem. Użyj formatu [host]:port dla IPv6 - - - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Błąd: transakcja została odrzucona. Może się to zdarzyć, gdy monety z Twojego portfela zostały już wydane, na przykład gdy używałeś kopii wallet.dat i bitcoiny które tam wydałeś nie zostały jeszcze odjęte z portfela z którego teraz korzystasz. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - Transakcja przekracza limit. Możesz wysłać ją płacąc prowizję %s, która zostaje przekazana do węzłów, które ją prześlą i pomoże wspierać sieć Bitcoin. Czy chcesz zapłacić prowizję? + Skojarz z podanym adresem i nasłuchuj na nim. Użyj formatu [host]:port dla IPv6 Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) @@ -2378,8 +2651,12 @@ na przykład: alertnotify=echo %%s | mail -s "Alarm Bitcoin" admin@foo.com⏎To jest testowa wersja - używaj na własne ryzyko - nie używaj do wykopywania oraz przy aplikacjach kupieckich + Unable to bind to %s on this computer. Bitcoin Core is probably already running. + Nie można przywiązać z portem %s na tym komputerze. Bitcoin Core prawdopodobnie już działa. + + Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. - Ostrzeżenie: -paytxfee jest bardzo duży. To jest prowizja za transakcje, którą płacisz, gdy wysyłasz monety. + Ostrzeżenie: -paytxfee jest bardzo duże! Jest to prowizja za transakcje, którą płacisz, gdy wysyłasz monety. Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. @@ -2402,6 +2679,10 @@ na przykład: alertnotify=echo %%s | mail -s "Alarm Bitcoin" admin@foo.com⏎(domyślnie: 1) + <category> can be: + <category> mogą być: + + Attempt to recover private keys from a corrupt wallet.dat Próbuj odzyskać klucze prywatne z uszkodzonego wallet.dat @@ -2411,7 +2692,7 @@ na przykład: alertnotify=echo %%s | mail -s "Alarm Bitcoin" admin@foo.com⏎ Connect only to the specified node(s) - Łącz tylko do wskazanego węzła + Łącz się tylko do wskazanego węzła/węzłów Connection options: @@ -2427,11 +2708,11 @@ na przykład: alertnotify=echo %%s | mail -s "Alarm Bitcoin" admin@foo.com⏎ Discover own IP address (default: 1 when listening and no -externalip) - Odkryj własny adres IP (domyślnie: 1 kiedy w trybie nasłuchu i brak -externalip ) + Wykryj własny adres IP (domyślnie: 1 kiedy w trybie nasłuchu i brak -externalip ) Do not load the wallet and disable wallet RPC calls - Nie ładuj portfela i wyłącz odwołania RPC + Nie ładuj portfela i wyłącz wywołania RPC portfela Do you want to rebuild the block database now? @@ -2439,7 +2720,7 @@ na przykład: alertnotify=echo %%s | mail -s "Alarm Bitcoin" admin@foo.com⏎ Error initializing block database - Błąd inicjowania bloku bazy danych + Błąd inicjowania bazy danych bloków Error initializing wallet database environment %s! @@ -2451,19 +2732,19 @@ na przykład: alertnotify=echo %%s | mail -s "Alarm Bitcoin" admin@foo.com⏎ Error opening block database - Błąd ładowania bazy bloków + Błąd otwierania bazy bloków - Error: Disk space is low! - Błąd: Mało miejsca na dysku! + Error: A fatal internal error occured, see debug.log for details + Błąd: Wystąpił krytyczny błąd wewnętrzny, sprawdź w debug.log - Error: Wallet locked, unable to create transaction! - Błąd: Zablokowany portfel, nie można utworzyć transakcji! + Error: Disk space is low! + Błąd: Mało miejsca na dysku! Failed to listen on any port. Use -listen=0 if you want this. - Próba otwarcia jakiegokolwiek portu nie powiodła się. Użyj -listen=0 jeśli tego chcesz. + Próba nasłuchiwania na jakimkolwiek porcie nie powiodła się. Użyj -listen=0 jeśli tego chcesz. Importing... @@ -2498,6 +2779,14 @@ na przykład: alertnotify=echo %%s | mail -s "Alarm Bitcoin" admin@foo.com⏎Określ plik portfela (w obrębie folderu danych) + This is intended for regression testing tools and app development. + Jest to przeznaczone dla narzędzi testowania regresji i rozwoju aplikacji. + + + Use UPnP to map the listening port (default: %u) + Użyj UPnP do przekazania portu nasłuchu (domyślnie : %u) + + Verifying blocks... Weryfikacja bloków... @@ -2522,6 +2811,10 @@ na przykład: alertnotify=echo %%s | mail -s "Alarm Bitcoin" admin@foo.com⏎Importuj bloki z zewnętrznego pliku blk000??.dat + Allow JSON-RPC connections from specified source. Valid for <ip> 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). This option can be specified multiple times + Pozwól na połączenia JSON-RPC z podanego źródła. Jako <ip> prawidłowe jest pojedyncze IP (np. 1.2.3.4), podsieć/maska (np. 1.2.3.4/255.255.255.0) lub sieć/CIDR (np. 1.2.3.4/24). Opcja ta może być użyta wiele razy. + + Cannot obtain a lock on data directory %s. Bitcoin Core is probably already running. Nie można uzyskać blokady na katalogu z danymi %s. Rdzeń Bitcoin najprawdopodobniej jest już uruchomiony. @@ -2530,10 +2823,18 @@ na przykład: alertnotify=echo %%s | mail -s "Alarm Bitcoin" admin@foo.com⏎Uruchom polecenie przy otrzymaniu odpowiedniego powiadomienia lub gdy zobaczymy naprawdę długie rozgałęzienie (%s w poleceniu jest podstawiane za komunikat) + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) + Ustaw maksymalny rozmiar transakcji o wysokim priorytecie/niskiej prowizji w bajtach (domyślnie: %d) + + Information Informacja + Initialization sanity check failed. Bitcoin Core is shutting down. + Wstępna kontrola poprawności nie powiodła się. Bitcoin Core wyłącza się. + + Invalid amount for -minrelaytxfee=<amount>: '%s' Nieprawidłowa kwota dla -minrelaytxfee=<amount>: '%s' @@ -2546,10 +2847,6 @@ na przykład: alertnotify=echo %%s | mail -s "Alarm Bitcoin" admin@foo.com⏎Opcje przekaźnikowe węzła: - Print block on startup, if found in block index - Wyświetlaj blok podczas uruchamiania, jeżeli znaleziono indeks bloków - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) Opcje RPC SSL: (odwiedź Bitcoin Wiki w celu uzyskania instrukcji) @@ -2563,7 +2860,7 @@ na przykład: alertnotify=echo %%s | mail -s "Alarm Bitcoin" admin@foo.com⏎ Randomly fuzz 1 of every <n> network messages - Losowo ignoruje 1 z wszystkich <n> wiadomości sieciowych. + Losowo miesza 1 z wszystkich <n> wiadomości sieciowych. Send trace/debug info to console instead of debug.log file @@ -2607,7 +2904,7 @@ na przykład: alertnotify=echo %%s | mail -s "Alarm Bitcoin" admin@foo.com⏎ Wallet needed to be rewritten: restart Bitcoin Core to complete - Portfel wymaga przepisania: zresetuj Bitcoina aby ukończyć + Portfel wymaga przepisania: zrestartuj Bitcoina aby ukończyć Warning @@ -2615,7 +2912,19 @@ na przykład: alertnotify=echo %%s | mail -s "Alarm Bitcoin" admin@foo.com⏎ Warning: This version is obsolete, upgrade required! - Uwaga: Ta wersja jest przestarzała, aktualizacja wymagana! + Uwaga: Ta wersja jest przestarzała, wymagana jest aktualizacja! + + + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + Uwaga: Zignorowano nieprawidłowy argument -benchmark, użyj -debug=bench. + + + Warning: Unsupported argument -debugnet ignored, use -debug=net. + Uwaga: Zignorowano nieprawidłowy argument -debugnet , użyj -debug=net. + + + Zapping all transactions from wallet... + Usuwam wszystkie transakcje z portfela... on startup @@ -2639,7 +2948,7 @@ na przykład: alertnotify=echo %%s | mail -s "Alarm Bitcoin" admin@foo.com⏎ Rescan the block chain for missing wallet transactions - Przeskanuj blok łańcuchów żeby znaleźć zaginione transakcje portfela + Przeskanuj łańcuch bloków w poszukiwaniu zaginionych transakcji portfela Use OpenSSL (https) for JSON-RPC connections @@ -2662,14 +2971,126 @@ na przykład: alertnotify=echo %%s | mail -s "Alarm Bitcoin" admin@foo.com⏎Błąd ładowania wallet.dat: Uszkodzony portfel + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + Utrzymuj pełny indeks transakcji, używany przy wywołaniu RPC getrawtransaction (domyślnie: %u) + + + (default: %s) + (domyślnie: %s) + + Error loading wallet.dat Błąd ładowania wallet.dat + Force safe mode (default: %u) + Wymuś tryb bezpieczny (domyślnie: %u) + + + Generate coins (default: %u) + Generuj monety (domyślnie: %u) + + + How many blocks to check at startup (default: %u, 0 = all) + Ile bloków sprawdzić przy starcie (domyślnie: %u, 0 = wszystkie) + + + Include IP addresses in debug output (default: %u) + Dołącz adresy IP do logowania (domyślnie: %u) + + Invalid -proxy address: '%s' Nieprawidłowy adres -proxy: '%s' + Limit size of signature cache to <n> entries (default: %u) + Ogranicz rozmiar pamięci podręcznej sygnatur do <n> wpisów (domyślnie: %u) + + + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + Nasłuchuj połączeń JSON-RPC na <port> (domyślnie: %u lub testnet: %u) + + + Listen for connections on <port> (default: %u or testnet: %u) + Nasłuchuj połączeń na <port> (domyślnie: %u lub testnet: %u) + + + Maintain at most <n> connections to peers (default: %u) + Utrzymuj maksymalnie <n> połączeń z węzłami (domyślnie: %u) + + + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + Maksymalny bufor odbioru na połączenie, <n>*1000 bajtów (domyślnie: %u) + + + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + Maksymalny bufor wysyłania na połączenie, <n>*1000 bajtów (domyślnie: %u) + + + Only accept block chain matching built-in checkpoints (default: %u) + Akceptuj tylko łańcuch bloków zgodny z wbudowanymi punktami kontrolnymi (domyślnie: %u) + + + Prepend debug output with timestamp (default: %u) + Dołączaj znacznik czasu do logowania (domyślnie: %u) + + + Relay and mine data carrier transactions (default: %u) + Przekazuj i wydobywaj transakcje zawierające dane (domyślnie: %u) + + + Relay non-P2SH multisig (default: %u) + Przekazuj transakcje multisig inne niż P2SH (domyślnie: %u) + + + Run a thread to flush wallet periodically (default: %u) + Uruchom wątek do okresowego zapisywania portfela (domyślnie: %u) + + + Server certificate file (default: %s) + Plik certyfikatu serwera (domyślnie: %s) + + + Server private key (default: %s) + Klucz prywatny serwera (domyślnie: %s) + + + Set key pool size to <n> (default: %u) + Ustaw rozmiar puli kluczy na <n> (domyślnie: %u) + + + Set minimum block size in bytes (default: %u) + Ustaw minimalny rozmiar bloku w bajtach (domyślnie: %u) + + + Set the number of threads to service RPC calls (default: %d) + Ustaw liczbę wątków do obsługi RPC (domyślnie: %d) + + + Specify configuration file (default: %s) + Wskaż plik konfiguracyjny (domyślnie: %s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + Wskaż czas oczekiwania na połączenie w milisekundach (minimum: 1, domyślnie: %d) + + + Specify pid file (default: %s) + Wskaż plik pid (domyślnie: %s) + + + Spend unconfirmed change when sending transactions (default: %u) + Wydawaj niepotwierdzoną resztę podczas wysyłania transakcji (domyślnie: %u) + + + Stop running after importing blocks from disk (default: %u) + Zatrzymaj po zaimportowaniu bloków z dysku (domyślnie: %u) + + + Threshold for disconnecting misbehaving peers (default: %u) + Próg, po którym nastąpi rozłączenie węzłów nietrzymających się zasad (domyślnie: %u) + + Unknown network specified in -onlynet: '%s' Nieznana sieć w -onlynet: '%s' @@ -2686,10 +3107,6 @@ na przykład: alertnotify=echo %%s | mail -s "Alarm Bitcoin" admin@foo.com⏎Nieprawidłowa kwota dla -paytxfee=<amount>: '%s' - Invalid amount - Nieprawidłowa kwota - - Insufficient funds Niewystarczające środki @@ -2699,7 +3116,7 @@ na przykład: alertnotify=echo %%s | mail -s "Alarm Bitcoin" admin@foo.com⏎ Add a node to connect to and attempt to keep the connection open - Dodaj węzeł do łączenia się and attempt to keep the connection open + Dodaj węzeł do podłączenia się i próbuj utrzymać to połączenie Loading wallet... @@ -2722,10 +3139,6 @@ na przykład: alertnotify=echo %%s | mail -s "Alarm Bitcoin" admin@foo.com⏎Wczytywanie zakończone - To use the %s option - Aby użyć opcji %s - - Error Błąd diff --git a/src/qt/locale/bitcoin_pt_BR.ts b/src/qt/locale/bitcoin_pt_BR.ts index b5b8e3e5d3e..1639bc1c3b5 100644 --- a/src/qt/locale/bitcoin_pt_BR.ts +++ b/src/qt/locale/bitcoin_pt_BR.ts @@ -2,12 +2,12 @@ AddressBookPage - Double-click to edit address or label - Duplo-clique para editar o endereço ou o rótulo + Right-click to edit address or label + Clique com o botão direito para editar o endereço ou rótulo Create a new address - Criar um novo endereço + Criar novo endereço &New @@ -572,6 +572,14 @@ Endereço: %4 Quantidade + Received with label + Recebido com rótulo + + + Received with address + Recebido com endereço + + Date Data @@ -1034,6 +1042,14 @@ Endereço: %4 Mapear porta usando &UPnP + Connect to the Bitcoin network through a SOCKS5 proxy. + Conectar na rede Bitcoin através de um proxy SOCKS5. + + + &Connect through SOCKS5 proxy (default proxy): + &Conectar usando proxy SOCKS5 (proxy pradrão): + + Proxy &IP: &IP do proxy: @@ -1181,10 +1197,26 @@ Endereço: %4 Sua balança atual em endereços apenas visualizados + Spendable: + Disponível: + + Recent transactions Transações recentes + Unconfirmed transactions to watch-only addresses + Transações não confirmadas de um endereço monitorado + + + Mined balance in watch-only addresses that has not yet matured + Saldo minerado de endereço monitorado ainda não foi implementado + + + Current total balance in watch-only addresses + Balanço total em endereços monitorados + + out of sync fora de sincronia @@ -1240,10 +1272,22 @@ Endereço: %4 Reembolso de %1 + Payment request %2 is too large (%3 bytes, allowed %4 bytes). + Solicitação de pagamento %2 muito grande (%3 bytes, %4 bytes permitido). + + + Payment request DoS protection + Pagamento requer proteção DoS + + Error communicating with %1: %2 Erro na comunicação com %1: %2 + Payment request cannot be parsed! + Requisição de pagamento não pode ser analisado! + + Bad response from server %1 Resposta incorreta do servidor %1 @@ -1259,8 +1303,16 @@ Endereço: %4 PeerTableModel + User Agent + User Agent + + + Address/Hostname + Endereço/Hostname + + Ping Time - Tempo de Ping + Ping @@ -1357,7 +1409,11 @@ Endereço: %4 Using OpenSSL version - Usando OpenSSL versão + Versão do OpenSSL + + + Using BerkeleyDB version + Versão do BerkeleyDB Startup time @@ -1396,6 +1452,10 @@ Endereço: %4 &Pares + Select a peer to view detailed information. + Selecione um cliente para ver informações detalhadas. + + Direction Direção @@ -1404,14 +1464,30 @@ Endereço: %4 Versão + User Agent + User Agent + + Services Serviços + Starting Height + Altura inicial + + + Sync Height + Altura sincronizada + + Ban Score Banir pontuação + Connection Time + Tempo de conexão + + Last Send Ultimo Envio @@ -1425,11 +1501,11 @@ Endereço: %4 Bytes Received - bytes Recebidos + Bytes recebidos Ping Time - Tempo de Ping + Ping Last block time @@ -1527,7 +1603,11 @@ Endereço: %4 Unknown Desconhecido - + + Fetching... + Buscando... + + ReceiveCoinsDialog @@ -1701,11 +1781,11 @@ Endereço: %4 SendCoinsDialog Send Coins - Enviar dinheiro + Enviar moedas Coin Control Features - Opções de Controle da Moeda + Opções de controle de moeda Inputs... @@ -1745,7 +1825,7 @@ Endereço: %4 Change: - trocar + troco If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. @@ -1756,6 +1836,54 @@ Endereço: %4 Endereço específico de troco + Transaction Fee: + Taxa de transação: + + + Choose... + Escolha: + + + Minimize + Minimizar + + + per kilobyte + por kilobyte + + + Recommended: + Recomendado: + + + Custom: + Personalizado: + + + (Smart fee not initialized yet. This usually takes a few blocks...) + (Smart fee não iniciado. Isso requer alguns blocos...) + + + Confirmation time: + Tempo de confirmação: + + + normal + normal + + + fast + rápido + + + Send as zero-fee transaction if possible + Enviar sem taxa de transação se possível + + + (confirmation may take longer) + (confirmação pode demorar) + + Send to multiple recipients at once Enviar para vários destinatários de uma só vez @@ -1789,7 +1917,7 @@ Endereço: %4 Confirm send coins - Confirmar envio de dinheiro + Confirmar envio de moedas %1 to %2 @@ -1860,6 +1988,18 @@ Endereço: %4 A transação foi rejeitada! Isso pode acontecer se alguns bitcoins na sua carteira já foram gastos em outro local, por exemplo se você tiver uma cópia do wallet.dat e os bitcoins tiverem sido gastos na cópia mas não marcados como gastos aqui ainda. + A fee higher than %1 is considered an insanely high fee. + Uma taxa acima de %1 é considerada uma taxa insanamente alta. + + + Pay only the minimum fee of %1 + Pagar somente a taxa mínima de %1 + + + Estimated to begin confirmation within %1 block(s). + Confirmação estimada em %1 bloco(s) + + Warning: Invalid Bitcoin address Atenção: endereço de Bitcoin inválido @@ -1912,7 +2052,7 @@ Endereço: %4 The Bitcoin address to send the payment to - O enderesso Bitcoin que enviarár o pagamento + Endereço que enviará o pagamento Alt+A @@ -1967,7 +2107,7 @@ Endereço: %4 Do not shut down the computer until this window disappears. - Não desligue o computador até esta janela desaparece. + Não desligue o computador até esta janela desapareça. @@ -2243,7 +2383,7 @@ Endereço: %4 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. - Bitcoins recém minerados precisam aguardar %1 blocos antes de serem gastos. Quando o bloco foi gerado, ele foi disseminado pela rede para ser adicionado à cadeia de blocos: blockchain. Se ele falhar em ser inserido na cadeia, seu estado será modificado para "não aceito" e ele não poderá ser gasto. Isso pode acontecer eventualmente quando blocos são gerados quase que simultaneamente. + Bitcoins recém minerados precisam aguardar %1 blocos antes de serem gastos. Quando o bloco foi gerado, ele foi disseminado pela rede para ser adicionado à blockchain. Se ele falhar em ser inserido na cadeia, seu estado será modificado para "não aceito" e ele não poderá ser gasto. Isso pode acontecer eventualmente quando blocos são gerados quase que simultaneamente. Debug information @@ -2349,11 +2489,11 @@ Endereço: %4 Received with - Recebido por + Recebido Received from - Recebido de + Recebido Sent to @@ -2428,7 +2568,7 @@ Endereço: %4 Received with - Recebido por + Recebido Sent to @@ -2541,7 +2681,11 @@ Endereço: %4 UnitDisplayStatusBarControl - + + Unit to show amounts in. Click to select another unit. + Unidade para mostrar. Clique para selecionar outra unidade. + + WalletFrame @@ -2626,44 +2770,20 @@ Endereço: %4 Aceitar conexões externas (padrão: 1 se opções -proxy ou -connect não estiverem presentes) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, você deve especificar uma senha rpcpassword no arquivo de configuração:⏎ -%s⏎ -É recomendado que você use a seguinte senha aleatória:⏎ -rpcuser=bitcoinrpc⏎ -rpcpassword=%s⏎ -(você não precisa lembrar esta senha)⏎ -O nome de usuário e a senha NÃO PODEM ser os mesmos.⏎ -Se o arquivo não existir, crie um com permissão de leitura apenas para o dono.⏎ -É recomendado também definir um alertnotify para que você seja notificado de problemas;⏎ -por exemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com⏎ - - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 Vincular ao endereço fornecido e sempre escutar nele. Use a notação [host]:port para IPv6 - Enter regression test mode, which uses a special chain in which blocks can be solved instantly. - Entra no modo de teste de regressão, que usa uma cadeia especial onde os blocos podem ser resolvidos instantaneamente. + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + Apaga todas as transações da carteira e somente recupera essas partes da blockchain usando o comando -rescan na inicialização - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Erro: A transação foi rejeitada. Isso pode acontecer se alguns dos bitcoins de sua carteira já haviam sido gastos, por exemplo se você usou uma cópia do arquivo wallet.dat e alguns bitcoins foram gastos na cópia mas não foram marcados como gastos aqui. + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + Distribuido sob a licença MIT software license. Veja os termos em <http://www.opensource.org/licenses/mit-license.php>. - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - Erro: Esta transação requer uma taxa de transação de pelo menos %s, por causa sua quantidade, complexidade ou uso de dinheiro recebido recentemente. + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + Entra no modo de teste de regressão, que usa uma cadeia especial onde os blocos podem ser resolvidos instantaneamente. Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) @@ -2774,10 +2894,6 @@ por exemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com⏎ Erro: Espaço em disco insuficiente! - Error: Wallet locked, unable to create transaction! - Erro: Carteira bloqueada, impossível criar transação! - - Failed to listen on any port. Use -listen=0 if you want this. Falha ao escutar em qualquer porta. Use -listen=0 se você quiser isso. @@ -2802,6 +2918,10 @@ por exemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com⏎ Decriptadores de arquivos disponíveis insuficientes. + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + Somente conectar a clientes na rede <net> (ipv4, ipv6 ou onion) + + Rebuild block chain index from current blk000??.dat files Reconstruir índice de blockchain a partir dos arquivos atuais blk000??.dat @@ -2822,6 +2942,10 @@ por exemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com⏎ Isso é usado para testes de regressão e ferramentas de desenvolvimento. + Use UPnP to map the listening port (default: %u) + Use UPnP para mapear a porta de entrada (padrão: %u) + + Verifying blocks... Verificando blocos... @@ -2835,27 +2959,31 @@ por exemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com⏎ Wallet options: - Opções da Carteira: + Opções da carteira: You need to rebuild the database using -reindex to change -txindex - Você precisa reconstruir o banco de dados utilizando-reindexar a mudar-txindex + Você precisa reconstruir o banco de dados utilizando -reindex Imports blocks from external blk000??.dat file Importar blocos de um arquivo externo blk000??.dat + Allow JSON-RPC connections from specified source. Valid for <ip> 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). This option can be specified multiple times + Permitir conexões JSON-RPC de uma fonte específica. Válido para um único ip (ex. 1.2.3.4), até uma rede/máscara (ex. 1.2.3.4/255.255.255.0) ou uma rede/CIDR (ex. 1.2.3.4/24). Esta opção pode ser usada múltiplas vezes + + An error occurred while setting up the RPC address %s port %u for listening: %s Um erro ocorreu enquanto configurando o endereço RPC %s porta %u para escuta: %s Cannot obtain a lock on data directory %s. Bitcoin Core is probably already running. - Não foi possível obter proteção exclusiva ao diretório de dados %s. Bitcoin Core já está sendo executado provavelmente. + Não foi possível obter acesso exclusivo ao diretório de dados %s. Bitcoin Core já está sendo executado provavelmente. Error: Listening for incoming connections failed (listen returned error %s) - Erro: Escutar por conexões de entrada falhou (escutar retornou erro %s) + Erro: Aceitar conexões de entrada falhou (retornou erro %s) Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) @@ -2874,6 +3002,30 @@ por exemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com⏎ Define o tamanho máximo de alta-prioridade por taxa baixa nas transações em bytes (padrão: %d) + To use bitcoind, or the -server option to bitcoin-qt, you must set an rpcpassword in the configuration file: +%s +It is recommended you use the following random password: +rpcuser=bitcoinrpc +rpcpassword=%s +(you do not need to remember this password) +The username and password MUST NOT be the same. +If the file does not exist, create it with owner-readable-only file permissions. +It is also recommended to set alertnotify so you are notified of problems; +for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + Para usar o bitcoind, ou a opção -server do bitcoin-qt, você deve definir rpcpassword no arquivo de configuração: +%s +É recomendado que use a seguinte senha randômica: +rpcuser=bitcoinrpc +rpcpassword=%s +(você não precisa lembrar esta senha) +O usuário e senha NÃO DEVEM ser os mesmos. +Se o arquivo não existir, crie com permissão de proprietário criador somente. +É também recomendado definir a opção alertnotify se deseja ser notificado de problemas; +por exemplo: alertnotify=echo %%s | mail -s "Alerta do Bitcoin" admin@foo.com.br + + + Cannot resolve -whitebind address: '%s' Impossível resolver endereço -whitebind: '%s' @@ -2890,6 +3042,14 @@ por exemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com⏎ Impossível interpretar o valor -rpcbind %s como um endereço da rede + Error loading wallet.dat: Wallet requires newer version of Bitcoin Core + Erro carregando wallet.dat: A carteira requer a nova versão do Bitcoin Core + + + Error: Unsupported argument -tor found, use -onion. + Erro: Argumento não suportado -tor, use -onion. + + Fee (in BTC/kB) to add to transactions you send (default: %s) Taxa (em BTC/kB) a adicionar nas transações que você envia (padrão: %s) @@ -2898,6 +3058,10 @@ por exemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com⏎ Informação + Invalid amount for -maxtxfee=<amount>: '%s' + Quantidade inválida para -maxtxfee=<quantidade>: '%s' + + Invalid amount for -minrelaytxfee=<amount>: '%s' Quantidade inválida para -minrelaytxfee=<amount>: '%s' @@ -2914,18 +3078,10 @@ por exemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com⏎ Máscara de rede especificada em -whitelist: '%s' é inválida - Keep at most <n> unconnectable blocks in memory (default: %u) - Manter no máximo <n> blocos pendentes em memória (padrão: %u) - - Need to specify a port with -whitebind: '%s' Necessário informar uma porta com -whitebind: '%s' - Print block on startup, if found in block index - Imprime bloco ao iniciar, se encontrado no índice de blocos - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) Opções RPC SSL: (veja o Bitcoin Wiki para instruções de configuração SSL) @@ -2970,6 +3126,10 @@ por exemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com⏎ As quantidades das transações devem ser positivas. + Transaction too large for fee policy + Transação muito grande para enviar sem taxa + + Transaction too large Transação muito larga @@ -3046,14 +3206,42 @@ por exemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com⏎ Erro ao carregar wallet.dat: Carteira corrompida + (default: %s) + (padrão: %s) + + Error loading wallet.dat Erro ao carregar wallet.dat + Force safe mode (default: %u) + Forçar modo seguro (default: %u) + + + Generate coins (default: %u) + Gerar moedas (padrão: %u) + + + Include IP addresses in debug output (default: %u) + Incluir endereço IP na saída de debug (padrão: %u) + + Invalid -proxy address: '%s' Endereço -proxy inválido: '%s' + Limit size of signature cache to <n> entries (default: %u) + Tamanho limite do cache de assinaturas de <n> entradas (padrão: %u) + + + Listen for connections on <port> (default: %u or testnet: %u) + Aguardar por conexões na porta <port> (padrão: %u ou testnet: %u) + + + Server private key (default: %s) + Chave privada do servidor (padrão: %s) + + Specify pid file (default: %s) Especificar aqrquivo pid (default: %s) @@ -3074,10 +3262,6 @@ por exemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com⏎ Quantidade inválida para -paytxfee=<quantidade>: '%s' - Invalid amount - Quantidade inválida - - Insufficient funds Saldo insuficiente @@ -3110,10 +3294,6 @@ por exemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com⏎ Carregamento terminado - To use the %s option - Para usar a opção %s - - Error Erro diff --git a/src/qt/locale/bitcoin_pt_PT.ts b/src/qt/locale/bitcoin_pt_PT.ts index dd0d8823f6f..757002bf443 100644 --- a/src/qt/locale/bitcoin_pt_PT.ts +++ b/src/qt/locale/bitcoin_pt_PT.ts @@ -2,8 +2,8 @@ AddressBookPage - Double-click to edit address or label - Clique duas vezes para editar o endereço ou o rótulo + Right-click to edit address or label + Clique direito para editar endereço ou rótulo Create a new address @@ -43,7 +43,7 @@ &Delete - E&liminar\ + &Eliminar\ Choose the address to send coins to @@ -520,6 +520,10 @@ Endereço: %4 CoinControlDialog + Coin Selection + Seleção de moeda + + Quantity: Quantidade: @@ -540,6 +544,10 @@ Endereço: %4 Taxa: + Dust: + Lixo: + + After Fee: Depois da Taxa: @@ -564,6 +572,14 @@ Endereço: %4 Quantia + Received with label + Recebido com rótulo + + + Received with address + Recebido com endereço + + Date Data @@ -624,6 +640,10 @@ Endereço: %4 Copiar prioridade + Copy dust + Copiar lixo + + Copy change Copiar alteração @@ -672,6 +692,10 @@ Endereço: %4 nenhum + Can vary +/- %1 satoshi(s) per input. + Pode variar +/- %1 satoshi(s) por entrada + + yes sim @@ -837,6 +861,10 @@ Endereço: %4 Iniciar minimizado + Set SSL root certificates for payment request (default: -system-) + Configurar certificados SSL root para pedido de pagamento (default: -system-) + + Show splash screen on startup (default: 1) Mostrar imagem ao iniciar (por defeito: 1) @@ -876,6 +904,10 @@ Endereço: %4 Bitcoin Core + Error: Specified data directory "%1" cannot be created. + Erro: Pasta de dados especificada como "%1, não pode ser criada. + + Error Erro @@ -942,10 +974,27 @@ Endereço: %4 Número de processos de &verificação de scripts + Accept connections from outside + Aceitar conceções externas + + + Allow incoming connections + Permitir conexão + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) Endereço IP do proxy (p.ex. IPv4: 127.0.0.1 / IPv6: ::1) + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. + URLs de outrem (ex. um explorador de blocos) que aparece no separador de transações como itens do menu de contexto. +%s do URL é substituído por hash de transação. Vários URLs são separados por barra vertical |. + + + Third party transaction URLs + URLs de transação de outrem + + Active command-line options that override above options: Opções de linha de comandos ativas que se sobrepõem ás opções anteriores: @@ -962,6 +1011,10 @@ Endereço: %4 &Rede + (0 = auto, <0 = leave that many cores free) + (0 = auto, <0 = Deixar essa quantidade de núcleos livre) + + W&allet C&arteira @@ -990,6 +1043,14 @@ Endereço: %4 Mapear porta usando &UPnP + Connect to the Bitcoin network through a SOCKS5 proxy. + Conectar à rede da Bitcoin através dum proxy SOCLS5. + + + &Connect through SOCKS5 proxy (default proxy): + &Ligar através dum proxy SOCKS5 (proxy por defeito): + + Proxy &IP: &IP do proxy: @@ -1093,6 +1154,10 @@ Endereço: %4 A informação mostrada poderá estar desatualizada. A sua carteira sincroniza automaticamente com a rede Bitcoin depois de estabelecer ligação, mas este processo ainda não está completo. + Watch-only: + Apenas observar: + + Available: Disponível: @@ -1117,6 +1182,10 @@ Endereço: %4 O saldo minado ainda não amadureceu + Balances + Balanços + + Total: Total: @@ -1125,6 +1194,14 @@ Endereço: %4 O seu saldo total actual + Your current balance in watch-only addresses + O seu balanço atual em endereços de apenas observação + + + Spendable: + Dispensável: + + Recent transactions transações recentes @@ -1616,6 +1693,10 @@ Endereço: %4 Limpar todos os campos do formulário. + Dust: + Lixo: + + Clear &All &Limpar Tudo @@ -1716,6 +1797,10 @@ Endereço: %4 Aviso: Endereço de troco desconhecido + Copy dust + Copiar lixo + + Are you sure you want to send? Tem a certeza que deseja enviar? @@ -2434,29 +2519,6 @@ Endereço: %4 Aceitar ligações externas (padrão: 1 sem -proxy ou -connect) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, deverá definir uma rpcpassword no ficheiro de configuração: -%s -É recomendado que use a seguinte palavra-passe aleatória: -rpcuser=bitcoinrpc -rpcpassword=%s -(não é necessário lembrar esta palavra-passe) -O nome de utilizador e palavra-passe NÃO PODEM ser iguais. -Se o ficheiro não existir, crie-o com permissões de leitura apenas para o dono. -Também é recomendado definir um alertnotify para que seja alertado sobre problemas; -por exemplo: alertnotify=echo %%s | mail -s "Alerta Bitcoin" admin@foo.com - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 Associar a endereço específico e escutar sempre nele. Use a notação [anfitrião]:porta para IPv6 @@ -2465,14 +2527,6 @@ por exemplo: alertnotify=echo %%s | mail -s "Alerta Bitcoin" admin@foo.comEntre no modo de teste de regressão, que usa uma cadeia especial cujos blocos podem ser resolvidos instantaneamente. - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Erro: A transação foi rejeitada! Isso poderá acontecer se algumas das moedas na sua carteira já tiverem sido gastas, se por exemplo tiver usado uma cópia do ficheiro wallet.dat e as moedas tiverem sido gastas na cópia mas não tiverem sido marcadas como gastas aqui. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - Erro: Esta transação requer uma taxa de transação mínima de %s devido á sua quantia, complexidade, ou uso de fundos recebidos recentemente! - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Executar comando quando uma das transações na carteira mudar (no comando, %s é substituído pelo ID da Transação) @@ -2557,10 +2611,6 @@ por exemplo: alertnotify=echo %%s | mail -s "Alerta Bitcoin" admin@foo.comErro: Pouco espaço em disco! - Error: Wallet locked, unable to create transaction! - Erro: Carteira bloqueada, incapaz de criar transação! - - Failed to listen on any port. Use -listen=0 if you want this. Falhou a escutar em qualquer porta. Use -listen=0 se quiser isto. @@ -2757,10 +2807,6 @@ por exemplo: alertnotify=echo %%s | mail -s "Alerta Bitcoin" admin@foo.comQuantia inválida para -paytxfee=<amount>: '%s' - Invalid amount - Quantia inválida - - Insufficient funds Fundos insuficientes @@ -2793,10 +2839,6 @@ por exemplo: alertnotify=echo %%s | mail -s "Alerta Bitcoin" admin@foo.comCarregamento completo - To use the %s option - Para usar a opção %s - - Error Erro diff --git a/src/qt/locale/bitcoin_ro_RO.ts b/src/qt/locale/bitcoin_ro_RO.ts index 81342c5dbc7..abeaf82e83a 100644 --- a/src/qt/locale/bitcoin_ro_RO.ts +++ b/src/qt/locale/bitcoin_ro_RO.ts @@ -2,8 +2,8 @@ AddressBookPage - Double-click to edit address or label - Dublu-click pentru a edita adresa sau eticheta + Right-click to edit address or label + Click-dreapta pentru a edita adresa sau eticheta Create a new address @@ -43,7 +43,7 @@ &Delete - Ște&rge + &Șterge Choose the address to send coins to @@ -93,7 +93,11 @@ Exporting Failed Exportare esuata - + + There was an error trying to save the address list to %1. Please try again. + A apărut o eroare încercând să se salveze lista de adrese la %1. Vă rugăm să încercați din nou. + + AddressTableModel @@ -180,6 +184,10 @@ Portofel criptat + 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>. + Introduceţi noua parolă a portofelului electronic.<br/>Vă rugăm să folosiţi o parolă de<b>minimum 10 caractere aleatoare</b>, sau <b>minimum 8 cuvinte</b>. + + 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. Bitcoin se va închide acum pentru a termina procesul de criptare. Ține minte că criptarea portofelului nu te poate proteja în totalitate de furtul monedelor de către programe dăunătoare care îți infectează calculatorul. @@ -287,6 +295,10 @@ Vizitaţi &URI... + Bitcoin Core client + Clientul Bitcoin Core + + Importing blocks from disk... Importare blocks de pe disk... @@ -339,6 +351,10 @@ &Primește + Show information about Bitcoin Core + Arată informații despre Bitcoin Core + + &Show / Hide Arata/Ascunde @@ -430,6 +446,10 @@ %1 and %2 %1 si %2 + + %n year(s) + %n an%n ani%n ani + %1 behind %1 în urmă @@ -458,6 +478,10 @@ Up to date Actualizat + + Processed %n blocks of transaction history. + S-a procesat %n bloc din istoricul tranzacțiilor.S-au procesat %n blocuri din istoricul tranzacțiilor.S-au procesat %n blocuri din istoricul tranzacțiilor. + Catching up... Se actualizează... @@ -501,6 +525,10 @@ Adresa: %4 CoinControlDialog + Coin Selection + Selectarea monezii + + Quantity: Cantitate: @@ -545,6 +573,14 @@ Adresa: %4 Sumă + Received with label + Primite cu eticheta + + + Received with address + Primite cu adresa + + Date Data @@ -649,6 +685,10 @@ Adresa: %4 nimic + Can vary +/- %1 satoshi(s) per input. + Poate varia +/- %1 satoshi pentru fiecare intrare. + + yes da @@ -844,7 +884,15 @@ Adresa: %4 Error Eroare - + + %n GB of free space available + %n GB de spațiu liber disponibil%n GB de spațiu liber disponibil%n GB de spațiu liber disponibil + + + (of %n GB needed) + (din %n GB necesar)(din %n GB necesari)(din %n GB necesari) + + OpenURIDialog @@ -891,6 +939,10 @@ Adresa: %4 MB + Accept connections from outside + Acceptă conexiuni din exterior + + Reset all client options to default. Resetează toate setările clientului la valorile implicite. @@ -903,10 +955,18 @@ Adresa: %4 &Retea + W&allet + Portofel + + Expert expert + Enable coin &control features + Activare caracteristici de control ale monedei + + Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. Deschide automat în router portul aferent clientului Bitcoin. Funcţionează doar în cazul în care routerul e compatibil UPnP şi opţiunea e activată. @@ -1042,6 +1102,10 @@ Adresa: %4 Balanta minata care nu s-a maturizat inca + Balances + Balanţă + + Total: Total: @@ -1050,6 +1114,14 @@ Adresa: %4 Balanța totală curentă + Spendable: + Cheltuibil: + + + Recent transactions + Tranzacţii recente + + out of sync Nu este sincronizat @@ -1111,6 +1183,10 @@ Adresa: %4 Sumă + %1 d + %1 d + + %1 h %1 h @@ -1119,10 +1195,18 @@ Adresa: %4 %1 m + %1 s + %1 s + + N/A N/A - + + %1 ms + %1 ms + + QRImageWidget @@ -1197,6 +1281,26 @@ Adresa: %4 Numărul curent de blocuri + Received + Primit + + + Sent + Trimis + + + Direction + Direcţie + + + Version + Versiunea + + + Services + Servicii + + Last block time Data ultimului bloc @@ -1272,6 +1376,14 @@ Adresa: %4 %1 GB %1 GB + + via %1 + via %1 + + + Unknown + Necunoscut + ReceiveCoinsDialog @@ -1433,6 +1545,10 @@ Adresa: %4 Trimite monede + Coin Control Features + Caracteristici de control ale monedei + + Inputs... Intrări @@ -1473,6 +1589,22 @@ Adresa: %4 Schimbaţi: + Minimize + Minimizare + + + Custom: + Personalizat: + + + normal + normal + + + fast + rapid + + Send to multiple recipients at once Trimite simultan către mai mulți destinatari @@ -1831,6 +1963,10 @@ Adresa: %4 Deschis până la %1 + conflicted + în conflict + + %1/offline %1/deconectat @@ -1895,6 +2031,14 @@ Adresa: %4 Debit + Total debit + Total debit + + + Total credit + Total credit + + Transaction fee Comisionul tranzacţiei @@ -2009,6 +2153,10 @@ Adresa: %4 Confirmare (%1 dintre %2 confirmări recomandate) + Conflicted + În conflict + + Received with Recepționat cu @@ -2279,43 +2427,10 @@ Adresa: %4 Acceptă conexiuni din afară (implicit: 1 dacă nu se folosește -proxy sau -connect) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s trebuie sa setezi o parola rpc in fisierul de configurare -%s -Este recomandat sa folosesti aceasta parola aleatorie: -rpcuser=bitcoinrpc -parola rpc=%s -(nu este necesar ca sa iti amintesti aceasta parola) -Numele de utilizator si parola NU trebuie sa fie la fel. -Daca fisierul nu exista, creaza-l cu fisier de citit permis doar proprietarului. -Este de asemenea recomandat sa setezi alerta de notificare ca sa primesti notificari ale problemelor; -spre exemplu: alertnotify=echo %%s | mail -s "Alerta Bitcoin" admin@foo.com - - - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 Atasati adresei date si ascultati totdeauna pe ea. Folositi [host]:port notatia pentru IPv6 - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Eroare: Tranzactia a fost respinsa! Acest lucru se poate intampla daca anumite monezi din portofelul dumneavoastra au fost deja cheltuite, deasemenea daca ati folosit o copie a fisierului wallet.dat si monezile au fost folosite in acea copie dar nu au fost marcate ca fiind folosite acolo. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - Eroare: Aceasta tranzactie necesita o taxa de cel putin %s din cauza sumei, complexitatii sau folosirii fondurilor recent primite! - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Executati comanda cand o tranzactie a portofelului se schimba (%s in cmd este inlocuit de TxID) @@ -2344,6 +2459,10 @@ spre exemplu: alertnotify=echo %%s | mail -s "Alerta Bitcoin" admin@foo.com Atentie: fisierul wallet.dat este corupt, date salvate! Fisierul original wallet.dat a fost salvat ca wallet.{timestamp}.bak in %s; daca balansul sau tranzactiile sunt incorecte ar trebui sa restaurati dintr-o copie de siguranta. + (default: 1) + (iniţial: 1) + + <category> can be: <category> poate fi: @@ -2360,6 +2479,10 @@ spre exemplu: alertnotify=echo %%s | mail -s "Alerta Bitcoin" admin@foo.com Conecteaza-te doar la nod(urile) specifice + Connection options: + Opţiuni conexiune: + + Corrupted block database detected Baza de date 'bloc' defectată a fost detectată @@ -2392,14 +2515,14 @@ spre exemplu: alertnotify=echo %%s | mail -s "Alerta Bitcoin" admin@foo.com Eroare: Spațiu pe disc redus! - Error: Wallet locked, unable to create transaction! - Eroare: Portofel blocat, nu se poate crea o tranzacție! - - Failed to listen on any port. Use -listen=0 if you want this. Am esuat ascultarea pe orice port. Folositi -listen=0 daca vreti asta. + Importing... + Importare... + + Incorrect or no genesis block found. Wrong datadir for network? Incorect sau nici un bloc de Geneza găsite. Directorul de retea greşit? @@ -2468,8 +2591,8 @@ spre exemplu: alertnotify=echo %%s | mail -s "Alerta Bitcoin" admin@foo.com Suma invalida pentru -mintxfee=<suma>: '%s' - Print block on startup, if found in block index - Publica bloc la pornire daca exista in index-ul de blocuri. + RPC server options: + Opțiuni server RPC: Send trace/debug info to console instead of debug.log file @@ -2580,10 +2703,6 @@ spre exemplu: alertnotify=echo %%s | mail -s "Alerta Bitcoin" admin@foo.com Suma nevalidă pentru -paytxfee=<amount>: '%s' - Invalid amount - Sumă nevalidă - - Insufficient funds Fonduri insuficiente @@ -2616,10 +2735,6 @@ spre exemplu: alertnotify=echo %%s | mail -s "Alerta Bitcoin" admin@foo.com Încărcare terminată - To use the %s option - Pentru a folosi opțiunea %s - - Error Eroare diff --git a/src/qt/locale/bitcoin_ru.ts b/src/qt/locale/bitcoin_ru.ts index 55986d40924..ec533b233c4 100644 --- a/src/qt/locale/bitcoin_ru.ts +++ b/src/qt/locale/bitcoin_ru.ts @@ -2,8 +2,8 @@ AddressBookPage - Double-click to edit address or label - Для того, чтобы изменить адрес или метку, дважды кликните по изменяемому объекту + Right-click to edit address or label + Клик правой кнопкой для редактирования адреса или метки Create a new address @@ -412,7 +412,7 @@ &Command-line options - &Пармаетры командной строки + &Параметры командной строки Show the Bitcoin Core help message to get a list with possible Bitcoin command-line options @@ -1285,6 +1285,14 @@ Address: %4 Возврат от %1 + Payment request %2 is too large (%3 bytes, allowed %4 bytes). + Запрос платежа %2 слишком большой (%3 байтов, разрешено %4 байтов). + + + Payment request DoS protection + DoS-защита запроса платежа + + Error communicating with %1: %2 Ошибка связи с %1: %2 @@ -1450,7 +1458,7 @@ Address: %4 Sent - посланный + Отправлено &Peers @@ -2795,30 +2803,6 @@ Address: %4 Принимать подключения извне (по умолчанию: 1, если не используется -proxy или -connect) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, вы должны установить опцию rpcpassword в конфигурационном файле: - %s -Рекомендуется использовать следующий случайный пароль: -rpcuser=bitcoinrpc -rpcpassword=%s -(вам не нужно запоминать этот пароль) -Имя и пароль ДОЛЖНЫ различаться. -Если файл не существует, создайте его и установите права доступа только для владельца, только для чтения. -Также рекомендуется включить alertnotify для оповещения о проблемах; -Например: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 Привязаться к указанному адресу и всегда прослушивать только его. Используйте [хост]:порт для IPv6 @@ -2835,14 +2819,6 @@ rpcpassword=%s Войти в режим тестирования на регрессии, в котором используется специальная цепь, где блоки находятся мгновенно. - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Ошибка: транзакция была отклонена! Это могло произойти в случае, если некоторые монеты в вашем бумажнике уже были потрачены, например, если вы используете копию wallet.dat, и монеты были использованы в копии, но не отмечены как потраченные здесь. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - Ошибка: эта транзакция требует комиссию как минимум %s из-за суммы, сложности или использования недавно полученных средств! - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Выполнить команду, когда меняется транзакция в бумажнике (%s в команде заменяется на TxID) @@ -2955,10 +2931,6 @@ rpcpassword=%s Ошибка: мало места на диске! - Error: Wallet locked, unable to create transaction! - Ошибка: бумажник заблокирован, невозможно создать транзакцию! - - Failed to listen on any port. Use -listen=0 if you want this. Не удалось начать прослушивание на порту. Используйте -listen=0 если вас это устраивает. @@ -3083,10 +3055,22 @@ rpcpassword=%s Комиссии (в BTC/Кб) меньшие этого значения считаются нулевыми для создания транзакции (по умолчанию: %s) + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Если paytxfee не задан, включить достаточную комиссию для подтверждения транзакции в среднем за n блоков (по умолчанию: %u) + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Неверное значение для -maxtxfee=<amount>: '%s' (минимальная комиссия трансляции %s для предотвращения зависания транзакций) + + Maximum size of data in data carrier transactions we relay and mine (default: %u) Наибольший размер данных в носителе данных транзакций, которые мы передаем и генерируем (по умолчанию: %u) + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Максимальная сумма комиссий для одной транзакции в бумажнике, слишком низкое значение может вызвать прерывание больших транзакций (по умолчанию: %s) + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) Запрашивать адреса участников с помощью DNS, если адресов мало (по умолчанию: 1, если не указан -connect) @@ -3103,6 +3087,34 @@ rpcpassword=%s Этот продукт включает ПО, разработанное OpenSSL Project для использования в OpenSSL Toolkit <https://www.openssl.org/> и криптографическое ПО, написанное Eric Young и ПО для работы с UPnP, написанное Thomas Bernard. + To use bitcoind, or the -server option to bitcoin-qt, you must set an rpcpassword in the configuration file: +%s +It is recommended you use the following random password: +rpcuser=bitcoinrpc +rpcpassword=%s +(you do not need to remember this password) +The username and password MUST NOT be the same. +If the file does not exist, create it with owner-readable-only file permissions. +It is also recommended to set alertnotify so you are notified of problems; +for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + Для использования bitcoind или опции bitcoin-qt -server, вы должны установить опцию rpcpassword в конфигурационном файле: + %s +Рекомендуется использовать следующий случайный пароль: +rpcuser=bitcoinrpc +rpcpassword=%s +(вам не нужно запоминать этот пароль) +Имя и пароль ДОЛЖНЫ различаться. +Если файл не существует, создайте его и установите право доступа только для чтения только для владельца. +Также рекомендуется включить alertnotify для оповещения о проблемах; +Например: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Внимание: установлено очень большое значение -paytxfee. Такие большие комиссии могут быть уплачены в отдельной транзакции. + + Warning: Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly. Внимание: убедитесь, что дата и время на Вашем компьютере выставлены верно. Если Ваши часы идут неправильно, Bitcoin Core будет работать некорректно. @@ -3111,6 +3123,10 @@ rpcpassword=%s Участники из белого списка не могуть быть забанены за DoS, и их транзакции всегда транслируются, даже если они уже содержатся в памяти. Полезно, например, для шлюза. + Accept public REST requests (default: %u) + Принимать публичные REST-запросы (по умолчанию: %u) + + Cannot resolve -whitebind address: '%s' Не удаётся разрешить адрес в параметре -whitebind: '%s' @@ -3147,6 +3163,10 @@ rpcpassword=%s Не удалось проверить чистоту. Bitcoin Core выключается. + Invalid amount for -maxtxfee=<amount>: '%s' + Неверное значение -maxtxfee=<amount>: '%s' + + Invalid amount for -minrelaytxfee=<amount>: '%s' Неверная сумма в параметре -minrelaytxfee=<кол-во>: '%s' @@ -3163,10 +3183,6 @@ rpcpassword=%s Указана неверная сетевая маска в -whitelist: '%s' - Keep at most <n> unconnectable blocks in memory (default: %u) - Хранить максимум <n> несоединённых блоков в памяти (по умолчанию: %u) - - Keep at most <n> unconnectable transactions in memory (default: %u) Держать в памяти до <n> несвязных транзакций (по умолчанию: %u) @@ -3179,10 +3195,6 @@ rpcpassword=%s Параметры трансляции узла: - Print block on startup, if found in block index - Печатать блок при запуске, если он найден в индексе блоков - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) Параметры RPC SSL: (см. Bitcoin вики для инструкций по настройке SSL) @@ -3231,6 +3243,10 @@ rpcpassword=%s Сумма транзакции должна быть положительна + Transaction too large for fee policy + Транзакция слишком большая для правил комиссии. + + Transaction too large Транзакция слишком большая @@ -3327,10 +3343,6 @@ rpcpassword=%s Насколько тщательна проверка контрольных блоков -checkblocks (0-4, по умолчанию: %u) - If paytxfee is not set, include enough fee so transactions are confirmed on average within n blocks (default: %u) - Если paytxfee не задан, включить достаточную комиссию для подтверждения транзакции в среднем за n блоков (по умолчанию: %u) - - Log transaction priority and fee per kB when mining blocks (default: %u) Записывать в лог приоритет транзакции и комиссию на килобайт во время добычи блоков (по умолчанию: %u) @@ -3423,10 +3435,6 @@ rpcpassword=%s Дописывать отметки времени к отладочному выводу (по умолчанию: %u) - Print block tree on startup (default: %u) - Печатать дерево блоков при запуске (по умолчанию: %u) - - Relay and mine data carrier transactions (default: %u) Транслировать и генерировать транзакции носителей данных (по умолчанию: %u) @@ -3499,10 +3507,6 @@ rpcpassword=%s Неверная сумма в параметре -paytxfee=<кол-во>: '%s' - Invalid amount - Неверная сумма - - Insufficient funds Недостаточно монет @@ -3535,10 +3539,6 @@ rpcpassword=%s Загрузка завершена - To use the %s option - Чтобы использовать опцию %s - - Error Ошибка diff --git a/src/qt/locale/bitcoin_sah.ts b/src/qt/locale/bitcoin_sah.ts index 84b973bf924..9ca08ee7da7 100644 --- a/src/qt/locale/bitcoin_sah.ts +++ b/src/qt/locale/bitcoin_sah.ts @@ -1,10 +1,6 @@ AddressBookPage - - Double-click to edit address or label - Аадырыскын уларытаргар иккитэ баттаа - AddressTableModel diff --git a/src/qt/locale/bitcoin_sk.ts b/src/qt/locale/bitcoin_sk.ts index fe7c62cd604..c390d24b4c9 100644 --- a/src/qt/locale/bitcoin_sk.ts +++ b/src/qt/locale/bitcoin_sk.ts @@ -2,8 +2,8 @@ AddressBookPage - Double-click to edit address or label - Dvojklikom editovať adresu alebo popis + Right-click to edit address or label + Kliknutím pravým tlačidlom upravte adresu alebo popis Create a new address @@ -478,6 +478,10 @@ Up to date Aktualizovaný + + Processed %n blocks of transaction history. + Spracovaný %n blok tranzakčnej histórieSpracované %n bloky tranzakčnej histórieSpracovaných %n blokov tranzakčnej histórie + Catching up... Sťahujem... @@ -520,6 +524,10 @@ Adresa: %4 CoinControlDialog + Coin Selection + Výber mince + + Quantity: Množstvo: @@ -540,6 +548,10 @@ Adresa: %4 Poplatok: + Dust: + Prach: + + After Fee: Po poplatku: @@ -564,6 +576,14 @@ Adresa: %4 Suma + Received with label + Prijaté s označením + + + Received with address + Prijaté s adresou + + Date Dátum @@ -624,6 +644,10 @@ Adresa: %4 Kopírovať prioritu + Copy dust + Kopírovať prach + + Copy change Kopírovať zmenu @@ -672,6 +696,10 @@ Adresa: %4 žiadne + Can vary +/- %1 satoshi(s) per input. + Môže sa líšiť o +/- %1 satoshi pre každý vstup + + yes áno @@ -883,7 +911,15 @@ Adresa: %4 Error Chyba - + + %n GB of free space available + %n GB voľného miesta%n GB voľného miesta%n GB voľného miesta + + + (of %n GB needed) + (z %n GB potrebného)(z %n GB potrebných)(z %n GB potrebných) + + OpenURIDialog @@ -938,6 +974,14 @@ Adresa: %4 Počet skript overujucich vlákien + Accept connections from outside + Prijať spojenia zvonku + + + Allow incoming connections + Povoliť prichádzajúce spojenia + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) IP adresy proxy (napr. IPv4: 127.0.0.1 / IPv6: ::1) @@ -1194,6 +1238,10 @@ Adresa: %4 PeerTableModel + + Address/Hostname + Adresa/Názov počítača + QObject @@ -1202,6 +1250,10 @@ Adresa: %4 Suma + Enter a Bitcoin address (e.g. %1) + Zadajte bitcoin adresu (napr. %1) + + %1 h %1 h @@ -1213,7 +1265,11 @@ Adresa: %4 N/A nie je k dispozícii - + + %1 ms + %1 ms + + QRImageWidget @@ -1288,6 +1344,18 @@ Adresa: %4 Aktuálny počet blokov + Version + Verzia + + + Bytes Sent + Odoslaných bajtov + + + Bytes Received + Prijatých bajtov + + Last block time Čas posledného bloku @@ -1604,6 +1672,10 @@ Adresa: %4 Vyčistiť všetky polia formulára. + Dust: + Prach: + + Clear &All Zmazať &všetko @@ -1704,6 +1776,10 @@ Adresa: %4 Varovanie: Neznáma adresa pre výdavok + Copy dust + Kopírovať prach + + Are you sure you want to send? Určite to chcete odoslať? @@ -2406,30 +2482,6 @@ Adresa: %4 Prijať spojenia zvonku (predvolené: 1 ak žiadne -proxy alebo -connect) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, musíte nastaviť rpcpassword heslo v súbore nastavení: -%s -Odporúča sa používať nasledujúce náhodné heslo: -rpcuser=bitcoinrpc -rpcpassword=%s -(nemusíte si pamätať toto heslo) -Užívateľské meno a heslo NESMÚ byť rovnaké. -Ak súbor neexistuje, vytvorte ho s prístupovým právom owner-readable-only čitateľné len pre majiteľa. -Tiež sa odporúča nastaviť alertnotify aby ste boli upozorňovaní na problémy; -napríklad: alertnotify=echo %%s | mail -s "Bitcoin Výstraha" admin@foo.com - - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 Spojiť s danou adresou a vždy na nej počúvať. Použite zápis [host]:port pre IPv6 @@ -2438,14 +2490,6 @@ napríklad: alertnotify=echo %%s | mail -s "Bitcoin Výstraha" admin@foo.com Vojsť do režimu regresného testovania, ktorý používa špeciálnu reťaz v ktorej môžu byť bloky v okamihu vyriešené. - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Transakcia bola zamietnutá! Toto sa môže stať ak niektoré coins vo vašej peňaženke už boli minuté, ako keď použijete kópiu wallet.dat a coins boli minuté z kópie ale neoznačené ako minuté tu. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - Chyba: Táto transakcia vyžaduje transakčný poplatok aspoň %s kvôli svojej sume, komplexite alebo použitiu nedávno prijatých prostriedkov. - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Vykonaj príkaz keď sa zmení transakcia peňaženky (%s v príkaze je nahradená TxID) @@ -2552,10 +2596,6 @@ The network does not appear to fully agree! Some miners appear to be experiencin Chyba: Málo miesta na disku! - Error: Wallet locked, unable to create transaction! - Chyba: Peňaženka je zamknutá, nemôžem vytvoriť transakciu! - - Failed to listen on any port. Use -listen=0 if you want this. Chyba počúvania na ktoromkoľvek porte. Použi -listen=0 ak toto chcete. @@ -2648,10 +2688,6 @@ The network does not appear to fully agree! Some miners appear to be experiencin Neplatná suma pre -mintxfee=<amount>: '%s' - Print block on startup, if found in block index - Vytlač blok pri spustení, ak nájdený v zozname blokov - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) Možnosti RPC SSL: (Pozri v Bitcoin Wiki pokyny pre SSL nastavenie) @@ -2784,10 +2820,6 @@ The network does not appear to fully agree! Some miners appear to be experiencin Neplatná suma pre -paytxfee=<amount>: '%s' - Invalid amount - Neplatná suma - - Insufficient funds Nedostatok prostriedkov @@ -2820,10 +2852,6 @@ The network does not appear to fully agree! Some miners appear to be experiencin Dokončené načítavanie - To use the %s option - Použiť %s možnosť. - - Error Chyba diff --git a/src/qt/locale/bitcoin_sl_SI.ts b/src/qt/locale/bitcoin_sl_SI.ts index 60fc4a93e5c..e0945cde06e 100644 --- a/src/qt/locale/bitcoin_sl_SI.ts +++ b/src/qt/locale/bitcoin_sl_SI.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - Dvakrat klikni za urejanje naslovov ali oznak - - Create a new address Ustvari nov naslov @@ -2083,14 +2079,6 @@ Naslov: %4 Uporabi testno omrežje - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Napaka: Transakcija ni bila sprejeta! To se je morebiti zgodilo, ker so nekateri kovanci v vaši denarnici bili že porabljeni, na primer če ste uporabili kopijo wallet.dat in so tako kovanci bili porabljeni v kopiji, ostali pa označeni kot neporabljeni. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - Napaka: Ta transakcija potrebuje povizijo, ki je najmanj %s zaradi svoje količine, kompliciranosti, ali zaradi uporabe prejetih sredstev. - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Izvedi ukaz, ko bo transakcija denarnice se spremenila (V cmd je bil TxID zamenjan za %s) @@ -2119,10 +2107,6 @@ Naslov: %4 Opozorilo: Premalo prostora na disku! - Error: Wallet locked, unable to create transaction! - Opozorilo: Denarnica je zaklenjena, ni mogoče opraviti transkacijo! - - Importing... Uvažam... @@ -2227,10 +2211,6 @@ Naslov: %4 Neveljavna količina za -paytxfee=<amount>: '%s' - Invalid amount - Neveljavna količina - - Insufficient funds Premalo sredstev @@ -2263,10 +2243,6 @@ Naslov: %4 Nalaganje končano - To use the %s option - Za uporabo %s opcije - - Error Napaka diff --git a/src/qt/locale/bitcoin_sq.ts b/src/qt/locale/bitcoin_sq.ts index 7e63f239caf..2249d52136b 100644 --- a/src/qt/locale/bitcoin_sq.ts +++ b/src/qt/locale/bitcoin_sq.ts @@ -2,22 +2,54 @@ AddressBookPage - Double-click to edit address or label - Klikoni 2 herë për të ndryshuar adressën ose etiketën + Right-click to edit address or label + Kliko me të djathtën për të ndryshuar adresën ose etiketen. Create a new address Krijo një adresë të re + &New + &E re + + Copy the currently selected address to the system clipboard Kopjo adresën e zgjedhur në memorjen e sistemit + &Copy + &Kopjo + + + &Copy Address + &Kopjo adresen + + + Delete the currently selected address from the list + Fshi adresen e selektuar nga lista + + &Delete &Fshi + Choose the address to send coins to + Zgjidh adresen ku do te dergoni monedhat + + + Sending addresses + Duke derguar adresen + + + Receiving addresses + Duke marr adresen + + + &Edit + &Ndrysho + + Comma separated file (*.csv) Skedar i ndarë me pikëpresje(*.csv) @@ -53,7 +85,7 @@ Encrypt wallet - Enkripto portofolin + Kripto portofolin This operation needs your wallet passphrase to unlock the wallet. @@ -84,6 +116,10 @@ Konfirmoni enkriptimin e portofolit + Are you sure you wish to encrypt your wallet? + Jeni te sigurt te enkriptoni portofolin tuaj? + + Wallet encrypted Portofoli u enkriptua @@ -147,6 +183,26 @@ Ndrysho frazkalimin e përdorur per enkriptimin e portofolit + Bitcoin + Bitcoin + + + Wallet + Portofol + + + &Send + &Dergo + + + &Receive + &Merr + + + &Show / Hide + &Shfaq / Fsheh + + &File &Skedar @@ -163,6 +219,46 @@ Shiriti i mjeteve + Bitcoin Core + Berthama Bitcoin + + + &About Bitcoin Core + Rreth Berthames Bitkoin + + + %n hour(s) + %n ore%n ore + + + %n day(s) + %n dite%n dite + + + %n week(s) + %n jave%n jave + + + %1 and %2 + %1 dhe %2 + + + %n year(s) + %n vit%n vite + + + %1 behind + %1 Pas + + + Error + Problem + + + Information + Informacion + + Up to date I azhornuar @@ -193,6 +289,14 @@ CoinControlDialog + Coin Selection + Zgjedhja e monedhes + + + Amount: + Shuma: + + Amount Sasia @@ -201,6 +305,18 @@ Data + Copy address + Kopjo adresën + + + yes + po + + + no + jo + + (no label) (pa etiketë) @@ -250,12 +366,44 @@ FreespaceChecker + + name + emri + HelpMessageDialog + + Bitcoin Core + Berthama Bitcoin + + + version + versioni + + + About Bitcoin Core + Rreth Berthames Bitkoin + Intro + + Welcome + Miresevini + + + Welcome to Bitcoin Core. + Miresevini ne Berthamen Bitcoin + + + Bitcoin Core + Berthama Bitcoin + + + Error + Problem + OpenURIDialog @@ -292,6 +440,22 @@ RPCConsole + + &Open + &Hap + + + &Clear + &Pastro + + + never + asnjehere + + + Unknown + i/e panjohur + ReceiveCoinsDialog @@ -341,6 +505,10 @@ Dërgo Monedha + Amount: + Shuma: + + Send to multiple recipients at once Dërgo marrësve të ndryshëm njëkohësisht @@ -417,6 +585,10 @@ SplashScreen + Bitcoin Core + Berthama Bitcoin + + [testnet] [testo rrjetin] @@ -532,6 +704,10 @@ Minuar + Copy address + Kopjo adresën + + Comma separated file (*.csv) Skedar i ndarë me pikëpresje(*.csv) @@ -570,5 +746,21 @@ bitcoin-core - + + Information + Informacion + + + Insufficient funds + Fonde te pamjaftueshme + + + Rescanning... + Rikerkim + + + Error + Problem + + \ No newline at end of file diff --git a/src/qt/locale/bitcoin_sr.ts b/src/qt/locale/bitcoin_sr.ts index b005ce23ad0..9f72c66d7ff 100644 --- a/src/qt/locale/bitcoin_sr.ts +++ b/src/qt/locale/bitcoin_sr.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - Kliknite dva puta da izmenite adresu ili etiketu - - Create a new address Napravite novu adresu diff --git a/src/qt/locale/bitcoin_sv.ts b/src/qt/locale/bitcoin_sv.ts index 551f6976cf4..7d87ff89c5f 100644 --- a/src/qt/locale/bitcoin_sv.ts +++ b/src/qt/locale/bitcoin_sv.ts @@ -2,8 +2,8 @@ AddressBookPage - Double-click to edit address or label - Dubbelklicka för att ändra adressen eller etiketten + Right-click to edit address or label + Höger-klicka för att ändra adressen eller etiketten. Create a new address @@ -1286,6 +1286,14 @@ Adress: %4 Återbetalning från %1 + Payment request %2 is too large (%3 bytes, allowed %4 bytes). + Betalningsbegäran %2 är för stor (%3 bytes, tillåten %4 bytes) + + + Payment request DoS protection + Betalningsbegäran begär DoS-skydd + + Error communicating with %1: %2 Kommunikationsfel med %1: %2 @@ -2800,30 +2808,6 @@ Adress: %4 Acceptera anslutningar utifrån (förvalt: 1 om ingen -proxy eller -connect) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, du behöver sätta ett rpclösensord i konfigurationsfilen: -%s -Det är rekommenderat att använda följande slumpade lösenord: -rpcuser=bitcoinrpc -rpcpassword=%s -(du behöver inte komma ihåg lösenordet) -Användarnamnet och lösenordet FÅR INTE bara detsamma. -Om filen inte existerar, skapa den med enbart ägarläsbara filrättigheter. -Det är också rekommenderat att sätta alertnotify så du meddelas om problem; -till exempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 Bind till given adress och lyssna alltid på den. Använd [värd]:port notation för IPv6 @@ -2840,14 +2824,6 @@ till exempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Ange regressiontestläge, som använder en speciell kedja i vilka block kan lösas omedelbart. - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Fel: Transaktionen avslogs! Detta kan hända om några av mynten i plånboken redan spenderats, t.ex om du använt en kopia av wallet.dat och mynt spenderades i kopian men inte markerats som spenderas här. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - Fel: Denna transaktion kräver en transaktionsavgift på minst %s på grund av dess storlek, komplexitet, eller användning av senast mottagna bitcoins! - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Exekvera kommando när en plånbokstransaktion ändras (%s i cmd är ersatt av TxID) @@ -2960,10 +2936,6 @@ till exempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Fel: Hårddiskutrymme är lågt! - Error: Wallet locked, unable to create transaction! - Fel: Plånboken är låst, det går ej att skapa en transaktion! - - Failed to listen on any port. Use -listen=0 if you want this. Misslyckades att lyssna på någon port. Använd -listen=0 om du vill detta. @@ -3088,10 +3060,22 @@ till exempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Avgifter (i BTC/Kb) mindre än detta betraktas som nollavgift för transaktionsskapande (förvalt: %s) + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Om paytxfee inte är satt, inkludera tillräcklig avgift så att transaktionen börjar att konfirmeras inom n blocks (förvalt: %u) + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Otillåtet belopp för -maxtxfee=<belopp>: '%s' (måste åtminstånde vara minrelay avgift %s för att förhindra stoppade transkationer) + + Maximum size of data in data carrier transactions we relay and mine (default: %u) Maximal storlek på data i databärartransaktioner som vi reläar och bryter (förvalt: %u) + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Maximum total avgift att använda i en plånbok transaktion, sätts den för lågt kan stora transaktioner avbrytas (förvalt: %s) + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) Sök efter klientadresser med DNS sökningen, om det finns otillräckligt med adresser (förvalt: 1 om inte -connect) @@ -3104,6 +3088,34 @@ till exempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Denna produkten innehåller mjukvara utvecklad av OpenSSL Project för användning i OpenSSL Toolkit <https://www.openssl.org/> och kryptografisk mjukvara utvecklad av Eric Young samt UPnP-mjukvara skriven av Thomas Bernard. + To use bitcoind, or the -server option to bitcoin-qt, you must set an rpcpassword in the configuration file: +%s +It is recommended you use the following random password: +rpcuser=bitcoinrpc +rpcpassword=%s +(you do not need to remember this password) +The username and password MUST NOT be the same. +If the file does not exist, create it with owner-readable-only file permissions. +It is also recommended to set alertnotify so you are notified of problems; +for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + För att använda bitconid,eller -server optionen till bitcoin-qt så mäste du sätta ett rpclösensord i konfigurationsfilen: +%s +Det är rekommenderat att använda följande slumpade lösenord: +rpcuser=bitcoinrpc +rpcpassword=%s +(du behöver inte komma ihåg lösenordet) +Användarnamnet och lösenordet FÅR INTE vara detsamma. +Om filen inte existerar, skapa den med enbart ägarläsbara filrättigheter. +Det är också rekommenderat att sätta alertnotify så du meddelas om problem; +till exempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Varning: -maxtxfee är satt väldigt hög! Så höga avgifter kan betalas för en enstaka transaktion. + + Warning: Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly. Varning: Vänligen kolla så att din dators datum och tid är korrekt! Om din klocka går fel kommer Bitcoin Core inte att fungera korrekt. @@ -3112,6 +3124,10 @@ till exempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Vitlistade klienter kan inte bli DoS bannade och deras transaktioner reläas alltid, även om dom redan är i mempoolen, användbart för t.ex en gateway + Accept public REST requests (default: %u) + Acceptera publika REST förfrågningar (förvalt: %u) + + Cannot resolve -whitebind address: '%s' Kan inte matcha -whitebind adress: '%s' @@ -3148,6 +3164,10 @@ till exempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Initieringschecken fallerade. Bitcoin Core stängs av... + Invalid amount for -maxtxfee=<amount>: '%s' + Otillåtet belopp för -maxtxfee=<belopp>: '%s' + + Invalid amount for -minrelaytxfee=<amount>: '%s' Ogiltigt belopp för -minrelaytxfee=<belopp>: '%s' @@ -3164,10 +3184,6 @@ till exempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Ogiltig nätmask angiven i -whitelist: '%s' - Keep at most <n> unconnectable blocks in memory (default: %u) - Håll som mest <n> oanslutningsbara block i minnet (förvalt: %u) - - Keep at most <n> unconnectable transactions in memory (default: %u) Håll som mest <n> oanslutningsbara transaktioner i minnet (förvalt: %u) @@ -3180,10 +3196,6 @@ till exempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Nodreläoptioner: - Print block on startup, if found in block index - Skriv ut block vid uppstart, om det hittas i blockindexet - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) RPC SSL optioner: (se Bitcoin Wiki för SSL inställningsinstruktioner) @@ -3232,6 +3244,10 @@ till exempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Transaktionens belopp måste vara positiva + Transaction too large for fee policy + Transaktionen är för stor för avgiftspolicyn + + Transaction too large Transaktionen är för stor @@ -3328,10 +3344,6 @@ till exempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Hur grundlig blockverifikationen vid -checkblocks är (0-4, förvalt: %u) - If paytxfee is not set, include enough fee so transactions are confirmed on average within n blocks (default: %u) - Om paytxfee inte är satt, inkludera tillräcklig avgift så att transaktionen konfirmeras inom n blocks (förvalt: %u) - - Log transaction priority and fee per kB when mining blocks (default: %u) Logga transaktionsprioritet och avgift per kB vid blockbrytning (förvalt: %u) @@ -3424,10 +3436,6 @@ till exempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Skriv ut tidsstämpel i avlusningsinformationen (förvalt: %u) - Print block tree on startup (default: %u) - Skriv ut blockträdet vid uppstart (förvalt: %u) - - Relay and mine data carrier transactions (default: %u) Reläa och bearbeta databärartransaktioner (förvalt: %u) @@ -3504,10 +3512,6 @@ till exempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Ogiltigt belopp för -paytxfee=<belopp>:'%s' - Invalid amount - Ogiltig mängd - - Insufficient funds Otillräckligt med bitcoins @@ -3540,10 +3544,6 @@ till exempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Klar med laddning - To use the %s option - Att använda %s alternativet - - Error Fel diff --git a/src/qt/locale/bitcoin_th_TH.ts b/src/qt/locale/bitcoin_th_TH.ts index 174816aaef0..1acf784af7f 100644 --- a/src/qt/locale/bitcoin_th_TH.ts +++ b/src/qt/locale/bitcoin_th_TH.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - ดับเบิ้ลคลิก เพื่อแก้ไขที่อยู่ หรือชื่อ - - Create a new address สร้างที่อยู่ใหม่ diff --git a/src/qt/locale/bitcoin_tr.ts b/src/qt/locale/bitcoin_tr.ts index ab02cc92a60..c562d027c14 100644 --- a/src/qt/locale/bitcoin_tr.ts +++ b/src/qt/locale/bitcoin_tr.ts @@ -2,8 +2,8 @@ AddressBookPage - Double-click to edit address or label - Adresi ya da etiketi düzenlemek için çift tıklayınız + Right-click to edit address or label + Adresi ya da etiketi düzenlemek için sağ düğme ile tıklayınız. Create a new address @@ -27,7 +27,7 @@ &Copy Address - Adresi &kopyala + &Adresi Kopyala Delete the currently selected address from the list @@ -59,7 +59,7 @@ Sending addresses - Yollama adresleri + &Gönderme adresleri... Receiving addresses @@ -1289,6 +1289,14 @@ Adres: %4 %1 öğesinden iade + Payment request %2 is too large (%3 bytes, allowed %4 bytes). + %2 ödeme talebi çok büyüktür (%3 bayt, müsaade edilen %4 bayt). + + + Payment request DoS protection + Ödeme talebi DoS koruması + + Error communicating with %1: %2 %1 ile iletişimde hata: %2 @@ -2807,30 +2815,6 @@ Adres: %4 Dışarıdan gelen bağlantıları kabul et (varsayılan: -proxy veya -connect yoksa 1) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, şu yapılandırma dosyasında rpc parolası belirtmeniz gerekir: -%s -Aşağıdaki rastgele oluşturulan parolayı kullanmanız tavsiye edilir: -rpcuser=bitcoinrpc -rpcpassword=%s -(bu parolayı hatırlamanız gerekli değildir) -Kullanıcı ismi ile parolanın FARKLI olmaları gerekir. -Dosya mevcut değilse, sadece sahibi için okumayla sınırlı izin ile oluşturunuz. -Sorunlar hakkında bildiri almak için alertnotify unsurunu ayarlamanız tavsiye edilir; -mesela: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 Belirtilen adrese bağlan ve daima ondan dinle. IPv6 için [makine]:port yazımını kullanınız @@ -2847,14 +2831,6 @@ mesela: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Blokların anında çözülebileceği özel bir zincir kullanan regresyon deneme kipine gir. - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Hata: Muamele reddedildi! Cüzdanınızdaki madenî paraların bazıları zaten harcanmış olduğunda bu meydana gelebilir. Örneğin wallet.dat dosyasının bir kopyasını kullandıysanız ve kopyada para harcandığında ancak burada harcandığı işaretlenmediğinde. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - Hata: Muamelenin meblağı, karmaşıklığı ya da yakın geçmişte alınan fonların kullanılması nedeniyle bu muamele en az %s tutarında ücret gerektirmektedir! - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Bir cüzdan muamelesi değiştiğinde komutu çalıştır (komuttaki %s muamele kimliği ile değiştirilecektir) @@ -2967,10 +2943,6 @@ mesela: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Hata: Disk alanı düşük! - Error: Wallet locked, unable to create transaction! - Hata: Cüzdan kilitli, muamele oluşturulamadı! - - Failed to listen on any port. Use -listen=0 if you want this. Herhangi bir portun dinlenmesi başarısız oldu. Bunu istiyorsanız -listen=0 seçeneğini kullanınız. @@ -3095,10 +3067,22 @@ mesela: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Kb başına BTC olarak bundan düşük ücretler muamele oluşturulması için sıfır değerinde ücret olarak kabul edilir (varsayılan: %s) + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Eğer paytxfee ayarlanmadıysa kafi derecede ücret ekleyin ki muameleler teyite vasati n blok içinde başlasın (varsayılan: %u) + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + -maxtxfee=<tutar> için geçersiz tutar: '%s' (Sıkışmış muameleleri önlemek için en az %s değerinde asgari aktarım ücretine eşit olmalıdır) + + Maximum size of data in data carrier transactions we relay and mine (default: %u) Aktardığımız ve oluşturduğumuz veri taşıyıcı muamelelerindeki azami veri boyutu (varsayılan: %u) + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Tek cüzdan muamelesinde kullanılacak azami toplam ücret, çok düşük ayarlamak büyük muameleleri iptal edebilir (varsayılan: %s) + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) Adres sayısı azaldıysa DNS sorgulamasıyla eş adresleri ara (varsayılan: 1 -connect kullanılmadıysa) @@ -3115,6 +3099,34 @@ mesela: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Bu ürün OpenSSL projesi tarafından OpenSSL araç takımı (http://www.openssl.org/) için geliştirilen yazılımlar, Eric Young (eay@cryptsoft.com) tarafından hazırlanmış şifreleme yazılımları ve Thomas Bernard tarafından programlanmış UPnP yazılımı içerir. + To use bitcoind, or the -server option to bitcoin-qt, you must set an rpcpassword in the configuration file: +%s +It is recommended you use the following random password: +rpcuser=bitcoinrpc +rpcpassword=%s +(you do not need to remember this password) +The username and password MUST NOT be the same. +If the file does not exist, create it with owner-readable-only file permissions. +It is also recommended to set alertnotify so you are notified of problems; +for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + bitcoind ya da bitcoin-qt ile -server seçeneğini kullanmak için yapılandırma dosyasında bir rpc parolası belirtmeniz gerekir: +%s +Aşağıdaki rastgele oluşturulan parolayı kullanmanız tavsiye edilir: +rpcuser=bitcoinrpc +rpcpassword=%s +(bu parolayı hatırlamanız gerekli değildir) +Kullanıcı ismi ile parolanın FARKLI olmaları gerekir. +Dosya mevcut değilse, sadece sahibi için okumayla sınırlı izin ile oluşturunuz. +Sorunlar hakkında bildiri almak için alertnotify unsurunu ayarlamanız tavsiye edilir; +mesela: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + İkaz: -maxtxfee çok yüksek bir değere ayarlanmış! Bu denli yüksek ücretler tek bir muamelede ödenebilir. + + Warning: Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly. Uyarı: Lütfen bilgisayarınızın saat ve tarihinin doğru olduğunu kontol ediniz! Saatinizde gecikme varsa Bitcoin Çekirdeği doğru şekilde çalışamaz. @@ -3123,6 +3135,10 @@ mesela: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Beyaz listeye alınan eşler DoS yasaklamasına uğramazlar ve muameleleri zaten mempool'da olsalar da daima aktarılır, bu mesela bir geçit için kullanışlıdır + Accept public REST requests (default: %u) + Herkese açık REST taleplerini kabul et (varsayılan: %u) + + Cannot resolve -whitebind address: '%s' -whitebind adresi çözümlenemedi: '%s' @@ -3159,6 +3175,10 @@ mesela: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Başlatma sınaması başarısız oldu. Bitcoin Çekirdeği kapatılıyor. + Invalid amount for -maxtxfee=<amount>: '%s' + -maxtxfee=<tutar> için geçersiz tutar: '%s' + + Invalid amount for -minrelaytxfee=<amount>: '%s' -minrelaytxfee=<amount> için geçersiz meblağ: '%s' @@ -3175,10 +3195,6 @@ mesela: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com -whitelist: '%s' unsurunda geçersiz bir ağ maskesi belirtildi - Keep at most <n> unconnectable blocks in memory (default: %u) - Hafızada en çok <n> bağlanılamaz blok tut (varsaylan: %u) - - Keep at most <n> unconnectable transactions in memory (default: %u) Hafızada en çok <n> bağlanılamaz muamele tut (varsayılan: %u) @@ -3191,10 +3207,6 @@ mesela: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Düğüm röle seçenekleri: - Print block on startup, if found in block index - Başlangıçta bloğu göster, blok indeksinde bulunduysa - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) RPC SSL seçenekleri: (SSL kurulumu yönergeleri için Bitcoin vikisine bakınız) @@ -3243,6 +3255,10 @@ mesela: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Muamele tutarının pozitif olması lazımdır + Transaction too large for fee policy + Ücret politikası için çok büyük muamele + + Transaction too large Muamele çok büyük @@ -3339,10 +3355,6 @@ mesela: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com -checkblocks'un blok kontrolünün ne kadar kapsamlı olacağı (0 ilâ 4, varsayılan: %u) - If paytxfee is not set, include enough fee so transactions are confirmed on average within n blocks (default: %u) - Eğer paytxfee ayarlanmadıysa, kafi derecede ücret ekleyin ki muameleler vasati n blok içinde teyit edilsin (varsayılan: %u) - - Log transaction priority and fee per kB when mining blocks (default: %u) Blok oluşturulduğunda muamele önceliğini ve kB başı ücreti kütüğe al (varsayılan: %u) @@ -3435,10 +3447,6 @@ mesela: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Hata ayıklama verilerinin önüne zaman damgası ekle (varsayılan: %u) - Print block tree on startup (default: %u) - Başlangıçta blok ağacını göster (varsayılan: %u) - - Relay and mine data carrier transactions (default: %u) Veri taşıyıcı muameleleri oluştur ve aktar (varsayılan: %u) @@ -3515,10 +3523,6 @@ mesela: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com -paytxfee=<meblağ> için geçersiz meblağ: '%s' - Invalid amount - Geçersiz meblağ - - Insufficient funds Yetersiz bakiye @@ -3551,10 +3555,6 @@ mesela: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Yükleme tamamlandı - To use the %s option - %s seçeneğini kullanmak için - - Error Hata diff --git a/src/qt/locale/bitcoin_uk.ts b/src/qt/locale/bitcoin_uk.ts index fe39c8e2cf9..fc0db5b49ac 100644 --- a/src/qt/locale/bitcoin_uk.ts +++ b/src/qt/locale/bitcoin_uk.ts @@ -2,8 +2,8 @@ AddressBookPage - Double-click to edit address or label - Двічі клікніть на адресу чи назву для їх зміни + Right-click to edit address or label + Клік правою кнопкою для редагування адреси або мітки Create a new address @@ -1289,6 +1289,14 @@ Address: %4 Відшкодування з %1 + Payment request %2 is too large (%3 bytes, allowed %4 bytes). + Запит до оплати %2 занадто великий (%3 байт, дозволено %4 байт) + + + Payment request DoS protection + Оплата потребує захисту DoS + + Error communicating with %1: %2 Помилка зв'язку з %1: %2 @@ -2807,30 +2815,6 @@ Address: %4 Приймати підключення ззовні (типово: 1 за відсутності -proxy чи -connect) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, ви повинні встановити rpcpassword в файлі конфігурації: -%s -Рекомендується використати такий випадковий пароль: -rpcuser=bitcoinrpc -rpcpassword=%s -(ви не повинні пам'ятати цей пароль) -Ім’я користувача та пароль ПОВИННІ бути різними. -Якщо файлу не існує, створіть його, обмеживши доступ правом читання для власника. -Також рекомендується використовувати alertnotify для того, щоб отримувати сповіщення про проблеми; -наприклад: alertnotify=echo %%s | mail -s "Сповіщення Bitcoin" admin@foo.com - - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 Прив'язатися до даної адреси та прослуховувати її. Використовуйте запис виду [хост]:порт для IPv6 @@ -2847,14 +2831,6 @@ rpcpassword=%s Ввійти в режим регресивного тестування, що використовує спеціальний ланцюг з миттєвим знаходженням блоків. - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Помилка: транзакцію було відхилено. Це може статись, якщо декілька монет з вашого гаманця вже використані, наприклад, якщо ви використовуєте одну копію гаманця (wallet.dat), а монети були використані з іншої копії, але не позначені як використані в цій. - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - Помилка: Ця транзакція потребує додавання комісії щонайменше в %s через її розмір, складність, або внаслідок використання недавно отриманих коштів! - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Виконати команду, коли транзакція гаманця зміниться (замість %s в команді буде підставлено ідентифікатор транзакції) @@ -2967,10 +2943,6 @@ rpcpassword=%s Помилка: Мало вільного місця на диску! - Error: Wallet locked, unable to create transaction! - Помилка: Гаманець заблокований, неможливо створити транзакцію! - - Failed to listen on any port. Use -listen=0 if you want this. Не вдалося слухати на жодному порту. Використовуйте -listen=0, якщо ви хочете цього. @@ -3095,10 +3067,18 @@ rpcpassword=%s Комісії (в BTC/КБ), що менші за вказану, вважатимуться нульовими (для створення транзакції) (типово: %s) + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Якщо параметр paytxfee не встановлено, включити комісію для отримання перших підтверджень транзакцій протягом n блоків (типово: %u) + + Maximum size of data in data carrier transactions we relay and mine (default: %u) Максимальний розмір даних в транзакціях носіїв даних, що ми передаємо і добуваємо (за замовчуванням: %u) + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Максимальна загальна плата для використання в одній транзакції, установка занадто низької може перервати великі транзакції(стандартно: %s) + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) Дізнаватися адреси учасників через DNS при замалій кількості відомих адрес (типово: 1 за відсутності -connect) @@ -3115,6 +3095,34 @@ rpcpassword=%s Цей продукт включає в себе програмне забезпечення, розроблене в рамках проекту OpenSSL <https://www.openssl.org/>, криптографічне програмне забезпечення, написане Еріком Янгом, та функції для роботи з UPnP, написані Томасом Бернардом. + To use bitcoind, or the -server option to bitcoin-qt, you must set an rpcpassword in the configuration file: +%s +It is recommended you use the following random password: +rpcuser=bitcoinrpc +rpcpassword=%s +(you do not need to remember this password) +The username and password MUST NOT be the same. +If the file does not exist, create it with owner-readable-only file permissions. +It is also recommended to set alertnotify so you are notified of problems; +for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + Для використання bitcoind, або bitcoin-qt з параметром -server, ви повинні встановити rpcpassword в файлі конфігурації: +%s +Рекомендується використати такий випадковий пароль: +rpcuser=bitcoinrpc +rpcpassword=%s +(вам не треба запам'ятовувати цей пароль) +Ім'я користувача та пароль ПОВИННІ бути різними. +Якщо файлу не існує, створіть його, обмеживши доступ правом читання для власника. +Також рекомендується використовувати alertnotify для того, щоб отримувати сповіщення про проблеми; +наприклад: alertnotify=echo %%s | mail -s "Сповіщення Bitcoin" admin@foo.com + + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Увага: установлено дуже велике значення -maxtxfee! Такі великі комісії можуть бути сплачені в окремій транзакції. + + Warning: Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly. Увага: будь ласка, перевірте дату і час на своєму комп'ютері! Якщо ваш годинник йде неправильно, Bitcoin Core може працювати некоректно. @@ -3123,6 +3131,10 @@ rpcpassword=%s Учасники, що знаходяться в білому списку, не можуть бути заблоковані за DoS та їхні транзакції завжди ретранслюватимуться (навіть якщо вони є в пам'яті), що може бути корисним, наприклад, для шлюзу + Accept public REST requests (default: %u) + Приймати публічні REST-запити (типово: %u) + + Cannot resolve -whitebind address: '%s' Не вдалося розпізнати адресу для -whitebind: «%s» @@ -3159,6 +3171,10 @@ rpcpassword=%s Не вдалося пройти базові перевірки під час ініціалізації. Bitcoin Core буде вимкнено. + Invalid amount for -maxtxfee=<amount>: '%s' + Неприпустима сума для -maxtxfee = <amount>: '%s' + + Invalid amount for -minrelaytxfee=<amount>: '%s' Вказано некоректну суму для параметру -minrelaytxfee: «%s» @@ -3175,10 +3191,6 @@ rpcpassword=%s Вказано неправильну маску підмережі для -whitelist: «%s» - Keep at most <n> unconnectable blocks in memory (default: %u) - Утримувати в пам'яті щонайбільше <n> блоків, не під'єднаних до основного ланцюжка (типово: %u) - - Keep at most <n> unconnectable transactions in memory (default: %u) Утримувати в пам'яті щонайбільше <n> транзакцій, що споживають невідомі входи (типово: %u) @@ -3191,10 +3203,6 @@ rpcpassword=%s Параметри вузла ретрансляції: - Print block on startup, if found in block index - Роздрукувати блок під час запуску (якщо він буде знайдений в індексі) - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) Параметри RPC SSL: (див. Bitcoin Wiki для налаштування SSL) @@ -3243,6 +3251,10 @@ rpcpassword=%s Суми монет у транзакції мають бути позитивними + Transaction too large for fee policy + Транзакція занадто велика для правил комісії + + Transaction too large Транзакція занадто велика @@ -3339,10 +3351,6 @@ rpcpassword=%s Рівень ретельності перевірки блоків (0-4, типово: %u) - If paytxfee is not set, include enough fee so transactions are confirmed on average within n blocks (default: %u) - Якщо параметр paytxfee не встановлено, включити комісію, достатню для підтвердження транзакцій протягом n блоків (типово: %u) - - Log transaction priority and fee per kB when mining blocks (default: %u) Записувати в лог-файл пріоритет транзакції та комісію за кБ під час добування блоків (типово: %u) @@ -3435,10 +3443,6 @@ rpcpassword=%s Доповнювати налагоджувальний вивід відміткою часу (типово: %u) - Print block tree on startup (default: %u) - Роздрукувати дерево блоків під час запуску (типово: %u) - - Relay and mine data carrier transactions (default: %u) Ретранслювати та створювати транзакції носіїв даних (типово: %u) @@ -3515,10 +3519,6 @@ rpcpassword=%s Помилка у величині комісії -paytxfee=<amount>: «%s» - Invalid amount - Некоректна кількість - - Insufficient funds Недостатньо коштів @@ -3551,10 +3551,6 @@ rpcpassword=%s Завантаження завершене - To use the %s option - Щоб використати опцію %s - - Error Помилка diff --git a/src/qt/locale/bitcoin_ur_PK.ts b/src/qt/locale/bitcoin_ur_PK.ts index 86f3226269a..414ff8354fd 100644 --- a/src/qt/locale/bitcoin_ur_PK.ts +++ b/src/qt/locale/bitcoin_ur_PK.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - ایڈریس یا لیبل میں ترمیم کرنے پر ڈبل کلک کریں - - Create a new address نیا ایڈریس بنائیں @@ -327,10 +323,6 @@ یہ مدد کا پیغام - Invalid amount - غلط رقم - - Insufficient funds ناکافی فنڈز diff --git a/src/qt/locale/bitcoin_uz@Cyrl.ts b/src/qt/locale/bitcoin_uz@Cyrl.ts index 54e649aedef..62d4c1322f7 100644 --- a/src/qt/locale/bitcoin_uz@Cyrl.ts +++ b/src/qt/locale/bitcoin_uz@Cyrl.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - Манзил ёки ёрлиқни таҳрирлаш учун икки марта босинг - - Create a new address Янги манзил яратинг diff --git a/src/qt/locale/bitcoin_vi.ts b/src/qt/locale/bitcoin_vi.ts index 3ca56058830..7b362491c2b 100644 --- a/src/qt/locale/bitcoin_vi.ts +++ b/src/qt/locale/bitcoin_vi.ts @@ -2,10 +2,6 @@ AddressBookPage - Double-click to edit address or label - Click đúp chuột để chỉnh sửa địa chỉ hoặc nhãn dữ liệu - - Create a new address Tạo một địa chỉ mới diff --git a/src/qt/locale/bitcoin_vi_VN.ts b/src/qt/locale/bitcoin_vi_VN.ts index bf76c8638aa..c1c51dd35f5 100644 --- a/src/qt/locale/bitcoin_vi_VN.ts +++ b/src/qt/locale/bitcoin_vi_VN.ts @@ -2,72 +2,584 @@ AddressBookPage + Right-click to edit address or label + Nhấn chuột phải để sửa địa chỉ hoặc nhãn + + Create a new address Tạo một địa chỉ mới + + &New + &Mới + + + Copy the currently selected address to the system clipboard + Copy địa chỉ được chọn vào clipboard + + + &Copy + &Copy + + + C&lose + Đó&ng + + + &Copy Address + &Copy Địa Chỉ + + + Delete the currently selected address from the list + Xóa địa chỉ hiện tại từ danh sách + + + Export the data in the current tab to a file + Xuất dữ liệu trong mục hiện tại ra file + + + &Export + X&uất + + + &Delete + &Xó&a + + + Choose the address to send coins to + Chọn địa chỉ để gửi coin tới + + + Choose the address to receive coins with + Chọn địa chỉ để nhận coin + + + C&hoose + C&họn + + + Sending addresses + Địa chỉ gửi + + + Receiving addresses + Địa chỉ nhận + + + Copy &Label + Copy &Nhãn + + + &Edit + &Sửa + + + Export Address List + Xuất Danh Sách Địa Chỉ + + + Comma separated file (*.csv) + Comma separated file (*.csv) + + + Exporting Failed + Xuất Đã Thất Bại + AddressTableModel - + + Label + Nhãn + + + Address + Địa chỉ + + + (no label) + (không nhãn) + + AskPassphraseDialog + + Passphrase Dialog + Hội thoại Passphrase + + + Enter passphrase + Điền passphrase + + + New passphrase + Passphrase mới + + + Repeat new passphrase + Điền lại passphrase + + + Encrypt wallet + Mã hóa ví + + + Unlock wallet + Mở khóa ví + + + Decrypt wallet + Giải mã ví + + + Wallet encrypted + Ví đã được mã hóa + BitcoinGUI + + &Overview + &Tổng quan + + + Node + Node + + + E&xit + T&hoát + + + Quit application + Thoát chương trình + + + About &Qt + Về &Qt + + + Show information about Qt + Xem thông tin về Qt + + + Open &URI... + Mở &URI... + + + Bitcoin Core client + Bitcoin Core client + + + Bitcoin + Bitcoin + + + Wallet + + + + &Send + &Gửi + + + &Receive + &Nhận + + + &Show / Hide + Ẩn / H&iện + + + Show or hide the main Window + Hiện hoặc ẩn cửa sổ chính + + + &File + &File + + + &Settings + &Thiết lập + + + &Help + Trợ &giúp + + + Bitcoin Core + Bitcoin Core + + + &About Bitcoin Core + &Về Bitcoin Core + + + %n hour(s) + %n giờ + + + %n day(s) + %n ngày + + + %n week(s) + %n tuần + + + %1 and %2 + %1 và %2 + + + %n year(s) + %n năm + + + Error + Lỗi + + + Warning + Chú ý + + + Information + Thông tin + + + Up to date + Đã cập nhật + + + Sent transaction + Giao dịch đã gửi + + + Incoming transaction + Giao dịch đang tới + + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + Ngày: %1 +Lượng: %2 +Loại: %3 +Địa chỉ: %4 + + ClientModel - + + Network Alert + Network Alert + + CoinControlDialog + + Quantity: + Lượng: + + + Bytes: + Bytes: + + + Amount: + Lượng: + + + Priority: + Tầm quan trọng: + + + Fee: + Phí: + + + Change: + Thay đổi: + + + Amount + Lượng + + + Date + Ngày tháng + + + Confirmations + Lần xác nhận + + + Confirmed + Đã xác nhận + + + Priority + Tầm quan trọng + + + Copy address + Copy địa chỉ + + + Copy label + Copy nhãn + + + Copy amount + Lượng copy + + + low + thấp + + + lower + thấp hơn + + + lowest + thấp nhất + + + yes + + + + no + không + + + (no label) + (không nhãn) + EditAddressDialog FreespaceChecker + + name + tên + HelpMessageDialog + + Bitcoin Core + Bitcoin Core + + + version + version + + + About Bitcoin Core + Về Bitcoin Core + Intro + + Welcome + Chào mừng + + + Bitcoin Core + Bitcoin Core + + + Error + Lỗi + OpenURIDialog + + Open URI + Mở URI + + + URI: + URI: + OptionsDialog + + Options + Lựa chọn + + + &Main + &Chính + + + MB + MB + + + &Display + &Hiển thị + + + &OK + &OK + + + &Cancel + &Từ chối + + + default + mặc định + OverviewPage + + Form + Form + + + Total: + Tổng: + PaymentServer PeerTableModel + + User Agent + User Agent + QObject + + Amount + Lượng + + + NETWORK + NETWORK + QRImageWidget RPCConsole + + General + Nhìn Chung + + + Name + Tên + + + Block chain + Block chain + + + Sent + Đã gửi + + + User Agent + User Agent + ReceiveCoinsDialog - + + Copy label + Copy nhãn + + + Copy amount + Lượng copy + + ReceiveRequestDialog + + Address + Địa chỉ + + + Amount + Lượng + + + Label + Nhãn + RecentRequestsTableModel + + Date + Ngày tháng + + + Label + Nhãn + + + Amount + Lượng + + + (no label) + (không nhãn) + SendCoinsDialog + + Quantity: + Lượng: + + + Bytes: + Bytes: + + + Amount: + Lượng: + + + Priority: + Tầm quan trọng: + + + Fee: + Phí: + + + Change: + Thay đổi: + + + Copy amount + Lượng copy + + + (no label) + (không nhãn) + SendCoinsEntry @@ -80,21 +592,77 @@ SplashScreen + + Bitcoin Core + Bitcoin Core + TrafficGraphWidget TransactionDesc + + Date + Ngày tháng + + + Amount + Lượng + TransactionDescDialog TransactionTableModel + + Date + Ngày tháng + + + Address + Địa chỉ + TransactionView + + Copy address + Copy địa chỉ + + + Copy label + Copy nhãn + + + Copy amount + Lượng copy + + + Exporting Failed + Xuất Đã Thất Bại + + + Comma separated file (*.csv) + Comma separated file (*.csv) + + + Confirmed + Đã xác nhận + + + Date + Ngày tháng + + + Label + Nhãn + + + Address + Địa chỉ + UnitDisplayStatusBarControl @@ -107,8 +675,76 @@ WalletView + + &Export + X&uất + + + Export the data in the current tab to a file + Xuất dữ liệu trong mục hiện tại ra file + bitcoin-core - + + Information + Thông tin + + + Transaction too large + Giao dịch quá lớn + + + Warning + Chú ý + + + on startup + khi khởi động + + + This help message + Thông điệp trợ giúp này + + + Loading addresses... + Đang đọc các địa chỉ... + + + (default: %s) + (mặc định: %s) + + + Insufficient funds + Không đủ tiền + + + Loading block index... + Đang đọc block index... + + + Loading wallet... + Đang đọc ví... + + + Cannot downgrade wallet + Không downgrade được ví + + + Cannot write default address + Không ghi được địa chỉ mặc định + + + Rescanning... + Đang quét lại... + + + Done loading + Đã nạp xong + + + Error + Lỗi + + \ No newline at end of file diff --git a/src/qt/locale/bitcoin_zh_CN.ts b/src/qt/locale/bitcoin_zh_CN.ts index 94d0675bfda..5f5a32e6596 100644 --- a/src/qt/locale/bitcoin_zh_CN.ts +++ b/src/qt/locale/bitcoin_zh_CN.ts @@ -2,8 +2,8 @@ AddressBookPage - Double-click to edit address or label - 双击编辑地址或标签 + Right-click to edit address or label + 鼠标右击编辑地址或标签 Create a new address @@ -184,6 +184,10 @@ 钱包已加密 + 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>. + 请输入新的钱包密码. <br/>密码须包含<b>10个以上字符</b>,或<b>8个以上单词</b>. + + 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. 比特币客户端将关闭软件以完成加密过程。请您谨记:钱包加密并不是万能的,电脑中毒等原因仍可能导致您的比特币意外丢失。 @@ -280,11 +284,11 @@ &Sending addresses... - &付款地址 + 正在发送地址(&S)... &Receiving addresses... - &收款地址 + 正在接收地址(&R)... Open &URI... @@ -412,7 +416,7 @@ &Command-line options - &命令行 选项 + 命令行选项(&C) Show the Bitcoin Core help message to get a list with possible Bitcoin command-line options @@ -474,6 +478,10 @@ Up to date 已是最新 + + Processed %n blocks of transaction history. + 已处理 %n 个交易历史数据块。 + Catching up... 更新中... @@ -517,6 +525,10 @@ Address: %4 CoinControlDialog + Coin Selection + 币源选择(Coin Selection) + + Quantity: 总量: @@ -565,6 +577,14 @@ Address: %4 金额 + Received with label + 按标签收款 + + + Received with address + 按地址收款 + + Date 日期 @@ -677,6 +697,10 @@ Address: %4 + Can vary +/- %1 satoshi(s) per input. + 可能会有 正负 %1 聪(satoshi)的偏差 + + yes @@ -886,10 +910,22 @@ Address: %4 比特币核心 + Error: Specified data directory "%1" cannot be created. + 错误:无法创建 指定的数据目录 "%1" + + Error 错误 - + + %n GB of free space available + 有 %n GB 空闲空间 + + + (of %n GB needed) + (需要%n GB空间) + + OpenURIDialog @@ -941,7 +977,7 @@ Address: %4 Number of script &verification threads - 脚本&验证 进程数 + 脚本验证线程数(&V) Accept connections from outside @@ -985,7 +1021,7 @@ Address: %4 W&allet - &钱包 + 钱包(&A) Expert @@ -993,7 +1029,7 @@ Address: %4 Enable coin &control features - 启动货币 &控制功能 + 启动货币控制功能(&C) If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed. @@ -1001,7 +1037,7 @@ Address: %4 &Spend unconfirmed change - &选择未经确认的花费 + 使用未经确认的零钱(&S) Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. @@ -1012,6 +1048,14 @@ Address: %4 使用 &UPnP 映射端口 + Connect to the Bitcoin network through a SOCKS5 proxy. + 通过 SOCKS5 代理连接比特币网络。 + + + &Connect through SOCKS5 proxy (default proxy): + 通过 SO&CKS5 代理连接(默认代理): + + Proxy &IP: 代理服务器 &IP: @@ -1143,6 +1187,10 @@ Address: %4 尚未成熟的挖矿收入余额 + Balances + 余额 + + Total: 总额: @@ -1151,6 +1199,30 @@ Address: %4 您当前的总余额 + Your current balance in watch-only addresses + 您当前 观察地址(watch-only address)的余额 + + + Spendable: + 可使用: + + + Recent transactions + 最近交易记录 + + + Unconfirmed transactions to watch-only addresses + 观察地址(watch-only address)的未确认交易记录 + + + Mined balance in watch-only addresses that has not yet matured + 观察地址(watch-only address)中尚未成熟(matured)的挖矿收入余额: + + + Current total balance in watch-only addresses + 观察地址(watch-only address)中的当前总余额 + + out of sync 数据同步中 @@ -1170,6 +1242,10 @@ Address: %4 支付请求被拒绝 + Payment request network doesn't match client network. + 付款请求所在的网络与当前客户端所在的网络不匹配。 + + Payment request has expired. 支付请求已超时 @@ -1194,10 +1270,18 @@ Address: %4 付款请求URI链接非法: %1 + URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. + URI无法解析!原因可能是比特币地址不正确,或者URI参数错误。 + + Payment request file handling 付款请求文件处理 + Payment request file cannot be read! This can be caused by an invalid payment request file. + 付款请求文件无法读取!可能是付款请求文件不合格。 + + Unverified payment requests to custom payment scripts are unsupported. 不支持到自定义付款脚本的未验证付款请求。 @@ -1206,10 +1290,22 @@ Address: %4 退款来自 %1 + Payment request %2 is too large (%3 bytes, allowed %4 bytes). + 支付请求 %2 太大 (%3 字节。只允许 %4 字节)。 + + + Payment request DoS protection + 支付请求防滥用保护 + + Error communicating with %1: %2 %1: %2 通讯出错 + Payment request cannot be parsed! + 无法解析 付款请求! + + Bad response from server %1 来自 %1 服务器的错误响应 @@ -1371,7 +1467,11 @@ Address: %4 &Peers - &同类 + 同伴(&P) + + + Select a peer to view detailed information. + 选择节点查看详细信息。 Direction @@ -1754,6 +1854,78 @@ Address: %4 自定义零钱地址 + Transaction Fee: + 交易费用: + + + Choose... + 选择... + + + collapse fee-settings + 收起 费用设置 + + + Minimize + 最小化 + + + 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. + 如果自定义交易费设置为 1000聪而交易大小只有250字节,则“每千字节" 模式只支付250聪交易费, 而"最少"模式则支付1000聪。 大于1000字节的交易按每千字节付费。 + + + per kilobyte + 每kb + + + 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. + 如果自定义交易费设置为 1000聪而交易大小只有250字节,则“每千字节" 模式只支付250聪交易费, 而"最少"模式则支付1000聪。 大于1000字节的交易按每千字节付费。 + + + total at least + 最小额 + + + 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. + 交易量小时只支付最小交易费是可以的。但是请注意,当交易量大时您的交易可能永远无法确认。 + + + (read the tooltip) + (请注意提示信息) + + + Recommended: + 推荐: + + + Custom: + 自定义: + + + (Smart fee not initialized yet. This usually takes a few blocks...) + (智能交易费用 尚未初始化。 需要再下载一些数据块...) + + + Confirmation time: + 确认时间: + + + normal + 一般 + + + fast + 快速 + + + Send as zero-fee transaction if possible + 发送时尽可能 不支付交易费用 + + + (confirmation may take longer) + (确认时间更长) + + Send to multiple recipients at once 一次发送给多个接收者 @@ -1858,6 +2030,18 @@ Address: %4 错误:该交易被拒绝!发生这种错误的原因可能是:钱包中的比特币已经被用掉,有可能您复制了wallet.dat钱包文件,然后用复制的钱包文件支付了比特币,但是这个钱包文件中没有记录。 + A fee higher than %1 is considered an insanely high fee. + 高于 %1的交易费 将视为 过高的交易费。 + + + Pay only the minimum fee of %1 + 只支付最小费用 %1 + + + Estimated to begin confirmation within %1 block(s). + 预计%1 个数据块后确认。 + + Warning: Invalid Bitcoin address 警告:无效的比特币地址 @@ -1909,6 +2093,10 @@ Address: %4 这是笔正常的支付。 + The Bitcoin address to send the payment to + 付款目的地址 + + Alt+A Alt+A @@ -1979,6 +2167,10 @@ Address: %4 您可以用你的地址对消息进行签名,以证明您是该地址的所有人。注意不要对模棱两可的消息签名,以免遭受钓鱼式攻击。请确保消息内容准确的表达了您的真实意愿。 + The Bitcoin address to sign the message with + 用来对消息签名的地址 + + Choose previously used address 选择以前用过的地址 @@ -2031,6 +2223,10 @@ Address: %4 在下面输入签名地址,消息(请确保换行符、空格符、制表符等等一个不漏)和签名以验证消息。请确保签名信息准确,提防中间人攻击。 + The Bitcoin address the message was signed with + 消息使用的签名地址 + + Verify the message to ensure it was signed with the specified Bitcoin address 验证消息,确保消息是由指定的比特币地址签名过的。 @@ -2143,6 +2339,10 @@ Address: %4 Status 状态 + + , broadcast through %n node(s) + , 通过 %n 个节点广播 + Date 日期 @@ -2168,6 +2368,10 @@ Address: %4 自己的地址 + watch-only + 观察地址(watch-only) + + label 标签 @@ -2175,6 +2379,10 @@ Address: %4 Credit 收入 + + matures in %n more block(s) + %n 个数据块后成熟(mature) + not accepted 未被接受 @@ -2184,6 +2392,14 @@ Address: %4 支出 + Total debit + 总收入 + + + Total credit + 总支出 + + Transaction fee 交易费 @@ -2239,6 +2455,10 @@ Address: %4 , has not been successfully broadcast yet ,未被成功广播 + + Open for %n more block(s) + 再打开 %n 个数据块 + unknown 未知 @@ -2273,6 +2493,10 @@ Address: %4 Immature (%1 confirmations, will be available after %2) 未成熟 (%1 个确认,将在 %2 个后可用) + + Open for %n more block(s) + 再打开 %n 个数据块 + Open until %1 至 %1 个数据块时开启 @@ -2326,6 +2550,10 @@ Address: %4 挖矿所得 + watch-only + 观察地址(watch-only) + + (n/a) (不可用) @@ -2342,6 +2570,10 @@ Address: %4 交易类别。 + Whether or not a watch-only address is involved in this transaction. + 该交易中是否涉及 观察地址(watch-only address)。 + + Destination address of transaction. 交易目的地址。 @@ -2437,6 +2669,10 @@ Address: %4 导出交易历史 + Watch-only + 观察地址(Watch-only) + + Exporting Failed 导出失败 @@ -2491,7 +2727,11 @@ Address: %4 UnitDisplayStatusBarControl - + + Unit to show amounts in. Click to select another unit. + 金额单位。单击选择别的单位。 + + WalletFrame @@ -2582,44 +2822,20 @@ Address: %4 接受来自外部的连接 (缺省: 如果不带 -proxy or -connect 参数设置为1) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, 您必须在配置文件设置rpcpassword: - %s -建议您使用下面的随机密码: -rpcuser=bitcoinrpc -rpcpassword=%s -(您无需记住此密码) -用户名和密码 必! 须! 不一样。 -如果配置文件不存在,请自行建立一个只有所有者拥有只读权限的文件。 -推荐您开启提示通知以便收到错误通知, -像这样: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 绑定指定的IP地址开始监听。IPv6地址请使用[host]:port 格式 - Enter regression test mode, which uses a special chain in which blocks can be solved instantly. - 进入回归测试模式,它采用一种特殊的可立即解决的区块链模拟情况。 + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + 删除钱包的所有交易记录,且只有用 -rescan参数启动客户端才能重新取回交易记录 - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - 错误:该交易被拒绝!发生这种错误的原因可能是:钱包中的比特币已经被用掉,有可能您复制了wallet.dat钱包文件,然后用复制的钱包文件支付了比特币,但是这个钱包文件中没有记录。 + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - 错误:因为该交易的数量、复杂度或者动用了刚收到不久的资金,您需要支付不少于%s的交易费用。 + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + 进入回归测试模式,它采用一种特殊的可立即解决的区块链模拟情况。 Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) @@ -2662,6 +2878,10 @@ rpcpassword=%s 警告:钱包文件wallet.dat损坏! 原始的钱包文件已经备份到%s目录下并重命名为{timestamp}.bak 。如果您的账户余额或者交易记录不正确,请使用您的钱包备份文件恢复。 + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + 节点白名单,网络掩码或IP址。可多次指定。 + + (default: 1) (默认值: 1) @@ -2722,12 +2942,12 @@ rpcpassword=%s 导入数据块数据库出错 - Error: Disk space is low! - 错误:磁盘剩余空间低! + Error: A fatal internal error occured, see debug.log for details + 错误:发生了致命的内部错误,请打开debug.log查看详细信息 - Error: Wallet locked, unable to create transaction! - 错误:钱包被锁定,无法创建交易! + Error: Disk space is low! + 错误:磁盘剩余空间低! Failed to listen on any port. Use -listen=0 if you want this. @@ -2754,6 +2974,10 @@ rpcpassword=%s 没有足够的文件描述符可用。 + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + 只连接 <net>网络中的节点 (ipv4, ipv6 或 onion) + + Rebuild block chain index from current blk000??.dat files 重新为当前的blk000??.dat文件建立索引 @@ -2774,6 +2998,10 @@ rpcpassword=%s 这是用于回归测试和应用开发目的。 + Use UPnP to map the listening port (default: %u) + 使用UPnp映射监听端口 (默认: %u) + + Verifying blocks... 正在验证数据库的完整性... @@ -2798,14 +3026,70 @@ rpcpassword=%s 从blk000??.dat文件导入数据块 + Allow JSON-RPC connections from specified source. Valid for <ip> 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). This option can be specified multiple times + 允许来自指定地址的 JSON-RPC 连接。 <ip>为单一IP (如: 1.2.3.4), 网络/掩码 (如: 1.2.3.4/255.255.255.0), 网络/CIDR (如: 1.2.3.4/24)。该选项可多次指定。 + + + An error occurred while setting up the RPC address %s port %u for listening: %s + 设置RPC监听端口 %s:%u 时发生错误: %s + + + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + 绑定到指定地址和连接的白名单节点。 IPv6使用 [主机]:端口 格式 + + + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + 绑定到指定地址监听 JSON-RPC连接。 IPv6使用[主机]:端口 格式。该选项可多次指定 (默认: 绑定到所有接口) + + Cannot obtain a lock on data directory %s. Bitcoin Core is probably already running. 无法获取数据目录的 %s. 比特币核心钱包可能已经在运行. + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + 创建系统默认权限的文件,而不是 umask 077 (只在关闭钱包功能时有效) + + + Error: Listening for incoming connections failed (listen returned error %s) + 错误:监听外部连接失败 (监听返回错误 %s) + + + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + 错误:不支持的 -socks 参数。不再支持设置SOCKS版本,现在只支持 SOCKS5代理。 + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) 当收到相关提醒或者我们看到一个长分叉时执行命令(%s 将替换为消息) + Fees (in BTC/Kb) smaller than this are considered zero fee for relaying (default: %s) + 交易费(BTC/kb)比这更小的交易在转发时将被视为零费交易 (默认: %s) + + + Fees (in BTC/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + 交易费(BTC/kb)比这更小的交易在生成交易时将被视为零费交易 (默认: %s) + + + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + 如果未设置交易费用,自动添加足够的交易费以确保交易在平均n个数据块内被确认 (默认: %u) + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + -maxtxfee=<amount>: '%s' 的金额无效(交易费至少为 %s,以免交易滞留过久) + + + Maximum size of data in data carrier transactions we relay and mine (default: %u) + Maximum size of data in data carrier transactions we relay and mine (default: %u) + + + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + 单笔钱包交易中最多使用的交易费,设置过低可能中止大笔交易 (默认: %s) + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) 通过DNS查询每个地址,如果短地址 (默认值: 1 除非 -连接) @@ -2814,6 +3098,54 @@ rpcpassword=%s 设置 高优先级/低交易费 交易的最大字节 (缺省: %d) + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + 设置比特币生成线程数 ( -1=所有核, 默认: %d) + + + 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. + 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. + + + To use bitcoind, or the -server option to bitcoin-qt, you must set an rpcpassword in the configuration file: +%s +It is recommended you use the following random password: +rpcuser=bitcoinrpc +rpcpassword=%s +(you do not need to remember this password) +The username and password MUST NOT be the same. +If the file does not exist, create it with owner-readable-only file permissions. +It is also recommended to set alertnotify so you are notified of problems; +for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + 要使用 bitcoind 或者 bitcoin-qt 中的 -server 选项,您必须在配置文件中设置一个密码: +%s +建议您使用下列随机密码: +rpcuser=bitcoinrpc +rpcpassword=%s +(您不需要记住这个密码) +用户名和密码不能相同。 +如果该文件不存在,创建一个文件并设置权限为仅创建者可读。 +此外,还建议您设置 alertnotify 以便您能注意到问题: +例如 alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + 警告:-maxtxfee 设置的太高了!每进行一笔交易时您都要花费这么多费用。 + + + Warning: Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly. + 警告:请检查电脑的日期时间设置是否正确!时间错误可能会导致比特币客户端运行异常。 + + + Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway + 白名单节点不能被DoS banned ,且转发所有来自他们的交易(即便这些交易已经存在于mempool中),常用于网关 + + + Accept public REST requests (default: %u) + 接受公共 REST 请求 (默认: %u) + + Cannot resolve -whitebind address: '%s' 无法解析 -whitebind 地址: '%s' @@ -2838,6 +3170,10 @@ rpcpassword=%s 错误:发现了不支持的参数 -tor,请使用 -onion。 + Fee (in BTC/kB) to add to transactions you send (default: %s) + 为付款交易添加交易费 (BTC/kb) (默认: %s) + + Information 信息 @@ -2846,6 +3182,10 @@ rpcpassword=%s 初始化完整性检查失败。Bitcoin Core 即将关闭。 + Invalid amount for -maxtxfee=<amount>: '%s' + -maxtxfee=<amount>: '%s' 的金额无效 + + Invalid amount for -minrelaytxfee=<amount>: '%s' -minrelaytxfee=<amount>: '%s' 无效的金额 @@ -2870,10 +3210,6 @@ rpcpassword=%s 节点中继选项: - Print block on startup, if found in block index - 如果在搜索区块中找到,请启动打印区块 - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) RPC SSL选项:(见有关比特币设置用于SSL说明的维基百科) @@ -2894,6 +3230,10 @@ rpcpassword=%s 跟踪/调试信息输出到控制台,不输出到 debug.log 文件 + Send transactions as zero-fee transactions if possible (default: %u) + 发送时尽可能 不支付交易费用 (默认: %u) + + Show all debugging options (usage: --help -help-debug) 显示所有调试选项 (用法: --帮助 -帮助调试) @@ -2918,6 +3258,10 @@ rpcpassword=%s 交易金额必须是积极的 + Transaction too large for fee policy + 费用策略的交易太大 + + Transaction too large 交易太大 @@ -3004,14 +3348,166 @@ rpcpassword=%s wallet.dat 钱包文件加载出错:钱包损坏 + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = 保留 tx meta data , 如 account owner 和 payment request information, 2 = 不保留 tx meta data) + + + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + + + How thorough the block verification of -checkblocks is (0-4, default: %u) + 数据块验证 严密级别 -checkblocks (0-4, 默认: %u) + + + Log transaction priority and fee per kB when mining blocks (default: %u) + 挖矿时,记录交易优先级 和 每kb交易费 (默认: %u) + + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + 维护一份完整的交易索引, 用于 getrawtransaction RPC调用 (默认: %u) + + + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + 限制 非礼节点 若干秒内不能连接 (默认: %u) + + + Output debugging information (default: %u, supplying <category> is optional) + 输出调试信息 (默认: %u, 提供 <category> 是可选项) + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + 通过Tor隐藏服务连接节点时 使用不同的SOCKS5代理 (默认: %s) + + + (default: %s) + (默认: %s) + + + Acceptable ciphers (default: %s) + 可接受的密码算法 (默认: %s) + + + Disable safemode, override a real safe mode event (default: %u) + 禁止使用安全模式,重新写入一个真正的安全模式日志(默认: %u) + + Error loading wallet.dat wallet.dat 钱包文件加载出错 + Force safe mode (default: %u) + 强制安全模式 (默认: %u) + + + Generate coins (default: %u) + 生成比特币 (默认: %u) + + + How many blocks to check at startup (default: %u, 0 = all) + 启动时检测多少个数据块(默认: %u, 0=所有) + + + Include IP addresses in debug output (default: %u) + 在调试输出中包含IP地址 (默认: %u) + + Invalid -proxy address: '%s' 无效的代理地址:%s + Limit size of signature cache to <n> entries (default: %u) + 签名缓冲区大小限制最多 <n> 条 (默认: %u) + + + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + 使用 <port>端口监听 JSON-RPC 连接 (默认: %u ; testnet: %u) + + + Listen for connections on <port> (default: %u or testnet: %u) + 使用端口 <port> 监听连接 (默认: %u ; testnet: %u) + + + Maintain at most <n> connections to peers (default: %u) + 保留最多 <n> 条节点连接 (默认: %u) + + + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + 每个连接的最大接收缓存,<n>*1000 字节 (默认: %u) + + + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + 每个连接的最大发送缓存,<n>*1000 字节 (默认: %u) + + + Only accept block chain matching built-in checkpoints (default: %u) + 仅接受符合客户端检查点设置 的数据块链 (默认: %u) + + + Prepend debug output with timestamp (default: %u) + 输出调试信息时,前面加上时间戳 (默认: %u) + + + Relay and mine data carrier transactions (default: %u) + Relay and mine data carrier transactions (default: %u) + + + Relay non-P2SH multisig (default: %u) + 是否转发 非P2SH格式的多签名交易 (默认: %u) + + + Run a thread to flush wallet periodically (default: %u) + 运行一个线程,定时清理钱包 (默认: %u) + + + Server certificate file (default: %s) + 服务器证书文件 (默认: %s) + + + Server private key (default: %s) + 服务器私钥 (默认: %s) + + + Set key pool size to <n> (default: %u) + 设置私钥池大小为 <n> (默认:%u) + + + Set minimum block size in bytes (default: %u) + 设置数据块 最小字节数 (默认: %u) + + + Set the number of threads to service RPC calls (default: %d) + 设置RPC服务线程数 (默认: %d) + + + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + + + Specify configuration file (default: %s) + 指定配置文件 (默认: %s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + 指定连接超时毫秒数 (最小: 1, 默认: %d) + + + Specify pid file (default: %s) + 指定 pid 文件 (默认: %s) + + + Spend unconfirmed change when sending transactions (default: %u) + 付款时允许使用未确认的零钱 (默认: %u) + + + Stop running after importing blocks from disk (default: %u) + 从磁盘导入数据块后退出 (默认: %u) + + + Threshold for disconnecting misbehaving peers (default: %u) + 断开 非礼节点的阀值 (默认: %u) + + Unknown network specified in -onlynet: '%s' -onlynet 指定的是未知网络:%s @@ -3028,10 +3524,6 @@ rpcpassword=%s 非法金额 -paytxfee=<amount>: '%s' - Invalid amount - 无效金额 - - Insufficient funds 金额不足 @@ -3064,10 +3556,6 @@ rpcpassword=%s 加载完成 - To use the %s option - 使用 %s 选项 - - Error 错误 diff --git a/src/qt/locale/bitcoin_zh_TW.ts b/src/qt/locale/bitcoin_zh_TW.ts index 72f3ac847d7..db39b3fc6b9 100644 --- a/src/qt/locale/bitcoin_zh_TW.ts +++ b/src/qt/locale/bitcoin_zh_TW.ts @@ -2,8 +2,8 @@ AddressBookPage - Double-click to edit address or label - 按兩下來編輯位址或標記 + Right-click to edit address or label + 右鍵點一下來修改位址或標記 Create a new address @@ -1289,6 +1289,14 @@ Address: %4 來自 %1 的退款 + Payment request %2 is too large (%3 bytes, allowed %4 bytes). + 付款要求 %2 過大 (%3 位元組, 上限 %4 位元組). + + + Payment request DoS protection + 支付請求的分佈式阻斷服務攻擊DoS保護 + + Error communicating with %1: %2 跟 %1 通訊時發生錯誤: %2 @@ -2808,30 +2816,6 @@ Address: %4 是否接受外來連線(預設值: 當沒有 -proxy 或 -connect 時為 1) - %s, you must set a rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - %s, 你必須要在以下設定檔中設定 RPC 密碼(rpcpassword): -%s -建議你使用以下隨機產生的密碼: -rpcuser=bitcoinrpc -rpcpassword=%s -(你不用記住這個密碼) -使用者名稱(rpcuser)和密碼(rpcpassword)不可以相同! -如果還沒有這個設定檔,請在造出來的時候,設定檔案權限成「只有主人才能讀取」。 -也建議你設定警示通知,發生問題時你才會被通知到; -比如說設定成: -alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 和指定的位址繫結,並且一直在指定位址聽候連線。IPv6 請用 [主機]:通訊埠 這種格式 @@ -2848,14 +2832,6 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com 進入回歸測試模式,使用可以立即解出區塊的特殊區塊鏈。 - Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - 錯誤: 交易被拒絕了!有時候會發生這種錯誤,是因為你錢包中的一些錢已經被花掉了。比如說你複製了錢包檔 wallet.dat, 然後用複製的錢包花掉了錢,你現在所用的原來的錢包中,卻沒有那筆錢已經花掉的紀錄。 - - - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! - 錯誤: 這筆交易需要至少 %s 的手續費!因為它的金額太大,或複雜度太高,或是使用了最近才剛收到的款項。 - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) 當錢包有交易改變時要執行的指令(指令中的 %s 會被取代成交易識別碼) @@ -2968,10 +2944,6 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com 錯誤: 磁碟空間很少! - Error: Wallet locked, unable to create transaction! - 錯誤: 錢包被上鎖了,沒辦法製造新的交易! - - Failed to listen on any port. Use -listen=0 if you want this. 在任意的通訊埠聽候失敗。如果你希望這樣的話,可以設定 -listen=0. @@ -3092,10 +3064,22 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com 當製造交易時,如果每千位元組(Kb)的手續費比這個值低,就視為沒付手續費 (預設值: %s) + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + 當沒有設定 paytxfee 時,自動包含可以讓交易能在平均 n 個區塊內開始確認的手續費(預設值: %u) + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + -maxtxfee=<amount>: '%s' 的金額無效 (必須大於最低轉發手續費 %s 以避免交易無法確認) + + Maximum size of data in data carrier transactions we relay and mine (default: %u) 轉發和開採時,對只帶資料的交易的大小上限(預設值: %u) + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + 一次錢包交易允許付出最高的總手續費,設定太低的話,可能會無法進行資料量大的交易(預設值: %s) + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) 是否允許在節點位址數目不足時,使用域名查詢來搜尋節點 (預設值: 當沒用 -connect 時為 1) @@ -3112,6 +3096,34 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com 此產品也包含了由 OpenSSL Project 所開發的 OpenSSL Toolkit 軟體 <https://www.openssl.org/>, 和由 Eric Young 撰寫的加解密軟體,以及由 Thomas Bernard 所撰寫的 UPnP 軟體。 + To use bitcoind, or the -server option to bitcoin-qt, you must set an rpcpassword in the configuration file: +%s +It is recommended you use the following random password: +rpcuser=bitcoinrpc +rpcpassword=%s +(you do not need to remember this password) +The username and password MUST NOT be the same. +If the file does not exist, create it with owner-readable-only file permissions. +It is also recommended to set alertnotify so you are notified of problems; +for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + 要使用 bitcoind, 或是對 bitcoin-qt 指定 -server 選項,你必須要在以下設定檔中設定 RPC 密碼(選項: rpcpassword): +%s +建議你使用以下隨機產生的密碼: +rpcuser=bitcoinrpc +rpcpassword=%s +(你不用記住這個密碼) +注意使用者名稱(rpcuser)和密碼(rpcpassword)不可以相同! +如果設定檔還不存在,請在新增時,設定檔案權限為"只有主人才能讀取"。 +也建議你設定警示通知,這樣發生問題時你才會被通知到; +比如說設定: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + 警告: -maxtxfee 設定了很高的金額!這可是一次交易就有可能付出的最高手續費。 + + Warning: Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly. 警告: 請檢查電腦日期和時間是否正確!位元幣核心沒辦法在時鐘不準的情況下正常運作。 @@ -3120,6 +3132,10 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com 在白名單中的節點不會因為偵測到阻斷服務攻擊而被停用。來自這些節點的交易也一定會被轉發,即使說交易本來就在記憶池裡了也一樣。適用於像是閘道伺服器。 + Accept public REST requests (default: %u) + 接受公開的REST請求 (預設值: %u) + + Cannot resolve -whitebind address: '%s' 沒辦法解析 -whitebind 指定的位址: '%s' @@ -3156,6 +3172,10 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com 初始化時的基本檢查失敗了。位元幣核心將會關閉。 + Invalid amount for -maxtxfee=<amount>: '%s' + -maxtxfee=<amount>: '%s' 的金額無效 + + Invalid amount for -minrelaytxfee=<amount>: '%s' 設定最低轉發手續費 -minrelaytxfee=<金額> 的金額無效: '%s' @@ -3172,10 +3192,6 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com 指定在 -whitelist 的網段無效: '%s' - Keep at most <n> unconnectable blocks in memory (default: %u) - 在記憶體中保存最多 <n> 個不和其他區塊相連結的區塊(預設值 : %u) - - Keep at most <n> unconnectable transactions in memory (default: %u) 保持最多 <n> 無法連結的交易在記憶體 (預設: %u) @@ -3188,10 +3204,6 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com 節點轉發選項: - Print block on startup, if found in block index - 啟動時輸出指定的區塊內容,如果有在區塊索引中找到的話 - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) RPC SSL 選項: (SSL 設定程序請見 Bitcoin Wiki) @@ -3240,6 +3252,10 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com 交易金額必須是正的 + Transaction too large for fee policy + 根據交易手續費準則,本交易的位元量過大 + + Transaction too large 交易位元量太大 @@ -3336,10 +3352,6 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com 使用 -checkblocks 檢查區塊的仔細程度(0 到 4,預設值: %u) - If paytxfee is not set, include enough fee so transactions are confirmed on average within n blocks (default: %u) - 當沒有設定 paytxfee 時,自動包含可以讓交易能在平均 n 個區塊內確認的手續費(預設值: %u) - - Log transaction priority and fee per kB when mining blocks (default: %u) 開採區塊的時候,紀錄交易的優先度以及每千位元組(kB)的手續費(預設值: %u) @@ -3432,10 +3444,6 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com 在除錯輸出內容前附加時間(預設值: %u) - Print block tree on startup (default: %u) - 啟動時輸出區塊樹(預設值: %u) - - Relay and mine data carrier transactions (default: %u) 允許轉發和開採只帶資料的交易(預設值: %u) @@ -3512,10 +3520,6 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com 設定 -paytxfee=<金額> 的金額無效: '%s' - Invalid amount - 無效的金額 - - Insufficient funds 累積金額不足 @@ -3548,10 +3552,6 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com 載入完成 - To use the %s option - 為了要使用 %s 選項 - - Error 錯誤 From a1f425b48bb3c2c2e8b3ee00c1020bc18dc70a26 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Fri, 13 Mar 2015 09:25:34 -0700 Subject: [PATCH 099/201] Add a consistency check for the block chain data structures This adds a -checkblockindex (defaulting to true for regtest), which occasionally does a full consistency check for mapBlockIndex, setBlockIndexCandidates, chainActive, and mapBlocksUnlinked. --- src/chainparams.cpp | 10 ++-- src/chainparams.h | 8 +-- src/init.cpp | 5 +- src/main.cpp | 147 ++++++++++++++++++++++++++++++++++++++++++++-- src/main.h | 1 + src/test/test_bitcoin.cpp | 1 + 6 files changed, 157 insertions(+), 15 deletions(-) diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 0291fd98640..ffcbaceb0a2 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -168,8 +168,8 @@ class CMainParams : public CChainParams { fRequireRPCPassword = true; fMiningRequiresPeers = true; - fDefaultCheckMemPool = false; fAllowMinDifficultyBlocks = false; + fDefaultConsistencyChecks = false; fRequireStandard = true; fMineBlocksOnDemand = false; fSkipProofOfWorkCheck = false; @@ -227,8 +227,8 @@ class CTestNetParams : public CMainParams { fRequireRPCPassword = true; fMiningRequiresPeers = true; - fDefaultCheckMemPool = false; fAllowMinDifficultyBlocks = true; + fDefaultConsistencyChecks = false; fRequireStandard = false; fMineBlocksOnDemand = false; fTestnetToBeDeprecatedFieldRPC = true; @@ -272,8 +272,8 @@ class CRegTestParams : public CTestNetParams { fRequireRPCPassword = false; fMiningRequiresPeers = false; - fDefaultCheckMemPool = true; fAllowMinDifficultyBlocks = true; + fDefaultConsistencyChecks = true; fRequireStandard = false; fMineBlocksOnDemand = true; fTestnetToBeDeprecatedFieldRPC = false; @@ -299,7 +299,7 @@ class CUnitTestParams : public CMainParams, public CModifiableParams { fRequireRPCPassword = false; fMiningRequiresPeers = false; - fDefaultCheckMemPool = true; + fDefaultConsistencyChecks = true; fAllowMinDifficultyBlocks = false; fMineBlocksOnDemand = true; } @@ -315,7 +315,7 @@ class CUnitTestParams : public CMainParams, public CModifiableParams { virtual void setEnforceBlockUpgradeMajority(int anEnforceBlockUpgradeMajority) { nEnforceBlockUpgradeMajority=anEnforceBlockUpgradeMajority; } virtual void setRejectBlockOutdatedMajority(int anRejectBlockOutdatedMajority) { nRejectBlockOutdatedMajority=anRejectBlockOutdatedMajority; } virtual void setToCheckBlockUpgradeMajority(int anToCheckBlockUpgradeMajority) { nToCheckBlockUpgradeMajority=anToCheckBlockUpgradeMajority; } - virtual void setDefaultCheckMemPool(bool afDefaultCheckMemPool) { fDefaultCheckMemPool=afDefaultCheckMemPool; } + virtual void setDefaultConsistencyChecks(bool afDefaultConsistencyChecks) { fDefaultConsistencyChecks=afDefaultConsistencyChecks; } virtual void setAllowMinDifficultyBlocks(bool afAllowMinDifficultyBlocks) { fAllowMinDifficultyBlocks=afAllowMinDifficultyBlocks; } virtual void setSkipProofOfWorkCheck(bool afSkipProofOfWorkCheck) { fSkipProofOfWorkCheck = afSkipProofOfWorkCheck; } }; diff --git a/src/chainparams.h b/src/chainparams.h index 5d1ee1d3c6b..ef20a885585 100644 --- a/src/chainparams.h +++ b/src/chainparams.h @@ -58,8 +58,8 @@ class CChainParams bool RequireRPCPassword() const { return fRequireRPCPassword; } /** Make miner wait to have peers to avoid wasting work */ bool MiningRequiresPeers() const { return fMiningRequiresPeers; } - /** Default value for -checkmempool argument */ - bool DefaultCheckMemPool() const { return fDefaultCheckMemPool; } + /** Default value for -checkmempool and -checkblockindex argument */ + bool DefaultConsistencyChecks() const { return fDefaultConsistencyChecks; } /** Allow mining of a min-difficulty block */ bool AllowMinDifficultyBlocks() const { return fAllowMinDifficultyBlocks; } /** Skip proof-of-work check: allow mining of any difficulty block */ @@ -103,8 +103,8 @@ class CChainParams std::vector vFixedSeeds; bool fRequireRPCPassword; bool fMiningRequiresPeers; - bool fDefaultCheckMemPool; bool fAllowMinDifficultyBlocks; + bool fDefaultConsistencyChecks; bool fRequireStandard; bool fMineBlocksOnDemand; bool fSkipProofOfWorkCheck; @@ -124,7 +124,7 @@ class CModifiableParams { virtual void setEnforceBlockUpgradeMajority(int anEnforceBlockUpgradeMajority)=0; virtual void setRejectBlockOutdatedMajority(int anRejectBlockOutdatedMajority)=0; virtual void setToCheckBlockUpgradeMajority(int anToCheckBlockUpgradeMajority)=0; - virtual void setDefaultCheckMemPool(bool aDefaultCheckMemPool)=0; + virtual void setDefaultConsistencyChecks(bool aDefaultConsistencyChecks)=0; virtual void setAllowMinDifficultyBlocks(bool aAllowMinDifficultyBlocks)=0; virtual void setSkipProofOfWorkCheck(bool aSkipProofOfWorkCheck)=0; }; diff --git a/src/init.cpp b/src/init.cpp index df199ae487a..9ff87ad1e6a 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -656,8 +656,9 @@ bool AppInit2(boost::thread_group& threadGroup) if (GetBoolArg("-benchmark", false)) InitWarning(_("Warning: Unsupported argument -benchmark ignored, use -debug=bench.")); - // Checkmempool defaults to true in regtest mode - mempool.setSanityCheck(GetBoolArg("-checkmempool", Params().DefaultCheckMemPool())); + // Checkmempool and checkblockindex default to true in regtest mode + mempool.setSanityCheck(GetBoolArg("-checkmempool", Params().DefaultConsistencyChecks())); + fCheckBlockIndex = GetBoolArg("-checkblockindex", Params().DefaultConsistencyChecks()); Checkpoints::fEnabled = GetBoolArg("-checkpoints", true); // -par=0 means autodetect, but nScriptCheckThreads==0 means no concurrency diff --git a/src/main.cpp b/src/main.cpp index 64185904624..dc6f37c2200 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -51,6 +51,7 @@ bool fImporting = false; bool fReindex = false; bool fTxIndex = false; bool fIsBareMultisigStd = true; +bool fCheckBlockIndex = false; unsigned int nCoinCacheSize = 5000; @@ -67,6 +68,8 @@ map mapOrphanTransactions; map > mapOrphanTransactionsByPrev; void EraseOrphansFor(NodeId peer); +static void CheckBlockIndex(); + /** Constant stuff for coinbase transactions we create: */ CScript COINBASE_FLAGS; @@ -77,7 +80,7 @@ namespace { struct CBlockIndexWorkComparator { - bool operator()(CBlockIndex *pa, CBlockIndex *pb) { + bool operator()(CBlockIndex *pa, CBlockIndex *pb) const { // First sort by most total work, ... if (pa->nChainWork > pb->nChainWork) return false; if (pa->nChainWork < pb->nChainWork) return true; @@ -99,8 +102,8 @@ namespace { CBlockIndex *pindexBestInvalid; /** - * The set of all CBlockIndex entries with BLOCK_VALID_TRANSACTIONS or better that are at least - * as good as our current tip. Entries may be failed, though. + * The set of all CBlockIndex entries with BLOCK_VALID_TRANSACTIONS (for itself and all ancestors) and + * as good as our current tip or better. Entries may be failed, though. */ set setBlockIndexCandidates; /** Number of nodes with fSyncStarted. */ @@ -2195,6 +2198,7 @@ bool ActivateBestChain(CValidationState &state, CBlock *pblock) { uiInterface.NotifyBlockTip(hashNewTip); } } while(pindexMostWork != chainActive.Tip()); + CheckBlockIndex(); // Write changes periodically to disk, after relay. if (!FlushStateToDisk(state, FLUSH_STATE_PERIODIC)) { @@ -2331,7 +2335,9 @@ bool ReceivedBlockTransactions(const CBlock &block, CValidationState& state, CBl CBlockIndex *pindex = queue.front(); queue.pop_front(); pindex->nChainTx = (pindex->pprev ? pindex->pprev->nChainTx : 0) + pindex->nTx; - setBlockIndexCandidates.insert(pindex); + if (chainActive.Tip() == NULL || !setBlockIndexCandidates.value_comp()(pindex, chainActive.Tip())) { + setBlockIndexCandidates.insert(pindex); + } std::pair::iterator, std::multimap::iterator> range = mapBlocksUnlinked.equal_range(pindex); while (range.first != range.second) { std::multimap::iterator it = range.first; @@ -2745,6 +2751,7 @@ bool ProcessNewBlock(CValidationState &state, CNode* pfrom, CBlock* pblock, CDis if (pindex && pfrom) { mapBlockSource[pindex->GetBlockHash()] = pfrom->GetId(); } + CheckBlockIndex(); if (!ret) return error("%s : AcceptBlock FAILED", __func__); } @@ -3212,6 +3219,136 @@ bool LoadExternalBlockFile(FILE* fileIn, CDiskBlockPos *dbp) return nLoaded > 0; } +void static CheckBlockIndex() +{ + if (!fCheckBlockIndex) { + return; + } + + LOCK(cs_main); + + // Build forward-pointing map of the entire block tree. + std::multimap forward; + for (BlockMap::iterator it = mapBlockIndex.begin(); it != mapBlockIndex.end(); it++) { + forward.insert(std::make_pair(it->second->pprev, it->second)); + } + + assert(forward.size() == mapBlockIndex.size()); + + std::pair::iterator,std::multimap::iterator> rangeGenesis = forward.equal_range(NULL); + CBlockIndex *pindex = rangeGenesis.first->second; + rangeGenesis.first++; + assert(rangeGenesis.first == rangeGenesis.second); // There is only one index entry with parent NULL. + + // Iterate over the entire block tree, using depth-first search. + // Along the way, remember whether there are blocks on the path from genesis + // block being explored which are the first to have certain properties. + size_t nNodes = 0; + int nHeight = 0; + CBlockIndex* pindexFirstInvalid = NULL; // Oldest ancestor of pindex which is invalid. + CBlockIndex* pindexFirstMissing = NULL; // Oldest ancestor of pindex which does not have BLOCK_HAVE_DATA. + CBlockIndex* pindexFirstNotTreeValid = NULL; // Oldest ancestor of pindex which does not have BLOCK_VALID_TREE (regardless of being valid or not). + CBlockIndex* pindexFirstNotChainValid = NULL; // Oldest ancestor of pindex which does not have BLOCK_VALID_CHAIN (regardless of being valid or not). + CBlockIndex* pindexFirstNotScriptsValid = NULL; // Oldest ancestor of pindex which does not have BLOCK_VALID_SCRIPTS (regardless of being valid or not). + while (pindex != NULL) { + nNodes++; + if (pindexFirstInvalid == NULL && pindex->nStatus & BLOCK_FAILED_VALID) pindexFirstInvalid = pindex; + if (pindexFirstMissing == NULL && !(pindex->nStatus & BLOCK_HAVE_DATA)) pindexFirstMissing = pindex; + if (pindex->pprev != NULL && pindexFirstNotTreeValid == NULL && (pindex->nStatus & BLOCK_VALID_MASK) < BLOCK_VALID_TREE) pindexFirstNotTreeValid = pindex; + if (pindex->pprev != NULL && pindexFirstNotChainValid == NULL && (pindex->nStatus & BLOCK_VALID_MASK) < BLOCK_VALID_CHAIN) pindexFirstNotChainValid = pindex; + if (pindex->pprev != NULL && pindexFirstNotScriptsValid == NULL && (pindex->nStatus & BLOCK_VALID_MASK) < BLOCK_VALID_SCRIPTS) pindexFirstNotScriptsValid = pindex; + + // Begin: actual consistency checks. + if (pindex->pprev == NULL) { + // Genesis block checks. + assert(pindex->GetBlockHash() == Params().HashGenesisBlock()); // Genesis block's hash must match. + assert(pindex == chainActive.Genesis()); // The current active chain's genesis block must be this block. + } + assert((pindexFirstMissing != NULL) == (pindex->nChainTx == 0)); // nChainTx == 0 is used to signal that all parent block's transaction data is available. + assert(pindex->nHeight == nHeight); // nHeight must be consistent. + assert(pindex->pprev == NULL || pindex->nChainWork >= pindex->pprev->nChainWork); // For every block except the genesis block, the chainwork must be larger than the parent's. + assert(nHeight < 2 || (pindex->pskip && (pindex->pskip->nHeight < nHeight))); // The pskip pointer must point back for all but the first 2 blocks. + assert(pindexFirstNotTreeValid == NULL); // All mapBlockIndex entries must at least be TREE valid + if ((pindex->nStatus & BLOCK_VALID_MASK) >= BLOCK_VALID_TREE) assert(pindexFirstNotTreeValid == NULL); // TREE valid implies all parents are TREE valid + if ((pindex->nStatus & BLOCK_VALID_MASK) >= BLOCK_VALID_CHAIN) assert(pindexFirstNotChainValid == NULL); // CHAIN valid implies all parents are CHAIN valid + if ((pindex->nStatus & BLOCK_VALID_MASK) >= BLOCK_VALID_SCRIPTS) assert(pindexFirstNotScriptsValid == NULL); // SCRIPTS valid implies all parents are SCRIPTS valid + if (pindexFirstInvalid == NULL) { + // Checks for not-invalid blocks. + assert((pindex->nStatus & BLOCK_FAILED_MASK) == 0); // The failed mask cannot be set for blocks without invalid parents. + } + if (!CBlockIndexWorkComparator()(pindex, chainActive.Tip()) && pindexFirstMissing == NULL) { + if (pindexFirstInvalid == NULL) { // If this block sorts at least as good as the current tip and is valid, it must be in setBlockIndexCandidates. + assert(setBlockIndexCandidates.count(pindex)); + } + } else { // If this block sorts worse than the current tip, it cannot be in setBlockIndexCandidates. + assert(setBlockIndexCandidates.count(pindex) == 0); + } + // Check whether this block is in mapBlocksUnlinked. + std::pair::iterator,std::multimap::iterator> rangeUnlinked = mapBlocksUnlinked.equal_range(pindex->pprev); + bool foundInUnlinked = false; + while (rangeUnlinked.first != rangeUnlinked.second) { + assert(rangeUnlinked.first->first == pindex->pprev); + if (rangeUnlinked.first->second == pindex) { + foundInUnlinked = true; + break; + } + rangeUnlinked.first++; + } + if (pindex->pprev && pindex->nStatus & BLOCK_HAVE_DATA && pindexFirstMissing != NULL) { + if (pindexFirstInvalid == NULL) { // If this block has block data available, some parent doesn't, and has no invalid parents, it must be in mapBlocksUnlinked. + assert(foundInUnlinked); + } + } else { // If this block does not have block data available, or all parents do, it cannot be in mapBlocksUnlinked. + assert(!foundInUnlinked); + } + // assert(pindex->GetBlockHash() == pindex->GetBlockHeader().GetHash()); // Perhaps too slow + // End: actual consistency checks. + + // Try descending into the first subnode. + std::pair::iterator,std::multimap::iterator> range = forward.equal_range(pindex); + if (range.first != range.second) { + // A subnode was found. + pindex = range.first->second; + nHeight++; + continue; + } + // This is a leaf node. + // Move upwards until we reach a node of which we have not yet visited the last child. + while (pindex) { + // We are going to either move to a parent or a sibling of pindex. + // If pindex was the first with a certain property, unset the corresponding variable. + if (pindex == pindexFirstInvalid) pindexFirstInvalid = NULL; + if (pindex == pindexFirstMissing) pindexFirstMissing = NULL; + if (pindex == pindexFirstNotTreeValid) pindexFirstNotTreeValid = NULL; + if (pindex == pindexFirstNotChainValid) pindexFirstNotChainValid = NULL; + if (pindex == pindexFirstNotScriptsValid) pindexFirstNotScriptsValid = NULL; + // Find our parent. + CBlockIndex* pindexPar = pindex->pprev; + // Find which child we just visited. + std::pair::iterator,std::multimap::iterator> rangePar = forward.equal_range(pindexPar); + while (rangePar.first->second != pindex) { + assert(rangePar.first != rangePar.second); // Our parent must have at least the node we're coming from as child. + rangePar.first++; + } + // Proceed to the next one. + rangePar.first++; + if (rangePar.first != rangePar.second) { + // Move to the sibling. + pindex = rangePar.first->second; + break; + } else { + // Move up further. + pindex = pindexPar; + nHeight--; + continue; + } + } + } + + // Check that we actually traversed the entire map. + assert(nNodes == forward.size()); +} + ////////////////////////////////////////////////////////////////////////////// // // CAlert @@ -3968,6 +4105,8 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, LogPrint("net", "more getheaders (%d) to end to peer=%d (startheight:%d)\n", pindexLast->nHeight, pfrom->id, pfrom->nStartingHeight); pfrom->PushMessage("getheaders", chainActive.GetLocator(pindexLast), uint256(0)); } + + CheckBlockIndex(); } else if (strCommand == "block" && !fImporting && !fReindex) // Ignore blocks received while importing diff --git a/src/main.h b/src/main.h index e4096e9612b..71f21716d01 100644 --- a/src/main.h +++ b/src/main.h @@ -126,6 +126,7 @@ extern bool fReindex; extern int nScriptCheckThreads; extern bool fTxIndex; extern bool fIsBareMultisigStd; +extern bool fCheckBlockIndex; extern unsigned int nCoinCacheSize; extern CFeeRate minRelayTxFee; diff --git a/src/test/test_bitcoin.cpp b/src/test/test_bitcoin.cpp index e50218d8efb..5269e3bda7e 100644 --- a/src/test/test_bitcoin.cpp +++ b/src/test/test_bitcoin.cpp @@ -31,6 +31,7 @@ struct TestingSetup { TestingSetup() { fPrintToDebugLog = false; // don't want to write to debug.log file + fCheckBlockIndex = true; SelectParams(CBaseChainParams::UNITTEST); noui_connect(); #ifdef ENABLE_WALLET From 90bef6638fc689c13924fc17d115d5866b425e6c Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Mon, 30 Mar 2015 11:26:20 +0200 Subject: [PATCH 100/201] No notable changes for minor release --- doc/release-notes.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/release-notes.md b/doc/release-notes.md index 5083e6ccd6a..1e9e0581aa9 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -47,6 +47,9 @@ This does not affect wallet forward or backward compatibility. Notable changes =============== +This is a minor release and hence there are no notable changes. +For the notable changes in 0.10, refer to the release notes for the +0.10.0 release at https://github.com/bitcoin/bitcoin/blob/v0.10.0/doc/release-notes.md 0.10.1 Change log ================= From b78899425602085c759f7c889a6ddbb8ea5f6d38 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Sun, 8 Mar 2015 06:30:05 -0700 Subject: [PATCH 101/201] Switch addrman key from vector to uint256 Conflicts: src/addrman.cpp Rebased-From: b23add5521e4207085d41a0266617e94435fc22e Github-Pull: #5941 --- src/addrman.cpp | 14 ++++++++------ src/addrman.h | 21 +++++++++++++++------ 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/src/addrman.cpp b/src/addrman.cpp index e4e001348ee..c53d40f7219 100644 --- a/src/addrman.cpp +++ b/src/addrman.cpp @@ -10,30 +10,30 @@ using namespace std; -int CAddrInfo::GetTriedBucket(const std::vector& nKey) const +int CAddrInfo::GetTriedBucket(const uint256& nKey) const { CDataStream ss1(SER_GETHASH, 0); std::vector vchKey = GetKey(); - ss1 << nKey << vchKey; + ss1 << ((unsigned char)32) << nKey << vchKey; uint64_t hash1 = Hash(ss1.begin(), ss1.end()).GetLow64(); CDataStream ss2(SER_GETHASH, 0); std::vector vchGroupKey = GetGroup(); - ss2 << nKey << vchGroupKey << (hash1 % ADDRMAN_TRIED_BUCKETS_PER_GROUP); + ss2 << ((unsigned char)32) << nKey << vchGroupKey << (hash1 % ADDRMAN_TRIED_BUCKETS_PER_GROUP); uint64_t hash2 = Hash(ss2.begin(), ss2.end()).GetLow64(); return hash2 % ADDRMAN_TRIED_BUCKET_COUNT; } -int CAddrInfo::GetNewBucket(const std::vector& nKey, const CNetAddr& src) const +int CAddrInfo::GetNewBucket(const uint256& nKey, const CNetAddr& src) const { CDataStream ss1(SER_GETHASH, 0); std::vector vchGroupKey = GetGroup(); std::vector vchSourceGroupKey = src.GetGroup(); - ss1 << nKey << vchGroupKey << vchSourceGroupKey; + ss1 << ((unsigned char)32) << nKey << vchGroupKey << vchSourceGroupKey; uint64_t hash1 = Hash(ss1.begin(), ss1.end()).GetLow64(); CDataStream ss2(SER_GETHASH, 0); - ss2 << nKey << vchSourceGroupKey << (hash1 % ADDRMAN_NEW_BUCKETS_PER_SOURCE_GROUP); + ss2 << ((unsigned char)32) << nKey << vchSourceGroupKey << (hash1 % ADDRMAN_NEW_BUCKETS_PER_SOURCE_GROUP); uint64_t hash2 = Hash(ss2.begin(), ss2.end()).GetLow64(); return hash2 % ADDRMAN_NEW_BUCKET_COUNT; } @@ -483,6 +483,8 @@ int CAddrMan::Check_() return -13; if (mapNew.size()) return -15; + if (nKey.IsNull()) + return -16; return 0; } diff --git a/src/addrman.h b/src/addrman.h index d47217683c7..b73266f843a 100644 --- a/src/addrman.h +++ b/src/addrman.h @@ -10,6 +10,7 @@ #include "random.h" #include "sync.h" #include "timedata.h" +#include "uint256.h" #include "util.h" #include @@ -79,13 +80,13 @@ class CAddrInfo : public CAddress } //! Calculate in which "tried" bucket this entry belongs - int GetTriedBucket(const std::vector &nKey) const; + int GetTriedBucket(const uint256 &nKey) const; //! Calculate in which "new" bucket this entry belongs, given a certain source - int GetNewBucket(const std::vector &nKey, const CNetAddr& src) const; + int GetNewBucket(const uint256 &nKey, const CNetAddr& src) const; //! Calculate in which "new" bucket this entry belongs, using its default source - int GetNewBucket(const std::vector &nKey) const + int GetNewBucket(const uint256 &nKey) const { return GetNewBucket(nKey, source); } @@ -176,7 +177,7 @@ class CAddrMan mutable CCriticalSection cs; //! secret key to randomize bucket select with - std::vector nKey; + uint256 nKey; //! last used nId int nIdCount; @@ -284,6 +285,7 @@ class CAddrMan unsigned char nVersion = 0; s << nVersion; + s << ((unsigned char)32); s << nKey; s << nNew; s << nTried; @@ -328,6 +330,9 @@ class CAddrMan unsigned char nVersion; s >> nVersion; + unsigned char nKeySize; + s >> nKeySize; + if (nKeySize != 32) throw std::ios_base::failure("Incorrect keysize in addrman"); s >> nKey; s >> nNew; s >> nTried; @@ -393,14 +398,18 @@ class CAddrMan CAddrMan() : vRandom(0), vvTried(ADDRMAN_TRIED_BUCKET_COUNT, std::vector(0)), vvNew(ADDRMAN_NEW_BUCKET_COUNT, std::set()) { - nKey.resize(32); - GetRandBytes(&nKey[0], 32); + nKey = GetRandHash(); nIdCount = 0; nTried = 0; nNew = 0; } + ~CAddrMan() + { + nKey = uint256(0); + } + //! Return the number of (unique) addresses in all tables. int size() { From cf0218f8b2bf394614d984e5ded6e83afd7e65db Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Wed, 18 Mar 2015 09:31:49 -0700 Subject: [PATCH 102/201] Make addrman's bucket placement deterministic. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Give each address a single fixed location in the new and tried tables, which become simple fixed-size arrays instead of sets and vectors. This prevents attackers from having an advantages by inserting an address multiple times. This change was suggested as Countermeasure 1 in Eclipse Attacks on Bitcoin’s Peer-to-Peer Network, Ethan Heilman, Alison Kendler, Aviv Zohar, Sharon Goldberg. ePrint Archive Report 2015/263. March 2015. It is also more efficient. Conflicts: src/addrman.cpp src/addrman.h Rebased-From: e6b343d880f50d52390c5af8623afa15fcbc65a2 Github-Pull: #5941 --- src/addrman.cpp | 270 ++++++++++++++++++++++++++------------------------------ src/addrman.h | 165 +++++++++++++++++++++------------- 2 files changed, 230 insertions(+), 205 deletions(-) diff --git a/src/addrman.cpp b/src/addrman.cpp index c53d40f7219..62a9f39cc19 100644 --- a/src/addrman.cpp +++ b/src/addrman.cpp @@ -14,12 +14,12 @@ int CAddrInfo::GetTriedBucket(const uint256& nKey) const { CDataStream ss1(SER_GETHASH, 0); std::vector vchKey = GetKey(); - ss1 << ((unsigned char)32) << nKey << vchKey; + ss1 << nKey << vchKey; uint64_t hash1 = Hash(ss1.begin(), ss1.end()).GetLow64(); CDataStream ss2(SER_GETHASH, 0); std::vector vchGroupKey = GetGroup(); - ss2 << ((unsigned char)32) << nKey << vchGroupKey << (hash1 % ADDRMAN_TRIED_BUCKETS_PER_GROUP); + ss2 << nKey << vchGroupKey << (hash1 % ADDRMAN_TRIED_BUCKETS_PER_GROUP); uint64_t hash2 = Hash(ss2.begin(), ss2.end()).GetLow64(); return hash2 % ADDRMAN_TRIED_BUCKET_COUNT; } @@ -29,15 +29,24 @@ int CAddrInfo::GetNewBucket(const uint256& nKey, const CNetAddr& src) const CDataStream ss1(SER_GETHASH, 0); std::vector vchGroupKey = GetGroup(); std::vector vchSourceGroupKey = src.GetGroup(); - ss1 << ((unsigned char)32) << nKey << vchGroupKey << vchSourceGroupKey; + ss1 << nKey << vchGroupKey << vchSourceGroupKey; uint64_t hash1 = Hash(ss1.begin(), ss1.end()).GetLow64(); CDataStream ss2(SER_GETHASH, 0); - ss2 << ((unsigned char)32) << nKey << vchSourceGroupKey << (hash1 % ADDRMAN_NEW_BUCKETS_PER_SOURCE_GROUP); + ss2 << nKey << vchSourceGroupKey << (hash1 % ADDRMAN_NEW_BUCKETS_PER_SOURCE_GROUP); uint64_t hash2 = Hash(ss2.begin(), ss2.end()).GetLow64(); return hash2 % ADDRMAN_NEW_BUCKET_COUNT; } +int CAddrInfo::GetBucketPosition(const uint256 &nKey, bool fNew, int nBucket) const +{ + CDataStream ss1(SER_GETHASH, 0); + std::vector vchKey = GetKey(); + ss1 << nKey << (fNew ? 'N' : 'K') << nBucket << vchKey; + uint64_t hash1 = Hash(ss1.begin(), ss1.end()).GetLow64(); + return hash1 % ADDRMAN_BUCKET_SIZE; +} + bool CAddrInfo::IsTerrible(int64_t nNow) const { if (nLastTry && nLastTry >= nNow - 60) // never remove things tried in the last minute @@ -128,85 +137,44 @@ void CAddrMan::SwapRandom(unsigned int nRndPos1, unsigned int nRndPos2) vRandom[nRndPos2] = nId1; } -int CAddrMan::SelectTried(int nKBucket) +void CAddrMan::Delete(int nId) { - std::vector& vTried = vvTried[nKBucket]; - - // randomly shuffle the first few elements (using the entire list) - // find the least recently tried among them - int64_t nOldest = -1; - int nOldestPos = -1; - for (unsigned int i = 0; i < ADDRMAN_TRIED_ENTRIES_INSPECT_ON_EVICT && i < vTried.size(); i++) { - int nPos = GetRandInt(vTried.size() - i) + i; - int nTemp = vTried[nPos]; - vTried[nPos] = vTried[i]; - vTried[i] = nTemp; - assert(nOldest == -1 || mapInfo.count(nTemp) == 1); - if (nOldest == -1 || mapInfo[nTemp].nLastSuccess < mapInfo[nOldest].nLastSuccess) { - nOldest = nTemp; - nOldestPos = nPos; - } - } + assert(mapInfo.count(nId) != 0); + CAddrInfo& info = mapInfo[nId]; + assert(!info.fInTried); + assert(info.nRefCount == 0); - return nOldestPos; + SwapRandom(info.nRandomPos, vRandom.size() - 1); + vRandom.pop_back(); + mapAddr.erase(info); + mapInfo.erase(nId); + nNew--; } -int CAddrMan::ShrinkNew(int nUBucket) +void CAddrMan::ClearNew(int nUBucket, int nUBucketPos) { - assert(nUBucket >= 0 && (unsigned int)nUBucket < vvNew.size()); - std::set& vNew = vvNew[nUBucket]; - - // first look for deletable items - for (std::set::iterator it = vNew.begin(); it != vNew.end(); it++) { - assert(mapInfo.count(*it)); - CAddrInfo& info = mapInfo[*it]; - if (info.IsTerrible()) { - if (--info.nRefCount == 0) { - SwapRandom(info.nRandomPos, vRandom.size() - 1); - vRandom.pop_back(); - mapAddr.erase(info); - mapInfo.erase(*it); - nNew--; - } - vNew.erase(it); - return 0; - } - } - - // otherwise, select four randomly, and pick the oldest of those to replace - int n[4] = {GetRandInt(vNew.size()), GetRandInt(vNew.size()), GetRandInt(vNew.size()), GetRandInt(vNew.size())}; - int nI = 0; - int nOldest = -1; - for (std::set::iterator it = vNew.begin(); it != vNew.end(); it++) { - if (nI == n[0] || nI == n[1] || nI == n[2] || nI == n[3]) { - assert(nOldest == -1 || mapInfo.count(*it) == 1); - if (nOldest == -1 || mapInfo[*it].nTime < mapInfo[nOldest].nTime) - nOldest = *it; + // if there is an entry in the specified bucket, delete it. + if (vvNew[nUBucket][nUBucketPos] != -1) { + int nIdDelete = vvNew[nUBucket][nUBucketPos]; + CAddrInfo& infoDelete = mapInfo[nIdDelete]; + assert(infoDelete.nRefCount > 0); + infoDelete.nRefCount--; + vvNew[nUBucket][nUBucketPos] = -1; + if (infoDelete.nRefCount == 0) { + Delete(nIdDelete); } - nI++; - } - assert(mapInfo.count(nOldest) == 1); - CAddrInfo& info = mapInfo[nOldest]; - if (--info.nRefCount == 0) { - SwapRandom(info.nRandomPos, vRandom.size() - 1); - vRandom.pop_back(); - mapAddr.erase(info); - mapInfo.erase(nOldest); - nNew--; } - vNew.erase(nOldest); - - return 1; } -void CAddrMan::MakeTried(CAddrInfo& info, int nId, int nOrigin) +void CAddrMan::MakeTried(CAddrInfo& info, int nId) { - assert(vvNew[nOrigin].count(nId) == 1); - // remove the entry from all new buckets - for (std::vector >::iterator it = vvNew.begin(); it != vvNew.end(); it++) { - if ((*it).erase(nId)) + for (int bucket = 0; bucket < ADDRMAN_NEW_BUCKET_COUNT; bucket++) { + int pos = info.GetBucketPosition(nKey, true, bucket); + if (vvNew[bucket][pos] == nId) { + vvNew[bucket][pos] = -1; info.nRefCount--; + } } nNew--; @@ -214,44 +182,36 @@ void CAddrMan::MakeTried(CAddrInfo& info, int nId, int nOrigin) // which tried bucket to move the entry to int nKBucket = info.GetTriedBucket(nKey); - std::vector& vTried = vvTried[nKBucket]; - - // first check whether there is place to just add it - if (vTried.size() < ADDRMAN_TRIED_BUCKET_SIZE) { - vTried.push_back(nId); - nTried++; - info.fInTried = true; - return; - } - - // otherwise, find an item to evict - int nPos = SelectTried(nKBucket); - - // find which new bucket it belongs to - assert(mapInfo.count(vTried[nPos]) == 1); - int nUBucket = mapInfo[vTried[nPos]].GetNewBucket(nKey); - std::set& vNew = vvNew[nUBucket]; - - // remove the to-be-replaced tried entry from the tried set - CAddrInfo& infoOld = mapInfo[vTried[nPos]]; - infoOld.fInTried = false; - infoOld.nRefCount = 1; - // do not update nTried, as we are going to move something else there immediately - - // check whether there is place in that one, - if (vNew.size() < ADDRMAN_NEW_BUCKET_SIZE) { - // if so, move it back there - vNew.insert(vTried[nPos]); - } else { - // otherwise, move it to the new bucket nId came from (there is certainly place there) - vvNew[nOrigin].insert(vTried[nPos]); + int nKBucketPos = info.GetBucketPosition(nKey, false, nKBucket); + + // first make space to add it (the existing tried entry there is moved to new, deleting whatever is there). + if (vvTried[nKBucket][nKBucketPos] != -1) { + // find an item to evict + int nIdEvict = vvTried[nKBucket][nKBucketPos]; + assert(mapInfo.count(nIdEvict) == 1); + CAddrInfo& infoOld = mapInfo[nIdEvict]; + + // Remove the to-be-evicted item from the tried set. + infoOld.fInTried = false; + vvTried[nKBucket][nKBucketPos] = -1; + nTried--; + + // find which new bucket it belongs to + int nUBucket = infoOld.GetNewBucket(nKey); + int nUBucketPos = infoOld.GetBucketPosition(nKey, true, nUBucket); + ClearNew(nUBucket, nUBucketPos); + assert(vvNew[nUBucket][nUBucketPos] == -1); + + // Enter it into the new set again. + infoOld.nRefCount = 1; + vvNew[nUBucket][nUBucketPos] = nIdEvict; + nNew++; } - nNew++; + assert(vvTried[nKBucket][nKBucketPos] == -1); - vTried[nPos] = nId; - // we just overwrote an entry in vTried; no need to update nTried + vvTried[nKBucket][nKBucketPos] = nId; + nTried++; info.fInTried = true; - return; } void CAddrMan::Good_(const CService& addr, int64_t nTime) @@ -281,12 +241,12 @@ void CAddrMan::Good_(const CService& addr, int64_t nTime) return; // find a bucket it is in now - int nRnd = GetRandInt(vvNew.size()); + int nRnd = GetRandInt(ADDRMAN_NEW_BUCKET_COUNT); int nUBucket = -1; - for (unsigned int n = 0; n < vvNew.size(); n++) { - int nB = (n + nRnd) % vvNew.size(); - std::set& vNew = vvNew[nB]; - if (vNew.count(nId)) { + for (unsigned int n = 0; n < ADDRMAN_NEW_BUCKET_COUNT; n++) { + int nB = (n + nRnd) % ADDRMAN_NEW_BUCKET_COUNT; + int nBpos = info.GetBucketPosition(nKey, true, nB); + if (vvNew[nB][nBpos] == nId) { nUBucket = nB; break; } @@ -300,7 +260,7 @@ void CAddrMan::Good_(const CService& addr, int64_t nTime) LogPrint("addrman", "Moving %s to tried\n", addr.ToString()); // move nId to the tried tables - MakeTried(info, nId, nUBucket); + MakeTried(info, nId); } bool CAddrMan::Add_(const CAddress& addr, const CNetAddr& source, int64_t nTimePenalty) @@ -348,12 +308,25 @@ bool CAddrMan::Add_(const CAddress& addr, const CNetAddr& source, int64_t nTimeP } int nUBucket = pinfo->GetNewBucket(nKey, source); - std::set& vNew = vvNew[nUBucket]; - if (!vNew.count(nId)) { - pinfo->nRefCount++; - if (vNew.size() == ADDRMAN_NEW_BUCKET_SIZE) - ShrinkNew(nUBucket); - vvNew[nUBucket].insert(nId); + int nUBucketPos = pinfo->GetBucketPosition(nKey, true, nUBucket); + if (vvNew[nUBucket][nUBucketPos] != nId) { + bool fInsert = vvNew[nUBucket][nUBucketPos] == -1; + if (!fInsert) { + CAddrInfo& infoExisting = mapInfo[vvNew[nUBucket][nUBucketPos]]; + if (infoExisting.IsTerrible() || (infoExisting.nRefCount > 1 && pinfo->nRefCount == 0)) { + // Overwrite the existing new table entry. + fInsert = true; + } + } + if (fInsert) { + ClearNew(nUBucket, nUBucketPos); + pinfo->nRefCount++; + vvNew[nUBucket][nUBucketPos] = nId; + } else { + if (pinfo->nRefCount == 0) { + Delete(nId); + } + } } return fNew; } @@ -388,13 +361,13 @@ CAddress CAddrMan::Select_(int nUnkBias) // use a tried node double fChanceFactor = 1.0; while (1) { - int nKBucket = GetRandInt(vvTried.size()); - std::vector& vTried = vvTried[nKBucket]; - if (vTried.size() == 0) + int nKBucket = GetRandInt(ADDRMAN_TRIED_BUCKET_COUNT); + int nKBucketPos = GetRandInt(ADDRMAN_BUCKET_SIZE); + if (vvTried[nKBucket][nKBucketPos] == -1) continue; - int nPos = GetRandInt(vTried.size()); - assert(mapInfo.count(vTried[nPos]) == 1); - CAddrInfo& info = mapInfo[vTried[nPos]]; + int nId = vvTried[nKBucket][nKBucketPos]; + assert(mapInfo.count(nId) == 1); + CAddrInfo& info = mapInfo[nId]; if (GetRandInt(1 << 30) < fChanceFactor * info.GetChance() * (1 << 30)) return info; fChanceFactor *= 1.2; @@ -403,16 +376,13 @@ CAddress CAddrMan::Select_(int nUnkBias) // use a new node double fChanceFactor = 1.0; while (1) { - int nUBucket = GetRandInt(vvNew.size()); - std::set& vNew = vvNew[nUBucket]; - if (vNew.size() == 0) + int nUBucket = GetRandInt(ADDRMAN_NEW_BUCKET_COUNT); + int nUBucketPos = GetRandInt(ADDRMAN_BUCKET_SIZE); + if (vvNew[nUBucket][nUBucketPos] == -1) continue; - int nPos = GetRandInt(vNew.size()); - std::set::iterator it = vNew.begin(); - while (nPos--) - it++; - assert(mapInfo.count(*it) == 1); - CAddrInfo& info = mapInfo[*it]; + int nId = vvNew[nUBucket][nUBucketPos]; + assert(mapInfo.count(nId) == 1); + CAddrInfo& info = mapInfo[nId]; if (GetRandInt(1 << 30) < fChanceFactor * info.GetChance() * (1 << 30)) return info; fChanceFactor *= 1.2; @@ -460,22 +430,30 @@ int CAddrMan::Check_() if (mapNew.size() != nNew) return -10; - for (int n = 0; n < vvTried.size(); n++) { - std::vector& vTried = vvTried[n]; - for (std::vector::iterator it = vTried.begin(); it != vTried.end(); it++) { - if (!setTried.count(*it)) - return -11; - setTried.erase(*it); + for (int n = 0; n < ADDRMAN_TRIED_BUCKET_COUNT; n++) { + for (int i = 0; i < ADDRMAN_BUCKET_SIZE; i++) { + if (vvTried[n][i] != -1) { + if (!setTried.count(vvTried[n][i])) + return -11; + if (mapInfo[vvTried[n][i]].GetTriedBucket(nKey) != n) + return -17; + if (mapInfo[vvTried[n][i]].GetBucketPosition(nKey, false, n) != i) + return -18; + setTried.erase(vvTried[n][i]); + } } } - for (int n = 0; n < vvNew.size(); n++) { - std::set& vNew = vvNew[n]; - for (std::set::iterator it = vNew.begin(); it != vNew.end(); it++) { - if (!mapNew.count(*it)) - return -12; - if (--mapNew[*it] == 0) - mapNew.erase(*it); + for (int n = 0; n < ADDRMAN_NEW_BUCKET_COUNT; n++) { + for (int i = 0; i < ADDRMAN_BUCKET_SIZE; i++) { + if (vvNew[n][i] != -1) { + if (!mapNew.count(vvNew[n][i])) + return -12; + if (mapInfo[vvNew[n][i]].GetBucketPosition(nKey, true, n) != i) + return -19; + if (--mapNew[vvNew[n][i]] == 0) + mapNew.erase(vvNew[n][i]); + } } } diff --git a/src/addrman.h b/src/addrman.h index b73266f843a..3966bf5b73a 100644 --- a/src/addrman.h +++ b/src/addrman.h @@ -10,7 +10,6 @@ #include "random.h" #include "sync.h" #include "timedata.h" -#include "uint256.h" #include "util.h" #include @@ -91,6 +90,9 @@ class CAddrInfo : public CAddress return GetNewBucket(nKey, source); } + //! Calculate in which position of a bucket to store this entry. + int GetBucketPosition(const uint256 &nKey, bool fNew, int nBucket) const; + //! Determine whether the statistics about this entry are bad enough so that it can just be deleted bool IsTerrible(int64_t nNow = GetAdjustedTime()) const; @@ -128,14 +130,11 @@ class CAddrInfo : public CAddress //! total number of buckets for tried addresses #define ADDRMAN_TRIED_BUCKET_COUNT 64 -//! maximum allowed number of entries in buckets for tried addresses -#define ADDRMAN_TRIED_BUCKET_SIZE 64 - //! total number of buckets for new addresses #define ADDRMAN_NEW_BUCKET_COUNT 256 -//! maximum allowed number of entries in buckets for new addresses -#define ADDRMAN_NEW_BUCKET_SIZE 64 +//! maximum allowed number of entries in buckets for new and tried addresses +#define ADDRMAN_BUCKET_SIZE 64 //! over how many buckets entries with tried addresses from a single group (/16 for IPv4) are spread #define ADDRMAN_TRIED_BUCKETS_PER_GROUP 4 @@ -146,9 +145,6 @@ class CAddrInfo : public CAddress //! in how many buckets for entries with new addresses a single address may occur #define ADDRMAN_NEW_BUCKETS_PER_ADDRESS 4 -//! how many entries in a bucket with tried addresses are inspected, when selecting one to replace -#define ADDRMAN_TRIED_ENTRIES_INSPECT_ON_EVICT 4 - //! how old addresses can maximally be #define ADDRMAN_HORIZON_DAYS 30 @@ -195,13 +191,13 @@ class CAddrMan int nTried; //! list of "tried" buckets - std::vector > vvTried; + int vvTried[ADDRMAN_TRIED_BUCKET_COUNT][ADDRMAN_BUCKET_SIZE]; //! number of (unique) "new" entries int nNew; //! list of "new" buckets - std::vector > vvNew; + int vvNew[ADDRMAN_NEW_BUCKET_COUNT][ADDRMAN_BUCKET_SIZE]; protected: @@ -215,17 +211,14 @@ class CAddrMan //! Swap two elements in vRandom. void SwapRandom(unsigned int nRandomPos1, unsigned int nRandomPos2); - //! Return position in given bucket to replace. - int SelectTried(int nKBucket); + //! Move an entry from the "new" table(s) to the "tried" table + void MakeTried(CAddrInfo& info, int nId); - //! Remove an element from a "new" bucket. - //! This is the only place where actual deletions occur. - //! Elements are never deleted while in the "tried" table, only possibly evicted back to the "new" table. - int ShrinkNew(int nUBucket); + //! Delete an entry. It must not be in tried, and have refcount 0. + void Delete(int nId); - //! Move an entry from the "new" table(s) to the "tried" table - //! @pre vvUnkown[nOrigin].count(nId) != 0 - void MakeTried(CAddrInfo& info, int nId, int nOrigin); + //! Clear a position in a "new" table. This is the only place where entries are actually deleted. + void ClearNew(int nUBucket, int nUBucketPos); //! Mark an entry "good", possibly moving it from "new" to "tried". void Good_(const CService &addr, int64_t nTime); @@ -254,17 +247,21 @@ class CAddrMan public: /** * serialized format: - * * version byte (currently 0) - * * nKey + * * version byte (currently 1) + * * 0x20 + nKey (serialized as if it were a vector, for backward compatibility) * * nNew * * nTried - * * number of "new" buckets + * * number of "new" buckets XOR 2**30 * * all nNew addrinfos in vvNew * * all nTried addrinfos in vvTried * * for each bucket: * * number of elements * * for each element: index * + * 2**30 is xorred with the number of buckets to make addrman deserializer v0 detect it + * as incompatible. This is necessary because it did not check the version number on + * deserialization. + * * Notice that vvTried, mapAddr and vVector are never encoded explicitly; * they are instead reconstructed from the other information. * @@ -276,49 +273,53 @@ class CAddrMan * * We don't use ADD_SERIALIZE_METHODS since the serialization and deserialization code has * very little in common. - * */ template void Serialize(Stream &s, int nType, int nVersionDummy) const { LOCK(cs); - unsigned char nVersion = 0; + unsigned char nVersion = 1; s << nVersion; s << ((unsigned char)32); s << nKey; s << nNew; s << nTried; - int nUBuckets = ADDRMAN_NEW_BUCKET_COUNT; + int nUBuckets = ADDRMAN_NEW_BUCKET_COUNT ^ (1 << 30); s << nUBuckets; std::map mapUnkIds; int nIds = 0; for (std::map::const_iterator it = mapInfo.begin(); it != mapInfo.end(); it++) { - if (nIds == nNew) break; // this means nNew was wrong, oh ow mapUnkIds[(*it).first] = nIds; const CAddrInfo &info = (*it).second; if (info.nRefCount) { + assert(nIds != nNew); // this means nNew was wrong, oh ow s << info; nIds++; } } nIds = 0; for (std::map::const_iterator it = mapInfo.begin(); it != mapInfo.end(); it++) { - if (nIds == nTried) break; // this means nTried was wrong, oh ow const CAddrInfo &info = (*it).second; if (info.fInTried) { + assert(nIds != nTried); // this means nTried was wrong, oh ow s << info; nIds++; } } - for (std::vector >::const_iterator it = vvNew.begin(); it != vvNew.end(); it++) { - const std::set &vNew = (*it); - int nSize = vNew.size(); + for (int bucket = 0; bucket < ADDRMAN_NEW_BUCKET_COUNT; bucket++) { + int nSize = 0; + for (int i = 0; i < ADDRMAN_BUCKET_SIZE; i++) { + if (vvNew[bucket][i] != -1) + nSize++; + } s << nSize; - for (std::set::const_iterator it2 = vNew.begin(); it2 != vNew.end(); it2++) { - int nIndex = mapUnkIds[*it2]; - s << nIndex; + for (int i = 0; i < ADDRMAN_BUCKET_SIZE; i++) { + if (vvNew[bucket][i] != -1) { + int nIndex = mapUnkIds[vvNew[bucket][i]]; + s << nIndex; + } } } } @@ -328,67 +329,97 @@ class CAddrMan { LOCK(cs); + Clear(); + unsigned char nVersion; s >> nVersion; unsigned char nKeySize; s >> nKeySize; - if (nKeySize != 32) throw std::ios_base::failure("Incorrect keysize in addrman"); + if (nKeySize != 32) throw std::ios_base::failure("Incorrect keysize in addrman deserialization"); s >> nKey; s >> nNew; s >> nTried; - int nUBuckets = 0; s >> nUBuckets; - nIdCount = 0; - mapInfo.clear(); - mapAddr.clear(); - vRandom.clear(); - vvTried = std::vector >(ADDRMAN_TRIED_BUCKET_COUNT, std::vector(0)); - vvNew = std::vector >(ADDRMAN_NEW_BUCKET_COUNT, std::set()); + if (nVersion != 0) { + nUBuckets ^= (1 << 30); + } + + // Deserialize entries from the new table. for (int n = 0; n < nNew; n++) { CAddrInfo &info = mapInfo[n]; s >> info; mapAddr[info] = n; info.nRandomPos = vRandom.size(); vRandom.push_back(n); - if (nUBuckets != ADDRMAN_NEW_BUCKET_COUNT) { - vvNew[info.GetNewBucket(nKey)].insert(n); - info.nRefCount++; + if (nVersion != 1 || nUBuckets != ADDRMAN_NEW_BUCKET_COUNT) { + // In case the new table data cannot be used (nVersion unknown, or bucket count wrong), + // immediately try to give them a reference based on their primary source address. + int nUBucket = info.GetNewBucket(nKey); + int nUBucketPos = info.GetBucketPosition(nKey, true, nUBucket); + if (vvNew[nUBucket][nUBucketPos] == -1) { + vvNew[nUBucket][nUBucketPos] = n; + info.nRefCount++; + } } } nIdCount = nNew; + + // Deserialize entries from the tried table. int nLost = 0; for (int n = 0; n < nTried; n++) { CAddrInfo info; s >> info; - std::vector &vTried = vvTried[info.GetTriedBucket(nKey)]; - if (vTried.size() < ADDRMAN_TRIED_BUCKET_SIZE) { + int nKBucket = info.GetTriedBucket(nKey); + int nKBucketPos = info.GetBucketPosition(nKey, false, nKBucket); + if (vvTried[nKBucket][nKBucketPos] == -1) { info.nRandomPos = vRandom.size(); info.fInTried = true; vRandom.push_back(nIdCount); mapInfo[nIdCount] = info; mapAddr[info] = nIdCount; - vTried.push_back(nIdCount); + vvTried[nKBucket][nKBucketPos] = nIdCount; nIdCount++; } else { nLost++; } } nTried -= nLost; - for (int b = 0; b < nUBuckets; b++) { - std::set &vNew = vvNew[b]; + + // Deserialize positions in the new table (if possible). + for (int bucket = 0; bucket < nUBuckets; bucket++) { int nSize = 0; s >> nSize; for (int n = 0; n < nSize; n++) { int nIndex = 0; s >> nIndex; - CAddrInfo &info = mapInfo[nIndex]; - if (nUBuckets == ADDRMAN_NEW_BUCKET_COUNT && info.nRefCount < ADDRMAN_NEW_BUCKETS_PER_ADDRESS) { - info.nRefCount++; - vNew.insert(nIndex); + if (nIndex >= 0 && nIndex < nNew) { + CAddrInfo &info = mapInfo[nIndex]; + int nUBucketPos = info.GetBucketPosition(nKey, true, bucket); + if (nVersion == 1 && nUBuckets == ADDRMAN_NEW_BUCKET_COUNT && vvNew[bucket][nUBucketPos] == -1 && info.nRefCount < ADDRMAN_NEW_BUCKETS_PER_ADDRESS) { + info.nRefCount++; + vvNew[bucket][nUBucketPos] = nIndex; + } } } } + + // Prune new entries with refcount 0 (as a result of collisions). + int nLostUnk = 0; + for (std::map::const_iterator it = mapInfo.begin(); it != mapInfo.end(); ) { + if (it->second.fInTried == false && it->second.nRefCount == 0) { + std::map::const_iterator itCopy = it++; + Delete(itCopy->first); + nLostUnk++; + } else { + it++; + } + } + if (nLost + nLostUnk > 0) { + LogPrint("addrman", "addrman lost %i new and %i tried addresses due to collisions\n", nLostUnk, nLost); + } + + Check(); } unsigned int GetSerializeSize(int nType, int nVersion) const @@ -396,13 +427,29 @@ class CAddrMan return (CSizeComputer(nType, nVersion) << *this).size(); } - CAddrMan() : vRandom(0), vvTried(ADDRMAN_TRIED_BUCKET_COUNT, std::vector(0)), vvNew(ADDRMAN_NEW_BUCKET_COUNT, std::set()) + void Clear() { - nKey = GetRandHash(); + std::vector().swap(vRandom); + nKey = GetRandHash(); + for (size_t bucket = 0; bucket < ADDRMAN_NEW_BUCKET_COUNT; bucket++) { + for (size_t entry = 0; entry < ADDRMAN_BUCKET_SIZE; entry++) { + vvNew[bucket][entry] = -1; + } + } + for (size_t bucket = 0; bucket < ADDRMAN_TRIED_BUCKET_COUNT; bucket++) { + for (size_t entry = 0; entry < ADDRMAN_BUCKET_SIZE; entry++) { + vvTried[bucket][entry] = -1; + } + } - nIdCount = 0; - nTried = 0; - nNew = 0; + nIdCount = 0; + nTried = 0; + nNew = 0; + } + + CAddrMan() + { + Clear(); } ~CAddrMan() From 2218d4bbe0a3ee38f5c8f8bba40ed326c1a6b5dd Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Thu, 19 Mar 2015 08:50:04 -0700 Subject: [PATCH 103/201] Simplify hashing code Conflicts: src/addrman.cpp Rebased-From: a8ff7c62edc63c7c94bc91c30b80995539ed7477 Github-Pull: #5941 --- src/addrman.cpp | 26 +++++--------------------- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/src/addrman.cpp b/src/addrman.cpp index 62a9f39cc19..dfce09834cb 100644 --- a/src/addrman.cpp +++ b/src/addrman.cpp @@ -12,38 +12,22 @@ using namespace std; int CAddrInfo::GetTriedBucket(const uint256& nKey) const { - CDataStream ss1(SER_GETHASH, 0); - std::vector vchKey = GetKey(); - ss1 << nKey << vchKey; - uint64_t hash1 = Hash(ss1.begin(), ss1.end()).GetLow64(); - - CDataStream ss2(SER_GETHASH, 0); - std::vector vchGroupKey = GetGroup(); - ss2 << nKey << vchGroupKey << (hash1 % ADDRMAN_TRIED_BUCKETS_PER_GROUP); - uint64_t hash2 = Hash(ss2.begin(), ss2.end()).GetLow64(); + uint64_t hash1 = (CHashWriter(SER_GETHASH, 0) << nKey << GetKey()).GetHash().GetLow64(); + uint64_t hash2 = (CHashWriter(SER_GETHASH, 0) << nKey << GetGroup() << (hash1 % ADDRMAN_TRIED_BUCKETS_PER_GROUP)).GetHash().GetLow64(); return hash2 % ADDRMAN_TRIED_BUCKET_COUNT; } int CAddrInfo::GetNewBucket(const uint256& nKey, const CNetAddr& src) const { - CDataStream ss1(SER_GETHASH, 0); - std::vector vchGroupKey = GetGroup(); std::vector vchSourceGroupKey = src.GetGroup(); - ss1 << nKey << vchGroupKey << vchSourceGroupKey; - uint64_t hash1 = Hash(ss1.begin(), ss1.end()).GetLow64(); - - CDataStream ss2(SER_GETHASH, 0); - ss2 << nKey << vchSourceGroupKey << (hash1 % ADDRMAN_NEW_BUCKETS_PER_SOURCE_GROUP); - uint64_t hash2 = Hash(ss2.begin(), ss2.end()).GetLow64(); + uint64_t hash1 = (CHashWriter(SER_GETHASH, 0) << nKey << GetGroup() << vchSourceGroupKey).GetHash().GetLow64(); + uint64_t hash2 = (CHashWriter(SER_GETHASH, 0) << nKey << vchSourceGroupKey << (hash1 % ADDRMAN_NEW_BUCKETS_PER_SOURCE_GROUP)).GetHash().GetLow64(); return hash2 % ADDRMAN_NEW_BUCKET_COUNT; } int CAddrInfo::GetBucketPosition(const uint256 &nKey, bool fNew, int nBucket) const { - CDataStream ss1(SER_GETHASH, 0); - std::vector vchKey = GetKey(); - ss1 << nKey << (fNew ? 'N' : 'K') << nBucket << vchKey; - uint64_t hash1 = Hash(ss1.begin(), ss1.end()).GetLow64(); + uint64_t hash1 = (CHashWriter(SER_GETHASH, 0) << nKey << (fNew ? 'N' : 'K') << nBucket << GetKey()).GetHash().GetLow64(); return hash1 % ADDRMAN_BUCKET_SIZE; } From 214154e6fc65bdc06fbfe1bc04b9b57347fdb3f7 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Thu, 19 Mar 2015 09:44:26 -0700 Subject: [PATCH 104/201] Do not bias outgoing connections towards fresh addresses MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This change was suggested as Countermeasure 2 in Eclipse Attacks on Bitcoin’s Peer-to-Peer Network, Ethan Heilman, Alison Kendler, Aviv Zohar, Sharon Goldberg. ePrint Archive Report 2015/263. March 2015. Rebased-From: 68ba3f67bd500a64fb8932c6b41924ddc31d76f Github-Pull: #5941 --- src/addrman.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/addrman.cpp b/src/addrman.cpp index dfce09834cb..df32da7257e 100644 --- a/src/addrman.cpp +++ b/src/addrman.cpp @@ -63,8 +63,6 @@ double CAddrInfo::GetChance(int64_t nNow) const if (nSinceLastTry < 0) nSinceLastTry = 0; - fChance *= 600.0 / (600.0 + nSinceLastSeen); - // deprioritize very recent attempts away if (nSinceLastTry < 60 * 10) fChance *= 0.01; From 0c6f334c32f2ef5b7224ec7f5ac694153a7f4241 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Thu, 19 Mar 2015 09:51:59 -0700 Subject: [PATCH 105/201] Always use a 50% chance to choose between tried and new entries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This change was suggested as Countermeasure 2 in Eclipse Attacks on Bitcoin’s Peer-to-Peer Network, Ethan Heilman, Alison Kendler, Aviv Zohar, Sharon Goldberg. ePrint Archive Report 2015/263. March 2015. Rebased-From: c6a63ceeb4956933588995bcf01dc3095aaeb1fc Github-Pull: #5941 --- src/addrman.cpp | 7 +++---- src/addrman.h | 6 +++--- src/net.cpp | 3 +-- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/addrman.cpp b/src/addrman.cpp index df32da7257e..015589343d7 100644 --- a/src/addrman.cpp +++ b/src/addrman.cpp @@ -332,14 +332,13 @@ void CAddrMan::Attempt_(const CService& addr, int64_t nTime) info.nAttempts++; } -CAddress CAddrMan::Select_(int nUnkBias) +CAddress CAddrMan::Select_() { if (size() == 0) return CAddress(); - double nCorTried = sqrt(nTried) * (100.0 - nUnkBias); - double nCorNew = sqrt(nNew) * nUnkBias; - if ((nCorTried + nCorNew) * GetRandInt(1 << 30) / (1 << 30) < nCorTried) { + // Use a 50% chance for choosing between tried and new table entries. + if (nTried > 0 && (nNew == 0 || GetRandInt(2) == 0)) { // use a tried node double fChanceFactor = 1.0; while (1) { diff --git a/src/addrman.h b/src/addrman.h index 3966bf5b73a..5eb19758d5f 100644 --- a/src/addrman.h +++ b/src/addrman.h @@ -231,7 +231,7 @@ class CAddrMan //! Select an address to connect to. //! nUnkBias determines how much to favor new addresses over tried ones (min=0, max=100) - CAddress Select_(int nUnkBias); + CAddress Select_(); #ifdef DEBUG_ADDRMAN //! Perform consistency check. Returns an error code or zero. @@ -533,13 +533,13 @@ class CAddrMan * Choose an address to connect to. * nUnkBias determines how much "new" entries are favored over "tried" ones (0-100). */ - CAddress Select(int nUnkBias = 50) + CAddress Select() { CAddress addrRet; { LOCK(cs); Check(); - addrRet = Select_(nUnkBias); + addrRet = Select_(); Check(); } return addrRet; diff --git a/src/net.cpp b/src/net.cpp index 1d95932ca6a..47221edef6e 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -1271,8 +1271,7 @@ void ThreadOpenConnections() int nTries = 0; while (true) { - // use an nUnkBias between 10 (no outgoing connections) and 90 (8 outgoing connections) - CAddress addr = addrman.Select(10 + min(nOutbound,8)*10); + CAddress addr = addrman.Select(); // if we selected an invalid address, restart if (!addr.IsValid() || setConnected.count(addr.GetGroup()) || IsLocal(addr)) From aa587d4cae0b82d59677b7fe8aab1b09cc7c04be Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Thu, 19 Mar 2015 10:01:57 -0700 Subject: [PATCH 106/201] Scale up addrman MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This change was suggested as Countermeasure 6 in Eclipse Attacks on Bitcoin’s Peer-to-Peer Network, Ethan Heilman, Alison Kendler, Aviv Zohar, Sharon Goldberg. ePrint Archive Report 2015/263. March 2015. Rebased-From: 1d21ba2f5ecbf03086d0b65c4c4c80a39a94c2ee Github-Pull: #5941 --- src/addrman.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/addrman.h b/src/addrman.h index 5eb19758d5f..fdc4d02c38f 100644 --- a/src/addrman.h +++ b/src/addrman.h @@ -109,15 +109,15 @@ class CAddrInfo : public CAddress * * To that end: * * Addresses are organized into buckets. - * * Address that have not yet been tried go into 256 "new" buckets. - * * Based on the address range (/16 for IPv4) of source of the information, 32 buckets are selected at random + * * Address that have not yet been tried go into 1024 "new" buckets. + * * Based on the address range (/16 for IPv4) of source of the information, 64 buckets are selected at random * * The actual bucket is chosen from one of these, based on the range the address itself is located. - * * One single address can occur in up to 4 different buckets, to increase selection chances for addresses that + * * One single address can occur in up to 8 different buckets, to increase selection chances for addresses that * are seen frequently. The chance for increasing this multiplicity decreases exponentially. * * When adding a new address to a full bucket, a randomly chosen entry (with a bias favoring less recently seen * ones) is removed from it first. - * * Addresses of nodes that are known to be accessible go into 64 "tried" buckets. - * * Each address range selects at random 4 of these buckets. + * * Addresses of nodes that are known to be accessible go into 256 "tried" buckets. + * * Each address range selects at random 8 of these buckets. * * The actual bucket is chosen from one of these, based on the full address. * * When adding a new good address to a full bucket, a randomly chosen entry (with a bias favoring less recently * tried ones) is evicted from it, back to the "new" buckets. @@ -128,22 +128,22 @@ class CAddrInfo : public CAddress */ //! total number of buckets for tried addresses -#define ADDRMAN_TRIED_BUCKET_COUNT 64 +#define ADDRMAN_TRIED_BUCKET_COUNT 256 //! total number of buckets for new addresses -#define ADDRMAN_NEW_BUCKET_COUNT 256 +#define ADDRMAN_NEW_BUCKET_COUNT 1024 //! maximum allowed number of entries in buckets for new and tried addresses #define ADDRMAN_BUCKET_SIZE 64 //! over how many buckets entries with tried addresses from a single group (/16 for IPv4) are spread -#define ADDRMAN_TRIED_BUCKETS_PER_GROUP 4 +#define ADDRMAN_TRIED_BUCKETS_PER_GROUP 8 //! over how many buckets entries with new addresses originating from a single group are spread -#define ADDRMAN_NEW_BUCKETS_PER_SOURCE_GROUP 32 +#define ADDRMAN_NEW_BUCKETS_PER_SOURCE_GROUP 64 //! in how many buckets for entries with new addresses a single address may occur -#define ADDRMAN_NEW_BUCKETS_PER_ADDRESS 4 +#define ADDRMAN_NEW_BUCKETS_PER_ADDRESS 8 //! how old addresses can maximally be #define ADDRMAN_HORIZON_DAYS 30 From ae1479a114c71c140ef6c00a4452d2b5f300cb7a Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Wed, 1 Apr 2015 16:48:23 +0200 Subject: [PATCH 107/201] update release notes after #5941 --- doc/release-notes.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/release-notes.md b/doc/release-notes.md index 1e9e0581aa9..08d7beec0d6 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -71,6 +71,10 @@ P2P protocol and network code: - `200f293` Ignore getaddr messages on Outbound connections. - `d5d8998` Limit message sizes before transfer - `aeb9279` Better fingerprinting protection for non-main-chain getdatas. +- `cf0218f` Make addrman's bucket placement deterministic (countermeasure 1 against eclipse attacks, see http://cs-people.bu.edu/heilman/eclipse/) +- `0c6f334` Always use a 50% chance to choose between tried and new entries (countermeasure 2 against eclipse attacks) +- `214154e` Do not bias outgoing connections towards fresh addresses (countermeasure 2 against eclipse attacks) +- `aa587d4` Scale up addrman (countermeasure 6 against eclipse attacks) Validation: - `d148f62` Acquire CCheckQueue's lock to avoid race condition From fe3122580e9bc6e1b7d6c11fb6b2175e7a06f528 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Wed, 1 Apr 2015 17:27:54 +0200 Subject: [PATCH 108/201] update release notes for #5953/#5900 --- doc/release-notes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/release-notes.md b/doc/release-notes.md index 08d7beec0d6..f30436fd8d8 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -64,6 +64,7 @@ Block (database) and transaction handling: - `1d2cdd2` Fix InvalidateBlock to add chainActive.Tip to setBlockIndexCandidates - `c91c660` fix InvalidateBlock to repopulate setBlockIndexCandidates - `002c8a2` fix possible block db breakage during re-index +- `a1f425b` Add (optional) consistency check for the block chain data structures P2P protocol and network code: - `78f64ef` don't trickle for whitelisted nodes From 9e1cc16296578a7b6f27b4a1c48e38cc031060b0 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Wed, 1 Apr 2015 18:43:49 +0200 Subject: [PATCH 109/201] doc: add historical release notes for 0.10.0 Rebased-From: 15facb4aca75122b6ae0dcc6f6e112127e6a0e59 --- doc/release-notes/release-notes-0.10.0.md | 762 ++++++++++++++++++++++++++++++ 1 file changed, 762 insertions(+) create mode 100644 doc/release-notes/release-notes-0.10.0.md diff --git a/doc/release-notes/release-notes-0.10.0.md b/doc/release-notes/release-notes-0.10.0.md new file mode 100644 index 00000000000..986b8832ec1 --- /dev/null +++ b/doc/release-notes/release-notes-0.10.0.md @@ -0,0 +1,762 @@ +Bitcoin Core version 0.10.0 is now available from: + + https://bitcoin.org/bin/0.10.0/ + +This is a new major version release, bringing both new features and +bug fixes. + +Please report bugs using the issue tracker at github: + + https://github.com/bitcoin/bitcoin/issues + +Upgrading and downgrading +========================= + +How to Upgrade +-------------- + +If you are running an older version, shut it down. Wait until it has completely +shut down (which might take a few minutes for older versions), then run the +installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or +bitcoind/bitcoin-qt (on Linux). + +Downgrading warning +--------------------- + +Because release 0.10.0 makes use of headers-first synchronization and parallel +block download (see further), the block files and databases are not +backwards-compatible with older versions of Bitcoin Core or other software: + +* 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. It is possible that the data from a completely +synchronised 0.10 node may be usable in older versions as-is, but this is not +supported and may break as soon as the older version attempts to reindex. + +This does not affect wallet forward or backward compatibility. + + +Notable changes +=============== + +Faster synchronization +---------------------- + +Bitcoin Core now uses 'headers-first synchronization'. This means that we first +ask peers for block headers (a total of 27 megabytes, as of December 2014) and +validate those. In a second stage, when the headers have been discovered, we +download the blocks. However, as we already know about the whole chain in +advance, the blocks can be downloaded in parallel from all available peers. + +In practice, this means a much faster and more robust synchronization. On +recent hardware with a decent network link, it can be as little as 3 hours +for an initial full synchronization. You may notice a slower progress in the +very first few minutes, when headers are still being fetched and verified, but +it should gain speed afterwards. + +A few RPCs were added/updated as a result of this: +- `getblockchaininfo` now returns the number of validated headers in addition to +the number of validated blocks. +- `getpeerinfo` lists both the number of blocks and headers we know we have in +common with each peer. While synchronizing, the heights of the blocks that we +have requested from peers (but haven't received yet) are also listed as +'inflight'. +- A new RPC `getchaintips` lists all known branches of the block chain, +including those we only have headers for. + +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. Fees are added by default unless the 'sendfreetransactions' +setting is enabled. + +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 for transaction fee changes: +- `-txconfirmtarget=n` : create transactions that have enough fees (or priority) +so they are likely to begin confirmation within n blocks (default: 1). This setting +is over-ridden by the -paytxfee option. +- `-sendfreetransactions` : Send transactions as zero-fee transactions if possible +(default: 0) + +New RPC commands for fee estimation: +- `estimatefee nblocks` : Returns approximate fee-per-1,000-bytes needed for +a transaction to begin confirmation 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 begin confirmation 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` (still dangerous!) | + +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). + + +REST interface +-------------- + +A new HTTP API is exposed when running with the `-rest` flag, which allows +unauthenticated access to public node data. + +It is served on the same port as RPC, but does not need a password, and uses +plain HTTP instead of JSON-RPC. + +Assuming a local RPC server running on port 8332, it is possible to request: +- Blocks: http://localhost:8332/rest/block/*HASH*.*EXT* +- Blocks without transactions: http://localhost:8332/rest/block/notxdetails/*HASH*.*EXT* +- Transactions (requires `-txindex`): http://localhost:8332/rest/tx/*HASH*.*EXT* + +In every case, *EXT* can be `bin` (for raw binary data), `hex` (for hex-encoded +binary) or `json`. + +For more details, see the `doc/REST-interface.md` document in the repository. + +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 that we've eagerly wanted to use 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 + +Watch-only wallet support +------------------------- + +The wallet can now track transactions to and from wallets for which you know +all addresses (or scripts), even without the private keys. + +This can be used to track payments without needing the private keys online on a +possibly vulnerable system. In addition, it can help for (manual) construction +of multisig transactions where you are only one of the signers. + +One new RPC, `importaddress`, is added which functions similarly to +`importprivkey`, but instead takes an address or script (in hexadecimal) as +argument. After using it, outputs credited to this address or script are +considered to be received, and transactions consuming these outputs will be +considered to be sent. + +The following RPCs have optional support for watch-only: +`getbalance`, `listreceivedbyaddress`, `listreceivedbyaccount`, +`listtransactions`, `listaccounts`, `listsinceblock`, `gettransaction`. See the +RPC documentation for those methods for more information. + +Compared to using `getrawtransaction`, this mechanism does not require +`-txindex`, scales better, integrates better with the wallet, and is compatible +with future block chain pruning functionality. It does mean that all relevant +addresses need to added to the wallet before the payment, though. + +Consensus library +----------------- + +Starting from 0.10.0, the Bitcoin Core distribution includes a consensus library. + +The purpose of this library is to make the verification functionality that is +critical to Bitcoin's consensus available to other applications, e.g. to language +bindings such as [python-bitcoinlib](https://pypi.python.org/pypi/python-bitcoinlib) or +alternative node implementations. + +This library is called `libbitcoinconsensus.so` (or, `.dll` for Windows). +Its interface is defined in the C header [bitcoinconsensus.h](https://github.com/bitcoin/bitcoin/blob/0.10/src/script/bitcoinconsensus.h). + +In its initial version the API includes two functions: + +- `bitcoinconsensus_verify_script` verifies a script. It returns whether the indicated input of the provided serialized transaction +correctly spends the passed scriptPubKey under additional constraints indicated by flags +- `bitcoinconsensus_version` returns the API version, currently at an experimental `0` + +The functionality is planned to be extended to e.g. UTXO management in upcoming releases, but the interface +for existing methods should remain stable. + +Standard script rules relaxed for P2SH addresses +------------------------------------------------ + +The IsStandard() rules have been almost completely removed for P2SH +redemption scripts, allowing applications to make use of any valid +script type, such as "n-of-m OR y", hash-locked oracle addresses, etc. +While the Bitcoin protocol has always supported these types of script, +actually using them on mainnet has been previously inconvenient as +standard Bitcoin Core nodes wouldn't relay them to miners, nor would +most miners include them in blocks they mined. + +bitcoin-tx +---------- + +It has been observed that many of the RPC functions offered by bitcoind are +"pure functions", and operate independently of the bitcoind wallet. This +included many of the RPC "raw transaction" API functions, such as +createrawtransaction. + +bitcoin-tx is a newly introduced command line utility designed to enable easy +manipulation of bitcoin transactions. A summary of its operation may be +obtained via "bitcoin-tx --help" Transactions may be created or signed in a +manner similar to the RPC raw tx API. Transactions may be updated, deleting +inputs or outputs, or appending new inputs and outputs. Custom scripts may be +easily composed using a simple text notation, borrowed from the bitcoin test +suite. + +This tool may be used for experimenting with new transaction types, signing +multi-party transactions, and many other uses. Long term, the goal is to +deprecate and remove "pure function" RPC API calls, as those do not require a +server round-trip to execute. + +Other utilities "bitcoin-key" and "bitcoin-script" have been proposed, making +key and script operations easily accessible via command line. + +Mining and relay policy enhancements +------------------------------------ + +Bitcoin Core's block templates are now for version 3 blocks only, and any mining +software relying on its `getblocktemplate` must be updated in parallel to use +libblkmaker either version 0.4.2 or any version from 0.5.1 onward. +If you are solo mining, this will affect you the moment you upgrade Bitcoin +Core, which must be done prior to BIP66 achieving its 951/1001 status. +If you are mining with the stratum mining protocol: this does not affect you. +If you are mining with the getblocktemplate protocol to a pool: this will affect +you at the pool operator's discretion, which must be no later than BIP66 +achieving its 951/1001 status. + +The `prioritisetransaction` RPC method has been added to enable miners to +manipulate the priority of transactions on an individual basis. + +Bitcoin Core now supports BIP 22 long polling, so mining software can be +notified immediately of new templates rather than having to poll periodically. + +Support for BIP 23 block proposals is now available in Bitcoin Core's +`getblocktemplate` method. This enables miners to check the basic validity of +their next block before expending work on it, reducing risks of accidental +hardforks or mining invalid blocks. + +Two new options to control mining policy: +- `-datacarrier=0/1` : Relay and mine "data carrier" (OP_RETURN) transactions +if this is 1. +- `-datacarriersize=n` : Maximum size, in bytes, we consider acceptable for +"data carrier" outputs. + +The relay policy has changed to more properly implement the desired behavior of not +relaying free (or very low fee) transactions unless they have a priority above the +AllowFreeThreshold(), in which case they are relayed subject to the rate limiter. + +BIP 66: strict DER encoding for signatures +------------------------------------------ + +Bitcoin Core 0.10 implements BIP 66, which introduces block version 3, and a new +consensus rule, which prohibits non-DER signatures. Such transactions have been +non-standard since Bitcoin v0.8.0 (released in February 2013), but were +technically still permitted inside blocks. + +This change breaks the dependency on OpenSSL's signature parsing, and is +required if implementations would want to remove all of OpenSSL from the +consensus code. + +The same miner-voting mechanism as in BIP 34 is used: when 751 out of a +sequence of 1001 blocks have version number 3 or higher, the new consensus +rule becomes active for those blocks. When 951 out of a sequence of 1001 +blocks have version number 3 or higher, it becomes mandatory for all blocks. + +Backward compatibility with current mining software is NOT provided, thus miners +should read the first paragraph of "Mining and relay policy enhancements" above. + +0.10.0 Change log +================= + +Detailed release notes follow. This overview includes changes that affect external +behavior, not code moves, refactors or string updates. + +RPC: +- `f923c07` Support IPv6 lookup in bitcoin-cli even when IPv6 only bound on localhost +- `b641c9c` Fix addnode "onetry": Connect with OpenNetworkConnection +- `171ca77` estimatefee / estimatepriority RPC methods +- `b750cf1` Remove cli functionality from bitcoind +- `f6984e8` Add "chain" to getmininginfo, improve help in getblockchaininfo +- `99ddc6c` Add nLocalServices info to RPC getinfo +- `cf0c47b` Remove getwork() RPC call +- `2a72d45` prioritisetransaction +- `e44fea5` Add an option `-datacarrier` to allow users to disable relaying/mining data carrier transactions +- `2ec5a3d` Prevent easy RPC memory exhaustion attack +- `d4640d7` Added argument to getbalance to include watchonly addresses and fixed errors in balance calculation +- `83f3543` Added argument to listaccounts to include watchonly addresses +- `952877e` Showing 'involvesWatchonly' property for transactions returned by 'listtransactions' and 'listsinceblock'. It is only appended when the transaction involves a watchonly address +- `d7d5d23` Added argument to listtransactions and listsinceblock to include watchonly addresses +- `f87ba3d` added includeWatchonly argument to 'gettransaction' because it affects balance calculation +- `0fa2f88` added includedWatchonly argument to listreceivedbyaddress/...account +- `6c37f7f` `getrawchangeaddress`: fail when keypool exhausted and wallet locked +- `ff6a7af` getblocktemplate: longpolling support +- `c4a321f` Add peerid to getpeerinfo to allow correlation with the logs +- `1b4568c` Add vout to ListTransactions output +- `b33bd7a` Implement "getchaintips" RPC command to monitor blockchain forks +- `733177e` Remove size limit in RPC client, keep it in server +- `6b5b7cb` Categorize rpc help overview +- `6f2c26a` Closely track mempool byte total. Add "getmempoolinfo" RPC +- `aa82795` Add detailed network info to getnetworkinfo RPC +- `01094bd` Don't reveal whether password is <20 or >20 characters in RPC +- `57153d4` rpc: Compute number of confirmations of a block from block height +- `ff36cbe` getnetworkinfo: export local node's client sub-version string +- `d14d7de` SanitizeString: allow '(' and ')' +- `31d6390` Fixed setaccount accepting foreign address +- `b5ec5fe` update getnetworkinfo help with subversion +- `ad6e601` RPC additions after headers-first +- `33dfbf5` rpc: Fix leveldb iterator leak, and flush before `gettxoutsetinfo` +- `2aa6329` Enable customising node policy for datacarrier data size with a -datacarriersize option +- `f877aaa` submitblock: Use a temporary CValidationState to determine accurately the outcome of ProcessBlock +- `e69a587` submitblock: Support for returning specific rejection reasons +- `af82884` Add "warmup mode" for RPC server +- `e2655e0` Add unauthenticated HTTP REST interface to public blockchain data +- `683dc40` Disable SSLv3 (in favor of TLS) for the RPC client and server +- `44b4c0d` signrawtransaction: validate private key +- `9765a50` Implement BIP 23 Block Proposal +- `f9de17e` Add warning comment to getinfo + +Command-line options: +- `ee21912` Use netmasks instead of wildcards for IP address matching +- `deb3572` Add `-rpcbind` option to allow binding RPC port on a specific interface +- `96b733e` Add `-version` option to get just the version +- `1569353` Add `-stopafterblockimport` option +- `77cbd46` Let -zapwallettxes recover transaction meta data +- `1c750db` remove -tor compatibility code (only allow -onion) +- `4aaa017` rework help messages for fee-related options +- `4278b1d` Clarify error message when invalid -rpcallowip +- `6b407e4` -datadir is now allowed in config files +- `bdd5b58` Add option `-sysperms` to disable 077 umask (create new files with system default umask) +- `cbe39a3` Add "bitcoin-tx" command line utility and supporting modules +- `dbca89b` Trigger -alertnotify if network is upgrading without you +- `ad96e7c` Make -reindex cope with out-of-order blocks +- `16d5194` Skip reindexed blocks individually +- `ec01243` --tracerpc option for regression tests +- `f654f00` Change -genproclimit default to 1 +- `3c77714` Make -proxy set all network types, avoiding a connect leak +- `57be955` Remove -printblock, -printblocktree, and -printblockindex +- `ad3d208` remove -maxorphanblocks config parameter since it is no longer functional + +Block and transaction handling: +- `7a0e84d` ProcessGetData(): abort if a block file is missing from disk +- `8c93bf4` LoadBlockIndexDB(): Require block db reindex if any `blk*.dat` files are missing +- `77339e5` Get rid of the static chainMostWork (optimization) +- `4e0eed8` Allow ActivateBestChain to release its lock on cs_main +- `18e7216` Push cs_mains down in ProcessBlock +- `fa126ef` Avoid undefined behavior using CFlatData in CScript serialization +- `7f3b4e9` Relax IsStandard rules for pay-to-script-hash transactions +- `c9a0918` Add a skiplist to the CBlockIndex structure +- `bc42503` Use unordered_map for CCoinsViewCache with salted hash (optimization) +- `d4d3fbd` Do not flush the cache after every block outside of IBD (optimization) +- `ad08d0b` Bugfix: make CCoinsViewMemPool support pruned entries in underlying cache +- `5734d4d` Only remove actualy failed blocks from setBlockIndexValid +- `d70bc52` Rework block processing benchmark code +- `714a3e6` Only keep setBlockIndexValid entries that are possible improvements +- `ea100c7` Reduce maximum coinscache size during verification (reduce memory usage) +- `4fad8e6` Reject transactions with excessive numbers of sigops +- `b0875eb` Allow BatchWrite to destroy its input, reducing copying (optimization) +- `92bb6f2` Bypass reloading blocks from disk (optimization) +- `2e28031` Perform CVerifyDB on pcoinsdbview instead of pcoinsTip (reduce memory usage) +- `ab15b2e` Avoid copying undo data (optimization) +- `341735e` Headers-first synchronization +- `afc32c5` Fix rebuild-chainstate feature and improve its performance +- `e11b2ce` Fix large reorgs +- `ed6d1a2` Keep information about all block files in memory +- `a48f2d6` Abstract context-dependent block checking from acceptance +- `7e615f5` Fixed mempool sync after sending a transaction +- `51ce901` Improve chainstate/blockindex disk writing policy +- `a206950` Introduce separate flushing modes +- `9ec75c5` Add a locking mechanism to IsInitialBlockDownload to ensure it never goes from false to true +- `868d041` Remove coinbase-dependant transactions during reorg +- `723d12c` Remove txn which are invalidated by coinbase maturity during reorg +- `0cb8763` Check against MANDATORY flags prior to accepting to mempool +- `8446262` Reject headers that build on an invalid parent +- `008138c` Bugfix: only track UTXO modification after lookup + +P2P protocol and network code: +- `f80cffa` Do not trigger a DoS ban if SCRIPT_VERIFY_NULLDUMMY fails +- `c30329a` Add testnet DNS seed of Alex Kotenko +- `45a4baf` Add testnet DNS seed of Andreas Schildbach +- `f1920e8` Ping automatically every 2 minutes (unconditionally) +- `806fd19` Allocate receive buffers in on the fly +- `6ecf3ed` Display unknown commands received +- `aa81564` Track peers' available blocks +- `caf6150` Use async name resolving to improve net thread responsiveness +- `9f4da19` Use pong receive time rather than processing time +- `0127a9b` remove SOCKS4 support from core and GUI, use SOCKS5 +- `40f5cb8` Send rejects and apply DoS scoring for errors in direct block validation +- `dc942e6` Introduce whitelisted peers +- `c994d2e` prevent SOCKET leak in BindListenPort() +- `a60120e` Add built-in seeds for .onion +- `60dc8e4` Allow -onlynet=onion to be used +- `3a56de7` addrman: Do not propagate obviously poor addresses onto the network +- `6050ab6` netbase: Make SOCKS5 negotiation interruptible +- `604ee2a` Remove tx from AlreadyAskedFor list once we receive it, not when we process it +- `efad808` Avoid reject message feedback loops +- `71697f9` Separate protocol versioning from clientversion +- `20a5f61` Don't relay alerts to peers before version negotiation +- `b4ee0bd` Introduce preferred download peers +- `845c86d` Do not use third party services for IP detection +- `12a49ca` Limit the number of new addressses to accumulate +- `35e408f` Regard connection failures as attempt for addrman +- `a3a7317` Introduce 10 minute block download timeout +- `3022e7d` Require sufficent priority for relay of free transactions +- `58fda4d` Update seed IPs, based on bitcoin.sipa.be crawler data +- `18021d0` Remove bitnodes.io from dnsseeds. + +Validation: +- `6fd7ef2` Also switch the (unused) verification code to low-s instead of even-s +- `584a358` Do merkle root and txid duplicates check simultaneously +- `217a5c9` When transaction outputs exceed inputs, show the offending amounts so as to aid debugging +- `f74fc9b` Print input index when signature validation fails, to aid debugging +- `6fd59ee` script.h: set_vch() should shift a >32 bit value +- `d752ba8` Add SCRIPT_VERIFY_SIGPUSHONLY (BIP62 rule 2) (test only) +- `698c6ab` Add SCRIPT_VERIFY_MINIMALDATA (BIP62 rules 3 and 4) (test only) +- `ab9edbd` script: create sane error return codes for script validation and remove logging +- `219a147` script: check ScriptError values in script tests +- `0391423` Discourage NOPs reserved for soft-fork upgrades +- `98b135f` Make STRICTENC invalid pubkeys fail the script rather than the opcode +- `307f7d4` Report script evaluation failures in log and reject messages +- `ace39db` consensus: guard against openssl's new strict DER checks +- `12b7c44` Improve robustness of DER recoding code +- `76ce5c8` fail immediately on an empty signature + +Build system: +- `f25e3ad` Fix build in OS X 10.9 +- `65e8ba4` build: Switch to non-recursive make +- `460b32d` build: fix broken boost chrono check on some platforms +- `9ce0774` build: Fix windows configure when using --with-qt-libdir +- `ea96475` build: Add mention of --disable-wallet to bdb48 error messages +- `1dec09b` depends: add shared dependency builder +- `c101c76` build: Add --with-utils (bitcoin-cli and bitcoin-tx, default=yes). Help string consistency tweaks. Target sanity check fix +- `e432a5f` build: add option for reducing exports (v2) +- `6134b43` Fixing condition 'sabotaging' MSVC build +- `af0bd5e` osx: fix signing to make Gatekeeper happy (again) +- `a7d1f03` build: fix dynamic boost check when --with-boost= is used +- `d5fd094` build: fix qt test build when libprotobuf is in a non-standard path +- `2cf5f16` Add libbitcoinconsensus library +- `914868a` build: add a deterministic dmg signer +- `2d375fe` depends: bump openssl to 1.0.1k +- `b7a4ecc` Build: Only check for boost when building code that requires it + +Wallet: +- `b33d1f5` Use fee/priority estimates in wallet CreateTransaction +- `4b7b1bb` Sanity checks for estimates +- `c898846` Add support for watch-only addresses +- `d5087d1` Use script matching rather than destination matching for watch-only +- `d88af56` Fee fixes +- `a35b55b` Dont run full check every time we decrypt wallet +- `3a7c348` Fix make_change to not create half-satoshis +- `f606bb9` fix a possible memory leak in CWalletDB::Recover +- `870da77` fix possible memory leaks in CWallet::EncryptWallet +- `ccca27a` Watch-only fixes +- `9b1627d` [Wallet] Reduce minTxFee for transaction creation to 1000 satoshis +- `a53fd41` Deterministic signing +- `15ad0b5` Apply AreSane() checks to the fees from the network +- `11855c1` Enforce minRelayTxFee on wallet created tx and add a maxtxfee option + +GUI: +- `c21c74b` osx: Fix missing dock menu with qt5 +- `b90711c` Fix Transaction details shows wrong To: +- `516053c` Make links in 'About Bitcoin Core' clickable +- `bdc83e8` Ensure payment request network matches client network +- `65f78a1` Add GUI view of peer information +- `06a91d9` VerifyDB progress reporting +- `fe6bff2` Add BerkeleyDB version info to RPCConsole +- `b917555` PeerTableModel: Fix potential deadlock. #4296 +- `dff0e3b` Improve rpc console history behavior +- `95a9383` Remove CENT-fee-rule from coin control completely +- `56b07d2` Allow setting listen via GUI +- `d95ba75` Log messages with type>QtDebugMsg as non-debug +- `8969828` New status bar Unit Display Control and related changes +- `674c070` seed OpenSSL PNRG with Windows event data +- `509f926` Payment request parsing on startup now only changes network if a valid network name is specified +- `acd432b` Prevent balloon-spam after rescan +- `7007402` Implement SI-style (thin space) thoudands separator +- `91cce17` Use fixed-point arithmetic in amount spinbox +- `bdba2dd` Remove an obscure option no-one cares about +- `bd0aa10` Replace the temporary file hack currently used to change Bitcoin-Qt's dock icon (OS X) with a buffer-based solution +- `94e1b9e` Re-work overviewpage UI +- `8bfdc9a` Better looking trayicon +- `b197bf3` disable tray interactions when client model set to 0 +- `1c5f0af` Add column Watch-only to transactions list +- `21f139b` Fix tablet crash. closes #4854 +- `e84843c` Broken addresses on command line no longer trigger testnet +- `a49f11d` Change splash screen to normal window +- `1f9be98` Disable App Nap on OSX 10.9+ +- `27c3e91` Add proxy to options overridden if necessary +- `4bd1185` Allow "emergency" shutdown during startup +- `d52f072` Don't show wallet options in the preferences menu when running with -disablewallet +- `6093aa1` Qt: QProgressBar CPU-Issue workaround +- `0ed9675` [Wallet] Add global boolean whether to send free transactions (default=true) +- `ed3e5e4` [Wallet] Add global boolean whether to pay at least the custom fee (default=true) +- `e7876b2` [Wallet] Prevent user from paying a non-sense fee +- `c1c9d5b` Add Smartfee to GUI +- `e0a25c5` Make askpassphrase dialog behave more sanely +- `94b362d` On close of splashscreen interrupt verifyDB +- `b790d13` English translation update +- `8543b0d` Correct tooltip on address book page + +Tests: +- `b41e594` Fix script test handling of empty scripts +- `d3a33fc` Test CHECKMULTISIG with m == 0 and n == 0 +- `29c1749` Let tx (in)valid tests use any SCRIPT_VERIFY flag +- `6380180` Add rejection of non-null CHECKMULTISIG dummy values +- `21bf3d2` Add tests for BoostAsioToCNetAddr +- `b5ad5e7` Add Python test for -rpcbind and -rpcallowip +- `9ec0306` Add CODESEPARATOR/FindAndDelete() tests +- `75ebced` Added many rpc wallet tests +- `0193fb8` Allow multiple regression tests to run at once +- `92a6220` Hook up sanity checks +- `3820e01` Extend and move all crypto tests to crypto_tests.cpp +- `3f9a019` added list/get received by address/ account tests +- `a90689f` Remove timing-based signature cache unit test +- `236982c` Add skiplist unit tests +- `f4b00be` Add CChain::GetLocator() unit test +- `b45a6e8` Add test for getblocktemplate longpolling +- `cdf305e` Set -discover=0 in regtest framework +- `ed02282` additional test for OP_SIZE in script_valid.json +- `0072d98` script tests: BOOLAND, BOOLOR decode to integer +- `833ff16` script tests: values that overflow to 0 are true +- `4cac5db` script tests: value with trailing 0x00 is true +- `89101c6` script test: test case for 5-byte bools +- `d2d9dc0` script tests: add tests for CHECKMULTISIG limits +- `d789386` Add "it works" test for bitcoin-tx +- `df4d61e` Add bitcoin-tx tests +- `aa41ac2` Test IsPushOnly() with invalid push +- `6022b5d` Make `script_{valid,invalid}.json` validation flags configurable +- `8138cbe` Add automatic script test generation, and actual checksig tests +- `ed27e53` Add coins_tests with a large randomized CCoinViewCache test +- `9df9cf5` Make SCRIPT_VERIFY_STRICTENC compatible with BIP62 +- `dcb9846` Extend getchaintips RPC test +- `554147a` Ensure MINIMALDATA invalid tests can only fail one way +- `dfeec18` Test every numeric-accepting opcode for correct handling of the numeric minimal encoding rule +- `2b62e17` Clearly separate PUSHDATA and numeric argument MINIMALDATA tests +- `16d78bd` Add valid invert of invalid every numeric opcode tests +- `f635269` tests: enable alertnotify test for Windows +- `7a41614` tests: allow rpc-tests to get filenames for bitcoind and bitcoin-cli from the environment +- `5122ea7` tests: fix forknotify.py on windows +- `fa7f8cd` tests: remove old pull-tester scripts +- `7667850` tests: replace the old (unused since Travis) tests with new rpc test scripts +- `f4e0aef` Do signature-s negation inside the tests +- `1837987` Optimize -regtest setgenerate block generation +- `2db4c8a` Fix node ranges in the test framework +- `a8b2ce5` regression test only setmocktime RPC call +- `daf03e7` RPC tests: create initial chain with specific timestamps +- `8656dbb` Port/fix txnmall.sh regression test +- `ca81587` Test the exact order of CHECKMULTISIG sig/pubkey evaluation +- `7357893` Prioritize and display -testsafemode status in UI +- `f321d6b` Add key generation/verification to ECC sanity check +- `132ea9b` miner_tests: Disable checkpoints so they don't fail the subsidy-change test +- `bc6cb41` QA RPC tests: Add tests block block proposals +- `f67a9ce` Use deterministically generated script tests +- `11d7a7d` [RPC] add rpc-test for http keep-alive (persistent connections) +- `34318d7` RPC-test based on invalidateblock for mempool coinbase spends +- `76ec867` Use actually valid transactions for script tests +- `c8589bf` Add actual signature tests +- `e2677d7` Fix smartfees test for change to relay policy +- `263b65e` tests: run sanity checks in tests too + +Miscellaneous: +- `122549f` Fix incorrect checkpoint data for testnet3 +- `5bd02cf` Log used config file to debug.log on startup +- `68ba85f` Updated Debian example bitcoin.conf with config from wiki + removed some cruft and updated comments +- `e5ee8f0` Remove -beta suffix +- `38405ac` Add comment regarding experimental-use service bits +- `be873f6` Issue warning if collecting RandSeed data failed +- `8ae973c` Allocate more space if necessary in RandSeedAddPerfMon +- `675bcd5` Correct comment for 15-of-15 p2sh script size +- `fda3fed` libsecp256k1 integration +- `2e36866` Show nodeid instead of addresses in log (for anonymity) unless otherwise requested +- `cd01a5e` Enable paranoid corruption checks in LevelDB >= 1.16 +- `9365937` Add comment about never updating nTimeOffset past 199 samples +- `403c1bf` contrib: remove getwork-based pyminer (as getwork API call has been removed) +- `0c3e101` contrib: Added systemd .service file in order to help distributions integrate bitcoind +- `0a0878d` doc: Add new DNSseed policy +- `2887bff` Update coding style and add .clang-format +- `5cbda4f` Changed LevelDB cursors to use scoped pointers to ensure destruction when going out of scope +- `b4a72a7` contrib/linearize: split output files based on new-timestamp-year or max-file-size +- `e982b57` Use explicit fflush() instead of setvbuf() +- `234bfbf` contrib: Add init scripts and docs for Upstart and OpenRC +- `01c2807` Add warning about the merkle-tree algorithm duplicate txid flaw +- `d6712db` Also create pid file in non-daemon mode +- `772ab0e` contrib: use batched JSON-RPC in linarize-hashes (optimization) +- `7ab4358` Update bash-completion for v0.10 +- `6e6a36c` contrib: show pull # in prompt for github-merge script +- `5b9f842` Upgrade leveldb to 1.18, make chainstate databases compatible between ARM and x86 (issue #2293) +- `4e7c219` Catch UTXO set read errors and shutdown +- `867c600` Catch LevelDB errors during flush +- `06ca065` Fix CScriptID(const CScript& in) in empty script case + +Credits +======= + +Thanks to everyone who contributed to this release: + +- 21E14 +- Adam Weiss +- Aitor Pazos +- Alexander Jeng +- Alex Morcos +- Alon Muroch +- Andreas Schildbach +- Andrew Poelstra +- Andy Alness +- Ashley Holman +- Benedict Chan +- Ben Holden-Crowther +- Bryan Bishop +- BtcDrak +- Christian von Roques +- Clinton Christian +- Cory Fields +- Cozz Lovan +- daniel +- Daniel Kraft +- David Hill +- Derek701 +- dexX7 +- dllud +- Dominyk Tiller +- Doug +- elichai +- elkingtowa +- ENikS +- Eric Shaw +- Federico Bond +- Francis GASCHET +- Gavin Andresen +- Giuseppe Mazzotta +- Glenn Willen +- Gregory Maxwell +- gubatron +- HarryWu +- himynameismartin +- Huang Le +- Ian Carroll +- imharrywu +- Jameson Lopp +- Janusz Lenar +- JaSK +- Jeff Garzik +- JL2035 +- Johnathan Corgan +- Jonas Schnelli +- jtimon +- Julian Haight +- Kamil Domanski +- kazcw +- kevin +- kiwigb +- Kosta Zertsekel +- LongShao007 +- Luke Dashjr +- Mark Friedenbach +- Mathy Vanvoorden +- Matt Corallo +- Matthew Bogosian +- Micha +- Michael Ford +- Mike Hearn +- mrbandrews +- mruddy +- ntrgn +- Otto Allmendinger +- paveljanik +- Pavel Vasin +- Peter Todd +- phantomcircuit +- Philip Kaufmann +- Pieter Wuille +- pryds +- randy-waterhouse +- R E Broadley +- Rose Toomey +- Ross Nicoll +- Roy Badami +- Ruben Dario Ponticelli +- Rune K. Svendsen +- Ryan X. Charles +- Saivann +- sandakersmann +- SergioDemianLerner +- shshshsh +- sinetek +- Stuart Cardall +- Suhas Daftuar +- Tawanda Kembo +- Teran McKinney +- tm314159 +- Tom Harding +- Trevin Hofmann +- Whit J +- Wladimir J. van der Laan +- Yoichi Hirai +- Zak Wilcox + +As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). + From bf1cc803729cf63c74467b6ec8dd236274be70bb Mon Sep 17 00:00:00 2001 From: "David A. Harding" Date: Thu, 2 Apr 2015 10:34:26 -0400 Subject: [PATCH 110/201] Docs: Use new Bitcoin.org download URLs To give the torrents (which use web seeds) better names, we updated the URL scheme on bitcoin.org/bin. This updates the release notes and release doc accordingly, plus updates some other details based on recent changes to the site. [skip ci] --- doc/release-notes.md | 4 ++-- doc/release-process.md | 17 ++++++++++++----- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index f30436fd8d8..3f1c9669c3b 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,6 +1,6 @@ Bitcoin Core version 0.10.1 is now available from: - https://bitcoin.org/bin/0.10.1/ + This is a new minor version release, bringing bug fixes and translation updates. If you are using 0.10.0, it is recommended to upgrade to this @@ -8,7 +8,7 @@ version. Please report bugs using the issue tracker at github: - https://github.com/bitcoin/bitcoin/issues + Upgrading and downgrading ========================= diff --git a/doc/release-process.md b/doc/release-process.md index eb2eb619bd7..8c90243d77e 100644 --- a/doc/release-process.md +++ b/doc/release-process.md @@ -132,15 +132,22 @@ rm SHA256SUMS (the digest algorithm is forced to sha256 to avoid confusion of the `Hash:` header that GPG adds with the SHA256 used for the files) - Upload zips and installers, as well as `SHA256SUMS.asc` from last step, to the bitcoin.org server + into `/var/www/bin/bitcoin-core-${VERSION}` - Update bitcoin.org version - - Make a pull request to add a file named `YYYY-MM-DD-vX.Y.Z.md` with the release notes - to https://github.com/bitcoin/bitcoin.org/tree/master/_releases - ([Example for 0.9.2.1](https://raw.githubusercontent.com/bitcoin/bitcoin.org/master/_releases/2014-06-19-v0.9.2.1.md)). + - First, check to see if the Bitcoin.org maintainers have prepared a + release: https://github.com/bitcoin/bitcoin.org/labels/Releases - - After the pull request is merged, the website will automatically show the newest version, as well - as update the OS download links. Ping Saivann in case anything goes wrong + - If they have, it will have previously failed their Travis CI + checks because the final release files weren't uploaded. + Trigger a Travis CI rebuild---if it passes, merge. + + - If they have not prepared a release, follow the Bitcoin.org release + instructions: https://github.com/bitcoin/bitcoin.org#release-notes + + - After the pull request is merged, the website will automatically show the newest version within 15 minutes, as well + as update the OS download links. Ping @saivann/@harding (saivann/harding on Freenode) in case anything goes wrong - Announce the release: From 149c1d890ddc6dd0f108436704ac88bbed9ab12c Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Mon, 6 Apr 2015 09:27:41 +0200 Subject: [PATCH 111/201] doc: Credit Jonas Nick in release notes For discovering the vulnerability and discussing the fix that led to PR #5860. --- doc/release-notes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/release-notes.md b/doc/release-notes.md index 3f1c9669c3b..c4e46c542cc 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -109,6 +109,7 @@ Thanks to everyone who contributed to this release: - fsb4000 - Gregory Maxwell - Ivan Pustogarov +- Jonas Nick - Jonas Schnelli - Pieter Wuille - Ruben de Vries From 1c62e8409998f0358f2fca522678704824e332c1 Mon Sep 17 00:00:00 2001 From: Gavin Andresen Date: Wed, 25 Mar 2015 13:13:09 -0400 Subject: [PATCH 112/201] Keep mempool consistent during block-reorgs This fixes a subtle bug involving block re-orgs and non-standard transactions. Start with a block containing a non-standard transaction, and one or more transactions spending it in the memory pool. Then re-org away from that block to another chain that does not contain the non-standard transaction. Result before this fix: the dependent transactions get stuck in the mempool without their parent, putting the mempool in an inconsistent state. Tested with a new unit test (adapted for 0.10). Rebased-From: ad9e86dca11dce023d827d342e966f3806c39d27 Github-Pull: #5945 --- src/Makefile.test.include | 1 + src/test/mempool_tests.cpp | 102 +++++++++++++++++++++++++++++++++++++++++++++ src/txmempool.cpp | 12 ++++++ 3 files changed, 115 insertions(+) create mode 100644 src/test/mempool_tests.cpp diff --git a/src/Makefile.test.include b/src/Makefile.test.include index 0a9a335e7a3..9cc479c3056 100644 --- a/src/Makefile.test.include +++ b/src/Makefile.test.include @@ -51,6 +51,7 @@ BITCOIN_TESTS =\ test/hash_tests.cpp \ test/key_tests.cpp \ test/main_tests.cpp \ + test/mempool_tests.cpp \ test/miner_tests.cpp \ test/mruset_tests.cpp \ test/multisig_tests.cpp \ diff --git a/src/test/mempool_tests.cpp b/src/test/mempool_tests.cpp new file mode 100644 index 00000000000..b85f768ed55 --- /dev/null +++ b/src/test/mempool_tests.cpp @@ -0,0 +1,102 @@ +// Copyright (c) 2011-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. + +#include "main.h" +#include "txmempool.h" +#include "util.h" + +#include +#include + +BOOST_AUTO_TEST_SUITE(mempool_tests) + +BOOST_AUTO_TEST_CASE(MempoolRemoveTest) +{ + // Test CTxMemPool::remove functionality + + // Parent transaction with three children, + // and three grand-children: + CMutableTransaction txParent; + txParent.vin.resize(1); + txParent.vin[0].scriptSig = CScript() << OP_11; + txParent.vout.resize(3); + for (int i = 0; i < 3; i++) + { + txParent.vout[i].scriptPubKey = CScript() << OP_11 << OP_EQUAL; + txParent.vout[i].nValue = 33000LL; + } + CMutableTransaction txChild[3]; + for (int i = 0; i < 3; i++) + { + txChild[i].vin.resize(1); + txChild[i].vin[0].scriptSig = CScript() << OP_11; + txChild[i].vin[0].prevout.hash = txParent.GetHash(); + txChild[i].vin[0].prevout.n = i; + txChild[i].vout.resize(1); + txChild[i].vout[0].scriptPubKey = CScript() << OP_11 << OP_EQUAL; + txChild[i].vout[0].nValue = 11000LL; + } + CMutableTransaction txGrandChild[3]; + for (int i = 0; i < 3; i++) + { + txGrandChild[i].vin.resize(1); + txGrandChild[i].vin[0].scriptSig = CScript() << OP_11; + txGrandChild[i].vin[0].prevout.hash = txChild[i].GetHash(); + txGrandChild[i].vin[0].prevout.n = 0; + txGrandChild[i].vout.resize(1); + txGrandChild[i].vout[0].scriptPubKey = CScript() << OP_11 << OP_EQUAL; + txGrandChild[i].vout[0].nValue = 11000LL; + } + + + CTxMemPool testPool(CFeeRate(0)); + std::list removed; + + // Nothing in pool, remove should do nothing: + testPool.remove(txParent, removed, true); + BOOST_CHECK_EQUAL(removed.size(), 0); + + // Just the parent: + testPool.addUnchecked(txParent.GetHash(), CTxMemPoolEntry(txParent, 0, 0, 0.0, 1)); + testPool.remove(txParent, removed, true); + BOOST_CHECK_EQUAL(removed.size(), 1); + removed.clear(); + + // Parent, children, grandchildren: + testPool.addUnchecked(txParent.GetHash(), CTxMemPoolEntry(txParent, 0, 0, 0.0, 1)); + for (int i = 0; i < 3; i++) + { + testPool.addUnchecked(txChild[i].GetHash(), CTxMemPoolEntry(txChild[i], 0, 0, 0.0, 1)); + testPool.addUnchecked(txGrandChild[i].GetHash(), CTxMemPoolEntry(txGrandChild[i], 0, 0, 0.0, 1)); + } + // Remove Child[0], GrandChild[0] should be removed: + testPool.remove(txChild[0], removed, true); + BOOST_CHECK_EQUAL(removed.size(), 2); + removed.clear(); + // ... make sure grandchild and child are gone: + testPool.remove(txGrandChild[0], removed, true); + BOOST_CHECK_EQUAL(removed.size(), 0); + testPool.remove(txChild[0], removed, true); + BOOST_CHECK_EQUAL(removed.size(), 0); + // Remove parent, all children/grandchildren should go: + testPool.remove(txParent, removed, true); + BOOST_CHECK_EQUAL(removed.size(), 5); + BOOST_CHECK_EQUAL(testPool.size(), 0); + removed.clear(); + + // Add children and grandchildren, but NOT the parent (simulate the parent being in a block) + for (int i = 0; i < 3; i++) + { + testPool.addUnchecked(txChild[i].GetHash(), CTxMemPoolEntry(txChild[i], 0, 0, 0.0, 1)); + testPool.addUnchecked(txGrandChild[i].GetHash(), CTxMemPoolEntry(txGrandChild[i], 0, 0, 0.0, 1)); + } + // Now remove the parent, as might happen if a block-re-org occurs but the parent cannot be + // put into the mempool (maybe because it is non-standard): + testPool.remove(txParent, removed, true); + BOOST_CHECK_EQUAL(removed.size(), 6); + BOOST_CHECK_EQUAL(testPool.size(), 0); + removed.clear(); +} + +BOOST_AUTO_TEST_SUITE_END() diff --git a/src/txmempool.cpp b/src/txmempool.cpp index dcdf5653fe8..db598a1dfa5 100644 --- a/src/txmempool.cpp +++ b/src/txmempool.cpp @@ -444,6 +444,18 @@ void CTxMemPool::remove(const CTransaction &origTx, std::list& rem LOCK(cs); std::deque txToRemove; txToRemove.push_back(origTx.GetHash()); + if (fRecursive && !mapTx.count(origTx.GetHash())) { + // If recursively removing but origTx isn't in the mempool + // be sure to remove any children that are in the pool. This can + // happen during chain re-orgs if origTx isn't re-accepted into + // the mempool for any reason. + for (unsigned int i = 0; i < origTx.vout.size(); i++) { + std::map::iterator it = mapNextTx.find(COutPoint(origTx.GetHash(), i)); + if (it == mapNextTx.end()) + continue; + txToRemove.push_back(it->second.ptx->GetHash()); + } + } while (!txToRemove.empty()) { uint256 hash = txToRemove.front(); From 34127c77cbdc0c177945ccfbc4e4eb9c8e8a2c9c Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Thu, 9 Apr 2015 10:19:52 +0200 Subject: [PATCH 113/201] doc: update release notes pre rc2 --- doc/release-notes.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/release-notes.md b/doc/release-notes.md index c4e46c542cc..981e6244116 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -65,6 +65,7 @@ Block (database) and transaction handling: - `c91c660` fix InvalidateBlock to repopulate setBlockIndexCandidates - `002c8a2` fix possible block db breakage during re-index - `a1f425b` Add (optional) consistency check for the block chain data structures +- `1c62e84` Keep mempool consistent during block-reorgs P2P protocol and network code: - `78f64ef` don't trickle for whitelisted nodes @@ -107,6 +108,7 @@ Thanks to everyone who contributed to this release: - Cory Fields - dexX7 - fsb4000 +- Gavin Andresen - Gregory Maxwell - Ivan Pustogarov - Jonas Nick From eae305f4c4a42e82e932403b5b6544dd85880ec1 Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Mon, 13 Apr 2015 17:55:41 +0100 Subject: [PATCH 114/201] Fix missing lock in submitblock Rebased-From: eb63bf86cf6dc99f150574463df6ffb013a34493 Github-Pull: #6007 --- src/rpcmining.cpp | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/rpcmining.cpp b/src/rpcmining.cpp index 86230521ce8..37465eedd02 100644 --- a/src/rpcmining.cpp +++ b/src/rpcmining.cpp @@ -637,14 +637,19 @@ Value submitblock(const Array& params, bool fHelp) throw JSONRPCError(RPC_DESERIALIZATION_ERROR, "Block decode failed"); uint256 hash = block.GetHash(); - BlockMap::iterator mi = mapBlockIndex.find(hash); - if (mi != mapBlockIndex.end()) { - CBlockIndex *pindex = mi->second; - if (pindex->IsValid(BLOCK_VALID_SCRIPTS)) - return "duplicate"; - if (pindex->nStatus & BLOCK_FAILED_MASK) - return "duplicate-invalid"; - // Otherwise, we might only have the header - process the block before returning + bool fBlockPresent = false; + { + LOCK(cs_main); + BlockMap::iterator mi = mapBlockIndex.find(hash); + if (mi != mapBlockIndex.end()) { + CBlockIndex *pindex = mi->second; + if (pindex->IsValid(BLOCK_VALID_SCRIPTS)) + return "duplicate"; + if (pindex->nStatus & BLOCK_FAILED_MASK) + return "duplicate-invalid"; + // Otherwise, we might only have the header - process the block before returning + fBlockPresent = true; + } } CValidationState state; @@ -652,7 +657,7 @@ Value submitblock(const Array& params, bool fHelp) RegisterValidationInterface(&sc); bool fAccepted = ProcessNewBlock(state, NULL, &block); UnregisterValidationInterface(&sc); - if (mi != mapBlockIndex.end()) + if (fBlockPresent) { if (fAccepted && !sc.found) return "duplicate-inconclusive"; From 57d1f46952bb6ee5c7b1200f29e8854d3191923a Mon Sep 17 00:00:00 2001 From: mrbandrews Date: Thu, 9 Apr 2015 11:08:39 -0400 Subject: [PATCH 115/201] Fix CheckBlockIndex for reindex. Some tests in CheckBlockIndex require chainActive.Tip(), but when reindexing, chainActive has not been set on the first call to CheckBlockIndex. reindex.py starts a node, mines 3 blocks, stops, and reindexes with CheckBlockIndex enabled. Rebased-From: 0421c18f3a261f04e83a03f59884e5798af74fd9 Github-Pull: #6012 --- qa/rpc-tests/reindex.py | 34 ++++++++++++++++++++++++++++++++++ src/main.cpp | 8 ++++++++ 2 files changed, 42 insertions(+) create mode 100755 qa/rpc-tests/reindex.py diff --git a/qa/rpc-tests/reindex.py b/qa/rpc-tests/reindex.py new file mode 100755 index 00000000000..fe767586bb7 --- /dev/null +++ b/qa/rpc-tests/reindex.py @@ -0,0 +1,34 @@ +#!/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 -reindex with CheckBlockIndex +# +from test_framework import BitcoinTestFramework +from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException +from util import * +import os.path + +class ReindexTest(BitcoinTestFramework): + + def setup_chain(self): + print("Initializing test directory "+self.options.tmpdir) + initialize_chain_clean(self.options.tmpdir, 1) + + def setup_network(self): + self.nodes = [] + self.is_network_split = False + self.nodes.append(start_node(0, self.options.tmpdir)) + + def run_test(self): + self.nodes[0].generate(3) + stop_node(self.nodes[0], 0) + wait_bitcoinds() + self.nodes[0]=start_node(0, self.options.tmpdir, ["-debug", "-reindex", "-checkblockindex=1"]) + assert_equal(self.nodes[0].getblockcount(), 3) + print "Success" + +if __name__ == '__main__': + ReindexTest().main() diff --git a/src/main.cpp b/src/main.cpp index dc6f37c2200..4685c779a47 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3227,6 +3227,14 @@ void static CheckBlockIndex() LOCK(cs_main); + // During a reindex, we read the genesis block and call CheckBlockIndex before ActivateBestChain, + // so we have the genesis block in mapBlockIndex but no active chain. (A few of the tests when + // iterating the block tree require that chainActive has been initialized.) + if (chainActive.Height() < 0) { + assert(mapBlockIndex.size() <= 1); + return; + } + // Build forward-pointing map of the entire block tree. std::multimap forward; for (BlockMap::iterator it = mapBlockIndex.begin(); it != mapBlockIndex.end(); it++) { From df45564cf0ad3b591d4eb8cc2354093bcb7df14c Mon Sep 17 00:00:00 2001 From: dexX7 Date: Fri, 27 Mar 2015 01:07:49 +0100 Subject: [PATCH 116/201] Initialization: set fallback locale as environment variable The scope of `std::locale::global` appears to be smaller than `setenv("LC_ALL", ...)` and insufficient to fix messed up locale settings for the whole application. --- src/util.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/util.cpp b/src/util.cpp index a03f55c910c..4fea18b3068 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -713,18 +713,19 @@ void RenameThread(const char* name) void SetupEnvironment() { + std::locale loc("C"); // On most POSIX systems (e.g. Linux, but not BSD) the environment's locale // may be invalid, in which case the "C" locale is used as fallback. #if !defined(WIN32) && !defined(MAC_OSX) && !defined(__FreeBSD__) && !defined(__OpenBSD__) try { - std::locale(""); // Raises a runtime error if current locale is invalid + loc = std::locale(""); // Raises a runtime error if current locale is invalid } catch (const std::runtime_error&) { - std::locale::global(std::locale("C")); + setenv("LC_ALL", "C", 1); } #endif // The path locale is lazy initialized and to avoid deinitialization errors // in multithreading environments, it is set explicitly by the main thread. - boost::filesystem::path::imbue(std::locale()); + boost::filesystem::path::imbue(loc); } void SetThreadPriority(int nPriority) From 7494e0915b1b6ab0d68b77a2f9140e365e41cef8 Mon Sep 17 00:00:00 2001 From: dexX7 Date: Wed, 25 Mar 2015 12:09:17 +0100 Subject: [PATCH 117/201] Initialization: setup environment before starting tests The environment is prepared by the main thread to guard against invalid locale settings and to prevent deinitialization issues of Boost path, which can result in app crashes. --- src/test/test_bitcoin.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/test_bitcoin.cpp b/src/test/test_bitcoin.cpp index 5269e3bda7e..30626267ffa 100644 --- a/src/test/test_bitcoin.cpp +++ b/src/test/test_bitcoin.cpp @@ -30,6 +30,7 @@ struct TestingSetup { boost::thread_group threadGroup; TestingSetup() { + SetupEnvironment(); fPrintToDebugLog = false; // don't want to write to debug.log file fCheckBlockIndex = true; SelectParams(CBaseChainParams::UNITTEST); From 323de27f4b6a9673902cb414c3b0e3879b1366e7 Mon Sep 17 00:00:00 2001 From: dexX7 Date: Fri, 27 Mar 2015 01:33:34 +0100 Subject: [PATCH 118/201] Initialization: setup environment before starting QT tests The environment is prepared by the main thread to guard against invalid locale settings. --- src/qt/test/test_main.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/qt/test/test_main.cpp b/src/qt/test/test_main.cpp index f2161c2f793..7d7282db171 100644 --- a/src/qt/test/test_main.cpp +++ b/src/qt/test/test_main.cpp @@ -6,6 +6,7 @@ #include "config/bitcoin-config.h" #endif +#include "util.h" #include "uritests.h" #ifdef ENABLE_WALLET @@ -27,6 +28,7 @@ Q_IMPORT_PLUGIN(qkrcodecs) // This is all you need to run all the tests int main(int argc, char *argv[]) { + SetupEnvironment(); bool fInvalid = false; // Don't remove this, it's needed to access From bac6fca3c91ba4c0e3c64d65c5c359b50036a2b6 Mon Sep 17 00:00:00 2001 From: Suhas Daftuar Date: Mon, 13 Apr 2015 12:26:28 -0400 Subject: [PATCH 119/201] Set nSequenceId when a block is fully linked Also adds a test to CheckBlockIndex Conflicts: src/main.cpp Rebased-From: c1ecee8f723c2635fbd51100fa09acdb0cbec8a0 Github-Pull: #6010 --- src/main.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 4685c779a47..c37e1092ebf 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2319,10 +2319,6 @@ bool ReceivedBlockTransactions(const CBlock &block, CValidationState& state, CBl pindexNew->nUndoPos = 0; pindexNew->nStatus |= BLOCK_HAVE_DATA; pindexNew->RaiseValidity(BLOCK_VALID_TRANSACTIONS); - { - LOCK(cs_nBlockSequenceId); - pindexNew->nSequenceId = nBlockSequenceId++; - } setDirtyBlockIndex.insert(pindexNew); if (pindexNew->pprev == NULL || pindexNew->pprev->nChainTx) { @@ -2335,6 +2331,10 @@ bool ReceivedBlockTransactions(const CBlock &block, CValidationState& state, CBl CBlockIndex *pindex = queue.front(); queue.pop_front(); pindex->nChainTx = (pindex->pprev ? pindex->pprev->nChainTx : 0) + pindex->nTx; + { + LOCK(cs_nBlockSequenceId); + pindex->nSequenceId = nBlockSequenceId++; + } if (chainActive.Tip() == NULL || !setBlockIndexCandidates.value_comp()(pindex, chainActive.Tip())) { setBlockIndexCandidates.insert(pindex); } @@ -3272,6 +3272,11 @@ void static CheckBlockIndex() assert(pindex->GetBlockHash() == Params().HashGenesisBlock()); // Genesis block's hash must match. assert(pindex == chainActive.Genesis()); // The current active chain's genesis block must be this block. } + // HAVE_DATA is equivalent to VALID_TRANSACTIONS and equivalent to nTx > 0 (we stored the number of transactions in the block) + assert(!(pindex->nStatus & BLOCK_HAVE_DATA) == (pindex->nTx == 0)); + assert(((pindex->nStatus & BLOCK_VALID_MASK) >= BLOCK_VALID_TRANSACTIONS) == (pindex->nTx > 0)); + if (pindex->nChainTx == 0) assert(pindex->nSequenceId == 0); // nSequenceId can't be set for blocks that aren't linked + // All parents having data is equivalent to all parents being VALID_TRANSACTIONS, which is equivalent to nChainTx being set. assert((pindexFirstMissing != NULL) == (pindex->nChainTx == 0)); // nChainTx == 0 is used to signal that all parent block's transaction data is available. assert(pindex->nHeight == nHeight); // nHeight must be consistent. assert(pindex->pprev == NULL || pindex->nChainWork >= pindex->pprev->nChainWork); // For every block except the genesis block, the chainwork must be larger than the parent's. From 139cd8177be4895f8b4c2befee35030bdf961326 Mon Sep 17 00:00:00 2001 From: Gregory Maxwell Date: Sun, 19 Apr 2015 11:47:56 -0700 Subject: [PATCH 120/201] Cap nAttempts penalty at 8 and switch to pow instead of a division loop. On hosts that had spent some time with a failed internet connection their nAttempts penalty was going through the roof (e.g. thousands for all peers) and as a result the connect search was pegging the CPU and failing to get more than a 4 connections after days of running (because it was taking so long per try). Rebased-From: a784f90c9892f06b9fea4e7579f5eca3585482c3 Github-Pull: #6029 --- src/addrman.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/addrman.cpp b/src/addrman.cpp index 015589343d7..ad7fa9bd51f 100644 --- a/src/addrman.cpp +++ b/src/addrman.cpp @@ -67,9 +67,8 @@ double CAddrInfo::GetChance(int64_t nNow) const if (nSinceLastTry < 60 * 10) fChance *= 0.01; - // deprioritize 50% after each failed attempt - for (int n = 0; n < nAttempts; n++) - fChance /= 1.5; + // deprioritize 66% after each failed attempt, but at most 1/28th to avoid the search taking forever or overly penalizing outages. + fChance *= pow(0.66, min(nAttempts, 8)); return fChance; } From bf8ad0dc6b9c195cba7f432f7556e4ba78aa664a Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Mon, 20 Apr 2015 14:04:32 +0200 Subject: [PATCH 121/201] update release notes for 0.10.1rc3 --- doc/release-notes.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/doc/release-notes.md b/doc/release-notes.md index 981e6244116..cdb2369bbfa 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -59,6 +59,7 @@ behavior, not code moves, refactors or string updates. RPC: - `7f502be` fix crash: createmultisig and addmultisigaddress +- `eae305f` Fix missing lock in submitblock Block (database) and transaction handling: - `1d2cdd2` Fix InvalidateBlock to add chainActive.Tip to setBlockIndexCandidates @@ -66,6 +67,8 @@ Block (database) and transaction handling: - `002c8a2` fix possible block db breakage during re-index - `a1f425b` Add (optional) consistency check for the block chain data structures - `1c62e84` Keep mempool consistent during block-reorgs +- `57d1f46` Fix CheckBlockIndex for reindex +- `bac6fca` Set nSequenceId when a block is fully linked P2P protocol and network code: - `78f64ef` don't trickle for whitelisted nodes @@ -77,6 +80,7 @@ P2P protocol and network code: - `0c6f334` Always use a 50% chance to choose between tried and new entries (countermeasure 2 against eclipse attacks) - `214154e` Do not bias outgoing connections towards fresh addresses (countermeasure 2 against eclipse attacks) - `aa587d4` Scale up addrman (countermeasure 6 against eclipse attacks) +- `139cd81` Cap nAttempts penalty at 8 and switch to pow instead of a division loop Validation: - `d148f62` Acquire CCheckQueue's lock to avoid race condition @@ -98,6 +102,9 @@ Tests: Miscellaneous: - `c9e022b` Initialization: set Boost path locale in main thread - `23126a0` Sanitize command strings before logging them. +- `323de27` Initialization: setup environment before starting QT tests +- `7494e09` Initialization: setup environment before starting tests +- `df45564` Initialization: set fallback locale as environment variable Credits ======= @@ -113,6 +120,8 @@ Thanks to everyone who contributed to this release: - Ivan Pustogarov - Jonas Nick - Jonas Schnelli +- Matt Corallo +- mrbandrews - Pieter Wuille - Ruben de Vries - Suhas Daftuar From d8ac90184254fea3a7f4991fd0529dfbd750aea0 Mon Sep 17 00:00:00 2001 From: Gregory Maxwell Date: Sat, 25 Apr 2015 10:04:50 +0200 Subject: [PATCH 122/201] doc: improve credits in release notes --- doc/release-notes.md | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index cdb2369bbfa..5e939600a06 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -3,8 +3,7 @@ Bitcoin Core version 0.10.1 is now available from: This is a new minor version release, bringing bug fixes and translation -updates. If you are using 0.10.0, it is recommended to upgrade to this -version. +updates. It is recommended to upgrade to this version. Please report bugs using the issue tracker at github: @@ -109,7 +108,7 @@ Miscellaneous: Credits ======= -Thanks to everyone who contributed to this release: +Thanks to everyone who directly contributed to this release: - Alex Morcos - Cory Fields @@ -118,7 +117,6 @@ Thanks to everyone who contributed to this release: - Gavin Andresen - Gregory Maxwell - Ivan Pustogarov -- Jonas Nick - Jonas Schnelli - Matt Corallo - mrbandrews @@ -127,4 +125,19 @@ Thanks to everyone who contributed to this release: - Suhas Daftuar - Wladimir J. van der Laan +And all those who contributed additional code review and/or security research: +- 21E14 +- Alison Kendler +- Aviv Zohar +- Ethan Heilman +- Evil-Knievel +- fanquake +- Jeff Garzik +- Jonas Nick +- Luke Dashjr +- Patrick Strateman +- Philip Kaufmann +- Sergio Demian Lerner +- Sharon Goldberg + As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). From ebc0e41ede2f63c95cf022ad60cf8eda260dbad5 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Mon, 4 May 2015 13:12:30 +0200 Subject: [PATCH 123/201] qt: translation update for next 0.10 point release --- src/qt/locale/bitcoin_ach.ts | 2 +- src/qt/locale/bitcoin_af_ZA.ts | 2 +- src/qt/locale/bitcoin_ar.ts | 2 +- src/qt/locale/bitcoin_be_BY.ts | 4 +- src/qt/locale/bitcoin_bg.ts | 674 ++++++++++++++++- src/qt/locale/bitcoin_bs.ts | 2 +- src/qt/locale/bitcoin_ca.ts | 18 +- src/qt/locale/bitcoin_ca@valencia.ts | 2 +- src/qt/locale/bitcoin_ca_ES.ts | 18 +- src/qt/locale/bitcoin_cmn.ts | 2 +- src/qt/locale/bitcoin_cs.ts | 56 +- src/qt/locale/bitcoin_cy.ts | 2 +- src/qt/locale/bitcoin_da.ts | 18 +- src/qt/locale/bitcoin_de.ts | 18 +- src/qt/locale/bitcoin_el_GR.ts | 2 +- src/qt/locale/bitcoin_eo.ts | 2 +- src/qt/locale/bitcoin_es.ts | 18 +- src/qt/locale/bitcoin_es_CL.ts | 2 +- src/qt/locale/bitcoin_es_DO.ts | 2 +- src/qt/locale/bitcoin_es_MX.ts | 2 +- src/qt/locale/bitcoin_es_UY.ts | 2 +- src/qt/locale/bitcoin_et.ts | 2 +- src/qt/locale/bitcoin_eu_ES.ts | 2 +- src/qt/locale/bitcoin_fa.ts | 2 +- src/qt/locale/bitcoin_fa_IR.ts | 2 +- src/qt/locale/bitcoin_fi.ts | 6 +- src/qt/locale/bitcoin_fr.ts | 14 +- src/qt/locale/bitcoin_fr_CA.ts | 2 +- src/qt/locale/bitcoin_gl.ts | 2 +- src/qt/locale/bitcoin_gu_IN.ts | 2 +- src/qt/locale/bitcoin_he.ts | 2 +- src/qt/locale/bitcoin_hi_IN.ts | 2 +- src/qt/locale/bitcoin_hr.ts | 2 +- src/qt/locale/bitcoin_hu.ts | 2 +- src/qt/locale/bitcoin_id_ID.ts | 2 +- src/qt/locale/bitcoin_it.ts | 18 +- src/qt/locale/bitcoin_ja.ts | 18 +- src/qt/locale/bitcoin_ka.ts | 2 +- src/qt/locale/bitcoin_kk_KZ.ts | 2 +- src/qt/locale/bitcoin_ko_KR.ts | 2 +- src/qt/locale/bitcoin_ky.ts | 2 +- src/qt/locale/bitcoin_la.ts | 2 +- src/qt/locale/bitcoin_lt.ts | 2 +- src/qt/locale/bitcoin_lv_LV.ts | 2 +- src/qt/locale/bitcoin_mn.ts | 2 +- src/qt/locale/bitcoin_ms_MY.ts | 2 +- src/qt/locale/bitcoin_nb.ts | 18 +- src/qt/locale/bitcoin_nl.ts | 47 +- src/qt/locale/bitcoin_pam.ts | 2 +- src/qt/locale/bitcoin_pl.ts | 144 +++- src/qt/locale/bitcoin_pt_BR.ts | 94 ++- src/qt/locale/bitcoin_pt_PT.ts | 388 +++++++++- src/qt/locale/bitcoin_ro_RO.ts | 1324 ++++++++++++++++++++++++---------- src/qt/locale/bitcoin_ru.ts | 42 +- src/qt/locale/bitcoin_sah.ts | 2 +- src/qt/locale/bitcoin_sk.ts | 248 ++++++- src/qt/locale/bitcoin_sl_SI.ts | 2 +- src/qt/locale/bitcoin_sq.ts | 2 +- src/qt/locale/bitcoin_sr.ts | 2 +- src/qt/locale/bitcoin_sv.ts | 21 +- src/qt/locale/bitcoin_th_TH.ts | 2 +- src/qt/locale/bitcoin_tr.ts | 6 +- src/qt/locale/bitcoin_uk.ts | 6 +- src/qt/locale/bitcoin_ur_PK.ts | 2 +- src/qt/locale/bitcoin_uz@Cyrl.ts | 22 +- src/qt/locale/bitcoin_vi.ts | 2 +- src/qt/locale/bitcoin_vi_VN.ts | 2 +- src/qt/locale/bitcoin_zh_CN.ts | 18 +- src/qt/locale/bitcoin_zh_HK.ts | 2 +- src/qt/locale/bitcoin_zh_TW.ts | 26 +- 70 files changed, 2769 insertions(+), 603 deletions(-) diff --git a/src/qt/locale/bitcoin_ach.ts b/src/qt/locale/bitcoin_ach.ts index ddb9fb85ced..835ddb8eaa7 100644 --- a/src/qt/locale/bitcoin_ach.ts +++ b/src/qt/locale/bitcoin_ach.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_af_ZA.ts b/src/qt/locale/bitcoin_af_ZA.ts index 3ca7164e68d..e22591e8c51 100644 --- a/src/qt/locale/bitcoin_af_ZA.ts +++ b/src/qt/locale/bitcoin_af_ZA.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_ar.ts b/src/qt/locale/bitcoin_ar.ts index 5662054279d..116a1eea760 100644 --- a/src/qt/locale/bitcoin_ar.ts +++ b/src/qt/locale/bitcoin_ar.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_be_BY.ts b/src/qt/locale/bitcoin_be_BY.ts index ad0f8cf923a..41c200dc0ce 100644 --- a/src/qt/locale/bitcoin_be_BY.ts +++ b/src/qt/locale/bitcoin_be_BY.ts @@ -1,4 +1,4 @@ - + AddressBookPage @@ -292,7 +292,7 @@ %n active connection(s) to Bitcoin network - %n актыўнае злучэнне з Bitcoin-сецівам%n актыўных злучэнняў з Bitcoin-сецівам + %n актыўнае злучэнне з Bitcoin-сецівам%n актыўных злучэнняў з Bitcoin-сецівам%n актыўных злучэнняў з Bitcoin-сецівам%n актыўных злучэнняў з Bitcoin-сецівам Error diff --git a/src/qt/locale/bitcoin_bg.ts b/src/qt/locale/bitcoin_bg.ts index e810dfad045..89200ff213f 100644 --- a/src/qt/locale/bitcoin_bg.ts +++ b/src/qt/locale/bitcoin_bg.ts @@ -1,7 +1,11 @@ - + AddressBookPage + Right-click to edit address or label + Десен клик за промяна на адреса или името + + Create a new address Създаване на нов адрес @@ -66,6 +70,10 @@ Това са адресите на получателите на плащания. Винаги проверявайте размера на сумата и адреса на получателя, преди да изпратите монети. + These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Това са Вашите Биткойн адреси,благодарение на които ще получавате плащания.Препоръчително е да използвате нови адреси за получаване за всяка транзакция. + + Copy &Label Копирай &име @@ -85,7 +93,11 @@ Exporting Failed Грешка при изнасянето - + + There was an error trying to save the address list to %1. Please try again. + Възникна грешка при опита за запазване на списъка с адреси в %1.Моля опитайте отново. + + AddressTableModel @@ -104,6 +116,10 @@ AskPassphraseDialog + Passphrase Dialog + Диалог за паролите + + Enter passphrase Въведи парола @@ -215,6 +231,10 @@ &Баланс + Node + Сървър + + Show general overview of wallet Обобщена информация за портфейла @@ -259,6 +279,14 @@ &Смяна на паролата... + &Sending addresses... + &Изпращане на адресите... + + + &Receiving addresses... + &Получаване на адресите... + + Open &URI... Отвори &URI... @@ -271,6 +299,10 @@ Изпращане към Биткоин адрес + Modify configuration options for Bitcoin + Променете настройките на Биткойн + + Backup wallet to another location Запазване на портфейла на друго място @@ -279,6 +311,14 @@ Променя паролата за портфейла + &Debug window + &Прозорец за отстраняване на грешки + + + Open debugging and diagnostic console + Отворете конзолата за диагностика и отстраняване на грешки + + &Verify message... &Проверка на съобщение... @@ -299,6 +339,10 @@ &Получаване + Show information about Bitcoin Core + Покажете информация за Биткойн ядрото + + &Show / Hide &Покажи / Скрий @@ -307,6 +351,18 @@ Показване и скриване на основния прозорец + Encrypt the private keys that belong to your wallet + Шифроване на личните ключове,които принадлежат на портфейла Ви. + + + Sign messages with your Bitcoin addresses to prove you own them + Пишете съобщения със своя Биткойн адрес за да докажете,че е ваш. + + + Verify messages to ensure they were signed with specified Bitcoin addresses + Потвърждаване на съобщения за да се знае,че са написани с дадените Биткойн адреси. + + &File &Файл @@ -323,13 +379,41 @@ Раздели + Bitcoin Core + Биткойн ядро + + + Request payments (generates QR codes and bitcoin: URIs) + Изискване на плащания(генерира QR кодове и биткойн: URIs) + + &About Bitcoin Core &Относно Bitcoin Core + + Show the list of used sending addresses and labels + Показване на списъка с използвани адреси и имена + + + Show the list of used receiving addresses and labels + Покажи списък с използваните адреси и имена. + + + &Command-line options + &Налични команди + + + Show the Bitcoin Core help message to get a list with possible Bitcoin command-line options + Покажи помощните съобщения на Биткойн за да видиш наличните и валидни команди + %n active connection(s) to Bitcoin network %n връзка към Биткоин мрежата%n връзки към Биткоин мрежата + + No block source available... + Липсва източник на блоковете... + %n hour(s) %n час%n часа @@ -351,6 +435,14 @@ %n година%n години + %1 behind + %1 зад + + + Transactions after this will not yet be visible. + Транзакции след това няма все още да бъдат видими. + + Error Грешка @@ -401,10 +493,22 @@ Address: %4 ClientModel - + + Network Alert + Мрежови проблем + + CoinControlDialog + Coin Selection + Избор на монета + + + Quantity: + Количество: + + Bytes: Байтове: @@ -421,10 +525,38 @@ Address: %4 Такса: + After Fee: + След прилагане на ДДС + + + Change: + Ресто + + + (un)select all + (Пре)махни всички + + + Tree mode + Дървовиден режим + + + List mode + Списъчен режим + + Amount Сума + Received with label + Получени с име + + + Received with address + Получени с адрес + + Date Дата @@ -457,6 +589,78 @@ Address: %4 Копирай транзакция с ID + Lock unspent + Заключване на неизхарченото + + + Unlock unspent + Отключване на неизхарченото + + + Copy quantity + Копиране на количеството + + + Copy fee + Копиране на данък добавена стойност + + + Copy after fee + Копиране след прилагане на данък добавена стойност + + + Copy bytes + Копиране на байтовете + + + Copy priority + Копиране на приоритет + + + Copy change + Копирай рестото + + + highest + Най-висок + + + higher + По-висок + + + high + Висок + + + medium-high + Средно-висок + + + medium + Среден + + + low-medium + Ниско-среден + + + low + Нисък + + + lower + По-нисък + + + lowest + Най-нисък + + + (%1 locked) + (%1 заключен) + + none нищо @@ -469,6 +673,10 @@ Address: %4 не + Can vary +/- 1 byte per input. + Може да варира с +-1 байт + + This label turns red, if any recipient receives an amount smaller than %1. Това наименование се оцветява в червено, ако произволен получател получи сума по-малка от %1. @@ -477,6 +685,10 @@ Address: %4 (без име) + change from %1 (%2) + ресто от %1 (%2) + + (change) (промени) @@ -539,13 +751,25 @@ Address: %4 име + Directory already exists. Add %1 if you intend to create a new directory here. + Директорията вече съществува.Добавете %1 ако желаете да добавите нова директория тук. + + Path already exists, and is not a directory. Пътят вече съществува и не е папка. - + + Cannot create data directory here. + Не може да се създаде директория тук. + + HelpMessageDialog + Bitcoin Core + Биткойн ядро + + version версия @@ -558,14 +782,34 @@ Address: %4 За Bitcoin Core + Command-line options + Списък с команди + + Usage: Използване: + command-line options + Списък с налични команди + + UI options UI Опции - + + Set language, for example "de_DE" (default: system locale) + Задаване на език,например "de_DE" (по подразбиране: system locale) + + + Start minimized + Стартирай минимизирано + + + Choose data directory on startup (default: 0) + Изберете директория при стартиране на програмата.( настройка по подразбиране:0) + + Intro @@ -573,12 +817,36 @@ Address: %4 Добре дошли + Welcome to Bitcoin Core. + Добре дошли в Биткойн ядрото. + + + As this is the first time the program is launched, you can choose where Bitcoin Core will store its data. + Тъй като това е първото стартиране на програмата можете да изберете къде Биткон ядрото да запази данните си. + + + Use the default data directory + Използване на директория по подразбиране + + + Use a custom data directory: + Използване на директория ръчно + + + Bitcoin Core + Биткойн ядро + + Error Грешка OpenURIDialog + + Open URI + Отваряне на URI + OptionsDialog @@ -591,14 +859,30 @@ Address: %4 &Основни + Automatically start Bitcoin after logging in to the system. + Автоматично включване на Биткойн след влизане в системата. + + &Start Bitcoin on system login &Пускане на Биткоин при вход в системата + Size of &database cache + Размер на кеша в &базата данни + + + MB + Мегабайта + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) IP адрес на прокси (напр. за IPv4: 127.0.0.1 / за IPv6: ::1) + Reset all client options to default. + Възстановете всички настройки по подразбиране. + + &Reset Options &Нулирай настройките @@ -615,6 +899,10 @@ Address: %4 Експерт + &Spend unconfirmed change + &Похарчете непотвърденото ресто + + Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. Автоматично отваряне на входящия Bitcoin порт. Работи само с рутери поддържащи UPnP. @@ -623,6 +911,14 @@ Address: %4 Отваряне на входящия порт чрез &UPnP + Connect to the Bitcoin network through a SOCKS5 proxy. + Свързване с Биткойн мрежата чрез SOCKS5 прокси. + + + &Connect through SOCKS5 proxy (default proxy): + &Свързване чрез SOCKS5 прокси (прокси по подразбиране): + + Proxy &IP: Прокси & АйПи: @@ -691,6 +987,22 @@ Address: %4 нищо + Confirm options reset + Потвърдете отмяната на настройките. + + + Client restart required to activate changes. + Изисква се рестартиране на клиента за активиране на извършените промени. + + + Client will be shutdown, do you want to proceed? + Клиентът ще бъде изключен,искате ли да продължите? + + + This change would require a client restart. + Тази промяна изисква рестартиране на клиента Ви. + + The supplied proxy address is invalid. Прокси адресът е невалиден. @@ -710,10 +1022,18 @@ Address: %4 Налично: + Your current spendable balance + Вашата текуща сметка за изразходване + + Pending: Изчакващо: + Immature: + Неразвит: + + Balances Баланс @@ -726,6 +1046,14 @@ Address: %4 Текущият ви общ баланс + Spendable: + За харчене: + + + Recent transactions + Скорошни транзакции + + out of sync несинхронизиран @@ -737,13 +1065,41 @@ Address: %4 Заявената сума за плащане: %1 е твърде малка (счита се за отпадък) + Refund from %1 + Възстановяване на сума от %1 + + + Error communicating with %1: %2 + Грешка при комуникацията с %1: %2 + + + Bad response from server %1 + Възникна проблем при свързването със сървър %1 + + Payment acknowledged - Плащането е приета + Плащането е прието - + + Network request error + Грешка в мрежата по време на заявката + + PeerTableModel - + + User Agent + Клиент на потребителя + + + Address/Hostname + Адрес в интернет + + + Ping Time + Време за отговор + + QObject @@ -751,10 +1107,38 @@ Address: %4 Сума + %1 h + %1 час + + + %1 m + %1 минута + + + %1 s + %1 секунда + + + NETWORK + Мрежа + + + UNKNOWN + Неизвестен + + + None + Неналичен + + N/A - N/A + Несъществуващ - + + %1 ms + %1 милисекунда + + QRImageWidget @@ -793,6 +1177,10 @@ Address: %4 Данни + Debug window + Прозорец с грешки + + General Основни @@ -801,6 +1189,14 @@ Address: %4 Използване на OpenSSL версия + Using BerkeleyDB version + Използване на база данни BerkeleyDB + + + Startup time + Време за стартиране + + Network Мрежа @@ -833,10 +1229,26 @@ Address: %4 Избери пиър за детайлна информация. + Direction + Посока + + Version Версия + User Agent + Клиент на потребителя + + + Services + Услуги + + + Ping Time + Време за отговор + + Last block time Време на последния блок @@ -861,6 +1273,22 @@ Address: %4 Общо: + In: + Входящи: + + + Out: + Изходящи + + + Build date + Дата на създаване + + + Debug log file + Лог файл,съдържащ грешките + + Open the Bitcoin debug log file from the current data directory. This can take a few seconds for large log files. Отворете Биткой дебъг лог файла от настоящата Data папка. Може да отнеме няколко секунди при по - големи лог файлове. @@ -869,9 +1297,33 @@ Address: %4 Изчисти конзолата + Welcome to the Bitcoin RPC console. + Добре дошли в Биткойн RPC конзолата. + + Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. Използвайте стрелки надолу и нагореза разглеждане на историятаот команди и <b>Ctrl-L</b> за изчистване на конзолата. + + Type <b>help</b> for an overview of available commands. + Въведeте </b>помощ</b> за да видите наличните команди. + + + %1 B + %1 Байт + + + %1 KB + %1 Килобайт + + + %1 MB + %1 Мегабайт + + + %1 GB + %1 Гигабайт + ReceiveCoinsDialog @@ -884,6 +1336,10 @@ Address: %4 &Име: + &Message: + &Съобщение: + + Use this form to request payments. All fields are <b>optional</b>. Използвате този формуляр за заявяване на плащания. Всички полета са <b>незадължителни</b>. @@ -900,6 +1356,14 @@ Address: %4 Изчистване + Requested payments history + Изискана история на плащанията + + + &Request payment + &Изискване на плащане + + Show Показване @@ -923,6 +1387,14 @@ Address: %4 ReceiveRequestDialog + QR Code + QR код + + + Copy &URI + Копиране на &URI + + Copy &Address &Копирай адрес @@ -931,6 +1403,10 @@ Address: %4 &Запиши изображение... + Request payment to %1 + Изискване на плащане от %1 + + Payment information Данни за плащането @@ -978,6 +1454,10 @@ Address: %4 (без име) + (no message) + (без съобщение) + + (no amount) (липсва сума) @@ -989,6 +1469,22 @@ Address: %4 Изпращане + Coin Control Features + Настройки за контрол на монетите + + + automatically selected + астоматично избран + + + Insufficient funds! + Нямате достатъчно налични пари! + + + Quantity: + Количество: + + Bytes: Байтове: @@ -1005,6 +1501,34 @@ Address: %4 Такса: + After Fee: + След прилагане на ДДС + + + Change: + Ресто + + + If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. + Ако тази опция е активирана,но адресът на промяна е празен или невалиден,промяната ще бъде изпратена на новосъздаден адрес. + + + per kilobyte + за килобайт + + + total at least + Крайна сума поне + + + Recommended: + Препоръчителна: + + + Confirmation time: + Време за потвърждение: + + Send to multiple recipients at once Изпращане към повече от един получател @@ -1037,10 +1561,34 @@ Address: %4 Потвърждаване + Copy quantity + Копиране на количеството + + Copy amount Копирай сума + Copy fee + Копиране на данък добавена стойност + + + Copy after fee + Копиране след прилагане на данък добавена стойност + + + Copy bytes + Копиране на байтовете + + + Copy priority + Копиране на приоритет + + + Copy change + Копирай рестото + + Total Amount %1 (= %2) Пълна сума %1 (= %2) @@ -1061,14 +1609,34 @@ Address: %4 Сумата надвишава текущия баланс + The total exceeds your balance when the %1 transaction fee is included. + Сумата при добавяне на данък добавена стойност по %1 транзакцията надвишава сумата по вашата сметка. + + Transaction creation failed! - Грешка при създаването на трансакция! + Грешка при създаването на транзакция! + + + A fee higher than %1 is considered an insanely high fee. + Такса по-висока от %1 се смята за извънредно висока. + + + Pay only the minimum fee of %1 + Платете минималната такса от %1 + + + Warning: Invalid Bitcoin address + Внимание: Невалиден Биткойн адрес (no label) (без име) + Warning: Unknown change address + Внимание:Неизвестен адрес за промяна + + Are you sure you want to send? Наистина ли искате да изпратите? @@ -1124,13 +1692,25 @@ Address: %4 Съобщение: + This is a verified payment request. + Това е потвърдена транзакция. + + Pay To: Плащане на: ShutdownWindow - + + Bitcoin Core is shutting down... + Биткойн ядрото се изключва... + + + Do not shut down the computer until this window disappears. + Не изключвайте компютъра докато този прозорец не изчезне. + + SignVerifyMessageDialog @@ -1194,6 +1774,10 @@ Address: %4 Проверете съобщение, за да сте сигурни че е подписано с определен Биткоин адрес + Verify &Message + Потвърди &съобщението + + Click "Sign Message" to generate signature Натиснете "Подписване на съобщение" за да създадете подпис @@ -1249,6 +1833,10 @@ Address: %4 SplashScreen + Bitcoin Core + Биткойн ядро + + The Bitcoin Core developers Разработчици на Bitcoin Core @@ -1259,7 +1847,11 @@ Address: %4 TrafficGraphWidget - + + KB/s + Килобайта в секунда + + TransactionDesc @@ -1267,6 +1859,10 @@ Address: %4 Подлежи на промяна до %1 + conflicted + припокриващ се + + %1/offline %1/офлайн @@ -1347,6 +1943,10 @@ Address: %4 Търговец + Debug information + Информация за грешките + + Transaction Трансакция @@ -1413,6 +2013,10 @@ Address: %4 Генерирана, но отхвърлена от мрежата + Offline + Извън линия + + Unconfirmed Непотвърдено @@ -1564,6 +2168,10 @@ Address: %4 Изнасянето е успешна + The transaction history was successfully saved to %1. + Историята с транзакциите беше успешно запазена в %1. + + Comma separated file (*.csv) CSV файл (*.csv) @@ -1632,10 +2240,22 @@ Address: %4 Запазване на портфейла + Wallet Data (*.dat) + Информация за портфейла (*.dat) + + Backup Failed Неуспешно запазване на портфейла + There was an error trying to save the wallet data to %1. + Възникна грешка при запазването на информацията за портфейла в %1. + + + The wallet data was successfully saved to %1. + Информацията за портфейла беше успешно запазена в %1. + + Backup Successful Успешно запазване на портфейла @@ -1651,6 +2271,10 @@ Address: %4 Определете директория за данните + Connect to a node to retrieve peer addresses, and disconnect + Свържете се към сървър за да можете да извлечете адресите на пиърите след което се разкачете. + + Specify your own public address Въведете Ваш публичен адрес @@ -1659,6 +2283,10 @@ Address: %4 Използвайте тестовата мрежа + Accept connections from outside (default: 1 if no -proxy or -connect) + Приемайте връзки отвън.(по подразбиране:1 в противен случай -proxy или -connect) + + Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. Внимание: -paytxfee има голяма стойност! Това е таксата за транзакциите, която ще платите ако направите транзакция. @@ -1695,6 +2323,14 @@ Address: %4 Настройки на портфейла: + Connect through SOCKS5 proxy + Свързване чрез SOCKS5 прокси + + + Copyright (C) 2009-%i The Bitcoin Core Developers + Всички права запазени (C) 2009-%i Доставчиците на Биткойн + + Information Данни @@ -1711,6 +2347,10 @@ Address: %4 Изпрати локализиращата или дебъг информацията към конзолата, вместо файлът debug.log + This is experimental software. + Това е експериментален софтуер. + + Transaction amount too small Сумата на трансакцията е твърде малка @@ -1735,6 +2375,10 @@ Address: %4 Внимание: Използвате остаряла версия, необходимо е обновление! + on startup + по време на стартирането + + Password for JSON-RPC connections Парола за JSON-RPC връзките @@ -1771,6 +2415,10 @@ Address: %4 Невалиден -proxy address: '%s' + Specify configuration file (default: %s) + Назовете конфигурационен файл(по подразбиране %s) + + Invalid amount for -paytxfee=<amount>: '%s' Невалидна сума за -paytxfee=<amount>: '%s' diff --git a/src/qt/locale/bitcoin_bs.ts b/src/qt/locale/bitcoin_bs.ts index 86526022fe2..fc5e6d270e7 100644 --- a/src/qt/locale/bitcoin_bs.ts +++ b/src/qt/locale/bitcoin_bs.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_ca.ts b/src/qt/locale/bitcoin_ca.ts index 9d934cd602d..fb8e93ea9f1 100644 --- a/src/qt/locale/bitcoin_ca.ts +++ b/src/qt/locale/bitcoin_ca.ts @@ -1,4 +1,4 @@ - + AddressBookPage @@ -1285,6 +1285,10 @@ Address: %4 Reemborsament de %1 + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + La sol·licitud de pagament %1 és massa gran (%2 bytes, permès %3 bytes). + + Payment request DoS protection Protecció de DoS per a la sol·licitud de pagament @@ -3075,6 +3079,10 @@ Address: %4 Consulta a adreces d'iguals a través de DNS, si es troba baix en adreces (per defecte: 1 a menys que -connect) + Require high priority for relaying free or low-fee transactions (default:%u) + Es requereix una prioritat alta per retransmetre transaccions gratuïtes o de baixa comissió (per defecte:%u) + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) Defineix la mida màxima de transaccions d'alta prioritat / baixa comissió en bytes (per defecte: %d) @@ -3146,6 +3154,10 @@ per exemple: alertnotify=echo %%s | mail -s "Avís de Bitcoin" admin@foo.comError en carregar wallet.dat: el moneder requereix una versió més nova del Bitcoin core + Error reading from database, shutting down. + Error en llegir la base de dades, tancant. + + Error: Unsupported argument -tor found, use -onion. Error: s'ha trobat un argument -tor no acceptat. Feu servir -onion. @@ -3202,6 +3214,10 @@ per exemple: alertnotify=echo %%s | mail -s "Avís de Bitcoin" admin@foo.comOpcions del servidor RPC: + RPC support for HTTP persistent connections (default: %d) + Suport RPC per a connexions HTTP persistents (per defecte: %d) + + Randomly drop 1 of every <n> network messages Descarta a l'atzar 1 de cada <n> missatges de la xarxa diff --git a/src/qt/locale/bitcoin_ca@valencia.ts b/src/qt/locale/bitcoin_ca@valencia.ts index 12f18f66ac1..349fc6b42ef 100644 --- a/src/qt/locale/bitcoin_ca@valencia.ts +++ b/src/qt/locale/bitcoin_ca@valencia.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_ca_ES.ts b/src/qt/locale/bitcoin_ca_ES.ts index 073c910a1ce..52d93d59f55 100644 --- a/src/qt/locale/bitcoin_ca_ES.ts +++ b/src/qt/locale/bitcoin_ca_ES.ts @@ -1,4 +1,4 @@ - + AddressBookPage @@ -1285,6 +1285,10 @@ Address: %4 Reemborsament de %1 + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + La sol·licitud de pagament %1 és massa gran (%2 bytes, permès %3 bytes). + + Payment request DoS protection Protecció de DoS per a la sol·licitud de pagament @@ -3075,6 +3079,10 @@ Address: %4 Consulta a adreces d'iguals a través de DNS, si es troba baix en adreces (per defecte: 1 a menys que -connect) + Require high priority for relaying free or low-fee transactions (default:%u) + Es requereix una prioritat alta per retransmetre transaccions gratuïtes o de baixa comissió (per defecte:%u) + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) Defineix la mida màxima de transaccions d'alta prioritat / baixa comissió en bytes (per defecte: %d) @@ -3146,6 +3154,10 @@ per exemple: alertnotify=echo %%s | mail -s "Avís de Bitcoin" admin@foo.comError en carregar wallet.dat: el moneder requereix una versió més nova del Bitcoin core + Error reading from database, shutting down. + Error en llegir la base de dades, tancant. + + Error: Unsupported argument -tor found, use -onion. Error: s'ha trobat un argument -tor no acceptat. Feu servir -onion. @@ -3202,6 +3214,10 @@ per exemple: alertnotify=echo %%s | mail -s "Avís de Bitcoin" admin@foo.comOpcions del servidor RPC: + RPC support for HTTP persistent connections (default: %d) + Suport RPC per a connexions HTTP persistents (per defecte: %d) + + Randomly drop 1 of every <n> network messages Descarta a l'atzar 1 de cada <n> missatges de la xarxa diff --git a/src/qt/locale/bitcoin_cmn.ts b/src/qt/locale/bitcoin_cmn.ts index 09ff0acf026..3286f126982 100644 --- a/src/qt/locale/bitcoin_cmn.ts +++ b/src/qt/locale/bitcoin_cmn.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_cs.ts b/src/qt/locale/bitcoin_cs.ts index 966303c33a7..04cd96f4259 100644 --- a/src/qt/locale/bitcoin_cs.ts +++ b/src/qt/locale/bitcoin_cs.ts @@ -1,4 +1,4 @@ - + AddressBookPage @@ -1289,6 +1289,10 @@ Adresa: %4 Vrácení peněz od %1 + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + Platební požadavek %1 je moc velký (%2 bajtů, povoleno %3 bajtů). + + Payment request DoS protection DoS ochrana platebního požadavku @@ -1865,6 +1869,10 @@ Adresa: %4 Skryj + 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. + Pokud je vlastní poplatek nastavený na 1000 satoshi a transakce má pouze 250 bajtů, tak „za kilobajt“ zaplatí poplatek jen 250 satoshi, zatímco „přinejmenším“ zaplatí 1000 satoshi. Pro transakce větší než kilobajt obě možnosti platí za kilobajt. + + per kilobyte za kilobajt @@ -1877,6 +1885,10 @@ Adresa: %4 přinejmenším + 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. + Platit jen minimální poplatek je v pořádku, pokud je zrovna méně transakcí než místa v blocích. Ale počítej s tím, že to také může skončit transakcí, která nikdy nebude potvrzena, pokud je větší poptávka po bitcoinových transakcích, než síť zvládne zpracovat. + + (read the tooltip) (viz bublina) @@ -1889,6 +1901,22 @@ Adresa: %4 Vlastní: + (Smart fee not initialized yet. This usually takes a few blocks...) + (Inteligentní poplatek ještě není inicializovaný. Obvykle mu to tak pár bloků trvá...) + + + Confirmation time: + Rychlost potvrzení: + + + normal + normální + + + fast + rychlá + + Send as zero-fee transaction if possible Pošli transakci pokud možno bez poplatku @@ -2001,6 +2029,18 @@ Adresa: %4 Transakce byla odmítnuta! Tohle může nastat, pokud nějaké mince z tvé peněženky už jednou byly utraceny, například pokud používáš kopii souboru wallet.dat a mince byly utraceny v druhé kopii, ale nebyly označeny jako utracené v této. + A fee higher than %1 is considered an insanely high fee. + Poplatek vyšší než %1 je považován za absurdně vysoký. + + + Pay only the minimum fee of %1 + Zaplatit pouze minimální poplatek %1 + + + Estimated to begin confirmation within %1 block(s). + Potvrzování by podle odhadu mělo začít během %1 bloků. + + Warning: Invalid Bitcoin address Upozornění: Neplatná Bitcoinová adresa @@ -3027,6 +3067,10 @@ Adresa: %4 Poplatky (v BTC/Kb) menší než tato hodnota jsou považovány za nulové pro účely vytváření transakcí (výchozí: %s) + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Pokud paytxfee není nastaveno, platit dostatečný poplatek na to, aby byly transakce potvrzeny v průměru během n bloků (výchozí: %u) + + Maximum size of data in data carrier transactions we relay and mine (default: %u) Maximální velikost dat v transakcích nesoucích data, se kterou jsme ochotni je ještě přeposílat a těžit (výchozí: %u) @@ -3075,6 +3119,10 @@ Adresa: %4 Chyba při načítání wallet.dat: peněženka vyžaduje novější verzi Bitcoin Core + Error reading from database, shutting down. + Chyba při čtení z databáze, ukončuji se. + + Error: Unsupported argument -tor found, use -onion. Chyba: Argument -tor již není podporovaný, použij -onion. @@ -3167,8 +3215,12 @@ Adresa: %4 Částky v transakci musí být kladné + Transaction too large for fee policy + Transakce je na poplatkovou politiku příliš velká + + Transaction too large - Transace je příliš velká + Transakce je příliš velká Unable to bind to %s on this computer (bind returned error %s) diff --git a/src/qt/locale/bitcoin_cy.ts b/src/qt/locale/bitcoin_cy.ts index 89b0cbe919e..c9c43792484 100644 --- a/src/qt/locale/bitcoin_cy.ts +++ b/src/qt/locale/bitcoin_cy.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_da.ts b/src/qt/locale/bitcoin_da.ts index a1d507b5996..a5113d4a552 100644 --- a/src/qt/locale/bitcoin_da.ts +++ b/src/qt/locale/bitcoin_da.ts @@ -1,4 +1,4 @@ - + AddressBookPage @@ -1285,8 +1285,8 @@ Adresse: %4 Tilbagebetaling fra %1 - Payment request %2 is too large (%3 bytes, allowed %4 bytes). - Betalingsanmodning %2 er for stor (%3 byte, %4 byte tilladt). + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + Betalingsanmodning %1 er for stor (%2 byte, %3 byte tilladt). Payment request DoS protection @@ -3083,6 +3083,10 @@ Adresse: %4 Forespørgsel + Require high priority for relaying free or low-fee transactions (default:%u) + Kræv høj prioritet for at videresende transaktioner med intet eller lavt gebyr (standard: %u) + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) Sæt maksimumstørrelse for højprioritet/lavgebyr-transaktioner i byte (standard: %d) @@ -3155,6 +3159,10 @@ for eksempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Fejl ved indlæsning af wallet.dat: Tegnebog kræver en nyere version af Bitcoin Core + Error reading from database, shutting down. + Fejl under læsning fra database; lukker ned. + + Error: Unsupported argument -tor found, use -onion. Fejl: Ikke understøttet argument -tor fundet, brug -onion. @@ -3211,6 +3219,10 @@ for eksempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Tilvalg for RPC-server: + RPC support for HTTP persistent connections (default: %d) + RPC-understøttelse for HTTP-persistente forbindelser (standard: %d) + + Randomly drop 1 of every <n> network messages Drop tilfældigt 1 ud af hver <n> netværksbeskeder diff --git a/src/qt/locale/bitcoin_de.ts b/src/qt/locale/bitcoin_de.ts index 3d61eb4d3e4..fc18a235eb5 100644 --- a/src/qt/locale/bitcoin_de.ts +++ b/src/qt/locale/bitcoin_de.ts @@ -1,4 +1,4 @@ - + AddressBookPage @@ -1288,8 +1288,8 @@ Adresse: %4 Rücküberweisung von %1 - Payment request %2 is too large (%3 bytes, allowed %4 bytes). - Zahlungsanforderung %2 ist zu groß (%3 Byte, erlaubt sind %4 Byte). + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + Zahlungsanforderung %1 ist zu groß (%2 Byte, erlaubt sind %3 Byte). Payment request DoS protection @@ -3086,6 +3086,10 @@ Adresse: %4 Adressen von Gegenstellen via DNS-Namensauflösung finden, falls zu wenige Adressen verfügbar sind (Standard: 1, außer bei -connect) + Require high priority for relaying free or low-fee transactions (default:%u) + Zum Weiterleiten von freien Transaktionen oder Transaktionen mit niedrigen Gebühren eine hohe Priorität voraussetzen (Standard: %u) + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) Maximale Größe in Byte von "high-priority/low-fee"-Transaktionen festlegen (Standard: %d) @@ -3158,6 +3162,10 @@ Beispiel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Fehler beim Laden von wallet.dat: Wallet benötigt neuere Version von Bitcoin Core + Error reading from database, shutting down. + Fehler beim lesen der Datenbank, Ausführung wird beendet. + + Error: Unsupported argument -tor found, use -onion. Fehler: Nicht unterstütztes Argument -tor gefunden, bitte -onion verwenden. @@ -3214,6 +3222,10 @@ Beispiel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com RPC-Serveroptionen: + RPC support for HTTP persistent connections (default: %d) + Unterstützung für persistente HTTP-Verbindungen bei RPC (Standard: %d) + + Randomly drop 1 of every <n> network messages Zufällig eine von <n> Netzwerknachrichten verwerfen diff --git a/src/qt/locale/bitcoin_el_GR.ts b/src/qt/locale/bitcoin_el_GR.ts index 5f2b9d07251..084c9fa753a 100644 --- a/src/qt/locale/bitcoin_el_GR.ts +++ b/src/qt/locale/bitcoin_el_GR.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_eo.ts b/src/qt/locale/bitcoin_eo.ts index e89eea4bf4e..e84dac6b1e5 100644 --- a/src/qt/locale/bitcoin_eo.ts +++ b/src/qt/locale/bitcoin_eo.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_es.ts b/src/qt/locale/bitcoin_es.ts index ed1d08d35c9..e52bf88a873 100644 --- a/src/qt/locale/bitcoin_es.ts +++ b/src/qt/locale/bitcoin_es.ts @@ -1,4 +1,4 @@ - + AddressBookPage @@ -1285,8 +1285,8 @@ Dirección: %4 Devolución desde %1 - Payment request %2 is too large (%3 bytes, allowed %4 bytes). - Petición pago %2 es demasiado grande ( %3 bytes , permitió %4 bytes ) . + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + La petición de pago %1 es demasiado grande (%2 bytes, permitidos %3 bytes). Payment request DoS protection @@ -3075,6 +3075,10 @@ Dirección: %4 Consulta de direcciones pares mediante búsqueda de DNS, si bajo en direcciones (por defecto: 1 a menos que - conectar) + Require high priority for relaying free or low-fee transactions (default:%u) + Se requiere alta prioridad para retransmitir transacciones gratis o de baja comisión (por defecto:%u) + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) Establecer tamaño máximo de las transacciones de alta prioridad/baja comisión en bytes (predeterminado: %d) @@ -3147,6 +3151,10 @@ por ejemplo: alertnotify=echo %% s | correo -s "Alerta Bitcoin" admin@foo.com Error al cargar wallet.dat: El monedero requiere una versión más reciente de Bitcoin Core + Error reading from database, shutting down. + Error al leer la base de datos, cerrando. + + Error: Unsupported argument -tor found, use -onion. Error: Argumento encontrado -tor no soportado, utilice -onion @@ -3203,6 +3211,10 @@ por ejemplo: alertnotify=echo %% s | correo -s "Alerta Bitcoin" admin@foo.com Opciones de servidor RPC: + RPC support for HTTP persistent connections (default: %d) + Soporte RPC para conexiones HTTP persistentes (por defecto: %d) + + Randomly drop 1 of every <n> network messages Ignorar 1 de cada <n> mensajes de red al azar diff --git a/src/qt/locale/bitcoin_es_CL.ts b/src/qt/locale/bitcoin_es_CL.ts index d6451185a42..4495d9bd50e 100644 --- a/src/qt/locale/bitcoin_es_CL.ts +++ b/src/qt/locale/bitcoin_es_CL.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_es_DO.ts b/src/qt/locale/bitcoin_es_DO.ts index 9a8e3d59380..1c881fcf64d 100644 --- a/src/qt/locale/bitcoin_es_DO.ts +++ b/src/qt/locale/bitcoin_es_DO.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_es_MX.ts b/src/qt/locale/bitcoin_es_MX.ts index 1f1d712da49..4341bc821f0 100644 --- a/src/qt/locale/bitcoin_es_MX.ts +++ b/src/qt/locale/bitcoin_es_MX.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_es_UY.ts b/src/qt/locale/bitcoin_es_UY.ts index 31107444f47..13f33220a7b 100644 --- a/src/qt/locale/bitcoin_es_UY.ts +++ b/src/qt/locale/bitcoin_es_UY.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_et.ts b/src/qt/locale/bitcoin_et.ts index ee50226abb0..f1e5c2715c8 100644 --- a/src/qt/locale/bitcoin_et.ts +++ b/src/qt/locale/bitcoin_et.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_eu_ES.ts b/src/qt/locale/bitcoin_eu_ES.ts index 72118102daa..34c34c44313 100644 --- a/src/qt/locale/bitcoin_eu_ES.ts +++ b/src/qt/locale/bitcoin_eu_ES.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_fa.ts b/src/qt/locale/bitcoin_fa.ts index 3fbf558770b..2f9a1c73451 100644 --- a/src/qt/locale/bitcoin_fa.ts +++ b/src/qt/locale/bitcoin_fa.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_fa_IR.ts b/src/qt/locale/bitcoin_fa_IR.ts index f0e6770edc7..0a3071a6c7d 100644 --- a/src/qt/locale/bitcoin_fa_IR.ts +++ b/src/qt/locale/bitcoin_fa_IR.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_fi.ts b/src/qt/locale/bitcoin_fi.ts index f7e6a8ccf72..c16e0e17768 100644 --- a/src/qt/locale/bitcoin_fi.ts +++ b/src/qt/locale/bitcoin_fi.ts @@ -1,4 +1,4 @@ - + AddressBookPage @@ -67,11 +67,11 @@ These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Nämä ovat sinun Bitcoin osoitteita maksujen lähetykseen. Tarkista aina rahan määrä ja vastaanottajan osoite ennenkuin lähetät kolikkoja. + Nämä ovat sinun Bitcoin osoitteita maksujen lähetykseen. Tarkista aina summa ja vastaanottajan osoite ennenkuin lähetät kolikkoja. These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Nämä ovat sinun Bitcoin-osoitteesi suoritusten vastaanottamiseen. Suositellaan että annat uuden osoitteen kullekin rahansiirrolle + Nämä ovat sinun Bitcoin-osoitteesi suoritusten vastaanottamiseen. Suositellaan että annat uuden osoitteen kullekin transaktiolle. Copy &Label diff --git a/src/qt/locale/bitcoin_fr.ts b/src/qt/locale/bitcoin_fr.ts index 612e7481289..df0c507a44e 100644 --- a/src/qt/locale/bitcoin_fr.ts +++ b/src/qt/locale/bitcoin_fr.ts @@ -1,4 +1,4 @@ - + AddressBookPage @@ -1281,8 +1281,8 @@ Adresse : %4 Remboursement de %1 - Payment request %2 is too large (%3 bytes, allowed %4 bytes). - La demande de paiement %2 est trop grande (%3 octets, %4 octets permis). + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + La demande de paiement %1 est trop grande (%2 octets, %3 octets permis). Payment request DoS protection @@ -3151,6 +3151,10 @@ par exemple : alertnotify=echo %%s | mail -s "Alerte Bitcoin" admin@foo.com Erreur lors du chargement de wallet.dat : le portefeuille exige une version plus récente de Bitcoin Core + Error reading from database, shutting down. + Erreur de lecture de la base de données, fermeture en cours. + + Error: Unsupported argument -tor found, use -onion. Erreur : argument non pris en charge -tor trouvé, utiliser -onion. @@ -3207,6 +3211,10 @@ par exemple : alertnotify=echo %%s | mail -s "Alerte Bitcoin" admin@foo.com Options du serveur RPC : + RPC support for HTTP persistent connections (default: %d) + Prise en charge de RPC pour les connexions persistantes HTTP (par défaut : %d) + + Randomly drop 1 of every <n> network messages Abandonner aléatoirement 1 message du réseau sur <n> diff --git a/src/qt/locale/bitcoin_fr_CA.ts b/src/qt/locale/bitcoin_fr_CA.ts index c6b7dd7ffa8..f314f3d1c15 100644 --- a/src/qt/locale/bitcoin_fr_CA.ts +++ b/src/qt/locale/bitcoin_fr_CA.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_gl.ts b/src/qt/locale/bitcoin_gl.ts index cf16a129caf..ac2d7087a41 100644 --- a/src/qt/locale/bitcoin_gl.ts +++ b/src/qt/locale/bitcoin_gl.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_gu_IN.ts b/src/qt/locale/bitcoin_gu_IN.ts index ef99b0dd394..b7b091aa39c 100644 --- a/src/qt/locale/bitcoin_gu_IN.ts +++ b/src/qt/locale/bitcoin_gu_IN.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_he.ts b/src/qt/locale/bitcoin_he.ts index 2aff8300fd6..45a664d6e03 100644 --- a/src/qt/locale/bitcoin_he.ts +++ b/src/qt/locale/bitcoin_he.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_hi_IN.ts b/src/qt/locale/bitcoin_hi_IN.ts index a0f52609a37..208d1e03699 100644 --- a/src/qt/locale/bitcoin_hi_IN.ts +++ b/src/qt/locale/bitcoin_hi_IN.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_hr.ts b/src/qt/locale/bitcoin_hr.ts index d751c763de3..c4dc0ded97c 100644 --- a/src/qt/locale/bitcoin_hr.ts +++ b/src/qt/locale/bitcoin_hr.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_hu.ts b/src/qt/locale/bitcoin_hu.ts index 1f9f252106c..a95f9412c36 100644 --- a/src/qt/locale/bitcoin_hu.ts +++ b/src/qt/locale/bitcoin_hu.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_id_ID.ts b/src/qt/locale/bitcoin_id_ID.ts index 012db4f4a22..bdc67a55d10 100644 --- a/src/qt/locale/bitcoin_id_ID.ts +++ b/src/qt/locale/bitcoin_id_ID.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_it.ts b/src/qt/locale/bitcoin_it.ts index 43fbf9aba93..23eec1bf3e8 100644 --- a/src/qt/locale/bitcoin_it.ts +++ b/src/qt/locale/bitcoin_it.ts @@ -1,4 +1,4 @@ - + AddressBookPage @@ -1283,8 +1283,8 @@ Per specificare più URL separarli con una barra verticale "|". Rimborso da %1 - Payment request %2 is too large (%3 bytes, allowed %4 bytes). - La richiesta di pagamento %2 (%3 byte) supera la dimensione massima di %4 byte. + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + La richiesta di pagamento %1 (%2 byte) supera la dimensione massima di %3 byte. Payment request DoS protection @@ -3077,6 +3077,10 @@ Per specificare più URL separarli con una barra verticale "|". Ottiene gli indirizzi dei peer attraverso interrogazioni DNS, in caso di scarsa disponibilità (predefinito: 1 a meno che -connect non sia specificato) + Require high priority for relaying free or low-fee transactions (default:%u) + Richiedi alta priorità per la trasmissione di transazioni a zero o basse commissioni (predefinito:%u ) + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) Imposta la dimensione massima in byte delle transazioni ad alta-priorità/basse-commissioni (predefinito: %d) @@ -3148,6 +3152,10 @@ Si raccomanda inoltre di configurare alertnotify in modo da ricevere notifiche d Errore durante il caricamento del file wallet.dat: il portamonete richiede una versione di Bitcoin Core più recente + Error reading from database, shutting down. + Errore durante lalettura del database. Arresto in corso. + + Error: Unsupported argument -tor found, use -onion. Errore: Rilevato argomento -tor non supportato, utilizzare -onion. @@ -3204,6 +3212,10 @@ Si raccomanda inoltre di configurare alertnotify in modo da ricevere notifiche d Opzioni server RPC: + RPC support for HTTP persistent connections (default: %d) + Supporto RPC per le connessioni HTTP persistenti (predefinito: %d) + + Randomly drop 1 of every <n> network messages Scarta casualmente 1 ogni <n> messaggi di rete diff --git a/src/qt/locale/bitcoin_ja.ts b/src/qt/locale/bitcoin_ja.ts index fe8cb41b01d..99164abab47 100644 --- a/src/qt/locale/bitcoin_ja.ts +++ b/src/qt/locale/bitcoin_ja.ts @@ -1,4 +1,4 @@ - + AddressBookPage @@ -1288,8 +1288,8 @@ Address: %4 %1 からの返金 - Payment request %2 is too large (%3 bytes, allowed %4 bytes). - 支払リクエスト %2 は大きすぎます(%3バイトですが、%4バイトまでが許されています)。 + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + 支払リクエスト %1 は大きすぎます(%2バイトですが、%3バイトまでが許されています)。 Payment request DoS protection @@ -3087,6 +3087,10 @@ Address: %4 保有するピアアドレスが少ない場合、DNS ルックアップによりピアアドレスを問い合わせる (-connect を使っていない場合の初期値: 1) + Require high priority for relaying free or low-fee transactions (default:%u) + 手数料なし、または低手数料のトランザクションのリレー時に高い優先度を要求する (初期値: %u) + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) 最優先/最低手数料の最大サイズをバイトで指定 (初期値: %d) @@ -3159,6 +3163,10 @@ rpcpassword=%s wallet.dat の読み込みに失敗しました: ウォレットの読み込みにはより新しいバージョンの Bitcoin Core が必要です + Error reading from database, shutting down. + データベースの読み込みエラー。シャットダウンします。 + + Error: Unsupported argument -tor found, use -onion. エラー: サポートされていない引数 -tor が見つかりました。-onion を使用してください。 @@ -3215,6 +3223,10 @@ rpcpassword=%s RPCサーバのオプション: + RPC support for HTTP persistent connections (default: %d) + RPCにおけるHTTPの持続的接続のサポート (初期値: %d) + + Randomly drop 1 of every <n> network messages <n> 個のネットワークメッセージごとにひとつをランダムに捨てる diff --git a/src/qt/locale/bitcoin_ka.ts b/src/qt/locale/bitcoin_ka.ts index b2831b79e78..732081efda7 100644 --- a/src/qt/locale/bitcoin_ka.ts +++ b/src/qt/locale/bitcoin_ka.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_kk_KZ.ts b/src/qt/locale/bitcoin_kk_KZ.ts index 1623c25f42c..5e827caa446 100644 --- a/src/qt/locale/bitcoin_kk_KZ.ts +++ b/src/qt/locale/bitcoin_kk_KZ.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_ko_KR.ts b/src/qt/locale/bitcoin_ko_KR.ts index d0119a21b00..211f850c187 100644 --- a/src/qt/locale/bitcoin_ko_KR.ts +++ b/src/qt/locale/bitcoin_ko_KR.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_ky.ts b/src/qt/locale/bitcoin_ky.ts index ed7542261cb..58ef2e89e23 100644 --- a/src/qt/locale/bitcoin_ky.ts +++ b/src/qt/locale/bitcoin_ky.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_la.ts b/src/qt/locale/bitcoin_la.ts index 7539327cda2..b0011f87afc 100644 --- a/src/qt/locale/bitcoin_la.ts +++ b/src/qt/locale/bitcoin_la.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_lt.ts b/src/qt/locale/bitcoin_lt.ts index e18e7237567..a77ee9b5299 100644 --- a/src/qt/locale/bitcoin_lt.ts +++ b/src/qt/locale/bitcoin_lt.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_lv_LV.ts b/src/qt/locale/bitcoin_lv_LV.ts index 66669a63bd3..bd25749ad97 100644 --- a/src/qt/locale/bitcoin_lv_LV.ts +++ b/src/qt/locale/bitcoin_lv_LV.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_mn.ts b/src/qt/locale/bitcoin_mn.ts index 5f016fd80d7..26dbc741cc6 100644 --- a/src/qt/locale/bitcoin_mn.ts +++ b/src/qt/locale/bitcoin_mn.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_ms_MY.ts b/src/qt/locale/bitcoin_ms_MY.ts index 7ab50d66149..e7a5a64f463 100644 --- a/src/qt/locale/bitcoin_ms_MY.ts +++ b/src/qt/locale/bitcoin_ms_MY.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_nb.ts b/src/qt/locale/bitcoin_nb.ts index f54fd8059b0..eaaf8d7805b 100644 --- a/src/qt/locale/bitcoin_nb.ts +++ b/src/qt/locale/bitcoin_nb.ts @@ -1,4 +1,4 @@ - + AddressBookPage @@ -1289,8 +1289,8 @@ Adresse: %4 Refundering fra %1 - Payment request %2 is too large (%3 bytes, allowed %4 bytes). - Betalingsforespørsel %2 er for stor (%3 bytes, tillatt %4 bytes). + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + Betalingsforespørsel %1 er for stor (%2 bytes, tillatt %3 bytes). Payment request DoS protection @@ -3087,6 +3087,10 @@ Adresse: %4 Søk etter nodeadresser via DNS-oppslag, hvis vi har få adresser å koble til (standard: 1 med mindre -connect) + Require high priority for relaying free or low-fee transactions (default:%u) + Krev høy prioritet for å videreformidle transaksjoner som er gratis eller har lavt gebyr (standardverdi: %u) + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) Sett maksimum størrelse for transaksjoner med høy prioritet / lavt gebyr, i bytes (standardverdi: %d) @@ -3159,6 +3163,10 @@ for eksempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Feil ved lasting av wallet.dat: Lommeboken krever en nyere versjon av Bitcoin Core + Error reading from database, shutting down. + Feil ved lesing fra database, stenger ned. + + Error: Unsupported argument -tor found, use -onion. Feil: Argumentet -tor er ikke støttet, bruk -onion. @@ -3215,6 +3223,10 @@ for eksempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Innstillinger for RPC-server: + RPC support for HTTP persistent connections (default: %d) + RPC-støtte for persistente HTTP-forbindelser (standardverdi: %d) + + Randomly drop 1 of every <n> network messages Slumpvis dropp 1 av hver <n> nettverksmeldinger diff --git a/src/qt/locale/bitcoin_nl.ts b/src/qt/locale/bitcoin_nl.ts index 71389b63467..998f8f35902 100644 --- a/src/qt/locale/bitcoin_nl.ts +++ b/src/qt/locale/bitcoin_nl.ts @@ -1,4 +1,4 @@ - + AddressBookPage @@ -1289,8 +1289,8 @@ Adres: %4 Restitutie van %1 - Payment request %2 is too large (%3 bytes, allowed %4 bytes). - Betalingsaanvraag %2 is te groot (%3 bytes, %4 bytes toegestaan). + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + Betalingsverzoek %1 is te groot (%2 bytes, toegestaan ​​%3 bytes). Payment request DoS protection @@ -3067,6 +3067,31 @@ Adres: %4 Toeslagen (in BTC/Kb) kleiner dan dit worden beschouwd als geen vergoeding transactieaanmaak (standaard: %s) + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Als paytxfee niet is ingesteld, het pakket voldoende vergoeding zodat transacties beginnen bevestiging gemiddeld binnen in blokken (default: %u) + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + ongeldig bedrag voor -maxtxfee=<amount>: '%s' (moet ten minste de minrelay vergoeding van %s het voorkomen geplakt transacties voorkomen) + + + Maximum size of data in data carrier transactions we relay and mine (default: %u) + Maximale grootte va n de gegevens in gegevensdrager transacties we relais en de mijnen +(default: %u) + + + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Maximale totale kosten om te gebruiken in een enkele portemonnee transactie , vaststellen van een te laag kan grote transacties af te breken (default: %s) + + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) + Query voor peer- adressen via DNS- lookup , als laag op adressen (default: 1 unless -connect) + + + Require high priority for relaying free or low-fee transactions (default:%u) + Vereisen een hoge prioriteit voor het doorgeven van gratis of tegen lage vergoeding transacties (default:%u) + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) Stel maximumgrootte in bytes in voor hoge-prioriteits-/lage-transactiekosten-transacties (standaard: %d) @@ -3115,6 +3140,10 @@ Adres: %4 Fout bij laden wallet.dat: Portemonnee vereist een nieuwere versie van Bitcoin Core + Error reading from database, shutting down. + Fout bij het lezen van de database, afsluiten. + + Error: Unsupported argument -tor found, use -onion. Fout: Niet ondersteund argument -tor gevonden, gebruik -onion. @@ -3171,6 +3200,10 @@ Adres: %4 RPC server opties: + RPC support for HTTP persistent connections (default: %d) + RPC ondersteuning voor HTTP persisten verbindingen (default: %d) + + Randomly drop 1 of every <n> network messages Laat willekeurig 1 elke <n> netwerkberichten vallen @@ -3399,6 +3432,14 @@ Adres: %4 Prepend debug output met tijdstempel (standaard: %u) + Relay and mine data carrier transactions (default: %u) + Gegevensdrager transacties relay en de mijnen (default: %u) + + + Relay non-P2SH multisig (default: %u) + Relay non-P2SH multisig (default: %u) + + Run a thread to flush wallet periodically (default: %u) Draai een proces om de wallet periodiek te flushen (default: %u) diff --git a/src/qt/locale/bitcoin_pam.ts b/src/qt/locale/bitcoin_pam.ts index 1aafea3936c..355d167271f 100644 --- a/src/qt/locale/bitcoin_pam.ts +++ b/src/qt/locale/bitcoin_pam.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_pl.ts b/src/qt/locale/bitcoin_pl.ts index ea6cedf1541..d139f9560e0 100644 --- a/src/qt/locale/bitcoin_pl.ts +++ b/src/qt/locale/bitcoin_pl.ts @@ -1,4 +1,4 @@ - + AddressBookPage @@ -1039,6 +1039,10 @@ Adres: %4 Połącz się z siecią Bitcoin poprzez proxy SOCKS5. + &Connect through SOCKS5 proxy (default proxy): + Połącz przez proxy SO&CKS5 (domyślne proxy): + + Proxy &IP: Proxy &IP: @@ -1225,6 +1229,10 @@ Adres: %4 Żądanie płatności odrzucone + Payment request network doesn't match client network. + Sieć żądania płatności nie odpowiada sieci klienta. + + Payment request has expired. Zażądanie płatności się przedawniło. @@ -1272,6 +1280,10 @@ Adres: %4 PeerTableModel + Address/Hostname + Adres/Nazwa hosta + + Ping Time Czas odpowiedzi @@ -1421,6 +1433,10 @@ Adres: %4 Wersja + Services + Usługi + + Starting Height Początkowa wysokość @@ -1568,6 +1584,10 @@ Adres: %4 Użyj tego formularza do zażądania płatności. Wszystkie pola są <b>opcjonalne</b>. + An optional amount to request. Leave this empty or zero to not request a specific amount. + Opcjonalna kwota by zażądać. Zostaw puste lub zero by nie zażądać konkretnej kwoty. + + Clear all fields of the form. Wyczyść pola formularza. @@ -1584,6 +1604,10 @@ Adres: %4 &Żądaj płatności + Show the selected request (does the same as double clicking an entry) + Pokaż wybrane żądanie (robi to samo co dwukrotne kliknięcie pozycji) + + Show Pokaż @@ -2337,6 +2361,10 @@ Adres: %4 Adres + Immature (%1 confirmations, will be available after %2) + Niedojrzała (%1 potwierdzeń, będzie dostępna po %2) + + Open until %1 Otwórz do %1 @@ -2554,7 +2582,11 @@ Adres: %4 UnitDisplayStatusBarControl - + + Unit to show amounts in. Click to select another unit. + Jednostka w jakiej pokazywane są kwoty. Kliknij aby wybrać inną. + + WalletFrame @@ -2647,6 +2679,10 @@ Adres: %4 Wykonaj polecenie, kiedy transakcja portfela ulegnie zmianie (%s w poleceniu zostanie zastąpione przez TxID) + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) + Ustaw liczbę wątków skryptu weryfikacyjnego (%u do %d, 0 = auto, <0 = zostaw tyle rdzeni wolnych, domyślnie: %d) + + This is a pre-release test build - use at your own risk - do not use for mining or merchant applications To jest testowa wersja - używaj na własne ryzyko - nie używaj do wykopywania oraz przy aplikacjach kupieckich @@ -2763,6 +2799,10 @@ Adres: %4 Brak wystarczającej liczby deskryptorów plików. + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + Łącz z węzłami tylko w sieci <net> (ipv4, piv6 lub onion) + + Rebuild block chain index from current blk000??.dat files Odbuduj indeks łańcucha bloków z obecnych plików blk000??.dat @@ -2815,18 +2855,78 @@ Adres: %4 Pozwól na połączenia JSON-RPC z podanego źródła. Jako <ip> prawidłowe jest pojedyncze IP (np. 1.2.3.4), podsieć/maska (np. 1.2.3.4/255.255.255.0) lub sieć/CIDR (np. 1.2.3.4/24). Opcja ta może być użyta wiele razy. + An error occurred while setting up the RPC address %s port %u for listening: %s + Napotkano błąd podczas ustawiania adres RPC %s port %u dla nasłuchiwania: %s + + Cannot obtain a lock on data directory %s. Bitcoin Core is probably already running. Nie można uzyskać blokady na katalogu z danymi %s. Rdzeń Bitcoin najprawdopodobniej jest już uruchomiony. + Error: Listening for incoming connections failed (listen returned error %s) + Błąd: Nasłuchiwanie połączeń przychodzących nie powiodło się (nasłuch zwrócił błąd %s) + + + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + Błąd: Znaleziono niewspierany argument -socks . Ustawienie wersji SOCKS nie jest już możliwe, tylko serwery proxy SOCKS5 są wspierane. + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) Uruchom polecenie przy otrzymaniu odpowiedniego powiadomienia lub gdy zobaczymy naprawdę długie rozgałęzienie (%s w poleceniu jest podstawiane za komunikat) + Maximum size of data in data carrier transactions we relay and mine (default: %u) + Maksymalny rozmiar danych w transakcji przekazującej dane które przekazujemy i wydobywamy (domyślnie: %u) + + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) + Wyszukaj adresy węzłów wykorzystując zapytanie DNS, jeżeli masz mało adresów (domyślnie: 1 jeśli nie użyto -connect) + + + Require high priority for relaying free or low-fee transactions (default:%u) + Wymagaj wysokiego priorytetu dla przekazywania transakcji darmowych lub o niskiej opłacie (domyślnie:%u) + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) Ustaw maksymalny rozmiar transakcji o wysokim priorytecie/niskiej prowizji w bajtach (domyślnie: %d) + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + Ustaw liczbę wątków dla generowania monet (-1 = wszystkie rdzenie, domyślnie: %d) + + + 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. + Program ten zawiera oprogramowanie stworzone przez OpenSSL Project do użycia w OpensSSL Toolkit <https://www.openssl.org/>, oprogramowanie kryptograficzne napisane przez Eric Young oraz oprogramowanie UPnP napisane przez Thomas Bernard. + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Ostrzeżenie: -matxfee jest ustawione bardzo wysokie! Tak wysokie opłaty mogą być zapłacone w jednej transakcji. + + + Connect through SOCKS5 proxy + Połącz przez SOCKS5 proxy + + + Copyright (C) 2009-%i The Bitcoin Core Developers + Copyright (C) 2009-%i The Bitcoin Core Developers + + + Error loading wallet.dat: Wallet requires newer version of Bitcoin Core + Błąd ładowania wallet.dat: Portfel wymaga nowszej wersji Bitcoin Core + + + Error reading from database, shutting down. + Błąd odczytu z bazy danych, wyłączam się. + + + Error: Unsupported argument -tor found, use -onion. + Błąd: Znaleziono nieprawidłowy argument -tor, użyj -onion. + + + Fee (in BTC/kB) to add to transactions you send (default: %s) + Prowizja (w BTC za kB) dodawana do wysyłanej transakcji (domyślnie: %s) + + Information Informacja @@ -2835,6 +2935,10 @@ Adres: %4 Wstępna kontrola poprawności nie powiodła się. Bitcoin Core wyłącza się. + Invalid amount for -maxtxfee=<amount>: '%s' + Nieprawidłowa kwota dla -maxtxfee=<amount>: '%s' + + Invalid amount for -minrelaytxfee=<amount>: '%s' Nieprawidłowa kwota dla -minrelaytxfee=<amount>: '%s' @@ -2843,6 +2947,10 @@ Adres: %4 Nieprawidłowa kwota dla -mintxfee=<amount>: '%s' + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + Nieprawidłowa kwota dla -paytxfee=<amount>: '%s' (musi być co najmniej %s) + + Node relay options: Opcje przekaźnikowe węzła: @@ -2867,6 +2975,10 @@ Adres: %4 Wyślij informację/raport do konsoli zamiast do pliku debug.log. + Send transactions as zero-fee transactions if possible (default: %u) + Wyślij bez opłaty jeżeli to możliwe (domyślnie: %u) + + Show all debugging options (usage: --help -help-debug) Pokaż wszystkie opcje odpluskwiania (użycie: --help -help-debug) @@ -2891,10 +3003,18 @@ Adres: %4 Kwota transakcji musi być dodatnia + Transaction too large for fee policy + Transakcja jest zbyt duża dla tej opłaty + + Transaction too large Transakcja zbyt duża + Unable to bind to %s on this computer (bind returned error %s) + Nie można przywiązać do %s na tym komputerze (bind zwrócił błąd %s) + + Use UPnP to map the listening port (default: 1 when listening) Używaj UPnP do mapowania portu nasłuchu (domyślnie: 1 gdy nasłuchuje) @@ -2971,10 +3091,26 @@ Adres: %4 Błąd ładowania wallet.dat: Uszkodzony portfel + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = zachowaj wysłane metadane np. właściciel konta i informacje o żądaniach płatności, 2 = porzuć wysłane metadane) + + + How thorough the block verification of -checkblocks is (0-4, default: %u) + Jak dokładna jest weryfikacja bloków przy -checkblocks (0-4, domyślnie: %u) + + + Log transaction priority and fee per kB when mining blocks (default: %u) + Loguj priorytety transakcji i opłaty na kB podczas kopania bloków (domyślnie: %u) + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) Utrzymuj pełny indeks transakcji, używany przy wywołaniu RPC getrawtransaction (domyślnie: %u) + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + Czas w sekundach, przez jaki nietrzymające się zasad węzły nie będą mogły ponownie się podłączyć (domyślnie: %u) + + (default: %s) (domyślnie: %s) @@ -3067,6 +3203,10 @@ Adres: %4 Ustaw liczbę wątków do obsługi RPC (domyślnie: %d) + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + Ustaw flagę DB_PRIVATE w środowisku wallet db (domyślnie: %u) + + Specify configuration file (default: %s) Wskaż plik konfiguracyjny (domyślnie: %s) diff --git a/src/qt/locale/bitcoin_pt_BR.ts b/src/qt/locale/bitcoin_pt_BR.ts index 1639bc1c3b5..bc85f1f3160 100644 --- a/src/qt/locale/bitcoin_pt_BR.ts +++ b/src/qt/locale/bitcoin_pt_BR.ts @@ -1,4 +1,4 @@ - + AddressBookPage @@ -296,7 +296,7 @@ Bitcoin Core client - Cliente Bitcoin Core + Cliente Bitcoin Importing blocks from disk... @@ -352,7 +352,7 @@ Show information about Bitcoin Core - Mostrar informações sobre Bitcoin Core + Mostrar informações sobre Bitcoin &Show / Hide @@ -368,7 +368,7 @@ Sign messages with your Bitcoin addresses to prove you own them - Assine mensagems com seus endereços Bitcoin para provar que você é dono deles + Assine mensagens com seus endereços Bitcoin para provar que você é dono delas Verify messages to ensure they were signed with specified Bitcoin addresses @@ -392,7 +392,7 @@ Bitcoin Core - Núcleo Bitcoin + Bitcoin Request payments (generates QR codes and bitcoin: URIs) @@ -400,7 +400,7 @@ &About Bitcoin Core - &A respeito do Bitcoin Core + &Sobre Bitcoin Show the list of used sending addresses and labels @@ -420,7 +420,7 @@ Show the Bitcoin Core help message to get a list with possible Bitcoin command-line options - Mostra a mensagem de ajuda do Bitcoin Core para pegar a lista com os comandos possíveis + Mostra a mensagem de ajuda do Bitcoin para pegar a lista com os comandos possíveis %n active connection(s) to Bitcoin network @@ -822,7 +822,7 @@ Endereço: %4 HelpMessageDialog Bitcoin Core - Núcleo Bitcoin + Bitcoin version @@ -834,7 +834,7 @@ Endereço: %4 About Bitcoin Core - Sobre o Bitcoin Core + Sobre o Bitcoin Command-line options @@ -881,15 +881,15 @@ Endereço: %4 Welcome to Bitcoin Core. - Bem vindo ao Bitcoin Core. + Bem vindo ao Bitcoin. As this is the first time the program is launched, you can choose where Bitcoin Core will store its data. - A primeira vez que o programa é aberto você pode escolher onde o Bitcoin Core vai guardar os dados. + A primeira vez que o programa é aberto você pode escolher onde o Bitcoin vai guardar os dados. 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. - Bitcoin Core vai fazer download e guardar uma cópia da longa e única cadeia de blocos do Bitcoin: Blockchain. Pelo menos %1 GB de dados serão armazenados nesse diretório e isso aumentará ao longo do tempo. Sua carteira também será armazenada nesse diretório. + O Bitcoin vai fazer download e salvar uma cópia da cadeia de blocos do Bitcoin: Blockchain. Pelo menos %1 GB de dados serão armazenados nesse diretório e isso aumentará ao longo do tempo. Sua carteira também será armazenada nesse diretório. Use the default data directory @@ -901,7 +901,7 @@ Endereço: %4 Bitcoin Core - Núcleo Bitcoin + Bitcoin Error: Specified data directory "%1" cannot be created. @@ -991,7 +991,7 @@ Endereço: %4 Third party transaction URLs - URLs da transação de terceiros + URLs de transação de terceiros: Active command-line options that override above options: @@ -1087,7 +1087,7 @@ Endereço: %4 User Interface &language: - &Língua da interface com usuário: + &Linguagem da interface: The user interface language can be set here. This setting will take effect after restarting Bitcoin. @@ -1154,7 +1154,7 @@ Endereço: %4 Watch-only: - Apenas visualizar: + Monitorados: Available: @@ -1272,10 +1272,6 @@ Endereço: %4 Reembolso de %1 - Payment request %2 is too large (%3 bytes, allowed %4 bytes). - Solicitação de pagamento %2 muito grande (%3 bytes, %4 bytes permitido). - - Payment request DoS protection Pagamento requer proteção DoS @@ -1848,10 +1844,30 @@ Endereço: %4 Minimizar + 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. + Se a taxa personalizada for definida em 1000 satoshis e a transação tiver somente 250 bytes, então "por kilobyte" somente paga 250 satoshis de taxa, enquanto "pelo menos" paga 1000 satoshis. Se a transação for maior que 1 kilobyte, ambos pagam por kilobyte. + + per kilobyte por kilobyte + 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. + Se a taxa personalizada for definida em 1000 satoshis e a transação tiver somente 250 bytes, então "por kilobyte" somente paga 250 satoshis de taxa, enquanto "pelo menos" paga 1000 satoshis. Se a transação for maior que 1 kilobyte, ambos pagam por kilobyte. + + + total at least + pelo menos + + + 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. + Pagando apenas a taxa mínima é bom, desde que haja pouco volume de transações. Mas esteja ciente de que isso pode acabar em uma transação nunca confirmanda uma vez que há mais demanda por transações do que a rede pode processar. + + + (read the tooltip) + (Leia o popup) + + Recommended: Recomendado: @@ -2103,7 +2119,7 @@ Endereço: %4 ShutdownWindow Bitcoin Core is shutting down... - Bitcoin Core está desligando... + Bitcoin está desligando... Do not shut down the computer until this window disappears. @@ -2122,7 +2138,7 @@ Endereço: %4 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. - Você pode assinar mensagens com seus endereços para provar que você é o dono deles. Seja cuidadoso para não assinar algo vago, pois ataques de pishing podem tentar te enganar para dar sua assinatura de identidade para eles. Apenas assine afirmações completamente detalhadas com as quais você concorda. + Você pode assinar mensagens com seus endereços para provar que você é o dono delas. Seja cuidadoso para não assinar algo vago, pois ataques de phishing podem tentar te enganar para dar sua assinatura de identidade para eles. Apenas assine afirmações completamente detalhadas com as quais você concorda. The Bitcoin address to sign the message with @@ -2253,11 +2269,11 @@ Endereço: %4 SplashScreen Bitcoin Core - Núcleo Bitcoin + Bitcoin The Bitcoin Core developers - Programadores do Bitcoin Core + Programadores do Bitcoin [testnet] @@ -2327,7 +2343,7 @@ Endereço: %4 watch-only - Vizualização apenas + monitorado label @@ -2497,7 +2513,7 @@ Endereço: %4 Sent to - Enviado para + Enviado Payment to yourself @@ -2509,7 +2525,7 @@ Endereço: %4 watch-only - Vizualização apenas + monitorado (n/a) @@ -2572,7 +2588,7 @@ Endereço: %4 Sent to - Enviado para + Enviado To yourself @@ -2624,7 +2640,7 @@ Endereço: %4 Watch-only - Vizualização apenas + Monitorado Exporting Failed @@ -2803,7 +2819,7 @@ Endereço: %4 Unable to bind to %s on this computer. Bitcoin Core is probably already running. - Impossível ouvir em %s neste computador. Bitcoin Core já está sendo executado provavelmente. + Impossível ouvir em %s neste computador. Provavelmente o Bitcoin já está sendo executado. Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. @@ -2979,7 +2995,7 @@ Endereço: %4 Cannot obtain a lock on data directory %s. Bitcoin Core is probably already running. - Não foi possível obter acesso exclusivo ao diretório de dados %s. Bitcoin Core já está sendo executado provavelmente. + Não foi possível obter acesso exclusivo ao diretório de dados %s. Provavelmente Bitcoin já está sendo executado. Error: Listening for incoming connections failed (listen returned error %s) @@ -3043,7 +3059,11 @@ por exemplo: alertnotify=echo %%s | mail -s "Alerta do Bitcoin" admin@foo.com.br Error loading wallet.dat: Wallet requires newer version of Bitcoin Core - Erro carregando wallet.dat: A carteira requer a nova versão do Bitcoin Core + Erro ao carregar wallet.dat: A carteira requer a nova versão do Bitcoin + + + Error reading from database, shutting down. + Erro ao ler o banco de dados. Finalizando. Error: Unsupported argument -tor found, use -onion. @@ -3102,6 +3122,10 @@ por exemplo: alertnotify=echo %%s | mail -s "Alerta do Bitcoin" admin@foo.com.br Mandar informação de trace/debug para o console em vez de para o arquivo debug.log + Send transactions as zero-fee transactions if possible (default: %u) + Enviar transação sem taxa, se possível (padrão: %u) + + Show all debugging options (usage: --help -help-debug) Exibir todas opções de debug (uso: --help -help-debug) @@ -3155,7 +3179,7 @@ por exemplo: alertnotify=echo %%s | mail -s "Alerta do Bitcoin" admin@foo.com.br Warning: This version is obsolete, upgrade required! - Atenção: Esta versão está obsoleta, atualização exigida! + Atenção: Esta versão está obsoleta, atualização necessária! Zapping all transactions from wallet... @@ -3238,6 +3262,10 @@ por exemplo: alertnotify=echo %%s | mail -s "Alerta do Bitcoin" admin@foo.com.br Aguardar por conexões na porta <port> (padrão: %u ou testnet: %u) + Server certificate file (default: %s) + Arquivo de certificado do servidor (padrão: %s) + + Server private key (default: %s) Chave privada do servidor (padrão: %s) diff --git a/src/qt/locale/bitcoin_pt_PT.ts b/src/qt/locale/bitcoin_pt_PT.ts index 757002bf443..1c1f62df44d 100644 --- a/src/qt/locale/bitcoin_pt_PT.ts +++ b/src/qt/locale/bitcoin_pt_PT.ts @@ -1,9 +1,9 @@ - + AddressBookPage Right-click to edit address or label - Clique direito para editar endereço ou rótulo + Clique á direita para editar endereço ou rótulo Create a new address @@ -380,11 +380,11 @@ &Settings - Con&figurações + &Configurações &Help - A&juda + &Ajuda Tabs toolbar @@ -416,7 +416,7 @@ &Command-line options - Opções da linha de &comandos + &Opções da linha de &comandos Show the Bitcoin Core help message to get a list with possible Bitcoin command-line options @@ -1056,11 +1056,11 @@ Endereço: %4 &Port: - &Porta: + &Porto: Port of the proxy (e.g. 9050) - Porta do proxy (p.ex. 9050) + Porto do proxy (p.ex. 9050) &Window @@ -1084,7 +1084,7 @@ Endereço: %4 &Display - Vis&ualização + &Visualização User Interface &language: @@ -1155,7 +1155,7 @@ Endereço: %4 Watch-only: - Apenas observar: + Modo-verificação: Available: @@ -1206,6 +1206,18 @@ Endereço: %4 transações recentes + Unconfirmed transactions to watch-only addresses + Transações não confirmadas para endereços modo-verificação + + + Mined balance in watch-only addresses that has not yet matured + Saldo minado ainda não disponivél de endereços modo-verificação + + + Current total balance in watch-only addresses + Saldo disponivél em enderços modo-verificação + + out of sync fora de sincronia @@ -1225,6 +1237,18 @@ Endereço: %4 Pedido de pagamento rejeitado + Payment request network doesn't match client network. + Rede de requisição de pagamento não corresponde com a rede do cliente. + + + Payment request has expired. + Pedido de pagamento expirado. + + + Payment request is not initialized. + Requisição de pagamento não iniciou. + + Requested payment amount of %1 is too small (considered dust). Quantia solicitada para pagamento de %1 é muito pequena (considerada "pó"). @@ -1241,10 +1265,18 @@ Endereço: %4 O URL de pedido de pagamento é inválido: %1 + URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. + URI não foi lido correctamente! Isto pode ser causado por um endereço Bitcoin inválido ou por parâmetros URI malformados. + + Payment request file handling Controlo de pedidos de pagamento. + Payment request file cannot be read! This can be caused by an invalid payment request file. + O ficheiro de pedido de pagamento não pôde ser lido! Isto pode ter sido causado por um ficheiro de pedido de pagamento inválido. + + Unverified payment requests to custom payment scripts are unsupported. Pedidos de pagamento não-verificados para scripts de pagamento personalizados não são suportados. @@ -1253,10 +1285,22 @@ Endereço: %4 Reembolsar de %1 + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + Pedido de pagamento %1 excede o tamanho (%2 bytes, permitido %3 bytes). + + + Payment request DoS protection + Pedido de pagamento proteção DdS + + Error communicating with %1: %2 Erro ao comunicar com %1: %2 + Payment request cannot be parsed! + O pedido de pagamento não pode ser lido ou processado! + + Bad response from server %1 Má resposta do servidor %1 @@ -1271,7 +1315,19 @@ Endereço: %4 PeerTableModel - + + User Agent + Agente Usuário + + + Address/Hostname + Endereço/Nome da Rede + + + Ping Time + Tempo de Latência + + QObject @@ -1279,6 +1335,10 @@ Endereço: %4 Quantia + Enter a Bitcoin address (e.g. %1) + Entre um endereço Bitcoin (ex. %1) + + %1 d %1 d @@ -1295,6 +1355,14 @@ Endereço: %4 %1 s + NETWORK + REDE + + + UNKNOWN + DESCONHECIDO + + None Nenhum @@ -1302,7 +1370,11 @@ Endereço: %4 N/A N/D - + + %1 ms + %1 ms + + QRImageWidget @@ -1353,6 +1425,10 @@ Endereço: %4 Usando versão OpenSSL + Using BerkeleyDB version + Versão BerkeleyDB em uso + + Startup time Hora de inicialização @@ -1377,6 +1453,74 @@ Endereço: %4 Número actual de blocos + Received + Recebido + + + Sent + Enviado + + + &Peers + &Conexção + + + Select a peer to view detailed information. + Selecione uma conexação para ver informação em detalhe. + + + Direction + Direcção + + + Version + Versão + + + User Agent + Agente Usuário + + + Services + Serviços + + + Starting Height + Iniciando Altura + + + Sync Height + Sincronização da Altura + + + Ban Score + Resultado da Suspensão + + + Connection Time + Tempo de Conexção + + + Last Send + Ultimo Envio + + + Last Receive + Ultimo Recebimento + + + Bytes Sent + Bytes Enviados + + + Bytes Received + Bytes Recebidos + + + Ping Time + Tempo de Latência + + Last block time Data do último bloco @@ -1452,7 +1596,31 @@ Endereço: %4 %1 GB %1 GB - + + via %1 + via %1 + + + never + nunca + + + Inbound + Entrada + + + Outbound + Saída + + + Unknown + Desconhecido + + + Fetching... + Em busca... + + ReceiveCoinsDialog @@ -1461,7 +1629,7 @@ Endereço: %4 &Label: - Rótu&lo: + &Rótulo: &Message: @@ -1681,6 +1849,78 @@ Endereço: %4 Endereço de troco personalizado + Transaction Fee: + Custo da Transação: + + + Choose... + Escolha... + + + collapse fee-settings + fechar definições-de custos + + + Minimize + Minimizar + + + 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. + Se a taxa fixa for 1000 satoshis e a transação for somente 250 bytes, pagará somente 250 satoshis "por kilobyte" em custos se trasacionar "pelo menos" 1000 satoshis. Transações superiores a um kilobyte são cobradas por kilobyte. + + + per kilobyte + por kilobyte + + + 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. + Se a taxa fixa for 1000 satoshis e a transação for somente 250 bytes, pagará somente 250 satoshis "por kilobyte" em custos se trasacionar "pelo menos" 1000 satoshis. Transações superiores a um kilobyte são cobradas por kilobyte. + + + total at least + total minimo + + + 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. + Pode pagar somente a taxa minima desde que haja um volume de transações inferior ao espaço nos blocos. No entanto tenha em atenção que esta opção poderá acabar em uma transação nunca confirmada assim que os pedidos de transações excedam a capacidade de processamento da rede. + + + (read the tooltip) + (leia a dica) + + + Recommended: + Recomendado: + + + Custom: + Uso: + + + (Smart fee not initialized yet. This usually takes a few blocks...) + (Taxa inteligente ainda não foi acionada. Normalmente demora alguns blocos...) + + + Confirmation time: + Tempo de confirmação: + + + normal + normal + + + fast + rapido + + + Send as zero-fee transaction if possible + Enviar como uma transação a custo zero se possivél + + + (confirmation may take longer) + (confirmação poderá demorar mais) + + Send to multiple recipients at once Enviar para múltiplos destinatários de uma vez @@ -1698,7 +1938,7 @@ Endereço: %4 Clear &All - &Limpar Tudo + Limpar &Tudo Balance: @@ -1710,7 +1950,7 @@ Endereço: %4 S&end - &Enviar + E&nviar Confirm send coins @@ -1785,6 +2025,18 @@ Endereço: %4 A transação foi rejeitada! Isto poderá acontecer se algumas das moedas na sua carteira já tiverem sido gastas, se por exemplo tiver usado uma cópia do ficheiro wallet.dat e as moedas tiverem sido gastas na cópia mas não tiverem sido marcadas como gastas aqui. + A fee higher than %1 is considered an insanely high fee. + Uma taxa superior a %1 é considerada muito alta. + + + Pay only the minimum fee of %1 + Pagar somente a taxa minima de %1 + + + Estimated to begin confirmation within %1 block(s). + Confirmação deverá começar dentro de %1 bloco(s). + + Warning: Invalid Bitcoin address Aviso: Endereço Bitcoin inválido @@ -1836,6 +2088,10 @@ Endereço: %4 Este é um pagamento normal. + The Bitcoin address to send the payment to + O endereço Bitcoin para enviar o pagamento + + Alt+A Alt+A @@ -1873,7 +2129,7 @@ Endereço: %4 Pay To: - Pagar A: + Pagar a: Memo: @@ -1899,13 +2155,17 @@ Endereço: %4 &Sign Message - A&ssinar Mensagem + &Assinar Mensagem 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. Pode assinar mensagens com os seus endereços para provar que são seus. Tenha atenção ao assinar mensagens ambíguas, pois ataques de phishing podem tentar enganá-lo de modo a assinar a sua identidade para os atacantes. Apenas assine declarações detalhadas com as quais concorde. + The Bitcoin address to sign the message with + O endereço Bitcoin para designar a mensagem + + Choose previously used address Escolher endereço usado previamente @@ -1958,6 +2218,10 @@ Endereço: %4 Introduza o endereço de assinatura, mensagem (assegure-se que copia quebras de linha, espaços, tabulações, etc. exactamente) e assinatura abaixo para verificar a mensagem. Tenha atenção para não ler mais na assinatura do que o que estiver na mensagem assinada, para evitar ser enganado por um atacante que se encontre entre si e quem assinou a mensagem. + The Bitcoin address the message was signed with + O endereço Bitcoin com que a mensagem foi designada + + Verify the message to ensure it was signed with the specified Bitcoin address Verifique a mensagem para assegurar que foi assinada com o endereço Bitcoin especificado @@ -2099,6 +2363,10 @@ Endereço: %4 endereço próprio + watch-only + modo-verificação + + label rótulo @@ -2119,6 +2387,14 @@ Endereço: %4 Débito + Total debit + Total a debitar + + + Total credit + Total a creditar + + Transaction fee Taxa de transação @@ -2269,6 +2545,10 @@ Endereço: %4 Minadas + watch-only + modo-verificação + + (n/a) (n/d) @@ -2285,6 +2565,10 @@ Endereço: %4 Tipo de transação. + Whether or not a watch-only address is involved in this transaction. + Desde que um endereço de modo-verificação faça parte ou não desta transação + + Destination address of transaction. Endereço de destino da transação. @@ -2380,6 +2664,10 @@ Endereço: %4 Exportar Histórico de Transacções + Watch-only + Modo-verificação + + Exporting Failed A Exportação Falhou @@ -2434,7 +2722,11 @@ Endereço: %4 UnitDisplayStatusBarControl - + + Unit to show amounts in. Click to select another unit. + Unidade de valores recebidos. Clique para selecionar outra unidade. + + WalletFrame @@ -2523,6 +2815,14 @@ Endereço: %4 Associar a endereço específico e escutar sempre nele. Use a notação [anfitrião]:porta para IPv6 + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + Apague todas as transações da carteira e somente restore aquelas que façam parte do blockchain através de re-scan ao reiniciar o programa + + + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + Distribuido através da licença de software MIT, verifique o ficheiro anexado COPYING ou <http://www.opensource.org/licenses/mit-license.php>. + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. Entre no modo de teste de regressão, que usa uma cadeia especial cujos blocos podem ser resolvidos instantaneamente. @@ -2531,6 +2831,14 @@ Endereço: %4 Executar comando quando uma das transações na carteira mudar (no comando, %s é substituído pelo ID da Transação) + In this mode -genproclimit controls how many blocks are generated immediately. + O modo -genproclimit controla quantos blocos são generados imediatamente. + + + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) + Defina o número de processos de verificação (%u até %d, 0 = automático, <0 = ldisponibiliza esse número de núcleos livres, por defeito: %d) + + This is a pre-release test build - use at your own risk - do not use for mining or merchant applications Esta é uma versão de testes pré-lançamento - use à sua responsabilidade - não usar para minar ou aplicações comerciais @@ -2559,6 +2867,14 @@ Endereço: %4 Atenção: wallet.dat corrompido, dados recuperados! wallet.dat original salvo como wallet.{timestamp}.bak em %s; se o seu saldo ou transações estiverem incorrectos deverá recuperar uma cópia de segurança. + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + Ligações na lista branca conectam desde a seguinte netmask ou endereço IP. Posse ser especificado varias vezes. + + + (default: 1) + (padrão: 1) + + <category> can be: <categoria> pode ser: @@ -2575,10 +2891,18 @@ Endereço: %4 Apenas ligar ao(s) nó(s) especificado(s) + Connection options: + Opcões de conexção: + + Corrupted block database detected Cadeia de blocos corrompida detectada + Debugging/Testing options: + Depuração/Opções teste: + + Discover own IP address (default: 1 when listening and no -externalip) Descobrir endereço IP próprio (padrão: 1 ao escutar sem -externalip) @@ -2607,6 +2931,10 @@ Endereço: %4 Erro ao abrir a base de dados de blocos + Error: A fatal internal error occured, see debug.log for details + Erro: Um erro fatal interno ocorreu, verificar debug.log para mais informação + + Error: Disk space is low! Erro: Pouco espaço em disco! @@ -2619,6 +2947,10 @@ Endereço: %4 Se uma <categoria> não é fornecida, imprimir toda a informação de depuração. + Importing... + A importar... + + Incorrect or no genesis block found. Wrong datadir for network? Bloco génese incorreto ou nenhum bloco génese encontrado. Pasta de dados errada para a rede? @@ -2631,6 +2963,10 @@ Endereço: %4 Os descritores de ficheiros disponíveis são insuficientes. + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + Somente conectar aos nodes na rede <net> (ipv4, ipv6 ou onion) + + Rebuild block chain index from current blk000??.dat files Reconstruir a cadeia de blocos a partir dos ficheiros blk000??.dat atuais @@ -2651,6 +2987,10 @@ Endereço: %4 Isto têm como fim a realização de testes de regressão para pools e desenvolvimento de aplicações. + Use UPnP to map the listening port (default: %u) + Use UPnP para mapear a porto de escuta (default: %u) + + Verifying blocks... A verificar blocos... @@ -2675,6 +3015,18 @@ Endereço: %4 Importar blocos de um ficheiro blk000??.dat externo + Allow JSON-RPC connections from specified source. Valid for <ip> 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). This option can be specified multiple times + Permitir conexções JSON-RPC de fontes especificas. Valido para <ip> um unico IP (ex. 1.2.3.4), uma rede/netmask (ex. 1.2.3.4/255.255.255.0) ou uma rede/CIDR (ex. 1.2.3.4/24). Esta opção pode ser especificada varias vezes + + + An error occurred while setting up the RPC address %s port %u for listening: %s + Um erro ocorreu durante a definição do endereço RPC %s porto %u para escutar: %s + + + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + Vincualar o endereço dado e listar as ligações conectadas ao mesmo na lista branca. Use a notação [anfitrião]:porta para IPv6 + + Cannot obtain a lock on data directory %s. Bitcoin Core is probably already running. Impossível trancar a pasta de dados %s. Provavelmente o Bitcoin Core já está a ser executado. diff --git a/src/qt/locale/bitcoin_ro_RO.ts b/src/qt/locale/bitcoin_ro_RO.ts index abeaf82e83a..ab36ff5321b 100644 --- a/src/qt/locale/bitcoin_ro_RO.ts +++ b/src/qt/locale/bitcoin_ro_RO.ts @@ -1,4 +1,4 @@ - + AddressBookPage @@ -19,11 +19,11 @@ &Copy - &Copiere + &Copiază C&lose - &Inchidere + Închide &Copy Address @@ -31,11 +31,11 @@ Delete the currently selected address from the list - Sterge adresele curent selectate din lista + Şterge adresele curent selectate din listă Export the data in the current tab to a file - Exporta datele din tab-ul curent într-un fișier + Exportă datele din tab-ul curent într-un fişier &Export @@ -43,35 +43,35 @@ &Delete - &Șterge + Şterge Choose the address to send coins to - Alegeti adresa unde vreti sa trimiteti monezile + Alegeţi adresa unde vreţi să trimiteţi monezile Choose the address to receive coins with - Alegeti adresa unde vreti sa primiti monezile + Alegeţi adresa unde vreţi să primiţi monezile C&hoose - &Alege + &Alegeţi Sending addresses - Adresa Destinatarului + Adresa destinatarului Receiving addresses - Adresa pe care primiti + Adresa de primire These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Acestea sunt adresele dumneavoastra Bitcoin care pot fi folosite la trimiterea platilor. Verificati totdeauna cantitatea si adresa de primire inainte de a trimite monezi. + Acestea sînt adresele dumneavoastră Bitcoin pentru efectuarea plăţilor. Verificaţi întotdeauna cantitatea şi adresa de primire înainte de a trimite monezi. These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Acestea sunt adresele dumneavoastra Bitcoin folosite pentru a primi plati. Este recomandat sa folositi cate o adresa noua de primire pentru fiecare tranzactie in parte. + Acestea sînt adresele dumneavoastră Bitcoin folosite pentru a primi plati. Este recomandat să folosiţi o adresă nouă de primire pentru fiecare tranzacţie în parte. Copy &Label @@ -79,23 +79,23 @@ &Edit - &Editează + &Editare Export Address List - Exportati Agenda + Exportă listă de adrese Comma separated file (*.csv) - Valori separate prin virgulă (*.csv) + Fişier text cu valori separate prin virgulă (*.csv) Exporting Failed - Exportare esuata + Export nereuşit There was an error trying to save the address list to %1. Please try again. - A apărut o eroare încercând să se salveze lista de adrese la %1. Vă rugăm să încercați din nou. + A apărut o eroare la salvarea listei de adrese la %1. Vă rugăm să încercaţi din nou. @@ -121,7 +121,7 @@ Enter passphrase - Introdu fraza de acces + Introduceţi fraza de acces New passphrase @@ -129,55 +129,55 @@ Repeat new passphrase - Repetă noua frază de acces + Repetaţi noua frază de acces Encrypt wallet - Criptează portofelul + Criptare portofel This operation needs your wallet passphrase to unlock the wallet. - Această acțiune necesită fraza ta de acces pentru deblocarea portofelului. + Această acţiune necesită fraza dvs. de acces pentru deblocarea portofelului. Unlock wallet - Deblochează portofelul + Deblocare portofel This operation needs your wallet passphrase to decrypt the wallet. - Această acțiune necesită fraza ta de acces pentru decriptarea portofelului. + Această acţiune necesită fraza dvs. de acces pentru decriptarea portofelului. Decrypt wallet - Decriptează portofelul. + Decriptare portofel Change passphrase - Schimbă fraza de acces + Schimbare frază de acces Enter the old and new passphrase to the wallet. - Introdu vechea și noua parolă pentru portofel. + Introduceţi vechea şi noua parolă pentru portofel. Confirm wallet encryption - Confirmă criptarea portofelului + Confirmaţi criptarea portofelului Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - Atenție: Dacă pierdeţi parola portofelului electronic dupa criptare, <b>VEŢI PIERDE ÎNTREAGA SUMĂ DE BITCOIN ACUMULATĂ</b>! + Atenţie: Dacă pierdeţi parola portofelului electronic după criptare, <b>VEŢI PIERDE ÎNTREAGA SUMĂ DE BITCOIN ACUMULATĂ</b>! Are you sure you wish to encrypt your wallet? - Sunteţi sigur că doriţi să criptaţi portofelul electronic? + Sigur doriţi să criptaţi portofelul dvs.? IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - IMPORTANT: Orice copie de siguranta facuta in prealabil portofelului dumneavoastra ar trebui inlocuita cu cea generata cel mai recent fisier criptat al portofelului. Pentru siguranta, copiile de siguranta vechi ale portofelului ne-criptat vor deveni inutile de indata ce veti incepe folosirea noului fisier criptat al portofelului. + IMPORTANT: Orice copie de siguranţă făcută anterior portofelului dumneavoastră ar trebui înlocuită cu cea generată cel mai recent, fişier criptat al portofelului. Pentru siguranţă, copiile de siguranţă vechi ale portofelului ne-criptat vor deveni inutile imediat ce veţi începe folosirea noului fişier criptat al portofelului. Warning: The Caps Lock key is on! - Atentie! Caps Lock este pornit + Atenţie! Caps Lock este pornit! Wallet encrypted @@ -189,15 +189,15 @@ 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. - Bitcoin se va închide acum pentru a termina procesul de criptare. Ține minte că criptarea portofelului nu te poate proteja în totalitate de furtul monedelor de către programe dăunătoare care îți infectează calculatorul. + Bitcoin se va închide acum pentru a termina procesul de criptare. Ţineţi minte că criptarea portofelului nu vă poate proteja în totalitate de furtul monedelor de către programe dăunătoare care vă infectează calculatorul. Wallet encryption failed - Criptarea portofelului a eșuat + Criptarea portofelului nu a reuşit Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Criptarea portofelului a eșuat din cauza unei erori interne. Portofelul tău nu a fost criptat. + Criptarea portofelului nu a reuşit din cauza unei erori interne. Portofelul dvs. nu a fost criptat. The supplied passphrases do not match. @@ -205,7 +205,7 @@ Wallet unlock failed - Deblocarea portofelului a eșuat + Deblocarea portofelului nu a reuşit The passphrase entered for the wallet decryption was incorrect. @@ -213,7 +213,7 @@ Wallet decryption failed - Decriptarea portofelului a eșuat + Decriptarea portofelului nu a reuşit Wallet passphrase was successfully changed. @@ -228,7 +228,7 @@ Synchronizing with network... - Se sincronizează cu rețeaua... + Se sincronizează cu reţeaua... &Overview @@ -244,19 +244,19 @@ &Transactions - &Tranzacții + &Tranzacţii Browse transaction history - Răsfoiește istoricul tranzacțiilor + Răsfoire istoric tranzacţii E&xit - &Ieșire + Ieşire Quit application - Închide aplicația + Închide aplicaţia About &Qt @@ -264,19 +264,19 @@ Show information about Qt - Arată informații despre Qt + Arată informaţii despre Qt &Options... - &Setări... + &Opţiuni... &Encrypt Wallet... - Criptează portofelul electronic... + Cript&ează portofelul... &Backup Wallet... - &Fă o copie de siguranță a portofelului... + Face o copie de siguranţă a portofelului... &Change Passphrase... @@ -284,15 +284,15 @@ &Sending addresses... - &Trimitere adrese... + Adrese de trimitere... &Receiving addresses... - &Primire adrese... + Adrese de p&rimire... Open &URI... - Vizitaţi &URI... + Deschide &URI... Bitcoin Core client @@ -300,7 +300,7 @@ Importing blocks from disk... - Importare blocks de pe disk... + Import blocuri de pe disk... Reindexing blocks on disk... @@ -312,11 +312,11 @@ Modify configuration options for Bitcoin - Modifică opțiunile de configurare pentru Bitcoin + Modifică opţiunile de configurare pentru Bitcoin Backup wallet to another location - Creează o copie de rezervă a portofelului într-o locație diferită + Creează o copie de rezervă a portofelului într-o locaţie diferită Change the passphrase used for wallet encryption @@ -324,15 +324,15 @@ &Debug window - Fereastră &debug + Fereastra de &depanare Open debugging and diagnostic console - Deschide consola de debug și diagnosticare + Deschide consola de depanare şi diagnosticare &Verify message... - &Verifică mesajul... + &Verifică mesaj... Bitcoin @@ -340,23 +340,23 @@ Wallet - Portofelul + Portofel &Send - &Trimite + Trimite &Receive - &Primește + P&rimeşte Show information about Bitcoin Core - Arată informații despre Bitcoin Core + Arată informaţii despre Bitcoin Core &Show / Hide - Arata/Ascunde + Arată/Ascunde Show or hide the main Window @@ -364,19 +364,19 @@ Encrypt the private keys that belong to your wallet - Criptează cheile private ale portofelului tău + Criptează cheile private ale portofelului dvs. Sign messages with your Bitcoin addresses to prove you own them - Semnează mesaje cu adresa ta Bitcoin pentru a dovedi că îți aparțin + Semnaţi mesaje cu adresa dvs. Bitcoin pentru a dovedi că vă aparţin Verify messages to ensure they were signed with specified Bitcoin addresses - Verifică mesaje pentru a te asigura că au fost semnate cu adresa Bitcoin specificată + Verificaţi mesaje pentru a vă asigura că au fost semnate cu adresa Bitcoin specificată &File - &Fișier + &Fişier &Settings @@ -388,15 +388,15 @@ Tabs toolbar - Bara de file + Bara de unelte Bitcoin Core - Bitcoin Core + Nucleul Bitcoin Request payments (generates QR codes and bitcoin: URIs) - Cereti plati (genereaza coduri QR si bitcoin-uri: URls) + Cereţi plăţi (generează coduri QR şi bitcoin-uri: URls) &About Bitcoin Core @@ -404,31 +404,31 @@ Show the list of used sending addresses and labels - Aratati lista de adrese trimise si etichete folosite. + Arată lista de adrese trimise şi etichetele folosite. Show the list of used receiving addresses and labels - Aratati lista de adrese pentru primire si etichete + Arată lista de adrese pentru primire şi etichetele Open a bitcoin: URI or payment request - Deschideti un bitcoin: o adresa URI sau o cerere de plata + Deschidere bitcoin: o adresa URI sau o cerere de plată &Command-line options - Command-line setări + Opţiuni linie de &comandă Show the Bitcoin Core help message to get a list with possible Bitcoin command-line options - Arată mesajul de ajutor Bitcoin Core pentru a obține o listă cu opțiunile posibile de linii de comandă Bitcoin + Arată mesajul de ajutor Bitcoin Core pentru a obţine o listă cu opţiunile posibile de linii de comandă Bitcoin %n active connection(s) to Bitcoin network - %n conexiune activă către rețeaua Bitcoin%n conexiuni active către rețeaua Bitcoin%n de conexiuni active către rețeaua Bitcoin + %n conexiune activă către reţeaua Bitcoin%n conexiuni active către reţeaua Bitcoin%n de conexiuni active către reţeaua Bitcoin No block source available... - Nici o sursă de bloc disponibil ... + Nici o sursă de bloc disponibilă... %n hour(s) @@ -436,7 +436,7 @@ %n day(s) - %n zi%n zile%n zile + %n zi%n zile%n de zile %n week(s) @@ -444,11 +444,11 @@ %1 and %2 - %1 si %2 + %1 şi %2 %n year(s) - %n an%n ani%n ani + %n an%n ani%n de ani %1 behind @@ -456,11 +456,11 @@ Last received block was generated %1 ago. - Ultimul bloc recepționat a fost generat acum %1. + Ultimul bloc recepţionat a fost generat acum %1. Transactions after this will not yet be visible. - Tranzacții după aceasta nu va fi încă disponibile. + Tranzacţiile după aceasta nu vor fi vizibile încă. Error @@ -468,11 +468,11 @@ Warning - Avertizare + Avertisment Information - Informație + Informaţie Up to date @@ -480,7 +480,7 @@ Processed %n blocks of transaction history. - S-a procesat %n bloc din istoricul tranzacțiilor.S-au procesat %n blocuri din istoricul tranzacțiilor.S-au procesat %n blocuri din istoricul tranzacțiilor. + S-a procesat %n bloc din istoricul tranzacţiilor.S-au procesat %n blocuri din istoricul tranzacţiilor.S-au procesat %n de blocuri din istoricul tranzacţiilor. Catching up... @@ -488,11 +488,11 @@ Sent transaction - Tranzacție expediată + Tranzacţie expediată Incoming transaction - Tranzacție recepționată + Tranzacţie recepţionată Date: %1 @@ -508,18 +508,18 @@ Adresa: %4 Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Portofelul este <b>criptat</b> iar în momentul de față este <b>deblocat</b> + Portofelul este <b>criptat</b> iar în momentul de faţă este <b>deblocat</b> Wallet is <b>encrypted</b> and currently <b>locked</b> - Portofelul este <b>criptat</b> iar în momentul de față este <b>blocat</b> + Portofelul este <b>criptat</b> iar în momentul de faţă este <b>blocat</b> ClientModel Network Alert - Alertă rețea + Alertă reţea @@ -546,11 +546,15 @@ Adresa: %4 Fee: - Taxa: + Taxă: + + + Dust: + Praf: After Fee: - După taxe: + După taxă: Change: @@ -558,15 +562,15 @@ Adresa: %4 (un)select all - (de)selectaţi tot + (de)selectare tot Tree mode - Modul arborescent + Mod arbore List mode - Modul lista + Mod listă Amount @@ -610,43 +614,47 @@ Adresa: %4 Copy transaction ID - Copiază ID tranzacție + Copiază ID tranzacţie Lock unspent - Blocaţi necheltuite + Blocare necheltuiţi Unlock unspent - Deblocaţi necheltuite + Deblocare necheltuiţi Copy quantity - Copiaţi quantitea + Copiază cantitea Copy fee - Copiaţi taxele + Copiază taxa Copy after fee - Copiaţi după taxe + Copiază după taxă Copy bytes - Copiaţi octeţi + Copiază octeţi Copy priority - Copiaţi prioritatea + Copiază prioritatea + + + Copy dust + Copiază praf Copy change - Copiaţi schimb + Copiază rest highest - cel mai mare + cea mai mare higher @@ -658,27 +666,27 @@ Adresa: %4 medium-high - marime medie + medie-mare medium - mediu + medie low-medium - mediu-scazut + medie-scăzută low - scazut + scazută lower - mai scazut + mai scăzută lowest - cel mai scazut + cea mai scăzută none @@ -686,7 +694,7 @@ Adresa: %4 Can vary +/- %1 satoshi(s) per input. - Poate varia +/- %1 satoshi pentru fiecare intrare. + Poate varia +/- %1 satoshi pentru fiecare intrare. yes @@ -698,19 +706,19 @@ Adresa: %4 This label turns red, if the transaction size is greater than 1000 bytes. - Această etichetă devine roşie, în cazul în care dimensiunea tranzacţiei este mai mare de 1000 de octeţi. + Această etichetă devine roşie, în cazul în care dimensiunea tranzacţiei este mai mare de 1000 de octeţi. Can vary +/- 1 byte per input. - Poate varia +/- 1 octet pentru fiecare intrare. + Poate varia +/- 1 octet pentru fiecare intrare. Transactions with higher priority are more likely to get included into a block. - Tranzacţiile cu prioritate mai mare sunt mai susceptibile de fi incluse într-un bloc. + Tranzacţiile cu prioritate mai mare sînt mai susceptibile de fi incluse într-un bloc. This label turns red, if the priority is smaller than "medium". - Aceasta eticheta se face rosie daca prioritatea e mai mica decat media + Această etichetă devine roşie dacă prioritatea e mai mică decît "medie". (no label) @@ -722,7 +730,7 @@ Adresa: %4 (change) - (schimb) + (rest) @@ -737,11 +745,11 @@ Adresa: %4 The label associated with this address list entry - Etichetele asociate cu aceasta intrare din lista. + Eticheta asociată cu această intrare din listă. The address associated with this address list entry. This can only be modified for sending addresses. - Adresa asociata cu aceasta adresa din lista. Aceasta poate fi modificata doar pentru Destinatari. + Adresa asociată cu această adresă din listă. Aceasta poate fi modificată doar pentru adresele de trimitere. &Address @@ -777,7 +785,7 @@ Adresa: %4 New key generation failed. - Generarea noii chei a eșuat. + Generarea noii chei nu a reuşit. @@ -792,11 +800,11 @@ Adresa: %4 Directory already exists. Add %1 if you intend to create a new directory here. - Dosarul deja există. Adaugă %1 dacă intenționezi să creezi un nou dosar aici. + Dosarul deja există. Adaugă %1 dacă intenţionaţi să creaţi un nou dosar aici. Path already exists, and is not a directory. - Calea deja există și nu este un dosar. + Calea deja există şi nu este un dosar. Cannot create data directory here. @@ -807,7 +815,7 @@ Adresa: %4 HelpMessageDialog Bitcoin Core - Bitcoin Core + Nucleul Bitcoin version @@ -823,7 +831,7 @@ Adresa: %4 Command-line options - Command-line setări + Opţiuni linie de comandă Usage: @@ -831,23 +839,27 @@ Adresa: %4 command-line options - command-line setări + Opţiuni linie de comandă UI options - UI setări + Opţiuni UI Set language, for example "de_DE" (default: system locale) - Seteaza limba, de exemplu: "de_DE" (initialt: system locale) + Setează limba, de exemplu: "de_DE" (implicit: sistem local) Start minimized - Incepe miniaturizare + Începe minimizat + + + Set SSL root certificates for payment request (default: -system-) + Setare rădăcină certificat SSL pentru cerere de plată (implicit: -sistem- ) Show splash screen on startup (default: 1) - Afișează pe ecran splash la pornire (implicit: 1) + Afişează pe ecran splash la pornire (implicit: 1) Choose data directory on startup (default: 0) @@ -862,23 +874,27 @@ Adresa: %4 Welcome to Bitcoin Core. - Bine Aţi Venit la Nucleul Bitcoin. + Bine aţi venit la Nucleul Bitcoin. As this is the first time the program is launched, you can choose where Bitcoin Core will store its data. - Dacă aceasta este prima dată când programul este lansat, puteţi alege unde Nucleul Bitcoin va stoca datele. + Dacă aceasta este prima dată cînd programul este lansat, puteţi alege unde Nucleul Bitcoin va stoca datele. Use the default data directory - Folosește dosarul de date implicit + Foloseşte dosarul de date implicit Use a custom data directory: - Folosește un dosar de date personalizat: + Foloseşte un dosar de date personalizat: Bitcoin Core - Bitcoin Core + Nucleul Bitcoin + + + Error: Specified data directory "%1" cannot be created. + Eroare: Directorul datelor specificate "%1" nu poate fi creat. Error @@ -886,7 +902,7 @@ Adresa: %4 %n GB of free space available - %n GB de spațiu liber disponibil%n GB de spațiu liber disponibil%n GB de spațiu liber disponibil + %n GB de spaţiu liber disponibil%n GB de spaţiu liber disponibil%n GB de spaţiu liber disponibil (of %n GB needed) @@ -897,7 +913,7 @@ Adresa: %4 OpenURIDialog Open URI - Deschideti adresa URI + Deschide URI Open payment request from URI or file @@ -905,54 +921,86 @@ Adresa: %4 URI: - adresa URI: + URI: Select payment request file - Selectaţi fişierul de cerere de plată + Selectaţi fişierul cerere de plată Select payment request file to open - Selectaţi fişierul de cerere de plată de deschis + Selectaţi fişierul cerere de plată pentru deschidere OptionsDialog Options - Setări + Opţiuni &Main - &Principal + Principal Automatically start Bitcoin after logging in to the system. - Porneşte automat programul Bitcoin la pornirea computerului. + Porneşte automat Bitcoin după pornirea calculatorului. &Start Bitcoin on system login - &S Porneşte Bitcoin la pornirea sistemului + Porneşte Bitcoin la pornirea sistemului + + + Size of &database cache + Mărimea bazei de &date cache MB MB + Number of script &verification threads + Numărul de thread-uri de &verificare + + Accept connections from outside Acceptă conexiuni din exterior + Allow incoming connections + Permite conexiuni de intrare + + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + Adresa IP a serverului proxy (de exemplu: IPv4: 127.0.0.1 / IPv6: ::1) + + + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. + URL-uri terţe părţi (de exemplu, un explorator de bloc), care apar în tab-ul tranzacţiilor ca elemente de meniu contextual. %s în URL este înlocuit cu hash de tranzacţie. URL-urile multiple sînt separate prin bară verticală |. + + + Third party transaction URLs + URL-uri tranzacţii terţe părţi + + + Active command-line options that override above options: + Opţiuni linie de comandă active care oprimă opţiunile de mai sus: + + Reset all client options to default. Resetează toate setările clientului la valorile implicite. &Reset Options - &Resetează opțiunile + &Resetează opţiunile &Network - &Retea + Reţea + + + (0 = auto, <0 = leave that many cores free) + (0 = automat, <0 = lasă atîtea nuclee libere) W&allet @@ -960,19 +1008,35 @@ Adresa: %4 Expert - expert + Expert Enable coin &control features Activare caracteristici de control ale monedei + If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed. + Dacă dezactivaţi cheltuirea restului neconfirmat, restul dintr-o tranzacţie nu poate fi folosit pînă cînd tranzacţia are cel puţin o confirmare. Aceasta afectează de asemenea calcularea soldului. + + + &Spend unconfirmed change + Cheltuire rest neconfirmat + + Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Deschide automat în router portul aferent clientului Bitcoin. Funcţionează doar în cazul în care routerul e compatibil UPnP şi opţiunea e activată. + Deschide automat în router portul aferent clientului Bitcoin. Funcţionează doar dacă routerul duportă UPnP şi e activat. Map port using &UPnP - Mapeaza portul folosind &UPnP + Mapare port folosind &UPnP + + + Connect to the Bitcoin network through a SOCKS5 proxy. + Conectare la reţeaua Bitcoin printr-un proxy SOCKS. + + + &Connect through SOCKS5 proxy (default proxy): + &Conectare printr-un proxy SOCKS (implicit proxy): Proxy &IP: @@ -984,27 +1048,27 @@ Adresa: %4 Port of the proxy (e.g. 9050) - Portul pe care se concetează proxy serverul (de exemplu: 9050) + Portul proxy (de exemplu: 9050) &Window - &Fereastra + &Fereastră Show only a tray icon after minimizing the window. - Afişează doar un icon in tray la ascunderea ferestrei + Arată doar un icon în tray la ascunderea ferestrei &Minimize to the tray instead of the taskbar - &M Ascunde în tray în loc de taskbar + &Minimizare în tray în loc de taskbar Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. - Ascunde fereastra în locul părăsirii programului în momentul închiderii ferestrei. Când acestă opţiune e activă, aplicaţia se va opri doar în momentul selectării comenzii Quit din menu. + Ascunde fereastra în locul părăsirii programului în momentul închiderii ferestrei. Cînd acestă opţiune e activă, aplicaţia se va opri doar în momentul selectării comenzii 'Închide aplicaţia' din menu. M&inimize on close - &i Ascunde fereastra în locul închiderii programului + M&inimizare fereastră în locul închiderii programului &Display @@ -1012,11 +1076,11 @@ Adresa: %4 User Interface &language: - Interfata & limba userului + &Limbă interfaţă utilizator The user interface language can be set here. This setting will take effect after restarting Bitcoin. - Limba interfeței utilizatorului poate fi setat aici. Această setare va avea efect după repornirea Bitcoin. + Limba interfeţei utilizatorului poate fi setată aici. Această setare va avea efect după repornirea Bitcoin. &Unit to show amounts in: @@ -1024,23 +1088,23 @@ Adresa: %4 Choose the default subdivision unit to show in the interface and when sending coins. - Alege subdiviziunea folosită la afişarea interfeţei şi la trimiterea de bitcoin. + Alegeţi subdiviziunea folosită la afişarea interfeţei şi la trimiterea de bitcoin. Whether to show coin control features or not. - Dacă să se afişeze controlul caracteristicilor monedei sau nu. + Arată controlul caracteristicilor monedei sau nu. &OK - & OK + &OK &Cancel - & Renunta + Renunţă default - Initial + iniţial none @@ -1048,11 +1112,11 @@ Adresa: %4 Confirm options reset - Confirmă resetarea opțiunilor + Confirmă resetarea opţiunilor Client restart required to activate changes. - Este necesar un restart al clientului pentru a activa schimbările. + Este necesară repornirea clientului pentru a activa schimbările. Client will be shutdown, do you want to proceed? @@ -1060,11 +1124,11 @@ Adresa: %4 This change would require a client restart. - Această schimbare va necesita un restart al clientului. + Această schimbare necesită o repornire a clientului. The supplied proxy address is invalid. - Adresa bitcoin pe care a-ti specificat-o este invalida + Adresa bitcoin pe care aţi specificat-o nu este validă. @@ -1075,7 +1139,11 @@ Adresa: %4 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. - Informațiile afișate pot neactualizate. Portofelul tău se sincronizează automat cu rețeaua Bitcoin după ce o conexiune este stabilită, dar acest proces nu a fost finalizat încă. + Informaţiile afişate pot fi neactualizate. Portofelul dvs. se sincronizează automat cu reţeaua Bitcoin după ce o conexiune este stabilită, dar acest proces nu a fost finalizat încă. + + + Watch-only: + Doar-supraveghere: Available: @@ -1083,7 +1151,7 @@ Adresa: %4 Your current spendable balance - Balanța ta curentă de cheltuieli + Balanţa dvs. curentă de cheltuieli Pending: @@ -1091,7 +1159,7 @@ Adresa: %4 Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Totalul tranzacțiilor care nu sunt confirmate încă și care nu sunt încă adunate la balanța de cheltuieli + Totalul tranzacţiilor care nu sunt confirmate încă şi care nu sunt încă adunate la balanţa de cheltuieli Immature: @@ -1099,7 +1167,7 @@ Adresa: %4 Mined balance that has not yet matured - Balanta minata care nu s-a maturizat inca + Balanţa minertită care nu s-a maturizat încă Balances @@ -1111,7 +1179,11 @@ Adresa: %4 Your current total balance - Balanța totală curentă + Balanţa totală curentă + + + Your current balance in watch-only addresses + Soldul dvs. curent în adresele doar-supraveghere Spendable: @@ -1122,8 +1194,20 @@ Adresa: %4 Tranzacţii recente + Unconfirmed transactions to watch-only addresses + Tranzacţii neconfirmate la adresele doar-supraveghere + + + Mined balance in watch-only addresses that has not yet matured + Balanţă minată în adresele doar-supraveghere care nu s-a maturizat încă + + + Current total balance in watch-only addresses + Soldul dvs. total în adresele doar-supraveghere + + out of sync - Nu este sincronizat + nesincronizat @@ -1137,8 +1221,24 @@ Adresa: %4 Adresă pentru plată nevalidă %1 + Payment request rejected + Cerere de plată refuzată + + + Payment request network doesn't match client network. + Cererea de plată din reţea nu se potriveşte cu clientul din reţea + + + Payment request has expired. + Cererea de plată a expirat. + + + Payment request is not initialized. + Cererea de plată nu este iniţializată. + + Requested payment amount of %1 is too small (considered dust). - Cereti plata cu suma de %1 este prea mica (considerata praf) + Suma cerută de plată de %1 este prea mică (considerată praf). Payment request error @@ -1146,23 +1246,47 @@ Adresa: %4 Cannot start bitcoin: click-to-pay handler - Nu poate porni bitcoin: regula clic-pentru-plata + Nu poate porni bitcoin: manipulator clic-pentru-plată + + + Payment request fetch URL is invalid: %1 + URL-ul cererii de plată preluat nu este valid: %1 + + + Payment request file handling + Manipulare fişier cerere de plată + + + Payment request file cannot be read! This can be caused by an invalid payment request file. + Fişierul cerere de plată nu poate fi citit! Cauza poate fi un fişier cerere de plată nevalid. Unverified payment requests to custom payment scripts are unsupported. - Cereri de plată neverificate prin script-uri personalizate de plată nu sunt suportate. + Cererile de plată neverificate prin script-uri personalizate de plată nu sînt suportate. Refund from %1 - rambursare de la %1 + Rambursare de la %1 + + + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + Cererea de plată %1 este prea mare (%2 octeţi, permis %3 octeţi). + + + Payment request DoS protection + Protecţie DoS cerere de plată Error communicating with %1: %2 Eroare la comunicarea cu %1: %2 + Payment request cannot be parsed! + Cererea de plată nu poate fi analizată! + + Bad response from server %1 - Răspuns greșit de la server %1 + Răspuns greşit de la server %1 Payment acknowledged @@ -1170,21 +1294,37 @@ Adresa: %4 Network request error - Eroare în cererea de rețea + Eroare în cererea de reţea PeerTableModel - + + User Agent + Agent utilizator + + + Address/Hostname + Adresă/Nume gazdă + + + Ping Time + Timp ping + + QObject Amount - Sumă + Cantitate + + + Enter a Bitcoin address (e.g. %1) + Introduceţi o adresă Bitcoin (de exemplu %1) %1 d - %1 d + %1 z %1 h @@ -1199,6 +1339,18 @@ Adresa: %4 %1 s + NETWORK + REŢEA + + + UNKNOWN + NECUNOSCUT + + + None + Niciuna + + N/A N/A @@ -1211,11 +1363,11 @@ Adresa: %4 QRImageWidget &Save Image... - Salvarea imaginii ... + &Salvează imagine... &Copy Image - Copierea imaginii + &Copiază imaginea Save QR Code @@ -1234,7 +1386,7 @@ Adresa: %4 N/A - N/A + indisponibil Client version @@ -1242,7 +1394,7 @@ Adresa: %4 &Information - &Informație + &Informaţii Debug window @@ -1254,7 +1406,11 @@ Adresa: %4 Using OpenSSL version - Foloseste versiunea OpenSSL + Foloseşte OpenSSL versiunea + + + Using BerkeleyDB version + Foloseşte BerkeleyDB versiunea Startup time @@ -1262,11 +1418,11 @@ Adresa: %4 Network - Rețea + Reţea Name - Numele + Nume Number of connections @@ -1274,7 +1430,7 @@ Adresa: %4 Block chain - Lanț de blocuri + Lanţ de blocuri Current number of blocks @@ -1282,25 +1438,61 @@ Adresa: %4 Received - Primit + Recepţionat Sent Trimis + &Peers + &Parteneri + + + Select a peer to view detailed information. + Selectaţi un partener pentru a vedea informaţiile detaliate. + + Direction Direcţie Version - Versiunea + Versiune + + + User Agent + Agent utilizator Services Servicii + Connection Time + Timp conexiune + + + Last Send + Ultima trimitere + + + Last Receive + Ultima primire + + + Bytes Sent + Octeţi trimişi + + + Bytes Received + Octeţi primiţi + + + Ping Time + Timp ping + + Last block time Data ultimului bloc @@ -1314,11 +1506,11 @@ Adresa: %4 &Network Traffic - Traficul in rețea + Trafic reţea &Clear - &Ştergeţi + &Curăţă Totals @@ -1326,11 +1518,11 @@ Adresa: %4 In: - în: + Intrare: Out: - Ieșire. + Ieşire: Build date @@ -1338,27 +1530,27 @@ Adresa: %4 Debug log file - Loguri debug + Fişier jurnal depanare Open the Bitcoin debug log file from the current data directory. This can take a few seconds for large log files. - Deschide logurile debug din directorul curent. Aceasta poate dura cateva secunde pentru fisierele mai mari + Deschide fişierul jurnal depanare din directorul curent. Aceasta poate dura cîteva secunde pentru fişierele mai mari. Clear console - Curăță consola + Curăţă consola Welcome to the Bitcoin RPC console. - Bun venit la consola bitcoin RPC + Bun venit la consola bitcoin RPC. Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Foloseste sagetile sus si jos pentru a naviga in istoric si <b>Ctrl-L</b> pentru a curata. + Folosiţi săgetile sus şi jos pentru a naviga în istoric şi <b>Ctrl-L</b> pentru a curăţa. Type <b>help</b> for an overview of available commands. - Scrie <b>help</b> pentru a vedea comenzile disponibile + Scrieţi <b>help</b> pentru a vedea comenzile disponibile. %1 B @@ -1381,15 +1573,31 @@ Adresa: %4 via %1 + never + niciodată + + + Inbound + Intrare + + + Outbound + Ieşire + + Unknown Necunoscut - + + Fetching... + Preluare... + + ReceiveCoinsDialog &Amount: - & suma: + Sum&a: &Label: @@ -1397,47 +1605,63 @@ Adresa: %4 &Message: - & mesaj: + &Mesaj: Reuse one of the previously used receiving addresses. Reusing addresses has security and privacy issues. Do not use this unless re-generating a payment request made before. - Refolositi una din adresele de primire folosite in prealabil. Refolosirea adreselor poate crea probleme de securitate si confidentialitate. Nu folositi aceasta optiune decat daca o cerere de regenerare a platii a fost facuta in prealabil. + Refoloseşte una din adresele de primire folosite anterior. Refolosirea adreselor poate crea probleme de securitate şi confidenţialitate. Nu folosiţi această opţiune decît dacă o cerere de regenerare a plăţii a fost făcută anterior. R&euse an existing receiving address (not recommended) - &Refolosirea unei adrese de primire (nu este recomandat) + R&efoloseşte o adresă de primire (nu este recomandat) + + + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. + Un mesaj opţional de ataşat la cererea de plată, care va fi afişat cînd cererea este deschisă. Notă: Acest mesaj nu va fi trimis cu plata către reţeaua Bitcoin. + + + An optional label to associate with the new receiving address. + O etichetă opţională de asociat cu adresa de primire. Use this form to request payments. All fields are <b>optional</b>. - Folosește acest formular pentru a solicita plăți. Toate câmpurile sunt <b>opționale</b>. + Foloseşte acest formular pentru a solicita plăţi. Toate cîmpurile sînt <b>opţionale</b>. + + + An optional amount to request. Leave this empty or zero to not request a specific amount. + O sumă opţională de cerut. Lăsaţi gol sau zero pentru a nu cere o sumă anume. Clear all fields of the form. - Stergeti toate campurile formularului + Curăţă toate cîmpurile formularului. Clear - Stergeti + Curăţă Requested payments history - Istoricul platilor a fost cerut + Istoricul plăţilor cerute &Request payment - &Cereti plata + &Cerere plată Show the selected request (does the same as double clicking an entry) - Arata cererea selectata (acelas lucru ca si dublu-click pe o inregistrare) + Arată cererea selectată (acelaşi lucru ca şi dublu-clic pe o înregistrare) Show Arată + Remove the selected entries from the list + Înlătură intrările selectate din listă + + Remove - Elimină + Înlătură Copy label @@ -1445,7 +1669,7 @@ Adresa: %4 Copy message - Copiaţi mesajul + Copiază mesajul Copy amount @@ -1460,27 +1684,27 @@ Adresa: %4 Copy &URI - Copiati &URl + Copiază &URl Copy &Address - Copiati &Adresa + Copiază &adresa &Save Image... - Salvarea imaginii ... + &Salvează imaginea... Request payment to %1 - Cereti plata pentru %1 + Cere plata pentru %1 Payment information - Informatiile platii + Informaţiile plăţii URI - Identificator uniform de resurse + URI Address @@ -1500,7 +1724,7 @@ Adresa: %4 Resulting URI too long, try to reduce the text for label / message. - URI rezultat este prea lung, încearcă să reduci textul pentru etichetă / mesaj. + URI rezultat este prea lung, încearcaţi să reduceţi textul pentru etichetă / mesaj. Error encoding URI into QR Code. @@ -1535,7 +1759,7 @@ Adresa: %4 (no amount) - (suma nulă) + (sumă nulă) @@ -1550,11 +1774,11 @@ Adresa: %4 Inputs... - Intrări + Intrări... automatically selected - Selectie automatică + selecţie automată Insufficient funds! @@ -1578,25 +1802,57 @@ Adresa: %4 Fee: - Taxa: + Taxă: After Fee: - După taxe: + După taxă: Change: - Schimbaţi: + Rest: + + + If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. + Dacă este activat, dar adresa de rest este goală sau nevalidă, restul va fi trimis la o adresă nou generată. + + + Custom change address + Adresă personalizată de rest + + + Transaction Fee: + Taxă tranzacţie: + + + Choose... + Alegeţi... Minimize Minimizare + per kilobyte + per kilooctet + + + total at least + total cel puţin + + + Recommended: + Recomandat: + + Custom: Personalizat: + Confirmation time: + Timp confirmare: + + normal normal @@ -1605,32 +1861,44 @@ Adresa: %4 rapid + Send as zero-fee transaction if possible + Trimite ca taxă zero dacă este posibil + + + (confirmation may take longer) + (confirmarea poate dura mai mult) + + Send to multiple recipients at once - Trimite simultan către mai mulți destinatari + Trimite simultan către mai mulţi destinatari Add &Recipient - &Adaugă destinatar + Adaugă destinata&r Clear all fields of the form. - Stergeti toate campurile formularului + Şterge toate cîmpurile formularului. + + + Dust: + Praf: Clear &All - Șterge &tot + Curăţă to&ate Balance: - Balanță: + Balanţă: Confirm the send action - Confirmă operațiunea de trimitere + Confirmă operaţiunea de trimitere S&end - &S Trimite + Trimit&e Confirm send coins @@ -1642,7 +1910,7 @@ Adresa: %4 Copy quantity - Copiaţi quantitea + Copiază cantitea Copy amount @@ -1650,23 +1918,23 @@ Adresa: %4 Copy fee - Copiaţi taxele + Copiază taxa Copy after fee - Copiaţi după taxe + Copiază după taxă Copy bytes - Copiaţi octeţi + Copiază octeţi Copy priority - Copiaţi prioritatea + Copiază prioritatea Copy change - Copiaţi schimb + Copiază rest Total Amount %1 (= %2) @@ -1682,31 +1950,35 @@ Adresa: %4 The amount to pay must be larger than 0. - Suma de plată trebuie să fie mai mare decât 0. + Suma de plată trebuie să fie mai mare decît 0. The amount exceeds your balance. - Suma depășește soldul contului. + Suma depăşeşte soldul contului. The total exceeds your balance when the %1 transaction fee is included. - Totalul depășește soldul contului dacă se include și plata comisionului de %1. + Totalul depăşeşte soldul contului dacă se include şi plata taxei de %1. Duplicate address found, can only send to each address once per send operation. - S-a descoperit o adresă care figurează de două ori. Expedierea se poate realiza către fiecare adresă doar o singură dată pe operațiune. + S-a descoperit o adresă duplicat.Se poate trimite către fiecare adresă doar o singură dată per operaţiune. Transaction creation failed! - Creare de tranzactie nereusita! + Creare tranzacţie nereuşită! 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. - Tranzactia a fost respinsa! Acest lucru se poate intampla daca o parte din monedele tale din portofel au fost deja cheltuite, la fel ca si cum ai fi folosit o copie a wallet.dat si monedele au fost cheltuite in copie, dar nu au fost marcate si si cheltuite si aici. + Tranzacţia a fost respinsă! Acest lucru se poate întîmpla dacă o parte din monedele tale din portofel au fost deja cheltuite, la fel ca şi cum aţi fi folosit o copie a wallet.dat şi monedele au fost cheltuite în copie, dar nu au fost marcate ca şi cheltuite şi aici. + + + Pay only the minimum fee of %1 + Plăteşte doar taxa minimă de %1 Warning: Invalid Bitcoin address - Atentie: Adresa Bitcoin invalida! + Atenţie: Adresa bitcoin nevalidă! (no label) @@ -1714,15 +1986,19 @@ Adresa: %4 Warning: Unknown change address - Atentie: Schimbare de adresa necunoscuta + Atenţie: Adresă de rest necunoscută + + + Copy dust + Copiază praf Are you sure you want to send? - Ești sigur că vrei să trimiți? + Sigur doriţi să trimiteţi? added as transaction fee - adăugat ca taxă de tranzacție + adăugat ca taxă de tranzacţie @@ -1733,11 +2009,11 @@ Adresa: %4 Pay &To: - Plătește că&tre: + Plăteşte că&tre: Enter a label for this address to add it to your address book - Introdu o etichetă pentru această adresă pentru a fi adăugată în lista ta de adrese + Introduceţi o etichetă pentru această adresă pentru a fi adăugată în lista dvs. de adrese &Label: @@ -1745,19 +2021,23 @@ Adresa: %4 Choose previously used address - Alegeti adrese folosite in prealabil. + Alegeţi adrese folosite anterior This is a normal payment. Aceasta este o tranzacţie normală. + The Bitcoin address to send the payment to + Adresa bitcoin către care se face plata + + Alt+A Alt+A Paste address from clipboard - Lipește adresa din clipboard + Lipeşte adresa din clipboard Alt+P @@ -1765,7 +2045,7 @@ Adresa: %4 Remove this entry - Scoate aceasta introducere + Înlătură această intrare Message: @@ -1773,19 +2053,23 @@ Adresa: %4 This is a verified payment request. - Aceasta este o cerere de plata verificata + Aceasta este o cerere de plată verificată. Enter a label for this address to add it to the list of used addresses - Introduceti eticheta pentru ca aceasta adresa sa fie introdusa in lista de adrese folosite + Introduceţi eticheta pentru ca această adresa să fie introdusă în lista de adrese folosite + + + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. + un mesaj a fost ataşat la bitcoin: URI care va fi stocat cu tranzacţia pentru referinţa dvs. Notă: Acest mesaj nu va fi trimis către reţeaua bitcoin. This is an unverified payment request. - Aceasta este o cerere de plata neverificata + Aceasta este o cerere de plata neverificată. Pay To: - Plateste catre: + Plăteşte către: Memo: @@ -1796,30 +2080,34 @@ Adresa: %4 ShutdownWindow Bitcoin Core is shutting down... - Bitcoin Core se închide... + Nucleul Bitcoin se închide... Do not shut down the computer until this window disappears. - Nu închide calculatorul până ce această fereastră nu dispare. + Nu închide calculatorul pînă ce această fereastră nu dispare. SignVerifyMessageDialog Signatures - Sign / Verify a Message - Semnatura- Semneaza/verifica un mesaj + Semnaturi - Semnează/verifică un mesaj &Sign Message - Semneaza Mesajul + &Semnează mesaj 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. - Puteti semna mesaje cu adresa dumneavoastra pentru a demostra ca sunteti proprietarul lor. Aveti grija sa nu semnati nimic vag, deoarece atacurile de tip phishing va pot pacali sa le transferati identitatea. Semnati numai declaratiile detaliate cu care sunteti deacord. + Puteţi semna mesaje cu adresa dvs. pentru a demostra ca sînteti proprietarul lor. Aveţi grijă să nu semnaţi nimic vag, deoarece atacurile de tip phishing vă pot păcăli să le transferaţi identitatea. Semnaţi numai declaraţiile detaliate cu care sînteti de acord. + + + The Bitcoin address to sign the message with + Adresa cu care semnaţi mesajul Choose previously used address - Alegeti adrese folosite in prealabil + Alegeţi adrese folosite anterior Alt+A @@ -1827,7 +2115,7 @@ Adresa: %4 Paste address from clipboard - Lipiţi adresa copiată in clipboard. + Lipeşte adresa copiată din clipboard Alt+P @@ -1835,7 +2123,7 @@ Adresa: %4 Enter the message you want to sign here - Introduce mesajul pe care vrei sa il semnezi, aici. + Introduceţi mesajul pe care vreţi să-l semnaţi, aici Signature @@ -1843,106 +2131,110 @@ Adresa: %4 Copy the current signature to the system clipboard - Copiaza semnatura curenta in clipboard-ul sistemului + Copiază semnatura curentă în clipboard-ul sistemului Sign the message to prove you own this Bitcoin address - Semneaza mesajul pentru a dovedi ca detii acesta adresa Bitcoin + Semnează mesajul pentru a dovedi ca deţineţi acestă adresă Bitcoin Sign &Message - Semnează &Message + Semnează &mesaj Reset all sign message fields - Reseteaza toate spatiile mesajelor semnate. + Resetează toate cîmpurile mesajelor semnate Clear &All - Şterge &tot + Curăţă to&ate &Verify Message - Verifica mesajul + &Verifică mesaj 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. - Introduceti adresa de semnatura, mesajul (asigurati-va ca ati copiat spatiile, taburile etc. exact) si semnatura dedesubt pentru a verifica mesajul. Aveti grija sa nu cititi mai mult in semnatura decat mesajul in sine, pentru a evita sa fiti pacaliti de un atac de tip man-in-the-middle. + Introduceţi adresa de semnatură, mesajul (asiguraţi-vă că aţi copiat spaţiile, taburile etc. exact) şi semnatura dedesubt pentru a verifica mesajul. Aveţi grijă să nu citiţi mai mult în semnatură decît mesajul în sine, pentru a evita să fiţi păcăliţi de un atac de tip man-in-the-middle. + + + The Bitcoin address the message was signed with + Introduceţi o adresă Bitcoin Verify the message to ensure it was signed with the specified Bitcoin address - Verifica mesajul pentru a fi sigur ca a fost semnat cu adresa Bitcoin specifica + Verificaţi mesajul pentru a vă asigura că a fost semnat cu adresa Bitcoin specificată Verify &Message - Verifică &Message + Verifică &mesaj Reset all verify message fields - Reseteaza toate spatiile mesajelor semnate. + Resetează toate cîmpurile mesajelor semnate Click "Sign Message" to generate signature - Click "Semneaza msajul" pentru a genera semnatura + Faceţi clic pe "Semneaza msaj" pentru a genera semnătura The entered address is invalid. - Adresa introdusa nu este valida + Adresa introdusă nu este validă Please check the address and try again. - Te rugam verifica adresa si introduce-o din nou + Vă rugăm verificaţi adresa şi încercaţi din nou. The entered address does not refer to a key. - Adresa introdusa nu se refera la o cheie. + Adresa introdusă nu se referă la o cheie. Wallet unlock was cancelled. - Blocarea portofelului a fost intrerupta + Blocarea portofelului a fost întreruptă. Private key for the entered address is not available. - Cheia privata pentru adresa introdusa nu este valida. + Cheia privată pentru adresa introdusă nu este validă. Message signing failed. - Semnarea mesajului a esuat + Semnarea mesajului nu a reuşit. Message signed. - Mesaj Semnat! + Mesaj semnat. The signature could not be decoded. - Aceasta semnatura nu a putut fi decodata + Această semnatură nu a putut fi decodată. Please check the signature and try again. - Verifica semnatura si incearca din nou + Vă rugăm verificaţi semnătura şi încercaţi din nou. The signature did not match the message digest. - Semnatura nu seamana! + Semnatura nu se potriveşte cu mesajul. Message verification failed. - Verificarea mesajului a esuat + Verificarea mesajului nu a reuşit. Message verified. - Mesaj verificat + Mesaj verificat. SplashScreen Bitcoin Core - Bitcoin Core + Nucleul Bitcoin The Bitcoin Core developers - Dezvoltatorii Bitcoin Core + Dezvoltatorii Nucleului Bitcoin [testnet] @@ -1960,7 +2252,7 @@ Adresa: %4 TransactionDesc Open until %1 - Deschis până la %1 + Deschis pînă la %1 conflicted @@ -2008,7 +2300,11 @@ Adresa: %4 own address - Adresa posedata + adresa proprie + + + watch-only + doar-supraveghere label @@ -2024,7 +2320,7 @@ Adresa: %4 not accepted - nu este acceptat + neacceptat Debit @@ -2040,7 +2336,7 @@ Adresa: %4 Transaction fee - Comisionul tranzacţiei + Taxă tranzacţie Net amount @@ -2052,11 +2348,11 @@ Adresa: %4 Comment - Comentarii + Comentariu Transaction ID - ID-ul tranzactiei + ID-ul tranzacţie Merchant @@ -2064,11 +2360,11 @@ Adresa: %4 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. - Monezile generate trebuie sa creasca %1 block-uri inainte sa poata fi cheltuite. Cand ati generat acest block, a fost transmis retelei pentru a fi adaugat la lantul de block-uri. Aceasta se poate intampla ocazional daca alt nod genereaza un block la numai cateva secunde de al tau. + Monezile generate trebuie să crească %1 blocuri înainte să poată fi cheltuite. Cînd aţi generat acest bloc, a fost transmis reţelei pentru a fi adaugat la lanţul de blocuri. Aceasta se poate întîmpla ocazional dacă alt nod generează un bloc la numai cîteva secunde de al dvs. Debug information - Informatii pentru debug + Informaţii pentru depanare Transaction @@ -2076,7 +2372,7 @@ Adresa: %4 Inputs - Intrari + Intrări Amount @@ -2084,11 +2380,11 @@ Adresa: %4 true - Adevarat! + adevărat false - Fals! + fals , has not been successfully broadcast yet @@ -2103,11 +2399,11 @@ Adresa: %4 TransactionDescDialog Transaction details - Detaliile tranzacției + Detaliile tranzacţiei This pane shows a detailed description of the transaction - Acest panou afișează o descriere detaliată a tranzacției + Acest panou arată o descriere detaliată a tranzacţiei @@ -2118,11 +2414,15 @@ Adresa: %4 Type - Tipul + Tip Address - Adresa + Adresă + + + Immature (%1 confirmations, will be available after %2) + Imatur (%1 confirmări, va fi disponibil după %2) Open until %1 @@ -2134,7 +2434,7 @@ Adresa: %4 This block was not received by any other nodes and will probably not be accepted! - Acest bloc nu a fost recepționat de niciun alt nod și probabil nu va fi acceptat! + Acest bloc nu a fost recepţionat de nici un alt nod şi probabil nu va fi acceptat! Generated but not accepted @@ -2150,7 +2450,7 @@ Adresa: %4 Confirming (%1 of %2 recommended confirmations) - Confirmare (%1 dintre %2 confirmări recomandate) + Confirmare (%1 din %2 confirmări recomandate) Conflicted @@ -2158,7 +2458,7 @@ Adresa: %4 Received with - Recepționat cu + Recepţionat cu Received from @@ -2170,31 +2470,39 @@ Adresa: %4 Payment to yourself - Plată către tine + Plată către dvs. Mined - Produs + Minerit + + + watch-only + doar-supraveghere (n/a) - (n/a) + indisponibil Transaction status. Hover over this field to show number of confirmations. - Starea tranzacției. Treci cu mausul peste acest câmp pentru afișarea numărului de confirmări. + Starea tranzacţiei. Treceţi cu mouse-ul peste acest cîmp pentru afişarea numărului de confirmări. Date and time that the transaction was received. - Data și ora la care a fost recepționată tranzacția. + Data şi ora la care a fost recepţionată tranzacţia. Type of transaction. - Tipul tranzacției. + Tipul tranzacţiei. + + + Whether or not a watch-only address is involved in this transaction. + Indiferent dacă sau nu o adresă doar-suăpraveghere este implicată în această tranzacţie. Destination address of transaction. - Adresa de destinație a tranzacției. + Adresa de destinaţie a tranzacţiei. Amount removed from or added to balance. @@ -2213,7 +2521,7 @@ Adresa: %4 This week - Săptămâna aceasta + Săptămîna aceasta This month @@ -2229,11 +2537,11 @@ Adresa: %4 Range... - Între... + Interval... Received with - Recepționat cu + Recepţionat cu Sent to @@ -2241,11 +2549,11 @@ Adresa: %4 To yourself - Către tine + Către dvs. Mined - Produs + Minerit Other @@ -2253,11 +2561,11 @@ Adresa: %4 Enter address or label to search - Introdu adresa sau eticheta pentru căutare + Introduceţi adresa sau eticheta pentru căutare Min amount - Cantitatea minimă + Suma minimă Copy address @@ -2273,7 +2581,7 @@ Adresa: %4 Copy transaction ID - Copiază ID tranzacție + Copiază ID tranzacţie Edit label @@ -2281,23 +2589,27 @@ Adresa: %4 Show transaction details - Arată detaliile tranzacției + Arată detaliile tranzacţiei Export Transaction History - Exportare Istoric Tranzacţii + Export istoric tranzacţii + + + Watch-only + Doar-supraveghere Exporting Failed - Exportare Eşuată + Export nereuşit There was an error trying to save the transaction history to %1. - S-a produs o eroare încercând să se salveze istoricul tranzacţiilor la %1. + S-a produs o eroare la salvarea istoricului tranzacţiilor la %1. Exporting Successful - Exportare Reuşită + Export reuşit The transaction history was successfully saved to %1. @@ -2305,7 +2617,7 @@ Adresa: %4 Comma separated file (*.csv) - Fișier text cu valori separate prin virgulă (*.csv) + Fişier text cu valori separate prin virgulă (*.csv) Confirmed @@ -2317,7 +2629,7 @@ Adresa: %4 Type - Tipul + Tip Label @@ -2342,34 +2654,38 @@ Adresa: %4 UnitDisplayStatusBarControl - + + Unit to show amounts in. Click to select another unit. + Unitatea în care sînt arătate sumele. Faceţi clic pentru a selecta o altă unitate. + + WalletFrame No wallet has been loaded. - Nu a fost încărcat niciun portofel. + Nu a fost încărcat nici un portofel. WalletModel Send Coins - Trimite Bitcoin + Trimitere bitcoin WalletView &Export - &Exportă + &Export Export the data in the current tab to a file - Exporta datele din tab-ul curent într-un fișier + Exportă datele din tab-ul curent într-un fişier Backup Wallet - Fă o copie de siguranță a portofelului + Copie de siguranţă portofel Wallet Data (*.dat) @@ -2377,11 +2693,11 @@ Adresa: %4 Backup Failed - Copia de rezerva a esuat + Copierea de siguranţă nu a reuşit There was an error trying to save the wallet data to %1. - S-a produs o eroare încercând să se salveze datele portofelului la %1. + S-a produs o eroare la salvarea datelor portofelului la %1. The wallet data was successfully saved to %1. @@ -2389,74 +2705,94 @@ Adresa: %4 Backup Successful - Copia de siguranță efectuată cu succes + Copie de siguranţă efectuată cu succes bitcoin-core Options: - Setări: + Opţiuni: Specify data directory - Specifică dosarul de date + Specificaţi dosarul de date Connect to a node to retrieve peer addresses, and disconnect - Conectează-te la nod pentru a obține adresele partenerilor, și apoi deconectează-te + Se conectează la un nod pentru a obţine adresele partenerilor, şi apoi se deconectează Specify your own public address - Specifică adresa ta publică + Specificaţi adresa dvs. publică Accept command line and JSON-RPC commands - Se acceptă comenzi din linia de comandă și comenzi JSON-RPC + Acceptă comenzi din linia de comandă şi comenzi JSON-RPC Run in the background as a daemon and accept commands - Rulează în fundal ca un demon și acceptă comenzi + Rulează în fundal ca un demon şi acceptă comenzi Use the test network - Utilizează rețeaua de test + Utilizează reţeaua de test Accept connections from outside (default: 1 if no -proxy or -connect) - Acceptă conexiuni din afară (implicit: 1 dacă nu se folosește -proxy sau -connect) + Acceptă conexiuni din afară (implicit: 1 dacă nu se foloseşte -proxy sau -connect) Bind to given address and always listen on it. Use [host]:port notation for IPv6 - Atasati adresei date si ascultati totdeauna pe ea. Folositi [host]:port notatia pentru IPv6 + Ataşaţi adresei date şi ascultaţi totdeauna pe ea. Folosiţi notaţia [host]:port pentru IPv6 + + + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + Distribuit sub licenţa de programe MIT/X11, vezi fişierul însoţitor COPYING sau <http://www.opensource.org/licenses/mit-license.php>. + + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + Iniţiază modul de test regresie, care foloseşte un lanţ special în care blocurile pot fi rezolvate instantaneu. Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) - Executati comanda cand o tranzactie a portofelului se schimba (%s in cmd este inlocuit de TxID) + Execută comanda cînd o tranzacţie a portofelului se schimbă (%s în cmd este înlocuit de TxID) + + + In this mode -genproclimit controls how many blocks are generated immediately. + În acest mod -genproclimit controlează cîte blocuri sînt generate imediat. + + + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) + Setează numărul de thread-uri de verificare a script-urilor (%u la %d, 0 = auto, <0 = lasă atîtea nuclee libere, implicit: %d) This is a pre-release test build - use at your own risk - do not use for mining or merchant applications - Aceasta este o versiune de test preliminara - va asumati riscul folosind-o - nu folositi pentru minerit sau aplicatiile comerciantilor. + Aceasta este o versiune de test preliminară - vă asumaţi riscul folosind-o - nu folosiţi pentru minerit sau aplicaţiile comercianţilor + + + Unable to bind to %s on this computer. Bitcoin Core is probably already running. + Nu se poate lega la %s pe acest calculator. Nucleul Bitcoin probabil deja rulează. Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. - Atentie: setarea -paytxfee este foarte ridicata! Aceasta este taxa tranzactiei pe care o vei plati daca trimiti o tranzactie. + Atenţie: setarea -paytxfee este foarte mare! Aceasta este taxa tranzacţiei pe care o veţi plăti dacă trimiteţi o tranzacţie. Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. - Atentie: Reteaua nu pare sa fie deacord in totalitate! Aparent niste mineri au probleme. + Atenţie: Reţeaua nu pare să fie de acord în totalitate! Aparent nişte mineri au probleme. Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. - Atentie: Aparent, nu suntem deacord cu toti membrii nostri! Va trebui sa faci un upgrade, sau alte noduri ar necesita upgrade. + Atenţie: Aparent, nu sîntem de acord cu toţi partenerii noştri! Va trebui să faceţi o actualizare, sau alte noduri necesită actualizare. Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. - Atentie: eroare la citirea fisierului wallet.dat! Toate cheile sunt citite corect, dar datele tranzactiei sau anumite intrari din agenda sunt incorecte sau lipsesc. + Atenţie: eroare la citirea fişierului wallet.dat! Toate cheile sînt citite corect, dar datele tranzactiei sau anumite intrări din agenda sînt incorecte sau lipsesc. 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. - Atentie: fisierul wallet.dat este corupt, date salvate! Fisierul original wallet.dat a fost salvat ca wallet.{timestamp}.bak in %s; daca balansul sau tranzactiile sunt incorecte ar trebui sa restaurati dintr-o copie de siguranta. + Atenţie: fişierul wallet.dat este corupt, date salvate! Fişierul original wallet.dat a fost salvat ca wallet.{timestamp}.bak in %s; dacă balansul sau tranzactiile sînt incorecte ar trebui să restauraţi dintr-o copie de siguranţă. (default: 1) @@ -2468,15 +2804,15 @@ Adresa: %4 Attempt to recover private keys from a corrupt wallet.dat - Încearcă recuperarea cheilor private dintr-un wallet.dat corupt + Încercare de recuperare a cheilor private dintr-un wallet.dat corupt Block creation options: - Optiuni creare block + Opţiuni creare bloc: Connect only to the specified node(s) - Conecteaza-te doar la nod(urile) specifice + Conectare doar la nod(urile) specificate Connection options: @@ -2484,23 +2820,31 @@ Adresa: %4 Corrupted block database detected - Baza de date 'bloc' defectată a fost detectată + Bloc defect din baza de date detectat + + + Debugging/Testing options: + Opţiuni Depanare/Test: Discover own IP address (default: 1 when listening and no -externalip) - Descopera propria ta adresa IP (intial: 1) + Descoperă propria adresă IP (inţial: 1) + + + Do not load the wallet and disable wallet RPC calls + Nu încarcă portofelul şi dezactivează solicitările portofel RPC Do you want to rebuild the block database now? - Doriți să reconstruiți baza de date 'bloc' acum? + Doriţi să reconstruiţi baza de date blocuri acum? Error initializing block database - Eroare la inițializarea bazei de date de blocuri + Eroare la iniţializarea bazei de date de blocuri Error initializing wallet database environment %s! - Eroare la initializarea mediului de baza de date a portofelului %s! + Eroare la iniţializarea mediului de bază de date a portofelului %s! Error loading block database @@ -2512,43 +2856,59 @@ Adresa: %4 Error: Disk space is low! - Eroare: Spațiu pe disc redus! + Eroare: Spaţiu pe disc redus! Failed to listen on any port. Use -listen=0 if you want this. - Am esuat ascultarea pe orice port. Folositi -listen=0 daca vreti asta. + Nu s-a reuşit ascultarea pe orice port. Folosiţi -listen=0 dacă vreţi asta. + + + If <category> is not supplied, output all debugging information. + Dacă <category> nu este furnizat, produce toate informaţiile de depanare. Importing... - Importare... + Import... Incorrect or no genesis block found. Wrong datadir for network? - Incorect sau nici un bloc de Geneza găsite. Directorul de retea greşit? + Incorect sau nici un bloc de geneza găsit. Directorul de retea greşit? Invalid -onion address: '%s' - Adresa -onion invalidă: '%s' + Adresa -onion nevalidă: '%s' Not enough file descriptors available. - Nu sunt destule descriptoare disponibile. + Nu sînt destule descriptoare disponibile. + + + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + Se conectează doar la noduri în reţeaua <net> (ipv4, ipv6 sau onion) Rebuild block chain index from current blk000??.dat files - Reconstruirea indexului lantului de block-uri din fisierele actuale blk000???.dat + Reconstruirea indexului lanţului de bloc din fişierele actuale blk000???.dat + + + Set database cache size in megabytes (%d to %d, default: %d) + Setează mărimea bazei de date cache în megaocteţi (%d la %d, implicit: %d) Set maximum block size in bytes (default: %d) - Setaţi dimensiunea maximă a unui block în bytes (implicit: %d) + Setaţi dimensiunea maximă a unui bloc în bytes (implicit: %d) Specify wallet file (within data directory) - Specifică fișierul wallet (în dosarul de date) + Specifică fişierul portofel (în dosarul de date) This is intended for regression testing tools and app development. - Este folosita pentru programe de testare a regresiei in algoritmi si dezvoltare de alte aplicatii. + Este folosită pentru programe de testare a regresiei în algoritmi şi dezvoltare de alte aplicaţii. + + + Use UPnP to map the listening port (default: %u) + Foloseşte mapare UPnP pentru asculatere port (implicit: %u) Verifying blocks... @@ -2564,83 +2924,199 @@ Adresa: %4 Wallet options: - Optiuni de portofel + Opţiuni portofel: You need to rebuild the database using -reindex to change -txindex - Trebuie să reconstruiești baza de date folosind -reindex pentru a schimba -txindex + Trebuie să reconstruiţi baza de date folosind -reindex pentru a schimba -txindex Imports blocks from external blk000??.dat file - Importă blocuri dintr-un fișier extern blk000??.dat + Importă blocuri dintr-un fişier extern blk000??.dat + + + Allow JSON-RPC connections from specified source. Valid for <ip> 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). This option can be specified multiple times + Permite conexiunile JSON-RPC din sursa specificată. Valid pentru <ip> sînt IP singulare (ex. 1.2.3.4), o reţea/mască-reţea (ex. 1.2.3.4/255.255.255.0) sau o reţea/CIDR (ex. 1.2.3.4/24). Această opţiune poate fi specificată de mai multe ori + + + An error occurred while setting up the RPC address %s port %u for listening: %s + A apărut o eroare la setarea adresei RPC %s portul %u pentru ascultare: %s + + + Cannot obtain a lock on data directory %s. Bitcoin Core is probably already running. + Nu se poate obţine blocarea folderului cu date %s. Nucleul Bitcoin probabil deja rulează. Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) - Executati comanda cand o alerta relevanta este primita sau vedem o bifurcatie foarte lunga (%s in cmd este inlocuti de mesaj) + Execută comanda cînd o alertă relevantă este primită sau vedem o bifurcaţie foarte lungă (%s în cmd este înlocuit de mesaj) + + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) + Setează mărimea pentru tranzacţiile prioritare/taxe mici în octeţi (implicit: %d) + + + 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. + Acest produs include programe dezvoltate de către Proiectul OpenSSL pentru a fi folosite în OpenSSL Toolkit <https://www.openssl.org/> şi programe criptografice scrise de către Eric Young şi programe UPnP scrise de către Thomas Bernard. + + + Accept public REST requests (default: %u) + Acceptă cererile publice REST (implicit: %u) + + + Connect through SOCKS5 proxy + Conectare prin proxy SOCKS5 + + + Copyright (C) 2009-%i The Bitcoin Core Developers + Copyright (C) 2009-%i Dezvoltatorii Bitcoin + + + Error reading from database, shutting down. + Eroare la citirea bazei de date. Oprire. + + + Error: Unsupported argument -tor found, use -onion. + Eroare: Argument nesuportat -tor găsit, folosiţi -onion. + + + Fee (in BTC/kB) to add to transactions you send (default: %s) + Taxa (în BTC/kB) de adăugat la tranzacţiile pe care le trimiteţi(implicit: %s) Information - Informație + Informaţie + + + Initialization sanity check failed. Bitcoin Core is shutting down. + Nu s-a reuşit iniţierea verificării sănătăţii. Nucleul Bitcoin se opreşte. + + + Invalid amount for -maxtxfee=<amount>: '%s' + Sumă nevalidă pentru -maxtxfee=<suma>: '%s' Invalid amount for -minrelaytxfee=<amount>: '%s' - Suma invalida pentru -minrelaytxfee=<suma>:'%s' + Sumă nevalidă pentru -minrelaytxfee=<suma>:'%s' Invalid amount for -mintxfee=<amount>: '%s' - Suma invalida pentru -mintxfee=<suma>: '%s' + Sumă nevalidă pentru -mintxfee=<suma>: '%s' + + + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + Sumă nevalidă pentru -paytxfee=<suma>: '%s' (trebuie să fie cel puţin %s) + + + Invalid netmask specified in -whitelist: '%s' + Mască reţea nevalidă specificată în -whitelist: '%s' + + + Need to specify a port with -whitebind: '%s' + Trebuie să specificaţi un port cu -whitebind: '%s' + + + RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) + Opţiuni RPC SSL: (vedeţi Wiki Bitcoin pentru intrucţiunile de setare SSL) RPC server options: - Opțiuni server RPC: + Opţiuni server RPC: + + + RPC support for HTTP persistent connections (default: %d) + RPC suportă pentru HTTP conexiuni persistente (implicit: %d) + + + Randomly drop 1 of every <n> network messages + Aleator sccapă 1 din fiecare <n> mesaje ale reţelei + + + Randomly fuzz 1 of every <n> network messages + Aleator aproximează 1 din fiecare <n> mesaje ale reţelei Send trace/debug info to console instead of debug.log file - Trimite informațiile trace/debug la consolă în locul fișierului debug.log + Trimite informaţiile trace/debug la consolă în locul fişierului debug.log + + + Send transactions as zero-fee transactions if possible (default: %u) + Trimitere tranzacţii ca tranzacţii taxă-zero dacă este posibil (implicit: %u) + + + Show all debugging options (usage: --help -help-debug) + Arată toate opţiunile de depanare (uz: --help -help-debug) Shrink debug.log file on client startup (default: 1 when no -debug) - Micsorati fisierul debug.log la inceperea clientului (implicit: 1 cand nu -debug) + Micşorează fişierul debug.log la pornirea clientului (implicit: 1 cînd nu se foloseşte -debug) Signing transaction failed - Semnarea tranzacției a eșuat + Nu s-a reuşit semnarea tranzacţiei + + + This is experimental software. + Acesta este un program experimental. Transaction amount too small - Suma tranzacționată este prea mică + Suma tranzacţionată este prea mică Transaction amounts must be positive - Sumele tranzacționate trebuie să fie pozitive + Sumele tranzacţionate trebuie să fie pozitive + + + Transaction too large for fee policy + Tranzacţie prea mare pentru politică gratis Transaction too large - Tranzacția este prea mare + Tranzacţie prea mare + + + Unable to bind to %s on this computer (bind returned error %s) + Nu se poate lega la %s pe acest calculator. (Legarea a întors eroarea %s) Use UPnP to map the listening port (default: 1 when listening) - Foloseste UPnP pentru a vedea porturile (initial: 1 cand listezi) + Foloseşte UPnP pentru a vedea porturile (implicit: 1 cînd ascultă) Username for JSON-RPC connections Utilizator pentru conexiunile JSON-RPC + Wallet needed to be rewritten: restart Bitcoin Core to complete + Portofelul necesită rescrierea: reporniţi Nucleul Bitcoin pentru completare + + Warning - Avertizare + Avertisment Warning: This version is obsolete, upgrade required! - Atenție: această versiune este depășită, este necesară actualizarea! + Atenţie: această versiune este depăşită, este necesară actualizarea! + + + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + Avertisment: Argument nesuportat -benchmark ignorat, folosiţi -debug=bench. + + + Warning: Unsupported argument -debugnet ignored, use -debug=net. + Avertisment: Argument nesuportat -debugnet ignorat, folosiţi -debug=net. + + + Zapping all transactions from wallet... + Şterge toate tranzacţiile din portofel... on startup - in timpul pornirii + la pornire wallet.dat corrupt, salvage failed - wallet.dat corupt, recuperare eșuată + wallet.dat corupt, salvare nereuşită Password for JSON-RPC connections @@ -2648,7 +3124,7 @@ Adresa: %4 Execute command when the best block changes (%s in cmd is replaced by block hash) - Execută comanda când cel mai bun bloc se modifică (%s în cmd este înlocuit cu hash-ul blocului) + Execută comanda cînd cel mai bun bloc se modifică (%s în cmd este înlocuit cu hash-ul blocului) Upgrade wallet to latest format @@ -2656,11 +3132,11 @@ Adresa: %4 Rescan the block chain for missing wallet transactions - Rescanează lanțul de bloc pentru tranzacțiile portofel lipsă + Rescanează lanţul de bloc pentru tranzacţiile portofel lipsă Use OpenSSL (https) for JSON-RPC connections - Folosește OpenSSL (https) pentru conexiunile JSON-RPC + Foloseşte OpenSSL (https) pentru conexiunile JSON-RPC This help message @@ -2668,27 +3144,75 @@ Adresa: %4 Allow DNS lookups for -addnode, -seednode and -connect - Permite căutări DNS pentru -addnode, -seednode și -connect + Permite căutări DNS pentru -addnode, -seednode şi -connect Loading addresses... - Încarc adrese... + Încărcare adrese... Error loading wallet.dat: Wallet corrupted Eroare la încărcarea wallet.dat: Portofel corupt + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + Goleşte baza de date a activităţii din memoria pool în jurnal pe disc la fiecare <n> megaocteţi (implicit: %u) + + + Output debugging information (default: %u, supplying <category> is optional) + Produce toate informaţiile de depanare (implicit: %u <category> furnizată este opţională) + + + (default: %s) + (implicit: %s) + + + Acceptable ciphers (default: %s) + Cifruri acceptabile (implicit: %s) + + Error loading wallet.dat Eroare la încărcarea wallet.dat + Force safe mode (default: %u) + Forţează mod sigur (implicit: %u) + + + Generate coins (default: %u) + Generează monede (implicit: %u) + + + How many blocks to check at startup (default: %u, 0 = all) + Cîte blocuri verifică la pornire (implicit: %u, 0 = toate) + + Invalid -proxy address: '%s' Adresa -proxy nevalidă: '%s' + Server certificate file (default: %s) + Fişierul certificat al serverului (implicit: %s) + + + Server private key (default: %s) + Cheia privată a serverului (implicit: %s) + + + Set minimum block size in bytes (default: %u) + Setare mărime minimă bloc în octeţi (implicit: %u) + + + Specify configuration file (default: %s) + Specificaţi fişierul configuraţie (implicit: %s) + + + Specify pid file (default: %s) + Specifică fişierul pid (implicit: %s) + + Unknown network specified in -onlynet: '%s' - Rețeaua specificată în -onlynet este necunoscută: '%s' + Reţeaua specificată în -onlynet este necunoscută: '%s' Cannot resolve -bind address: '%s' @@ -2708,15 +3232,15 @@ Adresa: %4 Loading block index... - Încarc indice bloc... + Încărcare index bloc... Add a node to connect to and attempt to keep the connection open - Adaugă un nod la care te poți conecta pentru a menține conexiunea deschisă + Adaugă un nod la care te poţi conecta pentru a menţine conexiunea deschisă Loading wallet... - Încarc portofel... + Încărcare portofel... Cannot downgrade wallet @@ -2728,7 +3252,7 @@ Adresa: %4 Rescanning... - Rescanez... + Rescanare... Done loading diff --git a/src/qt/locale/bitcoin_ru.ts b/src/qt/locale/bitcoin_ru.ts index ec533b233c4..7c44317df59 100644 --- a/src/qt/locale/bitcoin_ru.ts +++ b/src/qt/locale/bitcoin_ru.ts @@ -1,4 +1,4 @@ - + AddressBookPage @@ -420,7 +420,7 @@ %n active connection(s) to Bitcoin network - %n активное соединение с сетью%n активных соединений с сетью%n активных соединений с сетью Bitcoin + %n активное соединение с сетью%n активных соединений с сетью%n активных соединений с сетью Bitcoin%n активных соединений с сетью Bitcoin No block source available... @@ -428,15 +428,15 @@ %n hour(s) - %n час%n часа%n часов + %n час%n часа%n часов%n часов %n day(s) - %n день%n дня%n дней + %n день%n дня%n дней%n дней %n week(s) - %n неделя%n недели%n недель + %n неделя%n недели%n недель%n недель %1 and %2 @@ -444,7 +444,7 @@ %n year(s) - %n год%n лет%n года + %n год%n лет%n года%n года %1 behind @@ -476,7 +476,7 @@ Processed %n blocks of transaction history. - Обработан %n блок истории транзакций.Обработано %n блока истории транзакций.Обработано %n блоков истории транзакций. + Обработан %n блок истории транзакций.Обработано %n блока истории транзакций.Обработано %n блоков истории транзакций.Обработано %n блоков истории транзакций. Catching up... @@ -914,11 +914,11 @@ Address: %4 %n GB of free space available - %nГБ свободного места доступно%nГБ свободного места доступно%nГБ свободного места доступно + %nГБ свободного места доступно%nГБ свободного места доступно%nГБ свободного места доступно%nГБ свободного места доступно (of %n GB needed) - (из необходимых %nГБ)(из необходимых %nГБ)(из необходимых %nГБ) + (из необходимых %nГБ)(из необходимых %nГБ)(из необходимых %nГБ)(из необходимых %nГБ) @@ -1285,8 +1285,8 @@ Address: %4 Возврат от %1 - Payment request %2 is too large (%3 bytes, allowed %4 bytes). - Запрос платежа %2 слишком большой (%3 байтов, разрешено %4 байтов). + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + Запрос платежа %1 слишком большой (%2 байтов, разрешено %3 байтов). Payment request DoS protection @@ -2332,7 +2332,7 @@ Address: %4 , broadcast through %n node(s) - , разослано через %n узел, разослано через %n узла, разослано через %n узлов + , разослано через %n узел, разослано через %n узла, разослано через %n узлов, разослано через %n узлов Date @@ -2372,7 +2372,7 @@ Address: %4 matures in %n more block(s) - будет доступно через %n блокбудет доступно через %n блокабудет доступно через %n блоков + будет доступно через %n блокбудет доступно через %n блокабудет доступно через %n блоковбудет доступно через %n блоков not accepted @@ -2448,7 +2448,7 @@ Address: %4 Open for %n more block(s) - Открыто для ещё %n блокаОткрыто для ещё %n блоковОткрыто для ещё %n блоков + Открыто для ещё %n блокаОткрыто для ещё %n блоковОткрыто для ещё %n блоковОткрыто для ещё %n блоков unknown @@ -2486,7 +2486,7 @@ Address: %4 Open for %n more block(s) - Открыто для ещё %n блокаОткрыто для ещё %n блоковОткрыто для ещё %n блоков + Открыто для ещё %n блокаОткрыто для ещё %n блоковОткрыто для ещё %n блоковОткрыто для ещё %n блоков Open until %1 @@ -3075,6 +3075,10 @@ Address: %4 Запрашивать адреса участников с помощью DNS, если адресов мало (по умолчанию: 1, если не указан -connect) + Require high priority for relaying free or low-fee transactions (default:%u) + Требовать высокий приоритет для пересылки бесплатных или низкокомиссионных транзакций (по умолчанию: %u) + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) Задать максимальный размер высокоприоритетных/низкокомиссионных транзакций в байтах (по умолчанию: %d) @@ -3147,6 +3151,10 @@ rpcpassword=%s Ошибка загрузки wallet.dat: бумажник требует более новую версию Bitcoin Core + Error reading from database, shutting down. + Ошибка чтения базы данных, работа завершается. + + Error: Unsupported argument -tor found, use -onion. Ошибка: обнаружен неподдерживаемый параметр -tor, используйте -onion. @@ -3203,6 +3211,10 @@ rpcpassword=%s Параметры сервера RPC: + RPC support for HTTP persistent connections (default: %d) + Поддержка RPC постоянных HTTP подключений (по умолчанию: %d) + + Randomly drop 1 of every <n> network messages Случайно отбрасывать 1 из каждых <n> сетевых сообщений diff --git a/src/qt/locale/bitcoin_sah.ts b/src/qt/locale/bitcoin_sah.ts index 9ca08ee7da7..6cc17f480af 100644 --- a/src/qt/locale/bitcoin_sah.ts +++ b/src/qt/locale/bitcoin_sah.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_sk.ts b/src/qt/locale/bitcoin_sk.ts index c390d24b4c9..a017c489b65 100644 --- a/src/qt/locale/bitcoin_sk.ts +++ b/src/qt/locale/bitcoin_sk.ts @@ -1,4 +1,4 @@ - + AddressBookPage @@ -284,11 +284,11 @@ &Sending addresses... - Posielajúca adresa ... + &Odosielajúce adresy ... &Receiving addresses... - Prijímajúca adresa... + &Prijímajúce adresy... Open &URI... @@ -440,7 +440,7 @@ %n week(s) - %n týždeň%n týždne%n týždňov + %n týždňom%n týždňami%n týždňami %1 and %2 @@ -460,7 +460,7 @@ Transactions after this will not yet be visible. - Transakcie potom nebudú ešte viditeľné. + Transakcie po tomto čase ešte nebudú viditeľné. Error @@ -480,7 +480,7 @@ Processed %n blocks of transaction history. - Spracovaný %n blok tranzakčnej histórieSpracované %n bloky tranzakčnej histórieSpracovaných %n blokov tranzakčnej histórie + Spracovaný %n blok transakčnej histórie.Spracované %n bloky transakčnej histórie.Spracovaných %n blokov transakčnej histórie. Catching up... @@ -963,7 +963,7 @@ Adresa: %4 Size of &database cache - Veľkosť vyrovnávacej pamäti databázy + Veľkosť vyrovnávacej pamäti &databázy MB @@ -971,7 +971,7 @@ Adresa: %4 Number of script &verification threads - Počet skript overujucich vlákien + Počet &vlákien overujúcich skript Accept connections from outside @@ -1023,7 +1023,7 @@ Adresa: %4 Enable coin &control features - Povoliť možnosti coin control + Povoliť možnosti "&coin control" If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed. @@ -1042,6 +1042,14 @@ Adresa: %4 Mapovať port pomocou &UPnP + Connect to the Bitcoin network through a SOCKS5 proxy. + Pripojiť do siete Bitcoin cez proxy server SOCKS5. + + + &Connect through SOCKS5 proxy (default proxy): + &Pripojiť cez proxy server SOCKS5 (predvolený proxy). + + Proxy &IP: Proxy &IP: @@ -1142,7 +1150,7 @@ Adresa: %4 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. - Zobrazené informácie môžu byť neaktuápne. Vaša peňaženka sa automaticky synchronizuje so sieťou Bitcoin po nadviazaní spojenia ale tento proces ešte nieje ukončený. + Zobrazené informácie môžu byť neaktuálne. Vaša peňaženka sa automaticky synchronizuje so sieťou Bitcoin po nadviazaní spojenia, ale tento proces ešte nie je ukončený. Available: @@ -1154,7 +1162,7 @@ Adresa: %4 Pending: - Čakajúce potvrdenie + Čakajúce potvrdenie: Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance @@ -1169,6 +1177,10 @@ Adresa: %4 Vytvorený zostatok ktorý ešte nedosiahol zrelosť + Balances + Stav účtu + + Total: Celkovo: @@ -1177,6 +1189,10 @@ Adresa: %4 Váš súčasný celkový zostatok + Recent transactions + Nedávne transakcie + + out of sync nesynchronizované @@ -1239,10 +1255,18 @@ Adresa: %4 PeerTableModel + User Agent + Aplikácia + + Address/Hostname Adresa/Názov počítača - + + Ping Time + Čas odozvy + + QObject @@ -1320,6 +1344,10 @@ Adresa: %4 Používa OpenSSL verziu + Using BerkeleyDB version + Používa BerkeleyDB verziu + + Startup time Čas spustenia @@ -1344,10 +1372,42 @@ Adresa: %4 Aktuálny počet blokov + Received + Prijaté + + + Sent + Odoslané + + + Select a peer to view detailed information. + Vyberte počítač pre zobrazenie podrobností. + + + Direction + Smer + + Version Verzia + User Agent + Aplikácia + + + Services + Služby + + + Starting Height + Počiatočná výška + + + Connection Time + Dĺžka spojenia + + Bytes Sent Odoslaných bajtov @@ -1356,6 +1416,10 @@ Adresa: %4 Prijatých bajtov + Ping Time + Čas odozvy + + Last block time Čas posledného bloku @@ -1369,7 +1433,7 @@ Adresa: %4 &Network Traffic - Sieťová prevádzka + &Sieťová prevádzka &Clear @@ -1405,11 +1469,11 @@ Adresa: %4 Welcome to the Bitcoin RPC console. - Vitajte v Bitcoin RPC konzole. Baník, pyčo! + Vitajte v Bitcoin RPC konzole. Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Použi šipky hore a dolu pre navigáciu históriou a <b>Ctrl-L</b> pre vyčistenie obrazovky. + Použi šípky hore a dolu pre navigáciu históriou a <b>Ctrl-L</b> pre vyčistenie obrazovky. Type <b>help</b> for an overview of available commands. @@ -1431,7 +1495,19 @@ Adresa: %4 %1 GB %1 GB - + + Inbound + Prichádzajúce + + + Outbound + Odchádzajúce + + + Fetching... + Získava sa... + + ReceiveCoinsDialog @@ -1660,6 +1736,74 @@ Adresa: %4 Vlastná adresa zmeny + Transaction Fee: + Poplatok za transakciu: + + + collapse fee-settings + zbaliť nastavenia poplatkov + + + Minimize + Minimalizovať + + + 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. + Ak je poplatok nastavený na 1000 satoshi a transakcia je veľká len 250 bajtov, potom "za kilobajt" zaplatí poplatok 250 satoshi, ale "aspoň" zaplatí 1000 satoshi. Pre transakcie väčšie ako kilobajt platia oba spôsoby za každý kilobajt. + + + per kilobyte + za kilobajt + + + 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. + Ak je poplatok nastavený na 1000 satoshi a transakcia je veľká len 250 bajtov, potom "za kilobajt" zaplatí poplatok 250 satoshi, ale "spolu aspoň" zaplatí 1000 satoshi. Pre transakcie väčšie ako kilobajt platia oba spôsoby za každý kilobajt. + + + total at least + spolu aspoň + + + 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. + Zaplatenie len minimálneho poplatku je v poriadku, pokiaľ existuje menej transakcií ako miesta v blokoch. Uvedomte si však, že ak bude vyšší dopyt po transakciách ako dokáže sieť spracovať, môže byť vaša transakcia odsúvaná a nepotvrdená donekonečna. + + + (read the tooltip) + (prečítajte si nápovedu pod kurzorom) + + + Recommended: + Odporúčaný: + + + Custom: + Vlastný: + + + (Smart fee not initialized yet. This usually takes a few blocks...) + (Automatický poplatok ešte nebol aktivovaný. Toto zvyčajne trvá niekoľko blokov...) + + + Confirmation time: + Čas potvrdenia: + + + normal + normálne + + + fast + rýchle + + + Send as zero-fee transaction if possible + Poslať ako transakciu bez poplatku, ak je to možné + + + (confirmation may take longer) + (potvrdenie môže trvať dlhšie) + + Send to multiple recipients at once Poslať viacerým príjemcom naraz @@ -1764,6 +1908,14 @@ Adresa: %4 Transakcia bola zamietnutá! Toto sa môže stať ak niektoré coins vo vašej peňaženke už boli minuté, ako keď použijete kópiu wallet.dat a coins boli minuté z kópie ale neoznačené ako minuté tu. + A fee higher than %1 is considered an insanely high fee. + Poplatok vyšší ako %1 je považovaný za šialene vysoký. + + + Pay only the minimum fee of %1 + Zaplatiť minimálny poplatok %1 + + Warning: Invalid Bitcoin address Varovanie: Nesprávna Bitcoin adresa @@ -2459,7 +2611,7 @@ Adresa: %4 Connect to a node to retrieve peer addresses, and disconnect - Pripojiť sa k nóde, získať adresy ďaľších počítačov v sieti a odpojit sa. + Pripojiť sa k uzlu, získať adresy ďalších počítačov v sieti a odpojiť sa Specify your own public address @@ -2521,7 +2673,7 @@ The network does not appear to fully agree! Some miners appear to be experiencin Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. - Varovanie: Zjavne sa úplne nezhodujeme s našimi peer-mi! Možno potrebujete prejsť na novšiu verziu alebo ostatné nódy potrebujú vyššiu verziu. + Varovanie: Zjavne sa úplne nezhodujeme s našimi peer-mi! Možno potrebujete prejsť na novšiu verziu alebo ostatné uzly potrebujú vyššiu verziu. Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. @@ -2625,7 +2777,7 @@ The network does not appear to fully agree! Some miners appear to be experiencin Set database cache size in megabytes (%d to %d, default: %d) - Nastaviť veľkosť pomocnej pamäti databázy v megabajtoch (%d na %d, prednatavené: %d) + Nastaviť veľkosť pomocnej pamäti databázy v megabajtoch (%d do %d, prednastavené: %d) Set maximum block size in bytes (default: %d) @@ -2668,14 +2820,46 @@ The network does not appear to fully agree! Some miners appear to be experiencin Neviem uzamknúť data adresár %s. Jadro Bitcoin je pravdepodobne už spustené. + Error: Listening for incoming connections failed (listen returned error %s) + Chyba: Počúvanie prichádzajúcich spojení zlyhalo (vrátená chyba je %s) + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) - Vykonať príkaz keď po prijatí patričné varovanie alebo vidíme veľmi dlhé rozdvojenie siete (%s v cmd je nahradené správou) + Vykonať príkaz po prijatí patričného varovania alebo uvidíme veľmi dlhé rozdvojenie siete (%s v cmd je nahradené správou) + + + Fees (in BTC/Kb) smaller than this are considered zero fee for relaying (default: %s) + Poplatky (v BTC/Kb) nižšie ako toľkoto sa považujú za nulové pri postupovaní transakcií (predvolené: %s) + + + Fees (in BTC/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + Poplatky (v BTC/Kb) nižšie ako toľkoto sa považujú za nulové pri vytváraní transakcií (predvolené: %s) + + + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + + + Require high priority for relaying free or low-fee transactions (default:%u) + Vyžadovať vysokú prioritu pre postúpenie transakcií s nízkymi poplatkami (predvolené:%u) Set maximum size of high-priority/low-fee transactions in bytes (default: %d) Nastaviť najväčšiu veľkosť vysoká-dôležitosť/nízke-poplatky transakcií v bajtoch (prednastavené: %d) + Connect through SOCKS5 proxy + Pripojiť cez proxy server SOCKS5 + + + Error loading wallet.dat: Wallet requires newer version of Bitcoin Core + Chyba pri čítaní wallet.dat: Peňaženka vyžaduje vyššiu verziu Jadra Bitcoin + + + Fee (in BTC/kB) to add to transactions you send (default: %s) + Poplatok (v BTC/kB), ktorý sa pridá k transakciám, ktoré odosielate (predvolený: %s) + + Information Informácia @@ -2708,6 +2892,10 @@ The network does not appear to fully agree! Some miners appear to be experiencin Odoslať trace/debug informácie na konzolu namiesto debug.info žurnálu + Send transactions as zero-fee transactions if possible (default: %u) + Poslať ako transakcie bez poplatku, ak je to možné (predvolené: %u) + + Show all debugging options (usage: --help -help-debug) Zobraziť všetky možnosti ladenia (použitie: --help --help-debug) @@ -2720,6 +2908,10 @@ The network does not appear to fully agree! Some miners appear to be experiencin Podpísanie správy zlyhalo + This is experimental software. + Toto je experimentálny softvér. + + Transaction amount too small Suma transakcie príliš malá @@ -2728,6 +2920,10 @@ The network does not appear to fully agree! Some miners appear to be experiencin Hodnoty transakcie musia byť väčšie ako nula (pozitívne) + Transaction too large for fee policy + Transakcia je príliš veľká pre aktuálne podmienky poplatkov + + Transaction too large Transakcia príliš veľká @@ -2796,6 +2992,14 @@ The network does not appear to fully agree! Some miners appear to be experiencin Chyba načítania wallet.dat: Peňaženka je poškodená + Log transaction priority and fee per kB when mining blocks (default: %u) + Zaznamenať prioritu transakcie a poplatok za kB pri ťažení blokov (predvolené: %u) + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + Použiť samostatný SOCKS5 proxy server na dosiahnutie počítačov cez skryté služby Tor (predvolené: %s) + + Error loading wallet.dat Chyba načítania wallet.dat @@ -2804,6 +3008,10 @@ The network does not appear to fully agree! Some miners appear to be experiencin Neplatná adresa proxy: '%s' + Maintain at most <n> connections to peers (default: %u) + Udržiavať najviac <n> spojení s inými počítačmi (predvolené: %u) + + Unknown network specified in -onlynet: '%s' Neznáma sieť upresnená v -onlynet: '%s' diff --git a/src/qt/locale/bitcoin_sl_SI.ts b/src/qt/locale/bitcoin_sl_SI.ts index e0945cde06e..3a65c106042 100644 --- a/src/qt/locale/bitcoin_sl_SI.ts +++ b/src/qt/locale/bitcoin_sl_SI.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_sq.ts b/src/qt/locale/bitcoin_sq.ts index 2249d52136b..82c0a61701c 100644 --- a/src/qt/locale/bitcoin_sq.ts +++ b/src/qt/locale/bitcoin_sq.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_sr.ts b/src/qt/locale/bitcoin_sr.ts index 9f72c66d7ff..842b3f90ab0 100644 --- a/src/qt/locale/bitcoin_sr.ts +++ b/src/qt/locale/bitcoin_sr.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_sv.ts b/src/qt/locale/bitcoin_sv.ts index 7d87ff89c5f..0ed914fdcf9 100644 --- a/src/qt/locale/bitcoin_sv.ts +++ b/src/qt/locale/bitcoin_sv.ts @@ -1,9 +1,9 @@ - + AddressBookPage Right-click to edit address or label - Höger-klicka för att ändra adressen eller etiketten. + Högerklicka för att ändra adressen eller etiketten. Create a new address @@ -1286,8 +1286,8 @@ Adress: %4 Återbetalning från %1 - Payment request %2 is too large (%3 bytes, allowed %4 bytes). - Betalningsbegäran %2 är för stor (%3 bytes, tillåten %4 bytes) + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + Betalningsbegäran %1 är för stor (%2 bytes, tillåten %3 bytes) Payment request DoS protection @@ -3080,6 +3080,11 @@ Adress: %4 Sök efter klientadresser med DNS sökningen, om det finns otillräckligt med adresser (förvalt: 1 om inte -connect) + Require high priority for relaying free or low-fee transactions (default:%u) + Begär hög-prioritet för relätrafik eller lågavgifts transaktioner +(förvalt: %u) + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) Sätt den maximala storleken av hög-prioriterade/låg-avgifts transaktioner i byte (förvalt: %d) @@ -3148,6 +3153,10 @@ till exempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Fel vid inläsningen av wallet.dat: Kontofilen kräver en senare version av Bitcoin Core + Error reading from database, shutting down. + Fel vid läsning från databas, avslutar. + + Error: Unsupported argument -tor found, use -onion. Fel: Argumentet -tor stöds inte, använd -onion. @@ -3204,6 +3213,10 @@ till exempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com RPC serveroptioner: + RPC support for HTTP persistent connections (default: %d) + RPC support för HTTP permanent anslutning (förvalt: %d) + + Randomly drop 1 of every <n> network messages Slumpmässigt tappa 1 av varje <n> nåtverksmeddelande diff --git a/src/qt/locale/bitcoin_th_TH.ts b/src/qt/locale/bitcoin_th_TH.ts index 1acf784af7f..9535ac6a01a 100644 --- a/src/qt/locale/bitcoin_th_TH.ts +++ b/src/qt/locale/bitcoin_th_TH.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_tr.ts b/src/qt/locale/bitcoin_tr.ts index c562d027c14..dc5762bc056 100644 --- a/src/qt/locale/bitcoin_tr.ts +++ b/src/qt/locale/bitcoin_tr.ts @@ -1,4 +1,4 @@ - + AddressBookPage @@ -1289,10 +1289,6 @@ Adres: %4 %1 öğesinden iade - Payment request %2 is too large (%3 bytes, allowed %4 bytes). - %2 ödeme talebi çok büyüktür (%3 bayt, müsaade edilen %4 bayt). - - Payment request DoS protection Ödeme talebi DoS koruması diff --git a/src/qt/locale/bitcoin_uk.ts b/src/qt/locale/bitcoin_uk.ts index fc0db5b49ac..809f8e2d249 100644 --- a/src/qt/locale/bitcoin_uk.ts +++ b/src/qt/locale/bitcoin_uk.ts @@ -1,4 +1,4 @@ - + AddressBookPage @@ -1289,10 +1289,6 @@ Address: %4 Відшкодування з %1 - Payment request %2 is too large (%3 bytes, allowed %4 bytes). - Запит до оплати %2 занадто великий (%3 байт, дозволено %4 байт) - - Payment request DoS protection Оплата потребує захисту DoS diff --git a/src/qt/locale/bitcoin_ur_PK.ts b/src/qt/locale/bitcoin_ur_PK.ts index 414ff8354fd..edf0190f57d 100644 --- a/src/qt/locale/bitcoin_ur_PK.ts +++ b/src/qt/locale/bitcoin_ur_PK.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_uz@Cyrl.ts b/src/qt/locale/bitcoin_uz@Cyrl.ts index 62d4c1322f7..54592fe9021 100644 --- a/src/qt/locale/bitcoin_uz@Cyrl.ts +++ b/src/qt/locale/bitcoin_uz@Cyrl.ts @@ -1,4 +1,4 @@ - + AddressBookPage @@ -1388,6 +1388,26 @@ Address: %4 Сўралган тўлов тарихи + &Request payment + Тўловни &сўраш + + + Show the selected request (does the same as double clicking an entry) + Танланган сўровни кўрсатиш (икки марта босилганда ҳам бир хил амал бажарилсин) + + + Show + Кўрсатиш + + + Remove the selected entries from the list + Танланганларни рўйхатдан ўчириш + + + Remove + Ўчириш + + Copy label Ёрликни нусхала diff --git a/src/qt/locale/bitcoin_vi.ts b/src/qt/locale/bitcoin_vi.ts index 7b362491c2b..56962bc5ada 100644 --- a/src/qt/locale/bitcoin_vi.ts +++ b/src/qt/locale/bitcoin_vi.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_vi_VN.ts b/src/qt/locale/bitcoin_vi_VN.ts index c1c51dd35f5..0c4476b4fc3 100644 --- a/src/qt/locale/bitcoin_vi_VN.ts +++ b/src/qt/locale/bitcoin_vi_VN.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_zh_CN.ts b/src/qt/locale/bitcoin_zh_CN.ts index 5f5a32e6596..ddc8168ad93 100644 --- a/src/qt/locale/bitcoin_zh_CN.ts +++ b/src/qt/locale/bitcoin_zh_CN.ts @@ -1,4 +1,4 @@ - + AddressBookPage @@ -1290,8 +1290,8 @@ Address: %4 退款来自 %1 - Payment request %2 is too large (%3 bytes, allowed %4 bytes). - 支付请求 %2 太大 (%3 字节。只允许 %4 字节)。 + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + 支付请求 %1 太大 (%2 字节。只允许 %3 字节)。 Payment request DoS protection @@ -3094,6 +3094,10 @@ Address: %4 通过DNS查询每个地址,如果短地址 (默认值: 1 除非 -连接) + Require high priority for relaying free or low-fee transactions (default:%u) + 对交易免费或低交易费请求高优先级 (默认:%u) + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) 设置 高优先级/低交易费 交易的最大字节 (缺省: %d) @@ -3166,6 +3170,10 @@ rpcpassword=%s 加载wallet.dat错误:需要新版的比特币核心钱包 + Error reading from database, shutting down. + 读取数据库出错,关闭中。 + + Error: Unsupported argument -tor found, use -onion. 错误:发现了不支持的参数 -tor,请使用 -onion。 @@ -3218,6 +3226,10 @@ rpcpassword=%s RPC 服务器选项: + RPC support for HTTP persistent connections (default: %d) + RPC 支持 HTTP 持久连接 (默认: %d) + + Randomly drop 1 of every <n> network messages 随机每1个丢失测试<n>网络信息 diff --git a/src/qt/locale/bitcoin_zh_HK.ts b/src/qt/locale/bitcoin_zh_HK.ts index 7062377f45e..dfdbb7d1da0 100644 --- a/src/qt/locale/bitcoin_zh_HK.ts +++ b/src/qt/locale/bitcoin_zh_HK.ts @@ -1,4 +1,4 @@ - + AddressBookPage diff --git a/src/qt/locale/bitcoin_zh_TW.ts b/src/qt/locale/bitcoin_zh_TW.ts index db39b3fc6b9..606eded663a 100644 --- a/src/qt/locale/bitcoin_zh_TW.ts +++ b/src/qt/locale/bitcoin_zh_TW.ts @@ -1,4 +1,4 @@ - + AddressBookPage @@ -344,11 +344,11 @@ &Send - 付款 + 已傳送 &Receive - 收款 + 已接收 Show information about Bitcoin Core @@ -804,7 +804,7 @@ Address: %4 FreespaceChecker A new data directory will be created. - 就要造出新的資料目錄。 + 就要產生新的資料目錄。 name @@ -1289,8 +1289,8 @@ Address: %4 來自 %1 的退款 - Payment request %2 is too large (%3 bytes, allowed %4 bytes). - 付款要求 %2 過大 (%3 位元組, 上限 %4 位元組). + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + 付款要求 %1 過大 (%2 位元組, 上限 %3 位元組). Payment request DoS protection @@ -3084,6 +3084,10 @@ Address: %4 是否允許在節點位址數目不足時,使用域名查詢來搜尋節點 (預設值: 當沒用 -connect 時為 1) + Require high priority for relaying free or low-fee transactions (default:%u) + 沒有手續費或手續費比較低的交易是否必須要是高優先權才會轉發(預設值: %u) + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) 設定高優先度或低手續費的交易資料大小上限成多少位元組(預設值: %d) @@ -3156,6 +3160,10 @@ rpcpassword=%s 載入 wallet.dat 檔案時發生錯誤: 這個錢包需要新版的位元幣核心 + Error reading from database, shutting down. + 讀取資料庫時發生錯誤,要關閉了。 + + Error: Unsupported argument -tor found, use -onion. 錯誤: 找到不再支援的 -tor 參數,請改用 -onion 參數。 @@ -3169,7 +3177,7 @@ rpcpassword=%s Initialization sanity check failed. Bitcoin Core is shutting down. - 初始化時的基本檢查失敗了。位元幣核心將會關閉。 + 初始化時的基本檢查失敗了。位元幣核心就要關閉了。 Invalid amount for -maxtxfee=<amount>: '%s' @@ -3212,6 +3220,10 @@ rpcpassword=%s RPC 伺服器選項: + RPC support for HTTP persistent connections (default: %d) + RPC 是否支援 HTTP 持久連線(預設值: %d) + + Randomly drop 1 of every <n> network messages 隨機丟掉 <n> 分之一的網路訊息 From 824c011d165cc352088f8e238f66b829b0e654ed Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Tue, 28 Apr 2015 11:38:50 -0400 Subject: [PATCH 124/201] wallet: fix boost::get usage with boost 1.58 Backport from master --- src/rpcrawtransaction.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rpcrawtransaction.cpp b/src/rpcrawtransaction.cpp index 1b9b1a0e1f3..e243dae421e 100644 --- a/src/rpcrawtransaction.cpp +++ b/src/rpcrawtransaction.cpp @@ -287,7 +287,7 @@ Value listunspent(const Array& params, bool fHelp) if (pk.IsPayToScriptHash()) { CTxDestination address; if (ExtractDestination(pk, address)) { - const CScriptID& hash = boost::get(address); + const CScriptID& hash = boost::get(address); CScript redeemScript; if (pwalletMain->GetCScript(hash, redeemScript)) entry.push_back(Pair("redeemScript", HexStr(redeemScript.begin(), redeemScript.end()))); From 424ae6629bd0fcf615cc4e969742297990306dc6 Mon Sep 17 00:00:00 2001 From: Jonas Schnelli Date: Fri, 1 May 2015 13:32:25 +0200 Subject: [PATCH 125/201] don't imbue boost::filesystem::path with locale "C" on windows fixes https://github.com/bitcoin/bitcoin/issues/6078 Github-Pull: #6093 Rebased-From: b3ffcdf91608d4435acfb9b0a6266a4073ffaf7f 3da78490073b04f52f0136e17b07246cc37bedf1 --- src/util.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/util.cpp b/src/util.cpp index 4fea18b3068..3316c172a70 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -713,18 +713,20 @@ void RenameThread(const char* name) void SetupEnvironment() { - std::locale loc("C"); // On most POSIX systems (e.g. Linux, but not BSD) the environment's locale // may be invalid, in which case the "C" locale is used as fallback. #if !defined(WIN32) && !defined(MAC_OSX) && !defined(__FreeBSD__) && !defined(__OpenBSD__) try { - loc = std::locale(""); // Raises a runtime error if current locale is invalid + std::locale(""); // Raises a runtime error if current locale is invalid } catch (const std::runtime_error&) { setenv("LC_ALL", "C", 1); } #endif - // The path locale is lazy initialized and to avoid deinitialization errors + // The path locale is lazy initialized and to avoid deinitialization errors // in multithreading environments, it is set explicitly by the main thread. + // A dummy locale is used to extract the internal default locale, used by + // boost::filesystem::path, which is then used to explicitly imbue the path. + std::locale loc = boost::filesystem::path::imbue(std::locale::classic()); boost::filesystem::path::imbue(loc); } From d7e772765801eb67934de8e60eab040cdb600b33 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Tue, 12 May 2015 16:23:53 +0200 Subject: [PATCH 126/201] Preparations for 0.10.2 release --- configure.ac | 2 +- doc/Doxyfile | 2 +- doc/README.md | 2 +- doc/README_windows.txt | 2 +- doc/release-notes.md | 39 ++++----------------------------------- src/clientversion.h | 2 +- 6 files changed, 9 insertions(+), 40 deletions(-) diff --git a/configure.ac b/configure.ac index 695e4665f51..579035f59a1 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N) AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 0) define(_CLIENT_VERSION_MINOR, 10) -define(_CLIENT_VERSION_REVISION, 1) +define(_CLIENT_VERSION_REVISION, 2) define(_CLIENT_VERSION_BUILD, 0) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2015) diff --git a/doc/Doxyfile b/doc/Doxyfile index aee5dbe079a..92b304a448e 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -34,7 +34,7 @@ PROJECT_NAME = Bitcoin # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = 0.10.1 +PROJECT_NUMBER = 0.10.2 # 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 diff --git a/doc/README.md b/doc/README.md index 78a59af5b98..effa0e86399 100644 --- a/doc/README.md +++ b/doc/README.md @@ -1,4 +1,4 @@ -Bitcoin Core 0.10.1 +Bitcoin Core 0.10.2 ===================== Setup diff --git a/doc/README_windows.txt b/doc/README_windows.txt index b854505e901..9065f436219 100644 --- a/doc/README_windows.txt +++ b/doc/README_windows.txt @@ -1,4 +1,4 @@ -Bitcoin Core 0.10.1 +Bitcoin Core 0.10.2 ===================== Intro diff --git a/doc/release-notes.md b/doc/release-notes.md index 5e939600a06..55d6eb024e8 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,8 +1,8 @@ -Bitcoin Core version 0.10.1 is now available from: +Bitcoin Core version 0.10.2 is now available from: - + -This is a new minor version release, bringing bug fixes and translation +This is a new minor version release, bringing minor bug fixes and translation updates. It is recommended to upgrade to this version. Please report bugs using the issue tracker at github: @@ -50,60 +50,29 @@ This is a minor release and hence there are no notable changes. For the notable changes in 0.10, refer to the release notes for the 0.10.0 release at https://github.com/bitcoin/bitcoin/blob/v0.10.0/doc/release-notes.md -0.10.1 Change log +0.10.2 Change log ================= Detailed release notes follow. This overview includes changes that affect external behavior, not code moves, refactors or string updates. RPC: -- `7f502be` fix crash: createmultisig and addmultisigaddress -- `eae305f` Fix missing lock in submitblock Block (database) and transaction handling: -- `1d2cdd2` Fix InvalidateBlock to add chainActive.Tip to setBlockIndexCandidates -- `c91c660` fix InvalidateBlock to repopulate setBlockIndexCandidates -- `002c8a2` fix possible block db breakage during re-index -- `a1f425b` Add (optional) consistency check for the block chain data structures -- `1c62e84` Keep mempool consistent during block-reorgs -- `57d1f46` Fix CheckBlockIndex for reindex -- `bac6fca` Set nSequenceId when a block is fully linked P2P protocol and network code: -- `78f64ef` don't trickle for whitelisted nodes -- `ca301bf` Reduce fingerprinting through timestamps in 'addr' messages. -- `200f293` Ignore getaddr messages on Outbound connections. -- `d5d8998` Limit message sizes before transfer -- `aeb9279` Better fingerprinting protection for non-main-chain getdatas. -- `cf0218f` Make addrman's bucket placement deterministic (countermeasure 1 against eclipse attacks, see http://cs-people.bu.edu/heilman/eclipse/) -- `0c6f334` Always use a 50% chance to choose between tried and new entries (countermeasure 2 against eclipse attacks) -- `214154e` Do not bias outgoing connections towards fresh addresses (countermeasure 2 against eclipse attacks) -- `aa587d4` Scale up addrman (countermeasure 6 against eclipse attacks) -- `139cd81` Cap nAttempts penalty at 8 and switch to pow instead of a division loop Validation: -- `d148f62` Acquire CCheckQueue's lock to avoid race condition Build system: -- `8752b5c` 0.10 fix for crashes on OSX 10.6 Wallet: -- N/A GUI: -- `2c08406` some mac specifiy cleanup (memory handling, unnecessary code) -- `81145a6` fix OSX dock icon window reopening -- `786cf72` fix a issue where "command line options"-action overwrite "Preference"-action (on OSX) Tests: -- `1117378` add RPC test for InvalidateBlock Miscellaneous: -- `c9e022b` Initialization: set Boost path locale in main thread -- `23126a0` Sanitize command strings before logging them. -- `323de27` Initialization: setup environment before starting QT tests -- `7494e09` Initialization: setup environment before starting tests -- `df45564` Initialization: set fallback locale as environment variable Credits ======= diff --git a/src/clientversion.h b/src/clientversion.h index a6b5a14faf0..e0bdea60e93 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -16,7 +16,7 @@ //! These need to be macros, as clientversion.cpp's and bitcoin*-res.rc's voodoo requires it #define CLIENT_VERSION_MAJOR 0 #define CLIENT_VERSION_MINOR 10 -#define CLIENT_VERSION_REVISION 1 +#define CLIENT_VERSION_REVISION 2 #define CLIENT_VERSION_BUILD 0 //! Set to true for release, false for prerelease or test build From 49e4d14f7587bca2785de0fd56c7dda2b0ffdfea Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Tue, 12 May 2015 16:33:04 +0200 Subject: [PATCH 127/201] Translations update --- src/qt/locale/bitcoin_be_BY.ts | 396 ++++++++++++++++++++++++++++++++++++++++- src/qt/locale/bitcoin_bg.ts | 212 +++++++++++++++++++++- src/qt/locale/bitcoin_et.ts | 260 ++++++++++++++++++++++++++- src/qt/locale/bitcoin_fr.ts | 16 +- src/qt/locale/bitcoin_pt_BR.ts | 6 +- 5 files changed, 875 insertions(+), 15 deletions(-) diff --git a/src/qt/locale/bitcoin_be_BY.ts b/src/qt/locale/bitcoin_be_BY.ts index 41c200dc0ce..0a048b580b7 100644 --- a/src/qt/locale/bitcoin_be_BY.ts +++ b/src/qt/locale/bitcoin_be_BY.ts @@ -2,6 +2,10 @@ AddressBookPage + Right-click to edit address or label + Правы клік, каб рэдагаваць адрас ці метку + + Create a new address Стварыць новы адрас @@ -62,10 +66,26 @@ адрасы Прымання + These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. + Тут знаходзяцца Біткойн-адрасы для высылання плацяжоў. Заўсёды спраўджвайце колькасць і адрас прызначэння перад здзяйсненнем транзакцыі. + + + These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Тут знаходзяцца Біткойн-адрасы для прымання плацяжоў. Пажадана выкарыстоўваць новы адрас для кожнай транзакцыі. + + + Copy &Label + Капіяваць Метку + + &Edit Рэдагаваць + Export Address List + Экспартаваць Спіс Адрасоў + + Comma separated file (*.csv) Коскамі падзелены файл (*.csv) @@ -73,7 +93,11 @@ Exporting Failed Экспартаванне няўдалае - + + There was an error trying to save the address list to %1. Please try again. + Адбылася памылка падчас спробы захаваць адрас у %1. Паспрабуйце зноў. + + AddressTableModel @@ -92,6 +116,10 @@ AskPassphraseDialog + Passphrase Dialog + Дыялог сакрэтнай фразы + + Enter passphrase Увядзіце кодавую фразу @@ -144,6 +172,10 @@ Ці ўпэўненыя вы, што жадаеце зашыфраваць свой гаманец? + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + ВАЖНА: Усе папярэднія копіі гаманца варта замяніць новым зашыфраваным файлам. У мэтах бяспекі папярэднія копіі незашыфраванага файла-гаманца стануць неўжывальнымі, калі вы станеце карыстацца новым зашыфраваным гаманцом. + + Warning: The Caps Lock key is on! Увага: Caps Lock уключаны! @@ -152,6 +184,10 @@ Гаманец зашыфраваны + 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>. + Увядзіце новы пароль для гаманца.<br/>Парольная фраза павинна складацца<b> не меньш чым з дзесяці сімвалаў</b>, ці <b>больш чым з васьмі слоў</b>. + + 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. Bitcoin зачыняецца дзеля завяршэння працэсса шыфравання. Памятайце, што шыфраванне гаманца цалкам абараняе вашыя сродкі ад скрадання шкоднымі праграмамі якія могуць пранікнуць у ваш камп'ютар. @@ -239,10 +275,42 @@ Зашыфраваць Гаманец... + &Backup Wallet... + Стварыць копію гаманца... + + + &Change Passphrase... + &Change Passphrase... + + + &Sending addresses... + Адрасы дасылання... + + + &Receiving addresses... + Адрасы прымання... + + Open &URI... Адчыниць &URI... + Bitcoin Core client + Bitcoin Core кліент + + + Importing blocks from disk... + Імпартуюцца блокі з дыску... + + + Reindexing blocks on disk... + Пераіндэксацыя блокаў на дыску... + + + Send coins to a Bitcoin address + Даслаць манеты на Біткойн-адрас + + Backup wallet to another location Зрабіце копію гаманца ў іншае месца @@ -255,6 +323,18 @@ Вакно адладкі + Open debugging and diagnostic console + Адкрыць кансоль дыягностыкі і адладкі + + + &Verify message... + Праверыць паведамленне... + + + Bitcoin + Біткойн + + Wallet Гаманец @@ -267,6 +347,10 @@ Атрымаць + Show information about Bitcoin Core + Паказаць інфармацыю аб Bitcoin Core + + &Show / Hide &Паказаць / Схаваць @@ -279,6 +363,14 @@ Зашыфраваць прыватныя ключы, якия належаць вашаму гаманцу + Sign messages with your Bitcoin addresses to prove you own them + Падпісаць паведамленне з дапамогай Біткойн-адраса каб даказаць, што яно належыць вам + + + Verify messages to ensure they were signed with specified Bitcoin addresses + Спраўдзіць паведамленне з дапамогай Біткойн-адраса каб даказаць, што яно належыць вам + + &File Ф&айл @@ -290,15 +382,59 @@ &Help Дапамога + + Request payments (generates QR codes and bitcoin: URIs) + Запатрабаваць плацёж (генеруецца QR-код для біткойн URI) + + + &About Bitcoin Core + Аб Bitcoin Core + + + Show the list of used sending addresses and labels + Паказаць спіс адрасоў і метак для дасылання + + + Show the list of used receiving addresses and labels + Паказаць спіс адрасоў і метак для прымання + + + &Command-line options + Опцыі каманднага радка + %n active connection(s) to Bitcoin network %n актыўнае злучэнне з Bitcoin-сецівам%n актыўных злучэнняў з Bitcoin-сецівам%n актыўных злучэнняў з Bitcoin-сецівам%n актыўных злучэнняў з Bitcoin-сецівам + No block source available... + Крыніца блокаў недасяжная... + + + %1 behind + %1 таму + + + Last received block was generated %1 ago. + Апошні прыняты блок генераваны %1 таму. + + + Transactions after this will not yet be visible. + Транзакцыи пасля гэтай не будуць бачныя. + + Error Памылка + Warning + Увага + + + Information + Інфармацыя + + Up to date Сінхранізавана @@ -337,14 +473,46 @@ Address: %4 ClientModel - + + Network Alert + Трывога Сеціва + + CoinControlDialog + Bytes: + Байтаў: + + Amount: Колькасць: + Priority: + Прыярытэт: + + + Fee: + Камісія: + + + Dust: + Пыл: + + + After Fee: + Пасля камісіі: + + + Tree mode + Рэжым дрэва + + + List mode + Рэжым спіса + + Amount Колькасць @@ -353,10 +521,18 @@ Address: %4 Дата + Confirmations + Пацверджанняў + + Confirmed Пацверджана + Priority + Прыярытэт + + Copy address Капіяваць адрас @@ -373,6 +549,50 @@ Address: %4 Капіяваць ID транзакцыі + highest + найвышэйшы + + + higher + вышэйшы + + + high + высокі + + + medium-high + вышэй сярэдняга + + + medium + сярэдні + + + low-medium + ніжэй сярэдняга + + + low + нізкі + + + lower + ніжэйшы + + + lowest + найніжэйшы + + + yes + так + + + no + не + + (no label) непазначаны @@ -434,19 +654,43 @@ Address: %4 Аб Bitcoin Core + Command-line options + Опцыі каманднага радка + + Usage: Ужыванне: + + command-line options + опцыі каманднага радка + + + Start minimized + Стартаваць ммінімізаванай + Intro + Welcome + Вітаем + + + Welcome to Bitcoin Core. + Вітаем у Bitcoin Core. + + Error Памылка OpenURIDialog + + Open URI + Адкрыць URI + OptionsDialog @@ -454,6 +698,10 @@ Address: %4 Options Опцыі + + MB + Мб + OverviewPage @@ -510,6 +758,10 @@ Address: %4 Label Пазнака + + Message + Паведамленне + RecentRequestsTableModel @@ -522,6 +774,10 @@ Address: %4 Пазнака + Message + Паведамленне + + Amount Колькасць @@ -537,14 +793,34 @@ Address: %4 Даслаць Манеты + Bytes: + Байтаў: + + Amount: Колькасць: + Priority: + Прыярытэт: + + + Fee: + Камісія: + + + After Fee: + Пасля камісіі: + + Send to multiple recipients at once Даслаць адразу некалькім атрымальнікам + Dust: + Пыл: + + Balance: Баланс: @@ -599,7 +875,11 @@ Address: %4 Alt+P Alt+P - + + Memo: + Памятка: + + ShutdownWindow @@ -631,10 +911,18 @@ Address: %4 TrafficGraphWidget - + + KB/s + Кб/с + + TransactionDesc + %1/offline + %1/offline + + %1/unconfirmed %1/непацверджана @@ -643,10 +931,22 @@ Address: %4 %1 пацверджанняў + Status + Статус + + Date Дата + Message + Паведамленне + + + Comment + Каментар + + Transaction ID ID @@ -911,14 +1211,98 @@ Address: %4 Ужываць тэставае сеціва + Do you want to rebuild the block database now? + Ці жадаеце вы перабудаваць зараз базу звестак блокаў? + + + Error initializing block database + Памылка ініцыялізацыі базвы звестак блокаў + + + Error initializing wallet database environment %s! + Памалка ініцыялізацыі асяроддзя базы звестак гаманца %s! + + + Error loading block database + Памылка загрузкі базвы звестак блокаў + + + Error opening block database + Памылка адчынення базы звестак блокаў + + + Error: A fatal internal error occured, see debug.log for details + Памылка: здарылася Фатальная унутраная памылка, глядзі debug.log для падрабязнасцяў + + + Error: Disk space is low! + Памылка: Замала вольнага месца на дыску! + + + Importing... + Імпартаванне... + + + Not enough file descriptors available. + Не хапае файлавых дэскрыптараў. + + + Use UPnP to map the listening port (default: %u) + Use UPnP to map the listening port (default: %u) + + + Verifying blocks... + Праверка блокаў... + + + Verifying wallet... + Праверка гаманца... + + + Wallet options: + Опцыі гаманца: + + + Imports blocks from external blk000??.dat file + Імпартаванне блокаў з вонкавага blk000??.dat файла + + + Information + Інфармацыя + + + RPC server options: + Опцыі RPC сервера: + + Send trace/debug info to console instead of debug.log file Слаць trace/debug звесткі ў кансоль замест файла debug.log + Signing transaction failed + Памылка подпісу транзакцыі + + + This is experimental software. + Гэта эксперыментальная праграма. + + + Transaction amount too small + Транзакцыя занадта малая + + + Transaction too large + Транзакцыя занадта вялікая + + Username for JSON-RPC connections Імя карыстальника для JSON-RPC злучэнняў + Warning + Увага + + Password for JSON-RPC connections Пароль для JSON-RPC злучэнняў @@ -963,6 +1347,10 @@ Address: %4 Загружаем гаманец... + Cannot downgrade wallet + Немагчыма рэгрэсаваць гаманец + + Rescanning... Перасканаванне... diff --git a/src/qt/locale/bitcoin_bg.ts b/src/qt/locale/bitcoin_bg.ts index 89200ff213f..5ef8bed6531 100644 --- a/src/qt/locale/bitcoin_bg.ts +++ b/src/qt/locale/bitcoin_bg.ts @@ -399,6 +399,10 @@ Покажи списък с използваните адреси и имена. + Open a bitcoin: URI or payment request + Отворете биткойн: URI или заявка за плащане + + &Command-line options &Налични команди @@ -458,6 +462,10 @@ Up to date Синхронизиран + + Processed %n blocks of transaction history. + Обслужени %n блокове от историята с транзакции.Обслужени %n блокове от историята с транзакции. + Catching up... Зарежда блокове... @@ -525,6 +533,10 @@ Address: %4 Такса: + Dust: + Прах: + + After Fee: След прилагане на ДДС @@ -617,6 +629,10 @@ Address: %4 Копиране на приоритет + Copy dust + Копирай прахта: + + Copy change Копирай рестото @@ -673,6 +689,10 @@ Address: %4 не + This means a fee of at least %1 per kB is required. + Това означава че се изисква такса от поне %1 на килобайт. + + Can vary +/- 1 byte per input. Може да варира с +-1 байт @@ -875,10 +895,22 @@ Address: %4 Мегабайта + Accept connections from outside + Приемай връзки отвън + + + Allow incoming connections + Позволи входящите връзки + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) IP адрес на прокси (напр. за IPv4: 127.0.0.1 / за IPv6: ::1) + Third party transaction URLs + URL адреси на трети страни + + Reset all client options to default. Възстановете всички настройки по подразбиране. @@ -971,6 +1003,10 @@ Address: %4 Изберете единиците, показвани по подразбиране в интерфейса. + Whether to show coin control features or not. + Дали да покаже възможностите за контрол на монетите или не. + + &OK ОК @@ -1018,6 +1054,10 @@ Address: %4 Текущата информация на екрана може да не е актуална. Вашият портфейл ще се синхронизира автоматично с мрежата на Биткоин, щом поне една връзката с нея се установи; този процес все още не е приключил. + Watch-only: + В наблюдателен режим: + + Available: Налично: @@ -1034,6 +1074,10 @@ Address: %4 Неразвит: + Mined balance that has not yet matured + Миниран баланс,който все още не се е развил + + Balances Баланс @@ -1061,14 +1105,50 @@ Address: %4 PaymentServer + URI handling + Справяне с URI + + + Invalid payment address %1 + Невалиден адрес на плащане %1 + + + Payment request rejected + Заявката за плащане беше отхвърлена + + + Payment request network doesn't match client network. + Мрежата от която се извършва заявката за плащане не съвпада с мрежата на клиента. + + + Payment request has expired. + Заявката за плащане е изтекла. + + Requested payment amount of %1 is too small (considered dust). Заявената сума за плащане: %1 е твърде малка (счита се за отпадък) + Payment request error + Възникна грешка по време назаявката за плащане + + + Cannot start bitcoin: click-to-pay handler + Биткойн не можe да се стартира: click-to-pay handler + + + Payment request file handling + Файл за справяне със заявки + + Refund from %1 Възстановяване на сума от %1 + Payment request DoS protection + Дос защита на заявката за плащане + + Error communicating with %1: %2 Грешка при комуникацията с %1: %2 @@ -1107,6 +1187,14 @@ Address: %4 Сума + Enter a Bitcoin address (e.g. %1) + Въведете Биткойн адрес (например: %1) + + + %1 d + %1 ден + + %1 h %1 час @@ -1245,6 +1333,30 @@ Address: %4 Услуги + Starting Height + Стартова височина + + + Connection Time + Продължителност на връзката + + + Last Send + Изпратени за последно + + + Last Receive + Получени за последно + + + Bytes Sent + Изпратени байтове + + + Bytes Received + Получени байтове + + Ping Time Време за отговор @@ -1324,7 +1436,31 @@ Address: %4 %1 GB %1 Гигабайт - + + via %1 + посредством %1 + + + never + Никога + + + Inbound + Входящи + + + Outbound + Изходящи + + + Unknown + Неизвестен + + + Fetching... + Прихващане... + + ReceiveCoinsDialog @@ -1513,6 +1649,18 @@ Address: %4 Ако тази опция е активирана,но адресът на промяна е празен или невалиден,промяната ще бъде изпратена на новосъздаден адрес. + Transaction Fee: + Такса за транзакцията: + + + Choose... + Избери... + + + Minimize + Минимизирай + + per kilobyte за килобайт @@ -1525,10 +1673,22 @@ Address: %4 Препоръчителна: + Custom: + По избор: + + Confirmation time: Време за потвърждение: + normal + нормален + + + fast + бърз + + Send to multiple recipients at once Изпращане към повече от един получател @@ -1541,6 +1701,10 @@ Address: %4 Изчисти всички полета от формуляра. + Dust: + Прах: + + Clear &All &Изчисти @@ -1637,6 +1801,10 @@ Address: %4 Внимание:Неизвестен адрес за промяна + Copy dust + Копирай прахта: + + Are you sure you want to send? Наистина ли искате да изпратите? @@ -1696,10 +1864,18 @@ Address: %4 Това е потвърдена транзакция. + This is an unverified payment request. + Това е непотвърдена заявка за плащане. + + Pay To: Плащане на: - + + Memo: + Бележка: + + ShutdownWindow @@ -2291,14 +2467,30 @@ Address: %4 Внимание: -paytxfee има голяма стойност! Това е таксата за транзакциите, която ще платите ако направите транзакция. + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + Сложете в бял списък пиъри,свързващи се от дадената интернет маска или айпи адрес.Може да бъде заложено неколкократно. + + (default: 1) (по подразбиране 1) + <category> can be: + <category> може да бъде: + + Connection options: Настройки на връзката: + Do you want to rebuild the block database now? + Желаете ли да пресъздадете базата данни с блокове сега? + + + Error initializing block database + Грешка в пускането на базата данни с блокове + + Error: Disk space is low! Грешка: мястото на диска е малко! @@ -2323,6 +2515,14 @@ Address: %4 Настройки на портфейла: + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + Заложете броя на нишки за генерация на монети ако е включено(-1 = всички ядра, по подразбиране: %d) + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Внимание: -maxtxfee има много висока стойност! Толкова високи такси могат да бъдат заплатени на една транзакция. + + Connect through SOCKS5 proxy Свързване чрез SOCKS5 прокси @@ -2419,6 +2619,14 @@ Address: %4 Назовете конфигурационен файл(по подразбиране %s) + Specify connection timeout in milliseconds (minimum: 1, default: %d) + Задайте време на изключване при проблеми със свързването в милисекунди(минимум:1, по подразбиране %d) + + + Specify pid file (default: %s) + Задайте pid файл(по подразбиране: %s) + + Invalid amount for -paytxfee=<amount>: '%s' Невалидна сума за -paytxfee=<amount>: '%s' diff --git a/src/qt/locale/bitcoin_et.ts b/src/qt/locale/bitcoin_et.ts index f1e5c2715c8..a5504e7f0d6 100644 --- a/src/qt/locale/bitcoin_et.ts +++ b/src/qt/locale/bitcoin_et.ts @@ -6,6 +6,10 @@ Loo uus aadress + &New + &Uus + + Copy the currently selected address to the system clipboard Kopeeri märgistatud aadress vahemällu @@ -14,6 +18,10 @@ &Kopeeri + C&lose + S&ulge + + &Copy Address &Aadressi kopeerimine @@ -26,10 +34,18 @@ Ekspordi kuvatava vahelehe sisu faili + &Export + &Ekspordi + + &Delete &Kustuta + C&hoose + V&ali + + These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. Need on sinu Bitcoini aadressid maksete saatmiseks. Müntide saatmisel kontrolli alati summat ning saaja aadressi. @@ -45,6 +61,10 @@ Comma separated file (*.csv) Komaeraldatud fail (*.csv) + + Exporting Failed + Eksportimine Ebaõnnestus + AddressTableModel @@ -223,6 +243,10 @@ &Salafraasi muutmine + Open &URI... + Ava &URI... + + Importing blocks from disk... Impordi blokid kettalt... @@ -331,6 +355,10 @@ %n nädal%n nädalat + %1 and %2 + %1 ja %2 + + %1 behind %1 maas @@ -400,10 +428,18 @@ Aadress: %4⏎ CoinControlDialog + Quantity: + Kogus: + + Amount: Summa: + Fee: + Tasu: + + Amount Kogus @@ -432,6 +468,50 @@ Aadress: %4⏎ Kopeeri tehingu ID + Copy fee + Kopeeri tasu + + + highest + kõrgeim + + + higher + kõrgem + + + high + kõrge + + + medium + keskmine + + + low + madal + + + lower + madalam + + + lowest + madalaim + + + (%1 locked) + (%1 lukustatud) + + + yes + jah + + + no + ei + + (no label) (silti pole) @@ -485,6 +565,10 @@ Aadress: %4⏎ FreespaceChecker + + name + nimi + HelpMessageDialog @@ -532,6 +616,10 @@ Aadress: %4⏎ Intro + Welcome + Teretulemast + + Bitcoin Core Bitcoini tuumik @@ -542,6 +630,14 @@ Aadress: %4⏎ OpenURIDialog + + Open URI + Ava URI + + + URI: + URI: + OptionsDialog @@ -558,6 +654,10 @@ Aadress: %4⏎ &Start Bitcoin sisselogimisel + MB + MB + + Reset all client options to default. Taasta kõik klientprogrammi seadete vaikeväärtused. @@ -570,6 +670,14 @@ Aadress: %4⏎ &Võrk + W&allet + R&ahakott + + + Expert + Ekspert + + Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. Bitcoini kliendi pordi automaatne avamine ruuteris. Toimib, kui sinu ruuter aktsepteerib UPnP ühendust. @@ -669,6 +777,10 @@ Aadress: %4⏎ Mitte aegunud mine'itud jääk + Recent transactions + Hiljutised tehingud + + out of sync sünkimata @@ -724,6 +836,10 @@ Aadress: %4⏎ &Informatsioon + General + Üldine + + Using OpenSSL version Kasutan OpenSSL versiooni @@ -736,6 +852,10 @@ Aadress: %4⏎ Võrgustik + Name + Nimi + + Number of connections Ühenduste arv @@ -748,6 +868,26 @@ Aadress: %4⏎ Plokkide hetkearv + Received + Vastuvõetud + + + Sent + Saadetud + + + Direction + Suund + + + Version + Versioon + + + Services + Teenused + + Last block time Viimane ploki aeg @@ -787,18 +927,54 @@ Aadress: %4⏎ Type <b>help</b> for an overview of available commands. Ülevaateks võimalikest käsklustest trüki <b>help</b>. + + %1 B + %1 B + + + %1 KB + %1 B + + + %1 MB + %1 MB + + + %1 GB + %1 GB + ReceiveCoinsDialog + &Amount: + &Summa: + + &Label: &Märgis + &Message: + &Sõnum: + + + Show + Näita + + + Remove + Eemalda + + Copy label Märgise kopeerimine + Copy message + Kopeeri sõnum + + Copy amount Kopeeri summa @@ -852,7 +1028,15 @@ Aadress: %4⏎ (no label) (silti pole) - + + (no message) + (sõnum puudub) + + + (no amount) + (summa puudub) + + SendCoinsDialog @@ -860,10 +1044,34 @@ Aadress: %4⏎ Müntide saatmine + Quantity: + Kogus: + + Amount: Summa: + Fee: + Tasu: + + + Choose... + Vali... + + + Recommended: + Soovitatud: + + + normal + normaalne + + + fast + kiire + + Send to multiple recipients at once Saatmine mitmele korraga @@ -896,6 +1104,14 @@ Aadress: %4⏎ Kopeeri summa + Copy fee + Kopeeri tasu + + + or + või + + The recipient address is not valid, please recheck. Saaja aadress ei ole kehtiv, palun kontrolli. @@ -1102,7 +1318,11 @@ Aadress: %4⏎ TrafficGraphWidget - + + KB/s + KB/s + + TransactionDesc @@ -1399,6 +1619,10 @@ Aadress: %4⏎ Kuva tehingu detailid + Exporting Failed + Eksportimine Ebaõnnestus + + Comma separated file (*.csv) Komaeraldatud fail (*.csv) @@ -1451,6 +1675,10 @@ Aadress: %4⏎ WalletView + &Export + &Ekspordi + + Export the data in the current tab to a file Ekspordi kuvatava vahelehe sisu faili @@ -1590,6 +1818,10 @@ Aadress: %4⏎ Kontrollin rahakotti... + Wallet options: + Rahakoti valikud: + + Imports blocks from external blk000??.dat file Impordi blokid välisest blk000??.dat failist @@ -1598,6 +1830,10 @@ Aadress: %4⏎ Informatsioon + RPC server options: + RPC serveri valikud: + + Send trace/debug info to console instead of debug.log file Saada jälitus/debug, debug.log faili asemel, konsooli @@ -1606,6 +1842,18 @@ Aadress: %4⏎ Kahanda programmi käivitamisel debug.log faili (vaikeväärtus: 1, kui ei ole -debug) + Signing transaction failed + Tehingu allkirjastamine ebaõnnestus + + + Transaction amount too small + Tehingu summa liiga väikene + + + Transaction too large + Tehing liiga suur + + Use UPnP to map the listening port (default: 1 when listening) Kasuta kuulatava pordi määramiseks UPnP ühendust (vaikeväärtus: 1, kui kuulatakse) @@ -1622,6 +1870,10 @@ Aadress: %4⏎ Hoiatus: versioon on aegunud, uuendus on nõutav! + on startup + käivitamisel + + wallet.dat corrupt, salvage failed wallet.dat fail on katki, päästmine ebaõnnestus @@ -1662,6 +1914,10 @@ Aadress: %4⏎ Viga wallet.dat käivitamisel. Vigane rahakkott + (default: %s) + (vaikimisi: %s) + + Error loading wallet.dat Viga wallet.dat käivitamisel diff --git a/src/qt/locale/bitcoin_fr.ts b/src/qt/locale/bitcoin_fr.ts index df0c507a44e..e775f1ba045 100644 --- a/src/qt/locale/bitcoin_fr.ts +++ b/src/qt/locale/bitcoin_fr.ts @@ -729,6 +729,10 @@ Adresse : %4 Cette étiquette devient rouge si la priorité est plus basse que « moyenne » + This label turns red, if any recipient receives an amount smaller than %1. + Cette étiquette devient rouge si un destinataire reçoit un montant inférieur à %1. + + (no label) (aucune étiquette) @@ -952,7 +956,7 @@ Adresse : %4 Automatically start Bitcoin after logging in to the system. - Démarrer Bitcoin automatiquement après avoir ouvert une session sur l'ordinateur. + Démarrer Bitcoin automatiquement après avoir ouvert une session sur le système. &Start Bitcoin on system login @@ -1128,7 +1132,7 @@ Adresse : %4 Client will be shutdown, do you want to proceed? - Le client sera arrêté, voulez-vous continuer? + Le client sera arrêté, voulez-vous continuer ? This change would require a client restart. @@ -2010,7 +2014,7 @@ Adresse : %4 Duplicate address found, can only send to each address once per send operation. - Adresse indentique trouvée, il n'est possible d'envoyer qu'une fois à chaque adresse par opération d'envoi. + Adresse identique trouvée. Il n'est possible d'envoyer qu'une fois à chaque adresse, par opération d'envoi. Transaction creation failed! @@ -2155,7 +2159,7 @@ Adresse : %4 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. - Vous pouvez signer des messages avec vos adresses pour prouver que vous les détenez. Faites attention de ne pas signer de vague car des attaques d'hameçonnage peuvent essayer d'usurper votre identité par votre signature. Ne signez que des déclarations entièrement détaillées et avec lesquelles vous serez d'accord. + Vous pouvez signer des messages avec vos adresses pour prouver que vous les détenez. Faites attention de ne rien signer de vague, car des attaques d'hameçonnage pourraient essayer de vous faire signer avec votre identité afin de l'usurper. Ne signez que des déclarations entièrement détaillées et avec lesquelles vous êtes d'accord. The Bitcoin address to sign the message with @@ -2211,7 +2215,7 @@ Adresse : %4 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. - Saisir ci-dessous l'adresse de signature, le message (assurez-vous d'avoir copié exactement les retours à la ligne, les espaces, tabulations etc.) et la signature pour vérifier le message. Faire attention à ne pas déduire davantage de la signature que ce qui est contenu dans le message signé lui-même pour éviter d'être trompé par une attaque d'homme du milieu. + Saisir ci-dessous l'adresse de signature, le message (assurez-vous d'avoir copié exactement les retours à la ligne, les espaces, tabulations etc.) et la signature pour vérifier le message. Faire attention à ne pas déduire davantage de la signature que ce qui est contenu dans le message signé même, pour éviter d'être trompé par une attaque d'homme du milieu. The Bitcoin address the message was signed with @@ -3072,7 +3076,7 @@ Adresse : %4 Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) - Total maximal des frais à utiliser en une seule transaction de portefeuille. Le définir trop bas pourrait empêcher les grosses transactions (par défaut : %s) + Total maximal des frais à utiliser en une seule transaction de portefeuille. Le définir trop bas pourrait interrompre les grosses transactions (par défaut : %s) Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) diff --git a/src/qt/locale/bitcoin_pt_BR.ts b/src/qt/locale/bitcoin_pt_BR.ts index bc85f1f3160..6570ca3f507 100644 --- a/src/qt/locale/bitcoin_pt_BR.ts +++ b/src/qt/locale/bitcoin_pt_BR.ts @@ -1272,6 +1272,10 @@ Endereço: %4 Reembolso de %1 + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + Pedido de pagamento %1 é muito grande (%2 bytes, permitido %3 bytes). + + Payment request DoS protection Pagamento requer proteção DoS @@ -1837,7 +1841,7 @@ Endereço: %4 Choose... - Escolha: + Escolher Minimize From da656068ec1f77591ae8ace78f283eb7cb74e46a Mon Sep 17 00:00:00 2001 From: Gregory Maxwell Date: Tue, 28 Apr 2015 17:00:50 -0700 Subject: [PATCH 128/201] Avoid crash on start in TestBlockValidity with gen=1. When the internal miner is enabled at the start of a new node, there is an near instant assert in TestBlockValidity because its attempting to mine a block before the top checkpoint. Also avoids a data race around vNodes. Github-Pull: #6123 Rebased-From: bba7c249296a9a2f444e1035fef8f8b593ba2aaf --- src/miner.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/miner.cpp b/src/miner.cpp index ad294314212..8efcdb91013 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -456,8 +456,16 @@ void static BitcoinMiner(CWallet *pwallet) if (Params().MiningRequiresPeers()) { // Busy-wait for the network to come online so we don't waste time mining // on an obsolete chain. In regtest mode we expect to fly solo. - while (vNodes.empty()) + do { + bool fvNodesEmpty; + { + LOCK(cs_vNodes); + fvNodesEmpty = vNodes.empty(); + } + if (!fvNodesEmpty && !IsInitialBlockDownload()) + break; MilliSleep(1000); + } while (true); } // @@ -570,6 +578,11 @@ void static BitcoinMiner(CWallet *pwallet) LogPrintf("BitcoinMiner terminated\n"); throw; } + catch (const std::runtime_error &e) + { + LogPrintf("BitcoinMiner runtime error: %s\n", e.what()); + return; + } } void GenerateBitcoins(bool fGenerate, CWallet* pwallet, int nThreads) From ff325032678df25920fe0345701f714ad2f21c61 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Tue, 12 May 2015 17:08:36 +0200 Subject: [PATCH 129/201] Release notes 0.10.2 --- doc/release-notes.md | 54 ++++++++++++++-------------------------------------- 1 file changed, 14 insertions(+), 40 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index 55d6eb024e8..9d6daa2feb0 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -46,9 +46,13 @@ This does not affect wallet forward or backward compatibility. Notable changes =============== -This is a minor release and hence there are no notable changes. -For the notable changes in 0.10, refer to the release notes for the -0.10.0 release at https://github.com/bitcoin/bitcoin/blob/v0.10.0/doc/release-notes.md +This fixes a serious problem on Windows with usernames that have non-ASCII +characters (https://github.com/bitcoin/bitcoin/issues/6078). + +For other platforms there are no notable changes. + +For the notable changes in 0.10, refer to the release notes +at https://github.com/bitcoin/bitcoin/blob/v0.10.0/doc/release-notes.md 0.10.2 Change log ================= @@ -56,57 +60,27 @@ For the notable changes in 0.10, refer to the release notes for the Detailed release notes follow. This overview includes changes that affect external behavior, not code moves, refactors or string updates. -RPC: - -Block (database) and transaction handling: - -P2P protocol and network code: - -Validation: - -Build system: - Wallet: - -GUI: - -Tests: +- `824c011` fix boost::get usage with boost 1.58 Miscellaneous: +- `da65606` Avoid crash on start in TestBlockValidity with gen=1. +- `424ae66` don't imbue boost::filesystem::path with locale "C" on windows (fixes #6078) Credits ======= Thanks to everyone who directly contributed to this release: -- Alex Morcos - Cory Fields -- dexX7 -- fsb4000 -- Gavin Andresen - Gregory Maxwell -- Ivan Pustogarov - Jonas Schnelli -- Matt Corallo -- mrbandrews -- Pieter Wuille -- Ruben de Vries -- Suhas Daftuar - Wladimir J. van der Laan And all those who contributed additional code review and/or security research: -- 21E14 -- Alison Kendler -- Aviv Zohar -- Ethan Heilman -- Evil-Knievel -- fanquake -- Jeff Garzik -- Jonas Nick -- Luke Dashjr -- Patrick Strateman -- Philip Kaufmann -- Sergio Demian Lerner -- Sharon Goldberg + +- dexX7 +- Pieter Wuille +- vayvanne As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). From 16f45600c8c372a738ffef544292864256382601 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Sat, 16 May 2015 10:37:27 +0200 Subject: [PATCH 130/201] doc: small amandment to release notes --- doc/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index 9d6daa2feb0..192ed69d299 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -46,7 +46,7 @@ This does not affect wallet forward or backward compatibility. Notable changes =============== -This fixes a serious problem on Windows with usernames that have non-ASCII +This fixes a serious problem on Windows with data directories that have non-ASCII characters (https://github.com/bitcoin/bitcoin/issues/6078). For other platforms there are no notable changes. From e4a7d51537509dab765976f8642f9e15b84408bb Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Tue, 26 May 2015 08:59:13 +0200 Subject: [PATCH 131/201] Simplify code for CSubnet Simplify the code by using CAddress.ip directly, instead of the reversed GetByte() semantics. Rebased-From: 19e8d7be42039724b4893515ec6457d0187024a9 Github-Pull: #6186 --- src/netbase.cpp | 14 ++++++-------- src/netbase.h | 2 ++ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/netbase.cpp b/src/netbase.cpp index 053c645a1be..fe6e79efca3 100644 --- a/src/netbase.cpp +++ b/src/netbase.cpp @@ -1214,12 +1214,12 @@ CSubNet::CSubNet(const std::string &strSubnet, bool fAllowLookup) std::string strNetmask = strSubnet.substr(slash + 1); int32_t n; // IPv4 addresses start at offset 12, and first 12 bytes must match, so just offset n - int noffset = network.IsIPv4() ? (12 * 8) : 0; + const int astartofs = network.IsIPv4() ? 12 : 0; if (ParseInt32(strNetmask, &n)) // If valid number, assume /24 symtex { - if(n >= 0 && n <= (128 - noffset)) // Only valid if in range of bits of address + if(n >= 0 && n <= (128 - astartofs*8)) // Only valid if in range of bits of address { - n += noffset; + n += astartofs*8; // Clear bits [n..127] for (; n < 128; ++n) netmask[n>>3] &= ~(1<<(n&7)); @@ -1233,12 +1233,10 @@ CSubNet::CSubNet(const std::string &strSubnet, bool fAllowLookup) { if (LookupHost(strNetmask.c_str(), vIP, 1, false)) // Never allow lookup for netmask { - // Remember: GetByte returns bytes in reversed order // Copy only the *last* four bytes in case of IPv4, the rest of the mask should stay 1's as // we don't want pchIPv4 to be part of the mask. - int asize = network.IsIPv4() ? 4 : 16; - for(int x=0; x Date: Tue, 26 May 2015 08:59:20 +0200 Subject: [PATCH 132/201] Fix two problems in CSubNet parsing Fix two CSubNet constructor problems: - The use of `/x` where 8 does not divide x was broken, due to a bit-order issue - The use of e.g. `1.2.3.4/24` where the netmasked bits in the network are not 0 was broken. Fix this by explicitly normalizing the netwok according to the bitmask. Also add tests for these cases. Fixes #6179. Thanks to @jonasschnelli for reporting and initial fix. Rebased-From: b45c50ce511dbf541ea086ae40a3ad16ff06de0c Github-Pull: #6186 --- src/netbase.cpp | 6 +++++- src/test/netbase_tests.cpp | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/netbase.cpp b/src/netbase.cpp index fe6e79efca3..d7c263f3472 100644 --- a/src/netbase.cpp +++ b/src/netbase.cpp @@ -1222,7 +1222,7 @@ CSubNet::CSubNet(const std::string &strSubnet, bool fAllowLookup) n += astartofs*8; // Clear bits [n..127] for (; n < 128; ++n) - netmask[n>>3] &= ~(1<<(n&7)); + netmask[n>>3] &= ~(1<<(7-(n&7))); } else { @@ -1249,6 +1249,10 @@ CSubNet::CSubNet(const std::string &strSubnet, bool fAllowLookup) { valid = false; } + + // Normalize network according to netmask + for(int x=0; x<16; ++x) + network.ip[x] &= netmask[x]; } bool CSubNet::Match(const CNetAddr &addr) const diff --git a/src/test/netbase_tests.cpp b/src/test/netbase_tests.cpp index c26e7383842..d5188c3acc9 100644 --- a/src/test/netbase_tests.cpp +++ b/src/test/netbase_tests.cpp @@ -116,6 +116,11 @@ BOOST_AUTO_TEST_CASE(subnet_test) BOOST_CHECK(CSubNet("1:2:3:4:5:6:7:8").Match(CNetAddr("1:2:3:4:5:6:7:8"))); BOOST_CHECK(!CSubNet("1:2:3:4:5:6:7:8").Match(CNetAddr("1:2:3:4:5:6:7:9"))); BOOST_CHECK(CSubNet("1:2:3:4:5:6:7:0/112").Match(CNetAddr("1:2:3:4:5:6:7:1234"))); + BOOST_CHECK(CSubNet("192.168.0.1/24").Match(CNetAddr("192.168.0.2"))); + BOOST_CHECK(CSubNet("192.168.0.20/29").Match(CNetAddr("192.168.0.18"))); + BOOST_CHECK(CSubNet("1.2.2.1/24").Match(CNetAddr("1.2.2.4"))); + BOOST_CHECK(CSubNet("1.2.2.110/31").Match(CNetAddr("1.2.2.111"))); + BOOST_CHECK(CSubNet("1.2.2.20/26").Match(CNetAddr("1.2.2.63"))); // All-Matching IPv6 Matches arbitrary IPv4 and IPv6 BOOST_CHECK(CSubNet("::/0").Match(CNetAddr("1:2:3:4:5:6:7:1234"))); BOOST_CHECK(CSubNet("::/0").Match(CNetAddr("1.2.3.4"))); From ebd7d8d78c2d89ceaf40894cedd6b21fb8bebe96 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Mon, 18 May 2015 11:21:32 +0200 Subject: [PATCH 133/201] Parameter interaction: disable upnp if -proxy set To protect privacy, do not use UPNP when a proxy is set. The user may still specify -listen=1 to listen locally (for a hidden service), so don't rely on this happening through -listen. Fixes #2927. Conflicts: src/init.cpp Rebased-From: 8c35b6f3be218101630101806300cfd75be23f58 Github-Pull: #6153 --- src/init.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/init.cpp b/src/init.cpp index 9ff87ad1e6a..00c8e399e8f 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -593,7 +593,11 @@ bool AppInit2(boost::thread_group& threadGroup) if (mapArgs.count("-proxy")) { // to protect privacy, do not listen by default if a default proxy server is specified if (SoftSetBoolArg("-listen", false)) - LogPrintf("AppInit2 : parameter interaction: -proxy set -> setting -listen=0\n"); + LogPrintf("%s: parameter interaction: -proxy set -> setting -listen=0\n", __func__); + // to protect privacy, do not use UPNP when a proxy is set. The user may still specify -listen=1 + // to listen locally, so don't rely on this happening through -listen below. + if (SoftSetBoolArg("-upnp", false)) + LogPrintf("%s: parameter interaction: -proxy set -> setting -upnp=0\n", __func__); // to protect privacy, do not discover addresses by default if (SoftSetBoolArg("-discover", false)) LogPrintf("AppInit2 : parameter interaction: -proxy set -> setting -discover=0\n"); From ecc96f5ba9af206d1eb69f41d4d04f4fd014eeb3 Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Sun, 31 May 2015 06:53:27 +0000 Subject: [PATCH 134/201] Remove P2SH coinbase flag, no longer interesting Github-Pull: #6203 Rebased-From: d449772cf69c01932fc5d72c46054815d6300b3c --- src/init.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/init.cpp b/src/init.cpp index 00c8e399e8f..ed05c157291 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -683,12 +683,6 @@ bool AppInit2(boost::thread_group& threadGroup) if (nConnectTimeout <= 0) nConnectTimeout = DEFAULT_CONNECT_TIMEOUT; - // Continue to put "/P2SH/" in the coinbase to monitor - // BIP16 support. - // This can be removed eventually... - const char* pszP2SH = "/P2SH/"; - COINBASE_FLAGS << std::vector(pszP2SH, pszP2SH+strlen(pszP2SH)); - // Fee-per-kilobyte amount considered the same as "free" // If you are mining, be careful setting this: // if you set it to zero then From 181771b71296ffc242a4301a472f5a7ad5f6cc76 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Wed, 3 Jun 2015 09:42:03 +0200 Subject: [PATCH 135/201] json: fail read_string if string contains trailing garbage Change `read_string` to fail when not the entire input has been consumed. This avoids unexpected, even dangerous behavior (fixes #6223). The new JSON parser adapted in #6121 also solves this problem so in master this is a temporary fix, but should be backported to older releases. Also adds tests for the new behavior. Github-Pull: #6226 Rebased-From: 4e157fc60dae5ca69933ea4c1585a2a078b4d957 --- src/json/json_spirit_reader_template.h | 6 +++--- src/test/rpc_tests.cpp | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/json/json_spirit_reader_template.h b/src/json/json_spirit_reader_template.h index 46f5892f62d..47e3c1ca843 100644 --- a/src/json/json_spirit_reader_template.h +++ b/src/json/json_spirit_reader_template.h @@ -521,12 +521,11 @@ namespace json_spirit const spirit_namespace::parse_info< Iter_type > info = spirit_namespace::parse( begin, end, - Json_grammer< Value_type, Iter_type >( semantic_actions ), + Json_grammer< Value_type, Iter_type >( semantic_actions ) >> spirit_namespace::end_p, spirit_namespace::space_p ); if( !info.hit ) { - assert( false ); // in theory exception should already have been thrown throw_error( info.stop, "error" ); } @@ -570,7 +569,8 @@ namespace json_spirit { typename String_type::const_iterator begin = s.begin(); - return read_range( begin, s.end(), value ); + bool success = read_range( begin, s.end(), value ); + return success && begin == s.end(); } template< class Istream_type > diff --git a/src/test/rpc_tests.cpp b/src/test/rpc_tests.cpp index d5475a92bfa..aed6e3ac215 100644 --- a/src/test/rpc_tests.cpp +++ b/src/test/rpc_tests.cpp @@ -139,6 +139,24 @@ BOOST_AUTO_TEST_CASE(rpc_parse_monetary_values) BOOST_CHECK_EQUAL(AmountFromValue(ValueFromString("20999999.99999999")), 2099999999999999LL); } +BOOST_AUTO_TEST_CASE(json_parse_errors) +{ + Value value; + // Valid + BOOST_CHECK_EQUAL(read_string(std::string("1.0"), value), true); + // Valid, with trailing whitespace + BOOST_CHECK_EQUAL(read_string(std::string("1.0 "), value), true); + // Invalid, initial garbage + BOOST_CHECK_EQUAL(read_string(std::string("[1.0"), value), false); + BOOST_CHECK_EQUAL(read_string(std::string("a1.0"), value), false); + // Invalid, trailing garbage + BOOST_CHECK_EQUAL(read_string(std::string("1.0sds"), value), false); + BOOST_CHECK_EQUAL(read_string(std::string("1.0]"), value), false); + // BTC addresses should fail parsing + BOOST_CHECK_EQUAL(read_string(std::string("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"), value), false); + BOOST_CHECK_EQUAL(read_string(std::string("3J98t1WpEZ73CNmQviecrnyiWrnqRhWNL"), value), false); +} + BOOST_AUTO_TEST_CASE(rpc_boostasiotocnetaddr) { // Check IPv4 addresses From 09334e04a90fa49b68f9d3b3e3c4d739de144876 Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Sat, 6 Jun 2015 14:23:38 +0000 Subject: [PATCH 136/201] configure: Detect (and reject) LibreSSL Rebased-From: a5a81f7354b3aa3e797d973a7e6840f0e50e6533 Github-Pull: #6244 --- configure.ac | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/configure.ac b/configure.ac index 579035f59a1..ba8fc08afdc 100644 --- a/configure.ac +++ b/configure.ac @@ -701,6 +701,14 @@ else fi fi +AC_CHECK_LIB([crypto],[RAND_egd],[],[ + AC_ARG_WITH([libressl], + [AS_HELP_STRING([--with-libressl],[Build with system LibreSSL (default is no; DANGEROUS; NOT SUPPORTED)])], + [AC_MSG_WARN([Detected LibreSSL: This is NOT supported, and may break consensus compatibility!])], + [AC_MSG_ERROR([Detected LibreSSL: This is NOT supported, and may break consensus compatibility!])] + ) +]) + CFLAGS_TEMP="$CFLAGS" LIBS_TEMP="$LIBS" CFLAGS="$CFLAGS $SSL_CFLAGS $CRYPTO_CFLAGS" From 0fd846445894e9641d6a908a3e87065ec4d9fef4 Mon Sep 17 00:00:00 2001 From: Tom Harding Date: Fri, 12 Jun 2015 14:07:43 -0700 Subject: [PATCH 137/201] Fix getbalance * Chance "getbalance *" not to use IsTrusted. The method and result now match the "getbalance " behavior. In particular, "getbalance * 0" now works. Also fixed a comment -- GetGalance has required 1 confirmation for many years, and the default "getbalance *" behavior matches that. Github-Pull: #6276 Rebased-From: 7d6a85ab5b1dc96e0f3f6f835f27bb81ba2af919 Rebased-By: @trasher- --- src/rpcwallet.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rpcwallet.cpp b/src/rpcwallet.cpp index e43eee1551a..ace67463110 100644 --- a/src/rpcwallet.cpp +++ b/src/rpcwallet.cpp @@ -665,12 +665,12 @@ Value getbalance(const Array& params, bool fHelp) if (params[0].get_str() == "*") { // Calculate total balance a different way from GetBalance() // (GetBalance() sums up all unspent TxOuts) - // getbalance and getbalance '*' 0 should return the same number + // getbalance and "getbalance * 1 true" should return the same number CAmount nBalance = 0; for (map::iterator it = pwalletMain->mapWallet.begin(); it != pwalletMain->mapWallet.end(); ++it) { const CWalletTx& wtx = (*it).second; - if (!wtx.IsTrusted() || wtx.GetBlocksToMaturity() > 0) + if (!IsFinalTx(wtx) || wtx.GetBlocksToMaturity() > 0 || wtx.GetDepthInMainChain() < 0) continue; CAmount allFee; From be6420407b37c4c45a42874ea3cd974605fb65dc Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Fri, 12 Jun 2015 12:00:39 +0200 Subject: [PATCH 138/201] Add option `-alerts` to opt out of alert system Make it possible to opt-out of the centralized alert system by providing an option `-noalerts` or `-alerts=0`. The default remains unchanged. This is a gentler form of #6260, in which I went a bit overboard by removing the alert system completely. I intend to add this to the GUI options in another pull after this. Conflicts: src/init.cpp src/main.cpp Github-Pull: #6274 Rebased-From: 02a6702a82a5b00e0e0351041dd3267308b7f319 --- src/init.cpp | 3 +++ src/main.cpp | 4 ++-- src/main.h | 3 +++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/init.cpp b/src/init.cpp index ed05c157291..85e4710c392 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -241,6 +241,7 @@ std::string HelpMessage(HelpMessageMode mode) string strUsage = _("Options:") + "\n"; strUsage += " -? " + _("This help message") + "\n"; strUsage += " -alertnotify= " + _("Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message)") + "\n"; + strUsage += " -alerts " + strprintf(_("Receive and display P2P network alerts (default: %u)"), DEFAULT_ALERTS); strUsage += " -blocknotify= " + _("Execute command when the best block changes (%s in cmd is replaced by block hash)") + "\n"; strUsage += " -checkblocks= " + strprintf(_("How many blocks to check at startup (default: %u, 0 = all)"), 288) + "\n"; strUsage += " -checklevel= " + strprintf(_("How thorough the block verification of -checkblocks is (0-4, default: %u)"), 3) + "\n"; @@ -745,6 +746,8 @@ bool AppInit2(boost::thread_group& threadGroup) fIsBareMultisigStd = GetArg("-permitbaremultisig", true) != 0; nMaxDatacarrierBytes = GetArg("-datacarriersize", nMaxDatacarrierBytes); + fAlerts = GetBoolArg("-alerts", DEFAULT_ALERTS); + // ********************************************************* Step 4: application initialization: dir lock, daemonize, pidfile, debug log // Sanity check diff --git a/src/main.cpp b/src/main.cpp index c37e1092ebf..4d287eec929 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -53,7 +53,7 @@ bool fTxIndex = false; bool fIsBareMultisigStd = true; bool fCheckBlockIndex = false; unsigned int nCoinCacheSize = 5000; - +bool fAlerts = DEFAULT_ALERTS; /** Fees smaller than this (in satoshi) are considered zero fee (for relaying and mining) */ CFeeRate minRelayTxFee = CFeeRate(1000); @@ -4265,7 +4265,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, } - else if (strCommand == "alert") + else if (fAlerts && strCommand == "alert") { CAlert alert; vRecv >> alert; diff --git a/src/main.h b/src/main.h index 71f21716d01..9a875a0750f 100644 --- a/src/main.h +++ b/src/main.h @@ -54,6 +54,8 @@ static const unsigned int DEFAULT_BLOCK_MAX_SIZE = 750000; static const unsigned int DEFAULT_BLOCK_MIN_SIZE = 0; /** Default for -blockprioritysize, maximum space for zero/low-fee transactions **/ static const unsigned int DEFAULT_BLOCK_PRIORITY_SIZE = 50000; +/** Default for accepting alerts from the P2P network. */ +static const bool DEFAULT_ALERTS = true; /** The maximum size for transactions we're willing to relay/mine */ static const unsigned int MAX_STANDARD_TX_SIZE = 100000; /** The maximum allowed number of signature check operations in a block (network rule) */ @@ -129,6 +131,7 @@ extern bool fIsBareMultisigStd; extern bool fCheckBlockIndex; extern unsigned int nCoinCacheSize; extern CFeeRate minRelayTxFee; +extern bool fAlerts; /** Best header we've seen so far (used for getheaders queries' starting points). */ extern CBlockIndex *pindexBestHeader; From 3f5563877a493a3a2060659ebe4b7aae62a17d84 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Mon, 22 Jun 2015 08:52:11 +0200 Subject: [PATCH 139/201] doc: update mailing list address Move from sourceforge to linux foundation. Also get rid of some other stale mentions of sourceforge. Github-Pull: #6319 Rebased-From: 88d8525ca2ff2afc171cd0f625a098371f3a6af5 --- README.md | 2 +- contrib/debian/copyright | 3 +-- contrib/gitian-downloader/linux-download-config | 2 +- contrib/gitian-downloader/win32-download-config | 2 +- doc/dnsseed-policy.md | 3 ++- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index fb9c0b6d77c..d59767d4ccf 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ development team members simply pulls it. If it is a *more complicated or potentially controversial* change, then the patch submitter will be asked to start a discussion (if they haven't already) on the -[mailing list](http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development). +[mailing list](https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev) The patch will be accepted if there is broad consensus that it is a good thing. Developers should expect to rework and resubmit patches if the code doesn't diff --git a/contrib/debian/copyright b/contrib/debian/copyright index a6ee201991c..b45222e5d30 100644 --- a/contrib/debian/copyright +++ b/contrib/debian/copyright @@ -2,8 +2,7 @@ Format: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?rev=174 Upstream-Name: Bitcoin Upstream-Contact: Satoshi Nakamoto irc://#bitcoin@freenode.net -Source: http://sourceforge.net/projects/bitcoin/files/ - https://github.com/bitcoin/bitcoin +Source: https://github.com/bitcoin/bitcoin Files: * Copyright: 2009-2012, Bitcoin Core Developers diff --git a/contrib/gitian-downloader/linux-download-config b/contrib/gitian-downloader/linux-download-config index f5e6382b846..4c037795267 100644 --- a/contrib/gitian-downloader/linux-download-config +++ b/contrib/gitian-downloader/linux-download-config @@ -3,7 +3,7 @@ name: bitcoin urls: - http://bitcoin.org/bitcoin-latest-linux-gitian.zip rss: -- url: http://sourceforge.net/api/file/index/project-id/244765/mtime/desc/limit/100/rss +- url: xpath: //item/link/text() pattern: bitcoin-\d+.\d+.\d+-linux-gitian.zip signers: diff --git a/contrib/gitian-downloader/win32-download-config b/contrib/gitian-downloader/win32-download-config index 06c164180d5..083bce5de81 100644 --- a/contrib/gitian-downloader/win32-download-config +++ b/contrib/gitian-downloader/win32-download-config @@ -3,7 +3,7 @@ name: bitcoin urls: - http://bitcoin.org/bitcoin-latest-win32-gitian.zip rss: -- url: http://sourceforge.net/api/file/index/project-id/244765/mtime/desc/limit/100/rss +- url: xpath: //item/link/text() pattern: bitcoin-\d+.\d+.\d+-win32-gitian.zip signers: diff --git a/doc/dnsseed-policy.md b/doc/dnsseed-policy.md index 66a1757ac5e..e6b4e6df5af 100644 --- a/doc/dnsseed-policy.md +++ b/doc/dnsseed-policy.md @@ -45,7 +45,8 @@ related to the DNS seed operation. If these expectations cannot be satisfied the operator should discontinue providing services and contact the active Bitcoin -Core development team as well as posting on bitcoin-development. +Core development team as well as posting on +[bitcoin-dev](https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev). Behavior outside of these expectations may be reasonable in some situations but should be discussed in public in advance. From 7e66e9c97bf270b551ab40ae84078a37a8a05586 Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Tue, 14 Jul 2015 17:38:03 -0400 Subject: [PATCH 140/201] openssl: avoid config file load/race Rebased-From: d4b1d5a8baf18e4c8d62846360c0c1c0c9331d70 Github-Pull: #6438 --- src/util.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/util.cpp b/src/util.cpp index 3316c172a70..d789e05ecbf 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -78,6 +78,7 @@ #include #include #include +#include // Work around clang compilation problem in Boost 1.46: // /usr/include/boost/program_options/detail/config_file.hpp:163:17: error: call to function 'to_internal' that is neither visible in the template definition nor found by argument-dependent lookup @@ -128,6 +129,13 @@ class CInit ppmutexOpenSSL[i] = new CCriticalSection(); CRYPTO_set_locking_callback(locking_callback); + // OpenSSL can optionally load a config file which lists optional loadable modules and engines. + // We don't use them so we don't require the config. However some of our libs may call functions + // which attempt to load the config file, possibly resulting in an exit() or crash if it is missing + // or corrupt. Explicitly tell OpenSSL not to try to load the file. The result for our libs will be + // that the config appears to have been loaded and there are no modules/engines available. + OPENSSL_no_config(); + #ifdef WIN32 // Seed OpenSSL PRNG with current contents of the screen RAND_screen(); From 255eced936a484de1ce3b5ef6893327b92df0a93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=B8=BFtcDrak?= Date: Tue, 14 Jul 2015 23:33:49 +0100 Subject: [PATCH 141/201] Updated URL location of netinstall for Debian Conflicts: doc/gitian-building.md Github-Pull: #6439 Rebased-From: 09d4ddf1c5841b757c2676d508a68baa2dbdc4c7 --- doc/gitian-building.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/gitian-building.md b/doc/gitian-building.md index defddedc6e2..6a295747415 100644 --- a/doc/gitian-building.md +++ b/doc/gitian-building.md @@ -74,7 +74,7 @@ In the VirtualBox GUI click "Create" and choose the following parameters in the - Disk size: at least 40GB; as low as 20GB *may* be possible, but better to err on the safe side - Push the `Create` button -Get the [Debian 7.4 net installer](http://ftp.at.debian.org/debian-jigdo/current/amd64/iso-cd/debian-7.4.0-amd64-netinst.iso) (a more recent minor version should also work, see also [Debian Network installation](https://www.debian.org/CD/netinst/)). +Get the [Debian 7.8 net installer](http://cdimage.debian.org/cdimage/archive/7.8.0/amd64/iso-cd/debian-7.8.0-amd64-netinst.iso) (a more recent minor version should also work, see also [Debian Network installation](https://www.debian.org/CD/netinst/)). This DVD image can be validated using a SHA256 hashing tool, for example on Unixy OSes by entering the following in a terminal: From 0739e6e57a4b59966588a79ac2646eb3264c4dfa Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Thu, 9 Jul 2015 18:23:27 -0400 Subject: [PATCH 142/201] Test whether created sockets are select()able Conflicts: src/net.cpp Github-Pull: #6412 Rebased-From: d422f9b1fdb42a51aadaa1bbc157542dca2feb17 --- src/compat.h | 8 ++++++++ src/net.cpp | 19 +++++++++++++++++++ src/netbase.cpp | 3 +++ 3 files changed, 30 insertions(+) diff --git a/src/compat.h b/src/compat.h index 477dd2bfebd..85c94830aed 100644 --- a/src/compat.h +++ b/src/compat.h @@ -90,4 +90,12 @@ typedef u_int SOCKET; size_t strnlen_int( const char *start, size_t max_len); +bool static inline IsSelectableSocket(SOCKET s) { +#ifdef WIN32 + return true; +#else + return (s >= 0 && s < FD_SETSIZE); +#endif +} + #endif // BITCOIN_COMPAT_H diff --git a/src/net.cpp b/src/net.cpp index 47221edef6e..6eb2020b331 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -403,6 +403,12 @@ CNode* ConnectNode(CAddress addrConnect, const char *pszDest) if (pszDest ? ConnectSocketByName(addrConnect, hSocket, pszDest, Params().GetDefaultPort(), nConnectTimeout, &proxyConnectionFailed) : ConnectSocket(addrConnect, hSocket, nConnectTimeout, &proxyConnectionFailed)) { + if (!IsSelectableSocket(hSocket)) { + LogPrintf("Cannot create connection: non-selectable socket created (fd >= FD_SETSIZE ?)\n"); + CloseSocket(hSocket); + return NULL; + } + addrman.Attempt(addrConnect); // Add node @@ -871,8 +877,14 @@ void ThreadSocketHandler() if (nErr != WSAEWOULDBLOCK) LogPrintf("socket error accept failed: %s\n", NetworkErrorString(nErr)); } + else if (!IsSelectableSocket(hSocket)) + { + LogPrintf("connection from %s dropped: non-selectable socket\n", addr.ToString()); + CloseSocket(hSocket); + } else if (nInbound >= nMaxConnections - MAX_OUTBOUND_CONNECTIONS) { + LogPrint("net", "connection from %s dropped (full)\n", addr.ToString()); CloseSocket(hSocket); } else if (CNode::IsBanned(addr) && !whitelisted) @@ -1498,6 +1510,13 @@ bool BindListenPort(const CService &addrBind, string& strError, bool fWhiteliste LogPrintf("%s\n", strError); return false; } + if (!IsSelectableSocket(hListenSocket)) + { + strError = "Error: Couldn't create a listenable socket for incoming connections"; + LogPrintf("%s\n", strError); + return false; + } + #ifndef WIN32 #ifdef SO_NOSIGPIPE diff --git a/src/netbase.cpp b/src/netbase.cpp index d7c263f3472..7f20cd05ec4 100644 --- a/src/netbase.cpp +++ b/src/netbase.cpp @@ -267,6 +267,9 @@ bool static InterruptibleRecv(char* data, size_t len, int timeout, SOCKET& hSock } else { // Other error or blocking int nErr = WSAGetLastError(); if (nErr == WSAEINPROGRESS || nErr == WSAEWOULDBLOCK || nErr == WSAEINVAL) { + if (!IsSelectableSocket(hSocket)) { + return false; + } struct timeval tval = MillisToTimeval(std::min(endTime - curTime, maxWait)); fd_set fdset; FD_ZERO(&fdset); From ae52a7ffd1b3743e76220812c7f581c5c08f975b Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Mon, 20 Jul 2015 17:10:02 +0200 Subject: [PATCH 143/201] Fix warning introduced by #6412 SOCKET are defined as unsigned integers, thus always >=0. Rebased-From: 89289d875da108c42ca013f33597eda46cb6eb53 --- src/compat.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compat.h b/src/compat.h index 85c94830aed..e08e348ed84 100644 --- a/src/compat.h +++ b/src/compat.h @@ -94,7 +94,7 @@ bool static inline IsSelectableSocket(SOCKET s) { #ifdef WIN32 return true; #else - return (s >= 0 && s < FD_SETSIZE); + return (s < FD_SETSIZE); #endif } From 8b59079b8d7eda6f44988649d9c716fec3aad397 Mon Sep 17 00:00:00 2001 From: randy-waterhouse Date: Sat, 11 Jul 2015 15:39:45 +1200 Subject: [PATCH 144/201] Add autogen.sh to source tarball. --- Makefile.am | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Makefile.am b/Makefile.am index b51f477b785..470d0574cc6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -190,6 +190,8 @@ check-local: @qa/pull-tester/run-bitcoind-for-test.sh $(JAVA) -jar $(JAVA_COMPARISON_TOOL) qa/tmp/compTool $(COMPARISON_TOOL_REORG_TESTS) 2>&1 endif +dist_noinst_SCRIPTS = autogen.sh + EXTRA_DIST = $(top_srcdir)/share/genbuild.sh qa/pull-tester/rpc-tests.sh qa/pull-tester/run-bitcoin-cli qa/rpc-tests $(DIST_DOCS) $(WINDOWS_PACKAGING) $(OSX_PACKAGING) CLEANFILES = $(OSX_DMG) $(BITCOIN_WIN_INSTALLER) From 04507de3b7af34c2fcb1b90f405b2e8a9c35ebe9 Mon Sep 17 00:00:00 2001 From: Casey Rodarmor Date: Tue, 28 Jul 2015 14:01:00 -0400 Subject: [PATCH 145/201] Avoid leaking file descriptors in RegisterLoad This is pretty trivial, but if there's an error here we'll leak a file descriptor. Changed it to always close the file. --- src/bitcoin-tx.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/bitcoin-tx.cpp b/src/bitcoin-tx.cpp index c1be1229d3b..3aa2211f978 100644 --- a/src/bitcoin-tx.cpp +++ b/src/bitcoin-tx.cpp @@ -149,13 +149,14 @@ static void RegisterLoad(const string& strInput) valStr.insert(valStr.size(), buf, bread); } - if (ferror(f)) { + int error = ferror(f); + fclose(f); + + if (error) { string strErr = "Error reading file " + filename; throw runtime_error(strErr); } - fclose(f); - // evaluate as JSON buffer register RegisterSetJson(key, valStr); } From 3861f0fa21c5ecb39e0b89377bf55e7bd5a387ef Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Fri, 31 Jul 2015 23:15:56 -0400 Subject: [PATCH 146/201] build: fix libressl detection Checking libcrypto for a function after we've already found a (possibly different) libcrypto is not what we want to do here. pkg-config might've found a cross lib while AC_CHECK_LIB may find a different or native one. Run a link-test against the lib that's already been found instead. --- configure.ac | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/configure.ac b/configure.ac index 2859753a31b..4c247a8a30c 100644 --- a/configure.ac +++ b/configure.ac @@ -706,6 +706,21 @@ LIBS_TEMP="$LIBS" CFLAGS="$CFLAGS $SSL_CFLAGS $CRYPTO_CFLAGS" LIBS="$LIBS $SSL_LIBS $CRYPTO_LIBS" AC_CHECK_HEADER([openssl/ec.h],, AC_MSG_ERROR(OpenSSL ec header missing),) + +AC_MSG_CHECKING(for a supported OpenSSL version) +AC_LINK_IFELSE([AC_LANG_PROGRAM([[ + #include + ]], + [[RAND_egd(NULL);]])], + [AC_MSG_RESULT(yes)], + [ + AC_ARG_WITH([libressl], + [AS_HELP_STRING([--with-libressl],[Build with system LibreSSL (default is no; DANGEROUS; NOT SUPPORTED)])], + [AC_MSG_WARN([Detected LibreSSL: This is NOT supported, and may break consensus compatibility!])], + [AC_MSG_ERROR([Detected LibreSSL: This is NOT supported, and may break consensus compatibility!])] + )] +) + CFLAGS="$CFLAGS_TEMP" LIBS="$LIBS_TEMP" From 4e5ea71bd513ba1a5d19afbdfb545ed36560c546 Mon Sep 17 00:00:00 2001 From: J Ross Nicoll Date: Sat, 29 Aug 2015 17:40:13 +0100 Subject: [PATCH 147/201] Make sure LogPrint strings are line-terminated --- src/net.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/net.cpp b/src/net.cpp index 7ed9d65fb2d..f18c903aea6 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -575,7 +575,7 @@ bool CNode::ReceiveMsgBytes(const char *pch, unsigned int nBytes) return false; if (msg.in_data && msg.hdr.nMessageSize > MAX_PROTOCOL_MESSAGE_LENGTH) { - LogPrint("net", "Oversized message from peer=%i, disconnecting", GetId()); + LogPrint("net", "Oversized message from peer=%i, disconnecting\n", GetId()); return false; } From 843469ee15be64070eaf01c34b4590185be18db3 Mon Sep 17 00:00:00 2001 From: Casey Rodarmor Date: Wed, 5 Aug 2015 23:10:14 -0400 Subject: [PATCH 148/201] Use unique name for AlertNotify tempfile --- src/test/alert_tests.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/alert_tests.cpp b/src/test/alert_tests.cpp index 4869ba52acc..2febbcd7571 100644 --- a/src/test/alert_tests.cpp +++ b/src/test/alert_tests.cpp @@ -158,8 +158,8 @@ BOOST_AUTO_TEST_CASE(AlertNotify) { SetMockTime(11); - boost::filesystem::path temp = GetTempPath() / "alertnotify.txt"; - boost::filesystem::remove(temp); + boost::filesystem::path temp = GetTempPath() / + boost::filesystem::unique_path("alertnotify-%%%%.txt"); mapArgs["-alertnotify"] = std::string("echo %s >> ") + temp.string(); From 28d76d2aea6508e26def7e59a6ff006d0cad6b86 Mon Sep 17 00:00:00 2001 From: Adam Weiss Date: Wed, 12 Aug 2015 19:32:20 -0400 Subject: [PATCH 149/201] Handle leveldb::DestroyDB() errors on wipe failure Add error checking to CLevelDBWrapper for errors from leveldb::DestroyDB(). Without it, if unlink() or DeleteFileW() fail to delete files, they will fail silent. If they fail to delete any files, CLevelDBWrapper will silently open and read the existing database. Typically any permissions issues would be caught by leveldb as it churns through many files as part of its compaction process, but it is conceivable that this could cause problems on Windows with anti-virus and indexing software. --- src/leveldbwrapper.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/leveldbwrapper.cpp b/src/leveldbwrapper.cpp index 70980fede5a..1f674a91df0 100644 --- a/src/leveldbwrapper.cpp +++ b/src/leveldbwrapper.cpp @@ -58,7 +58,8 @@ CLevelDBWrapper::CLevelDBWrapper(const boost::filesystem::path& path, size_t nCa } else { if (fWipe) { LogPrintf("Wiping LevelDB in %s\n", path.string()); - leveldb::DestroyDB(path.string(), options); + leveldb::Status result = leveldb::DestroyDB(path.string(), options); + HandleError(result); } TryCreateDirectory(path); LogPrintf("Opening LevelDB in %s\n", path.string()); From 65426acb4dfdbcda03337cb68e8fa8854bc76e17 Mon Sep 17 00:00:00 2001 From: fanquake Date: Thu, 13 Aug 2015 21:09:01 +0800 Subject: [PATCH 150/201] Add missing files to files.md typo --- doc/files.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/doc/files.md b/doc/files.md index 80195535bb7..ec767e0486d 100644 --- a/doc/files.md +++ b/doc/files.md @@ -1,12 +1,16 @@ -Used in 0.8.0 ---------------------- -* wallet.dat: personal wallet (BDB) with keys and transactions -* peers.dat: peer IP address database (custom format); since 0.7.0 + +* bitcoin.conf: contains configuration settings for bitcoind or bitcoin-qt +* bitcoind.pid: stores the process id of bitcoind while running * blocks/blk000??.dat: block data (custom, 128 MiB per file); since 0.8.0 * blocks/rev000??.dat; block undo data (custom); since 0.8.0 (format changed since pre-0.8) * blocks/index/*; block index (LevelDB); since 0.8.0 * chainstate/*; block chain state database (LevelDB); since 0.8.0 * database/*: BDB database environment; only used for wallet since 0.8.0 +* db.log: wallet database log file +* debug.log: contains debug information and general logging generated by bitcoind or bitcoin-qt +* fee_estimates.dat: stores statistics used to estimate minimum transaction fees and priorities required for confirmation; since 0.10.0 +* peers.dat: peer IP address database (custom format); since 0.7.0 +* wallet.dat: personal wallet (BDB) with keys and transactions Only used in pre-0.8.0 --------------------- From bdf2542787314bce0c5cc39f03df0a0b27eb31cb Mon Sep 17 00:00:00 2001 From: Alex Morcos Date: Fri, 14 Aug 2015 14:23:37 -0500 Subject: [PATCH 151/201] Fix masking of irrelevant bits in address groups. --- src/netbase.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/netbase.cpp b/src/netbase.cpp index 053c645a1be..6465ca61a21 100644 --- a/src/netbase.cpp +++ b/src/netbase.cpp @@ -944,7 +944,7 @@ std::vector CNetAddr::GetGroup() const nBits -= 8; } if (nBits > 0) - vchRet.push_back(GetByte(15 - nStartByte) | ((1 << nBits) - 1)); + vchRet.push_back(GetByte(15 - nStartByte) | ((1 << (8 - nBits)) - 1)); return vchRet; } From 0194bddde48cffe21d8ed57777e576e9187e2cbe Mon Sep 17 00:00:00 2001 From: Alex Morcos Date: Wed, 19 Aug 2015 14:34:56 -0400 Subject: [PATCH 152/201] add unit test for CNetAddr::GetGroup. --- src/test/netbase_tests.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/test/netbase_tests.cpp b/src/test/netbase_tests.cpp index c26e7383842..fc8954ce75b 100644 --- a/src/test/netbase_tests.cpp +++ b/src/test/netbase_tests.cpp @@ -6,6 +6,7 @@ #include +#include #include using namespace std; @@ -139,4 +140,20 @@ BOOST_AUTO_TEST_CASE(subnet_test) BOOST_CHECK(!CSubNet("fuzzy").IsValid()); } +BOOST_AUTO_TEST_CASE(netbase_getgroup) +{ + BOOST_CHECK(CNetAddr("127.0.0.1").GetGroup() == boost::assign::list_of(0)); // Local -> !Routable() + BOOST_CHECK(CNetAddr("257.0.0.1").GetGroup() == boost::assign::list_of(0)); // !Valid -> !Routable() + BOOST_CHECK(CNetAddr("10.0.0.1").GetGroup() == boost::assign::list_of(0)); // RFC1918 -> !Routable() + BOOST_CHECK(CNetAddr("169.254.1.1").GetGroup() == boost::assign::list_of(0)); // RFC3927 -> !Routable() + BOOST_CHECK(CNetAddr("1.2.3.4").GetGroup() == boost::assign::list_of((unsigned char)NET_IPV4)(1)(2)); // IPv4 + BOOST_CHECK(CNetAddr("::FFFF:0:102:304").GetGroup() == boost::assign::list_of((unsigned char)NET_IPV4)(1)(2)); // RFC6145 + BOOST_CHECK(CNetAddr("64:FF9B::102:304").GetGroup() == boost::assign::list_of((unsigned char)NET_IPV4)(1)(2)); // RFC6052 + BOOST_CHECK(CNetAddr("2002:102:304:9999:9999:9999:9999:9999").GetGroup() == boost::assign::list_of((unsigned char)NET_IPV4)(1)(2)); // RFC3964 + BOOST_CHECK(CNetAddr("2001:0:9999:9999:9999:9999:FEFD:FCFB").GetGroup() == boost::assign::list_of((unsigned char)NET_IPV4)(1)(2)); // RFC4380 + BOOST_CHECK(CNetAddr("FD87:D87E:EB43:edb1:8e4:3588:e546:35ca").GetGroup() == boost::assign::list_of((unsigned char)NET_TOR)(239)); // Tor + BOOST_CHECK(CNetAddr("2001:470:abcd:9999:9999:9999:9999:9999").GetGroup() == boost::assign::list_of((unsigned char)NET_IPV6)(32)(1)(4)(112)(175)); //he.net + BOOST_CHECK(CNetAddr("2001:2001:9999:9999:9999:9999:9999:9999").GetGroup() == boost::assign::list_of((unsigned char)NET_IPV6)(32)(1)(32)(1)); //IPv6 +} + BOOST_AUTO_TEST_SUITE_END() From c9ad65e5fafc47ea74399e8057e445e0e0435101 Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Thu, 20 Aug 2015 15:50:13 -0400 Subject: [PATCH 153/201] net: Set SO_REUSEADDR for Windows too When running the rpc tests in Wine, nodes often fail to listen on localhost due to a stale socket from a previous run. This aligns the behavior with other platforms. --- src/net.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/net.cpp b/src/net.cpp index f18c903aea6..80cecd07247 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -1506,8 +1506,10 @@ bool BindListenPort(const CService &addrBind, string& strError, bool fWhiteliste setsockopt(hListenSocket, SOL_SOCKET, SO_NOSIGPIPE, (void*)&nOne, sizeof(int)); #endif // Allow binding if the port is still in TIME_WAIT state after - // the program was closed and restarted. Not an issue on windows! + // the program was closed and restarted. setsockopt(hListenSocket, SOL_SOCKET, SO_REUSEADDR, (void*)&nOne, sizeof(int)); +#else + setsockopt(hListenSocket, SOL_SOCKET, SO_REUSEADDR, (const char*)&nOne, sizeof(int)); #endif // Set to non-blocking, incoming connections will also inherit this From 0dfcdd41ebf82aa409ec203deeabc900d996c413 Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Tue, 25 Aug 2015 12:03:28 -0400 Subject: [PATCH 154/201] rpc-tests: re-enable rpc-tests for Windows --- qa/pull-tester/rpc-tests.sh | 5 ----- 1 file changed, 5 deletions(-) diff --git a/qa/pull-tester/rpc-tests.sh b/qa/pull-tester/rpc-tests.sh index d6ee00bb7df..2a7fbff143f 100755 --- a/qa/pull-tester/rpc-tests.sh +++ b/qa/pull-tester/rpc-tests.sh @@ -8,11 +8,6 @@ CURDIR=$(cd $(dirname "$0"); pwd) export BITCOINCLI=${BUILDDIR}/qa/pull-tester/run-bitcoin-cli export BITCOIND=${REAL_BITCOIND} -if [ "x${EXEEXT}" = "x.exe" ]; then - echo "Win tests currently disabled" - exit 0 -fi - #Run the tests if [ "x${ENABLE_BITCOIND}${ENABLE_UTILS}${ENABLE_WALLET}" = "x111" ]; then From 2ede6b7142cb57c422126722f845b36da7d3c4ef Mon Sep 17 00:00:00 2001 From: Pavel Vasin Date: Sun, 23 Aug 2015 23:53:49 +0300 Subject: [PATCH 155/201] add support for miniupnpc api version 14 The value of new arg ttl is set to 2 as it's recommended default. --- src/net.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/net.cpp b/src/net.cpp index 80cecd07247..5b79812def3 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -1020,10 +1020,14 @@ void ThreadMapPort() #ifndef UPNPDISCOVER_SUCCESS /* miniupnpc 1.5 */ devlist = upnpDiscover(2000, multicastif, minissdpdpath, 0); -#else +#elif MINIUPNPC_API_VERSION < 14 /* miniupnpc 1.6 */ int error = 0; devlist = upnpDiscover(2000, multicastif, minissdpdpath, 0, 0, &error); +#else + /* miniupnpc 1.9.20150730 */ + int error = 0; + devlist = upnpDiscover(2000, multicastif, minissdpdpath, 0, 0, 2, &error); #endif struct UPNPUrls urls; From ceba0f8c7e0b62c16c15ec507da721be6e2c7dee Mon Sep 17 00:00:00 2001 From: Veres Lajos Date: Sun, 9 Aug 2015 00:17:27 +0100 Subject: [PATCH 156/201] PARTIAL: typofixes (found by misspell_fixer) Upstream: 9f68ed6b6d1a9c6436ce37913666165f2b180ee3 (PR #6539) --- contrib/debian/changelog | 6 +++--- depends/config.guess | 2 +- src/addrman.h | 2 +- src/main.cpp | 2 +- src/merkleblock.cpp | 2 +- src/qt/paymentserver.cpp | 2 +- src/qt/rpcconsole.cpp | 2 +- src/rpcserver.cpp | 2 +- src/rpcwallet.cpp | 2 +- src/sync.h | 2 +- 10 files changed, 12 insertions(+), 12 deletions(-) diff --git a/contrib/debian/changelog b/contrib/debian/changelog index fe910b65a55..d1683f420b2 100644 --- a/contrib/debian/changelog +++ b/contrib/debian/changelog @@ -137,7 +137,7 @@ bitcoin (0.5.3-natty0) natty; urgency=low bitcoin (0.5.2-natty1) natty; urgency=low * Remove mentions on anonymity in package descriptions and manpage. - These should never have been there, bitcoin isnt anonymous without + These should never have been there, bitcoin isn't anonymous without a ton of work that virtually no users will ever be willing and capable of doing @@ -178,7 +178,7 @@ bitcoin (0.5.0~rc1-natty1) natty; urgency=low * Add test_bitcoin to build test * Fix clean - * Remove uneccessary build-dependancies + * Remove unnecessary build-dependancies -- Matt Corallo Wed, 26 Oct 2011 14:37:18 -0400 @@ -338,7 +338,7 @@ bitcoin (0.3.20.01~dfsg-1) unstable; urgency=low bitcoin (0.3.19~dfsg-6) unstable; urgency=low - * Fix override agressive optimizations. + * Fix override aggressive optimizations. * Fix tighten build-dependencies to really fit backporting to Lenny: + Add fallback build-dependency on libdb4.6++-dev. + Tighten unversioned Boost build-dependencies to recent versions, diff --git a/depends/config.guess b/depends/config.guess index 1f5c50c0d15..553731934eb 100755 --- a/depends/config.guess +++ b/depends/config.guess @@ -1099,7 +1099,7 @@ EOF # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that + # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; diff --git a/src/addrman.h b/src/addrman.h index d47217683c7..99debbd527c 100644 --- a/src/addrman.h +++ b/src/addrman.h @@ -267,7 +267,7 @@ class CAddrMan * Notice that vvTried, mapAddr and vVector are never encoded explicitly; * they are instead reconstructed from the other information. * - * vvNew is serialized, but only used if ADDRMAN_UNKOWN_BUCKET_COUNT didn't change, + * vvNew is serialized, but only used if ADDRMAN_UNKNOWN_BUCKET_COUNT didn't change, * otherwise it is reconstructed as well. * * This format is more complex, but significantly smaller (at most 1.5 MiB), and supports diff --git a/src/main.cpp b/src/main.cpp index d77eb2877e1..b395b53d944 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2777,7 +2777,7 @@ bool AbortNode(const std::string &strMessage, const std::string &userMessage) { strMiscWarning = strMessage; LogPrintf("*** %s\n", strMessage); uiInterface.ThreadSafeMessageBox( - userMessage.empty() ? _("Error: A fatal internal error occured, see debug.log for details") : userMessage, + userMessage.empty() ? _("Error: A fatal internal error occurred, see debug.log for details") : userMessage, "", CClientUIInterface::MSG_ERROR); StartShutdown(); return false; diff --git a/src/merkleblock.cpp b/src/merkleblock.cpp index 8618e355d74..0af5c6839ef 100644 --- a/src/merkleblock.cpp +++ b/src/merkleblock.cpp @@ -139,7 +139,7 @@ uint256 CPartialMerkleTree::ExtractMatches(std::vector &vMatch) { // traverse the partial tree unsigned int nBitsUsed = 0, nHashUsed = 0; uint256 hashMerkleRoot = TraverseAndExtract(nHeight, 0, nBitsUsed, nHashUsed, vMatch); - // verify that no problems occured during the tree traversal + // verify that no problems occurred during the tree traversal if (fBad) return 0; // verify that all bits were consumed (except for the padding caused by serializing it as a byte sequence) diff --git a/src/qt/paymentserver.cpp b/src/qt/paymentserver.cpp index 0f8f6f0ce81..8a39beb1f5e 100644 --- a/src/qt/paymentserver.cpp +++ b/src/qt/paymentserver.cpp @@ -743,6 +743,6 @@ void PaymentServer::setOptionsModel(OptionsModel *optionsModel) void PaymentServer::handlePaymentACK(const QString& paymentACKMsg) { - // currently we don't futher process or store the paymentACK message + // currently we don't further process or store the paymentACK message emit message(tr("Payment acknowledged"), paymentACKMsg, CClientUIInterface::ICON_INFORMATION | CClientUIInterface::MODAL); } diff --git a/src/qt/rpcconsole.cpp b/src/qt/rpcconsole.cpp index 2d2d448b49f..1d7f10b49b3 100644 --- a/src/qt/rpcconsole.cpp +++ b/src/qt/rpcconsole.cpp @@ -556,7 +556,7 @@ void RPCConsole::peerLayoutChanged() if (detailNodeRow < 0) { - // detail node dissapeared from table (node disconnected) + // detail node disappeared from table (node disconnected) fUnselect = true; cachedNodeid = -1; ui->detailWidget->hide(); diff --git a/src/rpcserver.cpp b/src/rpcserver.cpp index 37e4f48a3da..41fc274eef0 100644 --- a/src/rpcserver.cpp +++ b/src/rpcserver.cpp @@ -644,7 +644,7 @@ void StartRPCThreads() vEndpoints.push_back(ip::tcp::endpoint(asio::ip::address_v6::any(), defaultPort)); vEndpoints.push_back(ip::tcp::endpoint(asio::ip::address_v4::any(), defaultPort)); // Prefer making the socket dual IPv6/IPv4 instead of binding - // to both addresses seperately. + // to both addresses separately. bBindAny = true; } diff --git a/src/rpcwallet.cpp b/src/rpcwallet.cpp index e43eee1551a..2f352ba296e 100644 --- a/src/rpcwallet.cpp +++ b/src/rpcwallet.cpp @@ -719,7 +719,7 @@ Value movecmd(const Array& params, bool fHelp) "3. minconf (numeric, optional, default=1) Only use funds with at least this many confirmations.\n" "4. \"comment\" (string, optional) An optional comment, stored in the wallet only.\n" "\nResult:\n" - "true|false (boolean) true if successfull.\n" + "true|false (boolean) true if successful.\n" "\nExamples:\n" "\nMove 0.01 btc from the default account to the account named tabby\n" + HelpExampleCli("move", "\"\" \"tabby\" 0.01") + diff --git a/src/sync.h b/src/sync.h index cd0aa7b20e7..93d72f84a4f 100644 --- a/src/sync.h +++ b/src/sync.h @@ -16,7 +16,7 @@ //////////////////////////////////////////////// // // -// THE SIMPLE DEFINITON, EXCLUDING DEBUG CODE // +// THE SIMPLE DEFINITION, EXCLUDING DEBUG CODE // // // //////////////////////////////////////////////// From 5e6d8936505da29d60b88eed7fd9aa6abdae5d92 Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Tue, 1 Sep 2015 21:45:23 -0400 Subject: [PATCH 157/201] travis: for travis generating an extra build --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index 1630c1d02a4..06dd4c6aaab 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,6 +6,7 @@ os: linux language: cpp +compiler: gcc env: global: - MAKEJOBS=-j3 @@ -38,6 +39,8 @@ matrix: env: HOST=x86_64-w64-mingw32 PACKAGES="nsis gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 binutils-mingw-w64-x86-64 mingw-w64-dev wine bc" RUN_TESTS=true GOAL="deploy" BITCOIN_CONFIG="--enable-gui" MAKEJOBS="-j2" - compiler: ": Win32" env: HOST=i686-w64-mingw32 PACKAGES="nsis gcc-mingw-w64-i686 g++-mingw-w64-i686 binutils-mingw-w64-i686 mingw-w64-dev wine bc" RUN_TESTS=true GOAL="deploy" BITCOIN_CONFIG="--enable-gui" MAKEJOBS="-j2" + exclude: + - compiler: gcc install: - if [ -n "$PACKAGES" ]; then travis_retry sudo apt-get update; fi - if [ -n "$PACKAGES" ]; then travis_retry sudo apt-get install --no-install-recommends --no-upgrade -qq $PACKAGES; fi From f696ea12e18b9f9e1518a59f3ad36ba887f4f31a Mon Sep 17 00:00:00 2001 From: Jonas Schnelli Date: Fri, 18 Sep 2015 13:51:28 +0200 Subject: [PATCH 158/201] [QT] fix thin space word wrap line brake issue The thin space QT html hack results in cut-off chars/nums after a line break. Avoid word wrap line breaks by using a smaller font and a line break before each alternative value) Rebased-From: 24cb7c7bbba224dcb73fcf69296f5ef4734f745f Github-Pull: #6694 --- src/qt/sendcoinsdialog.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp index 46eb58ca439..c5f885f7efd 100644 --- a/src/qt/sendcoinsdialog.cpp +++ b/src/qt/sendcoinsdialog.cpp @@ -305,9 +305,9 @@ void SendCoinsDialog::on_sendButton_clicked() if(u != model->getOptionsModel()->getDisplayUnit()) alternativeUnits.append(BitcoinUnits::formatHtmlWithUnit(u, totalAmount)); } - questionString.append(tr("Total Amount %1 (= %2)") + questionString.append(tr("Total Amount %1
(=%2)
") .arg(BitcoinUnits::formatHtmlWithUnit(model->getOptionsModel()->getDisplayUnit(), totalAmount)) - .arg(alternativeUnits.join(" " + tr("or") + " "))); + .arg(alternativeUnits.join(" " + tr("or") + "
"))); QMessageBox::StandardButton retval = QMessageBox::question(this, tr("Confirm send coins"), questionString.arg(formatted.join("
")), From 9bd0b4a6335eab2bf1dc93e6f73b3eb7b15e4856 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Tue, 29 Sep 2015 12:35:34 +0200 Subject: [PATCH 159/201] qt: periodic translations update --- src/qt/bitcoinstrings.cpp | 3 +- src/qt/locale/bitcoin_be_BY.ts | 150 +- src/qt/locale/bitcoin_bg.ts | 16 + src/qt/locale/bitcoin_ca@valencia.ts | 331 ++++ src/qt/locale/bitcoin_cmn.ts | 4 + src/qt/locale/bitcoin_cs.ts | 54 +- src/qt/locale/bitcoin_el_GR.ts | 234 ++- src/qt/locale/bitcoin_en.ts | 53 +- src/qt/locale/bitcoin_eo.ts | 46 +- src/qt/locale/bitcoin_es_CL.ts | 2 +- src/qt/locale/bitcoin_fa.ts | 312 +++- src/qt/locale/bitcoin_fa_IR.ts | 128 +- src/qt/locale/bitcoin_fi.ts | 62 +- src/qt/locale/bitcoin_hr.ts | 348 +++- src/qt/locale/bitcoin_hu.ts | 68 + src/qt/locale/bitcoin_ko_KR.ts | 48 +- src/qt/locale/bitcoin_lt.ts | 64 + src/qt/locale/bitcoin_mn.ts | 64 + src/qt/locale/bitcoin_nl.ts | 24 + src/qt/locale/bitcoin_pam.ts | 4 + src/qt/locale/bitcoin_pl.ts | 292 ++- src/qt/locale/bitcoin_pt_BR.ts | 92 +- src/qt/locale/bitcoin_pt_PT.ts | 68 + src/qt/locale/bitcoin_ro_RO.ts | 4 + src/qt/locale/bitcoin_ru.ts | 3356 ++-------------------------------- src/qt/locale/bitcoin_sk.ts | 398 +++- src/qt/locale/bitcoin_sl_SI.ts | 1190 ++++++++++-- src/qt/locale/bitcoin_sq.ts | 30 +- src/qt/locale/bitcoin_tr.ts | 22 +- src/qt/locale/bitcoin_uk.ts | 116 +- src/qt/locale/bitcoin_ur_PK.ts | 36 +- src/qt/locale/bitcoin_uz@Cyrl.ts | 4 + src/qt/locale/bitcoin_vi.ts | 12 + 33 files changed, 4146 insertions(+), 3489 deletions(-) diff --git a/src/qt/bitcoinstrings.cpp b/src/qt/bitcoinstrings.cpp index cd3a92ba314..d68bdbf5b73 100644 --- a/src/qt/bitcoinstrings.cpp +++ b/src/qt/bitcoinstrings.cpp @@ -202,7 +202,7 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Error loading wallet.dat: Wallet requires new QT_TRANSLATE_NOOP("bitcoin-core", "Error opening block database"), QT_TRANSLATE_NOOP("bitcoin-core", "Error reading from database, shutting down."), QT_TRANSLATE_NOOP("bitcoin-core", "Error"), -QT_TRANSLATE_NOOP("bitcoin-core", "Error: A fatal internal error occured, see debug.log for details"), +QT_TRANSLATE_NOOP("bitcoin-core", "Error: A fatal internal error occurred, see debug.log for details"), QT_TRANSLATE_NOOP("bitcoin-core", "Error: Disk space is low!"), QT_TRANSLATE_NOOP("bitcoin-core", "Error: Unsupported argument -tor found, use -onion."), QT_TRANSLATE_NOOP("bitcoin-core", "Failed to listen on any port. Use -listen=0 if you want this."), @@ -250,6 +250,7 @@ QT_TRANSLATE_NOOP("bitcoin-core", "RPC support for HTTP persistent connections ( QT_TRANSLATE_NOOP("bitcoin-core", "Randomly drop 1 of every network messages"), QT_TRANSLATE_NOOP("bitcoin-core", "Randomly fuzz 1 of every network messages"), QT_TRANSLATE_NOOP("bitcoin-core", "Rebuild block chain index from current blk000??.dat files"), +QT_TRANSLATE_NOOP("bitcoin-core", "Receive and display P2P network alerts (default: %u)"), QT_TRANSLATE_NOOP("bitcoin-core", "Relay and mine data carrier transactions (default: %u)"), QT_TRANSLATE_NOOP("bitcoin-core", "Relay non-P2SH multisig (default: %u)"), QT_TRANSLATE_NOOP("bitcoin-core", "Rescan the block chain for missing wallet transactions"), diff --git a/src/qt/locale/bitcoin_be_BY.ts b/src/qt/locale/bitcoin_be_BY.ts index 0a048b580b7..98f486c53cf 100644 --- a/src/qt/locale/bitcoin_be_BY.ts +++ b/src/qt/locale/bitcoin_be_BY.ts @@ -102,7 +102,7 @@ AddressTableModel Label - Пазнака + Метка Address @@ -383,6 +383,10 @@ Дапамога + Bitcoin Core + Bitcoin Core + + Request payments (generates QR codes and bitcoin: URIs) Запатрабаваць плацёж (генеруецца QR-код для біткойн URI) @@ -399,9 +403,17 @@ Паказаць спіс адрасоў і метак для прымання
+ Open a bitcoin: URI or payment request + Адкрыць біткойн: URI ці запыт плацяжу + + &Command-line options Опцыі каманднага радка + + Show the Bitcoin Core help message to get a list with possible Bitcoin command-line options + Паказваць даведку Bitcoin Core каб атрымаць спіс магчымых опцый каманднага радка + %n active connection(s) to Bitcoin network %n актыўнае злучэнне з Bitcoin-сецівам%n актыўных злучэнняў з Bitcoin-сецівам%n актыўных злучэнняў з Bitcoin-сецівам%n актыўных злучэнняў з Bitcoin-сецівам @@ -411,6 +423,10 @@ Крыніца блокаў недасяжная... + %1 and %2 + %1 і %2 + + %1 behind %1 таму @@ -481,6 +497,10 @@ Address: %4 CoinControlDialog + Quantity: + Колькасць: + + Bytes: Байтаў: @@ -505,6 +525,10 @@ Address: %4 Пасля камісіі: + (un)select all + (не)выбраць ўсё + + Tree mode Рэжым дрэва @@ -517,6 +541,14 @@ Address: %4 Колькасць + Received with label + Прыняць праз метку + + + Received with address + Прыняць праз адрас + + Date Дата @@ -549,6 +581,38 @@ Address: %4 Капіяваць ID транзакцыі + Lock unspent + Замкнуць непатрачанае + + + Unlock unspent + Адамкнуць непатрачанае + + + Copy quantity + Капіяваць колькасць + + + Copy fee + Капіяваць камісію + + + Copy after fee + Капіяваць з выняткам камісіі + + + Copy bytes + Капіяваць байты + + + Copy priority + Капіяваць прыярытэт + + + Copy dust + Капіяваць пыл + + highest найвышэйшы @@ -593,6 +657,26 @@ Address: %4 не + This label turns red, if the transaction size is greater than 1000 bytes. + Гэта метка стане чырвонай, калі транзакцыя перавысіць 1000 байт. + + + This means a fee of at least %1 per kB is required. + Гэта значыць патрэбную камісію мінімум %1 на Кб. + + + Transactions with higher priority are more likely to get included into a block. + Транзакцыя большага прыярытэту больш прываблівая для ўключэння ў блок. + + + This label turns red, if the priority is smaller than "medium". + Гэта метка стане чырвонай, калі прыярытэт меньш чым "сярэдні". + + + This label turns red, if any recipient receives an amount smaller than %1. + Гэта метка стане чырвонай, калі любы з адрасатаў атрымае меньш чым %1. + + (no label) непазначаны @@ -605,7 +689,7 @@ Address: %4 &Label - Пазнака + Метка &Address @@ -642,10 +726,26 @@ Address: %4 FreespaceChecker + + A new data directory will be created. + Будзе створаны новы каталог з данымі. + + + name + імя + + + Directory already exists. Add %1 if you intend to create a new directory here. + Каталог ужо існуе. Дадайце %1 калі вы збіраецеся стварыць тут новы каталог. + HelpMessageDialog + Bitcoin Core + Bitcoin Core + + (%1-bit) (%1-біт) @@ -681,6 +781,10 @@ Address: %4 Вітаем у Bitcoin Core. + Bitcoin Core + Bitcoin Core + + Error Памылка @@ -733,7 +837,7 @@ Address: %4 ReceiveCoinsDialog &Label: - Пазнака: + Метка: Copy label @@ -756,7 +860,7 @@ Address: %4 Label - Пазнака + Метка Message @@ -771,7 +875,7 @@ Address: %4 Label - Пазнака + Метка Message @@ -793,6 +897,10 @@ Address: %4 Даслаць Манеты + Quantity: + Колькасць: + + Bytes: Байтаў: @@ -833,10 +941,30 @@ Address: %4 Пацвердзіць дасыланне манет + Copy quantity + Капіяваць колькасць + + Copy amount Капіяваць колькасць + Copy fee + Капіяваць камісію + + + Copy after fee + Капіяваць з выняткам камісіі + + + Copy bytes + Капіяваць байты + + + Copy priority + Капіяваць прыярытэт + + The amount to pay must be larger than 0. Велічыня плацяжу мае быць больш за 0. @@ -844,6 +972,10 @@ Address: %4 (no label) непазначаны + + Copy dust + Капіяваць пыл + SendCoinsEntry @@ -861,7 +993,7 @@ Address: %4 &Label: - Пазнака: + Метка: Alt+A @@ -901,6 +1033,10 @@ Address: %4 SplashScreen + Bitcoin Core + Bitcoin Core + + The Bitcoin Core developers Распрацоўнікі Bitcoin Core @@ -1145,7 +1281,7 @@ Address: %4 Label - Пазнака + Метка Address diff --git a/src/qt/locale/bitcoin_bg.ts b/src/qt/locale/bitcoin_bg.ts index 5ef8bed6531..3a21dcafa23 100644 --- a/src/qt/locale/bitcoin_bg.ts +++ b/src/qt/locale/bitcoin_bg.ts @@ -2095,6 +2095,14 @@ Address: %4 Дебит + Total debit + Общ дълг + + + Total credit + Общ дълг + + Transaction fee Такса @@ -2119,6 +2127,10 @@ Address: %4 Търговец + 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. + Генерираните монети трябва да отлежат %1 блока преди да могат да бъдат похарчени. Когато генерираш блока, той се разпространява в мрежата, за да се добави в блок-веригата. Ако не успее да се добави във веригата, неговия статус ще се стане "неприет" и няма да може да се похарчи. Това е възможно да се случи случайно, ако друг възел генерира блок няколко секунди след твоя. + + Debug information Информация за грешките @@ -2173,6 +2185,10 @@ Address: %4 Адрес + Immature (%1 confirmations, will be available after %2) + Неплатим (%1 потвърждения, ще бъде платим след %2) + + Open until %1 Подлежи на промяна до %1 diff --git a/src/qt/locale/bitcoin_ca@valencia.ts b/src/qt/locale/bitcoin_ca@valencia.ts index 349fc6b42ef..9d8ff18ce51 100644 --- a/src/qt/locale/bitcoin_ca@valencia.ts +++ b/src/qt/locale/bitcoin_ca@valencia.ts @@ -2,6 +2,10 @@ AddressBookPage + Right-click to edit address or label + Feu clic dret per a editar l'adreça o l'etiqueta + + Create a new address Crea una nova adreça @@ -493,6 +497,10 @@ Address: %4 CoinControlDialog + Coin Selection + Selecció de moneda + + Quantity: Quantitat: @@ -541,6 +549,14 @@ Address: %4 Quantitat + Received with label + Rebut amb l'etiqueta + + + Received with address + Rebut amb l'adreça + + Date Data @@ -995,6 +1011,14 @@ Address: %4 Port obert amb &UPnP + Connect to the Bitcoin network through a SOCKS5 proxy. + Connecta a la xarxa Bitcoin a través d'un proxy SOCKS5. + + + &Connect through SOCKS5 proxy (default proxy): + &Connecta a través d'un proxy SOCKS5 (proxy per defecte): + + Proxy &IP: &IP del proxy: @@ -1126,6 +1150,10 @@ Address: %4 Balanç minat que encara no ha madurat + Balances + Balances + + Total: Total: @@ -1138,6 +1166,14 @@ Address: %4 El vostre balanç actual en adreces de només lectura + Spendable: + Que es pot gastar: + + + Recent transactions + Transaccions recents + + Unconfirmed transactions to watch-only addresses Transaccions sense confirmar a adreces de només lectura @@ -1217,6 +1253,14 @@ Address: %4 Reemborsament de %1 + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + La sol·licitud de pagament %1 és massa gran (%2 bytes, permés %3 bytes). + + + Payment request DoS protection + Protecció de DoS per a la sol·licitud de pagament + + Error communicating with %1: %2 Error en comunicar amb %1: %2 @@ -1773,6 +1817,70 @@ Address: %4 Personalitza l'adreça de canvi + Transaction Fee: + Comissió de transacció + + + Choose... + Tria... + + + collapse fee-settings + redueix els paràmetres de comissió + + + per kilobyte + per kilobyte + + + 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. + Si la comissió personalitzada es defineix a 1000 satoshis i la transacció és de només 250 bytes, llavors «per kilobyte» només es paguen 250 satoshis en una comissió, mentre que amb la de «total com a mínim» es pagarien 1000 satoshis. Per a transaccions superiors al kilobyte, en tots dos casos es paga per kilobyte. + + + total at least + total com a mínim + + + 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. + No hi ha cap problema en pagar només la comissió mínima sempre que hi haja menys volum de transacció que espai en els blocs. Però tingueu present que això pot acabar en una transacció que mai es confirme una vegada hi haja més demanda de transaccions de bitcoins que la xarxa puga processar. + + + (read the tooltip) + (llegiu l'indicador de funció) + + + Recommended: + Recomanada: + + + Custom: + Personalitzada: + + + (Smart fee not initialized yet. This usually takes a few blocks...) + (No s'ha inicialitzat encara la comissió intel·ligent. Normalment pren uns pocs blocs...) + + + Confirmation time: + Temps de confirmació: + + + normal + normal + + + fast + ràpid + + + Send as zero-fee transaction if possible + Envia com a transacció de comissió zero si és possible + + + (confirmation may take longer) + (la confirmació pot trigar més temps) + + Send to multiple recipients at once Envia a múltiples destinataris al mateix temps @@ -1877,6 +1985,10 @@ Address: %4 S'ha rebutjat la transacció! Això pot passar si alguna de les monedes del vostre moneder ja s'han gastat; per exemple, si heu fet servir una còpia de seguretat del fitxer wallet.dat i s'hagueren gastat monedes de la còpia però sense marcar-les-hi com a gastades. + Pay only the minimum fee of %1 + Paga només la comissió mínima de %1 + + Warning: Invalid Bitcoin address Avís: adreça Bitcoin no vàlida @@ -2389,6 +2501,10 @@ Address: %4 Tipus de transacció. + Whether or not a watch-only address is involved in this transaction. + Si està implicada o no una adreça només de lectura en la transacció. + + Destination address of transaction. Adreça del destinatari de la transacció. @@ -2484,6 +2600,10 @@ Address: %4 Exporta l'historial de transacció + Watch-only + Només de lectura + + Exporting Failed L'exportació ha fallat @@ -2635,6 +2755,10 @@ Address: %4 Elimina totes les transaccions del moneder i només recupera aquelles de la cadena de blocs a través de -rescan a l'inici + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + Distribuït sota llicència de programari MIT. Vegeu el fitxer acompanyant COPYING o <http://www.opensource.org/licenses/mit-license.php>. + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. Entra en el mode de proves de regressió, que utilitza una cadena especial en què els blocs poden resoldre's al moment. @@ -2679,6 +2803,10 @@ Address: %4 Avís: el fitxer wallet.dat és corrupte, dades rescatades! L'arxiu wallet.dat original ha estat guardat com wallet.{estampa_temporal}.bak al directori %s; si el teu balanç o transaccions son incorrectes hauries de restaurar-lo de un backup. + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + Afig a la llista blanca els iguals que es connecten de la màscara de xarxa o adreça IP donada. Es pot especificar moltes vegades. + + (default: 1) (per defecte: 1) @@ -2739,6 +2867,10 @@ Address: %4 Error en obrir la base de dades de blocs + Error: A fatal internal error occured, see debug.log for details + Error: s'ha produït un error intern fatal. Consulteu debug.log per a més detalls + + Error: Disk space is low! Error: Espai al disc baix! @@ -2767,6 +2899,10 @@ Address: %4 No hi ha suficient descriptors de fitxers disponibles. + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + Només connecta als nodes de la xarxa <net> (ipv4, ipv6 o onion) + + Rebuild block chain index from current blk000??.dat files Reconstrueix l'índex de la cadena de blocs dels fitxers actuals blk000??.dat @@ -2787,6 +2923,10 @@ Address: %4 Això s'així per a eines de proves de regressió per al desenvolupament d'aplicacions. + Use UPnP to map the listening port (default: %u) + Utilitza UPnP per a mapejar el port d'escolta (per defecte: %u) + + Verifying blocks... S'estan verificant els blocs... @@ -2851,6 +2991,18 @@ Address: %4 Comissions (en BTC/Kb) inferiors a això es consideren de comissió zero per a la creació de la transacció (per defecte: %s) + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Si no s'especifica una paytxfee (comissió de transacció de pagament), inclogueu suficient comissió per tal que les transaccions comencen a confirmar-se en una mitja de n blocs (per defecte: %u) + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Import no vàlid per a -maxtxfee=<amount>: '%s' (cal que siga com a mínim la comissió de minrelay de %s per evitar que les comissions s'encallin) + + + Maximum size of data in data carrier transactions we relay and mine (default: %u) + Mida màxima de les dades en les transaccions de l'operador en què confiem i en les meues (per defecte: %u) + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) Consulta a adreces d'iguals a través de DNS, si es troba baix en adreces (per defecte: 1 a menys que -connect) @@ -2859,10 +3011,41 @@ Address: %4 Defineix la mida màxima de transaccions d'alta prioritat / baixa comissió en bytes (per defecte: %d) + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + Defineix el nombre de fils per a la generació de moneda si està habilitat (-1 = tots els nuclis, per defecte: %d) + + 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. Este producte inclou programari desenvolupat pel projecte OpenSSL per a ús a l'OpenSSL Toolkit <https://www.openssl.org/> i programari criptogràfic escrit per Eric Young i programari UPnP escrit per Thomas Bernard. + To use bitcoind, or the -server option to bitcoin-qt, you must set an rpcpassword in the configuration file: +%s +It is recommended you use the following random password: +rpcuser=bitcoinrpc +rpcpassword=%s +(you do not need to remember this password) +The username and password MUST NOT be the same. +If the file does not exist, create it with owner-readable-only file permissions. +It is also recommended to set alertnotify so you are notified of problems; +for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + Per utilitzar bitcoind, o l'opció de serviddor de bitcoin-qt, heu de definir una rpcpassword en el fitxer de configuració: +%s +Es recomana que utilitzeu la contrasenya aleatòria següent: +rpcuser=bitcoinrpc +rpcpassword=%s +(no cal que recordeu la contrasenya) +El nom d'usuari i la contrasenya NO han de ser els mateixos. +Si el fitxer no existeix, creeu-ne un amb permisos de lectura només per al seu propietari. +Es recomana definir alertnotify per tal de ser notificat de qualsevol problema; +per exemple: alertnotify=echo %%s | mail -s "Avís de Bitcoin" admin@foo.com + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Avís: s'ha especificat un -maxtxfee molt alt! Comissions tan grans podrien pagar-se en una única transacció. + + Warning: Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly. Avís: comproveu que la data i hora del vostre ordinador siguen correctes! Si el vostre rellotge no és correcte, el Bitcoin Core no funcionarà correctament. @@ -2871,6 +3054,10 @@ Address: %4 Els iguals en la llista blanca no poden ser bandejats per DoS i es transmetran sempre llurs transaccions, fins i tot si ja són a la mempool. Això és útil, p. ex., per a una passarel·la + Accept public REST requests (default: %u) + Accepta sol·licituds REST públiques (per defecte: %u) + + Cannot resolve -whitebind address: '%s' No es pot resoldre l'adreça -whitebind: «%s» @@ -2891,6 +3078,10 @@ Address: %4 Error en carregar wallet.dat: el moneder requereix una versió més nova del Bitcoin core + Error reading from database, shutting down. + Error en llegir la base de dades, tancant. + + Error: Unsupported argument -tor found, use -onion. Error: s'ha trobat un argument -tor no acceptat. Feu servir -onion. @@ -2907,6 +3098,10 @@ Address: %4 Ha fallat la inicialització de la comprovació de validesa. El Bitcoin Core s'està parant. + Invalid amount for -maxtxfee=<amount>: '%s' + Import no vàlid per a -maxtxfee=<amount>: '%s' + + Invalid amount for -minrelaytxfee=<amount>: '%s' Import no vàlid per a -minrelaytxfee=<amount>: «%s» @@ -2923,6 +3118,10 @@ Address: %4 S'ha especificat una màscara de xarxa no vàlida a -whitelist: «%s» + Keep at most <n> unconnectable transactions in memory (default: %u) + Manté com a màxim <n> transaccions no connectables en memòria (per defecte: %u) + + Need to specify a port with -whitebind: '%s' Cal especificar un port amb -whitebind: «%s» @@ -2939,6 +3138,10 @@ Address: %4 Opcions del servidor RPC: + RPC support for HTTP persistent connections (default: %d) + Suport RPC per a connexions HTTP persistents (per defecte: %d) + + Randomly drop 1 of every <n> network messages Descarta a l'atzar 1 de cada <n> missatges de la xarxa @@ -2951,6 +3154,10 @@ Address: %4 Envia informació de traça/depuració a la consola en comptes del fitxer debug.log + Send transactions as zero-fee transactions if possible (default: %u) + Envia les transaccions com a transaccions de comissió zero sempre que siga possible (per defecte: %u) + + Show all debugging options (usage: --help -help-debug) Mostra totes les opcions de depuració (ús: --help --help-debug) @@ -2975,6 +3182,10 @@ Address: %4 Els imports de les transaccions han de ser positius + Transaction too large for fee policy + Transacció massa gran per a la política de comissions + + Transaction too large La transacció és massa gran @@ -3059,14 +3270,134 @@ Address: %4 Error en carregar wallet.dat: Moneder corrupte + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = manté les metadades de les tx, p. ex., propietari del compte i informació de sol·licitud del pagament, 2 = prescindeix de les metadades de les tx) + + + How thorough the block verification of -checkblocks is (0-4, default: %u) + Com d'exhaustiva és la verificació de blocs del -checkblocks (0-4, per defecte: %u) + + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + Manté un índex complet de transaccions, utilitzat per la crida rpc getrawtransaction (per defecte: %u) + + + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + Nombre de segons necessaris perquè els iguals de comportament qüestionable puguen tornar a connectar-se (per defecte: %u) + + + Output debugging information (default: %u, supplying <category> is optional) + Informació d'eixida de la depuració (per defecte: %u, proporcionar <category> és opcional) + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + Utilitza un proxy SOCKS4 apart per a arribar als iguals a través de serveis ocults de Tor (per defecte: %s) + + + (default: %s) + (per defecte: %s) + + + Acceptable ciphers (default: %s) + Xifrats acceptables (per defecte: %s) + + + Always query for peer addresses via DNS lookup (default: %u) + Demana sempre les adreces dels iguals a través de consultes DNS (per defecte: %u) + + Error loading wallet.dat Error en carregar wallet.dat + Generate coins (default: %u) + Genera monedes (per defecte: %u) + + + How many blocks to check at startup (default: %u, 0 = all) + Quants blocs per comprovar a l'inici (per defecte: %u, 0 = tots) + + + Include IP addresses in debug output (default: %u) + Inclou l'adreça IP a l'eixida de depuració (per defecte: %u) + + Invalid -proxy address: '%s' Adreça -proxy invalida: '%s' + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + Escolta les connexions JSON-RPC en <port> (per defecte: %u o testnet: %u) + + + Listen for connections on <port> (default: %u or testnet: %u) + Escolta les connexions en <port> (per defecte: %u o testnet: %u) + + + Maintain at most <n> connections to peers (default: %u) + Manté com a màxim <n> connexions a iguals (per defecte: %u) + + + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + Memòria intermèdia màxima de recepció per connexió, <n>*1000 bytes (per defecte: %u) + + + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + Memòria intermèdia màxima d'enviament per connexió, <n>*1000 bytes (per defecte: %u) + + + Prepend debug output with timestamp (default: %u) + Posa davant de l'eixida de depuració una marca horària (per defecte: %u) + + + Relay and mine data carrier transactions (default: %u) + Retransmet i mina les transaccions de l'operador (per defecte: %u) + + + Relay non-P2SH multisig (default: %u) + Retransmet multisig no P2SH (per defecte: %u) + + + Server certificate file (default: %s) + Fitxer de certificat del servidor (per defecte: %s) + + + Server private key (default: %s) + Clau privada del servidor (per defecte: %s) + + + Set key pool size to <n> (default: %u) + Defineix la mida clau disponible a <n> (per defecte: %u) + + + Set minimum block size in bytes (default: %u) + Defineix la mida de bloc mínima en bytes (per defecte: %u) + + + Set the number of threads to service RPC calls (default: %d) + Defineix el nombre de fils a crides de servei RPC (per defecte: %d) + + + Specify configuration file (default: %s) + Especifica el fitxer de configuració (per defecte: %s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + Especifica el temps d'espera de la connexió en milisegons (mínim: 1, per defecte: %d) + + + Specify pid file (default: %s) + Especifica el fitxer pid (per defecte: %s) + + + Spend unconfirmed change when sending transactions (default: %u) + Gasta el canvi no confirmat en enviar les transaccions (per defecte: %u) + + + Threshold for disconnecting misbehaving peers (default: %u) + Llindar per a desconnectar els iguals de comportament qüestionable (per defecte: %u) + + Unknown network specified in -onlynet: '%s' Xarxa desconeguda especificada a -onlynet: '%s' diff --git a/src/qt/locale/bitcoin_cmn.ts b/src/qt/locale/bitcoin_cmn.ts index 3286f126982..28fe96750a2 100644 --- a/src/qt/locale/bitcoin_cmn.ts +++ b/src/qt/locale/bitcoin_cmn.ts @@ -1,6 +1,10 @@ AddressBookPage + + Create a new address + 创建新地址 + AddressTableModel diff --git a/src/qt/locale/bitcoin_cs.ts b/src/qt/locale/bitcoin_cs.ts index 04cd96f4259..b7b184f5f48 100644 --- a/src/qt/locale/bitcoin_cs.ts +++ b/src/qt/locale/bitcoin_cs.ts @@ -3068,17 +3068,29 @@ Adresa: %4 If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) - Pokud paytxfee není nastaveno, platit dostatečný poplatek na to, aby byly transakce potvrzeny v průměru během n bloků (výchozí: %u) + Pokud paytxfee není nastaveno, platit dostatečný poplatek na to, aby začaly být transakce potvrzovány v průměru během n bloků (výchozí: %u) + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Neplatná částka pro -maxtxfee=<amount>: '%s' (musí být alespoň jako poplatek minrelay %s, aby transakce nezůstávaly trčet) Maximum size of data in data carrier transactions we relay and mine (default: %u) Maximální velikost dat v transakcích nesoucích data, se kterou jsme ochotni je ještě přeposílat a těžit (výchozí: %u) + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Horní hranice pro celkový poplatek za jednu transakci z peněženky; příliš nízká hodnota může zmařit velké transakce (výchozí: %s) + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) Při nedostatku adres získat další protějšky z DNS (výchozí: 1, pokud není použito -connect) + Require high priority for relaying free or low-fee transactions (default:%u) + Vyžadovat vysokou prioritu pro přeposílání bezplatných nebo nízkopoplatkových transakcí (výchozí: %u) + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) Nastavit maximální velikost prioritních/nízkopoplatkových transakcí v bajtech (výchozí: %d) @@ -3091,6 +3103,34 @@ Adresa: %4 Tento produkt zahrnuje programy vyvinuté OpenSSL Projektem pro použití v OpenSSL Toolkitu <https://www.openssl.org/> a kryptografický program od Erika Younga a program UPnP od Thomase Bernarda. + To use bitcoind, or the -server option to bitcoin-qt, you must set an rpcpassword in the configuration file: +%s +It is recommended you use the following random password: +rpcuser=bitcoinrpc +rpcpassword=%s +(you do not need to remember this password) +The username and password MUST NOT be the same. +If the file does not exist, create it with owner-readable-only file permissions. +It is also recommended to set alertnotify so you are notified of problems; +for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + K používání bitcoind nebo volby -server u bitcoin-qt musíš nastavit rpcpassword v konfiguračním souboru: +%s +Je vhodné použít následující náhodné heslo: +rpcuser=bitcoinrpc +rpcpassword=%s +(není potřeba si ho pamatovat) +rpcuser a rpcpassword NESMÍ být stejné. +Pokud konfigurační soubor ještě neexistuje, vytvoř ho tak, aby ho mohl číst pouze vlastník. +Je také doporučeno si nastavit alertnotify, abys byl upozorněn na případné problémy; +například: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Upozornění: -maxtxfee je nastaveno velmi vysoko! Takto vysoký poplatek může být zaplacen v jednotlivé transakci. + + Warning: Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly. Upozornění: Zkontroluj, že máš v počítači správně nastavený datum a čas! Pokud jsou nastaveny špatně, Bitcoin Core nebude fungovat správně. @@ -3099,6 +3139,10 @@ Adresa: %4 Na protějšky na bílé listině se nevztahuje DoS klatba a jejich transakce jsou vždy přeposílány, i když už třeba jsou v mempoolu, což je užitečné např. pro bránu + Accept public REST requests (default: %u) + Přijímat veřejné REST požadavky (výchozí: %u) + + Cannot resolve -whitebind address: '%s' Nemohu přeložit -whitebind adresu: '%s' @@ -3139,6 +3183,10 @@ Adresa: %4 Selhala úvodní zevrubná prověrka. Bitcoin Core se ukončuje. + Invalid amount for -maxtxfee=<amount>: '%s' + Neplatná částka pro -maxtxfee=<amount>: '%s' + + Invalid amount for -minrelaytxfee=<amount>: '%s' Neplatná částka pro -minrelaytxfee=<částka>: '%s' @@ -3175,6 +3223,10 @@ Adresa: %4 Možnosti RPC serveru: + RPC support for HTTP persistent connections (default: %d) + Podpora RPC pro perzistentní HTTP spojení (výchozí: %d) + + Randomly drop 1 of every <n> network messages Náhodně zahazovat jednu z každých <n> síťových zpráv diff --git a/src/qt/locale/bitcoin_el_GR.ts b/src/qt/locale/bitcoin_el_GR.ts index 084c9fa753a..69465bde45f 100644 --- a/src/qt/locale/bitcoin_el_GR.ts +++ b/src/qt/locale/bitcoin_el_GR.ts @@ -2,6 +2,10 @@ AddressBookPage + Right-click to edit address or label + Δεξί-κλικ για επεξεργασία της διεύθυνσης ή της ετικέτας + + Create a new address Δημιουργία νέας διεύθυνσης @@ -969,10 +973,18 @@ Address: %4 Διεύθυνση IP του διαμεσολαβητή (π.χ. 127.0.0.1 / IPv6: ::1) + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. + URLs από τρίτους (π.χ. ένας εξερευνητής μπλοκ) τα οποία εμφανίζονται στην καρτέλα συναλλαγών ως στοιχεία μενού. Το %s στα URL αντικαθιστάται από την τιμή της κατατεμαχισμένης συναλλαγής. + + Third party transaction URLs Διευθύνσεις τρίτων συναλλαγών. + Active command-line options that override above options: + Ενεργές επιλογές γραμμής-εντολών που παρακάμπτουν τις παραπάνω επιλογές: + + Reset all client options to default. Επαναφορα όλων των επιλογων του πελάτη σε default. @@ -985,6 +997,10 @@ Address: %4 &Δίκτυο + (0 = auto, <0 = leave that many cores free) + (0 = αυτόματο, <0 = ελεύθεροι πυρήνες) + + W&allet Π&ορτοφόλι @@ -997,6 +1013,14 @@ Address: %4 Επιλογή κατα πόσο να αναδείχνονται οι δυνατότητες ελέγχου κερμάτων. + If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed. + Εάν απενεργοποιήσετε το ξόδεμα μη επικυρωμένων ρέστων, τα ρέστα από μια συναλλαγή δεν μπορούν να χρησιμοποιηθούν έως ότου αυτή η συναλλαγή έχει έστω μια επικύρωση. Αυτό επίσης επηρεάζει το πως υπολογίζεται το υπόλοιπό σας. + + + &Spend unconfirmed change + &Ξόδεμα μη επικυρωμένων ρέστων + + Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. Αυτόματο άνοιγμα των θυρών Bitcoin στον δρομολογητή. Λειτουργεί μόνο αν ο δρομολογητής σας υποστηρίζει τη λειτουργία UPnP. @@ -1156,6 +1180,10 @@ Address: %4 Το τρέχον συνολικό υπόλοιπο + Your current balance in watch-only addresses + Το τρέχον υπόλοιπο σας σε διευθύνσεις παρακολούθησης μόνο + + Spendable: Ξοδεμένα: @@ -1164,6 +1192,18 @@ Address: %4 Πρόσφατες συναλλαγές + Unconfirmed transactions to watch-only addresses + Μη επικυρωμένες συναλλαγές σε διευθύνσεις παρακολούθησης μόνο + + + Mined balance in watch-only addresses that has not yet matured + Εξορυγμένο υπόλοιπο σε διευθύνσεις παρακολούθησης μόνο που δεν έχει ωριμάσει ακόμα + + + Current total balance in watch-only addresses + Το τρέχον συνολικό υπόλοιπο σε διευθύνσεις παρακολούθησης μόνο + + out of sync εκτός συγχρονισμού @@ -1191,6 +1231,10 @@ Address: %4 Η αίτηση πληρωμής δεν έχει αρχίζει ακόμα. + Requested payment amount of %1 is too small (considered dust). + Το ζητούμενο ποσό πληρωμής του %1 είναι πολύ μικρό (θεωρείται σκόνη) + + Payment request error Σφάλμα αιτήματος πληρωμής @@ -1211,6 +1255,18 @@ Address: %4 Επιστροφή ποσού από %1 + Error communicating with %1: %2 + Σφάλμα επικοινωνίας με %1: %2 + + + Payment request cannot be parsed! + Η αίτηση πληρωμής δεν μπορεί να αναλυθεί! + + + Bad response from server %1 + Κακή απάντηση από διακομιστή %1 + + Payment acknowledged Πληρωμή αναγνωρίστηκε @@ -1327,6 +1383,10 @@ Address: %4 Χρησιμοποιηση της OpenSSL εκδοσης + Using BerkeleyDB version + Χρήση BerkeleyDB έκδοσης + + Startup time Χρόνος εκκίνησης @@ -1355,6 +1415,18 @@ Address: %4 Παραλήφθησαν + Sent + Αποστολή + + + &Peers + &Χρήστες + + + Select a peer to view detailed information. + Επιλέξτε ένα χρήστη για να δείτε αναλυτικές πληροφορίες. + + Version Έκδοση @@ -1363,6 +1435,38 @@ Address: %4 Υπηρεσίες + Starting Height + Αρχικό ύψος + + + Sync Height + Ύψος συγχονισμού + + + Ban Score + Σκορ αποκλησμού + + + Connection Time + Χρόνος σύνδεσης + + + Last Send + Τελευταία αποστολή + + + Last Receive + Τελευταία λήψη + + + Bytes Sent + Σταλθέντα bytes + + + Bytes Received + Ληφθέντα bytes + + Ping Time Χρόνος καθυστέρησης @@ -1462,7 +1566,11 @@ Address: %4 Unknown Άγνωστο(α) - + + Fetching... + Ανάκτηση... + + ReceiveCoinsDialog @@ -1478,6 +1586,10 @@ Address: %4 &Μήνυμα: + R&euse an existing receiving address (not recommended) + Ε&παναχρησιμοποίηση υπάρχουσας διεύθυνσης λήψης (δεν συνιστάται) + + Clear all fields of the form. Καθαρισμός όλων των πεδίων της φόρμας. @@ -1494,6 +1606,10 @@ Address: %4 Εμφάνιση + Remove the selected entries from the list + Αφαίρεση επιλεγμένων καταχωρίσεων από τη λίστα + + Remove Αφαίρεση @@ -1521,10 +1637,18 @@ Address: %4 Αντιγραφη της επιλεγμενης διεύθυνσης στο πρόχειρο του συστηματος + Copy &Address + Αντιγραφή &Διεύθυνσης + + &Save Image... &Αποθήκευση εικόνας... + Request payment to %1 + Αίτηση πληρωμής για %1 + + Payment information Πληροφορίες πληρωμής @@ -1599,6 +1723,10 @@ Address: %4 Χαρακτηρηστικά επιλογής κερμάτων + Inputs... + Εισροές... + + automatically selected επιλεγμένο αυτόματα @@ -1635,6 +1763,14 @@ Address: %4 Ρέστα: + If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. + Όταν ενεργό, αλλά η διεύθυνση ρέστων είναι κενή ή άκυρη, τα ρέστα θα σταλούν σε μία πρόσφατα δημιουργημένη διεύθυνση. + + + Custom change address + Προσαρμοσμένη διεύθυνση ρέστων + + Transaction Fee: Τέλος συναλλαγής: @@ -1647,8 +1783,32 @@ Address: %4 Ελαχιστοποίηση + per kilobyte + ανά kilobyte + + + Recommended: + Προτεινόμενο: + + + Custom: + Προσαρμογή: + + + Confirmation time: + Χρόνος επικύρωσης: + + + normal + κανονικό + + fast - Γρήγορο + γρήγορο + + + (confirmation may take longer) + (η επικύρωση ίσως χρειαστεί περισσότερο χρόνο) Send to multiple recipients at once @@ -1794,6 +1954,14 @@ Address: %4 Επιλογή διεύθυνσης που έχει ήδη χρησιμοποιηθεί + This is a normal payment. + Αυτή είναι μια απλή πληρωμή. + + + The Bitcoin address to send the payment to + Η διεύθυνση Bitcoin που θα σταλεί η πληρωμή + + Alt+A Alt+A @@ -1814,6 +1982,14 @@ Address: %4 Μήνυμα: + Enter a label for this address to add it to the list of used addresses + Εισάγεται μία ετικέτα για αυτή την διεύθυνση για να προστεθεί στη λίστα με τις χρησιμοποιημένες διευθύνσεις + + + This is an unverified payment request. + Αυτή είναι μία ανεπιβεβαίωτη αίτηση πληρωμής. + + Pay To: Πληρωμή σε: @@ -2354,6 +2530,10 @@ Address: %4 Επιτυχής εξαγωγή + The transaction history was successfully saved to %1. + Το ιστορικό συναλλαγών αποθηκεύτηκε επιτυχώς στο %1. + + Comma separated file (*.csv) Αρχείο οριοθετημένο με κόμματα (*.csv) @@ -2392,7 +2572,11 @@ Address: %4 UnitDisplayStatusBarControl - + + Unit to show amounts in. Click to select another unit. + Μονάδα μέτρησης προβολής ποσών. Κάντε κλικ για επιλογή άλλης μονάδας. + + WalletFrame @@ -2430,6 +2614,10 @@ Address: %4 Αποτυχία κατά τη δημιουργία αντιγράφου + There was an error trying to save the wallet data to %1. + Παρουσιάστηκε σφάλμα κατά την αποθήκευση των δεδομένων πορτοφολιού στο %1. + + The wallet data was successfully saved to %1. Τα δεδομένα πορτοφολιού αποθηκεύτηκαν με επιτυχία στο %1. @@ -2477,6 +2665,10 @@ Address: %4 Αποθηκευση σε συγκεκριμένη διεύθυνση. Χρησιμοποιήστε τα πλήκτρα [Host] : συμβολισμός θύρα για IPv6 + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + Εισαγωγή δοκιμαστικής λειτουργίας παλινδρόμησης, που χρησιμοποιεί μια ειδική αλυσίδα στην οποία τα μπλοκ επιλύονται στιγμιαία. + + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Εκτέλεσε την εντολή όταν το καλύτερο μπλοκ αλλάξει(%s στην εντολή αντικαθίσταται από το hash του μπλοκ) @@ -2569,6 +2761,10 @@ Address: %4 Δεν ειναι αρκετες περιγραφες αρχείων διαθέσιμες. + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + Μόνο σύνδεση σε κόμβους του δικτύου <net> (ipv4, ipv6 ή onion) + + Rebuild block chain index from current blk000??.dat files Εισαγωγή μπλοκ από εξωτερικό αρχείο blk000?.dat @@ -2577,6 +2773,10 @@ Address: %4 Επιλέξτε αρχείο πορτοφολιού (μέσα απο κατάλογο δεδομένων) + This is intended for regression testing tools and app development. + Αυτό προορίζεται για εργαλεία δοκιμών παλινδρόμησης και την ανάπτυξη εφαρμογών. + + Verifying blocks... Επαλήθευση των μπλοκ... @@ -2585,6 +2785,10 @@ Address: %4 Επαλήθευση πορτοφολιου... + Wallet %s resides outside data directory %s + Το πορτοφόλι %s βρίσκεται έξω από το φάκελο δεδομένων %s + + Wallet options: Επιλογές πορτοφολιού: @@ -2597,6 +2801,10 @@ Address: %4 Αδυναμία κλειδώματος του φακέλου δεδομένων %s. Πιθανώς το Bitcoin να είναι ήδη ενεργό. + Warning: Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly. + Προειδοποίηση: Παρακαλώ ελέγξτε ότι η ημερομηνία και ώρα του υπολογιστή σας είναι σωστά ρυθμισμένες! Εάν το ρολόι σας είναι λάθος το Bitcoin Core δεν θα λειτουργήσει σωστά. + + Connect through SOCKS5 proxy Σύνδεση μέσω διαμεσολαβητή SOCKS5 @@ -2609,6 +2817,10 @@ Address: %4 Σφάλμα φόρτωσης wallet.dat: Το Πορτοφόλι απαιτεί μια νεότερη έκδοση του Bitcoin + Error reading from database, shutting down. + Σφάλμα ανάγνωσης από τη βάση δεδομένων, γίνεται τερματισμός. + + Error: Unsupported argument -tor found, use -onion. Σφάλμα: Μη συμβατή παράμετρος -tor. Χρησιμοποιήσε την παράμετρο -onion @@ -2617,6 +2829,10 @@ Address: %4 Πληροφορία + Initialization sanity check failed. Bitcoin Core is shutting down. + Η εκκίνηση ελέγχου ορθότητας απέτυχε. Γίνεται τερματισμός του Bitcoin Core. + + Invalid amount for -minrelaytxfee=<amount>: '%s' Μη έγκυρο ποσό για την παράμετρο -paytxfee=<amount>: '%s' @@ -2625,14 +2841,26 @@ Address: %4 Μη έγκυρο ποσό για την παράμετρο -paytxfee=<amount>: '%s' + Node relay options: + Επιλογές αναμετάδοσης κόμβου: + + RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) Ρυθμίσεις SSL: (ανατρέξτε στο Bitcoin Wiki για οδηγίες ρυθμίσεων SSL) + RPC server options: + Επιλογές διακομιστή RPC: + + Send trace/debug info to console instead of debug.log file Αποστολή πληροφοριών εντοπισμού σφαλμάτων στην κονσόλα αντί του αρχείου debug.log + Show all debugging options (usage: --help -help-debug) + Προβολή όλων των επιλογών εντοπισμού σφαλμάτων (χρήση: --help -help-debug) + + Shrink debug.log file on client startup (default: 1 when no -debug) Συρρίκνωση του αρχείο debug.log κατα την εκκίνηση του πελάτη (προεπιλογή: 1 όταν δεν-debug) diff --git a/src/qt/locale/bitcoin_en.ts b/src/qt/locale/bitcoin_en.ts index 0f13916c1c8..1e8765c9e17 100644 --- a/src/qt/locale/bitcoin_en.ts +++ b/src/qt/locale/bitcoin_en.ts @@ -2561,7 +2561,7 @@ Address: %4 - Total Amount %1 (= %2) + Total Amount %1<span style='font-size:10pt;font-weight:normal;'><br />(=%2)</span> @@ -3584,27 +3584,27 @@ Address: %4 Options: - + Specify data directory Specify data directory - + Connect to a node to retrieve peer addresses, and disconnect Connect to a node to retrieve peer addresses, and disconnect - + Specify your own public address Specify your own public address - + Accept command line and JSON-RPC commands Accept command line and JSON-RPC commands - + Run in the background as a daemon and accept commands Run in the background as a daemon and accept commands @@ -3614,7 +3614,7 @@ Address: %4 Use the test network - + Accept connections from outside (default: 1 if no -proxy or -connect) Accept connections from outside (default: 1 if no -proxy or -connect) @@ -3769,12 +3769,7 @@ Address: %4 Error opening block database - - Error: A fatal internal error occured, see debug.log for details - - - - + Error: Disk space is low! Error: Disk space is low! @@ -3819,7 +3814,7 @@ Address: %4 Rebuild block chain index from current blk000??.dat files - + Set database cache size in megabytes (%d to %d, default: %d) @@ -3869,7 +3864,7 @@ Address: %4 You need to rebuild the database using -reindex to change -txindex - + Imports blocks from external blk000??.dat file Imports blocks from external blk000??.dat file @@ -4044,7 +4039,12 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. - + + Error: A fatal internal error occurred, see debug.log for details + + + + Error: Unsupported argument -tor found, use -onion. @@ -4129,7 +4129,12 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. - + + Receive and display P2P network alerts (default: %u) + + + + Send trace/debug info to console instead of debug.log file Send trace/debug info to console instead of debug.log file @@ -4234,7 +4239,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. wallet.dat corrupt, salvage failed - + Password for JSON-RPC connections Password for JSON-RPC connections @@ -4244,7 +4249,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. Execute command when the best block changes (%s in cmd is replaced by block hash) - + Upgrade wallet to latest format Upgrade wallet to latest format @@ -4264,7 +4269,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. This help message - + Allow DNS lookups for -addnode, -seednode and -connect Allow DNS lookups for -addnode, -seednode and -connect @@ -4409,7 +4414,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. - + Relay and mine data carrier transactions (default: %u) @@ -4489,7 +4494,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. Unknown network specified in -onlynet: '%s' - + Cannot resolve -bind address: '%s' Cannot resolve -bind address: '%s' @@ -4534,12 +4539,12 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. Cannot write default address - + Rescanning... Rescanning... - + Done loading Done loading diff --git a/src/qt/locale/bitcoin_eo.ts b/src/qt/locale/bitcoin_eo.ts index e84dac6b1e5..411bb5614e6 100644 --- a/src/qt/locale/bitcoin_eo.ts +++ b/src/qt/locale/bitcoin_eo.ts @@ -2,6 +2,10 @@ AddressBookPage + Right-click to edit address or label + Dekstre-klaku por redakti adreson aŭ etikedon + + Create a new address Krei novan adreson @@ -89,7 +93,11 @@ Exporting Failed ekspotado malsukcesinta - + + There was an error trying to save the address list to %1. Please try again. + Okazis eraron dum konservo de adreslisto al %1. Bonvolu provi denove. + + AddressTableModel @@ -339,6 +347,10 @@ &Ricevi + Show information about Bitcoin Core + Vidigi informon pri Bitmona Kerno + + &Show / Hide &Montri / Kaŝi @@ -521,6 +533,10 @@ Adreso: %4 Krompago: + Dust: + Polvo: + + After Fee: Post krompago: @@ -545,6 +561,14 @@ Adreso: %4 Sumo + Received with label + Ricevita kun etikedo + + + Received with address + Ricevita kun adreso + + Date Dato @@ -605,6 +629,10 @@ Adreso: %4 Kopii prioritaton + Copy dust + Kopii polvon + + Copy change Kopii restmonon @@ -915,6 +943,10 @@ Adreso: %4 &Reto + Expert + Fakulo + + Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. Aŭtomate malfermi la kursilan pordon por Bitmono. Tio funkcias nur se via kursilo havas la UPnP-funkcion, kaj se tiu ĉi estas ŝaltita. @@ -1181,6 +1213,10 @@ Adreso: %4 Aktuala nombro de blokoj + Bytes Sent + Bajtoj Senditaj: + + Last block time Horo de la lasta bloko @@ -1453,6 +1489,10 @@ Adreso: %4 Malplenigi ĉiujn kampojn de la formularo. + Dust: + Polvo: + + Clear &All &Forigi ĉion @@ -1545,6 +1585,10 @@ Adreso: %4 (neniu etikedo) + Copy dust + Kopii polvon + + Are you sure you want to send? Ĉu vi certas, ke vi volas sendi? diff --git a/src/qt/locale/bitcoin_es_CL.ts b/src/qt/locale/bitcoin_es_CL.ts index 4495d9bd50e..6f8a4b4c58a 100644 --- a/src/qt/locale/bitcoin_es_CL.ts +++ b/src/qt/locale/bitcoin_es_CL.ts @@ -212,7 +212,7 @@ Show information about Qt - Mostrar Información sobre QT + Mostrar Información sobre Qt &Options... diff --git a/src/qt/locale/bitcoin_fa.ts b/src/qt/locale/bitcoin_fa.ts index 2f9a1c73451..a8a84bab2bb 100644 --- a/src/qt/locale/bitcoin_fa.ts +++ b/src/qt/locale/bitcoin_fa.ts @@ -2,6 +2,10 @@ AddressBookPage + Right-click to edit address or label + برای تغییر آدرس و یا برچسب کلیک راست کنید. + + Create a new address ایجاد نشانی جدید @@ -42,10 +46,30 @@ &حذف + Choose the address to send coins to + آدرس مورد نظر برای ارسال کوین ها را انتخاب کنید + + + Choose the address to receive coins with + آدرس موردنظر برای دریافت کوین ها را انتخاب کنید. + + + Sending addresses + آدرس های ارسال کننده + + + Receiving addresses + آدرس های دریافت کننده + + These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. این‌ها نشانی‌های بیت‌کوین شما برای ارسال وجود هستند. همیشه قبل از ارسال سکه‌ها، نشانی دریافت‌کننده و مقدار ارسالی را بررسی کنید. + These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + این‌ها نشانی‌های بیت‌کوین شما برای دریافت وجوه هستند. توصیه می‌شود یک نشانی دریافت جدید برای هر تبادل استفاده کنید. + + Copy &Label کپی و برچسب‌&گذاری @@ -152,6 +176,10 @@ کیف پول رمزنگاری شد + 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>. + رمز جدید کیف پول خود را وارد کنید.<br/>از رمز عبوری استفاده کنید که<b> حداقل 10 کاراکتر تصادفی </b> و یا <b> حداقل 8 حرف داشته باشد.</b> + + 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. بیت‌کوین هم اکنون بسته می‌شود تا فرایند رمزگذاری را تمام کند. به خاطر داشته باشید که رمزگذاری کردن کیف پول‌تان نمی‌تواند به طور کامل بیت‌کوین‌های شما را در برابر دزدیده شدن توسط بدافزارهایی که احتمالاً رایانهٔ شما را آلوده می‌کنند، محافظت نماید. @@ -199,6 +227,10 @@ &بررسی اجمالی + Node + گره + + Show general overview of wallet نمایش بررسی اجمالی کیف پول @@ -243,6 +275,18 @@ &تغییر گذرواژه... + &Sending addresses... + $ارسال آدرس ها... + + + &Receiving addresses... + &در حال دریافت آدرس ها... + + + Open &URI... + باز کردن &آدرس + + Importing blocks from disk... دریافت بلوک‌ها از دیسک... @@ -295,6 +339,10 @@ &دریافت + Show information about Bitcoin Core + نمایش اطلاعات در مورد بیت‌کوین + + &Show / Hide &نمایش/ عدم نمایش @@ -334,6 +382,18 @@ Bitcoin Core هسته Bitcoin + + &About Bitcoin Core + درباره هسته ی بیت کوین + + + Show the list of used sending addresses and labels + نمایش لیست آدرس های ارسال و لیبل ها + + + Show the list of used receiving addresses and labels + نمایش لیست آدرس های دریافت و لیبل ها + %n active connection(s) to Bitcoin network %n ارتباط فعال با شبکهٔ بیت‌کوین @@ -425,22 +485,74 @@ Address: %4 CoinControlDialog + Coin Selection + انتخاب سکه + + + Quantity: + تعداد: + + + Bytes: + بایت ها: + + Amount: مبلغ: + Priority: + اولویت: + + + Fee: + هزینه: + + + After Fee: + هزینه ی پسین: + + + Change: + پول خورد: + + + Tree mode + مدل درختی + + + List mode + مدل لیست + + Amount مبلغ + Received with label + دریافت شده با برچسب + + + Received with address + دریافت شده با نشانی + + Date تاریخ + Confirmations + تاییدیه ها + + Confirmed تأیید شده + Priority + اولویت + + Copy address کپی نشانی @@ -457,6 +569,46 @@ Address: %4 کپی شناسهٔ تراکنش + highest + بیشترین + + + higher + بیشتر + + + high + زیاد + + + medium-high + متوسط رو به بالا + + + medium + متوسط + + + low-medium + متوسط متمایل به کم + + + low + کم + + + lower + کمتر + + + lowest + کمترین + + + none + هیچکدام + + yes بله @@ -468,7 +620,11 @@ Address: %4 (no label) (بدون برچسب) - + + (change) + (تغییر) + + EditAddressDialog @@ -550,6 +706,10 @@ Address: %4 نسخه + About Bitcoin Core + درباره هسته ی بیت کوین + + Command-line options گزینه‌های خط‌فرمان @@ -589,6 +749,14 @@ Address: %4 خوش‌آمدید + Welcome to Bitcoin Core. + به هسته بیت کوین خوش آمدید. + + + As this is the first time the program is launched, you can choose where Bitcoin Core will store its data. + از آنجایی که این اولین اجرای برنامه است، شما می‌توانید مسیر ذخیرهٔ داده‌ها را انتخاب کنید. + + Use the default data directory استفاده از مسیر پیش‌فرض @@ -715,6 +883,10 @@ Address: %4 پیش‌فرض + none + هیچکدام + + Confirm options reset تأییدِ بازنشانی گزینه‌ها @@ -758,6 +930,10 @@ Address: %4 تراز استخراج شده از معدن که هنوز بالغ نشده است + Balances + تراز ها + + Total: جمع کل: @@ -766,6 +942,14 @@ Address: %4 تراز کل فعلی شما + Spendable: + :قابل خرج کردن + + + Recent transactions + تراکنش های اخیر + + out of sync ناهمگام @@ -777,6 +961,14 @@ Address: %4 مدیریت URI + Payment request rejected + درخواست پرداخت رد شد. + + + Payment request error + خطای درخواست پرداخت + + Cannot start bitcoin: click-to-pay handler نمی‌توان بیت‌کوین را اجرا کرد: کنترل‌کنندهٔ کلیک-و-پرداخت @@ -791,6 +983,10 @@ Address: %4 مبلغ + None + هیچکدام + + N/A ناموجود @@ -849,6 +1045,22 @@ Address: %4 تعداد فعلی بلوک‌ها + Received + دریافتی + + + Sent + ارسال شده + + + Version + نسخه + + + Services + سرویس ها + + Last block time زمان آخرین بلوک @@ -904,6 +1116,14 @@ Address: %4 &برچسب: + Show + نمایش + + + Remove + حذف کردن + + Copy label کپی برچسب @@ -973,10 +1193,38 @@ Address: %4 ارسال سکه + Quantity: + تعداد: + + + Bytes: + بایت ها: + + Amount: مبلغ: + Priority: + اولویت: + + + Fee: + هزینه: + + + After Fee: + هزینه ی پسین: + + + Change: + پول خورد: + + + fast + سریع + + Send to multiple recipients at once ارسال به چند دریافت‌کنندهٔ به‌طور همزمان @@ -1036,6 +1284,10 @@ Address: %4 (no label) (بدون برچسب) + + Are you sure you want to send? + آیا مطمئن هستید که می خواهید ارسال کنید؟ + SendCoinsEntry @@ -1056,6 +1308,18 @@ Address: %4 &برچسب: + Choose previously used address + انتخاب نشانی پیش‌تر استفاده شده + + + This is a normal payment. + این یک پرداخت عادی است + + + The Bitcoin address to send the payment to + نشانی بیت‌کوین برای ارسال پرداخت به آن + + Alt+A Alt+A @@ -1068,6 +1332,10 @@ Address: %4 Alt+P + Remove this entry + حذف این مدخل + + Message: پیام: @@ -1090,6 +1358,14 @@ Address: %4 برای احراز اینکه پیام‌ها از جانب شما هستند، می‌توانید آن‌ها را با نشانی خودتان امضا کنید. مراقب باشید چیزی که بدان اطمینان ندارید را امضا نکنید زیرا حملات فیشینگ ممکن است بخواهند از.پیامی با امضای شما سوءاستفاده کنند. تنها مواردی را که حاوی اطلاعات دقیق و قابل قبول برای شما هستند امضا کنید. + The Bitcoin address to sign the message with + نشانی بیت‌کوین برای امضاء پیغام با آن + + + Choose previously used address + انتخاب نشانی پیش‌تر استفاده شده + + Alt+A Alt+A @@ -1138,6 +1414,10 @@ Address: %4 برای شناسایی پیام، نشانیِ امضا کننده و متن پیام را وارد کنید. (مطمئن شوید که فاصله‌ها، تب‌ها و خطوط را عیناً کپی می‌کنید.) مراقب باشید در امضا چیزی بیشتر از آنچه در پیام می‌بینید وجود نداشته باشد تا فریب دزدان اینترنتی و حملات از نوع MITM را نخورید. + The Bitcoin address the message was signed with + نشانی بیت‌کوین که پیغام با آن امضاء شده + + Verify the message to ensure it was signed with the specified Bitcoin address برای حصول اطمینان از اینکه پیام با نشانی بیت‌کوین مشخص شده امضا است یا خیر، پیام را شناسایی کنید @@ -1209,13 +1489,21 @@ Address: %4 هسته Bitcoin + The Bitcoin Core developers + توسعه‌دهندگان هسته بیت‌کوین + + [testnet] آزمایش شبکه TrafficGraphWidget - + + KB/s + کیلوبایت + + TransactionDesc @@ -1520,6 +1808,10 @@ Address: %4 استخراج انجام نشد + Exporting Successful + استخراج موفق + + Comma separated file (*.csv) پروندهٔ نوع CSV جداشونده با کاما (*.csv) @@ -1679,10 +1971,22 @@ Address: %4 خطا در بازگشایی پایگاه داده ی بلوک + Error: A fatal internal error occured, see debug.log for details + خطا: یک خطای داخلی مهلک روی داد، debug.log را برای جزئیات ببینید + + + Error: Disk space is low! + خطا: فضای دیسک کم است! + + Failed to listen on any port. Use -listen=0 if you want this. شنیدن هر گونه درگاه انجام پذیر نیست. ازlisten=0 برای اینکار استفاده کیند. + Importing... + در حال پیاده‌سازی... + + Verifying blocks... در حال بازبینی بلوک ها... @@ -1691,6 +1995,10 @@ Address: %4 در حال بازبینی کیف پول... + Warning: Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly. + هشدار: تاریخ و ساعت کامپیوتر خود را بررسی کنید. اگر ساعت درست نباشد هسته بیت‌کوین به درستی کار نخواهد کرد. + + Information اطلاعات diff --git a/src/qt/locale/bitcoin_fa_IR.ts b/src/qt/locale/bitcoin_fa_IR.ts index 0a3071a6c7d..7afb042da46 100644 --- a/src/qt/locale/bitcoin_fa_IR.ts +++ b/src/qt/locale/bitcoin_fa_IR.ts @@ -14,18 +14,54 @@ کپی کردن حساب انتخاب شده به حافظه سیستم - کلیپ بورد + &Copy + کپی + + + C&lose + بستن + + &Copy Address و کپی آدرس + Delete the currently selected address from the list + حذف آدرس های انتخاب شده از لیست + + Export the data in the current tab to a file صدور داده نوار جاری به یک فایل + &Export + صدور + + &Delete و حذف + Choose the address to send coins to + انتخاب آدرس جهت ارسال کوین ها + + + Choose the address to receive coins with + انتخاب آدرس جهت دریافت کوین ها از آن + + + C&hoose + انتخاب + + + Sending addresses + ارسال آدرس ها + + + Receiving addresses + دریافت آدرس ها + + Copy &Label کپی و برچسب @@ -34,10 +70,22 @@ و ویرایش + Export Address List + صدور لیست آدرس + + Comma separated file (*.csv) Comma separated file (*.csv) فایل جداگانه دستوری - + + Exporting Failed + صدور با شکست مواجه شد + + + There was an error trying to save the address list to %1. Please try again. + خطایی به هنگام ذخیره لیست آدرس در %1 رخ داده است. لطفا دوباره تلاش کنید. + +
AddressTableModel @@ -56,6 +104,10 @@ AskPassphraseDialog + Passphrase Dialog + دیالوگ رمزعبور + + Enter passphrase رمز/پَس فرِیز را وارد کنید @@ -100,6 +152,10 @@ رمزگذاری wallet را تایید کنید + Warning: The Caps Lock key is on! + اخطار: کلید Caps Lock فعال است! + + Wallet encrypted تایید رمزگذاری @@ -131,7 +187,11 @@ Wallet decryption failed کشف رمز wallet انجام نشد - + + Wallet passphrase was successfully changed. + رمز عبور کیف پول با موفقیت تغییر کرد. + +
BitcoinGUI @@ -168,11 +228,11 @@ About &Qt - درباره و QT + درباره و Qt Show information about Qt - نمایش اطلاعات درباره QT + نمایش اطلاعات درباره Qt &Options... @@ -609,10 +669,26 @@ Address: %4 Message: پیام: - + + Pay To: + پرداخت به: + + + Memo: + یادداشت: + + ShutdownWindow - + + Bitcoin Core is shutting down... + هسته بیت کوین در حال خاموش شدن است... + + + Do not shut down the computer until this window disappears. + تا پیش از بسته شدن این پنجره کامپیوتر خود را خاموش نکنید. + + SignVerifyMessageDialog @@ -846,6 +922,14 @@ Address: %4 برچسب را ویرایش کنید + Exporting Failed + صدور با شکست مواجه شد + + + Exporting Successful + صدور با موفقیت انجام شد + + Comma separated file (*.csv) Comma separated file (*.csv) فایل جداگانه دستوری @@ -898,6 +982,10 @@ Address: %4 WalletView + &Export + صدور + + Export the data in the current tab to a file صدور داده نوار جاری به یک فایل @@ -938,10 +1026,22 @@ Address: %4 از تستِ شبکه استفاده نمایید + RPC server options: + گزینه های سرویس دهنده RPC: + + + Randomly drop 1 of every <n> network messages + حذف تصادفی 1 مورد از هر <n> مورد پیغام های شبکه + + Send trace/debug info to console instead of debug.log file ارسال اطلاعات پیگیری/خطایابی به کنسول به جای ارسال به فایل debug.log + Send transactions as zero-fee transactions if possible (default: %u) + ارسال تراکنش ها به صورت بدون کارمزد در صورت امکان (پیش فرض: %u) + + Username for JSON-RPC connections شناسه کاربری برای ارتباطاتِ JSON-RPC @@ -982,6 +1082,22 @@ Address: %4 خطا در هنگام لود شدن wallet.dat + Set minimum block size in bytes (default: %u) + تنظیم کمینه اندازه بلاک بر حسب بایت (پیش فرض: %u) + + + Set the number of threads to service RPC calls (default: %d) + تنظیم تعداد ریسمان ها برای سرویس دهی فراخوانی های RPC (پیش فرض: %d) + + + Specify configuration file (default: %s) + فایل تنظیمات را مشخص کنید (پیش فرض: %s) + + + Specify pid file (default: %s) + فایل pid را مشخص کنید (پیش فرض: %s) + + Invalid amount for -paytxfee=<amount>: '%s' میزان اشتباه است for -paytxfee=<amount>: '%s' diff --git a/src/qt/locale/bitcoin_fi.ts b/src/qt/locale/bitcoin_fi.ts index c16e0e17768..91e7891da82 100644 --- a/src/qt/locale/bitcoin_fi.ts +++ b/src/qt/locale/bitcoin_fi.ts @@ -264,7 +264,7 @@ Show information about Qt - Näytä tietoja QT:ta + Näytä tietoja Qt:ta &Options... @@ -1276,6 +1276,10 @@ Osoite: %4 Maksupyynnön tiedoston käsittely + Payment request file cannot be read! This can be caused by an invalid payment request file. + Maksupyynnön tiedostoa ei voida lukea! Tämä voi aiheutua sopimattomasta maksupyyntötiedostosta. + + Unverified payment requests to custom payment scripts are unsupported. Varmistamattomia maksupyyntöjä kustomoituun maksupalveluun ei tueta. @@ -1284,6 +1288,10 @@ Osoite: %4 Maksupalautus %1:sta + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + Maksupyyntö %1 on liian suuri (%2 tavua, sallittu %3 tavua). + + Payment request DoS protection Maksupyynnön DoS-suojaus @@ -1292,6 +1300,10 @@ Osoite: %4 Virhe kommunikoidessa %1n kanssa: %2 + Payment request cannot be parsed! + Maksupyyntöä ei voida jäsentää! + + Bad response from server %1 Huono vastaus palvelimelta %1 @@ -2000,10 +2012,18 @@ Osoite: %4 Rahansiirto hylättiin! Tämä saattaa tapahtua jos lompakossa olevat kolikot on jo kulutettu, kuten jos käytät kopioita wallet.dat tiedostosta ja kolikot oli jos käytetty mutta ei merkattu täällä. + A fee higher than %1 is considered an insanely high fee. + Rahansiirtokulua %1 ja sitä suurempia määriä pidetään järjettöminä. + + Pay only the minimum fee of %1 Maksa vain vähimmäiskulu %1 + Estimated to begin confirmation within %1 block(s). + Vahvistuminen alkaa arviolta %1 lohkon päästä. + + Warning: Invalid Bitcoin address Varoitus: Virheellinen Bitcoin osoite @@ -2532,6 +2552,10 @@ Osoite: %4 Rahansiirron laatu. + Whether or not a watch-only address is involved in this transaction. + Onko rahansiirrossa mukana ainoastaan katseltava osoite vai ei. + + Destination address of transaction. Rahansiirron kohteen Bitcoin-osoite @@ -2882,6 +2906,10 @@ Osoite: %4 Virhe avattaessa lohkoindeksiä + Error: A fatal internal error occured, see debug.log for details + Virhe: Sisäinen kriittinen virhe kohdattiin, katso debug.log:sta lisätietoja + + Error: Disk space is low! Varoitus: Levytila on vähissä! @@ -2910,6 +2938,10 @@ Osoite: %4 Ei tarpeeksi tiedostomerkintöjä vapaana. + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + Yhdistä vain solmukohtiin <net>-verkossa (ipv4, ipv6 tai onion) + + Rebuild block chain index from current blk000??.dat files Uudelleenrakenna lohkoketjuindeksi nykyisistä blk000??.dat tiedostoista @@ -2974,6 +3006,14 @@ Osoite: %4 Aseta kolikoiden luomiseen tarkoitettujen säikeiden lukumäärä (-1 = kaikki ytimet, oletus: %d) + Accept public REST requests (default: %u) + Hyväksy julkisia REST-pyyntöjä (oletus: %u) + + + Cannot resolve -whitebind address: '%s' + -whitebind -osoitetta '%s' ei voida jäsentää + + Connect through SOCKS5 proxy Yhdistä SOCKS5 proxin kautta @@ -2986,6 +3026,10 @@ Osoite: %4 Virhe ladattaessa wallet.dat-tiedostoa: Tarvitset uudemman version Bitcoinista + Error reading from database, shutting down. + Virheitä tietokantaa luettaessa, ohjelma pysäytetään. + + Information Tietoa @@ -3010,6 +3054,10 @@ Osoite: %4 RPC-palvelimen valinnat: + RPC support for HTTP persistent connections (default: %d) + RPC-tuki pysyville HTTP-yhteyksille (oletus: %d) + + Randomly drop 1 of every <n> network messages Satunnaisesti pudota 1 joka <n> verkkoviestistä @@ -3118,6 +3166,10 @@ Osoite: %4 Virhe ladattaessa wallet.dat-tiedostoa: Lompakko vioittunut + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + Käytä erillistä SOCKS5-proxyä tavoittaaksesi vertaisia Tor-piilopalveluiden kautta (oletus: %s) + + (default: %s) (oletus: %s) @@ -3150,6 +3202,10 @@ Osoite: %4 Virheellinen proxy-osoite '%s' + Listen for connections on <port> (default: %u or testnet: %u) + Kuuntele yhteyksiä portissa <port> (oletus: %u tai testnet: %u) + + Relay non-P2SH multisig (default: %u) Välitä ei-P2SH-multisig (oletus: %u) @@ -3182,6 +3238,10 @@ Osoite: %4 Määritä pid-tiedosto (oletus: %s) + Spend unconfirmed change when sending transactions (default: %u) + Käytä vahvistamattomia vaihtorahoja lähetettäessä rahansiirtoja (oletus: %u) + + Unknown network specified in -onlynet: '%s' Tuntematon verkko -onlynet parametrina: '%s' diff --git a/src/qt/locale/bitcoin_hr.ts b/src/qt/locale/bitcoin_hr.ts index c4dc0ded97c..7ca8a102991 100644 --- a/src/qt/locale/bitcoin_hr.ts +++ b/src/qt/locale/bitcoin_hr.ts @@ -2,6 +2,10 @@ AddressBookPage + Right-click to edit address or label + Desni klik za uređivanje adresa i oznaka + + Create a new address Dodajte novu adresu @@ -406,11 +410,35 @@ Show the list of used receiving addresses and labels Prikaži popis korištenih adresa i oznaka za primanje isplate + + Open a bitcoin: URI or payment request + Otvori bitcoin: URI adresu ili zahtjev za uplatu + + + &Command-line options + Opcije &naredbene linije + + + Show the Bitcoin Core help message to get a list with possible Bitcoin command-line options + Ispis svih opcija naredbene linije programa sa kratkim opisom + %n active connection(s) to Bitcoin network %n aktivna veza na Bitcoin mrežu%n aktivne veze na Bitcoin mrežu%n aktivnih veza na Bitcoin mrežu + %1 and %2 + %1 i %2 + + + Last received block was generated %1 ago. + Zadnji primljeni blok je bio ustvaren prije %1. + + + Transactions after this will not yet be visible. + Transakcije izvršene za tim blokom nisu jop prikazane. + + Error Greška @@ -465,22 +493,70 @@ Adresa:%4 CoinControlDialog + Coin Selection + Izbor ulaza transakcije + + + Quantity: + Količina: + + + Bytes: + Bajtova: + + Amount: Iznos: + Priority: + Prioriteta: + + + Fee: + Naknada: + + + Dust: + Prah: + + + Change: + Vraćeno: + + + (un)select all + Izaberi sve/ništa + + Amount Iznos + Received with label + Primljeno pod oznakom + + + Received with address + Primljeno na adresu + + Date Datum + Confirmations + Broj potvrda + + Confirmed Potvrđeno + Priority + Prioriteta + + Copy address Kopirati adresu @@ -493,6 +569,58 @@ Adresa:%4 Kopiraj iznos + Copy transaction ID + Kopiraj ID transakcije + + + highest + najviša + + + higher + viša + + + high + visoka + + + medium-high + srednje visoka + + + medium + srednja + + + low-medium + srednje niska + + + low + niska + + + lower + niža + + + lowest + najniža + + + yes + da + + + no + ne + + + Transactions with higher priority are more likely to get included into a block. + Transakcije više prioritete imaju veću vjerojatnost da budu prije dodane u novi blok. + + (no label) (bez oznake) @@ -508,6 +636,14 @@ Adresa:%4 &Oznaka + The label associated with this address list entry + Oznaka adrese + + + The address associated with this address list entry. This can only be modified for sending addresses. + Bitcoin adresa. Izmjene adrese su moguće samo za adrese za slanje. + + &Address &Adresa @@ -547,10 +683,18 @@ Adresa:%4 FreespaceChecker + A new data directory will be created. + Stvoren će biti novi direktorij za podatke. + + name ime - + + Cannot create data directory here. + Nije moguće stvoriti direktorij za podatke na tom mjestu. + + HelpMessageDialog @@ -562,14 +706,26 @@ Adresa:%4 verzija + (%1-bit) + (%1-bit) + + About Bitcoin Core O Bitcoin Jezrgu + Command-line options + Opcije programa u naredbenoj liniji + + Usage: Upotreba: + command-line options + opcije programa u naredbenoj liniji + + UI options UI postavke @@ -585,6 +741,10 @@ Adresa:%4 Dobrodošli + Welcome to Bitcoin Core. + Dobrodošli u programu Bitcoin Core. + + Bitcoin Core Bitcoin Jezgra @@ -595,7 +755,27 @@ Adresa:%4 OpenURIDialog - + + Open URI + Otvori URI adresu + + + Open payment request from URI or file + Otvori zahtjev za plaćanje iz URI adrese ili datoteke + + + URI: + URI: + + + Select payment request file + Izaberi datoteku zahtjeva za plaćanje + + + Select payment request file to open + Izaberi datoteku zahtjeva za plaćanje + + OptionsDialog @@ -615,10 +795,46 @@ Adresa:%4 &Pokreni Bitcoin kod pokretanja sustava + Size of &database cache + Veličina predmemorije baze podataka + + + MB + MB + + + Number of script &verification threads + Broj CPU niti za verifikaciju transakcija + + + Allow incoming connections + Dozvoli povezivanje izvana + + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + IP adresa proxy servera (npr. IPv4: 127.0.0.1 / IPv6: ::1) + + + Reset all client options to default. + Nastavi sve postavke programa na početne vrijednosti. + + + &Reset Options + Po&nastavi postavke + + &Network &Mreža + W&allet + &Novčanik + + + &Spend unconfirmed change + &Trošenje nepotvrđenih vraćenih iznosa + + Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. Automatski otvori port Bitcoin klijenta na ruteru. To radi samo ako ruter podržava UPnP i ako je omogućen. @@ -631,6 +847,10 @@ Adresa:%4 Proxy &IP: + &Port: + &Vrata: + + Port of the proxy (e.g. 9050) Port od proxy-a (npr. 9050) @@ -659,6 +879,10 @@ Adresa:%4 &Prikaz + User Interface &language: + Jezik: + + &Unit to show amounts in: &Jedinica za prikazivanje iznosa: @@ -722,6 +946,10 @@ Adresa:%4 QRImageWidget + &Save Image... + &Spremi sliku... + + Save QR Code Spremi QR kod @@ -769,6 +997,34 @@ Adresa:%4 Trenutni broj blokova + Received + Primljeno + + + Sent + Poslano + + + Direction + Smjer + + + Version + Verzija + + + Connection Time + Trajanje veze + + + Bytes Sent + Bajtova poslano + + + Bytes Received + Bajtova primljeno + + Last block time Posljednje vrijeme bloka @@ -781,6 +1037,10 @@ Adresa:%4 &Konzola + &Network Traffic + &Mrežni promet + + Totals Ukupno: @@ -796,14 +1056,34 @@ Adresa:%4 Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. Kako bi navigirali kroz povijest koristite strelice gore i dolje. <b>Ctrl-L</b> kako bi očistili ekran. + + Unknown + Nepoznato + ReceiveCoinsDialog + &Amount: + Iznos: + + &Label: &Oznaka: + &Message: + &Poruka: + + + Clear all fields of the form. + Obriši sva polja + + + &Request payment + &Zatraži plaćanje + + Show Pokaži @@ -823,6 +1103,22 @@ Adresa:%4 QR kôd + Copy &URI + Kopiraj &URI + + + Copy &Address + Kopiraj &adresu + + + &Save Image... + &Spremi sliku... + + + URI + URI + + Address Adresa @@ -842,7 +1138,11 @@ Adresa:%4 Resulting URI too long, try to reduce the text for label / message. Rezultirajući URI je predug, probajte umanjiti tekst za naslov / poruku. - + + Error encoding URI into QR Code. + Greška pri kodiranju URI adrese u QR kod. + + RecentRequestsTableModel @@ -865,7 +1165,15 @@ Adresa:%4 (no label) (bez oznake) - + + (no message) + (bez poruke) + + + (no amount) + (bez iznosa) + + SendCoinsDialog @@ -873,10 +1181,30 @@ Adresa:%4 Slanje novca + Quantity: + Količina: + + + Bytes: + Bajtova: + + Amount: Iznos: + Priority: + Prioriteta: + + + Fee: + Naknada: + + + Change: + Vraćeno: + + Send to multiple recipients at once Pošalji k nekoliko primatelja odjednom @@ -885,6 +1213,14 @@ Adresa:%4 &Dodaj primatelja + Clear all fields of the form. + Obriši sva polja + + + Dust: + Prah: + + Clear &All Obriši &sve @@ -1300,6 +1636,10 @@ Adresa:%4 Kopiraj iznos + Copy transaction ID + Kopiraj ID transakcije + + Edit label Izmjeniti oznaku diff --git a/src/qt/locale/bitcoin_hu.ts b/src/qt/locale/bitcoin_hu.ts index a95f9412c36..0906b0cd95e 100644 --- a/src/qt/locale/bitcoin_hu.ts +++ b/src/qt/locale/bitcoin_hu.ts @@ -870,6 +870,10 @@ Cím: %4 Üdvözlünk a Bitcoin Core-ban. + 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. + A Bitcoin Core le fogja tölteni és tárolni fogja a Bitcoin blokklánc egy másolatát. Legalább %1GB adat lesz tárolva ebben a mappában, és ez folyamatosan nőni fog. A tárca szintén itt lesz tárolva. + + Use the default data directory Az alapértelmezett adat könyvtár használata @@ -960,6 +964,10 @@ Cím: %4 &Hálózat + Expert + szakértő + + Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. A Bitcoin-kliens portjának automatikus megnyitása a routeren. Ez csak akkor működik, ha a routered támogatja az UPnP-t és az engedélyezve is van rajta. @@ -968,6 +976,10 @@ Cím: %4 &UPnP port-feltérképezés + Connect to the Bitcoin network through a SOCKS5 proxy. + Csatlakozás a Bitcoin hálózatához SOCKS5 proxyn keresztül + + Proxy &IP: Proxy &IP: @@ -1117,6 +1129,10 @@ Cím: %4 PeerTableModel + User Agent + User Agent + + Ping Time Ping idő @@ -1242,10 +1258,30 @@ Cím: %4 Verzió + User Agent + User Agent + + Services Szolgáltatások + Last Send + Legutóbb küldött + + + Last Receive + Legutóbbi fogadás + + + Bytes Sent + Küldött bájtok + + + Bytes Received + Fogadott bájtok + + Ping Time Ping idő @@ -1321,6 +1357,10 @@ Cím: %4 never soha + + Unknown + Ismeretlen + ReceiveCoinsDialog @@ -1329,6 +1369,10 @@ Cím: %4 Címke: + &Message: + &Üzenet: + + Clear Törlés @@ -1462,6 +1506,10 @@ Cím: %4 Visszajáró: + Transaction Fee: + Tranzakciós díj + + Send to multiple recipients at once Küldés több címzettnek egyszerre @@ -1887,6 +1935,10 @@ Cím: %4 Offline + Unconfirmed + Megerősítetlen: + + Received with Erre a címre @@ -2018,6 +2070,10 @@ Cím: %4 Az exportálás sikertelen volt + Exporting Successful + Sikeres exportálás + + Comma separated file (*.csv) Vesszővel elválasztott fájl (*.csv) @@ -2206,10 +2262,22 @@ Cím: %4 Tárca ellenőrzése... + Wallet options: + Tárca beállítások: + + You need to rebuild the database using -reindex to change -txindex Az adatbázist újra kell építeni -reindex használatával (módosítás -tindex). + Copyright (C) 2009-%i The Bitcoin Core Developers + Copyright (C) 2009-%i A Bitcoin Core Fejlesztői + + + Error reading from database, shutting down. + Hiba az adatbázis olvasásakor, leállítás + + Information Információ diff --git a/src/qt/locale/bitcoin_ko_KR.ts b/src/qt/locale/bitcoin_ko_KR.ts index 211f850c187..b32965e58c6 100644 --- a/src/qt/locale/bitcoin_ko_KR.ts +++ b/src/qt/locale/bitcoin_ko_KR.ts @@ -2,6 +2,10 @@ AddressBookPage + Right-click to edit address or label + 지갑 주소나 이름을 수정하려면 우클릭하세요. + + Create a new address 새 주소 만들기 @@ -89,7 +93,11 @@ Exporting Failed 내보내기 실패 - + + There was an error trying to save the address list to %1. Please try again. + %1으로 주소 리스트를 저장하는 동안 오류가 발생했습니다. 다시 시도해주세요. + + AddressTableModel @@ -410,6 +418,10 @@ Show the Bitcoin Core help message to get a list with possible Bitcoin command-line options 사용할 수 있는 비트코인 명령어 옵션 목록을 가져오기 위해 Bitcoin-Qt 도움말 메시지를 표시합니다. + + %n active connection(s) to Bitcoin network + 비트코인 네트워크와 %n 개의 활성연결 + No block source available... 사용 가능한 블록이 없습니다... @@ -430,6 +442,10 @@ %1 and %2 %1 그리고 %2 + + %n year(s) + %n 년 + %1 behind %1 뒤에 @@ -458,6 +474,10 @@ Up to date 현재까지 + + Processed %n blocks of transaction history. + %n 블록의 거래 기록들이 처리됨. + Catching up... 블록 따라잡기... @@ -501,6 +521,10 @@ Address: %4 CoinControlDialog + Coin Selection + 코인 선택 + + Quantity: 수량: @@ -848,7 +872,15 @@ Address: %4 Error 오류 - + + %n GB of free space available + %n GB가 사용가능 + + + (of %n GB needed) + (%n GB가 필요) + + OpenURIDialog @@ -959,6 +991,14 @@ Address: %4 사용중인 UPnP 포트 매핑(&U) + Connect to the Bitcoin network through a SOCKS5 proxy. + SOCKS5 프록시를 통해 비트코인 네트워크 연결 + + + &Connect through SOCKS5 proxy (default proxy): + SOCKS5 프록시를 거쳐 연결합니다 (기본값 프록시): + + Proxy &IP: 프록시 IP(&I): @@ -1171,6 +1211,10 @@ Address: %4 거래량 + Enter a Bitcoin address (e.g. %1) + 비트코인 주소를 입력하기 (예. %1) + + N/A 없음 diff --git a/src/qt/locale/bitcoin_lt.ts b/src/qt/locale/bitcoin_lt.ts index a77ee9b5299..4eaac1e85f8 100644 --- a/src/qt/locale/bitcoin_lt.ts +++ b/src/qt/locale/bitcoin_lt.ts @@ -2,6 +2,10 @@ AddressBookPage + Right-click to edit address or label + Spustelėkite dešinįjį klaviša norint keisti adresą arba etiketę + + Create a new address Sukurti naują adresą @@ -26,6 +30,10 @@ &Kopijuoti adresą + Delete the currently selected address from the list + Ištrinti pasirinktą adresą iš sąrašo + + &Export &Eksportuoti @@ -34,6 +42,10 @@ &Trinti + Choose the address to send coins to + Pasirinkite adresą kuriam siūsite monetas + + C&hoose P&asirinkti @@ -255,6 +267,10 @@ &Gaunami adresai... + Open &URI... + Atidaryti &URI... + + Bitcoin Core client Bitcoin Core klientas @@ -428,6 +444,10 @@ Adresas: %4 CoinControlDialog + Coin Selection + Monetų pasirinkimas + + Quantity: Kiekis: @@ -786,6 +806,10 @@ Adresas: %4 niekas + Confirm options reset + Patvirtinti nustatymų atstatymą + + The supplied proxy address is invalid. Nurodytas tarpinio serverio adresas negalioja. @@ -797,6 +821,14 @@ Adresas: %4 Forma + Available: + Galimi: + + + Pending: + Laukiantys: + + Immature: Nepribrendę: @@ -820,6 +852,10 @@ Adresas: %4 URI apdorojimas + Payment request rejected + Mokėjimo siuntimas atmestas + + Network request error Tinklo užklausos klaida @@ -896,6 +932,26 @@ Adresas: %4 Dabartinis blokų skaičius + Received + Gauta + + + Direction + Kryptis + + + Version + Versija + + + Bytes Sent + Nusiųsti baitai + + + Bytes Received + Gauti baitai + + Last block time Paskutinio bloko laikas @@ -943,6 +999,10 @@ Adresas: %4 %1 GB %1 GB + + never + Niekada + ReceiveCoinsDialog @@ -951,6 +1011,10 @@ Adresas: %4 Ž&ymė: + Clear + Išvalyti + + Copy label Kopijuoti žymę diff --git a/src/qt/locale/bitcoin_mn.ts b/src/qt/locale/bitcoin_mn.ts index 26dbc741cc6..acc23f2b149 100644 --- a/src/qt/locale/bitcoin_mn.ts +++ b/src/qt/locale/bitcoin_mn.ts @@ -6,18 +6,70 @@ Шинэ хаяг нээх + &New + &Шинэ + + Copy the currently selected address to the system clipboard Одоогоор сонгогдсон байгаа хаягуудыг сануулах + &Copy + &Хуулах + + + C&lose + &Хаах + + &Copy Address Хаягийг &Хуулбарлах + Delete the currently selected address from the list + Одоо сонгогдсон байгаа хаягуудыг жагсаалтаас устгах + + + Export the data in the current tab to a file + Сонгогдсон таб дээрхи дата-г экспортлох + + + &Export + &Экспортдлох + + &Delete &Устгах + Choose the address to send coins to + Зооснуудыг илгээх хаягийг сонгоно уу + + + Choose the address to receive coins with + Зооснуудыг хүлээн авах хаягийг сонгоно уу + + + C&hoose + С&онго + + + Sending addresses + Илгээх хаягууд + + + Receiving addresses + Хүлээн авах хаяг + + + These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. + Эдгээр Биткойн хаягууд нь илгээх хаягууд. Хүлээн авах хаяг болон тоо хэмжээг илгээхээсээ өмнө сайн нягталж үзэж байна уу + + + These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Эдгээр Биткойн хаягууд нь хүлээн авах хаягууд. Гүйлгээ болгонд шинээр хаяг үүсгэхийг бид санал болгож байна. + + Copy &Label &Шошгыг хуулбарлах @@ -26,6 +78,10 @@ &Ѳѳрчлѳх + Export Address List + Экспорт хийх хаягуудын жагсаалт + + Comma separated file (*.csv) Таслалаар тусгаарлагдсан хүснэгтэн файл (.csv) @@ -1002,6 +1058,14 @@ Address: %4 WalletView + + &Export + &Экспортдлох + + + Export the data in the current tab to a file + Сонгогдсон таб дээрхи дата-г экспортлох + bitcoin-core diff --git a/src/qt/locale/bitcoin_nl.ts b/src/qt/locale/bitcoin_nl.ts index 998f8f35902..9d776e5e12b 100644 --- a/src/qt/locale/bitcoin_nl.ts +++ b/src/qt/locale/bitcoin_nl.ts @@ -3104,6 +3104,30 @@ Adres: %4 Dit product bevat software dat ontwikkeld is door het OpenSSL Project voor gebruik in de OpenSSL Toolkit <https://www.openssl.org/> en cryptografische software geschreven door Eric Young en UPnP software geschreven door Thomas Bernard. + To use bitcoind, or the -server option to bitcoin-qt, you must set an rpcpassword in the configuration file: +%s +It is recommended you use the following random password: +rpcuser=bitcoinrpc +rpcpassword=%s +(you do not need to remember this password) +The username and password MUST NOT be the same. +If the file does not exist, create it with owner-readable-only file permissions. +It is also recommended to set alertnotify so you are notified of problems; +for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + Om bitcoind of de -server optie naar bitcoin-gt te gebruiken, dient u een rpcwachtwoord in te stellen in het configuratiebestand: + %s +Wij raden u aan om het volgende wachtwoord willekeurig te gebruiken: +rpcuser=bitcoinrpc +rpcpassword=%s +(u hoeft dit wachtwoord niet te onthouden) +De gebruikersnaam en het wachtwoorden moeten NIET hetzelfde zijn. +Indien het bestand niet bestaat, maak het bestand aan met bestandsrechten: alleen lezen voor eigenaar. +Het is ook aan te raden om een alarmnotificatie in te stellen, zodat u op de hoogte bent van de problemen; +Voorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. Let op: -maxtxfee is erg hoog ingesteld! Transactiekosten van dergelijke groottes kunnen in een enkele transactie worden betaald. diff --git a/src/qt/locale/bitcoin_pam.ts b/src/qt/locale/bitcoin_pam.ts index 355d167271f..a35e0278215 100644 --- a/src/qt/locale/bitcoin_pam.ts +++ b/src/qt/locale/bitcoin_pam.ts @@ -2,6 +2,10 @@ AddressBookPage + Right-click to edit address or label + I-right click ban alilan ing address o libel + + Create a new address Maglalang kang bayung address diff --git a/src/qt/locale/bitcoin_pl.ts b/src/qt/locale/bitcoin_pl.ts index d139f9560e0..02c48a52d3b 100644 --- a/src/qt/locale/bitcoin_pl.ts +++ b/src/qt/locale/bitcoin_pl.ts @@ -3,7 +3,7 @@ AddressBookPage Right-click to edit address or label - Prawy klik żeby edytować adres lub etykietę + Kliknij prawym przyciskiem myszy żeby edytować adres lub etykietę Create a new address @@ -67,7 +67,7 @@ These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Tutaj znajdują się adresy Bitcoin na które wysyłasz płatności. Zawsze sprawdzaj ilość i adres odbiorcy przed wysyłką monet. + Tutaj znajdują się adresy Bitcoin, na które wysyłasz płatności. Zawsze sprawdzaj ilość i adres odbiorcy przed wysyłką monet. These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. @@ -95,7 +95,7 @@ There was an error trying to save the address list to %1. Please try again. - Wystąpił błąd podczas próby zapisu listy adresów %1. Proszę spróbować ponownie. + Wystąpił błąd podczas próby zapisu listy adresów do %1. Proszę spróbować ponownie. @@ -137,7 +137,7 @@ This operation needs your wallet passphrase to unlock the wallet. - Ta operacja wymaga hasła do portfela ażeby odblokować portfel. + Ta operacja wymaga hasła do portfela aby odblokować portfel. Unlock wallet @@ -189,7 +189,7 @@ 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. - Program Bitcoin zamknie się aby dokończyć proces szyfrowania. Pamiętaj, że szyfrowanie portfela nie zabezpiecza w pełni Twoich bitcoinów przed kradzieżą przez wirusy lub trojany mogące zainfekować Twój komputer. + Program Bitcoin zamknie się aby dokończyć proces szyfrowania. Pamiętaj, że szyfrowanie portfela nie zabezpiecza w pełni Twoich bitcoinów przed kradzieżą przez wirusy mogące zainfekować Twój komputer. Wallet encryption failed @@ -991,6 +991,14 @@ Adres: %4 Adres IP serwera proxy (np. IPv4: 127.0.0.1 / IPv6: ::1) + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. + Zewnętrzne URL podglądu transakcji (np. eksplorator bloków), które będą wyświetlały się w menu kontekstowym, w zakładce transakcji. %s będzie zamieniany w adresie na hash transakcji. Oddziel wiele adresów pionową kreską |. + + + Third party transaction URLs + Zewnętrzne URL podglądu transakcji + + Active command-line options that override above options: Aktywne opcje linii komend, które nadpisują powyższe opcje: @@ -1023,6 +1031,10 @@ Adres: %4 Włącz funk&cje kontoli monet + If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed. + Jeżeli wyłączysz możliwość wydania niezatwierdzonej wydanej reszty, reszta z transakcji nie będzie mogła zostać wykorzystana, dopóki ta transakcja nie będzie miała przynajmniej jednego potwierdzenia. To także ma wpływ na obliczanie Twojego salda. + + &Spend unconfirmed change Wydaj niepotwierdzoną re&sztę @@ -1257,14 +1269,42 @@ Adres: %4 URL pobrania żądania zapłaty jest nieprawidłowe: %1 + URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. + URI nie może zostać przetworzony! Może to być spowodowane nieprawidłowym adresem Bitcoin lub uszkodzonymi parametrami URI. + + + Payment request file handling + Przechwytywanie plików żądania płatności + + + Payment request file cannot be read! This can be caused by an invalid payment request file. + Plików żądania płatności nie może zostać odczytany. Mogło to być spowodowane nieprawidłowym plikiem żądania płatności. + + + Unverified payment requests to custom payment scripts are unsupported. + Niezweryfikowane żądania płatności do własnych skryptów płatności są niewspierane. + + Refund from %1 Zwrot z %1 + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + Żądanie płatności %1 jest zbyt duże (%2 bajtów, dozwolone %3 bajtów). + + + Payment request DoS protection + Zabezpieczenie żądania płatności przed atakiem DoS + + Error communicating with %1: %2 Błąd komunikacji z %1 : %2 + Payment request cannot be parsed! + Żądanie płatności nie może zostać przetworzone. + + Bad response from server %1 Błędna odpowiedź z serwera %1 @@ -1280,6 +1320,10 @@ Adres: %4 PeerTableModel + User Agent + Aplikacja kliencka + + Address/Hostname Adres/Nazwa hosta @@ -1421,6 +1465,10 @@ Adres: %4 Wysłane + &Peers + &Węzły + + Select a peer to view detailed information. Wybierz węzeł żeby zobaczyć szczegóły. @@ -1433,6 +1481,10 @@ Adres: %4 Wersja + User Agent + Aplikacja kliencka + + Services Usługi @@ -1441,10 +1493,26 @@ Adres: %4 Początkowa wysokość + Sync Height + Zsynchronizowana wysokość + + + Ban Score + Punkty karne + + Connection Time Czas połączenia + Last Send + Ostatnio wysłano + + + Last Receive + Ostatnio odebrano + + Bytes Sent Bajtów wysłano @@ -1470,7 +1538,7 @@ Adres: %4 &Network Traffic - $Ruch sieci + Ruch sieci &Clear @@ -1576,6 +1644,10 @@ Adres: %4 Użyj jednego z poprzednio użytych adresów odbiorczych. Podczas ponownego używania adresów występują problemy z bezpieczeństwem i prywatnością. Nie korzystaj z tej opcji, chyba że odtwarzasz żądanie płatności wykonane już wcześniej. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. + Opcjonalna wiadomość do dołączenia do żądania płatności, która będzie wyświetlana, gdy żądanie zostanie otwarte. Uwaga: wiadomość ta nie zostanie wysłana wraz z płatnością w sieci Bitcoin. + + An optional label to associate with the new receiving address. Opcjonalna etykieta do skojarzenia z nowym adresem odbiorczym. @@ -1770,11 +1842,11 @@ Adres: %4 If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Kiedy ta opcja jest wybrana, to jeżeli adres reszty jest pusty lub nieprawidłowy, to reszta będzie wysyłana na nowo wygenerowany adres, + Kiedy ta opcja zostanie wybrana, a adres reszty będzie pusty lub nieprawidłowy, to reszta będzie wysłana na nowo wygenerowany adres. Custom change address - Niestandardowe zmiany adresu + Własny adres wydania reszty Transaction Fee: @@ -1793,10 +1865,26 @@ Adres: %4 Minimalizuj + 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. + Jeżeli własna opłata zostanie ustawiona na 1000 satoshi, a transakcja będzie miała tylko 250 bajtów, to "za kilobajt" płaci tylko 250 satoshi, podczas gdy, "przynajmniej" płaci 1000 satoshi. Przy transakcjach większych niż kilobajt, w obu przypadkach płaci za każdy kilobajt. + + per kilobyte za kilobajt + 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. + Jeżeli własna opłata zostanie ustawiona na 1000 satoshi, a transakcja będzie miała tylko 250 bajtów, to "za kilobajt" płaci tylko 250 satoshi, podczas gdy, "razem przynajmniej" płaci 1000 satoshi. Przy transakcjach większych niż kilobajt, w obu przypadkach płaci za każdy kilobajt. + + + total at least + razem przynajmniej + + + 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. + Zapłacenie tylko minimalnej opłaty jest nadal wystarczające, dopóki jest mniejszy wolumen transakcji niż miejsca w blokach. Należy jednak mieć świadomość, że może skończyć się to niezatwierdzeniem nigdy transakcji, gdy jest większe zapotrzebowanie na transakcje bitcoina niż sieć może przetworzyć. + + (read the tooltip) (przeczytaj podpowiedź) @@ -1805,6 +1893,10 @@ Adres: %4 Zalecane: + Custom: + Własna: + + (Smart fee not initialized yet. This usually takes a few blocks...) (Sprytne opłaty nie są jeszcze zainicjowane. Trwa to zwykle kilka bloków...) @@ -1992,6 +2084,10 @@ Adres: %4 To jest standardowa płatność + The Bitcoin address to send the payment to + Adres Bitcoin gdzie wysłać płatność + + Alt+A Alt+A @@ -2020,6 +2116,10 @@ Adres: %4 Wprowadź etykietę dla tego adresu by dodać go do listy użytych adresów + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. + Wiadomość, która została dołączona do URI bitcoin:, która będzie przechowywana wraz z transakcją w celach informacyjnych. Uwaga: Ta wiadomość nie będzie rozsyłana w sieci Bitcoin. + + This is an unverified payment request. To żądanie zapłaty nie zostało zweryfikowane. @@ -2058,6 +2158,10 @@ Adres: %4 Możesz podpisywać wiadomości swoimi adresami aby udowodnić, że jesteś ich właścicielem. Uważaj, aby nie podpisywać niczego co wzbudza Twoje podejrzenia, ponieważ ktoś może stosować phishing próbując nakłonić Cię do ich podpisania. Akceptuj i podpisuj tylko w pełni zrozumiałe komunikaty i wiadomości. + The Bitcoin address to sign the message with + Adres Bitcoin, za pomocą którego podpisać wiadomość + + Choose previously used address Wybierz wcześniej użyty adres @@ -2110,6 +2214,10 @@ Adres: %4 Wpisz adres podpisu, wiadomość (upewnij się, że dokładnie skopiujesz wszystkie zakończenia linii, spacje, tabulacje itp.) oraz podpis poniżej by sprawdzić wiadomość. Uważaj by nie dodać więcej do podpisu niż do samej podpisywanej wiadomości by uniknąć ataku man-in-the-middle (człowiek pośrodku) + The Bitcoin address the message was signed with + Adres Bitcoin, którym została podpisana wiadomość + + Verify the message to ensure it was signed with the specified Bitcoin address Zweryfikuj wiadomość, aby upewnić się, że została podpisana odpowiednim adresem Bitcoin. @@ -2251,6 +2359,10 @@ Adres: %4 własny adres + watch-only + tylko-obserwowany + + label etykieta @@ -2271,6 +2383,14 @@ Adres: %4 Debet + Total debit + Razem wychodzących + + + Total credit + Razem przychodzących + + Transaction fee Opłata transakcyjna @@ -2417,6 +2537,10 @@ Adres: %4 Wydobyto + watch-only + tylko-obserwowany + + (n/a) (brak) @@ -2433,6 +2557,10 @@ Adres: %4 Rodzaj transakcji. + Whether or not a watch-only address is involved in this transaction. + Czy adres tylko-obserwowany jest lub nie użyty w tej transakcji. + + Destination address of transaction. Adres docelowy transakcji. @@ -2528,6 +2656,10 @@ Adres: %4 Eksport historii transakcji + Watch-only + Tylko obserwowany + + Exporting Failed Błąd przy próbie eksportu @@ -2675,10 +2807,26 @@ Adres: %4 Skojarz z podanym adresem i nasłuchuj na nim. Użyj formatu [host]:port dla IPv6 + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + Usuwa wszystkie transakcje w portfelu i tylko odtwarza te części z łańcucha bloków poprzez -rescan przy starcie + + + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + Rozprowadzane na licencji MIT, zobacz dołączony plik COPYING lub <http://www.opensource.org/licenses/mit-license.php>. + + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + Wejdź do trybu testów regresyjnych, który korzysta ze specjalnego łańcucha, w którym bloki mogą być rozwiązywane natychmiastowo. + + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Wykonaj polecenie, kiedy transakcja portfela ulegnie zmianie (%s w poleceniu zostanie zastąpione przez TxID) + In this mode -genproclimit controls how many blocks are generated immediately. + W tym trybie -genproclimit ustala ilość bloków generowanych natychmiast. + + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) Ustaw liczbę wątków skryptu weryfikacyjnego (%u do %d, 0 = auto, <0 = zostaw tyle rdzeni wolnych, domyślnie: %d) @@ -2711,6 +2859,10 @@ Adres: %4 Ostrzeżenie: Odtworzono dane z uszkodzonego pliku wallet.dat! Oryginalny wallet.dat został zapisany jako wallet.{timestamp}.bak w %s; jeśli twoje saldo lub transakcje są niepoprawne powinieneś odtworzyć kopię zapasową. + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + Dodawaj do białej listy węzły łączące się z podanej maski sieciowej lub adresu IP. Może być określona kilka razy. + + (default: 1) (domyślnie: 1) @@ -2783,6 +2935,10 @@ Adres: %4 Próba nasłuchiwania na jakimkolwiek porcie nie powiodła się. Użyj -listen=0 jeśli tego chcesz. + If <category> is not supplied, output all debugging information. + Jeżeli <category> nie zostanie określona, wyświetl wszystkie informacje debugowania. + + Importing... Importowanie… @@ -2800,7 +2956,7 @@ Adres: %4 Only connect to nodes in network <net> (ipv4, ipv6 or onion) - Łącz z węzłami tylko w sieci <net> (ipv4, piv6 lub onion) + Łącz z węzłami tylko w sieci <net> (ipv4, ipv6 lub onion) Rebuild block chain index from current blk000??.dat files @@ -2859,10 +3015,26 @@ Adres: %4 Napotkano błąd podczas ustawiania adres RPC %s port %u dla nasłuchiwania: %s + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + Podepnij się do podanego adresu i dodawaj do białej listy węzły łączące się z nim. Użyj notacji [host]:port dla IPv6 + + + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + Powiąż się z podanym adresem, aby nasłuchiwać połączenia JSON-RPC. Użyj notacji [host]:port dla IPv6. Ta opcja może być określona kilka razy (domyślnie: powiąż ze wszystkimi interfejsami) + + Cannot obtain a lock on data directory %s. Bitcoin Core is probably already running. Nie można uzyskać blokady na katalogu z danymi %s. Rdzeń Bitcoin najprawdopodobniej jest już uruchomiony. + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + Ograniczaj przepustowość dla transakcji bez opłat do <n>*1000 bajtów na minutę (domyślnie: %u) + + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + Twórz nowe pliki z domyślnymi dla systemu uprawnieniami, zamiast umask 077 (skuteczne tylko przy wyłączonej funkcjonalności portfela) + + Error: Listening for incoming connections failed (listen returned error %s) Błąd: Nasłuchiwanie połączeń przychodzących nie powiodło się (nasłuch zwrócił błąd %s) @@ -2875,10 +3047,30 @@ Adres: %4 Uruchom polecenie przy otrzymaniu odpowiedniego powiadomienia lub gdy zobaczymy naprawdę długie rozgałęzienie (%s w poleceniu jest podstawiane za komunikat) + Fees (in BTC/Kb) smaller than this are considered zero fee for relaying (default: %s) + Opłaty (w BTC/Kb) mniejsze niż ta będą traktowane jako bez opłaty przy propagowaniu (domyślnie: %s) + + + Fees (in BTC/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + Opłaty (w BTC/Kb) mniejsze niż ta będą traktowane jako bez opłaty przy tworzeniu transakcji (domyślnie: %s) + + + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Jeżeli nie ustawiono paytxfee, dołącz wystarczająca opłatę, aby transakcja mogła zostać zatwierdzona w ciągu średniej ilości n bloków (domyślnie: %u) + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Niewłaściwa ilość dla -maxtxfee=<ilość>: '%s' (musi wynosić przynajmniej minimalną wielkość %s aby zapobiec utknięciu transakcji) + + Maximum size of data in data carrier transactions we relay and mine (default: %u) Maksymalny rozmiar danych w transakcji przekazującej dane które przekazujemy i wydobywamy (domyślnie: %u) + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Maksymalne całkowite opłaty użyte dla każdej pojedynczej transakcji portfela, ustawienie za niskiej może przerwać większe transakcje (domyślnie: %s) + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) Wyszukaj adresy węzłów wykorzystując zapytanie DNS, jeżeli masz mało adresów (domyślnie: 1 jeśli nie użyto -connect) @@ -2899,10 +3091,50 @@ Adres: %4 Program ten zawiera oprogramowanie stworzone przez OpenSSL Project do użycia w OpensSSL Toolkit <https://www.openssl.org/>, oprogramowanie kryptograficzne napisane przez Eric Young oraz oprogramowanie UPnP napisane przez Thomas Bernard. + To use bitcoind, or the -server option to bitcoin-qt, you must set an rpcpassword in the configuration file: +%s +It is recommended you use the following random password: +rpcuser=bitcoinrpc +rpcpassword=%s +(you do not need to remember this password) +The username and password MUST NOT be the same. +If the file does not exist, create it with owner-readable-only file permissions. +It is also recommended to set alertnotify so you are notified of problems; +for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com + + Aby korzystać z bitcoind, lub opcji -server w bitcoin-qt, musisz ustawić opcję rpcpassword w pliku konfiguracyjnym: +%s +Zalecane jest użycie poniższego losowego hasła: +rpcuser=bitcoinrpc +rpcpassword=%s +(nie musisz pamiętać tego hasła) +Nazwa użytkownika i hasło NIE MOGĄ być takie same. +Jeżeli ten plik nie istnieje, utwórz go z uprawnieniami tylko-do-odczytu przez właściciela. +Zalecane jest także ustawienie opcji alertnotify, dzięki której będziesz powiadamiany o problemach; +na przykład: alertnotify=echo %%s | mail -s "Alarm Bitcoin" admin@foo.com + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. Ostrzeżenie: -matxfee jest ustawione bardzo wysokie! Tak wysokie opłaty mogą być zapłacone w jednej transakcji. + Warning: Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly. + Ostrzeżenie: Proszę sprawdzić czy data i czas na Twoim komputerze są poprawne! Jeżeli ustawienia zegara będą złe, Bitcoin Core nie będzie działał prawidłowo. + + + Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway + Węzły z białej listy nie mogą zostać zbanowane za ataki DoS, a ich transakcje będą zawsze przekazywane, nawet jeżeli będą znajdywać się już w pamięci, przydatne np. dla bramek płatniczych + + + Accept public REST requests (default: %u) + Akceptuj publiczne żądania REST (domyślnie: %u) + + + Cannot resolve -whitebind address: '%s' + Nie można rozwiązać adresu -whitebind: '%s' + + Connect through SOCKS5 proxy Połącz przez SOCKS5 proxy @@ -2911,6 +3143,10 @@ Adres: %4 Copyright (C) 2009-%i The Bitcoin Core Developers + Could not parse -rpcbind value %s as network address + Nie można przetworzyć wartości -rpcbind %s jako adresu sieciowego + + Error loading wallet.dat: Wallet requires newer version of Bitcoin Core Błąd ładowania wallet.dat: Portfel wymaga nowszej wersji Bitcoin Core @@ -2951,6 +3187,14 @@ Adres: %4 Nieprawidłowa kwota dla -paytxfee=<amount>: '%s' (musi być co najmniej %s) + Invalid netmask specified in -whitelist: '%s' + Nieprawidłowa maska sieci określona w -whitelist: '%s' + + + Keep at most <n> unconnectable transactions in memory (default: %u) + Przechowuj w pamięci maksymalnie <n> transakcji nie możliwych do połączenia (domyślnie: %u) + + Node relay options: Opcje przekaźnikowe węzła: @@ -2963,6 +3207,10 @@ Adres: %4 Opcje serwera RPC: + RPC support for HTTP persistent connections (default: %d) + Wsparcie RPC dla ciągłych połączeń HTTP (domyślnie: %d) + + Randomly drop 1 of every <n> network messages Losowo ignoruje 1 z każdych <n> wiadomości sieciowych. @@ -2992,7 +3240,7 @@ Adres: %4 This is experimental software. - To oprogramowanie eksperymentalne. + To oprogramowanie jest eksperymentalne. Transaction amount too small @@ -3095,6 +3343,10 @@ Adres: %4 (1 = zachowaj wysłane metadane np. właściciel konta i informacje o żądaniach płatności, 2 = porzuć wysłane metadane) + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + Przeładuj aktywność bazy danych z pamięci do logu dyskowego co <n> megabajtów (domyślnie: %u) + + How thorough the block verification of -checkblocks is (0-4, default: %u) Jak dokładna jest weryfikacja bloków przy -checkblocks (0-4, domyślnie: %u) @@ -3111,10 +3363,30 @@ Adres: %4 Czas w sekundach, przez jaki nietrzymające się zasad węzły nie będą mogły ponownie się podłączyć (domyślnie: %u) + Output debugging information (default: %u, supplying <category> is optional) + Wypuść informacje debugowania (domyślnie: %u, podanie <category> jest opcjonalne) + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + Użyj oddzielnego prozy SOCKS5 aby osiągnąć węzły w ukrytych usługach Tor (domyślnie: %s) + + (default: %s) (domyślnie: %s) + Acceptable ciphers (default: %s) + Akceptowane szyfry (domyślne: %s) + + + Always query for peer addresses via DNS lookup (default: %u) + Zawsze wypytuj o adresy węzłów poprzez podejrzenie DNS (domyślnie: %u) + + + Disable safemode, override a real safe mode event (default: %u) + Wyłącz tryb bezpieczny, zastąp domyślne zachowanie przełączania w tryb bezpieczny (domyślnie: %u) + + Error loading wallet.dat Błąd ładowania wallet.dat diff --git a/src/qt/locale/bitcoin_pt_BR.ts b/src/qt/locale/bitcoin_pt_BR.ts index 6570ca3f507..0095f126abf 100644 --- a/src/qt/locale/bitcoin_pt_BR.ts +++ b/src/qt/locale/bitcoin_pt_BR.ts @@ -11,7 +11,7 @@ &New - &Novo + Novo Copy the currently selected address to the system clipboard @@ -19,15 +19,15 @@ &Copy - &Copiar + Copiar C&lose - &Fechar + Fechar &Copy Address - &Copiar Endereço + Copiar Endereço Delete the currently selected address from the list @@ -39,11 +39,11 @@ &Export - &Exportar + Exportar &Delete - &Excluir + Excluir Choose the address to send coins to @@ -79,7 +79,7 @@ &Edit - &Editar + Editar Export Address List @@ -224,7 +224,7 @@ BitcoinGUI Sign &message... - &Assinar Mensagem... + Assinar Mensagem... Synchronizing with network... @@ -232,7 +232,7 @@ &Overview - &Visão geral + Visão geral Node @@ -244,7 +244,7 @@ &Transactions - &Transações + Transações Browse transaction history @@ -268,19 +268,19 @@ &Options... - &Opções... + Opções... &Encrypt Wallet... - &Criptografar Carteira... + Criptografar Carteira... &Backup Wallet... - &Backup Carteira... + Backup Carteira... &Change Passphrase... - &Mudar frase de segurança... + Mudar frase de segurança... &Sending addresses... @@ -288,11 +288,11 @@ &Receiving addresses... - &Receber endereços... + Receber endereços... Open &URI... - Abrir &URI... + Abrir URI... Bitcoin Core client @@ -332,7 +332,7 @@ &Verify message... - &Verificar mensagem... + Verificar mensagem... Bitcoin @@ -344,11 +344,11 @@ &Send - &Enviar + Enviar &Receive - &Receber + Receber Show information about Bitcoin Core @@ -356,7 +356,7 @@ &Show / Hide - &Exibir/Ocultar + Exibir/Ocultar Show or hide the main Window @@ -1844,6 +1844,10 @@ Endereço: %4 Escolher + collapse fee-settings + colapso Taxa de definições + + Minimize Minimizar @@ -2548,6 +2552,10 @@ Endereço: %4 Tipo de transação. + Whether or not a watch-only address is involved in this transaction. + Mostrar ou não endereços Bitcoin na lista de transações. + + Destination address of transaction. Endereço de destino da transação. @@ -2846,6 +2854,10 @@ Endereço: %4 Atenção: wallet.dat corrompido, dados recuperados! Arquivo wallet.dat original salvo como wallet.{timestamp}.bak em %s; se seu saldo ou transações estiverem incorretos, você deve restaurar o backup. + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + Lista Branca pares de ligação da máscara de rede dado ou o endereço IP . Pode ser especificado várias vezes. + + (default: 1) (padrão: 1) @@ -2998,6 +3010,10 @@ Endereço: %4 Um erro ocorreu enquanto configurando o endereço RPC %s porta %u para escuta: %s + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + Vincular ao endereço fornecido e sempre escutar nele. Use a notação [host]:port para IPv6 + + Cannot obtain a lock on data directory %s. Bitcoin Core is probably already running. Não foi possível obter acesso exclusivo ao diretório de dados %s. Provavelmente Bitcoin já está sendo executado. @@ -3106,6 +3122,10 @@ por exemplo: alertnotify=echo %%s | mail -s "Alerta do Bitcoin" admin@foo.com.br Necessário informar uma porta com -whitebind: '%s' + Node relay options: + Opções de relé nó : + + RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) Opções RPC SSL: (veja o Bitcoin Wiki para instruções de configuração SSL) @@ -3238,6 +3258,10 @@ por exemplo: alertnotify=echo %%s | mail -s "Alerta do Bitcoin" admin@foo.com.br (padrão: %s) + Acceptable ciphers (default: %s) + Cífras aceitas (padrão: %s) + + Error loading wallet.dat Erro ao carregar wallet.dat @@ -3250,6 +3274,10 @@ por exemplo: alertnotify=echo %%s | mail -s "Alerta do Bitcoin" admin@foo.com.br Gerar moedas (padrão: %u) + How many blocks to check at startup (default: %u, 0 = all) + Quantos blocos devem ser checados ao iniciar (padrão: %u, 0 = todos) + + Include IP addresses in debug output (default: %u) Incluir endereço IP na saída de debug (padrão: %u) @@ -3266,6 +3294,14 @@ por exemplo: alertnotify=echo %%s | mail -s "Alerta do Bitcoin" admin@foo.com.br Aguardar por conexões na porta <port> (padrão: %u ou testnet: %u) + Prepend debug output with timestamp (default: %u) + Adiciona timestamp como prefixo no debug (default: %u) + + + Relay non-P2SH multisig (default: %u) + Retransmitir P2SH não multisig (default: %u) + + Server certificate file (default: %s) Arquivo de certificado do servidor (padrão: %s) @@ -3274,6 +3310,22 @@ por exemplo: alertnotify=echo %%s | mail -s "Alerta do Bitcoin" admin@foo.com.br Chave privada do servidor (padrão: %s) + Set key pool size to <n> (default: %u) + Defina o tamanho da chave para piscina <n> (default: %u) + + + Set minimum block size in bytes (default: %u) + Definir tamanho mínimo do bloco, em bytes (padrão: %u) + + + Specify configuration file (default: %s) + Especificar arquivo de configuração (padrão: %s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + Especificar tempo para desistência de conexões, em mili segundos (mínimo: 1, padrão: %d) + + Specify pid file (default: %s) Especificar aqrquivo pid (default: %s) diff --git a/src/qt/locale/bitcoin_pt_PT.ts b/src/qt/locale/bitcoin_pt_PT.ts index 1c1f62df44d..5fde867b0b2 100644 --- a/src/qt/locale/bitcoin_pt_PT.ts +++ b/src/qt/locale/bitcoin_pt_PT.ts @@ -3039,6 +3039,18 @@ Endereço: %4 Definir tamanho máximo de transações com alta-prioridade/baixa-taxa em bytes (por defeito: %d) + Warning: Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly. + Atenção: Por favor verifique que a data e hora do seu computador estão correctas! Se o seu relógio não estiver certo o Bitcoin Core não irá funcionar correctamente. + + + Copyright (C) 2009-%i The Bitcoin Core Developers + Copyright (C) 2009-%i Os Programadores do Bitcoin Core + + + Error loading wallet.dat: Wallet requires newer version of Bitcoin Core + Erro ao carregar wallet.dat: A Carteira requer uma versão mais recente do Bitcoin Core + + Information Informação @@ -3083,6 +3095,10 @@ Endereço: %4 Nome de utilizador para ligações JSON-RPC + Wallet needed to be rewritten: restart Bitcoin Core to complete + A Carteira precisou de ser reescrita: reinicie o Bitcoin Core para completar o processo + + Warning Aviso @@ -3143,6 +3159,58 @@ Endereço: %4 Endereço -proxy inválido: '%s' + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + Escutar por ligações JSON-RPC na porta <port> (por defeito: %u ou rede de testes: %u) + + + Listen for connections on <port> (default: %u or testnet: %u) + Escute ligações na porta <port> (por defeito: %u ou testnet: %u) + + + Maintain at most <n> connections to peers (default: %u) + Manter no máximo <n> ligações a outros nós da rede (por defeito: %u) + + + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + Maximo armazenamento intermédio de recepção por ligação, <n>*1000 bytes (por defeito: %u) + + + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + Maximo armazenamento intermédio de envio por ligação, <n>*1000 bytes (por defeito: %u) + + + Prepend debug output with timestamp (default: %u) + Adicionar data e hora à informação de depuração (por defeito: %u) + + + Server certificate file (default: %s) + Ficheiro de certificado do servidor (por defeito: %s) + + + Server private key (default: %s) + Chave privada do servidor (por defeito: %s) + + + Set key pool size to <n> (default: %u) + Definir o tamanho da memória de chaves para <n> (por defeito: %u) + + + Set minimum block size in bytes (default: %u) + Definir tamanho minímo de um bloco em bytes (por defeito: %u) + + + Set the number of threads to service RPC calls (default: %d) + Defina o número de processos para servir as chamadas RPC (por defeito: %d) + + + Specify configuration file (default: %s) + Especificar ficheiro de configuração (por defeito: %s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + Especificar tempo de espera da ligação em milissegundos (mínimo 1, por defeito: %d) + + Unknown network specified in -onlynet: '%s' Rede desconhecida especificada em -onlynet: '%s' diff --git a/src/qt/locale/bitcoin_ro_RO.ts b/src/qt/locale/bitcoin_ro_RO.ts index ab36ff5321b..8a6a11ed432 100644 --- a/src/qt/locale/bitcoin_ro_RO.ts +++ b/src/qt/locale/bitcoin_ro_RO.ts @@ -1253,6 +1253,10 @@ Adresa: %4 URL-ul cererii de plată preluat nu este valid: %1 + URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. + URI nu poate fi analizat! Acest lucru poate fi cauzat de o adresă Bitcoin nevalidă sau parametri URI deformaţi. + + Payment request file handling Manipulare fişier cerere de plată diff --git a/src/qt/locale/bitcoin_ru.ts b/src/qt/locale/bitcoin_ru.ts index 7c44317df59..e28806849d9 100644 --- a/src/qt/locale/bitcoin_ru.ts +++ b/src/qt/locale/bitcoin_ru.ts @@ -11,7 +11,7 @@ &New - &Новый + Новый Copy the currently selected address to the system clipboard @@ -19,15 +19,15 @@ &Copy - &Копировать + Копировать C&lose - &Закрыть + Закрыть &Copy Address - &Копировать адрес + Копировать адрес Delete the currently selected address from the list @@ -35,15 +35,15 @@ Export the data in the current tab to a file - Экспортировать данные из вкладки в файл + Экспортировать данные текущей вкладки в файл &Export - &Экспорт + Экспорт &Delete - &Удалить + Удалить Choose the address to send coins to @@ -55,7 +55,7 @@ C&hoose - &Выбрать + Выбрать Sending addresses @@ -75,11 +75,11 @@ Copy &Label - Копировать &метку + Копировать &Метку &Edit - &Правка + Правка Export Address List @@ -87,7 +87,7 @@ Comma separated file (*.csv) - Текст, разделённый запятыми (*.csv) + Файл, разделённый запятыми (*.csv) Exporting Failed @@ -106,7 +106,7 @@ (no label) - [нет метки] + (нет метки) @@ -133,7 +133,7 @@ This operation needs your wallet passphrase to unlock the wallet. - Для выполнения операции требуется пароль вашего бумажника. + Данная операция требует введения пароля для разблокировки вашего бумажника. Unlock wallet @@ -141,7 +141,7 @@ This operation needs your wallet passphrase to decrypt the wallet. - Для выполнения операции требуется пароль вашего бумажника. + Данная операция требует введения пароля для расшифровки вашего бумажника. Decrypt wallet @@ -161,7 +161,7 @@ Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - Внимание: если вы зашифруете бумажник и потеряете пароль, вы <b>ПОТЕРЯЕТЕ ВСЕ ВАШИ БИТКОЙНЫ</b>! + Предупреждение: если вы зашифруете бумажник и потеряете пароль, вы <b>ПОТЕРЯЕТЕ ВСЕ ВАШИ БИТКОЙНЫ</b>! Are you sure you wish to encrypt your wallet? @@ -205,7 +205,7 @@ The passphrase entered for the wallet decryption was incorrect. - Указанный пароль не подходит. + Неверно указан пароль для расшиврования бумажника. Wallet decryption failed @@ -220,7 +220,7 @@ BitcoinGUI Sign &message... - &Подписать сообщение... + Подписать &сообщение Synchronizing with network... @@ -228,7 +228,7 @@ &Overview - &Обзор + Обзор Node @@ -240,15 +240,15 @@ &Transactions - &Транзакции + Транзакции Browse transaction history - Показать историю транзакций + Просмотр истории транзакций E&xit - В&ыход + Выход Quit application @@ -256,7 +256,7 @@ About &Qt - О &Qt + О Qt Show information about Qt @@ -264,31 +264,31 @@ &Options... - &Параметры + Параметры &Encrypt Wallet... - &Зашифровать бумажник... + Зашифровать бумажник... &Backup Wallet... - &Сделать резервную копию бумажника... + Сделать резервную копию бумажника... &Change Passphrase... - &Изменить пароль... + Сменить пароль &Sending addresses... - &Адреса отправки... + Адреса отправки... &Receiving addresses... - Адреса &получения... + Адреса получения... Open &URI... - Открыть &URI... + Открыть URI... Bitcoin Core client @@ -304,7 +304,7 @@ Send coins to a Bitcoin address - Отправить монеты на указанный адрес Bitcoin + Отправить монеты на адрес Bitcoin Modify configuration options for Bitcoin @@ -320,7 +320,7 @@ &Debug window - &Окно отладки + Окно отладки Open debugging and diagnostic console @@ -328,11 +328,11 @@ &Verify message... - &Проверить сообщение... + Проверить сообщение... Bitcoin - Bitcoin + Биткойн Wallet @@ -340,11 +340,11 @@ &Send - &Отправить + Отправить &Receive - &Получить + Получить Show information about Bitcoin Core @@ -352,3207 +352,159 @@ &Show / Hide - &Показать / Скрыть + Показать / Скрыть Show or hide the main Window Показать или скрыть главное окно - - Encrypt the private keys that belong to your wallet - Зашифровать приватные ключи, принадлежащие вашему бумажнику - - - Sign messages with your Bitcoin addresses to prove you own them - Подписать сообщения вашим адресом Bitcoin, чтобы доказать, что вы им владеете - - - Verify messages to ensure they were signed with specified Bitcoin addresses - Проверить сообщения, чтобы удостовериться, что они были подписаны определённым адресом Bitcoin - - - &File - &Файл - - - &Settings - &Настройки - - - &Help - &Помощь - - - Tabs toolbar - Панель вкладок - - - Bitcoin Core - Bitcoin Core - - - Request payments (generates QR codes and bitcoin: URIs) - Запросить платежи (создаёт QR-коды и bitcoin: ссылки) - - - &About Bitcoin Core - &О Bitcoin Core - - - Show the list of used sending addresses and labels - Показать список использованных адресов и меток отправки - - - Show the list of used receiving addresses and labels - Показать список использованных адресов и меток получения - - - Open a bitcoin: URI or payment request - Открыть bitcoin: URI или запрос платежа - - - &Command-line options - &Параметры командной строки - - - Show the Bitcoin Core help message to get a list with possible Bitcoin command-line options - Показать помощь по Bitcoin Core и получить список доступных параметров командной строки. - - - %n active connection(s) to Bitcoin network - %n активное соединение с сетью%n активных соединений с сетью%n активных соединений с сетью Bitcoin%n активных соединений с сетью Bitcoin - - - No block source available... - Источник блоков недоступен... - - - %n hour(s) - %n час%n часа%n часов%n часов - - - %n day(s) - %n день%n дня%n дней%n дней - - - %n week(s) - %n неделя%n недели%n недель%n недель - - - %1 and %2 - %1 и %2 - - - %n year(s) - %n год%n лет%n года%n года - - - %1 behind - %1 позади - - - Last received block was generated %1 ago. - Последний полученный блок был сгенерирован %1 назад. - - - Transactions after this will not yet be visible. - Транзакции после него пока не будут видны. - - - Error - Ошибка - - - Warning - Внимание - - - Information - Информация - - - Up to date - Синхронизировано - - - Processed %n blocks of transaction history. - Обработан %n блок истории транзакций.Обработано %n блока истории транзакций.Обработано %n блоков истории транзакций.Обработано %n блоков истории транзакций. - - - Catching up... - Синхронизируется... - - - Sent transaction - Исходящая транзакция - - - Incoming transaction - Входящая транзакция - - - Date: %1 -Amount: %2 -Type: %3 -Address: %4 - - Дата: %1 -Сумма: %2 -Тип: %3 -Адрес: %4 - - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Бумажник <b>зашифрован</b> и в настоящее время <b>разблокирован</b> - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - Бумажник <b>зашифрован</b> и в настоящее время <b>заблокирован</b> - - + ClientModel - - Network Alert - Сетевая Тревога - - + CoinControlDialog - Coin Selection - Выбор монет - - - Quantity: - Количество: - - - Bytes: - Байт: - - - Amount: - Сумма: - - - Priority: - Приоритет: - - - Fee: - Комиссия: - - - Dust: - Пыль: - - - After Fee: - После комиссии: - - - Change: - Сдача: - - - (un)select all - Отменить выбор всего - - - Tree mode - Режим дерева - - - List mode - Режим списка - - - Amount - Сумма - - - Received with label - Получено с пометкой - - - Received with address - Получено с адреса - - - Date - Дата - - - Confirmations - Подтверждений - - - Confirmed - Подтверждено - - - Priority - Приоритет - - - Copy address - Копировать адрес - - - Copy label - Копировать метку - - - Copy amount - Скопировать сумму - - - Copy transaction ID - Скопировать ID транзакции - - - Lock unspent - Заблокировать непотраченное - - - Unlock unspent - Разблокировать непотраченное - - - Copy quantity - Копировать количество - - - Copy fee - Копировать комиссию - - - Copy after fee - Копировать после комиссии - - - Copy bytes - Копировать байты - - - Copy priority - Копировать приоритет - - - Copy dust - Копировать пыль - - - Copy change - Копировать сдачу - - - highest - самый высокий - - - higher - выше - - - high - высокий - - - medium-high - выше среднего + (no label) + (нет метки) + + + EditAddressDialog + + + FreespaceChecker + + + HelpMessageDialog + + + Intro + + + OpenURIDialog + + + OptionsDialog + + + OverviewPage + + + PaymentServer + + + PeerTableModel + + + QObject + + + QRImageWidget + + + RPCConsole + + + ReceiveCoinsDialog + + + ReceiveRequestDialog - medium - средний + Address + Адрес - low-medium - ниже среднего + Label + Метка + + + RecentRequestsTableModel - low - низкий + Label + Метка - lower - ниже + (no label) + (нет метки) + + + SendCoinsDialog - lowest - самый низкий + (no label) + (нет метки) + + + SendCoinsEntry + + + ShutdownWindow + + + SignVerifyMessageDialog + + + SplashScreen + + + TrafficGraphWidget + + + TransactionDesc + + + TransactionDescDialog + + + TransactionTableModel - (%1 locked) - (%1 заблокировано) + Address + Адрес + + + TransactionView - none - ничего + Exporting Failed + Экспорт не удался - Can vary +/- %1 satoshi(s) per input. - Может отличаться на +/- %1 сатоши на вход. + Comma separated file (*.csv) + Файл, разделённый запятыми (*.csv) - yes - да + Label + Метка - no - нет + Address + Адрес + + + UnitDisplayStatusBarControl + + + WalletFrame + + + WalletModel + + + WalletView - This label turns red, if the transaction size is greater than 1000 bytes. - Эта пометка становится красной, если размер транзакции больше 1000 байт. + &Export + Экспорт - This means a fee of at least %1 per kB is required. - Это значит, что требуется комиссия как минимум %1 на КБ. + Export the data in the current tab to a file + Экспортировать данные текущей вкладки в файл - - Can vary +/- 1 byte per input. - Может отличаться на +/- 1 байт на вход. - - - Transactions with higher priority are more likely to get included into a block. - Транзакции с более высоким приоритетом будут вероятнее других включены в блок. - - - This label turns red, if the priority is smaller than "medium". - Эта пометка становится красной, если приоритет ниже, чем "средний". - - - This label turns red, if any recipient receives an amount smaller than %1. - Эта пометка становится красной, если какой-либо из адресатов получает сумму менее %1. - - - (no label) - [нет метки] - - - change from %1 (%2) - сдача с %1 (%2) - - - (change) - (размен) - - - - EditAddressDialog - - Edit Address - Изменить адрес - - - &Label - &Метка - - - The label associated with this address list entry - Метка, связанная с этой записью списка адресов - - - The address associated with this address list entry. This can only be modified for sending addresses. - Адрес, связанный с этой записью списка адресов. Он может быть изменён только для адресов отправки. - - - &Address - &Адрес - - - New receiving address - Новый адрес для получения - - - New sending address - Новый адрес для отправки - - - Edit receiving address - Изменение адреса для получения - - - Edit sending address - Изменение адреса для отправки - - - The entered address "%1" is already in the address book. - Введённый адрес «%1» уже находится в адресной книге. - - - The entered address "%1" is not a valid Bitcoin address. - Введённый адрес "%1" не является правильным Bitcoin-адресом. - - - Could not unlock wallet. - Не удается разблокировать бумажник. - - - New key generation failed. - Генерация нового ключа не удалась. - - - - FreespaceChecker - - A new data directory will be created. - Будет создан новый каталог данных. - - - name - имя - - - Directory already exists. Add %1 if you intend to create a new directory here. - Каталог уже существует. Добавьте %1, если вы хотите создать здесь новый каталог. - - - Path already exists, and is not a directory. - Путь уже существует и не является каталогом. - - - Cannot create data directory here. - Не удаётся создать здесь каталог данных. - - - - HelpMessageDialog - - Bitcoin Core - Bitcoin Core - - - version - версия - - - (%1-bit) - (%1-бит) - - - About Bitcoin Core - О Bitcoin Core - - - Command-line options - Параметры командной строки - - - Usage: - Использование: - - - command-line options - параметры командной строки - - - UI options - Настройки интерфейса - - - Set language, for example "de_DE" (default: system locale) - Выберите язык, например "de_DE" (по умолчанию: как в системе) - - - Start minimized - Запускать свёрнутым - - - Set SSL root certificates for payment request (default: -system-) - Указать корневые SSL-сертификаты для запроса платежа (по умолчанию: -system-) - - - Show splash screen on startup (default: 1) - Показывать сплэш при запуске (по умолчанию: 1) - - - Choose data directory on startup (default: 0) - Выбрать каталог данных при запуске (по умолчанию: 0) - - - - Intro - - Welcome - Добро пожаловать - - - Welcome to Bitcoin Core. - Добро пожаловать в Bitcoin Core. - - - As this is the first time the program is launched, you can choose where Bitcoin Core will store its data. - Так как вы впервые запустили программу, вы можете выбрать, где Bitcoin Core будет хранить данные. - - - 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. - Bitcoin Core скачает и сохранит копию цепи блоков. Как минимум, %1ГБ данных будет храниться в этом каталоге, и со временем он будет расти. Бумажник будет также сохранён в этом каталоге. - - - Use the default data directory - Использовать каталог данных по умолчанию - - - Use a custom data directory: - Использовать другой каталог данных: - - - Bitcoin Core - Bitcoin Core - - - Error: Specified data directory "%1" cannot be created. - Ошибка: не удалось создать указанный каталог данных "%1". - - - Error - Ошибка - - - %n GB of free space available - %nГБ свободного места доступно%nГБ свободного места доступно%nГБ свободного места доступно%nГБ свободного места доступно - - - (of %n GB needed) - (из необходимых %nГБ)(из необходимых %nГБ)(из необходимых %nГБ)(из необходимых %nГБ) - - - - OpenURIDialog - - Open URI - Открыть URI - - - Open payment request from URI or file - Открыть запрос платежа из URI или файла - - - URI: - URI: - - - Select payment request file - Выбрать файл запроса платежа - - - Select payment request file to open - Выберите файл запроса платежа - - - - OptionsDialog - - Options - Параметры - - - &Main - &Главная - - - Automatically start Bitcoin after logging in to the system. - Автоматически запускать Bitcoin после входа в систему - - - &Start Bitcoin on system login - &Запускать Bitcoin при входе в систему - - - Size of &database cache - Размер кэша &БД - - - MB - МБ - - - Number of script &verification threads - Число потоков проверки &сценария - - - Accept connections from outside - Разрешать соединения извне - - - Allow incoming connections - Разрешить входящие подключения - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - IP-адрес прокси (например IPv4: 127.0.0.1 / IPv6: ::1) - - - Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - Сторонние URL (например, block explorer), которые отображаются на вкладке транзакций как пункты контекстного меню. %s в URL заменяется хэшем транзакции. URL отделяются друг от друга вертикальной чертой |. - - - Third party transaction URLs - Сторонние URL транзакций. - - - Active command-line options that override above options: - Активные опции командной строки, которые перекрывают вышеуказанные опции: - - - Reset all client options to default. - Сбросить все настройки клиента на значения по умолчанию. - - - &Reset Options - &Сбросить параметры - - - &Network - &Сеть - - - (0 = auto, <0 = leave that many cores free) - (0 = автоматически, <0 = оставить столько незагруженных ядер) - - - W&allet - Б&умажник - - - Expert - Эксперт - - - Enable coin &control features - Включить управление входами - - - If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed. - При отключении траты неподтверждённой сдачи, сдача от транзакции не может быть использована до тех пор пока у этой транзакции не будет хотя бы одно подтверждение. Это также влияет как ваш баланс рассчитывается. - - - &Spend unconfirmed change - &Тратить неподтверждённую сдачу - - - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Автоматически открыть порт для Bitcoin-клиента на роутере. Работает только если Ваш роутер поддерживает UPnP, и данная функция включена. - - - Map port using &UPnP - Пробросить порт через &UPnP - - - Connect to the Bitcoin network through a SOCKS5 proxy. - Подключаться к сети Bitcoin через прокси SOCKS5 - - - &Connect through SOCKS5 proxy (default proxy): - &Подключаться к сети Bitcoin через прокси SOCKS5 (прокси по умолчанию): - - - Proxy &IP: - &IP Прокси: - - - &Port: - По&рт: - - - Port of the proxy (e.g. 9050) - Порт прокси-сервера (например, 9050) - - - &Window - &Окно - - - Show only a tray icon after minimizing the window. - Показывать только иконку в системном лотке после сворачивания окна. - - - &Minimize to the tray instead of the taskbar - &Cворачивать в системный лоток вместо панели задач - - - Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. - Сворачивать вместо закрытия. Если данная опция будет выбрана — приложение закроется только после выбора соответствующего пункта в меню. - - - M&inimize on close - С&ворачивать при закрытии - - - &Display - О&тображение - - - User Interface &language: - &Язык интерфейса: - - - The user interface language can be set here. This setting will take effect after restarting Bitcoin. - Здесь можно выбрать язык интерфейса. Настройки вступят в силу после перезапуска Bitcoin. - - - &Unit to show amounts in: - &Отображать суммы в единицах: - - - Choose the default subdivision unit to show in the interface and when sending coins. - Выберите единицу измерения монет при отображении и отправке. - - - Whether to show coin control features or not. - Показывать ли функции контроля монет или нет. - - - &OK - &OK - - - &Cancel - &Отмена - - - default - по умолчанию - - - none - ничего - - - Confirm options reset - Подтвердите сброс параметров - - - Client restart required to activate changes. - Для применения изменений требуется перезапуск клиента. - - - Client will be shutdown, do you want to proceed? - Клиент будет выключен, желаете продолжить? - - - This change would require a client restart. - Это изменение потребует перезапуска клиента. - - - The supplied proxy address is invalid. - Адрес прокси неверен. - - + - OverviewPage - - Form - Форма - - - 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. - Отображаемая информация может быть устаревшей. Ваш бумажник автоматически синхронизируется с сетью Bitcoin после подключения, но этот процесс пока не завершён. - - - Watch-only: - Только наблюдение: - - - Available: - Доступно: - - - Your current spendable balance - Ваш текущий расходный баланс - - - Pending: - В ожидании: - - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Общая сумма всех транзакций, которые до сих пор не подтверждены, и до сих пор не учитываются в расходном балансе - - - Immature: - Незрелые: - - - Mined balance that has not yet matured - Баланс добытых монет, который ещё не созрел - - - Balances - Балансы - - - Total: - Итого: - - - Your current total balance - Ваш текущий общий баланс - - - Your current balance in watch-only addresses - Ваш текущий баланс в адресах наблюдения - - - Spendable: - Доступно: - - - Recent transactions - Последние транзакции - - - Unconfirmed transactions to watch-only addresses - Неподтверждённые транзакции на адреса наблюдения - - - Mined balance in watch-only addresses that has not yet matured - Баланс добытых монет на адресах наблюдения, который ещё не созрел - - - Current total balance in watch-only addresses - Текущий общий баланс на адресах наблюдения - - - out of sync - не синхронизировано - - - - PaymentServer - - URI handling - Обработка URI - - - Invalid payment address %1 - Неверный адрес платежа %1 - - - Payment request rejected - Запрос платежа отклонён - - - Payment request network doesn't match client network. - Сеть запроса платежа не совпадает с сетью клиента. - - - Payment request has expired. - Запрос платежа просрочен. - - - Payment request is not initialized. - Запрос платежа не инициализирован. - - - Requested payment amount of %1 is too small (considered dust). - Запрошенная сумма платежа %1 слишком мала (считается пылью). - - - Payment request error - Ошибка запроса платежа - - - Cannot start bitcoin: click-to-pay handler - Не удаётся запустить bitcoin: обработчик click-to-pay - - - Payment request fetch URL is invalid: %1 - Неверный URL запроса платежа: %1 - - - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - Не удалось обработать URI! Это может быть связано с неверным адресом Bitcoin или неправильными параметрами URI. - - - Payment request file handling - Обработка файла запроса платежа - - - Payment request file cannot be read! This can be caused by an invalid payment request file. - Файл запроса платежа не может быть прочитан! Обычно это происходит из-за неверного файла запроса платежа. - - - Unverified payment requests to custom payment scripts are unsupported. - Непроверенные запросы платежей с нестандартными платёжными сценариями не поддерживаются. - - - Refund from %1 - Возврат от %1 - - - Payment request %1 is too large (%2 bytes, allowed %3 bytes). - Запрос платежа %1 слишком большой (%2 байтов, разрешено %3 байтов). - - - Payment request DoS protection - DoS-защита запроса платежа - - - Error communicating with %1: %2 - Ошибка связи с %1: %2 - - - Payment request cannot be parsed! - Запрос платежа не может быть разобран! - - - Bad response from server %1 - Плохой ответ от сервера %1 - - - Payment acknowledged - Платёж принят - - - Network request error - Ошибка сетевого запроса - - - - PeerTableModel - - User Agent - Юзер-агент - - - Address/Hostname - Адрес/имя хоста - - - Ping Time - Время задержки - - - - QObject - - Amount - Сумма - - - Enter a Bitcoin address (e.g. %1) - Введите адрес Bitcoin (например, %1) - - - %1 d - %1 д - - - %1 h - %1 ч - - - %1 m - %1 мин - - - %1 s - %1 с - - - NETWORK - СЕТЬ - - - UNKNOWN - НЕИЗВЕСТНЫЙ - - - None - Ничего - - - N/A - Н/Д - - - %1 ms - %1 мс - - - - QRImageWidget - - &Save Image... - &Сохранить изображение... - - - &Copy Image - &Копировать изображение - - - Save QR Code - Сохранить QR-код - - - PNG Image (*.png) - Изображение PNG (*.png) - - - - RPCConsole - - Client name - Имя клиента - - - N/A - Н/Д - - - Client version - Версия клиента - - - &Information - &Информация - - - Debug window - Окно отладки - - - General - Общие - - - Using OpenSSL version - Используется версия OpenSSL - - - Using BerkeleyDB version - Используется версия BerkeleyDB - - - Startup time - Время запуска - - - Network - Сеть - - - Name - Имя - - - Number of connections - Число подключений - - - Block chain - Цепь блоков - - - Current number of blocks - Текущее число блоков - - - Received - Получено - - - Sent - Отправлено - - - &Peers - &Участники - - - Select a peer to view detailed information. - Выберите участника для просмотра подробностей. - - - Direction - Направление - - - Version - Версия - - - User Agent - Юзер-агент - - - Services - Сервисы - - - Starting Height - Начальная высота - - - Sync Height - Высота синхронизации - - - Ban Score - Очков бана - - - Connection Time - Время соединения - - - Last Send - Последняя отправка - - - Last Receive - Последний раз получено - - - Bytes Sent - Байт передано - - - Bytes Received - Байт получено - - - Ping Time - Время задержки - - - Last block time - Время последнего блока - - - &Open - &Открыть - - - &Console - Консоль - - - &Network Traffic - Сетевой &трафик - - - &Clear - &Очистить - - - Totals - Всего - - - In: - Вход: - - - Out: - Выход: - - - Build date - Дата сборки - - - Debug log file - Отладочный лог-файл - - - Open the Bitcoin debug log file from the current data directory. This can take a few seconds for large log files. - Открыть отладочный лог-файл Bitcoin из текущего каталога данных. Это может занять несколько секунд для больших лог-файлов. - - - Clear console - Очистить консоль - - - Welcome to the Bitcoin RPC console. - Добро пожаловать в RPC-консоль Bitcoin. - - - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Используйте стрелки вверх и вниз для просмотра истории и <b>Ctrl-L</b> для очистки экрана. - - - Type <b>help</b> for an overview of available commands. - Напишите <b>help</b> для просмотра доступных команд. - - - %1 B - %1 Б - - - %1 KB - %1 КБ - - - %1 MB - %1 МБ - - - %1 GB - %1 ГБ - - - via %1 - через %1 - - - never - никогда - - - Inbound - Входящие - - - Outbound - Исходящие - - - Unknown - Неизвестно - - - Fetching... - Получение... - - - - ReceiveCoinsDialog - - &Amount: - &Сумма: - - - &Label: - &Метка: - - - &Message: - &Сообщение - - - Reuse one of the previously used receiving addresses. Reusing addresses has security and privacy issues. Do not use this unless re-generating a payment request made before. - Повторно использовать один из ранее использованных адресов. Повторное использование адресов несёт риски безопасности и приватности. Не используйте эту опцию, если вы не создаёте повторно ранее сделанный запрос платежа. - - - R&euse an existing receiving address (not recommended) - &Повторно использовать существующий адрес получения (не рекомендуется) - - - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Необязательное сообщение для запроса платежа, которое будет показано при открытии запроса. Заметьте: сообщение не будет отправлено вместе с платежом через сеть Bitcoin. - - - An optional label to associate with the new receiving address. - Необязательная метка для нового адреса получения. - - - Use this form to request payments. All fields are <b>optional</b>. - Заполните форму для запроса платежей. Все поля <b>необязательны</b>. - - - An optional amount to request. Leave this empty or zero to not request a specific amount. - Необязательная сумма для запроса. Оставьте пустым или укажите ноль, чтобы запросить неопределённую сумму. - - - Clear all fields of the form. - Очистить все поля формы. - - - Clear - Очистить - - - Requested payments history - История запрошенных платежей - - - &Request payment - &Запросить платёж - - - Show the selected request (does the same as double clicking an entry) - Показать выбранный запрос (то же самое, что и двойной клик по записи) - - - Show - Показать - - - Remove the selected entries from the list - Удалить выбранные записи из списка - - - Remove - Удалить - - - Copy label - Копировать метку - - - Copy message - Копировать сообщение - - - Copy amount - Скопировать сумму - - - - ReceiveRequestDialog - - QR Code - QR код - - - Copy &URI - Копировать &URI - - - Copy &Address - Копировать &адрес - - - &Save Image... - &Сохранить изображение... - - - Request payment to %1 - Запросить платёж на %1 - - - Payment information - Информация платежа - - - URI - URI - - - Address - Адрес - - - Amount - Сумма - - - Label - Метка - - - Message - Сообщение - - - Resulting URI too long, try to reduce the text for label / message. - Получившийся URI слишком длинный, попробуйте сократить текст метки / сообщения. - - - Error encoding URI into QR Code. - Ошибка кодирования URI в QR-код - - - - RecentRequestsTableModel - - Date - Дата - - - Label - Метка - - - Message - Сообщение - - - Amount - Сумма - - - (no label) - [нет метки] - - - (no message) - (нет сообщения) - - - (no amount) - (нет суммы) - - - - SendCoinsDialog - - Send Coins - Отправка - - - Coin Control Features - Функции Контроля Монет - - - Inputs... - Входы... - - - automatically selected - автоматически выбрано - - - Insufficient funds! - Недостаточно средств! - - - Quantity: - Количество: - - - Bytes: - Байт: - - - Amount: - Сумма: - - - Priority: - Приоритет: - - - Fee: - Комиссия: - - - After Fee: - После комиссии: - - - Change: - Размен: - - - If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Если это выбрано, но адрес сдачи пустой или неверный, сдача будет отправлена на новый сгенерированный адрес. - - - Custom change address - Свой адрес для сдачи - - - Transaction Fee: - Комиссия - - - Choose... - Выберите... - - - collapse fee-settings - Свернуть настройки комиссии - - - Minimize - Сворачивать - - - 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. - Если комиссия установлена в 1000 сатоши, а транзакция составляет лишь 250 байт, тогда комиссия "на килобайт" составит 250 сатоши, а "как минимум" — 1000 сатоши. Для транзакций крупнее килобайта в обоих случаях будет использоваться платёж "на килобайт". - - - per kilobyte - за килобайт - - - 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. - Если комиссия установлена в 1000 сатоши, а транзакция составляет лишь 250 байт, тогда комиссия "на килобайт" составит 250 сатоши, а "всего как минимум" — 1000 сатоши. Для транзакций крупнее килобайта в обоих случаях будет использоваться платёж "на килобайт". - - - total at least - Итого как минимум - - - 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. - Уплата минимальной комиссии — не проблема, пока объём транзакций меньше, чем свободное место в блоках. Учтите, однако, что такая транзакция может никогда не подтвердиться, если спрос на транзакции превышает возможности сети по их обработке. - - - (read the tooltip) - (прочтите подсказку) - - - Recommended: - Рекомендовано: - - - Custom: - Выборочно: - - - (Smart fee not initialized yet. This usually takes a few blocks...) - (Умная комиссия пока не инициализирована. Обычно для этого требуется несколько блоков...) - - - Confirmation time: - Время подтверждения: - - - normal - обычный - - - fast - ускоренный - - - Send as zero-fee transaction if possible - Осуществить транзакцию бесплатно, если возможно - - - (confirmation may take longer) - (подтверждение может занять больше времени) - - - Send to multiple recipients at once - Отправить нескольким получателям одновременно - - - Add &Recipient - &Добавить получателя - - - Clear all fields of the form. - Очистить все поля формы - - - Dust: - Пыль: - - - Clear &All - Очистить &всё - - - Balance: - Баланс: - - - Confirm the send action - Подтвердить отправку - - - S&end - &Отправить - - - Confirm send coins - Подтвердите отправку монет - - - %1 to %2 - С %1 на %2 - - - Copy quantity - Копировать количество - - - Copy amount - Скопировать сумму - - - Copy fee - Копировать комиссию - - - Copy after fee - Копировать после комиссии - - - Copy bytes - Копировать байты - - - Copy priority - Копировать приоритет - - - Copy change - Копировать размен - - - Total Amount %1 (= %2) - Общая сумма %1 (= %2) - - - or - или - - - The recipient address is not valid, please recheck. - Адрес получателя неверный, пожалуйста, перепроверьте. - - - The amount to pay must be larger than 0. - Сумма для отправки должно быть больше 0. - - - The amount exceeds your balance. - Сумма превышает Ваш баланс - - - The total exceeds your balance when the %1 transaction fee is included. - Сумма превысит Ваш баланс, если комиссия в размере %1 будет добавлена к транзакции - - - Duplicate address found, can only send to each address once per send operation. - Обнаружен дублирующийся адрес. Отправка на один и тот же адрес возможна только один раз за одну операцию отправки - - - Transaction creation failed! - Не удалось создать транзакцию! - - - 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. - Транзакция была отклонена! Такое может произойти, если некоторые монеты уже были потрачены, например, если Вы используете одну копию бумажника (wallet.dat), а монеты были потрачены из другой копии, но не были отмечены как потраченные в этой. - - - A fee higher than %1 is considered an insanely high fee. - Комиссия больше, чем %1, считается невероятно большой. - - - Estimated to begin confirmation within %1 block(s). - Начало подтверждения ожидается через %1 блок(ов). - - - Warning: Invalid Bitcoin address - Внимание: неверный адрес Bitcoin - - - (no label) - [нет метки] - - - Warning: Unknown change address - Внимание: неизвестный адрес для сдачи - - - Copy dust - Копировать пыль - - - Are you sure you want to send? - Вы уверены, что хотите отправить? - - - added as transaction fee - добавлено как комиссия - - - - SendCoinsEntry - - A&mount: - Ко&личество: - - - Pay &To: - Полу&чатель: - - - Enter a label for this address to add it to your address book - Введите метку для данного адреса (для добавления в адресную книгу) - - - &Label: - &Метка: - - - Choose previously used address - Выберите ранее использованный адрес - - - This is a normal payment. - Это нормальный платёж. - - - The Bitcoin address to send the payment to - Адрес Bitcoin, на который отправить платёж - - - Alt+A - Alt+A - - - Paste address from clipboard - Вставить адрес из буфера обмена - - - Alt+P - Alt+P - - - Remove this entry - Удалить эту запись - - - Message: - Сообщение: - - - This is a verified payment request. - Это проверенный запрос платежа. - - - Enter a label for this address to add it to the list of used addresses - Введите метку для этого адреса, чтобы добавить его в список использованных - - - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - К bitcoin: URI было прикреплено сообщение, которое будет сохранено вместе с транзакцией для вашего сведения. Заметьте: сообщение не будет отправлено через сеть Bitcoin. - - - This is an unverified payment request. - Это непроверенный запрос платежа. - - - Pay To: - Получатель: - - - Memo: - Примечание: - - - - ShutdownWindow - - Bitcoin Core is shutting down... - Bitcoin Core выключается... - - - Do not shut down the computer until this window disappears. - Не выключайте компьютер, пока это окно не исчезнет. - - - - SignVerifyMessageDialog - - Signatures - Sign / Verify a Message - Подписи - подписать/проверить сообщение - - - &Sign Message - &Подписать сообщение - - - 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. - Вы можете подписывать сообщения своими адресами, чтобы доказать владение ими. Будьте осторожны, не подписывайте что-то неопределённое, так как фишинговые атаки могут обманным путём заставить вас подписать нежелательные сообщения. Подписывайте только те сообщения, с которыми вы согласны вплоть до мелочей. - - - The Bitcoin address to sign the message with - Адрес Bitcoin, которым подписать сообщение - - - Choose previously used address - Выберите ранее использованный адрес - - - Alt+A - Alt+A - - - Paste address from clipboard - Вставить адрес из буфера обмена - - - Alt+P - Alt+P - - - Enter the message you want to sign here - Введите сообщение для подписи - - - Signature - Подпись - - - Copy the current signature to the system clipboard - Скопировать текущую подпись в системный буфер обмена - - - Sign the message to prove you own this Bitcoin address - Подписать сообщение, чтобы доказать владение адресом Bitcoin - - - Sign &Message - Подписать &Сообщение - - - Reset all sign message fields - Сбросить значения всех полей подписывания сообщений - - - Clear &All - Очистить &всё - - - &Verify Message - &Проверить сообщение - - - 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. - Введите ниже адрес для подписи, сообщение (убедитесь, что переводы строк, пробелы, табы и т.п. в точности скопированы) и подпись, чтобы проверить сообщение. Убедитесь, что не скопировали лишнего в подпись, по сравнению с самим подписываемым сообщением, чтобы не стать жертвой атаки "man-in-the-middle". - - - The Bitcoin address the message was signed with - Адрес Bitcoin, которым было подписано сообщение - - - Verify the message to ensure it was signed with the specified Bitcoin address - Проверить сообщение, чтобы убедиться, что оно было подписано указанным адресом Bitcoin - - - Verify &Message - Проверить &Сообщение - - - Reset all verify message fields - Сбросить все поля проверки сообщения - - - Click "Sign Message" to generate signature - Нажмите "Подписать сообщение" для создания подписи - - - The entered address is invalid. - Введённый адрес неверен - - - Please check the address and try again. - Пожалуйста, проверьте адрес и попробуйте ещё раз. - - - The entered address does not refer to a key. - Введённый адрес не связан с ключом - - - Wallet unlock was cancelled. - Разблокировка бумажника была отменена. - - - Private key for the entered address is not available. - Для введённого адреса недоступен закрытый ключ - - - Message signing failed. - Не удалось подписать сообщение - - - Message signed. - Сообщение подписано - - - The signature could not be decoded. - Подпись не может быть раскодирована. - - - Please check the signature and try again. - Пожалуйста, проверьте подпись и попробуйте ещё раз. - - - The signature did not match the message digest. - Подпись не соответствует отпечатку сообщения. - - - Message verification failed. - Проверка сообщения не удалась. - - - Message verified. - Сообщение проверено. - - - - SplashScreen - - Bitcoin Core - Bitcoin Core - - - The Bitcoin Core developers - Разработчики Bitcoin Core - - - [testnet] - [тестовая сеть] - - - - TrafficGraphWidget - - KB/s - КБ/сек - - - - TransactionDesc - - Open until %1 - Открыто до %1 - - - conflicted - в противоречии - - - %1/offline - %1/отключен - - - %1/unconfirmed - %1/не подтверждено - - - %1 confirmations - %1 подтверждений - - - Status - Статус - - - , broadcast through %n node(s) - , разослано через %n узел, разослано через %n узла, разослано через %n узлов, разослано через %n узлов - - - Date - Дата - - - Source - Источник - - - Generated - Сгенерированно - - - From - От - - - To - Для - - - own address - свой адрес - - - watch-only - только наблюдение - - - label - метка - - - Credit - Кредит - - - matures in %n more block(s) - будет доступно через %n блокбудет доступно через %n блокабудет доступно через %n блоковбудет доступно через %n блоков - - - not accepted - не принято - - - Debit - Дебет - - - Total debit - Всего дебет - - - Total credit - Всего кредит - - - Transaction fee - Комиссия - - - Net amount - Чистая сумма - - - Message - Сообщение - - - Comment - Комментарий: - - - Transaction ID - ID транзакции - - - Merchant - Продавец - - - 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. - Сгенерированные монеты должны подождать %1 блоков, прежде чем они могут быть потрачены. Когда Вы сгенерировали этот блок, он был отправлен в сеть для добавления в цепочку блоков. Если он не попадёт в цепь, его статус изменится на "не принят", и монеты будут недействительны. Это иногда происходит в случае, если другой узел сгенерирует блок на несколько секунд раньше вас. - - - Debug information - Отладочная информация - - - Transaction - Транзакция - - - Inputs - Входы - - - Amount - Сумма - - - true - истина - - - false - ложь - - - , has not been successfully broadcast yet - , ещё не было успешно разослано - - - Open for %n more block(s) - Открыто для ещё %n блокаОткрыто для ещё %n блоковОткрыто для ещё %n блоковОткрыто для ещё %n блоков - - - unknown - неизвестно - - - - TransactionDescDialog - - Transaction details - Детали транзакции - - - This pane shows a detailed description of the transaction - Эта панель отображает детальное описание транзакции. - - - - TransactionTableModel - - Date - Дата - - - Type - Тип - - - Address - Адрес - - - Immature (%1 confirmations, will be available after %2) - Незрелый (%1 подтверждений, будет доступен после %2) - - - Open for %n more block(s) - Открыто для ещё %n блокаОткрыто для ещё %n блоковОткрыто для ещё %n блоковОткрыто для ещё %n блоков - - - Open until %1 - Открыто до %1 - - - Confirmed (%1 confirmations) - Подтверждено (%1 подтверждений) - - - This block was not received by any other nodes and will probably not be accepted! - Этот блок не был получен другими узлами и, возможно, не будет принят! - - - Generated but not accepted - Сгенерированно, но не подтверждено - - - Offline - Нет активных соединений с сетью - - - Unconfirmed - Неподтверждено - - - Conflicted - В противоречии - - - Received with - Получено - - - Received from - Получено от - - - Sent to - Отправлено - - - Payment to yourself - Отправлено себе - - - Mined - Добыто - - - watch-only - только наблюдение - - - (n/a) - [не доступно] - - - Transaction status. Hover over this field to show number of confirmations. - Статус транзакции. Подведите курсор к нужному полю для того, чтобы увидеть количество подтверждений. - - - Date and time that the transaction was received. - Дата и время, когда транзакция была получена. - - - Type of transaction. - Тип транзакции. - - - Whether or not a watch-only address is involved in this transaction. - Использовался ли в транзакции адрес для наблюдения. - - - Destination address of transaction. - Адрес назначения транзакции. - - - Amount removed from or added to balance. - Сумма, добавленная, или снятая с баланса. - - - - TransactionView - - All - Все - - - Today - Сегодня - - - This week - На этой неделе - - - This month - В этом месяце - - - Last month - В прошлом месяце - - - This year - В этом году - - - Range... - Промежуток... - - - Received with - Получено на - - - Sent to - Отправлено на - - - To yourself - Отправленные себе - - - Mined - Добытые - - - Other - Другое - - - Enter address or label to search - Введите адрес или метку для поиска - - - Min amount - Мин. сумма - - - Copy address - Копировать адрес - - - Copy label - Копировать метку - - - Copy amount - Скопировать сумму - - - Copy transaction ID - Скопировать ID транзакции - - - Edit label - Изменить метку - - - Show transaction details - Показать подробности транзакции - - - Export Transaction History - Экспортировать историю транзакций - - - Watch-only - Для наблюдения - - - Exporting Failed - Экспорт не удался - - - There was an error trying to save the transaction history to %1. - Произошла ошибка при сохранении истории транзакций в %1. - - - Exporting Successful - Экспорт успешно завершён - - - The transaction history was successfully saved to %1. - История транзакций была успешно сохранена в %1. - - - Comma separated file (*.csv) - Текст, разделённый запятыми (*.csv) - - - Confirmed - Подтверждено - - - Date - Дата - - - Type - Тип - - - Label - Метка - - - Address - Адрес - - - ID - ID - - - Range: - Промежуток от: - - - to - до - - - - UnitDisplayStatusBarControl - - Unit to show amounts in. Click to select another unit. - Единица измерения количества монет. Щёлкните для выбора другой единицы. - - - - WalletFrame - - No wallet has been loaded. - Не был загружен ни один бумажник. - - - - WalletModel - - Send Coins - Отправка - - - - WalletView - - &Export - &Экспорт - - - Export the data in the current tab to a file - Экспортировать данные из вкладки в файл - - - Backup Wallet - Сделать резервную копию бумажника - - - Wallet Data (*.dat) - Данные бумажника (*.dat) - - - Backup Failed - Резервное копирование не удалось - - - There was an error trying to save the wallet data to %1. - Произошла ошибка при сохранении данных бумажника в %1. - - - The wallet data was successfully saved to %1. - Данные бумажника были успешно сохранены в %1. - - - Backup Successful - Резервное копирование успешно завершено - - - - bitcoin-core - - Options: - Параметры: - - - Specify data directory - Задать каталог данных - - - Connect to a node to retrieve peer addresses, and disconnect - Подключиться к участнику, чтобы получить список адресов других участников и отключиться - - - Specify your own public address - Укажите ваш собственный публичный адрес - - - Accept command line and JSON-RPC commands - Принимать командную строку и команды JSON-RPC - - - Run in the background as a daemon and accept commands - Запускаться в фоне как демон и принимать команды - - - Use the test network - Использовать тестовую сеть - - - Accept connections from outside (default: 1 if no -proxy or -connect) - Принимать подключения извне (по умолчанию: 1, если не используется -proxy или -connect) - - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 - Привязаться к указанному адресу и всегда прослушивать только его. Используйте [хост]:порт для IPv6 - - - Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup - Удалить все транзакции бумажника с возможностью восстановить эти части цепи блоков с помощью -rescan при запуске - - - Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. - Распространяется под лицензией MIT, см. приложенный файл COPYING или <http://www.opensource.org/licenses/mit-license.php>. - - - Enter regression test mode, which uses a special chain in which blocks can be solved instantly. - Войти в режим тестирования на регрессии, в котором используется специальная цепь, где блоки находятся мгновенно. - - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) - Выполнить команду, когда меняется транзакция в бумажнике (%s в команде заменяется на TxID) - - - In this mode -genproclimit controls how many blocks are generated immediately. - В этом режиме -genproclimit определяет, сколько блоков генерируется немедленно. - - - Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) - Задать число потоков проверки скрипта (от %u до %d, 0=авто, <0 = оставить столько ядер свободными, по умолчанию: %d) - - - This is a pre-release test build - use at your own risk - do not use for mining or merchant applications - Это пре-релизная тестовая сборка - используйте на свой страх и риск - не используйте для добычи или торговых приложений - - - Unable to bind to %s on this computer. Bitcoin Core is probably already running. - Не удалось забиндиться на %s на этом компьютере. Возможно, Bitcoin Core уже запущен. - - - Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. - Внимание: установлено очень большое значение -paytxfee. Это комиссия, которую вы заплатите при проведении транзакции. - - - Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. - Внимание: похоже, в сети нет полного согласия! Некоторый майнеры, возможно, испытывают проблемы. - - - Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. - Внимание: мы не полностью согласны с подключенными участниками! Вам или другим участникам, возможно, следует обновиться. - - - Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. - Внимание: ошибка чтения wallet.dat! Все ключи прочитаны верно, но данные транзакций или записи адресной книги могут отсутствовать или быть неправильными. - - - 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. - Внимание: wallet.dat повреждён, данные спасены! Оригинальный wallet.dat сохранён как wallet.{timestamp}.bak в %s; если ваш баланс или транзакции некорректны, вы должны восстановить файл из резервной копии. - - - Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. - Вносить в белый список участников, подключающихся с указанной маски сети или IP. Можно использовать многократно. - - - (default: 1) - (по умолчанию: 1) - - - <category> can be: - <category> может быть: - - - Attempt to recover private keys from a corrupt wallet.dat - Попытаться восстановить приватные ключи из повреждённого wallet.dat - - - Block creation options: - Параметры создания блоков: - - - Connect only to the specified node(s) - Подключаться только к указанному узлу(ам) - - - Connection options: - Параметры подключения: - - - Corrupted block database detected - БД блоков повреждена - - - Debugging/Testing options: - Параметры отладки/тестирования: - - - Discover own IP address (default: 1 when listening and no -externalip) - Определить свой IP (по умолчанию: 1 при прослушивании и если не используется -externalip) - - - Do not load the wallet and disable wallet RPC calls - Не загружать бумажник и запретить обращения к нему через RPC - - - Do you want to rebuild the block database now? - Пересобрать БД блоков прямо сейчас? - - - Error initializing block database - Ошибка инициализации БД блоков - - - Error initializing wallet database environment %s! - Ошибка инициализации окружения БД бумажника %s! - - - Error loading block database - Ошибка чтения базы данных блоков - - - Error opening block database - Не удалось открыть БД блоков - - - Error: A fatal internal error occured, see debug.log for details - Ошибка: произошла неустранимая ошибка, детали в debug.log - - - Error: Disk space is low! - Ошибка: мало места на диске! - - - Failed to listen on any port. Use -listen=0 if you want this. - Не удалось начать прослушивание на порту. Используйте -listen=0 если вас это устраивает. - - - If <category> is not supplied, output all debugging information. - Если <category> не предоставлена, выводить всю отладочную информацию. - - - Importing... - Импорт ... - - - Incorrect or no genesis block found. Wrong datadir for network? - Неверный или отсутствующий начальный блок. Неправильный каталог данных для сети? - - - Invalid -onion address: '%s' - Неверный -onion адрес: '%s' - - - Not enough file descriptors available. - Недостаточно файловых дескрипторов. - - - Only connect to nodes in network <net> (ipv4, ipv6 or onion) - Соединяться только по сети <net> (ipv4, ipv6 или onion) - - - Rebuild block chain index from current blk000??.dat files - Перестроить индекс цепи блоков из текущих файлов blk000??.dat - - - Set database cache size in megabytes (%d to %d, default: %d) - Установить размер кэша БД в мегабайтах(от %d до %d, по умолчанию: %d) - - - Set maximum block size in bytes (default: %d) - Задать максимальный размер блока в байтах (по умолчанию: %d) - - - Specify wallet file (within data directory) - Укажите файл бумажника (внутри каталога данных) - - - This is intended for regression testing tools and app development. - Это рассчитано на инструменты регрессионного тестирования и разработку приложений. - - - Use UPnP to map the listening port (default: %u) - Использовать UPnP для проброса порта (по умолчанию: %u) - - - Verifying blocks... - Проверка блоков... - - - Verifying wallet... - Проверка бумажника... - - - Wallet %s resides outside data directory %s - Бумажник %s располагается вне каталога данных %s - - - Wallet options: - Настройки бумажника: - - - You need to rebuild the database using -reindex to change -txindex - Вам необходимо пересобрать базы данных с помощью -reindex, чтобы изменить -txindex - - - Imports blocks from external blk000??.dat file - Импортировать блоки из внешнего файла blk000??.dat - - - Allow JSON-RPC connections from specified source. Valid for <ip> 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). This option can be specified multiple times - Разрешить подключения JSON-RPC с указанного источника. Разрешённые значения для <ip> — отдельный IP (например, 1.2.3.4), сеть/маска сети (например, 1.2.3.4/255.255.255.0) или сеть/CIDR (например, 1.2.3.4/24). Эту опцию можно использовать многократно - - - An error occurred while setting up the RPC address %s port %u for listening: %s - Произошла ошибка в процессе открытия RPC адреса %s порта %u для прослушивания: %s - - - Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 - Привязаться к указанному адресу и внести в белый список подключающихся к нему участников. Используйте [хост]:порт для IPv6 - - - Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) - Привязаться к указанному адресу для прослушивания JSON-RPC подключений. Используйте запись [хост]:порт для IPv6. Эту опцию можно использовать многократно (по умолчанию: привязываться ко всем интерфейсам) - - - Cannot obtain a lock on data directory %s. Bitcoin Core is probably already running. - Не удалось установить блокировку на каталог данных %s. Возможно, Bitcoin Core уже запущен. - - - Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) - Ограничить скорость передачи бесплатных транзакций до <n>*1000 байт в минуту (по умолчанию: %u) - - - Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) - Создавать новые файлы с системными правами по умолчанию вместо umask 077 (эффективно только при отключенном бумажнике) - - - Error: Listening for incoming connections failed (listen returned error %s) - Ошибка: не удалось начать прослушивание входящих подключений (прослушивание вернуло ошибку %s) - - - Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. - Ошибка: обнаружен неподдерживаемый аргумент -socks. Выбор версии SOCKS более невозможен, поддерживаются только прокси SOCKS5. - - - Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) - Выполнить команду, когда приходит соответствующее сообщение о тревоге или наблюдается очень длинное расщепление цепи (%s в команде заменяется на сообщение) - - - Fees (in BTC/Kb) smaller than this are considered zero fee for relaying (default: %s) - Комиссии (в BTC/Кб) меньшие этого значения считаются нулевыми для трансляции (по умолчанию: %s) - - - Fees (in BTC/Kb) smaller than this are considered zero fee for transaction creation (default: %s) - Комиссии (в BTC/Кб) меньшие этого значения считаются нулевыми для создания транзакции (по умолчанию: %s) - - - If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) - Если paytxfee не задан, включить достаточную комиссию для подтверждения транзакции в среднем за n блоков (по умолчанию: %u) - - - Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) - Неверное значение для -maxtxfee=<amount>: '%s' (минимальная комиссия трансляции %s для предотвращения зависания транзакций) - - - Maximum size of data in data carrier transactions we relay and mine (default: %u) - Наибольший размер данных в носителе данных транзакций, которые мы передаем и генерируем (по умолчанию: %u) - - - Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) - Максимальная сумма комиссий для одной транзакции в бумажнике, слишком низкое значение может вызвать прерывание больших транзакций (по умолчанию: %s) - - - Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) - Запрашивать адреса участников с помощью DNS, если адресов мало (по умолчанию: 1, если не указан -connect) - - - Require high priority for relaying free or low-fee transactions (default:%u) - Требовать высокий приоритет для пересылки бесплатных или низкокомиссионных транзакций (по умолчанию: %u) - - - Set maximum size of high-priority/low-fee transactions in bytes (default: %d) - Задать максимальный размер высокоприоритетных/низкокомиссионных транзакций в байтах (по умолчанию: %d) - - - Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) - Задать число потоков генерации монет, если она включена (-1 = все ядра процессора, по умолчанию: %d) - - - 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. - Этот продукт включает ПО, разработанное OpenSSL Project для использования в OpenSSL Toolkit <https://www.openssl.org/> и криптографическое ПО, написанное Eric Young и ПО для работы с UPnP, написанное Thomas Bernard. - - - To use bitcoind, or the -server option to bitcoin-qt, you must set an rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=bitcoinrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - Для использования bitcoind или опции bitcoin-qt -server, вы должны установить опцию rpcpassword в конфигурационном файле: - %s -Рекомендуется использовать следующий случайный пароль: -rpcuser=bitcoinrpc -rpcpassword=%s -(вам не нужно запоминать этот пароль) -Имя и пароль ДОЛЖНЫ различаться. -Если файл не существует, создайте его и установите право доступа только для чтения только для владельца. -Также рекомендуется включить alertnotify для оповещения о проблемах; -Например: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com - - - - Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. - Внимание: установлено очень большое значение -paytxfee. Такие большие комиссии могут быть уплачены в отдельной транзакции. - - - Warning: Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly. - Внимание: убедитесь, что дата и время на Вашем компьютере выставлены верно. Если Ваши часы идут неправильно, Bitcoin Core будет работать некорректно. - - - Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway - Участники из белого списка не могуть быть забанены за DoS, и их транзакции всегда транслируются, даже если они уже содержатся в памяти. Полезно, например, для шлюза. - - - Accept public REST requests (default: %u) - Принимать публичные REST-запросы (по умолчанию: %u) - - - Cannot resolve -whitebind address: '%s' - Не удаётся разрешить адрес в параметре -whitebind: '%s' - - - Connect through SOCKS5 proxy - Подключаться через SOCKS5 прокси - - - Copyright (C) 2009-%i The Bitcoin Core Developers - Все права защищены © 2009-%i Разработчики Bitcoin Core - - - Could not parse -rpcbind value %s as network address - Не удалось разобрать значение %s параметра -rpcbind как сетевой адрес - - - Error loading wallet.dat: Wallet requires newer version of Bitcoin Core - Ошибка загрузки wallet.dat: бумажник требует более новую версию Bitcoin Core - - - Error reading from database, shutting down. - Ошибка чтения базы данных, работа завершается. - - - Error: Unsupported argument -tor found, use -onion. - Ошибка: обнаружен неподдерживаемый параметр -tor, используйте -onion. - - - Fee (in BTC/kB) to add to transactions you send (default: %s) - Комиссия (в BTC/Кб) для добавления к вашим транзакциям (по умолчанию: %s) - - - Information - Информация - - - Initialization sanity check failed. Bitcoin Core is shutting down. - Не удалось проверить чистоту. Bitcoin Core выключается. - - - Invalid amount for -maxtxfee=<amount>: '%s' - Неверное значение -maxtxfee=<amount>: '%s' - - - Invalid amount for -minrelaytxfee=<amount>: '%s' - Неверная сумма в параметре -minrelaytxfee=<кол-во>: '%s' - - - Invalid amount for -mintxfee=<amount>: '%s' - Неверная сумма в параметре -mintxfee=<кол-во>: '%s' - - - Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) - Неверное количество в параметре -paytxfee=<кол-во>: '%s' (должно быть как минимум %s) - - - Invalid netmask specified in -whitelist: '%s' - Указана неверная сетевая маска в -whitelist: '%s' - - - Keep at most <n> unconnectable transactions in memory (default: %u) - Держать в памяти до <n> несвязных транзакций (по умолчанию: %u) - - - Need to specify a port with -whitebind: '%s' - Необходимо указать порт с помощью -whitebind: '%s' - - - Node relay options: - Параметры трансляции узла: - - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) - Параметры RPC SSL: (см. Bitcoin вики для инструкций по настройке SSL) - - - RPC server options: - Параметры сервера RPC: - - - RPC support for HTTP persistent connections (default: %d) - Поддержка RPC постоянных HTTP подключений (по умолчанию: %d) - - - Randomly drop 1 of every <n> network messages - Случайно отбрасывать 1 из каждых <n> сетевых сообщений - - - Randomly fuzz 1 of every <n> network messages - Случайно разбрасывать 1 из каждых <n> сетевых сообщений - - - Send trace/debug info to console instead of debug.log file - Выводить информацию трассировки/отладки на консоль вместо файла debug.log - - - Send transactions as zero-fee transactions if possible (default: %u) - Осуществить транзакцию бесплатно, если возможно (по умолчанию: %u) - - - Show all debugging options (usage: --help -help-debug) - Показать все отладочные параметры (использование: --help -help-debug) - - - Shrink debug.log file on client startup (default: 1 when no -debug) - Сжимать файл debug.log при запуске клиента (по умолчанию: 1, если нет -debug) - - - Signing transaction failed - Не удалось подписать транзакцию - - - This is experimental software. - Это экспериментальное ПО. - - - Transaction amount too small - Сумма транзакции слишком мала - - - Transaction amounts must be positive - Сумма транзакции должна быть положительна - - - Transaction too large for fee policy - Транзакция слишком большая для правил комиссии. - - - Transaction too large - Транзакция слишком большая - - - Unable to bind to %s on this computer (bind returned error %s) - Невозможно привязаться к %s на этом компьютере (bind вернул ошибку %s) - - - Use UPnP to map the listening port (default: 1 when listening) - Использовать UPnP для проброса порта (по умолчанию: 1, если используется прослушивание) - - - Username for JSON-RPC connections - Имя для подключений JSON-RPC - - - Wallet needed to be rewritten: restart Bitcoin Core to complete - Необходимо перезаписать бумажник, перезапустите Bitcoin Core для завершения операции. - - - Warning - Внимание - - - Warning: This version is obsolete, upgrade required! - Внимание: эта версия устарела, требуется обновление! - - - Warning: Unsupported argument -benchmark ignored, use -debug=bench. - Внимание: неподдерживаемый аргумент -benchmark проигнорирован, используйте -debug=bench. - - - Warning: Unsupported argument -debugnet ignored, use -debug=net. - Внимание: неподдерживаемый аргумент -debugnet проигнорирован, используйте -debug=net. - - - Zapping all transactions from wallet... - Стираем все транзакции из кошелька... - - - on startup - при запуске - - - wallet.dat corrupt, salvage failed - wallet.dat повреждён, спасение данных не удалось - - - Password for JSON-RPC connections - Пароль для подключений JSON-RPC - - - Execute command when the best block changes (%s in cmd is replaced by block hash) - Выполнить команду, когда появляется новый блок (%s в команде заменяется на хэш блока) - - - Upgrade wallet to latest format - Обновить бумажник до последнего формата - - - Rescan the block chain for missing wallet transactions - Перепроверить цепь блоков на предмет отсутствующих в бумажнике транзакций - - - Use OpenSSL (https) for JSON-RPC connections - Использовать OpenSSL (https) для подключений JSON-RPC - - - This help message - Эта справка - - - Allow DNS lookups for -addnode, -seednode and -connect - Разрешить поиск в DNS для -addnode, -seednode и -connect - - - Loading addresses... - Загрузка адресов... - - - Error loading wallet.dat: Wallet corrupted - Ошибка загрузки wallet.dat: Бумажник поврежден - - - (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) - (1 = сохранять метаданные транзакции: например, владельца аккаунта и информацию запроса платежа; 2 = отбросить метаданные) - - - Flush database activity from memory pool to disk log every <n> megabytes (default: %u) - Сбрасывать активность базы данных из памяти на диск каждые <n> мегабайт (по умолчанию: %u) - - - How thorough the block verification of -checkblocks is (0-4, default: %u) - Насколько тщательна проверка контрольных блоков -checkblocks (0-4, по умолчанию: %u) - - - Log transaction priority and fee per kB when mining blocks (default: %u) - Записывать в лог приоритет транзакции и комиссию на килобайт во время добычи блоков (по умолчанию: %u) - - - Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) - Держать полный индекс транзакций, используемый RPC-запросом getrawtransaction (по умолчанию: %u) - - - Number of seconds to keep misbehaving peers from reconnecting (default: %u) - Число секунд блокирования неправильно ведущих себя узлов (по умолчанию: %u) - - - Output debugging information (default: %u, supplying <category> is optional) - Выводить отладочную информацию (по умолчанию: %u, указание <category> необязательно) - - - Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) - Использовать отдельный прокси SOCKS5 для соединения с участниками через скрытые сервисы Tor (по умолчанию: %s) - - - (default: %s) - (по умолчанию: %s) - - - Acceptable ciphers (default: %s) - Допустимые шифры (по умолчанию: %s) - - - Always query for peer addresses via DNS lookup (default: %u) - Всегда запрашивать адреса участников с помощью DNS (по умолчанию: %u) - - - Disable safemode, override a real safe mode event (default: %u) - Отключить безопасный режим, перекрыть реальное событие безопасного режима (по умолчанию: %u) - - - Error loading wallet.dat - Ошибка при загрузке wallet.dat - - - Force safe mode (default: %u) - Принудительный безопасный режим (по умолчанию: %u) - - - Generate coins (default: %u) - Включить добычу монет (по умолчанию: %u) - - - How many blocks to check at startup (default: %u, 0 = all) - Сколько блоков проверять при запуске (по умолчанию: %u, 0 = все) - - - Include IP addresses in debug output (default: %u) - Включить IP-адреса в отладочный вывод (по умолчанию: %u) - - - Invalid -proxy address: '%s' - Неверный адрес -proxy: '%s' - - - Limit size of signature cache to <n> entries (default: %u) - Ограничить размер кэша подписей <n> записями (по умолчанию: %u) - - - Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) - Прослушивать подключения JSON-RPC на <порту> (по умолчанию: %u или %u в тестовой сети) - - - Listen for connections on <port> (default: %u or testnet: %u) - Принимать входящие подключения на <port> (по умолчанию: %u или %u в тестовой сети) - - - Maintain at most <n> connections to peers (default: %u) - Поддерживать не более <n> подключений к узлам (по умолчанию: %u) - - - Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) - Максимальный размер буфера приёма на соединение, <n>*1000 байт (по умолчанию: %u) - - - Maximum per-connection send buffer, <n>*1000 bytes (default: %u) - Максимальный размер буфера отправки на соединение, <n>*1000 байт (по умолчанию: %u) - - - Only accept block chain matching built-in checkpoints (default: %u) - Принимать цепь блоков, лишь если она соответствует встроенным контрольным точкам (по умолчанию: %u) - - - Prepend debug output with timestamp (default: %u) - Дописывать отметки времени к отладочному выводу (по умолчанию: %u) - - - Relay and mine data carrier transactions (default: %u) - Транслировать и генерировать транзакции носителей данных (по умолчанию: %u) - - - Relay non-P2SH multisig (default: %u) - Транслировать не-P2SH мультиподпись (по умолчанию: %u) - - - Run a thread to flush wallet periodically (default: %u) - Запустить поток для периодического сохранения бумажника (по умолчанию: %u) - - - Server certificate file (default: %s) - Файл сертификата сервера (по умолчанию: %s) - - - Server private key (default: %s) - Закрытый ключ сервера (по умолчанию: %s) - - - Set key pool size to <n> (default: %u) - Установить размер пула ключей в <n> (по умолчанию: %u) - - - Set the number of threads to service RPC calls (default: %d) - Задать число потоков выполнения запросов RPC (по умолчанию: %d) - - - Sets the DB_PRIVATE flag in the wallet db environment (default: %u) - Установить флаг DB_PRIVATE в окружении базы данных бумажника (по умолчанию: %u) - - - Specify configuration file (default: %s) - Указать конфигурационный файл (по умолчанию: %s) - - - Specify connection timeout in milliseconds (minimum: 1, default: %d) - Указать тайм-аут соединения в миллисекундах (минимум: 1, по умолчанию: %d) - - - Specify pid file (default: %s) - Указать pid-файл (по умолчанию: %s) - - - Spend unconfirmed change when sending transactions (default: %u) - Тратить неподтвержденную сдачу при отправке транзакций (по умолчанию: %u) - - - Stop running after importing blocks from disk (default: %u) - Остановиться после импорта блоков с диска (по умолчанию: %u) - - - Threshold for disconnecting misbehaving peers (default: %u) - Порог для отключения неправильно ведущих себя узлов (по умолчанию: %u) - - - Unknown network specified in -onlynet: '%s' - В параметре -onlynet указана неизвестная сеть: '%s' - - - Cannot resolve -bind address: '%s' - Не удаётся разрешить адрес в параметре -bind: '%s' - - - Cannot resolve -externalip address: '%s' - Не удаётся разрешить адрес в параметре -externalip: '%s' - - - Invalid amount for -paytxfee=<amount>: '%s' - Неверная сумма в параметре -paytxfee=<кол-во>: '%s' - - - Insufficient funds - Недостаточно монет - - - Loading block index... - Загрузка индекса блоков... - - - Add a node to connect to and attempt to keep the connection open - Добавить узел для подключения и пытаться поддерживать соединение открытым - - - Loading wallet... - Загрузка бумажника... - - - Cannot downgrade wallet - Не удаётся понизить версию бумажника - - - Cannot write default address - Не удаётся записать адрес по умолчанию - - - Rescanning... - Сканирование... - - - Done loading - Загрузка завершена - - - Error - Ошибка - - + bitcoin-core + \ No newline at end of file diff --git a/src/qt/locale/bitcoin_sk.ts b/src/qt/locale/bitcoin_sk.ts index a017c489b65..4c084001684 100644 --- a/src/qt/locale/bitcoin_sk.ts +++ b/src/qt/locale/bitcoin_sk.ts @@ -908,6 +908,10 @@ Adresa: %4 Jadro Bitcoin + Error: Specified data directory "%1" cannot be created. + Chyba: Zadaný priečinok pre dáta "%1" nemôže byť vytvorený. + + Error Chyba @@ -1153,6 +1157,10 @@ Adresa: %4 Zobrazené informácie môžu byť neaktuálne. Vaša peňaženka sa automaticky synchronizuje so sieťou Bitcoin po nadviazaní spojenia, ale tento proces ešte nie je ukončený. + Watch-only: + Iba sledované: + + Available: Disponibilné: @@ -1189,10 +1197,30 @@ Adresa: %4 Váš súčasný celkový zostatok + Your current balance in watch-only addresses + Váš celkový zostatok pre adresy ktoré sa iba sledujú + + + Spendable: + Použiteľné: + + Recent transactions Nedávne transakcie + Unconfirmed transactions to watch-only addresses + Nepotvrdené transakcie pre adresy ktoré sa iba sledujú + + + Mined balance in watch-only addresses that has not yet matured + Vyťažená suma pre adresy ktoré sa iba sledujú ale ešte nie je dozretá + + + Current total balance in watch-only addresses + Aktuálny celkový zostatok pre adries ktoré sa iba sledujú + + out of sync nesynchronizované @@ -1208,6 +1236,18 @@ Adresa: %4 Neplatná adresa platby %1 + Payment request rejected + Požiadavka na platbu zamietnutá + + + Payment request network doesn't match client network. + Sieť požiadavky na platbu nie je zhodná so sieťou klienta. + + + Payment request is not initialized. + Požiadavka na platbu nie je inicializovaná + + Requested payment amount of %1 is too small (considered dust). Požadovaná platba sumy %1 je príliš malá (považovaná za prach). @@ -1224,10 +1264,18 @@ Adresa: %4 URL pre stiahnutie výzvy na zaplatenie je neplatné: %1 + URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. + URI sa nedá analyzovať! To môže byť spôsobené neplatnou Bitcoin adresou alebo zle upravenými vlastnosťami URI. + + Payment request file handling Obsluha súboru s požiadavkou na platbu + Payment request file cannot be read! This can be caused by an invalid payment request file. + Súbor s výzvou na zaplatenie sa nedá čítať alebo spracovať! To môže byť spôsobené aj neplatným súborom s výzvou. + + Unverified payment requests to custom payment scripts are unsupported. Program nepodporuje neoverené platobné výzvy na vlastná skripty. @@ -1236,10 +1284,22 @@ Adresa: %4 Vrátenie z %1 + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + Požiadavka na platbu %1 je príliš veľká (%2 bajtov, povolené je %3 bajtov). + + + Payment request DoS protection + Ochrana pred zahltením požiadavkami na platbu + + Error communicating with %1: %2 Chyba komunikácie s %1: %2 + Payment request cannot be parsed! + Požiadavka na platbu nemôže byť analyzovaná! + + Bad response from server %1 Zlá odpoveď zo servera %1 @@ -1278,6 +1338,10 @@ Adresa: %4 Zadajte bitcoin adresu (napr. %1) + %1 d + %1 d + + %1 h %1 h @@ -1286,6 +1350,14 @@ Adresa: %4 %1 m + %1 s + %1 s + + + None + Žiadne + + N/A nie je k dispozícii @@ -1380,6 +1452,10 @@ Adresa: %4 Odoslané + &Peers + &Partneri + + Select a peer to view detailed information. Vyberte počítač pre zobrazenie podrobností. @@ -1404,10 +1480,26 @@ Adresa: %4 Počiatočná výška + Sync Height + Synchronizovaná výška + + + Ban Score + Skóre zákazu + + Connection Time Dĺžka spojenia + Last Send + Posledné odoslanie + + + Last Receive + Posledné prijatie + + Bytes Sent Odoslaných bajtov @@ -1496,6 +1588,14 @@ Adresa: %4 %1 GB + via %1 + cez %1 + + + never + nikdy + + Inbound Prichádzajúce @@ -1504,6 +1604,10 @@ Adresa: %4 Odchádzajúce + Unknown + neznámy + + Fetching... Získava sa... @@ -1740,6 +1844,10 @@ Adresa: %4 Poplatok za transakciu: + Choose... + Zvoliť... + + collapse fee-settings zbaliť nastavenia poplatkov @@ -1967,6 +2075,10 @@ Adresa: %4 Toto je normálna platba. + The Bitcoin address to send the payment to + Zvoľte adresu kam poslať platbu + + Alt+A Alt+A @@ -2089,6 +2201,10 @@ Adresa: %4 Vložte podpisovaciu adresu, správu (uistite sa, že kopírujete ukončenia riadkov, medzery, odrážky, atď. presne) a podpis pod to na overenie adresy. Buďte opatrní a nečítajte ako podpísané viac než je v samotnej podpísanej správe a môžete sa tak vyhnúť podvodu mitm útokom. + The Bitcoin address the message was signed with + Adresa Bitcoin, ktorou bola podpísaná správa + + Verify the message to ensure it was signed with the specified Bitcoin address Overím správy sa uistiť že bola podpísaná označenou Bitcoin adresou @@ -2226,6 +2342,10 @@ Adresa: %4 vlastná adresa + watch-only + Iba sledovanie + + label popis @@ -2242,6 +2362,14 @@ Adresa: %4 Debet + Total debit + Debit spolu + + + Total credit + Kredit spolu + + Transaction fee Transakčný poplatok @@ -2384,6 +2512,10 @@ Adresa: %4 Vyfárané + watch-only + Iba sledovanie + + (n/a) (n/a) @@ -2400,6 +2532,10 @@ Adresa: %4 Typ transakcie. + Whether or not a watch-only address is involved in this transaction. + Či sú ale nie sú, adresy iba na sledovanie zahrnuté v tejto transakcii. + + Destination address of transaction. Cieľová adresa transakcie. @@ -2495,6 +2631,10 @@ Adresa: %4 Exportovať históriu transakcií + Watch-only + Iba sledovanie + + Exporting Failed Export zlyhal @@ -2549,7 +2689,11 @@ Adresa: %4 UnitDisplayStatusBarControl - + + Unit to show amounts in. Click to select another unit. + Jednotka pre zobrazovanie súm. Kliknite pre zvolenie inej jednotky. + + WalletFrame @@ -2638,6 +2782,14 @@ Adresa: %4 Spojiť s danou adresou a vždy na nej počúvať. Použite zápis [host]:port pre IPv6 + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + Vymazať všetky transakcie z peňaženky a pri spustení znova získať z reťazca blokov iba tie získané pomocou -rescan + + + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + Distribuované pod softvérovou licenciou MIT, viď sprievodný súbor COPYING alebo <http://www.opensource.org/licenses/mit-license.php>. + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. Vojsť do režimu regresného testovania, ktorý používa špeciálnu reťaz v ktorej môžu byť bloky v okamihu vyriešené. @@ -2684,6 +2836,10 @@ The network does not appear to fully agree! Some miners appear to be experiencin Varovanie: wallet.dat je poškodený, údaje úspešne získané! Pôvodný wallet.dat uložený ako wallet.{timestamp}.bak v %s; ak váš zostatok alebo transakcie niesu správne, mali by ste súbor obnoviť zo zálohy. + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + Uzle na zoznam povolených, ktoré sa pripájajú z danej netmask alebo IP adresy. Môže byť zadané viac krát. + + (default: 1) (predvolené: 1) @@ -2744,6 +2900,10 @@ The network does not appear to fully agree! Some miners appear to be experiencin Chyba otvárania databázy blokov + Error: A fatal internal error occured, see debug.log for details + Chyba: Nastala fatálna interná chyba. Pre podrobnosti pozrite debug.log + + Error: Disk space is low! Chyba: Málo miesta na disku! @@ -2772,6 +2932,10 @@ The network does not appear to fully agree! Some miners appear to be experiencin Nedostatok kľúčových slov súboru. + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + Pripojiť iba k uzlom v sieti <net> (ipv4, ipv6, alebo onion) + + Rebuild block chain index from current blk000??.dat files Znovu vytvoriť zoznam blokov zo súčasných blk000??.dat súborov @@ -2792,6 +2956,10 @@ The network does not appear to fully agree! Some miners appear to be experiencin Toto je mienené nástrojom pre regresné testovania a vývoj programu. + Use UPnP to map the listening port (default: %u) + Použiť UPnP pre mapovanie počúvajúceho portu (predvolené: %u) + + Verifying blocks... Overujem bloky... @@ -2816,14 +2984,38 @@ The network does not appear to fully agree! Some miners appear to be experiencin Importuje bloky z externého súboru blk000??.dat + Allow JSON-RPC connections from specified source. Valid for <ip> 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). This option can be specified multiple times + Povoliť JSON-RPC pripojenia zo zadaného zdroja. Pre <ip> sú platné jednoduché IP (napr. 1.2.3.4), sieť/netmask (napr. 1.2.3.4/255.255.255.0) alebo sieť/CIDR (napr. 1.2.3.4/24). Táto možnosť môže byť zadaná niekoľko krát + + + An error occurred while setting up the RPC address %s port %u for listening: %s + Pri nastavovaní RPC adresy %s na porte %u pre počúvanie došlo k chybe: %s + + + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + Spojiť s danou adresou a povolenými partnerskými zariadeniami ktoré sa tam pripájajú. Použite zápis [host]:port pre IPv6 + + + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + Spojiť s danou adresou pre počúvanie JSON-RPC spojení. Použite zápis [host]:port pre IPv6. Táto možnosť môže byt zadaná niekoľko krát (predvolené: spojiť so všetkými rozhraniami) + + Cannot obtain a lock on data directory %s. Bitcoin Core is probably already running. Neviem uzamknúť data adresár %s. Jadro Bitcoin je pravdepodobne už spustené. + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + Vytvoriť nové súbory z predvolenými systémovými právami, namiesto umask 077 (funguje iba z vypnutou funkcionalitou peňaženky) + + Error: Listening for incoming connections failed (listen returned error %s) Chyba: Počúvanie prichádzajúcich spojení zlyhalo (vrátená chyba je %s) + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + Chyba: Nájdený nepodporovaný argument -socks. Nastavenie SOCKS verzie nie je už možné, podporované sú už iba proxy SOCKS5. + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) Vykonať príkaz po prijatí patričného varovania alebo uvidíme veľmi dlhé rozdvojenie siete (%s v cmd je nahradené správou) @@ -2836,10 +3028,26 @@ The network does not appear to fully agree! Some miners appear to be experiencin Poplatky (v BTC/Kb) nižšie ako toľkoto sa považujú za nulové pri vytváraní transakcií (predvolené: %s) + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Ak nie je nastavené paytxfee, pridať dostatočný poplatok aby sa transakcia začala potvrdzovať priemerne v rámci bloku (predvolené: %u) + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Neplatná suma pre -maxtxfee=<amount>: '%s' (aby sa transakcia nezasekla, minimálny prenosový poplatok musí byť aspoň %s) + + + Maximum size of data in data carrier transactions we relay and mine (default: %u) + Maximálna veľkosť dát v transakciách nosných dát, ktoré prenášame a ťažíme (predvolené: %u) + + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) + Dotaz na partnerské adresy pomocou vyhľadávania DNS v prípade nedostatku adries (predvolené: 1, pokiaľ -connect) + + Require high priority for relaying free or low-fee transactions (default:%u) Vyžadovať vysokú prioritu pre postúpenie transakcií s nízkymi poplatkami (predvolené:%u) @@ -2848,14 +3056,54 @@ The network does not appear to fully agree! Some miners appear to be experiencin Nastaviť najväčšiu veľkosť vysoká-dôležitosť/nízke-poplatky transakcií v bajtoch (prednastavené: %d) + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + Nastaviť počet vlákien pre generáciu mincí (-1 = všetky jadrá, predvolené: %d) + + + 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. + Tento produkt obsahuje softvér vyvinutý projektom OpenSSL pre použitie sady nástrojov OpenSSL <https://www.openssl.org/> a kryptografického softvéru napísaného Eric Young a UPnP softvér napísaný Thomas Bernard. + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Upozornenie: -maxtxfee je nastavené príliš vysoko! Takto vysoké poplatky by mali byť zaplatené za jednu transakciu. + + + Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway + Uzle na zoznam povolených nemôžu byť DoS zakázané a ich transakcie vždy postúpené ďalej, aj v prípade, ak sú už pamäťovej fronte. Užitočné napr. pre brány + + + Accept public REST requests (default: %u) + Akceptovať verejné REST žiadosti (predvolené: %u) + + + Cannot resolve -whitebind address: '%s' + Nedá sa vyriešiť -whitebind adresa: '%s' + + Connect through SOCKS5 proxy Pripojiť cez proxy server SOCKS5 + Copyright (C) 2009-%i The Bitcoin Core Developers + Copyright (C) 2009-%i Vývojári jadra Bitcoin + + + Could not parse -rpcbind value %s as network address + Nedá sa analyzovať -rpcbind hodnota %s ako sieťová adresa + + Error loading wallet.dat: Wallet requires newer version of Bitcoin Core Chyba pri čítaní wallet.dat: Peňaženka vyžaduje vyššiu verziu Jadra Bitcoin + Error reading from database, shutting down. + Chyba pri načítaní z databázy, ukončuje sa. + + + Error: Unsupported argument -tor found, use -onion. + Chyba: nájdený nepodporovaný argument -tor, použite -onion. + + Fee (in BTC/kB) to add to transactions you send (default: %s) Poplatok (v BTC/kB), ktorý sa pridá k transakciám, ktoré odosielate (predvolený: %s) @@ -2864,6 +3112,10 @@ The network does not appear to fully agree! Some miners appear to be experiencin Informácia + Invalid amount for -maxtxfee=<amount>: '%s' + Neplatná suma pre -maxtxfee=<amount>: '%s' + + Invalid amount for -minrelaytxfee=<amount>: '%s' Neplatná suma pre -minrelaytxfee=<amount>: '%s' @@ -2872,6 +3124,26 @@ The network does not appear to fully agree! Some miners appear to be experiencin Neplatná suma pre -mintxfee=<amount>: '%s' + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + Neplatná suma pre -paytxfee=<amount>: '%s' (musí byť aspoň %s) + + + Invalid netmask specified in -whitelist: '%s' + Nadaná neplatná netmask vo -whitelist: '%s' + + + Keep at most <n> unconnectable transactions in memory (default: %u) + V pamäti udržiavať najviac <n> nepotvrdených transakcií (predvolené: %u) + + + Need to specify a port with -whitebind: '%s' + Je potrebné zadať port s -whitebind: '%s' + + + Node relay options: + Prenosové možnosti uzla: + + RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) Možnosti RPC SSL: (Pozri v Bitcoin Wiki pokyny pre SSL nastavenie) @@ -2880,6 +3152,10 @@ The network does not appear to fully agree! Some miners appear to be experiencin Možnosti servra RPC: + RPC support for HTTP persistent connections (default: %d) + Podpora RPC pre trvalé HTTP spojenia (predvolené: %d) + + Randomly drop 1 of every <n> network messages Náhodne zahadzuj 1 z každých <n> sieťových správ @@ -2928,6 +3204,10 @@ The network does not appear to fully agree! Some miners appear to be experiencin Transakcia príliš veľká + Unable to bind to %s on this computer (bind returned error %s) + Na tomto počítači sa nedá vytvoriť väzba %s (vytvorenie väzby vrátilo chybu %s) + + Use UPnP to map the listening port (default: 1 when listening) Skúsiť použiť UPnP pre mapovanie počúvajúceho portu (default: 1 when listening) @@ -2944,6 +3224,14 @@ The network does not appear to fully agree! Some miners appear to be experiencin Upozornenie: Táto verzia je zastaraná, vyžaduje sa aktualizácia! + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + Upozornenie: Nepodporovaný argument -benchmark bol ignorovaný, použite -debug=bench. + + + Warning: Unsupported argument -debugnet ignored, use -debug=net. + Upozornenie: Nepodporovaný argument -debugnet bol ignorovaný, použite -debug=net. + + Zapping all transactions from wallet... Zmazať všetky transakcie z peňaženky... @@ -2992,26 +3280,134 @@ The network does not appear to fully agree! Some miners appear to be experiencin Chyba načítania wallet.dat: Peňaženka je poškodená + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = zachovať metaúdaje tx napr. vlastníka účtu a informácie o platobných príkazoch, 2 = zahodiť metaúdaje tx) + + + How thorough the block verification of -checkblocks is (0-4, default: %u) + Ako dôkladné je -checkblocks overenie blokov (0-4, predvolené: %u) + + Log transaction priority and fee per kB when mining blocks (default: %u) Zaznamenať prioritu transakcie a poplatok za kB pri ťažení blokov (predvolené: %u) + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + Udržiavať kompletný transakčný index, využíva getrawtransaction rpc volanie (predvolené: %u) + + + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + Počet sekúnd, počas ktorých nepripájať zle správajúce sa uzle (predvolené: %u) + + + Output debugging information (default: %u, supplying <category> is optional) + Výstupné ladiace informácie (predvolené: %u, dodanie <category> je voliteľné) + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) Použiť samostatný SOCKS5 proxy server na dosiahnutie počítačov cez skryté služby Tor (predvolené: %s) + (default: %s) + (predvolené: %s) + + + Acceptable ciphers (default: %s) + Prijateľné šifry (predvolené: %s) + + + Always query for peer addresses via DNS lookup (default: %u) + Vždy sa dotazovať adresy partnerských uzlov cez vyhľadávanie DNS (predvolené: %u) + + Error loading wallet.dat Chyba načítania wallet.dat + How many blocks to check at startup (default: %u, 0 = all) + Koľko blokov overiť pri spustení (predvolené: %u, 0 = všetky) + + + Include IP addresses in debug output (default: %u) + Zahrnúť IP adresy v ladiacom výstupe (predvolené: %u) + + Invalid -proxy address: '%s' Neplatná adresa proxy: '%s' + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + Počúvať JSON-RPC pripojenia na <port> (predvolené: %u alebo testovacia sieť: %u) + + + Listen for connections on <port> (default: %u or testnet: %u) + Počúvať pripojenia na <port> (predvolené: %u alebo testovacia sieť: %u) + + Maintain at most <n> connections to peers (default: %u) Udržiavať najviac <n> spojení s inými počítačmi (predvolené: %u) + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + Maximálna prijímajúca medzipamäť pre pripojenie, <n>*1000 bajtov (predvolené: %u) + + + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + Maximálna odosielajúca medzipamäť pre pripojenie, <n>*1000 bajtov (predvolené: %u) + + + Prepend debug output with timestamp (default: %u) + Na začiatok pripojiť časovú známku k ladiacemu výstupu (predvolené: %u) + + + Relay and mine data carrier transactions (default: %u) + Prenášať a ťažiť transakcie nosných dát (predvolené: %u) + + + Relay non-P2SH multisig (default: %u) + Prenášať non-P2SH multi-podpis (predvolené: %u) + + + Server certificate file (default: %s) + Certifikačný súbor servera (predvolené: %s) + + + Server private key (default: %s) + Privátny kľúč servera (predvolené: %s) + + + Set key pool size to <n> (default: %u) + Nastaviť veľkosť kľúča fronty na <n> (predvolené: %u) + + + Set minimum block size in bytes (default: %u) + Nastaviť minimálnu veľkosť bloku v bajtoch (predvolené: %u) + + + Set the number of threads to service RPC calls (default: %d) + Nastaviť počet vlákien na obsluhu RPC volaní (predvolené: %d) + + + Specify configuration file (default: %s) + Zadať konfiguračný súbor (predvolené: %s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + Zadajte časový limit pripojenia v milisekundách (minimum: 1, predvolené: %d) + + + Specify pid file (default: %s) + Zadať pid súbor (predvolené: %s) + + + Spend unconfirmed change when sending transactions (default: %u) + Minúť nepotvrdené zmenu pri posielaní transakcií (predvolené: %u) + + + Threshold for disconnecting misbehaving peers (default: %u) + Hranica pre odpájanie zle sa správajúcim partnerským uzlom (predvolené: %u) + + Unknown network specified in -onlynet: '%s' Neznáma sieť upresnená v -onlynet: '%s' diff --git a/src/qt/locale/bitcoin_sl_SI.ts b/src/qt/locale/bitcoin_sl_SI.ts index 3a65c106042..a2774c7adde 100644 --- a/src/qt/locale/bitcoin_sl_SI.ts +++ b/src/qt/locale/bitcoin_sl_SI.ts @@ -2,6 +2,10 @@ AddressBookPage + Right-click to edit address or label + Desni klik za urejanje naslovov ali oznak + + Create a new address Ustvari nov naslov @@ -19,7 +23,7 @@ C&lose - &Zapri (close) + &Zapri &Copy Address @@ -31,7 +35,7 @@ Export the data in the current tab to a file - Izvozi podatke v trenutni zavih v datoteko + Izvozi podatke v trenutnem zavihku v datoteko &Export @@ -43,11 +47,11 @@ Choose the address to send coins to - Izberi naslov prejemnika kovancev + Izberite naslov, na katerega pošiljate plačilo Choose the address to receive coins with - Izberi naslov pošiljatelja kovancev + Izberite naslov za prejem plačila C&hoose @@ -55,19 +59,19 @@ Sending addresses - Naslovi za pošiljanje + Seznam naslovov pošiljanja ... Receiving addresses - Naslovi za prejemanje + Seznam naslovov prejemanja ... These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - To so tvoji Bitcoin naslovi za pošiljanje plačil. Vedno preveri znesek in prejemnikov naslov pred pošiljanjem kovancev. + Seznam naslovov za pošiljanje plačil. Vedno preverite znesek in prejemnikov naslov pred pošiljanjem. These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - To so tvoji Bitcoin naslovi za prejemanje plačil. Priporočljivo je uporabljati nov prejemni naslov za vsako izmed transakcij. + Seznam vaših bitcoin naslovov za prejemanje plačil. Priporočljivo je uporabiti nov naslov za vsako novo plačilo. Copy &Label @@ -109,7 +113,7 @@ AskPassphraseDialog Passphrase Dialog - Poziv gesla + Vnos gesla Enter passphrase @@ -153,43 +157,51 @@ Confirm wallet encryption - Potrdi šifriranje denarnice + Potrditev šifriranja denarnice Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - Opozorilo: V primeru izgube gesla kriptirane denarnice, boš <b>IZGUBIL VSE SVOJE BITCOINE</b>! + Opozorilo: V primeru izgube gesla šifrirane denarnice, boste <b>IZGUBILI VSE SVOJE BITCOINE</b>! Are you sure you wish to encrypt your wallet? Ali ste prepričani, da želite šifrirati vašo denarnico? + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + POMEMBNO: Vse starejše varnostne kopije denarnice je potrebno zamenjati z novoizdelano, šifrirano, varnostno kopijo. Zaradi varnosti bodo stare varnostne kopije postale neuporabne takoj, ko začnete uporabljati novo, šifrirano denarnico. + + Warning: The Caps Lock key is on! - Opozorilo: imate prižgan Cap Lock + Opozorilo: imate vklopljene velike črke (Caps Lock)! Wallet encrypted - Denarnica šifrirana + Denarnica je šifrirana + + + 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>. + Vnesite novo geslo. Prosimo, da uporabite geslo sestavljeno iz <b>deset ali več</b> naključnih znakov, ali <b>osem ali več</b> besed. 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. - Bitcoin se bo zaprl, da bi dokončal proces šifriranja. Zapomnite si, da šifriranje vaše denarnice ne more popolnoma zaščititi pred krajami zlonamernih programov, ki bi lahko bili nameščeni na vašem računalniku. + Program se bo zaprl, da dokonča proces šifriranja. Zapomnite si, da šifriranje ne more popolnoma zaščititi vašo denarnico pred krajami in zlonamernimi programi, ki bi lahko bili nameščeni na vašem računalniku. Wallet encryption failed - Šifriranje denarnice spodletelo + Šifriranje denarnice je spodletelo Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Šifriranje denarnice spodletelo zaradi notranje napake. Vaša denarnica ni šifrirana. + Šifriranje denarnice je spodletelo zaradi notranje napake. Vaša denarnica ni bila šifrirana. The supplied passphrases do not match. - Vnešeno geslo se ne ujema + Vnešeno geslo se ne ujema. Wallet unlock failed - Odklep denarnice spodletel + Odklepanje denarnice je spodletelo The passphrase entered for the wallet decryption was incorrect. @@ -197,9 +209,13 @@ Wallet decryption failed - Dešifriranje denarnice spodletelo + Dešifriranje denarnice je spodletelo - + + Wallet passphrase was successfully changed. + Geslo za dostop do denarnice je bilo uspešno zamenjano. + + BitcoinGUI @@ -224,11 +240,11 @@ &Transactions - &Transakcije + &Plačila Browse transaction history - Brskaj po zgodovini transakcij + Brskaj po zgodovini plačil E&xit @@ -236,7 +252,7 @@ Quit application - Izhod iz aplikacije + Izhod iz programa About &Qt @@ -256,7 +272,7 @@ &Backup Wallet... - &Napravi varnostno kopijo denarnice ... + Shrani &varnostno kopijo denarnice ... &Change Passphrase... @@ -264,15 +280,15 @@ &Sending addresses... - &Pošiljanje naslovov... + Naslovi za po&šiljanje ... &Receiving addresses... - &Prejemanje naslovov... + Naslovi za &prejemanje... Open &URI... - Odpri &URI... + Odpri &URI ... Bitcoin Core client @@ -280,11 +296,11 @@ Importing blocks from disk... - Uvažam bloke z diska... + Uvažanje blokov z diska ... Reindexing blocks on disk... - Poustvarjam kazalo blokov na disku... + Poustvarjam kazalo blokov na disku ... Send coins to a Bitcoin address @@ -292,15 +308,15 @@ Modify configuration options for Bitcoin - Spremeni konfiguracijo nastavitev za Bitcoin + Urejanje nastavitev programa Backup wallet to another location - Napravi varnostno kopijo denarnice na drugo lokacijo + Shrani kopijo denarnice na drugo lokacijo Change the passphrase used for wallet encryption - Spremeni šifrirno geslo denarnice + Spremeni geslo za šifriranje denarnice &Debug window @@ -328,7 +344,7 @@ Show information about Bitcoin Core - Pokaži informacije o Bitcoin Core + Pokaži informacije o programu &Show / Hide @@ -340,11 +356,15 @@ Encrypt the private keys that belong to your wallet - Šifiraj zasebne ključe v moji denarnici + Šifiraj zasebne ključe v denarnici Sign messages with your Bitcoin addresses to prove you own them - Za dokaz, da ste lastniki sporočil, se podpišite z Bitcoin naslovom + Podpišite sporočilo za dokaz, da ste lastnik naslova + + + Verify messages to ensure they were signed with specified Bitcoin addresses + Preverite, da je sporočilo bilo podpisano z danim naslovom &File @@ -364,11 +384,15 @@ Bitcoin Core - Jedro Bitcoina + Bitcoin Core + + + Request payments (generates QR codes and bitcoin: URIs) + Ustvarjanje zahtevka za plačilo (izdelava QR kode in bitcoin: URI naslova) &About Bitcoin Core - &O jedru Bitcoina + &O programu Show the list of used sending addresses and labels @@ -382,13 +406,25 @@ Open a bitcoin: URI or payment request Odpri Bitcoin: URI ali zahteva o plačilu + + &Command-line options + Opcije &ukazne vrstice + + + Show the Bitcoin Core help message to get a list with possible Bitcoin command-line options + Prikaže seznam vseh opcij pri zagonu programa in kratek opis + %n active connection(s) to Bitcoin network %n aktivna povezava v bitcoin omrežje%n aktivni povezavi v bitcoin omrežje%n aktivnih povezav v bitcoin omrežje%n aktivnih povezav v bitcoin omrežje + + No block source available... + Ni virov za prenos blokov ... + %n hour(s) - %n ura%n uri%n ure%n ura + %n ura%n uri%n ure%n ur %n day(s) @@ -412,7 +448,7 @@ Transactions after this will not yet be visible. - Transkacija za tem ne bo bila še na voljo. + Transkacije za tem ne bodo še na voljo. Error @@ -432,7 +468,7 @@ Catching up... - Pridobivanje ... + Pridobivanje... Sent transaction @@ -449,7 +485,7 @@ Type: %3 Address: %4 Datum: %1 -Količina: %2 +Znesek: %2 Vrsta: %3 Naslov: %4 @@ -467,22 +503,26 @@ Naslov: %4 ClientModel Network Alert - Omrežno Opozorilo + Omrežno opozorilo CoinControlDialog + Coin Selection + Izbira vhodnih kovancev + + Quantity: Količina: Bytes: - Biti: + Bajtov: Amount: - Količina: + Znesek: Priority: @@ -497,16 +537,20 @@ Naslov: %4 Prah: + After Fee: + Po proviziji: + + Change: - Sprememba: + Vračilo: (un)select all - (ne)izberi vse + izberi vse/nič Tree mode - Drevo + Drevesni prikaz List mode @@ -514,7 +558,15 @@ Naslov: %4 Amount - Količina + Znesek + + + Received with label + Oznaka priliva + + + Received with address + Naslov priliva Date @@ -565,8 +617,12 @@ Naslov: %4 Kopiraj provizijo + Copy after fee + Kopiraj Po proviziji + + Copy bytes - Kopiraj bite + Kopiraj bajte Copy priority @@ -578,7 +634,7 @@ Naslov: %4 Copy change - Kopiraj drobiž + Kopiraj vračilo highest @@ -598,7 +654,7 @@ Naslov: %4 medium - srednje + srednja low-medium @@ -622,7 +678,7 @@ Naslov: %4 none - Nič + nič Can vary +/- %1 satoshi(s) per input. @@ -638,11 +694,11 @@ Naslov: %4 This label turns red, if the transaction size is greater than 1000 bytes. - V primeru, da je velikost transakcije večja od 1000 bitov, se ta oznaka se obarva rdeče. + Oznaka postane rdeča, če je transakcije večja od 1000 bajtov. Can vary +/- 1 byte per input. - Se lahko razlikuje +/- 1 byte na vnos. + Se lahko razlikuje +/-1 bajt na vnos. Transactions with higher priority are more likely to get included into a block. @@ -650,7 +706,11 @@ Naslov: %4 This label turns red, if the priority is smaller than "medium". - Oznaka se obarva rdeče, kadar je prioriteta manjša od "srednje". + Oznaka postane rdeča, če je prioriteta transakcije manjša od "srednje". + + + This label turns red, if any recipient receives an amount smaller than %1. + Oznaka postane rdeča, če je znesek manjši od %1. (no label) @@ -658,11 +718,11 @@ Naslov: %4 change from %1 (%2) - drobiž od %1 (%2) + vračilo od %1 (%2) (change) - (drobiž) + (vračilo) @@ -677,7 +737,7 @@ Naslov: %4 The label associated with this address list entry - Oznaka je povezana s tem vnosom seznama naslovov + Oznaka povezana s tem vnosom seznama naslovov The address associated with this address list entry. This can only be modified for sending addresses. @@ -704,12 +764,16 @@ Naslov: %4 Uredi naslov za odlive + The entered address "%1" is already in the address book. + Vnešeni naslov "%1" je že v imeniku. + + The entered address "%1" is not a valid Bitcoin address. Vnešeni naslov "%1" ni veljaven Bitcoin naslov. Could not unlock wallet. - Ni bilo moč odkleniti denarnice. + Denarnice ni bilo mogoče odkleniti. New key generation failed. @@ -728,7 +792,7 @@ Naslov: %4 Directory already exists. Add %1 if you intend to create a new directory here. - Mapa že obstaja. Dodaj %1, če tu želiš ustvariti novo mapo. + Mapa že obstaja. Dodajte %1, če tu želite ustvariti novo mapo. Path already exists, and is not a directory. @@ -736,14 +800,14 @@ Naslov: %4 Cannot create data directory here. - Na tem mestu ne moreš ustvariti nove mape. + Na tem mestu ni mogoče ustvariti nove mape. HelpMessageDialog Bitcoin Core - Jedro Bitcoina + Bitcoin Core version @@ -755,7 +819,7 @@ Naslov: %4 About Bitcoin Core - O jedru Bitcoina + O programu Bitcoin Core Command-line options @@ -775,7 +839,7 @@ Naslov: %4 Set language, for example "de_DE" (default: system locale) - Nastavi jezik, npr. "sl_SI" (privzeto: jezikovna oznaka sistema) + Nastavi jezik, npr. "sl_SI" (privzeto: sistemsko nastavljeno) Start minimized @@ -802,15 +866,15 @@ Naslov: %4 Welcome to Bitcoin Core. - Dobrodošli v jedru Bitcoina + Dobrodošli v Bitcoin Core. As this is the first time the program is launched, you can choose where Bitcoin Core will store its data. - Program poganjaš prvič. Izberi kje bo Bitcoin Core shranjeval svoje podatke. + To je prvi zagonom programa, zato izberite kje bo program Bitcoin Core shranjeval podatke. 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. - Bitcoin Core bo prenesel in shranil kopijo Bitcoin verige blokov. V izbrano mapo bo shranjenih vsaj %1 GB podatkov, ta količina pa bo sčasoma še naraščala. Denarnica bo prav tako shranjena v to mapo. + Program bo prenesel in shranil kopijo bitcoin verige blokov. V izbrano mapo bo shranjenih vsaj %1 GB podatkov, ta količina bo sčasoma še naraščala. Denarnica bo prav tako shranjena v to mapo. Use the default data directory @@ -822,16 +886,20 @@ Naslov: %4 Bitcoin Core - Jedro Bitcoina + Bitcoin Core Error: Specified data directory "%1" cannot be created. - Napaka: Ne morem ustvariti mape "%1". + Napaka: Ni mogoče ustvariti mape "%1". Error Napaka + + %n GB of free space available + %n GB prostega prostora na voljo%n GB prostega prostora na voljo%n GB prostega prostora na voljo%n GB prostega prostora na voljo + OpenURIDialog @@ -841,7 +909,7 @@ Naslov: %4 Open payment request from URI or file - Odpri zahtevo o plačilo od ORI ali datoteke + Odpiranje zahteve o plačilu iz URI naslova ali datoteke URI: @@ -849,11 +917,11 @@ Naslov: %4 Select payment request file - Izberi datoteko plačilnega zahtevka + Izbiranje datoteke plačilnega zahtevka Select payment request file to open - Izberi datoteko plačilnega zahtevka + Izbiranje datoteke plačilnega zahtevka @@ -868,19 +936,23 @@ Naslov: %4 Automatically start Bitcoin after logging in to the system. - Po prijavi v sistem samodejno zaženite Bitcoin. + Samodejen zagon programa po prijavi v sistem. &Start Bitcoin on system login - &Zaženi Bitcoin ob prijavi v sistem + &Zaženi program ob prijavi v sistem Size of &database cache - Velikost lokalne zbirke &podatkovne baze + Velikost &predpomnilnika podatkovne zbirke MB - megabite + MB + + + Number of script &verification threads + Število programskih &niti za preverjanje Accept connections from outside @@ -895,14 +967,34 @@ Naslov: %4 IP naslov proxy strežnika (npr. IPv4: 127.0.0.1 ali IPv6: ::1) + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. + Naslovi URL tretjih oseb (npr. raziskovalec blokov), ki so navedeni v kontekstnem meniju seznama transakcij. Niz %s iz naslova URL je nadomeščen s hash vrednostjo transakcije. Več zaporednih naslovov URL je med seboj ločenih z znakom |. + + + Third party transaction URLs + URL nakazila tretjih oseb + + + Active command-line options that override above options: + Aktivne opcije iz ukazne vrstice, ki preglasijo zgornje opcije: + + + Reset all client options to default. + Ponastavi vse nastavitve programa na privzete vrednosti. + + &Reset Options - &Opcije resetiranja + &Ponastavi nastavitve &Network &Omrežje + (0 = auto, <0 = leave that many cores free) + (0 = samodejno, <0 = toliko CPU jeder naj ostane prosto) + + W&allet &Denarnica @@ -912,19 +1004,35 @@ Naslov: %4 Enable coin &control features - Omogoči Coin & Control funkcijo + Omogoči 'Coin &Control' možnost + + + If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed. + Če onemogočite trošenje nepotrjenega vračila, potem vračilo, to je denar, ki se po plačilu vrne v vašo denarnico, ne morete uporabljati dokler to plačilo ni potrjeno najmanj enkrat. Ta opcija vpliva tudi na to, kako bo izračunano dobroimetje. + + + &Spend unconfirmed change + &Trošenje nepotrjenega vračila Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Avtomatično odpri vrata Bitcoin odjemalca na usmerjevalniku. To deluje samo, če vaš usmerjevalnik podpira UPnP in je omogočen. + Program samodejno odpre ustrezna vrata na usmerjevalniku. To deluje samo, če vaš usmerjevalnik podpira in ima omogočen UPnP. Map port using &UPnP Naslavljanje vrat z uporabo &UPnP + Connect to the Bitcoin network through a SOCKS5 proxy. + Povezava v omrežje s pomočjo SOCKS5 posrednika. + + + &Connect through SOCKS5 proxy (default proxy): + Povezava v omrežje s pomočjo SOCKS5 posrednika: + + Proxy &IP: - IP posredniškega strežnika: + &IP posredniškega strežnika: &Port: @@ -932,7 +1040,7 @@ Naslov: %4 Port of the proxy (e.g. 9050) - Vrata strežnika (npr.: 9050) + Vrata posredniškega strežnika (npr.: 9050) &Window @@ -948,11 +1056,11 @@ Naslov: %4 Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. - Minimiziraj namesto izhoda iz programa, ko je okno zaprto. Ko je ta opcija omogočena se bo aplikacija zaprla z izbiro opcije Zapri iz menija. + Minimiziraj namesto izhoda iz programa, ko je okno zaprto. Ko je ta opcija omogočena se bo aplikacija zaprla z izbiro ukaza Izhod iz menija. M&inimize on close - &Minimiziraj na ukaz zapri + M&inimiziraj na ukaz zapri &Display @@ -960,15 +1068,23 @@ Naslov: %4 User Interface &language: - Vmesnik uporabnika &jezik: + &Jezik uporabniškega vmesnika: The user interface language can be set here. This setting will take effect after restarting Bitcoin. - Tukaj je mogoče nastaviti uporabniški vmesnik za jezike. Ta nastavitev bo prikazana šele, ko boste znova zagnali Bitcoin. + Tukaj je mogoče nastaviti jezik uporabniškega vmesnika. Ta nastavitev bo prikazana šele, ko boste znova zagnali program. &Unit to show amounts in: - & + &Enota za prikaz zneskov: + + + Choose the default subdivision unit to show in the interface and when sending coins. + Izberite privzeto mersko enoto za prikaz v uporabniškem vmesniku in pri pošiljanju novcev. + + + Whether to show coin control features or not. + Omogoči 'Coin &Control' možnost &OK @@ -976,7 +1092,7 @@ Naslov: %4 &Cancel - &Prekini + &Prekliči default @@ -986,7 +1102,23 @@ Naslov: %4 none Nič - + + Confirm options reset + Potrditev ponastavitve + + + Client restart required to activate changes. + Za uveljavitev sprememb je potreben ponoven zagon programa. + + + This change would require a client restart. + Ta sprememba zahteva ponoven zagon programa. + + + The supplied proxy address is invalid. + Vnešeni naslov posredniškega strežnika ni veljaven. + + OverviewPage @@ -995,23 +1127,39 @@ Naslov: %4 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. - Prikazanim podatkom je lahko potekel rok. Vaša denarnica bo po vzpostavitvi povezave samodejno sinhronizirana z Bitcoin omrežjem, ampak ta proces še ni bil zaključen. + Prikazani podatki so lahko zastareli. Vaša denarnica se po vzpostavitvi povezave z omrežjem samodejno sinhronizira, ampak ta proces še ni zaključen. Watch-only: - Samo gledanje + Samo za gledanje: Available: - Razpoložljivost: + Razpoložljivo: Your current spendable balance Vaše trenutno razpoložljivo stanje + Pending: + Nepotrjeno: + + Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Skupno število potrjenih transakcij, ki sicer niso bile prištete k razpoložljivem stanju + Skupni znesek še nepotrjenih transakcij. Ta znesek ni prištet k razpoložljivem stanju + + + Immature: + Nedozorelo: + + + Mined balance that has not yet matured + Narudarjeni znesek še ni dozorel. + + + Balances + Skupno stanje Total: @@ -1022,8 +1170,32 @@ Naslov: %4 Vaše trenutno skupno stanje + Your current balance in watch-only addresses + Skupni znesek opazovanih naslovov + + + Spendable: + Razpoložljivo: + + + Recent transactions + Nedavna plačila + + + Unconfirmed transactions to watch-only addresses + Nepotrjene transakcije na naslovih za vpogled + + + Mined balance in watch-only addresses that has not yet matured + Narudarjeni znesek iz opazovanega naslova še ni dozorel. + + + Current total balance in watch-only addresses + Skupni znesek naslovov za vpogled + + out of sync - iz sinhronizacije + ni sinhronizirano @@ -1034,19 +1206,71 @@ Naslov: %4 Invalid payment address %1 - Neveljaven naslov plačila %1 + Neveljaven naslov za plačilo %1 + + + Payment request rejected + Zahtevek za plačilo je bil zavrnjen. + + + Payment request network doesn't match client network. + Zahtevek za plačilo in vaš odjemalec se nahajata na različnih omrežjih. + + + Payment request is not initialized. + Zahtevek za plačilo ni inicializiran. Payment request error Napaka pri zahtevi plačila + Cannot start bitcoin: click-to-pay handler + Ni mogoče zagnati upravitelja plačil na klik tipa bitcoin:. + + + Payment request fetch URL is invalid: %1 + Naslov URL za pridobitev zahtevka za plačilo ni veljaven: %1 + + + URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. + Naslov URL je neprepoznaven! Razlog je lahko neveljaven naslov Bitcoin ali napačni parametri v URI. + + + Payment request file handling + Upravljanje z datoteko z zahtevkom za plačilo + + + Payment request file cannot be read! This can be caused by an invalid payment request file. + Datoteke z zahtevkom za plačilo ni mogoče prebrati! Možno je, da datoteka ni veljavna. + + + Unverified payment requests to custom payment scripts are unsupported. + Nepreverjeni zahtevki za plačilo, namenjeni plačilni skripti po meri, niso podprti. + + + Refund from %1 + Povračilo od %1 + + + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + Zahtevek za plačilo %1 je prevelik (%2 bytov, dovoljenih je %3 bytov.) + + + Payment request DoS protection + Zaščita pred DoS zahtevka za plačilo + + Error communicating with %1: %2 Napaka pri povezavi z %1: %2 + Payment request cannot be parsed! + Zahtevek za plačilo je neprepoznaven! + + Bad response from server %1 - Slab odziv strežnika %1 + Napačen odziv strežnika %1 Payment acknowledged @@ -1060,6 +1284,10 @@ Naslov: %4 PeerTableModel + User Agent + Ime agenta + + Ping Time Odzivni čas @@ -1071,6 +1299,14 @@ Naslov: %4 Količina + Enter a Bitcoin address (e.g. %1) + Vnesite naslov Bitcoin (npr. %1): + + + %1 d + %1 d + + %1 h %1 ur @@ -1079,10 +1315,22 @@ Naslov: %4 %1 minut + %1 s + %1 s + + + None + Nič + + N/A Neznano - + + %1 ms + %1 ms + + QRImageWidget @@ -1121,6 +1369,14 @@ Naslov: %4 &Informacije + Debug window + Razhroščevalno okno + + + General + Splošno + + Using OpenSSL version OpenSSL različica v rabi @@ -1137,6 +1393,10 @@ Naslov: %4 Omrežje + Name + Ime + + Number of connections Število povezav @@ -1157,14 +1417,62 @@ Naslov: %4 Poslano + &Peers + &Vrstniki + + + Select a peer to view detailed information. + Izberite vrstnika, katerega podrobnejše informacije si želite ogledati. + + + Direction + Smer + + Version Različica + User Agent + Ime agenta + + Services Storitve + Starting Height + Začetna višina + + + Sync Height + Višina sinhronizacije + + + Ban Score + Kazenske točke + + + Connection Time + Trajanje povezave + + + Last Send + Poslano pred + + + Last Receive + Prejeto pred + + + Bytes Sent + Bajtov poslano + + + Bytes Received + Bajtov prejeto + + Ping Time Odzivni čas @@ -1186,13 +1494,21 @@ Naslov: %4 &Clear - &Pošisti + &Počisti Totals Vsote + In: + Not: + + + Out: + Ven: + + Build date Datum izgradnje @@ -1206,7 +1522,7 @@ Naslov: %4 Welcome to the Bitcoin RPC console. - Dobrodošli na Bitcoin RPC konzoli. + Dobrodošli na Bitcoin RPC konzoli. Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. @@ -1218,25 +1534,37 @@ Naslov: %4 %1 B - %1 bitov + %1 B %1 KB - %1 kilobitov + %1 KB %1 MB - %1 megabitov + %1 MB %1 GB - %1 gigabitov + %1 GB + + + via %1 + preko %1 never nikoli + Inbound + Prihajajoča + + + Outbound + Odhajajoča + + Unknown Neznano @@ -1260,18 +1588,50 @@ Naslov: %4 &Sporočilo: + Reuse one of the previously used receiving addresses. Reusing addresses has security and privacy issues. Do not use this unless re-generating a payment request made before. + Ponovno uporabite enega od že uporabljenih naslovov za prejemanje. Večkratna uporaba istih naslovov za prejemanje negativno vpliva na varnost in zasebnost. To opcijo uporabite samo v primeru, da ponovno ustvarjate zahtevek za plačilo. + + + R&euse an existing receiving address (not recommended) + P&onovno uporabite obstoječ naslov za prejemanje. (Ni priporočeno.) + + + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. + Neobvezno sporočilo kot priponka zahtevku za plačilo, ki bo prikazano, ko bo zahtevek odprt. Opomba: Opravljeno plačilo.prek omrežja Bitcoin tega sporočila ne bo vsebovalo. + + An optional label to associate with the new receiving address. - Pomožna oznaka je povezana z novim sprejemnim naslovom. + Oznaka novega sprejemnega naslova. + + + Use this form to request payments. All fields are <b>optional</b>. + S tem obrazcem ustvarite nov zahtevek za plačilo. Vsa polja so <b>neobvezna</b>. + + + An optional amount to request. Leave this empty or zero to not request a specific amount. + Zahtevani znesek. Pustite prazno ali nastavite na 0, če ne zahtevate določenega zneska. + + + Clear all fields of the form. + Počisti vsa polja. Clear Počisti + Requested payments history + Zgodovina zahtevkov za plačilo + + &Request payment &Zahtevaj plačilo + Show the selected request (does the same as double clicking an entry) + Prikaz izbranega zahtevka. (Ista funkcija kot dvojni klik na zapis.) + + Show Pokaži @@ -1300,7 +1660,7 @@ Naslov: %4 ReceiveRequestDialog QR Code - QR Koda + QR koda Copy &URI @@ -1308,13 +1668,17 @@ Naslov: %4 Copy &Address - Kopiraj &Naslov + Kopiraj &naslov &Save Image... &Shrani sliko.. + Request payment to %1 + Zahtevek za plačilo z oznako: %1 + + Payment information Informacija o plačilu @@ -1340,11 +1704,11 @@ Naslov: %4 Resulting URI too long, try to reduce the text for label / message. - URI predolg, skušajte zmanjšati besedilo oznake/sporočila. + URI je predolg, skušajte zmanjšati besedilo oznake/sporočila. Error encoding URI into QR Code. - Napaka pri kodiranju URIja v QR kodo. + Napaka pri kodiranju URI naslova v QR kodo. @@ -1382,7 +1746,11 @@ Naslov: %4 SendCoinsDialog Send Coins - Pošlji kovance + Pošlji plačilo + + + Coin Control Features + Coin Control možnosti Inputs... @@ -1402,7 +1770,7 @@ Naslov: %4 Bytes: - Biti: + Bajti: Amount: @@ -1417,8 +1785,84 @@ Naslov: %4 Provizija: + After Fee: + Po proviziji: + + Change: - Sprememba: + Drobiž: + + + If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. + Če to vključite, nato pa vnesete neveljaven naslov, ali pa pustite polje prazno, bo vrnjen drobiž poslan na novo ustvarjen naslov. + + + Custom change address + Naslov za vračilo drobiža po meri + + + Transaction Fee: + Provizija: + + + Choose... + Izberi... + + + collapse fee-settings + Skrije nastavitve provizije + + + per kilobyte + za KB + + + 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. + Če je nastavitev zneska provizije po meri enaka 1000 satoshijev, transakcija pa je velika samo 250 bajtov, je obračunani znesek provizije pri nastavitvi "za KB" samo 250 satoshijev, medtem ko je pri nastavitvi "skupno vsaj" znesek 1000 satoshijev. Za transakcije, večje od kilobajta se končni znesek pri obeh nastavitvah obračuna na kilobajt. + + + total at least + skupno vsaj + + + 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. + Dokler bo v blokih še dovolj prostora za vse nastajajoče transakcije, je dovolj tudi plačilo samo minimalne provizije. Ko pa se bo količina vseh transakcij povečala do meja zmogljivosti omrežja, se lahko zgodi, da vaša transakcija brez večje provizije nikoli ne bo potrjena. + + + (read the tooltip) + (oglejte si namig) + + + Recommended: + Priporočena: + + + Custom: + Po meri: + + + (Smart fee not initialized yet. This usually takes a few blocks...) + (Samodejni obračun provizije še ni pripravljen. Po navadi izračun traja nekaj blokov...) + + + Confirmation time: + Čas do potrditve: + + + normal + navadno + + + fast + hitro + + + Send as zero-fee transaction if possible + Pošlji brez provizije, če je mogoče + + + (confirmation may take longer) + (čas do potrditve je lahko daljši) Send to multiple recipients at once @@ -1429,6 +1873,10 @@ Naslov: %4 Dodaj &prejemnika + Clear all fields of the form. + Počisti vsa polja. + + Dust: Prah: @@ -1453,6 +1901,10 @@ Naslov: %4 Potrdi odliv kovancev + %1 to %2 + %1 do %2 + + Copy quantity Kopiraj količino @@ -1465,8 +1917,12 @@ Naslov: %4 Kopiraj provizijo + Copy after fee + Kopiraj Po proviziji + + Copy bytes - Kopiraj bite + Kopiraj bajte Copy priority @@ -1477,20 +1933,36 @@ Naslov: %4 Kopiraj drobiž + Total Amount %1 (= %2) + Skupni znesek %1 (= %2) + + or ali The amount to pay must be larger than 0. - Količina za plačilo mora biti večja od 0. + Znesek za plačilo mora biti večji od 0. The amount exceeds your balance. - Količina presega vaše dobroimetje + Znesek presega vaše dobroimetje. Duplicate address found, can only send to each address once per send operation. - Najdena kopija naslova, možnost pošiljanja na vsakega izmed naslov le enkrat ob pošiljanju. + Najdena kopija naslova. V posamezni transakciji se naslovi ne morejo ponoviti. + + + Transaction creation failed! + Ustvarjanje plačila je spodletelo! + + + 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. + Transakcija je bila zavrnjena! To se lahko zgodi, če so bili kateri od kovancev iz denarnice že porabljeni, kot v primeru, da ste kje uporabili kopijo datoteke wallet.dat in kovance tam že porabili, lokalno pa ti še niso bili označeni kot porabljeni. + + + Pay only the minimum fee of %1 + Plačilo samo minimalne provizije v znesku %1 Warning: Invalid Bitcoin address @@ -1501,6 +1973,10 @@ Naslov: %4 (ni oznake) + Warning: Unknown change address + Opozorilo: Neznan naslov za vračilo drobiža + + Copy dust Kopiraj prah @@ -1525,7 +2001,7 @@ Naslov: %4 Enter a label for this address to add it to your address book - Vnesite oznako za ta naslov, ki bo shranjena v imenik + Vnesite oznako za naslov &Label: @@ -1533,7 +2009,15 @@ Naslov: %4 Choose previously used address - Izberi zadnje uporabljen naslov + Izberi že uporabljen naslov + + + This is a normal payment. + Plačilo je navadne vrste. + + + The Bitcoin address to send the payment to + Naslov Bitcoin, na katerega bo plačilo poslano Alt+A @@ -1548,6 +2032,10 @@ Naslov: %4 Alt+P + Remove this entry + Izbriše izbrani zapis + + Message: Sporočilo: @@ -1555,10 +2043,26 @@ Naslov: %4 Enter a label for this address to add it to the list of used addresses Vnesite oznako za ta naslov, ki bo shranjena v seznam uporabljenih naslovov - + + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. + Sporočilo, ki ste ga pripeli na URI bitcoin: in bo shranjeno skupaj s podatki o transakciji. Opomba: Sporočilo ne bo poslano preko omrežja Bitcoin. + + + Pay To: + Prejemnik: + + + Memo: + Opomba: + + ShutdownWindow + Bitcoin Core is shutting down... + Bitcoin Core se ustavlja... + + Do not shut down the computer until this window disappears. Ne zaustavite računalnika dokler to okno ne izgine. @@ -1567,15 +2071,19 @@ Naslov: %4 SignVerifyMessageDialog Signatures - Sign / Verify a Message - Podpisi - Podpiši/preveri sporočilo + Podpisi - podpiši / preveri sporočilo &Sign Message &Podpiši sporočilo + The Bitcoin address to sign the message with + Naslov Bitcoin, s katerim podpisujete sporočilo + + Choose previously used address - Izberi zadnje uporabljen naslov + Izberi že uporabljen naslov Alt+A @@ -1590,14 +2098,30 @@ Naslov: %4 Alt+P + Enter the message you want to sign here + Vnesite sporočilo, ki ga želite podpisati + + Signature Podpis + Copy the current signature to the system clipboard + Kopiranje trenutnega podpisa na sistemsko odložišče. + + + Sign the message to prove you own this Bitcoin address + Podpišite sporočilo, da dokažete lastništvo nad zgornjim naslovom. + + Sign &Message Podpiši &sporočilo + Reset all sign message fields + Ponastavitev vseh polj za vnos + + Clear &All Počisti &vse @@ -1606,12 +2130,24 @@ Naslov: %4 &Preveri sporočilo + The Bitcoin address the message was signed with + Naslov Bitcoin, s katerim je bilo sporočilo podpisano + + + Verify the message to ensure it was signed with the specified Bitcoin address + Preverite, ali je bilo sporočilo v resnici podpisano z navedenim naslovom Bitcoin. + + Verify &Message Preveri &Sporočilo + Reset all verify message fields + Ponastavitev vseh polj za vnos + + Click "Sign Message" to generate signature - Kliknite "Podpiši sporočilo" za ustvaritev podpisa + Kliknite "Podpiši sporočilo" da ustvarite podpis The entered address is invalid. @@ -1619,11 +2155,15 @@ Naslov: %4 Please check the address and try again. - Prosimo preverite naslov in poizkusite znova. + Prosim preverite naslov in poizkusite znova. + + + The entered address does not refer to a key. + Vnešeni naslov se ne nanaša na noben ključ. Wallet unlock was cancelled. - Odklepanje denarnice je bilo prekinjeno. + Odklepanje denarnice je bilo preklicano. Private key for the entered address is not available. @@ -1646,6 +2186,10 @@ Naslov: %4 Prosimo preverite podpis in poizkusite znova. + The signature did not match the message digest. + Podpis ne ustreza rezultatu (digest) preverjanja. + + Message verification failed. Pregledovanje sporočila spodletelo. @@ -1658,7 +2202,11 @@ Naslov: %4 SplashScreen Bitcoin Core - Jedro Bitcoina + Bitcoin Core + + + The Bitcoin Core developers + Bitcoin Core razvijalci [testnet] @@ -1667,12 +2215,24 @@ Naslov: %4 TrafficGraphWidget - + + KB/s + KB/s + + TransactionDesc Open until %1 - Odpri enoto %1 + Odprto do %1 + + + conflicted + v konfliktu + + + %1/offline + %1/brez povezave %1/unconfirmed @@ -1711,16 +2271,32 @@ Naslov: %4 lasten naslov + watch-only + opazovano + + label oznaka + Credit + V dobro + + not accepted ni bilo sprejeto Debit - Dolg + Debit + + + Total debit + Skupaj v breme + + + Total credit + Skupaj v dobro Transaction fee @@ -1728,7 +2304,7 @@ Naslov: %4 Net amount - Neto količina + Neto znesek Message @@ -1747,6 +2323,10 @@ Naslov: %4 Trgovec + 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. + Ustvarjeni kovanci morajo zoreti %1 blokov, preden jih lahko porabite. Ko ste ta blok zgenerirali, je bil posredovan v omrežje, da bo dodan v verigo. Če se bloku ni uspelo uvrstiti v verigo, se bo njegovo stanje spremenilo v "ni bilo sprejeto" in kovancev ne bo mogoče porabiti. To se včasih zgodi, če kak drug rudar v roku nekaj sekund hkrati z vami odkrije drug blok. + + Debug information Razhroščevalna informacija @@ -1760,7 +2340,7 @@ Naslov: %4 Amount - Količina + Znesek true @@ -1772,7 +2352,7 @@ Naslov: %4 , has not been successfully broadcast yet - , še ni bila uspešno raznešena + , še ni bila uspešno rasposlana unknown @@ -1805,8 +2385,12 @@ Naslov: %4 Naslov + Immature (%1 confirmations, will be available after %2) + Nedozorelo (št. potrditev: %1, na voljo šele po: %2) + + Open until %1 - Odpri enoto %1 + Odprto do %1 Confirmed (%1 confirmations) @@ -1821,10 +2405,22 @@ Naslov: %4 Generirano, toda ne sprejeto + Offline + Brez povezave + + Unconfirmed Nepotrjeno + Confirming (%1 of %2 recommended confirmations) + V potrjevanju (št. potrditev: %1 od priporočenih %2) + + + Conflicted + V konfliktu + + Received with Prejeto z @@ -1838,11 +2434,15 @@ Naslov: %4 Payment to yourself - Izplačilo sebi + Plačilo sebi Mined - Minirano + Narudarjeno + + + watch-only + opazovano (n/a) @@ -1861,12 +2461,16 @@ Naslov: %4 Vrsta transakcije. + Whether or not a watch-only address is involved in this transaction. + Ali je v transakciji udeležen kateri od opazovanih naslovov. + + Destination address of transaction. Naslov prejemnika transakcije. Amount removed from or added to balance. - Količina odlita ali prilita dobroimetju. + Znesek odlit ali prilit dobroimetju. @@ -1897,7 +2501,7 @@ Naslov: %4 Range... - Območje ... + Območje... Received with @@ -1913,7 +2517,7 @@ Naslov: %4 Mined - Minirano + Narudarjeno Other @@ -1937,7 +2541,7 @@ Naslov: %4 Copy amount - Kopiraj količino + Kopiraj znesek Copy transaction ID @@ -1952,10 +2556,22 @@ Naslov: %4 Prikaži podrobnosti transakcije + Export Transaction History + Izvoz zgodovine transakcij + + + Watch-only + Opazovano + + Exporting Failed Neuspešen izvoz + There was an error trying to save the transaction history to %1. + Prišlo je do napake med shranjevanjem zgodovine transakcij v datoteko %1. + + Exporting Successful Uspešen izvoz @@ -2002,15 +2618,23 @@ Naslov: %4 UnitDisplayStatusBarControl - + + Unit to show amounts in. Click to select another unit. + Merska enota za prikaz zneskov. Kliknite za izbiro druge enote. + + WalletFrame - + + No wallet has been loaded. + Denarnica ni bila naložena. + + WalletModel Send Coins - Pošlji kovance + Pošlji @@ -2021,7 +2645,7 @@ Naslov: %4 Export the data in the current tab to a file - Izvozi podatke v trenutni zavih v datoteko + Izvozi podatke v trenutnem zavihku v datoteko Backup Wallet @@ -2029,7 +2653,7 @@ Naslov: %4 Wallet Data (*.dat) - Podatki denarnice (*.dat) + Denarnica (*.dat) Backup Failed @@ -2037,11 +2661,11 @@ Naslov: %4 There was an error trying to save the wallet data to %1. - Prišlo je do napake pri shranjevanju podatkov denarnice na %1. + Prišlo je do napake pri shranjevanju denarnice na %1. The wallet data was successfully saved to %1. - Podatki denarnice so bili uspešno shranjena na %1. + Denarnica uspešno shranjena na %1. Backup Successful @@ -2079,16 +2703,56 @@ Naslov: %4 Uporabi testno omrežje + Accept connections from outside (default: 1 if no -proxy or -connect) + Sprejemaj zunanje povezave (privzeto: 1, razen v primeru opcij -proxy ali -connect) + + + Bind to given address and always listen on it. Use [host]:port notation for IPv6 + Poveži se in poslušaj na danem naslovu. Pri protokolu IPv6 uporabite zapis [gostitelj]:vrata. + + + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + Distribuirano v okviru programske licence MIT. Podrobnosti so navedene v priloženi datoteki COPYING ali na naslovu <http://www.opensource.org/licenses/mit-license.php>. + + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) Izvedi ukaz, ko bo transakcija denarnice se spremenila (V cmd je bil TxID zamenjan za %s) + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) + Nastavi število niti za preverjanje skript (%u do %d, 0 = samodejno, <0 pusti toliko procesorskih jeder prostih, privzeto: %d) + + This is a pre-release test build - use at your own risk - do not use for mining or merchant applications - To je pred izdana poizkusna verzija - uporaba na lastno odgovornost - ne uporabljajte je za rudarstvo ali trgovske aplikacije + To je preizkusna verzija - uporaba na lastno odgovornost - ne uporabljajte je za rudarjenje bitcoinov ali za trgovske aplikacije + + + Unable to bind to %s on this computer. Bitcoin Core is probably already running. + Na tem računalniku se ni bilo mogoče povezati na %s. Odjemalec Bitcoin Core je verjetno že zagnan. + + + Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. + Opozorilo: Vrednost opcije -paytxfee je zelo visoka. To je provizija, ki jo boste plačali, če izvedete plačilo. + + + Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. + Opozorilo: Trenutno na omrežju ni videti konsenza! Videti je, kot da bi imeli nekateri rudarji težave. + + + Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. + Opozorilo: Trenutno se s soležniki ne strinjam v popolnosti! Mogoče bi morali vi ali drugi udeleženci posodobiti odjemalce. Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. - Opozorilo: napaka pri branju wallet.dat! Vsi ključi so bili pravilno prebrani, podatki o transakciji ali imenik vnešenih naslovov so morda izgubljeni ali nepravilni. + Opozorilo: napaka pri branju datoteke wallet.dat! Vsi ključi so bili pravilno prebrani, ampak podatki o transakcijah ali imenik vnešenih naslovov so morda izgubljeni ali nepravilni. + + + 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. + Opozorilo: Datoteka wallet.dat je bila okvarjena, podatki pa so bili kljub temu rešeni! Originalna datoteka je bila shranjena kot wallet.[čas.oznaka].bak v mapo %s. Če sta skupno stanje ali seznam transakcij napačna, morate datoteko restavrirati iz varnostne kopije. + + + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + Sprejemaj povezave samo iz naslovov, ki ustrezajo navedeni omrežni maski ali naslovu. Opcijo lahko navedete večkrat. (default: 1) @@ -2099,42 +2763,226 @@ Naslov: %4 <category> je lahko: + Attempt to recover private keys from a corrupt wallet.dat + Skušaj obnoviti zasebne ključe iz okvarjene datoteke wallet.dat + + Block creation options: Možnosti ustvarjanja blokov: + Connect only to the specified node(s) + Poveži se samo z enim ali več navedenimi vozlišči + + + Connection options: + Izbire povezave: + + + Corrupted block database detected + Podatkovna baza blokov je okvarjena + + + Debugging/Testing options: + Možnosti razhroščevanja in testiranja: + + + Do not load the wallet and disable wallet RPC calls + Ne naloži denarnice in onemogoči s tem povezane klice RPC + + + Do you want to rebuild the block database now? + Želite zdaj obnoviti podatkovno bazo blokov? + + + Error initializing block database + Napaka pri inicializaciji podatkovne baze blokov + + + Error initializing wallet database environment %s! + Napaka pri inicializaciji okolja podatkovne baze denarnice %s! + + + Error loading block database + Napaka pri nalaganju podatkovne baze blokov + + + Error opening block database + Napaka pri odpiranju podatkovne baze blokov + + + Error: A fatal internal error occured, see debug.log for details + Napaka: Med izvajanjem je prišlo do nepopravljive napake. Podrobnosti so v datoteki debug.log + + Error: Disk space is low! Opozorilo: Premalo prostora na disku! + Failed to listen on any port. Use -listen=0 if you want this. + Ni mogoče poslušati na nobenih vratih. Če to zares želite, uporabite opcijo -listen=0. + + + If <category> is not supplied, output all debugging information. + Če element <category> ni naveden, izpisuje vse informacije za razhroščevanje. + + Importing... Uvažam... + Incorrect or no genesis block found. Wrong datadir for network? + Izvornega bloka ni mogoče najti ali pa je neveljaven. Preverite, če ste izbrali pravo podatkovno mapo za izbrano omrežje. + + + Invalid -onion address: '%s' + Neveljaven naslov tipa -onion: '%s' + + + Not enough file descriptors available. + Na voljo ni dovolj deskriptorjev datotek. + + + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + Povezuj se samo z vozlišči na omrežju tipa <net> (IPv4, IPv6 ali onion) + + + Set database cache size in megabytes (%d to %d, default: %d) + Nastavitev velikosti predpomnilnik podatkovne baze v MiB (%d do %d, privzeto: %d) + + + Set maximum block size in bytes (default: %d) + Nastavitev maksimalne velikosti bloka v bajtih (privzeto: %d) + + + Specify wallet file (within data directory) + Ime datoteke z denarnico (znotraj podatkovne mape) + + + Verifying blocks... + Preverjam bloke... + + + Verifying wallet... + Preverjam denarnico... + + + Wallet %s resides outside data directory %s + Datoteka %s z denarnico se nahaja izven podatkovne mape %s + + + Wallet options: + Izbire denarnice: + + + You need to rebuild the database using -reindex to change -txindex + Ob spremembi vrednosti opcije -txindex boste morali obnoviti bazo podatkov z uporabo opcije -reindex + + + Imports blocks from external blk000??.dat file + Uvozi bloke iz zunanje datoteke blk000??.dat + + + Allow JSON-RPC connections from specified source. Valid for <ip> 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). This option can be specified multiple times + Dovoli povezave na JSON-RPC iz navedenih virov. Veljavne oblike vrednosti parametra <ip> so: enojen naslov IP (npr.: 1.2.3.4), kombinacija omrežje/netmask (npr.: 1.2.3.4/255.255.255.0), ali pa kombinacija omrežje/CIDR (1.2.3.4/24). To opcijo lahko navedete večkrat. + + + An error occurred while setting up the RPC address %s port %u for listening: %s + Prišlo je do napake med zagonom poslušalca RPC na naslovu %s in vratih %u: %s + + + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + Veži dani naslov in sprejemaj povezave samo od navedenih soležnikov. Za protokol IPv6 uporabite zapis {gostitelj];vrata. + + + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + Veži dani naslov in sprejemaj povezave na JSON-RPC. Za naslove protokola IPv6 uporabite zapis [gostitelj]:vrata. To opcijo lahko navedete večkrat. (privzeto: veži vse omrežne vmesnike) + + + Cannot obtain a lock on data directory %s. Bitcoin Core is probably already running. + Ne morem zakleniti podatkovne mape %s. Bitcoin Core je verjetno že zagnan. + + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + Ustvarjaj nove datoteke s privzetimi sistemskimi dovoljenji, namesto z umask 077. (To pride v poštev samo, kadar imate izklopljeno funkcijo denarnice.) + + + Error: Listening for incoming connections failed (listen returned error %s) + Napaka: Ni mogoče sprejemati dohodnih povezav (vrnjena napaka: %s) + + + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + Napaka: Navedli ste nepodprto vrednost opcije -socks. Različice protokola SOCKS ni več mogoče navesti, podprti so samo posredniški strežniki tipa SOCKS5. + + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) + Ko bo prejeto ustrezno opozorilo, ali ko bo opažena zelo dolga razvejitev, izvedi navedeni ukazni niz. (Niz %s bo nadomeščen z vsebino sporočila.) + + + Fees (in BTC/Kb) smaller than this are considered zero fee for relaying (default: %s) + Provizije (v BTC/KiB), ki so manjše od te vrednosti, se pri posredovanju smatrajo za nične (privzeto: %s) + + + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Če opcija -paytxfee ni nastavljena, nastavi znesek provizije tako visoko, da bodo transakcije potrjene v povprečno n blokih. (privzeto: %u) + + + Warning: Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly. + Opozorilo: Preverite, če sta datum in ura na vašem računalniku točna! Bitcoin Core ne bo dobro deloval, če je nastavljeni čas nepravilen. + + + Cannot resolve -whitebind address: '%s' + Naslova "%s", podanega pri opciji -whitebind ni mogoče razrešiti. + + + Connect through SOCKS5 proxy + Poveži se preko posredniškega strežnika SOCKS5 + + + Copyright (C) 2009-%i The Bitcoin Core Developers + Copyright (C) 2009-%i The Bitcoin Core Developers + + Information Informacije + Need to specify a port with -whitebind: '%s' + Pri opciji -whitebind morate navesti vrata: '%s' + + Send trace/debug info to console instead of debug.log file - Pošlji sledilne/razhroščevalne informacije v konzolo namesto jih shraniti v debug.log datoteko + Pošlji sledilne/razhroščevalne informacije v konzolo namesto shranjevanja v debug.log datoteko + + + Shrink debug.log file on client startup (default: 1 when no -debug) + Ob zagonu odjemalca skrajšaj datoteko debug.log (privzeto: 1, če ni vklopljena opcija -debug) Signing transaction failed Podpisovanje transakcije spodletelo + This is experimental software. + Program je eksperimentalne narave. + + Transaction amount too small - Količina transakcije je pramajhna + Znesek je premajhen Transaction amounts must be positive - Količina transkacije mora biti pozitivna + Znesek mora biti pozitiven Transaction too large Transkacija je prevelika + Unable to bind to %s on this computer (bind returned error %s) + Na tem računalniku se ni bilo mogoče povezati na %s (vrnjena napaka: %s) + + Username for JSON-RPC connections Uporabniško ime za JSON-RPC povezave @@ -2147,6 +2995,14 @@ Naslov: %4 Opozorilo: ta različica je zastarela, potrebna je nadgradnja! + Zapping all transactions from wallet... + Brišem vse transakcije iz denarnice ... + + + on startup + ob zagonu + + wallet.dat corrupt, salvage failed wallet.dat poškodovana, neuspešna obnova @@ -2180,13 +3036,25 @@ Naslov: %4 Loading addresses... - Nalaganje naslovov ... + Nalaganje naslovov... Error loading wallet.dat: Wallet corrupted Napaka pri nalaganju wallet.dat: denarnica pokvarjena + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + Za dostop do soležnikov preko skritih storitev Tor uporabi drug posredniški strežnik SOCKS5 (privzeto: %s) + + + (default: %s) + (privzeto: %s) + + + Acceptable ciphers (default: %s) + Sprejemljivi tipi šifriranja (privzeto: %s) + + Error loading wallet.dat Napaka pri nalaganju wallet.dat @@ -2195,6 +3063,30 @@ Naslov: %4 Neveljaven -proxy naslov: '%s' + Relay non-P2SH multisig (default: %u) + Posreduj transakcije tipa multisig, ki niso hkrati tipa P2SH. (privzeto: %u) + + + Specify configuration file (default: %s) + Za shranjevanje konfiguracije uporabi navedeno datoteko. (privzeto: %s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + Vzpostavljanje nove povezave poteče po navedenem št. pretečenih milisekund. (najmanj: 1, privzeto: %d) + + + Specify pid file (default: %s) + Za shranjevanje PID uporabi navedeno datoteko. (privzeto: %s) + + + Spend unconfirmed change when sending transactions (default: %u) + Pri odlivnih transakcijah omogoči trošenje drobiža iz še nepotrjenih plačil (privzeto: %u) + + + Threshold for disconnecting misbehaving peers (default: %u) + Prekini povezavo s soležnikom, ko št. njegovih kazenskih točk preseže navedeni prag. (privzeto: %u) + + Unknown network specified in -onlynet: '%s' Neznano omrežje določeno v -onlynet: '%s'. diff --git a/src/qt/locale/bitcoin_sq.ts b/src/qt/locale/bitcoin_sq.ts index 82c0a61701c..116ea41c644 100644 --- a/src/qt/locale/bitcoin_sq.ts +++ b/src/qt/locale/bitcoin_sq.ts @@ -46,14 +46,38 @@ Duke marr adresen + These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. + Këto janë Bitcoin adresat e juaja për të dërguar pagesa. Gjithmon kontrolloni shumën dhe adresën pranuese para se të dërgoni monedha. + + + These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Këto janë Bitcoin adresat e juaja për të pranuar pagesa. Rekomandohet që gjithmon të përdorni një adresë të re për çdo transaksion. + + + Copy &Label + Kopjo &Etiketë + + &Edit &Ndrysho + Export Address List + Eksporto listën e adresave + + Comma separated file (*.csv) Skedar i ndarë me pikëpresje(*.csv) - + + Exporting Failed + Eksportimi dështoj + + + There was an error trying to save the address list to %1. Please try again. + Gabim gjatë ruajtjes së listës së adresave në %1. Ju lutem provoni prapë. + + AddressTableModel @@ -708,6 +732,10 @@ Kopjo adresën + Exporting Failed + Eksportimi dështoj + + Comma separated file (*.csv) Skedar i ndarë me pikëpresje(*.csv) diff --git a/src/qt/locale/bitcoin_tr.ts b/src/qt/locale/bitcoin_tr.ts index dc5762bc056..a571869112e 100644 --- a/src/qt/locale/bitcoin_tr.ts +++ b/src/qt/locale/bitcoin_tr.ts @@ -1289,6 +1289,10 @@ Adres: %4 %1 öğesinden iade + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + %1 ödeme talebi çok büyük (%2 bayt, müsaade edilen %3 bayt). + + Payment request DoS protection Ödeme talebi DoS koruması @@ -1325,7 +1329,7 @@ Adres: %4 Ping Time - Ping Zamanı + Ping Süresi @@ -1498,7 +1502,7 @@ Adres: %4 Connection Time - Bağlantı Zamanı + Bağlantı Süresi Last Send @@ -1518,7 +1522,7 @@ Adres: %4 Ping Time - Ping Zamanı + Ping Süresi Last block time @@ -3083,6 +3087,10 @@ Adres: %4 Adres sayısı azaldıysa DNS sorgulamasıyla eş adresleri ara (varsayılan: 1 -connect kullanılmadıysa) + Require high priority for relaying free or low-fee transactions (default:%u) + Ücretsiz ya da düşük ücretli muamelelerin geçişi için yüksek öncelik iste (varsayılan: %u) + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) Yüksek öncelikli/düşük ücretli muamelelerin azami boyutunu bayt olarak ayarla (varsayılan: %d) @@ -3155,6 +3163,10 @@ mesela: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com wallet.dat dosyasının yüklenmesinde hata: Cüzdan Bitcoin Çekirdeğinin daha yeni bir sürümünü gerektirmektedir + Error reading from database, shutting down. + Veritabanından okumada hata, kapatılıyor. + + Error: Unsupported argument -tor found, use -onion. Hata: Deskteklenmeyen -tor argümanı bulundu, -onion kullanınız. @@ -3211,6 +3223,10 @@ mesela: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com RPC sunucu seçenekleri: + RPC support for HTTP persistent connections (default: %d) + Kalıcı HTTP bağlantıları için RPC desteği (varsayılan: %d) + + Randomly drop 1 of every <n> network messages Her <n> şebeke mesajından rastgele 1 mesajı görmezden gel diff --git a/src/qt/locale/bitcoin_uk.ts b/src/qt/locale/bitcoin_uk.ts index 809f8e2d249..7935b20a16a 100644 --- a/src/qt/locale/bitcoin_uk.ts +++ b/src/qt/locale/bitcoin_uk.ts @@ -3,7 +3,7 @@ AddressBookPage Right-click to edit address or label - Клік правою кнопкою для редагування адреси або мітки + Клікніть правою кнопкою для редагування адреси або мітки Create a new address @@ -71,7 +71,7 @@ These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Це ваша нова Bitcoin адреса для отримування платежів. Рекомендовано використовувати нову адресу для кожної транзакції. + Це ваша нова Bitcoin адреса для отримання платежів. Рекомендовано використовувати нову адресу для кожної транзакції. Copy &Label @@ -173,7 +173,7 @@ IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - ВАЖЛИВО: Всі попередні резервні копії, які ви зробили з вашого файлу гаманця повинні бути замінені новоствореним, зашифрованим файлом гаманця. З міркувань безпеки, попередні резервні копії незашифрованого файла гаманця стануть марними одразу ж, як тільки ви почнете використовувати новий, зашифрований гаманець. + ВАЖЛИВО: Всі попередні резервні копії, які ви зробили з вашого файлу гаманця повинні бути замінені новоствореним, зашифрованим файлом гаманця. З міркувань безпеки, попередні резервні копії незашифрованого файла гаманця стануть непридатними одразу ж, як тільки ви почнете використовувати новий, зашифрований гаманець. Warning: The Caps Lock key is on! @@ -185,7 +185,7 @@ 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>. - Введіть нову кодову фразу для гаманця.<br/>Будь ласка, використовуйте кодові фрази що містять <b> як мінімум десять випадкових символів </b> або <b> як мінімум вісім слів </b>. + Введіть нову кодову фразу для гаманця.<br/>Будь ласка, використовуйте кодові фрази що містять <b> щонайменше десять випадкових символів </b> або <b> щонайменше вісім слів </b>. 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. @@ -240,11 +240,11 @@ Show general overview of wallet - Показати загальний огляд гаманця + Показати стан гаманця &Transactions - Транзакції + &Транзакції Browse transaction history @@ -324,7 +324,7 @@ &Debug window - Вікно зневадження + В&ікно зневадження Open debugging and diagnostic console @@ -356,7 +356,7 @@ &Show / Hide - Показати / Приховати + Показа&ти / Приховати Show or hide the main Window @@ -364,7 +364,7 @@ Encrypt the private keys that belong to your wallet - Шифрування закритих ключів, які належать вашому гаманці + Зашифрувати закриті ключі, що знаходяться у вашому гаманці Sign messages with your Bitcoin addresses to prove you own them @@ -400,7 +400,7 @@ &About Bitcoin Core - &Про Bitcoin Core + П&ро Bitcoin Core Show the list of used sending addresses and labels @@ -416,7 +416,7 @@ &Command-line options - Параметри командного рядка + П&араметри командного рядка Show the Bitcoin Core help message to get a list with possible Bitcoin command-line options @@ -424,7 +424,7 @@ %n active connection(s) to Bitcoin network - %n активне з'єднання з мережею%n активні з'єднання з мережею%n активних з'єднань з мережею Bitcoin + %n активне з'єднання з мережею Bitcoin%n активні з'єднання з мережею Bitcoin%n активних з'єднань з мережею Bitcoin No block source available... @@ -452,7 +452,7 @@ %1 behind - %1 позаду + %1 тому Last received block was generated %1 ago. @@ -538,7 +538,7 @@ Address: %4 Amount: - Кількість: + Сума: Priority: @@ -610,11 +610,11 @@ Address: %4 Copy amount - Копіювати кількість + Скопіювати суму Copy transaction ID - Копіювати ID транзакції + Скопіювати ID транзакції Lock unspent @@ -626,31 +626,31 @@ Address: %4 Copy quantity - Копіювати кількість + Скопіювати кількість Copy fee - Копіювати комісію + Скопіювати комісію Copy after fee - Копіювати після комісії + Скопіювати після комісії Copy bytes - Копіювати байти + Скопіювати байти Copy priority - Копіювати пріорітет + Скопіювати пріорітет Copy dust - Копіювати пил + Скопіювати пил Copy change - Копіювати решту + Скопіювати решту highest @@ -710,7 +710,7 @@ Address: %4 This label turns red, if the transaction size is greater than 1000 bytes. - Ця позначка буде червоною, якщо розмір транзакції вищий за 1000 байт. + Ця позначка буде червоною, якщо розмір транзакції вищий за 1000 байтів. This means a fee of at least %1 per kB is required. @@ -804,7 +804,7 @@ Address: %4 FreespaceChecker A new data directory will be created. - Буде створена новий каталог даних. + Буде створено новий каталог даних. name @@ -976,7 +976,7 @@ Address: %4 Number of script &verification threads - Кількість потоків сценарію перевірки + Кількість потоків &сценарію перевірки Accept connections from outside @@ -1008,7 +1008,7 @@ Address: %4 &Reset Options - Скинути параметри + С&кинути параметри &Network @@ -1289,6 +1289,10 @@ Address: %4 Відшкодування з %1 + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + Запит платежу %1 занадто великий (%2 байт, дозволено %3 байт). + + Payment request DoS protection Оплата потребує захисту DoS @@ -1526,11 +1530,11 @@ Address: %4 &Open - Відкрити + &Відкрити &Console - Консоль + &Консоль &Network Traffic @@ -1712,11 +1716,11 @@ Address: %4 Copy &URI - Скопіювати URI + &Скопіювати URI Copy &Address - Скопіювати адресу + Скопіювати &адресу &Save Image... @@ -1866,7 +1870,7 @@ Address: %4 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. - Якщо оплата користувача встановлюється в 1000 Satoshi і розмір передачі всього 250 байт, то "за кілобайт" платить тільки 250 Satoshi, в той час як "щонайменше" платить 1000 satoshis. Для передач більших, ніж кілобайт обоє платять за кілобайт. + Якщо комісія встановлюється в 1000 сатоші і розмір транзакції лише 250 байтів, то опція "за кілобайт" встановлює комісію в 250 сатоші, в той час, як "щонайменше" - в 1000 сатоші. Для транзакцій більших за кілобайт в обох випадках буде знято комісію за кілобайт. per kilobyte @@ -1874,7 +1878,7 @@ Address: %4 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. - Якщо оплата користувача встановлюється в 1000 Satoshi і розмір передачі всього 250 байт, то "за кілобайт" платить тільки 250 Satoshi, в той час як "всього щонайменше" платить 1000 satoshis. Для передач більших, ніж кілобайт обоє платять за кілобайт. + Якщо комісія встановлюється в 1000 сатоші і розмір транзакції лише 250 байтів, то опція "за кілобайт" встановлює комісію в 250 сатоші, в той час, як "всього щонайменше" - в 1000 сатоші. Для транзакцій більших за кілобайт в обох випадках буде знято комісію за кілобайт. total at least @@ -1882,7 +1886,7 @@ Address: %4 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. - Оплата тільки мінімальних зборів є прийнятною до тих пір, як обсяг транзакцій там є меншим аніж простору в блоках. Але майте на увазі, що це може анулювати транзакцію, якщо попит на Bitcoin транзакції стане значно більшим, ніж мережа зможе обробити. + Оплата тільки мінімальної комісії є прийнятною, допоки обсяг транзакцій є меншим простору в блоках. Але майте на увазі, що це може анулювати транзакцію, якщо попит на Bitcoin транзакції стане більшим, ніж мережа зможе обробити. (read the tooltip) @@ -1898,7 +1902,7 @@ Address: %4 (Smart fee not initialized yet. This usually takes a few blocks...) - (Розумна оплата ще не ініціалізована. Це звичайно займає кілька блоків...) + (Розумну оплату ще не ініціалізовано. Це, зазвичай, триває кілька блоків...) Confirmation time: @@ -1966,7 +1970,7 @@ Address: %4 Copy amount - Копіювати кількість + Копіювати суму Copy fee @@ -1998,7 +2002,7 @@ Address: %4 The recipient address is not valid, please recheck. - Адреса отримувача невірна, будь ласка перепровірте. + Адреса отримувача неправильна; будь ласка, перевірте її. The amount to pay must be larger than 0. @@ -2030,7 +2034,7 @@ Address: %4 Pay only the minimum fee of %1 - Платити тільки мінімальний збір у розмірі %1 + Платити тільки мінімальну комісію у розмірі %1 Estimated to begin confirmation within %1 block(s). @@ -2211,7 +2215,7 @@ Address: %4 &Verify Message - Перевірити повідомлення + П&еревірити повідомлення 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. @@ -2227,7 +2231,7 @@ Address: %4 Verify &Message - Перевірити повідомлення + Пере&вірити повідомлення Reset all verify message fields @@ -2432,7 +2436,7 @@ Address: %4 Inputs - витрати + Входи Amount @@ -2645,11 +2649,11 @@ Address: %4 Copy amount - Копіювати кількість + Скопіювати суму Copy transaction ID - Копіювати ID транзакції + Скопіювати ID транзакції Edit label @@ -2888,7 +2892,7 @@ Address: %4 Connect only to the specified node(s) - Підключитись лише до вказаного вузла + Підключитись лише до вказаного вузла/вузлів Connection options: @@ -2964,7 +2968,7 @@ Address: %4 Only connect to nodes in network <net> (ipv4, ipv6 or onion) - Підключити тільки до вузлів в мережі <net> (ipv4, ipv6 або onion) + Підключатися тільки до вузлів в мережі <net> (ipv4, ipv6 або onion) Rebuild block chain index from current blk000??.dat files @@ -3067,18 +3071,26 @@ Address: %4 Якщо параметр paytxfee не встановлено, включити комісію для отримання перших підтверджень транзакцій протягом n блоків (типово: %u) + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Неприпустима сума для -maxtxfee = <amount>: «%s» ( плата повинна бути, принаймні %s, щоб запобігти зависанню транзакцій) + + Maximum size of data in data carrier transactions we relay and mine (default: %u) - Максимальний розмір даних в транзакціях носіїв даних, що ми передаємо і добуваємо (за замовчуванням: %u) + Максимальний розмір даних в транзакціях носіїв даних, що ми передаємо і добуваємо (типово: %u) Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) - Максимальна загальна плата для використання в одній транзакції, установка занадто низької може перервати великі транзакції(стандартно: %s) + Максимальна загальна комісія для використання в одній транзакції, установка занадто низької може скасувати великі транзакції (типово: %s) Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) Дізнаватися адреси учасників через DNS при замалій кількості відомих адрес (типово: 1 за відсутності -connect) + Require high priority for relaying free or low-fee transactions (default:%u) + Вимагати високий пріоритет для ретрансляції транзакцій з низькою або нульовою комісією (типово: %u) + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) Встановити максимальний розмір транзакцій з високим пріоритетом та низькою комісією (в байтах) (типово: %d) @@ -3151,6 +3163,10 @@ rpcpassword=%s Помилка при завантаженні wallet.dat: Гаманець потребує новішої версії Bitcoin Core + Error reading from database, shutting down. + Помилка читання бази даних, припиняю роботу. + + Error: Unsupported argument -tor found, use -onion. Помилка: Параметр -tor не підтримується, використовуйте -onion @@ -3168,7 +3184,7 @@ rpcpassword=%s Invalid amount for -maxtxfee=<amount>: '%s' - Неприпустима сума для -maxtxfee = <amount>: '%s' + Неприпустима сума для -maxtxfee = <amount>: «%s» Invalid amount for -minrelaytxfee=<amount>: '%s' @@ -3207,6 +3223,10 @@ rpcpassword=%s Параметри сервера RPC: + RPC support for HTTP persistent connections (default: %d) + Підтримка RPC для постійних HTTP-з'єднань (типово: %d) + + Randomly drop 1 of every <n> network messages Випадковим чином відкидати 1 з <n> мережевих повідомлень diff --git a/src/qt/locale/bitcoin_ur_PK.ts b/src/qt/locale/bitcoin_ur_PK.ts index edf0190f57d..4d1b6d10288 100644 --- a/src/qt/locale/bitcoin_ur_PK.ts +++ b/src/qt/locale/bitcoin_ur_PK.ts @@ -2,14 +2,22 @@ AddressBookPage + Right-click to edit address or label + پتہ تبدیل کرے کے لیے دائیاں کلک کریں + + Create a new address - نیا ایڈریس بنائیں + نیا پتہ بنائیں &New نیا + Copy the currently selected address to the system clipboard + سلیکٹڈ پتے کو کمپوٹر کی عارضی جگہ رکھیں + + &Copy نقل @@ -22,17 +30,37 @@ کاپی پتہ + Delete the currently selected address from the list + سلیکٹڈ پتے کو مٹائیں + + + Export the data in the current tab to a file + موجودہ ڈیٹا کو فائیل میں محفوظ کریں + + &Export برآمد &Delete - مٹا + مٹائیں + + + Choose the address to send coins to + کوئین وصول کرنے والے کا پتہ + + + Choose the address to receive coins with + کوئین بھیجنے والے کا پتہ C&hoose چننا + + Sending addresses + جس پتے پر بھیجنے ہیں + AddressTableModel @@ -315,6 +343,10 @@ &Export برآمد + + Export the data in the current tab to a file + موجودہ ڈیٹا کو فائیل میں محفوظ کریں + bitcoin-core diff --git a/src/qt/locale/bitcoin_uz@Cyrl.ts b/src/qt/locale/bitcoin_uz@Cyrl.ts index 54592fe9021..1013db678c2 100644 --- a/src/qt/locale/bitcoin_uz@Cyrl.ts +++ b/src/qt/locale/bitcoin_uz@Cyrl.ts @@ -2,6 +2,10 @@ AddressBookPage + Right-click to edit address or label + Манзил ёки ёрлиқни таҳрирлаш учун икки марта босинг + + Create a new address Янги манзил яратинг diff --git a/src/qt/locale/bitcoin_vi.ts b/src/qt/locale/bitcoin_vi.ts index 56962bc5ada..2afda0d8fbf 100644 --- a/src/qt/locale/bitcoin_vi.ts +++ b/src/qt/locale/bitcoin_vi.ts @@ -6,10 +6,22 @@ Tạo một địa chỉ mới + &New + Tạo mới + + Copy the currently selected address to the system clipboard Sao chép các địa chỉ đã được chọn vào bộ nhớ tạm thời của hệ thống + &Copy + Sao chép + + + &Copy Address + Sao chép địa chỉ + + &Delete &Xóa From 1cea6b0dee0b0f10d5f41433e27c70213a4c531f Mon Sep 17 00:00:00 2001 From: Gregory Maxwell Date: Tue, 6 Oct 2015 03:19:12 +0000 Subject: [PATCH 160/201] Test LowS in standardness, removes nuisance malleability vector. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This adds SCRIPT_VERIFY_LOW_S to STANDARD_SCRIPT_VERIFY_FLAGS which will make the node require the canonical 'low-s' encoding for ECDSA signatures when relaying or mining. Consensus behavior is unchanged. The rational is explained in a81cd96805ce6b65cca3a40ebbd3b2eb428abb7b: Absent this kind of test ECDSA is not a strong signature as given a valid signature {r, s} both that value and {r, -s mod n} are valid. These two encodings have different hashes allowing third parties a vector to change users txids. These attacks are avoided by picking a particular form as canonical and rejecting the other form(s); in the of the LOW_S rule, the smaller of the two possible S values is used. If widely deployed this change would eliminate the last remaining known vector for nuisance malleability on boring SIGHASH_ALL p2pkh transactions. On the down-side it will block most transactions made by sufficiently out of date software. Unlike the other avenues to change txids on boring transactions this one was randomly violated by all deployed bitcoin software prior to its discovery. So, while other malleability vectors where made non-standard as soon as they were discovered, this one has remained permitted. Even BIP62 did not propose applying this rule to old version transactions, but conforming implementations have become much more common since BIP62 was initially written. Bitcoin Core has produced compatible signatures since a28fb70e in September 2013, but this didn't make it into a release until 0.9 in March 2014; Bitcoinj has done so for a similar span of time. Bitcoinjs and electrum have been more recently updated. This does not replace the need for BIP62 or similar, as miners can still cooperate to break transactions. Nor does it replace the need for wallet software to handle malleability sanely[1]. This only eliminates the cheap and irritating DOS attack. [1] On the Malleability of Bitcoin Transactions Marcin Andrychowicz, Stefan Dziembowski, Daniel Malinowski, Łukasz Mazurek http://fc15.ifca.ai/preproceedings/bitcoin/paper_9.pdf Conflicts: src/policy/policy.h Rebased-From: b196b685c9089b74fd4ff3d9a28ea847ab36179b Github-Pull: #6769 --- src/script/standard.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/script/standard.h b/src/script/standard.h index 3fea6b9ab9d..7079574b8c2 100644 --- a/src/script/standard.h +++ b/src/script/standard.h @@ -49,7 +49,8 @@ static const unsigned int STANDARD_SCRIPT_VERIFY_FLAGS = MANDATORY_SCRIPT_VERIFY SCRIPT_VERIFY_STRICTENC | SCRIPT_VERIFY_MINIMALDATA | SCRIPT_VERIFY_NULLDUMMY | - SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_NOPS; + SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_NOPS | + SCRIPT_VERIFY_LOW_S; /** For convenience, standard but not mandatory verify flags. */ static const unsigned int STANDARD_NOT_MANDATORY_VERIFY_FLAGS = STANDARD_SCRIPT_VERIFY_FLAGS & ~MANDATORY_SCRIPT_VERIFY_FLAGS; From 689746841afd0f2076a7d93d30974c2f7d29cd83 Mon Sep 17 00:00:00 2001 From: Peter Todd Date: Mon, 29 Sep 2014 01:00:01 -0400 Subject: [PATCH 161/201] Make CScriptNum() take nMaxNumSize as an argument While the existing numeric opcodes are all limited to 4-byte bignum arguments, new opcodes will need different limits. Rebased-From: 99088d60d8a7747c6d1a7fd5d8cd388be1b3e138 --- src/script/script.h | 7 ++++--- src/test/scriptnum_tests.cpp | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/script/script.h b/src/script/script.h index 9c22cb908cf..e3af4a6fd9d 100644 --- a/src/script/script.h +++ b/src/script/script.h @@ -194,7 +194,10 @@ class CScriptNum m_value = n; } - explicit CScriptNum(const std::vector& vch, bool fRequireMinimal) + static const size_t nDefaultMaxNumSize = 4; + + explicit CScriptNum(const std::vector& vch, bool fRequireMinimal, + const size_t nMaxNumSize = nDefaultMaxNumSize) { if (vch.size() > nMaxNumSize) { throw scriptnum_error("script number overflow"); @@ -317,8 +320,6 @@ class CScriptNum return result; } - static const size_t nMaxNumSize = 4; - private: static int64_t set_vch(const std::vector& vch) { diff --git a/src/test/scriptnum_tests.cpp b/src/test/scriptnum_tests.cpp index 5621e127293..2f88b067666 100644 --- a/src/test/scriptnum_tests.cpp +++ b/src/test/scriptnum_tests.cpp @@ -142,7 +142,7 @@ static void RunCreate(const int64_t& num) { CheckCreateInt(num); CScriptNum scriptnum(num); - if (scriptnum.getvch().size() <= CScriptNum::nMaxNumSize) + if (scriptnum.getvch().size() <= CScriptNum::nDefaultMaxNumSize) CheckCreateVch(num); else { From 750d54f9510d784c2a502089754241986fb1338a Mon Sep 17 00:00:00 2001 From: Peter Todd Date: Mon, 29 Sep 2014 01:02:59 -0400 Subject: [PATCH 162/201] Move LOCKTIME_THRESHOLD to src/script/script.h Will now be needed by CHECKLOCKTIMEVERIFY code. Rebased-From: 48e9c57cf06352f890eac4285ae022d8746cf3fd --- src/main.h | 2 -- src/script/script.h | 4 ++++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main.h b/src/main.h index 9a875a0750f..52cc4f38bf3 100644 --- a/src/main.h +++ b/src/main.h @@ -74,8 +74,6 @@ static const unsigned int BLOCKFILE_CHUNK_SIZE = 0x1000000; // 16 MiB static const unsigned int UNDOFILE_CHUNK_SIZE = 0x100000; // 1 MiB /** Coinbase transaction outputs can only be spent after this number of new blocks (network rule) */ static const int COINBASE_MATURITY = 100; -/** Threshold for nLockTime: below this value it is interpreted as block number, otherwise as UNIX timestamp. */ -static const unsigned int LOCKTIME_THRESHOLD = 500000000; // Tue Nov 5 00:53:20 1985 UTC /** Maximum number of script-checking threads allowed */ static const int MAX_SCRIPTCHECK_THREADS = 16; /** -par default (number of script-checking threads, 0 = auto) */ diff --git a/src/script/script.h b/src/script/script.h index e3af4a6fd9d..6433d1a766a 100644 --- a/src/script/script.h +++ b/src/script/script.h @@ -17,6 +17,10 @@ static const unsigned int MAX_SCRIPT_ELEMENT_SIZE = 520; // bytes +// Threshold for nLockTime: below this value it is interpreted as block number, +// otherwise as UNIX timestamp. +static const unsigned int LOCKTIME_THRESHOLD = 500000000; // Tue Nov 5 00:53:20 1985 UTC + template std::vector ToByteVector(const T& in) { From 6d0132520c6944a2f9f0d571e88d7fd57f805c38 Mon Sep 17 00:00:00 2001 From: Peter Todd Date: Mon, 29 Sep 2014 03:44:25 -0400 Subject: [PATCH 163/201] Replace NOP2 with CHECKLOCKTIMEVERIFY (BIP65) CHECKLOCKTIMEVERIFY -> Fails if tx.nLockTime < nLockTime, allowing the funds in a txout to be locked until some block height or block time in the future is reached. Only the logic and unittests are implemented; this commit does not have any actual soft-fork logic in it. Thanks to Pieter Wuille for rebase. Credit goes to Gregory Maxwell for the suggestion of comparing the argument against the transaction nLockTime rather than the current time/blockheight directly. Rebased-From: bc60b2b4b401f0adff5b8b9678903ff8feb5867b --- src/script/interpreter.cpp | 83 +++++++++++++++++++++++++++++++++++++++++- src/script/interpreter.h | 12 +++++- src/script/script.h | 1 + src/script/script_error.cpp | 4 ++ src/script/script_error.h | 4 ++ src/test/data/tx_invalid.json | 66 +++++++++++++++++++++++++++++++++ src/test/data/tx_valid.json | 42 +++++++++++++++++++++ src/test/transaction_tests.cpp | 3 +- 8 files changed, 211 insertions(+), 4 deletions(-) diff --git a/src/script/interpreter.cpp b/src/script/interpreter.cpp index 555a16a2434..2150d014a32 100644 --- a/src/script/interpreter.cpp +++ b/src/script/interpreter.cpp @@ -335,9 +335,51 @@ bool EvalScript(vector >& stack, const CScript& script, un // Control // case OP_NOP: - break; + break; + + case OP_CHECKLOCKTIMEVERIFY: + { + if (!(flags & SCRIPT_VERIFY_CHECKLOCKTIMEVERIFY)) { + // not enabled; treat as a NOP2 + if (flags & SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_NOPS) { + return set_error(serror, SCRIPT_ERR_DISCOURAGE_UPGRADABLE_NOPS); + } + break; + } + + if (stack.size() < 1) + return set_error(serror, SCRIPT_ERR_INVALID_STACK_OPERATION); + + // Note that elsewhere numeric opcodes are limited to + // operands in the range -2**31+1 to 2**31-1, however it is + // legal for opcodes to produce results exceeding that + // range. This limitation is implemented by CScriptNum's + // default 4-byte limit. + // + // If we kept to that limit we'd have a year 2038 problem, + // even though the nLockTime field in transactions + // themselves is uint32 which only becomes meaningless + // after the year 2106. + // + // Thus as a special case we tell CScriptNum to accept up + // to 5-byte bignums, which are good until 2**39-1, well + // beyond the 2**32-1 limit of the nLockTime field itself. + const CScriptNum nLockTime(stacktop(-1), fRequireMinimal, 5); + + // In the rare event that the argument may be < 0 due to + // some arithmetic being done first, you can always use + // 0 MAX CHECKLOCKTIMEVERIFY. + if (nLockTime < 0) + return set_error(serror, SCRIPT_ERR_NEGATIVE_LOCKTIME); + + // Actually compare the specified lock time with the transaction. + if (!checker.CheckLockTime(nLockTime)) + return set_error(serror, SCRIPT_ERR_UNSATISFIED_LOCKTIME); + + break; + } - case OP_NOP1: case OP_NOP2: case OP_NOP3: case OP_NOP4: case OP_NOP5: + case OP_NOP1: case OP_NOP3: case OP_NOP4: case OP_NOP5: case OP_NOP6: case OP_NOP7: case OP_NOP8: case OP_NOP9: case OP_NOP10: { if (flags & SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_NOPS) @@ -1083,6 +1125,43 @@ bool TransactionSignatureChecker::CheckSig(const vector& vchSigIn return true; } +bool TransactionSignatureChecker::CheckLockTime(const CScriptNum& nLockTime) const +{ + // There are two times of nLockTime: lock-by-blockheight + // and lock-by-blocktime, distinguished by whether + // nLockTime < LOCKTIME_THRESHOLD. + // + // We want to compare apples to apples, so fail the script + // unless the type of nLockTime being tested is the same as + // the nLockTime in the transaction. + if (!( + (txTo->nLockTime < LOCKTIME_THRESHOLD && nLockTime < LOCKTIME_THRESHOLD) || + (txTo->nLockTime >= LOCKTIME_THRESHOLD && nLockTime >= LOCKTIME_THRESHOLD) + )) + return false; + + // Now that we know we're comparing apples-to-apples, the + // comparison is a simple numeric one. + if (nLockTime > (int64_t)txTo->nLockTime) + return false; + + // Finally the nLockTime feature can be disabled and thus + // CHECKLOCKTIMEVERIFY bypassed if every txin has been + // finalized by setting nSequence to maxint. The + // transaction would be allowed into the blockchain, making + // the opcode ineffective. + // + // Testing if this vin is not final is sufficient to + // prevent this condition. Alternatively we could test all + // inputs, but testing just this input minimizes the data + // required to prove correct CHECKLOCKTIMEVERIFY execution. + if (txTo->vin[nIn].IsFinal()) + return false; + + return true; +} + + bool VerifyScript(const CScript& scriptSig, const CScript& scriptPubKey, unsigned int flags, const BaseSignatureChecker& checker, ScriptError* serror) { set_error(serror, SCRIPT_ERR_UNKNOWN_ERROR); diff --git a/src/script/interpreter.h b/src/script/interpreter.h index 83d44a95895..9f76d69a466 100644 --- a/src/script/interpreter.h +++ b/src/script/interpreter.h @@ -68,8 +68,12 @@ enum // discouraged NOPs fails the script. This verification flag will never be // a mandatory flag applied to scripts in a block. NOPs that are not // executed, e.g. within an unexecuted IF ENDIF block, are *not* rejected. - SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_NOPS = (1U << 7) + SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_NOPS = (1U << 7), + // Verify CHECKLOCKTIMEVERIFY + // + // See BIP65 for details. + SCRIPT_VERIFY_CHECKLOCKTIMEVERIFY = (1U << 9), }; uint256 SignatureHash(const CScript &scriptCode, const CTransaction& txTo, unsigned int nIn, int nHashType); @@ -82,6 +86,11 @@ class BaseSignatureChecker return false; } + virtual bool CheckLockTime(const CScriptNum& nLockTime) const + { + return false; + } + virtual ~BaseSignatureChecker() {} }; @@ -97,6 +106,7 @@ class TransactionSignatureChecker : public BaseSignatureChecker public: TransactionSignatureChecker(const CTransaction* txToIn, unsigned int nInIn) : txTo(txToIn), nIn(nInIn) {} bool CheckSig(const std::vector& scriptSig, const std::vector& vchPubKey, const CScript& scriptCode) const; + bool CheckLockTime(const CScriptNum& nLockTime) const; }; class MutableTransactionSignatureChecker : public TransactionSignatureChecker diff --git a/src/script/script.h b/src/script/script.h index 6433d1a766a..54d98a07860 100644 --- a/src/script/script.h +++ b/src/script/script.h @@ -153,6 +153,7 @@ enum opcodetype // expansion OP_NOP1 = 0xb0, OP_NOP2 = 0xb1, + OP_CHECKLOCKTIMEVERIFY = OP_NOP2, OP_NOP3 = 0xb2, OP_NOP4 = 0xb3, OP_NOP5 = 0xb4, diff --git a/src/script/script_error.cpp b/src/script/script_error.cpp index 5d24ed98ba8..788d7ff4689 100644 --- a/src/script/script_error.cpp +++ b/src/script/script_error.cpp @@ -47,6 +47,10 @@ const char* ScriptErrorString(const ScriptError serror) return "OP_RETURN was encountered"; case SCRIPT_ERR_UNBALANCED_CONDITIONAL: return "Invalid OP_IF construction"; + case SCRIPT_ERR_NEGATIVE_LOCKTIME: + return "Negative locktime"; + case SCRIPT_ERR_UNSATISFIED_LOCKTIME: + return "Locktime requirement not satisfied"; case SCRIPT_ERR_SIG_HASHTYPE: return "Signature hash type missing or not understood"; case SCRIPT_ERR_SIG_DER: diff --git a/src/script/script_error.h b/src/script/script_error.h index 091524f35cb..7b4c40edaac 100644 --- a/src/script/script_error.h +++ b/src/script/script_error.h @@ -35,6 +35,10 @@ typedef enum ScriptError_t SCRIPT_ERR_INVALID_ALTSTACK_OPERATION, SCRIPT_ERR_UNBALANCED_CONDITIONAL, + /* OP_CHECKLOCKTIMEVERIFY */ + SCRIPT_ERR_NEGATIVE_LOCKTIME, + SCRIPT_ERR_UNSATISFIED_LOCKTIME, + /* BIP62 */ SCRIPT_ERR_SIG_HASHTYPE, SCRIPT_ERR_SIG_DER, diff --git a/src/test/data/tx_invalid.json b/src/test/data/tx_invalid.json index 638a705f9f3..a8882430e29 100644 --- a/src/test/data/tx_invalid.json +++ b/src/test/data/tx_invalid.json @@ -103,5 +103,71 @@ [[["ad503f72c18df5801ee64d76090afe4c607fb2b822e9b7b63c5826c50e22fc3b", 0, "0x21 0x027c3a97665bf283a102a587a62a30a0c102d4d3b141015e2cae6f64e2543113e5 CHECKSIG NOT"]], "01000000013bfc220ec526583cb6b7e922b8b27f604cfe0a09764de61e80f58dc1723f50ad0000000000ffffffff0101000000000000002321027c3a97665bf283a102a587a62a30a0c102d4d3b141015e2cae6f64e2543113e5ac00000000", "P2SH"], + +["CHECKLOCKTIMEVERIFY tests"], + +["By-height locks, with argument just beyond tx nLockTime"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "1 NOP2 1"]], +"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "499999999 NOP2 1"]], +"0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000fe64cd1d", "P2SH,CHECKLOCKTIMEVERIFY"], + +["By-time locks, with argument just beyond tx nLockTime (but within numerical boundries)"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "500000001 NOP2 1"]], +"01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000065cd1d", "P2SH,CHECKLOCKTIMEVERIFY"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "4294967295 NOP2 1"]], +"0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000feffffff", "P2SH,CHECKLOCKTIMEVERIFY"], + +["Argument missing"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "NOP2 1"]], +"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"], + +["Argument negative with by-blockheight nLockTime=0"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "-1 NOP2 1"]], +"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"], + +["Argument negative with by-blocktime nLockTime=500,000,000"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "-1 NOP2 1"]], +"01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000065cd1d", "P2SH,CHECKLOCKTIMEVERIFY"], + +["Input locked"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0 NOP2 1"]], +"010000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff0100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"], + +["Another input being unlocked isn't sufficient; the CHECKLOCKTIMEVERIFY-using input must be unlocked"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0 NOP2 1"] , + ["0000000000000000000000000000000000000000000000000000000000000200", 1, "1"]], +"010000000200010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00020000000000000000000000000000000000000000000000000000000000000100000000000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"], + +["Argument/tx height/time mismatch, both versions"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0 NOP2 1"]], +"01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000065cd1d", "P2SH,CHECKLOCKTIMEVERIFY"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "499999999 NOP2 1"]], +"01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000065cd1d", "P2SH,CHECKLOCKTIMEVERIFY"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "500000000 NOP2 1"]], +"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "500000000 NOP2 1"]], +"0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ff64cd1d", "P2SH,CHECKLOCKTIMEVERIFY"], + +["Argument 2^32 with nLockTime=2^32-1"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "4294967296 NOP2 1"]], +"0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ffffffff", "P2SH,CHECKLOCKTIMEVERIFY"], + +["Same, but with nLockTime=2^31-1"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "2147483648 NOP2 1"]], +"0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ffffff7f", "P2SH,CHECKLOCKTIMEVERIFY"], + +["6 byte non-minimally-encoded arguments are invalid even in their contents are valid"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0x06 0x000000000000 NOP2 1"]], +"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"], + +["Failure due to failing CHECKLOCKTIMEVERIFY in scriptSig"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "1"]], +"01000000010001000000000000000000000000000000000000000000000000000000000000000000000251b1000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"], + +["Failure due to failing CHECKLOCKTIMEVERIFY in redeemScript"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "HASH160 0x14 0xc5b93064159b3b2d6ab506a41b1f50463771b988 EQUAL"]], +"0100000001000100000000000000000000000000000000000000000000000000000000000000000000030251b1000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"], + ["Make diffs cleaner by leaving a comment here without comma at the end"] ] diff --git a/src/test/data/tx_valid.json b/src/test/data/tx_valid.json index aa8e5ca6c35..ecbce93601b 100644 --- a/src/test/data/tx_valid.json +++ b/src/test/data/tx_valid.json @@ -178,5 +178,47 @@ "0100000002dbb33bdf185b17f758af243c5d3c6e164cc873f6bb9f40c0677d6e0f8ee5afce000000006b4830450221009627444320dc5ef8d7f68f35010b4c050a6ed0d96b67a84db99fda9c9de58b1e02203e4b4aaa019e012e65d69b487fdf8719df72f488fa91506a80c49a33929f1fd50121022b78b756e2258af13779c1a1f37ea6800259716ca4b7f0b87610e0bf3ab52a01ffffffffdbb33bdf185b17f758af243c5d3c6e164cc873f6bb9f40c0677d6e0f8ee5afce010000009300483045022015bd0139bcccf990a6af6ec5c1c52ed8222e03a0d51c334df139968525d2fcd20221009f9efe325476eb64c3958e4713e9eefe49bf1d820ed58d2112721b134e2a1a5303483045022015bd0139bcccf990a6af6ec5c1c52ed8222e03a0d51c334df139968525d2fcd20221009f9efe325476eb64c3958e4713e9eefe49bf1d820ed58d2112721b134e2a1a5303ffffffff01a0860100000000001976a9149bc0bbdd3024da4d0c38ed1aecf5c68dd1d3fa1288ac00000000", "P2SH"], +["CHECKLOCKTIMEVERIFY tests"], + +["By-height locks, with argument == 0 and == tx nLockTime"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0 NOP2 1"]], +"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "499999999 NOP2 1"]], +"0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ff64cd1d", "P2SH,CHECKLOCKTIMEVERIFY"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0 NOP2 1"]], +"0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ff64cd1d", "P2SH,CHECKLOCKTIMEVERIFY"], + +["By-time locks, with argument just beyond tx nLockTime (but within numerical boundries)"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "500000000 NOP2 1"]], +"01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000065cd1d", "P2SH,CHECKLOCKTIMEVERIFY"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "4294967295 NOP2 1"]], +"0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ffffffff", "P2SH,CHECKLOCKTIMEVERIFY"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "500000000 NOP2 1"]], +"0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ffffffff", "P2SH,CHECKLOCKTIMEVERIFY"], + +["Any non-maxint nSequence is fine"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0 NOP2 1"]], +"010000000100010000000000000000000000000000000000000000000000000000000000000000000000feffffff0100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"], + +["The argument can be calculated rather than created directly by a PUSHDATA"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "499999999 1ADD NOP2 1"]], +"01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000065cd1d", "P2SH,CHECKLOCKTIMEVERIFY"], + +["Perhaps even by an ADD producing a 5-byte result that is out of bounds for other opcodes"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "2147483647 2147483647 ADD NOP2 1"]], +"0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000feffffff", "P2SH,CHECKLOCKTIMEVERIFY"], + +["5 byte non-minimally-encoded arguments are valid"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0x05 0x0000000000 NOP2 1"]], +"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"], + +["Valid CHECKLOCKTIMEVERIFY in scriptSig"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "1"]], +"01000000010001000000000000000000000000000000000000000000000000000000000000000000000251b1000000000100000000000000000001000000", "P2SH,CHECKLOCKTIMEVERIFY"], + +["Valid CHECKLOCKTIMEVERIFY in redeemScript"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "HASH160 0x14 0xc5b93064159b3b2d6ab506a41b1f50463771b988 EQUAL"]], +"0100000001000100000000000000000000000000000000000000000000000000000000000000000000030251b1000000000100000000000000000001000000", "P2SH,CHECKLOCKTIMEVERIFY"], + ["Make diffs cleaner by leaving a comment here without comma at the end"] ] diff --git a/src/test/transaction_tests.cpp b/src/test/transaction_tests.cpp index 519ce6c3194..abd33017ed6 100644 --- a/src/test/transaction_tests.cpp +++ b/src/test/transaction_tests.cpp @@ -38,7 +38,8 @@ static std::map mapFlagNames = boost::assign::map_list_of (string("SIGPUSHONLY"), (unsigned int)SCRIPT_VERIFY_SIGPUSHONLY) (string("MINIMALDATA"), (unsigned int)SCRIPT_VERIFY_MINIMALDATA) (string("NULLDUMMY"), (unsigned int)SCRIPT_VERIFY_NULLDUMMY) - (string("DISCOURAGE_UPGRADABLE_NOPS"), (unsigned int)SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_NOPS); + (string("DISCOURAGE_UPGRADABLE_NOPS"), (unsigned int)SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_NOPS) + (string("CHECKLOCKTIMEVERIFY"), (unsigned int)SCRIPT_VERIFY_CHECKLOCKTIMEVERIFY); unsigned int ParseScriptFlags(string strFlags) { From 0e01d0f89d4f24eac7c8a21a6779e7956ad13a87 Mon Sep 17 00:00:00 2001 From: Peter Todd Date: Wed, 17 Dec 2014 00:31:44 -0500 Subject: [PATCH 164/201] Enable CHECKLOCKTIMEVERIFY as a standard script verify flag Transactions that fail CLTV verification will be rejected from the mempool, making it easy to test the feature. However blocks containing "invalid" CLTV-using transactions will still be accepted; this is *not* the soft-fork required to actually enable CLTV for production use. Rebased-From: ffd75adce01a78b3461b3ff05bcc2b530a9ce994 --- src/script/standard.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/script/standard.h b/src/script/standard.h index 7079574b8c2..d7f023f2082 100644 --- a/src/script/standard.h +++ b/src/script/standard.h @@ -50,6 +50,7 @@ static const unsigned int STANDARD_SCRIPT_VERIFY_FLAGS = MANDATORY_SCRIPT_VERIFY SCRIPT_VERIFY_MINIMALDATA | SCRIPT_VERIFY_NULLDUMMY | SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_NOPS | + SCRIPT_VERIFY_CHECKLOCKTIMEVERIFY | SCRIPT_VERIFY_LOW_S; /** For convenience, standard but not mandatory verify flags. */ From 41372485ce2ebd172ba067d401f24259b014fad5 Mon Sep 17 00:00:00 2001 From: Peter Todd Date: Sun, 28 Jun 2015 14:30:50 -0400 Subject: [PATCH 165/201] Add CHECKLOCKTIMEVERIFY (BIP65) soft-fork logic Based on the earlier BIP66 soft-fork logic implemented by Pieter Wuille's 5a47811da5158df763aa2fca09ce646ee0c51e7b Rebased-From: 287f54fc90c29301faede8d4ac2ea24a91441917 --- src/main.cpp | 14 +++++++++++++- src/primitives/block.h | 2 +- src/script/bitcoinconsensus.h | 7 ++++--- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index ce87aef68f8..ce3730f16d4 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1698,11 +1698,18 @@ bool ConnectBlock(const CBlock& block, CValidationState& state, CBlockIndex* pin unsigned int flags = fStrictPayToScriptHash ? SCRIPT_VERIFY_P2SH : SCRIPT_VERIFY_NONE; - // Start enforcing the DERSIG (BIP66) rules, for block.nVersion=3 blocks, when 75% of the network has upgraded: + // Start enforcing the DERSIG (BIP66) rules, for block.nVersion=3 blocks, + // when 75% of the network has upgraded: if (block.nVersion >= 3 && CBlockIndex::IsSuperMajority(3, pindex->pprev, Params().EnforceBlockUpgradeMajority())) { flags |= SCRIPT_VERIFY_DERSIG; } + // Start enforcing CHECKLOCKTIMEVERIFY, (BIP65) for block.nVersion=4 + // blocks, when 75% of the network has upgraded: + if (block.nVersion >= 4 && CBlockIndex::IsSuperMajority(4, pindex->pprev, Params().EnforceBlockUpgradeMajority())) { + flags |= SCRIPT_VERIFY_CHECKLOCKTIMEVERIFY; + } + CBlockUndo blockundo; CCheckQueueControl control(fScriptChecks && nScriptCheckThreads ? &scriptcheckqueue : NULL); @@ -2555,6 +2562,11 @@ bool ContextualCheckBlockHeader(const CBlockHeader& block, CValidationState& sta REJECT_OBSOLETE, "bad-version"); } + // Reject block.nVersion=3 blocks when 95% (75% on testnet) of the network has upgraded: + if (block.nVersion < 4 && CBlockIndex::IsSuperMajority(4, pindexPrev, Params().RejectBlockOutdatedMajority())) + return state.Invalid(error("%s : rejected nVersion=3 block", __func__), + REJECT_OBSOLETE, "bad-version"); + return true; } diff --git a/src/primitives/block.h b/src/primitives/block.h index 9c17902e15e..b80d1f8f0ee 100644 --- a/src/primitives/block.h +++ b/src/primitives/block.h @@ -24,7 +24,7 @@ class CBlockHeader { public: // header - static const int32_t CURRENT_VERSION=3; + static const int32_t CURRENT_VERSION=4; int32_t nVersion; uint256 hashPrevBlock; uint256 hashMerkleRoot; diff --git a/src/script/bitcoinconsensus.h b/src/script/bitcoinconsensus.h index c57d8b3cc59..70daae85aed 100644 --- a/src/script/bitcoinconsensus.h +++ b/src/script/bitcoinconsensus.h @@ -44,9 +44,10 @@ typedef enum bitcoinconsensus_error_t /** Script verification flags */ enum { - bitcoinconsensus_SCRIPT_FLAGS_VERIFY_NONE = 0, - bitcoinconsensus_SCRIPT_FLAGS_VERIFY_P2SH = (1U << 0), // evaluate P2SH (BIP16) subscripts - bitcoinconsensus_SCRIPT_FLAGS_VERIFY_DERSIG = (1U << 2), // enforce strict DER (BIP66) compliance + bitcoinconsensus_SCRIPT_FLAGS_VERIFY_NONE = 0, + bitcoinconsensus_SCRIPT_FLAGS_VERIFY_P2SH = (1U << 0), // evaluate P2SH (BIP16) subscripts + bitcoinconsensus_SCRIPT_FLAGS_VERIFY_DERSIG = (1U << 2), // enforce strict DER (BIP66) compliance + bitcoinconsensus_SCRIPT_FLAGS_VERIFY_CHECKLOCKTIMEVERIFY = (1U << 9), // enable CHECKLOCKTIMEVERIFY (BIP65) }; /// Returns 1 if the input nIn of the serialized transaction pointed to by From 6a1343b47010362e48a36a05227e8b3ddb70ebdf Mon Sep 17 00:00:00 2001 From: Peter Todd Date: Sun, 28 Jun 2015 14:42:17 -0400 Subject: [PATCH 166/201] Add RPC tests for the CHECKLOCKTIMEVERIFY (BIP65) soft-fork bip65-cltv.py is based on the earlier BIP66 soft-fork RPC test implemented by Pieter Wuille's 819bcf9b9902319176cdb1d476cacfee9b3727ec bip65-cltv-p2p.py is based on the earlier BIP66 P2P test by Suhas Daftuar's d76412b068d95454732aa3def95decf35251759a Rebased-From: 308257856099e82e91881ba97f741d840184727c --- qa/rpc-tests/bip65-cltv-p2p.py | 175 +++++++++++++++++++++++++++++++++++++++++ qa/rpc-tests/bip65-cltv.py | 89 +++++++++++++++++++++ 2 files changed, 264 insertions(+) create mode 100755 qa/rpc-tests/bip65-cltv-p2p.py create mode 100755 qa/rpc-tests/bip65-cltv.py diff --git a/qa/rpc-tests/bip65-cltv-p2p.py b/qa/rpc-tests/bip65-cltv-p2p.py new file mode 100755 index 00000000000..944d9dd28d3 --- /dev/null +++ b/qa/rpc-tests/bip65-cltv-p2p.py @@ -0,0 +1,175 @@ +#!/usr/bin/env python2 +# +# Distributed under the MIT/X11 software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. +# + +from test_framework.test_framework import ComparisonTestFramework +from test_framework.util import * +from test_framework.mininode import CTransaction, NetworkThread +from test_framework.blocktools import create_coinbase, create_block +from test_framework.comptool import TestInstance, TestManager +from test_framework.script import CScript, OP_1NEGATE, OP_NOP2, OP_DROP +from binascii import hexlify, unhexlify +import cStringIO +import time + +def cltv_invalidate(tx): + '''Modify the signature in vin 0 of the tx to fail CLTV + + Prepends -1 CLTV DROP in the scriptSig itself. + ''' + tx.vin[0].scriptSig = CScript([OP_1NEGATE, OP_NOP2, OP_DROP] + + list(CScript(tx.vin[0].scriptSig))) + +''' +This test is meant to exercise BIP65 (CHECKLOCKTIMEVERIFY) +Connect to a single node. +Mine 2 (version 3) blocks (save the coinbases for later). +Generate 98 more version 3 blocks, verify the node accepts. +Mine 749 version 4 blocks, verify the node accepts. +Check that the new CLTV rules are not enforced on the 750th version 4 block. +Check that the new CLTV rules are enforced on the 751st version 4 block. +Mine 199 new version blocks. +Mine 1 old-version block. +Mine 1 new version block. +Mine 1 old version block, see that the node rejects. +''' + +class BIP65Test(ComparisonTestFramework): + + def __init__(self): + self.num_nodes = 1 + + def setup_network(self): + # Must set the blockversion for this test + self.nodes = start_nodes(1, self.options.tmpdir, + extra_args=[['-debug', '-whitelist=127.0.0.1', '-blockversion=3']], + binary=[self.options.testbinary]) + + def run_test(self): + test = TestManager(self, self.options.tmpdir) + test.add_all_connections(self.nodes) + NetworkThread().start() # Start up network handling in another thread + test.run() + + def create_transaction(self, node, coinbase, to_address, amount): + from_txid = node.getblock(coinbase)['tx'][0] + inputs = [{ "txid" : from_txid, "vout" : 0}] + outputs = { to_address : amount } + rawtx = node.createrawtransaction(inputs, outputs) + signresult = node.signrawtransaction(rawtx) + tx = CTransaction() + f = cStringIO.StringIO(unhexlify(signresult['hex'])) + tx.deserialize(f) + return tx + + def get_tests(self): + + self.coinbase_blocks = self.nodes[0].setgenerate(True, 2) + self.tip = int ("0x" + self.nodes[0].getbestblockhash() + "L", 0) + self.nodeaddress = self.nodes[0].getnewaddress() + self.last_block_time = time.time() + + ''' 98 more version 3 blocks ''' + test_blocks = [] + for i in xrange(98): + block = create_block(self.tip, create_coinbase(2), self.last_block_time + 1) + block.nVersion = 3 + block.rehash() + block.solve() + test_blocks.append([block, True]) + self.last_block_time += 1 + self.tip = block.sha256 + yield TestInstance(test_blocks, sync_every_block=False) + + ''' Mine 749 version 4 blocks ''' + test_blocks = [] + for i in xrange(749): + block = create_block(self.tip, create_coinbase(2), self.last_block_time + 1) + block.nVersion = 4 + block.rehash() + block.solve() + test_blocks.append([block, True]) + self.last_block_time += 1 + self.tip = block.sha256 + yield TestInstance(test_blocks, sync_every_block=False) + + ''' + Check that the new CLTV rules are not enforced in the 750th + version 3 block. + ''' + spendtx = self.create_transaction(self.nodes[0], + self.coinbase_blocks[0], self.nodeaddress, 1.0) + cltv_invalidate(spendtx) + spendtx.rehash() + + block = create_block(self.tip, create_coinbase(2), self.last_block_time + 1) + block.nVersion = 4 + block.vtx.append(spendtx) + block.hashMerkleRoot = block.calc_merkle_root() + block.rehash() + block.solve() + + self.last_block_time += 1 + self.tip = block.sha256 + yield TestInstance([[block, True]]) + + ''' + Check that the new CLTV rules are enforced in the 751st version 4 + block. + ''' + spendtx = self.create_transaction(self.nodes[0], + self.coinbase_blocks[1], self.nodeaddress, 1.0) + cltv_invalidate(spendtx) + spendtx.rehash() + + block = create_block(self.tip, create_coinbase(1), self.last_block_time + 1) + block.nVersion = 4 + block.vtx.append(spendtx) + block.hashMerkleRoot = block.calc_merkle_root() + block.rehash() + block.solve() + self.last_block_time += 1 + yield TestInstance([[block, False]]) + + ''' Mine 199 new version blocks on last valid tip ''' + test_blocks = [] + for i in xrange(199): + block = create_block(self.tip, create_coinbase(1), self.last_block_time + 1) + block.nVersion = 4 + block.rehash() + block.solve() + test_blocks.append([block, True]) + self.last_block_time += 1 + self.tip = block.sha256 + yield TestInstance(test_blocks, sync_every_block=False) + + ''' Mine 1 old version block ''' + block = create_block(self.tip, create_coinbase(1), self.last_block_time + 1) + block.nVersion = 3 + block.rehash() + block.solve() + self.last_block_time += 1 + self.tip = block.sha256 + yield TestInstance([[block, True]]) + + ''' Mine 1 new version block ''' + block = create_block(self.tip, create_coinbase(1), self.last_block_time + 1) + block.nVersion = 4 + block.rehash() + block.solve() + self.last_block_time += 1 + self.tip = block.sha256 + yield TestInstance([[block, True]]) + + ''' Mine 1 old version block, should be invalid ''' + block = create_block(self.tip, create_coinbase(1), self.last_block_time + 1) + block.nVersion = 3 + block.rehash() + block.solve() + self.last_block_time += 1 + yield TestInstance([[block, False]]) + +if __name__ == '__main__': + BIP65Test().main() diff --git a/qa/rpc-tests/bip65-cltv.py b/qa/rpc-tests/bip65-cltv.py new file mode 100755 index 00000000000..e009c1c9869 --- /dev/null +++ b/qa/rpc-tests/bip65-cltv.py @@ -0,0 +1,89 @@ +#!/usr/bin/env python2 +# Copyright (c) 2015 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 the CHECKLOCKTIMEVERIFY (BIP65) soft-fork logic +# + +from test_framework.test_framework import BitcoinTestFramework +from test_framework.util import * +import os +import shutil + +class BIP65Test(BitcoinTestFramework): + + def setup_network(self): + self.nodes = [] + self.nodes.append(start_node(0, self.options.tmpdir, [])) + self.nodes.append(start_node(1, self.options.tmpdir, ["-blockversion=3"])) + self.nodes.append(start_node(2, self.options.tmpdir, ["-blockversion=4"])) + connect_nodes(self.nodes[1], 0) + connect_nodes(self.nodes[2], 0) + self.is_network_split = False + self.sync_all() + + def run_test(self): + cnt = self.nodes[0].getblockcount() + + # Mine some old-version blocks + self.nodes[1].setgenerate(True, 100) + self.sync_all() + if (self.nodes[0].getblockcount() != cnt + 100): + raise AssertionError("Failed to mine 100 version=3 blocks") + + # Mine 750 new-version blocks + for i in xrange(15): + self.nodes[2].setgenerate(True, 50) + self.sync_all() + if (self.nodes[0].getblockcount() != cnt + 850): + raise AssertionError("Failed to mine 750 version=4 blocks") + + # TODO: check that new CHECKLOCKTIMEVERIFY rules are not enforced + + # Mine 1 new-version block + self.nodes[2].setgenerate(True, 1) + self.sync_all() + if (self.nodes[0].getblockcount() != cnt + 851): + raise AssertionFailure("Failed to mine a version=4 blocks") + + # TODO: check that new CHECKLOCKTIMEVERIFY rules are enforced + + # Mine 198 new-version blocks + for i in xrange(2): + self.nodes[2].setgenerate(True, 99) + self.sync_all() + if (self.nodes[0].getblockcount() != cnt + 1049): + raise AssertionError("Failed to mine 198 version=4 blocks") + + # Mine 1 old-version block + self.nodes[1].setgenerate(True, 1) + self.sync_all() + if (self.nodes[0].getblockcount() != cnt + 1050): + raise AssertionError("Failed to mine a version=3 block after 949 version=4 blocks") + + # Mine 1 new-version blocks + self.nodes[2].setgenerate(True, 1) + self.sync_all() + if (self.nodes[0].getblockcount() != cnt + 1051): + raise AssertionError("Failed to mine a version=4 block") + + # Mine 1 old-version blocks + try: + self.nodes[1].setgenerate(True, 1) + raise AssertionError("Succeeded to mine a version=3 block after 950 version=4 blocks") + except JSONRPCException: + pass + self.sync_all() + if (self.nodes[0].getblockcount() != cnt + 1051): + raise AssertionError("Accepted a version=3 block after 950 version=4 blocks") + + # Mine 1 new-version blocks + self.nodes[2].setgenerate(True, 1) + self.sync_all() + if (self.nodes[0].getblockcount() != cnt + 1052): + raise AssertionError("Failed to mine a version=4 block") + +if __name__ == '__main__': + BIP65Test().main() From 5dc72f8bb0bf5447227aaf5da5fc6e0969e96bdb Mon Sep 17 00:00:00 2001 From: Esteban Ordano Date: Thu, 2 Jul 2015 18:38:34 -0700 Subject: [PATCH 167/201] CLTV: Add more tests to improve coverage Four cases included: * The CLTV operand type mismatches the tx locktime. In the script it is 1 (interpreted as block height), but in the tx is 500000000 (interpreted as date) * The stack is empty when executing OP_CLTV * The tx is final by having only one input with MAX_INT sequence number * The operand for CLTV is negative (after OP_0 OP_1 OP_SUB) Rebased-From: cb54d17355864fa08826d6511a0d7692b21ef2c9 --- src/test/data/tx_invalid.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/test/data/tx_invalid.json b/src/test/data/tx_invalid.json index a8882430e29..a197e301cb4 100644 --- a/src/test/data/tx_invalid.json +++ b/src/test/data/tx_invalid.json @@ -121,6 +121,8 @@ ["Argument missing"], [[["0000000000000000000000000000000000000000000000000000000000000100", 0, "NOP2 1"]], "010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "1"]], +"010000000100010000000000000000000000000000000000000000000000000000000000000000000001b1010000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"], ["Argument negative with by-blockheight nLockTime=0"], [[["0000000000000000000000000000000000000000000000000000000000000100", 0, "-1 NOP2 1"]], @@ -129,10 +131,14 @@ ["Argument negative with by-blocktime nLockTime=500,000,000"], [[["0000000000000000000000000000000000000000000000000000000000000100", 0, "-1 NOP2 1"]], "01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000065cd1d", "P2SH,CHECKLOCKTIMEVERIFY"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "1"]], +"010000000100010000000000000000000000000000000000000000000000000000000000000000000004005194b1010000000100000000000000000002000000", "P2SH,CHECKLOCKTIMEVERIFY"], ["Input locked"], [[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0 NOP2 1"]], "010000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff0100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0"]], +"01000000010001000000000000000000000000000000000000000000000000000000000000000000000251b1ffffffff0100000000000000000002000000", "P2SH,CHECKLOCKTIMEVERIFY"], ["Another input being unlocked isn't sufficient; the CHECKLOCKTIMEVERIFY-using input must be unlocked"], [[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0 NOP2 1"] , @@ -142,6 +148,8 @@ ["Argument/tx height/time mismatch, both versions"], [[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0 NOP2 1"]], "01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000065cd1d", "P2SH,CHECKLOCKTIMEVERIFY"], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0"]], +"01000000010001000000000000000000000000000000000000000000000000000000000000000000000251b100000000010000000000000000000065cd1d", "P2SH,CHECKLOCKTIMEVERIFY"], [[["0000000000000000000000000000000000000000000000000000000000000100", 0, "499999999 NOP2 1"]], "01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000065cd1d", "P2SH,CHECKLOCKTIMEVERIFY"], [[["0000000000000000000000000000000000000000000000000000000000000100", 0, "500000000 NOP2 1"]], From 093d7b5895b7dddd98d929fc3851265970b995b7 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Fri, 9 Oct 2015 13:16:44 +0200 Subject: [PATCH 168/201] Update miniupnpc to 1.9.20151008 This version of miniupnpc fixes a buffer overflow in the XML (ugh) parser during initial network discovery. http://talosintel.com/reports/TALOS-2015-0035/ The commit fixing the vulnerability is: https://github.com/miniupnp/miniupnp/commit/79cca974a4c2ab1199786732a67ff6d898051b78 Reported by timothy on IRC. Github-Pull: #6789 Rebased-From: 0cca0248f030ea32bd8de778b5a2782e0d191978 --- depends/packages/miniupnpc.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/depends/packages/miniupnpc.mk b/depends/packages/miniupnpc.mk index 00101f1b91a..77bae10c793 100644 --- a/depends/packages/miniupnpc.mk +++ b/depends/packages/miniupnpc.mk @@ -1,8 +1,8 @@ package=miniupnpc -$(package)_version=1.9.20140701 +$(package)_version=1.9.20151008 $(package)_download_path=http://miniupnp.free.fr/files $(package)_file_name=$(package)-$($(package)_version).tar.gz -$(package)_sha256_hash=26f3985bad7768b8483b793448ae49414cdc4451d0ec83e7c1944367e15f9f07 +$(package)_sha256_hash=e444ac3b587ce82709c4d0cfca1fe71f44f9fc433e9f946b12b9e1bfe667a633 define $(package)_set_vars $(package)_build_opts=CC="$($(package)_cc)" From 1bf6ac62abc2faad8af76aebfa0887c073e2c9b4 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Fri, 9 Oct 2015 15:25:50 +0200 Subject: [PATCH 169/201] doc: Update release notes for 0.10.3 --- doc/release-notes.md | 95 +++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 76 insertions(+), 19 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index 192ed69d299..c9294e241bf 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,9 +1,9 @@ -Bitcoin Core version 0.10.2 is now available from: +Bitcoin Core version 0.10.3 is now available from: - + -This is a new minor version release, bringing minor bug fixes and translation -updates. It is recommended to upgrade to this version. +This is a new minor version release, bringing security fixes and translation +updates. It is recommended to upgrade to this version as soon as possible. Please report bugs using the issue tracker at github: @@ -46,41 +46,98 @@ This does not affect wallet forward or backward compatibility. Notable changes =============== -This fixes a serious problem on Windows with data directories that have non-ASCII -characters (https://github.com/bitcoin/bitcoin/issues/6078). +Fix buffer overflow in bundled upnp +------------------------------------ -For other platforms there are no notable changes. +Bundled miniupnpc was updated to 1.9.20151008. This fixes a buffer overflow in +the XML parser during initial network discovery. -For the notable changes in 0.10, refer to the release notes -at https://github.com/bitcoin/bitcoin/blob/v0.10.0/doc/release-notes.md +Details can be found here: http://talosintel.com/reports/TALOS-2015-0035/ -0.10.2 Change log +This applies to the distributed executables only, not when building from source or +using distribution provided packages. + +Test for LowS signatures before relaying +----------------------------------------- + +Make the node require the canonical 'low-s' encoding for ECDSA signatures when +relaying or mining. This removes a nuisance malleability vector. + +Consensus behavior is unchanged. + +If widely deployed this change would eliminate the last remaining known vector +for nuisance malleability on SIGHASH_ALL P2PKH transactions. On the down-side +it will block most transactions made by sufficiently out of date software. + +Unlike the other avenues to change txids on transactions this +one was randomly violated by all deployed bitcoin software prior to +its discovery. So, while other malleability vectors where made +non-standard as soon as they were discovered, this one has remained +permitted. Even BIP62 did not propose applying this rule to +old version transactions, but conforming implementations have become +much more common since BIP62 was initially written. + +Bitcoin Core has produced compatible signatures since a28fb70e in +September 2013, but this didn't make it into a release until 0.9 +in March 2014; Bitcoinj has done so for a similar span of time. +Bitcoinjs and electrum have been more recently updated. + +This does not replace the need for BIP62 or similar, as miners can +still cooperate to break transactions. Nor does it replace the +need for wallet software to handle malleability sanely[1]. This +only eliminates the cheap and irritating DOS attack. + +[1] On the Malleability of Bitcoin Transactions +Marcin Andrychowicz, Stefan Dziembowski, Daniel Malinowski, Łukasz Mazurek +http://fc15.ifca.ai/preproceedings/bitcoin/paper_9.pdf + +0.10.3 Change log ================= Detailed release notes follow. This overview includes changes that affect external behavior, not code moves, refactors or string updates. -Wallet: -- `824c011` fix boost::get usage with boost 1.58 - -Miscellaneous: -- `da65606` Avoid crash on start in TestBlockValidity with gen=1. -- `424ae66` don't imbue boost::filesystem::path with locale "C" on windows (fixes #6078) +- #6186 `e4a7d51` Fix two problems in CSubnet parsing +- #6153 `ebd7d8d` Parameter interaction: disable upnp if -proxy set +- #6203 `ecc96f5` Remove P2SH coinbase flag, no longer interesting +- #6226 `181771b` json: fail read_string if string contains trailing garbage +- #6244 `09334e0` configure: Detect (and reject) LibreSSL +- #6276 `0fd8464` Fix getbalance * 0 +- #6274 `be64204` Add option `-alerts` to opt out of alert system +- #6319 `3f55638` doc: update mailing list address +- #6438 `7e66e9c` openssl: avoid config file load/race +- #6439 `255eced` Updated URL location of netinstall for Debian +- #6412 `0739e6e` Test whether created sockets are select()able +- #6694 `f696ea1` [QT] fix thin space word wrap line brake issue +- #6704 `743cc9e` Backport bugfixes to 0.10 +- #6769 `1cea6b0` Test LowS in standardness, removes nuisance malleability vector. +- #6789 `093d7b5` Update miniupnpc to 1.9.20151008 Credits ======= Thanks to everyone who directly contributed to this release: +- Adam Weiss +- Alex Morcos +- Casey Rodarmor - Cory Fields +- fanquake - Gregory Maxwell - Jonas Schnelli +- J Ross Nicoll +- Luke Dashjr +- Pavel Vasin +- Pieter Wuille +- randy-waterhouse +- ฿tcDrak +- Tom Harding +- Veres Lajos - Wladimir J. van der Laan And all those who contributed additional code review and/or security research: -- dexX7 -- Pieter Wuille -- vayvanne +- timothy on IRC for reporting the issue +- Vulnerability in miniupnp discovered by Aleksandar Nikolic of Cisco Talos As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). From 44d6bc85285f2cbbee0a7b94924975d3e9d84875 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Fri, 9 Oct 2015 15:29:02 +0200 Subject: [PATCH 170/201] qt: Translations update before 0.10.3 --- src/qt/locale/bitcoin_ar.ts | 4 -- src/qt/locale/bitcoin_be_BY.ts | 4 -- src/qt/locale/bitcoin_bg.ts | 4 -- src/qt/locale/bitcoin_ca.ts | 8 ---- src/qt/locale/bitcoin_ca@valencia.ts | 8 ---- src/qt/locale/bitcoin_ca_ES.ts | 8 ---- src/qt/locale/bitcoin_cs.ts | 8 ---- src/qt/locale/bitcoin_da.ts | 16 ++++--- src/qt/locale/bitcoin_de.ts | 12 +++--- src/qt/locale/bitcoin_el_GR.ts | 12 ++---- src/qt/locale/bitcoin_eo.ts | 4 -- src/qt/locale/bitcoin_es.ts | 16 +++---- src/qt/locale/bitcoin_es_DO.ts | 4 -- src/qt/locale/bitcoin_es_MX.ts | 4 -- src/qt/locale/bitcoin_fa.ts | 4 -- src/qt/locale/bitcoin_fi.ts | 8 ---- src/qt/locale/bitcoin_fr.ts | 8 ---- src/qt/locale/bitcoin_he.ts | 4 -- src/qt/locale/bitcoin_id_ID.ts | 4 -- src/qt/locale/bitcoin_it.ts | 14 +++--- src/qt/locale/bitcoin_ja.ts | 16 ++++--- src/qt/locale/bitcoin_ka.ts | 4 -- src/qt/locale/bitcoin_ko_KR.ts | 4 -- src/qt/locale/bitcoin_lv_LV.ts | 4 -- src/qt/locale/bitcoin_mn.ts | 4 -- src/qt/locale/bitcoin_nb.ts | 16 ++++--- src/qt/locale/bitcoin_nl.ts | 8 ---- src/qt/locale/bitcoin_pl.ts | 12 +++--- src/qt/locale/bitcoin_pt_BR.ts | 8 ---- src/qt/locale/bitcoin_pt_PT.ts | 12 ++---- src/qt/locale/bitcoin_ro_RO.ts | 4 -- src/qt/locale/bitcoin_ru.ts | 84 ++++++++++++++++++++++++++++++++++++ src/qt/locale/bitcoin_sk.ts | 8 ---- src/qt/locale/bitcoin_sl_SI.ts | 8 ---- src/qt/locale/bitcoin_sv.ts | 16 ++++--- src/qt/locale/bitcoin_tr.ts | 8 ---- src/qt/locale/bitcoin_uk.ts | 16 ++++--- src/qt/locale/bitcoin_zh_CN.ts | 16 ++++--- src/qt/locale/bitcoin_zh_TW.ts | 16 ++++--- 39 files changed, 187 insertions(+), 231 deletions(-) diff --git a/src/qt/locale/bitcoin_ar.ts b/src/qt/locale/bitcoin_ar.ts index 116a1eea760..cd499612c75 100644 --- a/src/qt/locale/bitcoin_ar.ts +++ b/src/qt/locale/bitcoin_ar.ts @@ -1153,10 +1153,6 @@ نسخ التعديل - Total Amount %1 (= %2) - مجموع المبلغ %1 (= %2) - - or أو diff --git a/src/qt/locale/bitcoin_be_BY.ts b/src/qt/locale/bitcoin_be_BY.ts index 98f486c53cf..786e0857a19 100644 --- a/src/qt/locale/bitcoin_be_BY.ts +++ b/src/qt/locale/bitcoin_be_BY.ts @@ -1367,10 +1367,6 @@ Address: %4 Памылка адчынення базы звестак блокаў - Error: A fatal internal error occured, see debug.log for details - Памылка: здарылася Фатальная унутраная памылка, глядзі debug.log для падрабязнасцяў - - Error: Disk space is low! Памылка: Замала вольнага месца на дыску! diff --git a/src/qt/locale/bitcoin_bg.ts b/src/qt/locale/bitcoin_bg.ts index 3a21dcafa23..ad9e899eaa2 100644 --- a/src/qt/locale/bitcoin_bg.ts +++ b/src/qt/locale/bitcoin_bg.ts @@ -1753,10 +1753,6 @@ Address: %4 Копирай рестото - Total Amount %1 (= %2) - Пълна сума %1 (= %2) - - or или diff --git a/src/qt/locale/bitcoin_ca.ts b/src/qt/locale/bitcoin_ca.ts index fb8e93ea9f1..3b36e3ca40e 100644 --- a/src/qt/locale/bitcoin_ca.ts +++ b/src/qt/locale/bitcoin_ca.ts @@ -1989,10 +1989,6 @@ Address: %4 Copia el canvi - Total Amount %1 (= %2) - Import total %1 (= %2) - - or o @@ -2931,10 +2927,6 @@ Address: %4 Error en obrir la base de dades de blocs - Error: A fatal internal error occured, see debug.log for details - Error: s'ha produït un error intern fatal. Consulteu debug.log per a més detalls - - Error: Disk space is low! Error: Espai al disc baix! diff --git a/src/qt/locale/bitcoin_ca@valencia.ts b/src/qt/locale/bitcoin_ca@valencia.ts index 9d8ff18ce51..30e86383dfb 100644 --- a/src/qt/locale/bitcoin_ca@valencia.ts +++ b/src/qt/locale/bitcoin_ca@valencia.ts @@ -1949,10 +1949,6 @@ Address: %4 Copia el canvi - Total Amount %1 (= %2) - Import total %1 (= %2) - - or o @@ -2867,10 +2863,6 @@ Address: %4 Error en obrir la base de dades de blocs - Error: A fatal internal error occured, see debug.log for details - Error: s'ha produït un error intern fatal. Consulteu debug.log per a més detalls - - Error: Disk space is low! Error: Espai al disc baix! diff --git a/src/qt/locale/bitcoin_ca_ES.ts b/src/qt/locale/bitcoin_ca_ES.ts index 52d93d59f55..16c7d4484d9 100644 --- a/src/qt/locale/bitcoin_ca_ES.ts +++ b/src/qt/locale/bitcoin_ca_ES.ts @@ -1989,10 +1989,6 @@ Address: %4 Copia el canvi - Total Amount %1 (= %2) - Import total %1 (= %2) - - or o @@ -2931,10 +2927,6 @@ Address: %4 Error en obrir la base de dades de blocs - Error: A fatal internal error occured, see debug.log for details - Error: s'ha produït un error intern fatal. Consulteu debug.log per a més detalls - - Error: Disk space is low! Error: Espai al disc baix! diff --git a/src/qt/locale/bitcoin_cs.ts b/src/qt/locale/bitcoin_cs.ts index b7b184f5f48..2a19de17004 100644 --- a/src/qt/locale/bitcoin_cs.ts +++ b/src/qt/locale/bitcoin_cs.ts @@ -1993,10 +1993,6 @@ Adresa: %4 Kopíruj drobné - Total Amount %1 (= %2) - Celková částka %1 (= %2) - - or nebo @@ -2935,10 +2931,6 @@ Adresa: %4 Chyba při otevírání databáze bloků - Error: A fatal internal error occured, see debug.log for details - Chyba: Stala se fatální vnitřní chyba. detaily viz v debug.log - - Error: Disk space is low! Problém: Na disku je málo místa! diff --git a/src/qt/locale/bitcoin_da.ts b/src/qt/locale/bitcoin_da.ts index a5113d4a552..f22636b7b48 100644 --- a/src/qt/locale/bitcoin_da.ts +++ b/src/qt/locale/bitcoin_da.ts @@ -1989,8 +1989,8 @@ Adresse: %4 Kopiér byttepenge - Total Amount %1 (= %2) - Totalbeløb %1 (= %2) + Total Amount %1<span style='font-size:10pt;font-weight:normal;'><br />(=%2)</span> + Totalbeløb %1<span style='font-size:10pt;font-weight:normal;'><br />(=%2)</span> or @@ -2931,10 +2931,6 @@ Adresse: %4 Åbning af blokdatabase mislykkedes - Error: A fatal internal error occured, see debug.log for details - Fejl: En fatal intern fejl opstod; se debug.log for detaljer - - Error: Disk space is low! Fejl: Mangel på ledig diskplads! @@ -3163,6 +3159,10 @@ for eksempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Fejl under læsning fra database; lukker ned. + Error: A fatal internal error occurred, see debug.log for details + Fejl: En alvorlig intern fejl er opstået. Se debug.log for detaljer + + Error: Unsupported argument -tor found, use -onion. Fejl: Ikke understøttet argument -tor fundet, brug -onion. @@ -3231,6 +3231,10 @@ for eksempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Slør tilfældigt 1 ud af hver <n> netværksbeskeder + Receive and display P2P network alerts (default: %u) + Modtag og vis P2P-netværksadvarsler (standard: %u) + + Send trace/debug info to console instead of debug.log file Send sporings-/fejlsøgningsinformation til konsollen i stedet for debug.log filen diff --git a/src/qt/locale/bitcoin_de.ts b/src/qt/locale/bitcoin_de.ts index fc18a235eb5..f2cb3be9a90 100644 --- a/src/qt/locale/bitcoin_de.ts +++ b/src/qt/locale/bitcoin_de.ts @@ -1992,8 +1992,8 @@ Adresse: %4 Wechselgeld kopieren - Total Amount %1 (= %2) - Gesamtbetrag %1 (= %2) + Total Amount %1<span style='font-size:10pt;font-weight:normal;'><br />(=%2)</span> + Gesamtbetrag %1<span style='font-size:10pt;font-weight:normal;'><br />(=%2)</span> or @@ -2934,10 +2934,6 @@ Adresse: %4 Fehler beim Öffnen der Blockdatenbank - Error: A fatal internal error occured, see debug.log for details - Fehler: Ein schwerer Fehler ist aufgetreten, für Details debug.log ansehen. - - Error: Disk space is low! Fehler: Zu wenig freier Speicherplatz auf dem Datenträger! @@ -3166,6 +3162,10 @@ Beispiel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Fehler beim lesen der Datenbank, Ausführung wird beendet. + Error: A fatal internal error occurred, see debug.log for details + Fehler: Ein schwerer interner Fehler ist aufgetreten, siehe debug.log für Details. + + Error: Unsupported argument -tor found, use -onion. Fehler: Nicht unterstütztes Argument -tor gefunden, bitte -onion verwenden. diff --git a/src/qt/locale/bitcoin_el_GR.ts b/src/qt/locale/bitcoin_el_GR.ts index 69465bde45f..64ce55fe9a8 100644 --- a/src/qt/locale/bitcoin_el_GR.ts +++ b/src/qt/locale/bitcoin_el_GR.ts @@ -1787,6 +1787,10 @@ Address: %4 ανά kilobyte + total at least + συνολικά τουλάχιστον + + Recommended: Προτεινόμενο: @@ -1879,10 +1883,6 @@ Address: %4 Αντιγραφή των ρέστων - Total Amount %1 (= %2) - Ολικό Ποσό %1 (= %2) - - or ή @@ -2737,10 +2737,6 @@ Address: %4 Σφάλμα φορτωσης της βασης δεδομενων των μπλοκ - Error: A fatal internal error occured, see debug.log for details - Σφάλμα: Παρουσιάστηκε ανεπανόρθωτο εσωτερικό σφάλμα, δείτε debug.log για λεπτομέρειες - - Error: Disk space is low! Προειδοποίηση: Χαμηλός χώρος στο δίσκο diff --git a/src/qt/locale/bitcoin_eo.ts b/src/qt/locale/bitcoin_eo.ts index 411bb5614e6..5a6a211cceb 100644 --- a/src/qt/locale/bitcoin_eo.ts +++ b/src/qt/locale/bitcoin_eo.ts @@ -1545,10 +1545,6 @@ Adreso: %4 Kopii restmonon - Total Amount %1 (= %2) - Totala Sumo %1 (= %2) - - or diff --git a/src/qt/locale/bitcoin_es.ts b/src/qt/locale/bitcoin_es.ts index e52bf88a873..c1fa0c636bb 100644 --- a/src/qt/locale/bitcoin_es.ts +++ b/src/qt/locale/bitcoin_es.ts @@ -1989,10 +1989,6 @@ Dirección: %4 Copiar Cambio - Total Amount %1 (= %2) - Cuantía Total %1 (=%2) - - or o @@ -2931,10 +2927,6 @@ Dirección: %4 Error al abrir base de datos de bloques. - Error: A fatal internal error occured, see debug.log for details - Error: un error grave interno ocurrió, sea debug.log para más detalles. - - Error: Disk space is low! Error: ¡Espacio en disco bajo! @@ -3155,6 +3147,10 @@ por ejemplo: alertnotify=echo %% s | correo -s "Alerta Bitcoin" admin@foo.com Error al leer la base de datos, cerrando. + Error: A fatal internal error occurred, see debug.log for details + Un error interno fatal ocurrió, ver debug.log para detalles + + Error: Unsupported argument -tor found, use -onion. Error: Argumento encontrado -tor no soportado, utilice -onion @@ -3223,6 +3219,10 @@ por ejemplo: alertnotify=echo %% s | correo -s "Alerta Bitcoin" admin@foo.com Introducir datos fuzz en 1 de cada <n> mensajes de red al azar + Receive and display P2P network alerts (default: %u) + Recibir y mostrar alertas de la red P2P (default: %u) + + Send trace/debug info to console instead of debug.log file Enviar información de trazas/depuración a la consola en lugar de al archivo debug.log diff --git a/src/qt/locale/bitcoin_es_DO.ts b/src/qt/locale/bitcoin_es_DO.ts index 1c881fcf64d..91be7b297a9 100644 --- a/src/qt/locale/bitcoin_es_DO.ts +++ b/src/qt/locale/bitcoin_es_DO.ts @@ -1513,10 +1513,6 @@ Dirección: %4 Copiar Cambio - Total Amount %1 (= %2) - Cuantía Total %1 (=%2) - - or o diff --git a/src/qt/locale/bitcoin_es_MX.ts b/src/qt/locale/bitcoin_es_MX.ts index 4341bc821f0..6397366a6bf 100644 --- a/src/qt/locale/bitcoin_es_MX.ts +++ b/src/qt/locale/bitcoin_es_MX.ts @@ -709,10 +709,6 @@ copiar cambio - Total Amount %1 (= %2) - Monto total %1(=%2) - - or o diff --git a/src/qt/locale/bitcoin_fa.ts b/src/qt/locale/bitcoin_fa.ts index a8a84bab2bb..201c60dd453 100644 --- a/src/qt/locale/bitcoin_fa.ts +++ b/src/qt/locale/bitcoin_fa.ts @@ -1971,10 +1971,6 @@ Address: %4 خطا در بازگشایی پایگاه داده ی بلوک - Error: A fatal internal error occured, see debug.log for details - خطا: یک خطای داخلی مهلک روی داد، debug.log را برای جزئیات ببینید - - Error: Disk space is low! خطا: فضای دیسک کم است! diff --git a/src/qt/locale/bitcoin_fi.ts b/src/qt/locale/bitcoin_fi.ts index 91e7891da82..f5a68c841a8 100644 --- a/src/qt/locale/bitcoin_fi.ts +++ b/src/qt/locale/bitcoin_fi.ts @@ -1976,10 +1976,6 @@ Osoite: %4 Kopioi vaihtoraha - Total Amount %1 (= %2) - Yhteensä %1 (= %2) - - or tai @@ -2906,10 +2902,6 @@ Osoite: %4 Virhe avattaessa lohkoindeksiä - Error: A fatal internal error occured, see debug.log for details - Virhe: Sisäinen kriittinen virhe kohdattiin, katso debug.log:sta lisätietoja - - Error: Disk space is low! Varoitus: Levytila on vähissä! diff --git a/src/qt/locale/bitcoin_fr.ts b/src/qt/locale/bitcoin_fr.ts index e775f1ba045..2d1644e59aa 100644 --- a/src/qt/locale/bitcoin_fr.ts +++ b/src/qt/locale/bitcoin_fr.ts @@ -1989,10 +1989,6 @@ Adresse : %4 Copier la monnaie - Total Amount %1 (= %2) - Montant total %1 (= %2) - - or ou @@ -2931,10 +2927,6 @@ Adresse : %4 Erreur lors de l'ouverture de la base de données des blocs - Error: A fatal internal error occured, see debug.log for details - Erreur : une erreur interne fatale s'est produite. Voir debug.log pour des détails - - Error: Disk space is low! Erreur : l'espace disque est faible ! diff --git a/src/qt/locale/bitcoin_he.ts b/src/qt/locale/bitcoin_he.ts index 45a664d6e03..4388840a7ab 100644 --- a/src/qt/locale/bitcoin_he.ts +++ b/src/qt/locale/bitcoin_he.ts @@ -1852,10 +1852,6 @@ Address: %4 העתקת עודף - Total Amount %1 (= %2) - הסכום הכולל %1 (= %2) - - or או diff --git a/src/qt/locale/bitcoin_id_ID.ts b/src/qt/locale/bitcoin_id_ID.ts index bdc67a55d10..fda3e303a53 100644 --- a/src/qt/locale/bitcoin_id_ID.ts +++ b/src/qt/locale/bitcoin_id_ID.ts @@ -1573,10 +1573,6 @@ Alamat: %4 Salin uang kembali - Total Amount %1 (= %2) - Jumlah Nilai %1 (= %2) - - or atau diff --git a/src/qt/locale/bitcoin_it.ts b/src/qt/locale/bitcoin_it.ts index 23eec1bf3e8..7c8b6dc0415 100644 --- a/src/qt/locale/bitcoin_it.ts +++ b/src/qt/locale/bitcoin_it.ts @@ -3,7 +3,7 @@ AddressBookPage Right-click to edit address or label - Fare clic con il tasto destro del mouse per modificare l'indirizzo o l'etichetta + Fare click con il tasto destro del mouse per modificare l'indirizzo o l'etichetta Create a new address @@ -1987,10 +1987,6 @@ Per specificare più URL separarli con una barra verticale "|". Copia resto - Total Amount %1 (= %2) - Importo Totale %1 (= %2) - - or o @@ -2929,10 +2925,6 @@ Per specificare più URL separarli con una barra verticale "|". Errore durante l'apertura del database blocchi - Error: A fatal internal error occured, see debug.log for details - Errore: si è verificato un errore interno fatale. Consulta il file debug.log for maggiori dettagli. - - Error: Disk space is low! Errore: la spazio libero sul disco è insufficiente! @@ -3156,6 +3148,10 @@ Si raccomanda inoltre di configurare alertnotify in modo da ricevere notifiche d Errore durante lalettura del database. Arresto in corso. + Error: A fatal internal error occurred, see debug.log for details + Errore: si è presentato un errore interno fatale, consulta il file debug.log per maggiori dettagli + + Error: Unsupported argument -tor found, use -onion. Errore: Rilevato argomento -tor non supportato, utilizzare -onion. diff --git a/src/qt/locale/bitcoin_ja.ts b/src/qt/locale/bitcoin_ja.ts index 99164abab47..e33bfc457fb 100644 --- a/src/qt/locale/bitcoin_ja.ts +++ b/src/qt/locale/bitcoin_ja.ts @@ -1992,8 +1992,8 @@ Address: %4 釣り銭をコピー - Total Amount %1 (= %2) - 総送金額 %1 (= %2) + Total Amount %1<span style='font-size:10pt;font-weight:normal;'><br />(=%2)</span> + 総額 %1<span style='font-size:10pt;font-weight:normal;'><br />(=%2)</span> or @@ -2935,10 +2935,6 @@ Address: %4 ブロック データベースの開始エラー - Error: A fatal internal error occured, see debug.log for details - エラー:致命的な内部エラーが発生しました。詳細はdebug.logを参照してください - - Error: Disk space is low! エラー: ディスク容量不足! @@ -3167,6 +3163,10 @@ rpcpassword=%s データベースの読み込みエラー。シャットダウンします。 + Error: A fatal internal error occurred, see debug.log for details + エラー:致命的な内部エラーが発生しました。詳細はdebug.logを参照してください + + Error: Unsupported argument -tor found, use -onion. エラー: サポートされていない引数 -tor が見つかりました。-onion を使用してください。 @@ -3235,6 +3235,10 @@ rpcpassword=%s <n>個のネットワークメッセージごとにひとつをランダムに改変する + Receive and display P2P network alerts (default: %u) + P2Pネットワークのアラートの受け取りと表示を行う (デフォルト: %u) + + Send trace/debug info to console instead of debug.log file トレース/デバッグ情報を debug.log ファイルの代わりにコンソールへ送る diff --git a/src/qt/locale/bitcoin_ka.ts b/src/qt/locale/bitcoin_ka.ts index 732081efda7..6fd18907b16 100644 --- a/src/qt/locale/bitcoin_ka.ts +++ b/src/qt/locale/bitcoin_ka.ts @@ -1581,10 +1581,6 @@ Address: %4 ხურდის კოპირება - Total Amount %1 (= %2) - ჯამური თანხა %1 (= %2) - - or ან diff --git a/src/qt/locale/bitcoin_ko_KR.ts b/src/qt/locale/bitcoin_ko_KR.ts index b32965e58c6..a3f6ec9ad76 100644 --- a/src/qt/locale/bitcoin_ko_KR.ts +++ b/src/qt/locale/bitcoin_ko_KR.ts @@ -1633,10 +1633,6 @@ Address: %4 우선도 복사 - Total Amount %1 (= %2) - 총 액수 %1(=%2) - - or 또는 diff --git a/src/qt/locale/bitcoin_lv_LV.ts b/src/qt/locale/bitcoin_lv_LV.ts index bd25749ad97..2c6b7b4a22a 100644 --- a/src/qt/locale/bitcoin_lv_LV.ts +++ b/src/qt/locale/bitcoin_lv_LV.ts @@ -1485,10 +1485,6 @@ Adrese: %4 Kopēt atlikumu - Total Amount %1 (= %2) - Kopējā Summa %1 (= %2) - - or vai diff --git a/src/qt/locale/bitcoin_mn.ts b/src/qt/locale/bitcoin_mn.ts index acc23f2b149..b590aad6f1b 100644 --- a/src/qt/locale/bitcoin_mn.ts +++ b/src/qt/locale/bitcoin_mn.ts @@ -692,10 +692,6 @@ Address: %4 Ѳѳрчлѳлтийг санах - Total Amount %1 (= %2) - Нийт дүн %1 (= %2) - - or эсвэл diff --git a/src/qt/locale/bitcoin_nb.ts b/src/qt/locale/bitcoin_nb.ts index eaaf8d7805b..098bbe07f2a 100644 --- a/src/qt/locale/bitcoin_nb.ts +++ b/src/qt/locale/bitcoin_nb.ts @@ -1993,8 +1993,8 @@ Adresse: %4 Kopier veksel - Total Amount %1 (= %2) - Totalt Beløp %1 (= %2) + Total Amount %1<span style='font-size:10pt;font-weight:normal;'><br />(=%2)</span> + Totalt Beløp %1<span style='font-size:10pt;font-weight:normal;'><br />(=%2)</span> or @@ -2935,10 +2935,6 @@ Adresse: %4 Feil under åpning av blokkdatabase - Error: A fatal internal error occured, see debug.log for details - Feil: En fatal intern feil oppstod, se debug.log for detaljer - - Error: Disk space is low! Feil: Lite ledig lagringsplass! @@ -3167,6 +3163,10 @@ for eksempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Feil ved lesing fra database, stenger ned. + Error: A fatal internal error occurred, see debug.log for details + Feil: En fatal intern feil oppstod, se debug.log for detaljer + + Error: Unsupported argument -tor found, use -onion. Feil: Argumentet -tor er ikke støttet, bruk -onion. @@ -3235,6 +3235,10 @@ for eksempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Slumpvis bland 1 av hver <n> nettverksmeldinger + Receive and display P2P network alerts (default: %u) + Motta og vis P2P-nettverksvarsler (standardvalg: %u) + + Send trace/debug info to console instead of debug.log file Send spor-/feilsøkingsinformasjon til konsollen istedenfor filen debug.log diff --git a/src/qt/locale/bitcoin_nl.ts b/src/qt/locale/bitcoin_nl.ts index 9d776e5e12b..9aaf73e5967 100644 --- a/src/qt/locale/bitcoin_nl.ts +++ b/src/qt/locale/bitcoin_nl.ts @@ -1993,10 +1993,6 @@ Adres: %4 Kopieer wijziging - Total Amount %1 (= %2) - Totaal bedrag %1 (= %2) - - or of @@ -2935,10 +2931,6 @@ Adres: %4 Fout bij openen blokkendatabase - Error: A fatal internal error occured, see debug.log for details - Fout: Een fatale interne fout is opgetreden, zie debug.log voor details - - Error: Disk space is low! Fout: Weinig vrije diskruimte! diff --git a/src/qt/locale/bitcoin_pl.ts b/src/qt/locale/bitcoin_pl.ts index 02c48a52d3b..ef48e24e78a 100644 --- a/src/qt/locale/bitcoin_pl.ts +++ b/src/qt/locale/bitcoin_pl.ts @@ -1989,8 +1989,8 @@ Adres: %4 Skopiuj resztę - Total Amount %1 (= %2) - Łączna kwota %1 (= %2) + Total Amount %1<span style='font-size:10pt;font-weight:normal;'><br />(=%2)</span> + Całkowita kwota %1<span style='font-size:10pt;font-weight:normal;'><br />(=%2)</span> or @@ -2923,10 +2923,6 @@ Adres: %4 Błąd otwierania bazy bloków - Error: A fatal internal error occured, see debug.log for details - Błąd: Wystąpił krytyczny błąd wewnętrzny, sprawdź w debug.log - - Error: Disk space is low! Błąd: Mało miejsca na dysku! @@ -3155,6 +3151,10 @@ na przykład: alertnotify=echo %%s | mail -s "Alarm Bitcoin" admin@foo.com Błąd odczytu z bazy danych, wyłączam się. + Error: A fatal internal error occurred, see debug.log for details + Błąd: Wystąpił fatalny błąd wewnętrzny, sprawdź szczegóły w debug.log + + Error: Unsupported argument -tor found, use -onion. Błąd: Znaleziono nieprawidłowy argument -tor, użyj -onion. diff --git a/src/qt/locale/bitcoin_pt_BR.ts b/src/qt/locale/bitcoin_pt_BR.ts index 0095f126abf..3b91cfec27c 100644 --- a/src/qt/locale/bitcoin_pt_BR.ts +++ b/src/qt/locale/bitcoin_pt_BR.ts @@ -1976,10 +1976,6 @@ Endereço: %4 Copia alteração - Total Amount %1 (= %2) - Quantidade Total %1 (= %2) - - or ou @@ -2918,10 +2914,6 @@ Endereço: %4 Erro ao abrir banco de dados de blocos - Error: A fatal internal error occured, see debug.log for details - Erro: Um erro interno fatal ocorreu, ver o debug.log para detalhes - - Error: Disk space is low! Erro: Espaço em disco insuficiente! diff --git a/src/qt/locale/bitcoin_pt_PT.ts b/src/qt/locale/bitcoin_pt_PT.ts index 5fde867b0b2..39e65ca1d17 100644 --- a/src/qt/locale/bitcoin_pt_PT.ts +++ b/src/qt/locale/bitcoin_pt_PT.ts @@ -1989,10 +1989,6 @@ Endereço: %4 Copiar alteração - Total Amount %1 (= %2) - Quantia Total %1 (= %2) - - or ou @@ -2931,10 +2927,6 @@ Endereço: %4 Erro ao abrir a base de dados de blocos - Error: A fatal internal error occured, see debug.log for details - Erro: Um erro fatal interno ocorreu, verificar debug.log para mais informação - - Error: Disk space is low! Erro: Pouco espaço em disco! @@ -3027,6 +3019,10 @@ Endereço: %4 Vincualar o endereço dado e listar as ligações conectadas ao mesmo na lista branca. Use a notação [anfitrião]:porta para IPv6 + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + Vinculado para dar o endereço para atender as ligações JSON-RPC. Use [host]: Notação de porta para IPv6. Esta opção pode ser especificada várias vezes (padrão: ligam-se a todas as interfaces) + + Cannot obtain a lock on data directory %s. Bitcoin Core is probably already running. Impossível trancar a pasta de dados %s. Provavelmente o Bitcoin Core já está a ser executado. diff --git a/src/qt/locale/bitcoin_ro_RO.ts b/src/qt/locale/bitcoin_ro_RO.ts index 8a6a11ed432..8f590263638 100644 --- a/src/qt/locale/bitcoin_ro_RO.ts +++ b/src/qt/locale/bitcoin_ro_RO.ts @@ -1941,10 +1941,6 @@ Adresa: %4 Copiază rest - Total Amount %1 (= %2) - Suma totală %1 (= %2) - - or sau diff --git a/src/qt/locale/bitcoin_ru.ts b/src/qt/locale/bitcoin_ru.ts index e28806849d9..b03ab05f075 100644 --- a/src/qt/locale/bitcoin_ru.ts +++ b/src/qt/locale/bitcoin_ru.ts @@ -358,6 +358,78 @@ Show or hide the main Window Показать или скрыть главное окно + + Encrypt the private keys that belong to your wallet + Зашифровать приватные ключи, принадлежащие вашему бумажнику + + + Sign messages with your Bitcoin addresses to prove you own them + Подписать сообщения вашим адресом Bitcoin, чтобы доказать, что вы им владеете + + + Verify messages to ensure they were signed with specified Bitcoin addresses + Проверить сообщения, чтобы удостовериться, что они были подписаны определённым адресом Bitcoin + + + &File + &Файл + + + &Settings + &Настройки + + + &Help + &Помощь + + + Tabs toolbar + Панель вкладок + + + Bitcoin Core + Bitcoin Core + + + Request payments (generates QR codes and bitcoin: URIs) + Запросить платежи (создаёт QR-коды и bitcoin: ссылки) + + + &About Bitcoin Core + &О Bitcoin Core + + + Show the list of used sending addresses and labels + Показать список использованных адресов отправки и меток + + + Show the list of used receiving addresses and labels + Показать список использованных адресов получения и меток + + + Open a bitcoin: URI or payment request + Открыть bitcoin: URI или запрос платежа + + + &Command-line options + &Параметры командной строки + + + Show the Bitcoin Core help message to get a list with possible Bitcoin command-line options + Показать помощь по Bitcoin Core и получить список доступных параметров командной строки. + + + No block source available... + Нет доступного источника блоков... + + + %n hour(s) + %n час%n часа%n часов%n часов + + + %n day(s) + %n день%n дня%n дней%n дней + ClientModel @@ -377,9 +449,17 @@ HelpMessageDialog + + Bitcoin Core + Bitcoin Core + Intro + + Bitcoin Core + Bitcoin Core + OpenURIDialog @@ -448,6 +528,10 @@ SplashScreen + + Bitcoin Core + Bitcoin Core + TrafficGraphWidget diff --git a/src/qt/locale/bitcoin_sk.ts b/src/qt/locale/bitcoin_sk.ts index 4c084001684..de1b615d7d3 100644 --- a/src/qt/locale/bitcoin_sk.ts +++ b/src/qt/locale/bitcoin_sk.ts @@ -1980,10 +1980,6 @@ Adresa: %4 Kopírovať zmenu - Total Amount %1 (= %2) - Celková suma %1 (= %2) - - or alebo @@ -2900,10 +2896,6 @@ The network does not appear to fully agree! Some miners appear to be experiencin Chyba otvárania databázy blokov - Error: A fatal internal error occured, see debug.log for details - Chyba: Nastala fatálna interná chyba. Pre podrobnosti pozrite debug.log - - Error: Disk space is low! Chyba: Málo miesta na disku! diff --git a/src/qt/locale/bitcoin_sl_SI.ts b/src/qt/locale/bitcoin_sl_SI.ts index a2774c7adde..7b08cb750a3 100644 --- a/src/qt/locale/bitcoin_sl_SI.ts +++ b/src/qt/locale/bitcoin_sl_SI.ts @@ -1933,10 +1933,6 @@ Naslov: %4 Kopiraj drobiž - Total Amount %1 (= %2) - Skupni znesek %1 (= %2) - - or ali @@ -2811,10 +2807,6 @@ Naslov: %4 Napaka pri odpiranju podatkovne baze blokov - Error: A fatal internal error occured, see debug.log for details - Napaka: Med izvajanjem je prišlo do nepopravljive napake. Podrobnosti so v datoteki debug.log - - Error: Disk space is low! Opozorilo: Premalo prostora na disku! diff --git a/src/qt/locale/bitcoin_sv.ts b/src/qt/locale/bitcoin_sv.ts index 0ed914fdcf9..86854117512 100644 --- a/src/qt/locale/bitcoin_sv.ts +++ b/src/qt/locale/bitcoin_sv.ts @@ -1986,8 +1986,8 @@ Adress: %4 Kopiera växel - Total Amount %1 (= %2) - Totalt %1 (= %2) + Total Amount %1<span style='font-size:10pt;font-weight:normal;'><br />(=%2)</span> + Total summa %1<span style='font-size:10pt;font-weight:normal;'><br />(=%2)</span> or @@ -2928,10 +2928,6 @@ Adress: %4 Fel vid öppning av blockdatabasen - Error: A fatal internal error occured, see debug.log for details - Fel: Ett fatalt internt fel inträffade. Se debug.log för detaljer - - Error: Disk space is low! Fel: Hårddiskutrymme är lågt! @@ -3157,6 +3153,10 @@ till exempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Fel vid läsning från databas, avslutar. + Error: A fatal internal error occurred, see debug.log for details + Fel: Ett kritiskt internt fel uppstod, se debug.log för detaljer + + Error: Unsupported argument -tor found, use -onion. Fel: Argumentet -tor stöds inte, använd -onion. @@ -3225,6 +3225,10 @@ till exempel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Slupmässigt brus 1 gång varje <n> nätverksmeddelande + Receive and display P2P network alerts (default: %u) + Ta emot och visa varningar för P2P-nätverk (standard: %u) + + Send trace/debug info to console instead of debug.log file Skicka trace-/debuginformation till terminalen istället för till debug.log diff --git a/src/qt/locale/bitcoin_tr.ts b/src/qt/locale/bitcoin_tr.ts index a571869112e..e9182b706ee 100644 --- a/src/qt/locale/bitcoin_tr.ts +++ b/src/qt/locale/bitcoin_tr.ts @@ -1993,10 +1993,6 @@ Adres: %4 Para üstünü kopyala - Total Amount %1 (= %2) - Toplam meblağ %1 (= %2) - - or veya @@ -2935,10 +2931,6 @@ Adres: %4 Blok veritabanının açılışı sırasında hata - Error: A fatal internal error occured, see debug.log for details - Hata: Ölümcül dahili bir hata meydana geldi, ayrıntılar için debug.log dosyasına bakınız - - Error: Disk space is low! Hata: Disk alanı düşük! diff --git a/src/qt/locale/bitcoin_uk.ts b/src/qt/locale/bitcoin_uk.ts index 7935b20a16a..f59ad552620 100644 --- a/src/qt/locale/bitcoin_uk.ts +++ b/src/qt/locale/bitcoin_uk.ts @@ -1993,8 +1993,8 @@ Address: %4 Копіювати решту - Total Amount %1 (= %2) - Всього %1 (= %2) + Total Amount %1<span style='font-size:10pt;font-weight:normal;'><br />(=%2)</span> + Всього %1<span style='font-size:10pt;font-weight:normal;'><br />(=%2)</span> or @@ -2935,10 +2935,6 @@ Address: %4 Помилка відкриття блоку бази даних - Error: A fatal internal error occured, see debug.log for details - Помилка: Сталася фатальна помилка (детальніший опис наведено в debug.log) - - Error: Disk space is low! Помилка: Мало вільного місця на диску! @@ -3167,6 +3163,10 @@ rpcpassword=%s Помилка читання бази даних, припиняю роботу. + Error: A fatal internal error occurred, see debug.log for details + Помилка: Сталася фатальна помилка (детальніший опис наведено в debug.log) + + Error: Unsupported argument -tor found, use -onion. Помилка: Параметр -tor не підтримується, використовуйте -onion @@ -3235,6 +3235,10 @@ rpcpassword=%s Випадковим чином пошкоджувати 1 з <n> мережевих повідомлень + Receive and display P2P network alerts (default: %u) + Отримувати та відображати попередження з мережі (типово: %u) + + Send trace/debug info to console instead of debug.log file Відсилати налагоджувальну інформацію на консоль, а не у файл debug.log diff --git a/src/qt/locale/bitcoin_zh_CN.ts b/src/qt/locale/bitcoin_zh_CN.ts index ddc8168ad93..0889289f58f 100644 --- a/src/qt/locale/bitcoin_zh_CN.ts +++ b/src/qt/locale/bitcoin_zh_CN.ts @@ -1994,8 +1994,8 @@ Address: %4 复制零钱 - Total Amount %1 (= %2) - 总额 %1 (= %2) + Total Amount %1<span style='font-size:10pt;font-weight:normal;'><br />(=%2)</span> + 总金额 %1<span style='font-size:10pt;font-weight:normal;'><br />(=%2)</span> or @@ -2942,10 +2942,6 @@ Address: %4 导入数据块数据库出错 - Error: A fatal internal error occured, see debug.log for details - 错误:发生了致命的内部错误,请打开debug.log查看详细信息 - - Error: Disk space is low! 错误:磁盘剩余空间低! @@ -3174,6 +3170,10 @@ rpcpassword=%s 读取数据库出错,关闭中。 + Error: A fatal internal error occurred, see debug.log for details + 错误:发生了致命的内部错误,详情见 debug.log 文件 + + Error: Unsupported argument -tor found, use -onion. 错误:发现了不支持的参数 -tor,请使用 -onion。 @@ -3238,6 +3238,10 @@ rpcpassword=%s 随机每1个模拟测试<n>网络信息 + Receive and display P2P network alerts (default: %u) + 接收并显示 P2P 网络告警 (默认: %u) + + Send trace/debug info to console instead of debug.log file 跟踪/调试信息输出到控制台,不输出到 debug.log 文件 diff --git a/src/qt/locale/bitcoin_zh_TW.ts b/src/qt/locale/bitcoin_zh_TW.ts index 606eded663a..62e32c99c59 100644 --- a/src/qt/locale/bitcoin_zh_TW.ts +++ b/src/qt/locale/bitcoin_zh_TW.ts @@ -1993,8 +1993,8 @@ Address: %4 複製找零金額 - Total Amount %1 (= %2) - 總金額 %1 (= %2) + Total Amount %1<span style='font-size:10pt;font-weight:normal;'><br />(=%2)</span> + 總金額 %1<span style='font-size:10pt;font-weight:normal;'><br />(=%2)</span> or @@ -2936,10 +2936,6 @@ Address: %4 打開區塊資料庫時發生錯誤 - Error: A fatal internal error occured, see debug.log for details - 錯誤:一個致命的內部錯誤,到debug.log看更多細節 - - Error: Disk space is low! 錯誤: 磁碟空間很少! @@ -3164,6 +3160,10 @@ rpcpassword=%s 讀取資料庫時發生錯誤,要關閉了。 + Error: A fatal internal error occurred, see debug.log for details + 錯誤:發生了致命的內部錯誤,細節請看 debug.log + + Error: Unsupported argument -tor found, use -onion. 錯誤: 找到不再支援的 -tor 參數,請改用 -onion 參數。 @@ -3232,6 +3232,10 @@ rpcpassword=%s 隨機亂動 <n> 分之一的網路訊息裡的資料 + Receive and display P2P network alerts (default: %u) + 接收並顯示 P2P 網路警示 (預設值: %u) + + Send trace/debug info to console instead of debug.log file 在終端機顯示追蹤或除錯資訊,而不是寫到檔案 debug.log 中 From cf5bf5542a6aba6b97fb69e0d2c11c2cd47f406d Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Fri, 9 Oct 2015 18:13:18 +0200 Subject: [PATCH 171/201] Bump version to 0.10.3 --- configure.ac | 2 +- doc/Doxyfile | 2 +- doc/README.md | 2 +- src/clientversion.h | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index d4285f7cac0..bc0bbc43979 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N) AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 0) define(_CLIENT_VERSION_MINOR, 10) -define(_CLIENT_VERSION_REVISION, 2) +define(_CLIENT_VERSION_REVISION, 3) define(_CLIENT_VERSION_BUILD, 0) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2015) diff --git a/doc/Doxyfile b/doc/Doxyfile index 92b304a448e..453ba14d5ce 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -34,7 +34,7 @@ PROJECT_NAME = Bitcoin # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = 0.10.2 +PROJECT_NUMBER = 0.10.3 # 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 diff --git a/doc/README.md b/doc/README.md index effa0e86399..a2066c9f276 100644 --- a/doc/README.md +++ b/doc/README.md @@ -1,4 +1,4 @@ -Bitcoin Core 0.10.2 +Bitcoin Core 0.10.3 ===================== Setup diff --git a/src/clientversion.h b/src/clientversion.h index e0bdea60e93..6dadd472bd4 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -16,7 +16,7 @@ //! These need to be macros, as clientversion.cpp's and bitcoin*-res.rc's voodoo requires it #define CLIENT_VERSION_MAJOR 0 #define CLIENT_VERSION_MINOR 10 -#define CLIENT_VERSION_REVISION 2 +#define CLIENT_VERSION_REVISION 3 #define CLIENT_VERSION_BUILD 0 //! Set to true for release, false for prerelease or test build From f2778e0ce6581f68382a4812ef847d387b35f2a0 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Fri, 9 Oct 2015 19:56:44 +0200 Subject: [PATCH 172/201] net: Disable upnp by default Common sentiment is that the miniupnpc codebase likely contains further vulnerabilities. I'd prefer to get rid of the dependency completely, but a compromise for now is to at least disable it by default. Rebased-From: 21d27ebad5721bc61c62bc72dc3ab3197f9da268 Github-Pull: #6795 --- contrib/gitian-descriptors/gitian-linux.yml | 2 +- contrib/gitian-descriptors/gitian-osx.yml | 2 +- contrib/gitian-descriptors/gitian-win.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/contrib/gitian-descriptors/gitian-linux.yml b/contrib/gitian-descriptors/gitian-linux.yml index 80de6770c5f..ddf74decfa0 100644 --- a/contrib/gitian-descriptors/gitian-linux.yml +++ b/contrib/gitian-descriptors/gitian-linux.yml @@ -23,7 +23,7 @@ files: [] script: | WRAP_DIR=$HOME/wrapped HOSTS="i686-pc-linux-gnu x86_64-unknown-linux-gnu" - CONFIGFLAGS="--enable-upnp-default --enable-glibc-back-compat" + CONFIGFLAGS="--enable-glibc-back-compat" FAKETIME_HOST_PROGS="" FAKETIME_PROGS="date ar ranlib nm strip" diff --git a/contrib/gitian-descriptors/gitian-osx.yml b/contrib/gitian-descriptors/gitian-osx.yml index c09786a56ce..30f00633bc5 100644 --- a/contrib/gitian-descriptors/gitian-osx.yml +++ b/contrib/gitian-descriptors/gitian-osx.yml @@ -27,7 +27,7 @@ files: script: | WRAP_DIR=$HOME/wrapped HOSTS="x86_64-apple-darwin11" - CONFIGFLAGS="--enable-upnp-default GENISOIMAGE=$WRAP_DIR/genisoimage" + CONFIGFLAGS="GENISOIMAGE=$WRAP_DIR/genisoimage" FAKETIME_HOST_PROGS="" FAKETIME_PROGS="ar ranlib date dmg genisoimage" diff --git a/contrib/gitian-descriptors/gitian-win.yml b/contrib/gitian-descriptors/gitian-win.yml index f0459ee9461..91405a55d01 100644 --- a/contrib/gitian-descriptors/gitian-win.yml +++ b/contrib/gitian-descriptors/gitian-win.yml @@ -26,7 +26,7 @@ files: [] script: | WRAP_DIR=$HOME/wrapped HOSTS="x86_64-w64-mingw32 i686-w64-mingw32" - CONFIGFLAGS="--enable-upnp-default" + CONFIGFLAGS="" FAKETIME_HOST_PROGS="g++ ar ranlib nm windres strip" FAKETIME_PROGS="date makensis zip" From 91ef4d93d4952759a6c766fd94eaf2c1df78c372 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Jan=C3=ADk?= Date: Tue, 11 Aug 2015 15:57:52 +0200 Subject: [PATCH 173/201] Do not store more than 200 timedata samples. Github-Pull: #6797 Rebased-From: 8be371db340b03dc03142c1bb3390fdfc84f56b4 --- src/timedata.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/timedata.cpp b/src/timedata.cpp index 59f7778db17..61a113513d9 100644 --- a/src/timedata.cpp +++ b/src/timedata.cpp @@ -40,6 +40,8 @@ static int64_t abs64(int64_t n) return (n >= 0 ? n : -n); } +#define BITCOIN_TIMEDATA_MAX_SAMPLES 200 + void AddTimeData(const CNetAddr& ip, int64_t nTime) { int64_t nOffsetSample = nTime - GetTime(); @@ -47,11 +49,13 @@ void AddTimeData(const CNetAddr& ip, int64_t nTime) LOCK(cs_nTimeOffset); // Ignore duplicates static set setKnown; + if (setKnown.size() == BITCOIN_TIMEDATA_MAX_SAMPLES) + return; if (!setKnown.insert(ip).second) return; // Add data - static CMedianFilter vTimeOffsets(200,0); + static CMedianFilter vTimeOffsets(BITCOIN_TIMEDATA_MAX_SAMPLES, 0); vTimeOffsets.input(nOffsetSample); LogPrintf("Added time data, samples %d, offset %+d (%+d minutes)\n", vTimeOffsets.size(), nOffsetSample, nOffsetSample/60); From 842c48dba39e9ad7a74d21106a67e047e3d79ced Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Fri, 9 Oct 2015 19:36:32 +0200 Subject: [PATCH 174/201] Bump minrelaytxfee default To bridge the time until a dynamic method for determining this fee is merged. This is especially aimed at the stable releases (0.10, 0.11) because full mempool limiting, as will be in 0.12, is too invasive and risky to backport. Github-Pull: #6793 Rebased-From: 28e3249e53b8ef7516636df0f1406466a513095d 4e2efb3c5fde4b1e332cc032e3dc4082ec4e3cac --- src/main.cpp | 2 +- src/test/transaction_tests.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index ce87aef68f8..b4de509d4cb 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -56,7 +56,7 @@ unsigned int nCoinCacheSize = 5000; bool fAlerts = DEFAULT_ALERTS; /** Fees smaller than this (in satoshi) are considered zero fee (for relaying and mining) */ -CFeeRate minRelayTxFee = CFeeRate(1000); +CFeeRate minRelayTxFee = CFeeRate(5000); CTxMemPool mempool(::minRelayTxFee); diff --git a/src/test/transaction_tests.cpp b/src/test/transaction_tests.cpp index 519ce6c3194..a732dfa8339 100644 --- a/src/test/transaction_tests.cpp +++ b/src/test/transaction_tests.cpp @@ -341,7 +341,7 @@ BOOST_AUTO_TEST_CASE(test_IsStandard) t.vout[0].nValue = 501; // dust BOOST_CHECK(!IsStandardTx(t, reason)); - t.vout[0].nValue = 601; // not dust + t.vout[0].nValue = 2730; // not dust BOOST_CHECK(IsStandardTx(t, reason)); t.vout[0].scriptPubKey = CScript() << OP_1; From 8d598c26e34e36619180f73926043a43bfe68879 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Sun, 11 Oct 2015 10:49:25 +0200 Subject: [PATCH 175/201] doc: Update release notes for 0.10.3rc2 --- doc/release-notes.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/doc/release-notes.md b/doc/release-notes.md index c9294e241bf..8a110e562c4 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -57,6 +57,11 @@ Details can be found here: http://talosintel.com/reports/TALOS-2015-0035/ This applies to the distributed executables only, not when building from source or using distribution provided packages. +Additionally, upnp has been disabled by default. This may result in a lower +number of reachable nodes on IPv4, however this prevents future libupnpc +vulnerabilities from being a structural risk to the network +(see https://github.com/bitcoin/bitcoin/pull/6795). + Test for LowS signatures before relaying ----------------------------------------- @@ -91,6 +96,20 @@ only eliminates the cheap and irritating DOS attack. Marcin Andrychowicz, Stefan Dziembowski, Daniel Malinowski, Łukasz Mazurek http://fc15.ifca.ai/preproceedings/bitcoin/paper_9.pdf +Minimum relay fee default increase +----------------------------------- + +The default for the `-minrelaytxfee` setting has been increased from `0.00001` +to `0.00005`. + +This is necessitated by the current transaction flooding, causing +outrageous memory usage on nodes due to the mempool ballooning. This is a +temporary measure, bridging the time until a dynamic method for determining +this fee is merged (which will be in 0.12). + +(see https://github.com/bitcoin/bitcoin/pull/6793, as well as the 0.11.0 +release notes, in which this value was suggested) + 0.10.3 Change log ================= @@ -112,6 +131,9 @@ behavior, not code moves, refactors or string updates. - #6704 `743cc9e` Backport bugfixes to 0.10 - #6769 `1cea6b0` Test LowS in standardness, removes nuisance malleability vector. - #6789 `093d7b5` Update miniupnpc to 1.9.20151008 +- #6795 `f2778e0` net: Disable upnp by default +- #6797 `91ef4d9` Do not store more than 200 timedata samples +- #6793 `842c48d` Bump minrelaytxfee default Credits ======= From fb818b6be42f9b324e0008b6b9940b3b820a13a2 Mon Sep 17 00:00:00 2001 From: Micha Date: Wed, 14 Oct 2015 23:46:09 +0300 Subject: [PATCH 176/201] Bring historical release notes up to date [skip ci] --- doc/release-notes/release-notes-0.10.1.md | 143 ++++++++++++++++++++++++++ doc/release-notes/release-notes-0.10.2.md | 86 ++++++++++++++++ doc/release-notes/release-notes-0.10.3.md | 165 ++++++++++++++++++++++++++++++ doc/release-notes/release-notes-0.9.5.md | 60 +++++++++++ 4 files changed, 454 insertions(+) create mode 100644 doc/release-notes/release-notes-0.10.1.md create mode 100644 doc/release-notes/release-notes-0.10.2.md create mode 100644 doc/release-notes/release-notes-0.10.3.md create mode 100644 doc/release-notes/release-notes-0.9.5.md diff --git a/doc/release-notes/release-notes-0.10.1.md b/doc/release-notes/release-notes-0.10.1.md new file mode 100644 index 00000000000..8f59f1f68c6 --- /dev/null +++ b/doc/release-notes/release-notes-0.10.1.md @@ -0,0 +1,143 @@ +Bitcoin Core version 0.10.1 is now available from: + + + +This is a new minor version release, bringing bug fixes and translation +updates. It is recommended to upgrade to this version. + +Please report bugs using the issue tracker at github: + + + +Upgrading and downgrading +========================= + +How to Upgrade +-------------- + +If you are running an older version, shut it down. Wait until it has completely +shut down (which might take a few minutes for older versions), then run the +installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or +bitcoind/bitcoin-qt (on Linux). + +Downgrade warning +------------------ + +Because release 0.10.0 and later makes use of headers-first synchronization and +parallel block download (see further), the block files and databases are not +backwards-compatible with pre-0.10 versions of Bitcoin Core or other software: + +* 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. It is possible that the data from a completely +synchronised 0.10 node may be usable in older versions as-is, but this is not +supported and may break as soon as the older version attempts to reindex. + +This does not affect wallet forward or backward compatibility. + +Notable changes +=============== + +This is a minor release and hence there are no notable changes. +For the notable changes in 0.10, refer to the release notes for the +0.10.0 release at https://github.com/bitcoin/bitcoin/blob/v0.10.0/doc/release-notes.md + +0.10.1 Change log +================= + +Detailed release notes follow. This overview includes changes that affect external +behavior, not code moves, refactors or string updates. + +RPC: +- `7f502be` fix crash: createmultisig and addmultisigaddress +- `eae305f` Fix missing lock in submitblock + +Block (database) and transaction handling: +- `1d2cdd2` Fix InvalidateBlock to add chainActive.Tip to setBlockIndexCandidates +- `c91c660` fix InvalidateBlock to repopulate setBlockIndexCandidates +- `002c8a2` fix possible block db breakage during re-index +- `a1f425b` Add (optional) consistency check for the block chain data structures +- `1c62e84` Keep mempool consistent during block-reorgs +- `57d1f46` Fix CheckBlockIndex for reindex +- `bac6fca` Set nSequenceId when a block is fully linked + +P2P protocol and network code: +- `78f64ef` don't trickle for whitelisted nodes +- `ca301bf` Reduce fingerprinting through timestamps in 'addr' messages. +- `200f293` Ignore getaddr messages on Outbound connections. +- `d5d8998` Limit message sizes before transfer +- `aeb9279` Better fingerprinting protection for non-main-chain getdatas. +- `cf0218f` Make addrman's bucket placement deterministic (countermeasure 1 against eclipse attacks, see http://cs-people.bu.edu/heilman/eclipse/) +- `0c6f334` Always use a 50% chance to choose between tried and new entries (countermeasure 2 against eclipse attacks) +- `214154e` Do not bias outgoing connections towards fresh addresses (countermeasure 2 against eclipse attacks) +- `aa587d4` Scale up addrman (countermeasure 6 against eclipse attacks) +- `139cd81` Cap nAttempts penalty at 8 and switch to pow instead of a division loop + +Validation: +- `d148f62` Acquire CCheckQueue's lock to avoid race condition + +Build system: +- `8752b5c` 0.10 fix for crashes on OSX 10.6 + +Wallet: +- N/A + +GUI: +- `2c08406` some mac specifiy cleanup (memory handling, unnecessary code) +- `81145a6` fix OSX dock icon window reopening +- `786cf72` fix a issue where "command line options"-action overwrite "Preference"-action (on OSX) + +Tests: +- `1117378` add RPC test for InvalidateBlock + +Miscellaneous: +- `c9e022b` Initialization: set Boost path locale in main thread +- `23126a0` Sanitize command strings before logging them. +- `323de27` Initialization: setup environment before starting Qt tests +- `7494e09` Initialization: setup environment before starting tests +- `df45564` Initialization: set fallback locale as environment variable + +Credits +======= + +Thanks to everyone who directly contributed to this release: + +- Alex Morcos +- Cory Fields +- dexX7 +- fsb4000 +- Gavin Andresen +- Gregory Maxwell +- Ivan Pustogarov +- Jonas Schnelli +- Matt Corallo +- mrbandrews +- Pieter Wuille +- Ruben de Vries +- Suhas Daftuar +- Wladimir J. van der Laan + +And all those who contributed additional code review and/or security research: +- 21E14 +- Alison Kendler +- Aviv Zohar +- Ethan Heilman +- Evil-Knievel +- fanquake +- Jeff Garzik +- Jonas Nick +- Luke Dashjr +- Patrick Strateman +- Philip Kaufmann +- Sergio Demian Lerner +- Sharon Goldberg + +As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). diff --git a/doc/release-notes/release-notes-0.10.2.md b/doc/release-notes/release-notes-0.10.2.md new file mode 100644 index 00000000000..192ed69d299 --- /dev/null +++ b/doc/release-notes/release-notes-0.10.2.md @@ -0,0 +1,86 @@ +Bitcoin Core version 0.10.2 is now available from: + + + +This is a new minor version release, bringing minor bug fixes and translation +updates. It is recommended to upgrade to this version. + +Please report bugs using the issue tracker at github: + + + +Upgrading and downgrading +========================= + +How to Upgrade +-------------- + +If you are running an older version, shut it down. Wait until it has completely +shut down (which might take a few minutes for older versions), then run the +installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or +bitcoind/bitcoin-qt (on Linux). + +Downgrade warning +------------------ + +Because release 0.10.0 and later makes use of headers-first synchronization and +parallel block download (see further), the block files and databases are not +backwards-compatible with pre-0.10 versions of Bitcoin Core or other software: + +* 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. It is possible that the data from a completely +synchronised 0.10 node may be usable in older versions as-is, but this is not +supported and may break as soon as the older version attempts to reindex. + +This does not affect wallet forward or backward compatibility. + +Notable changes +=============== + +This fixes a serious problem on Windows with data directories that have non-ASCII +characters (https://github.com/bitcoin/bitcoin/issues/6078). + +For other platforms there are no notable changes. + +For the notable changes in 0.10, refer to the release notes +at https://github.com/bitcoin/bitcoin/blob/v0.10.0/doc/release-notes.md + +0.10.2 Change log +================= + +Detailed release notes follow. This overview includes changes that affect external +behavior, not code moves, refactors or string updates. + +Wallet: +- `824c011` fix boost::get usage with boost 1.58 + +Miscellaneous: +- `da65606` Avoid crash on start in TestBlockValidity with gen=1. +- `424ae66` don't imbue boost::filesystem::path with locale "C" on windows (fixes #6078) + +Credits +======= + +Thanks to everyone who directly contributed to this release: + +- Cory Fields +- Gregory Maxwell +- Jonas Schnelli +- Wladimir J. van der Laan + +And all those who contributed additional code review and/or security research: + +- dexX7 +- Pieter Wuille +- vayvanne + +As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). diff --git a/doc/release-notes/release-notes-0.10.3.md b/doc/release-notes/release-notes-0.10.3.md new file mode 100644 index 00000000000..8a110e562c4 --- /dev/null +++ b/doc/release-notes/release-notes-0.10.3.md @@ -0,0 +1,165 @@ +Bitcoin Core version 0.10.3 is now available from: + + + +This is a new minor version release, bringing security fixes and translation +updates. It is recommended to upgrade to this version as soon as possible. + +Please report bugs using the issue tracker at github: + + + +Upgrading and downgrading +========================= + +How to Upgrade +-------------- + +If you are running an older version, shut it down. Wait until it has completely +shut down (which might take a few minutes for older versions), then run the +installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or +bitcoind/bitcoin-qt (on Linux). + +Downgrade warning +------------------ + +Because release 0.10.0 and later makes use of headers-first synchronization and +parallel block download (see further), the block files and databases are not +backwards-compatible with pre-0.10 versions of Bitcoin Core or other software: + +* 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. It is possible that the data from a completely +synchronised 0.10 node may be usable in older versions as-is, but this is not +supported and may break as soon as the older version attempts to reindex. + +This does not affect wallet forward or backward compatibility. + +Notable changes +=============== + +Fix buffer overflow in bundled upnp +------------------------------------ + +Bundled miniupnpc was updated to 1.9.20151008. This fixes a buffer overflow in +the XML parser during initial network discovery. + +Details can be found here: http://talosintel.com/reports/TALOS-2015-0035/ + +This applies to the distributed executables only, not when building from source or +using distribution provided packages. + +Additionally, upnp has been disabled by default. This may result in a lower +number of reachable nodes on IPv4, however this prevents future libupnpc +vulnerabilities from being a structural risk to the network +(see https://github.com/bitcoin/bitcoin/pull/6795). + +Test for LowS signatures before relaying +----------------------------------------- + +Make the node require the canonical 'low-s' encoding for ECDSA signatures when +relaying or mining. This removes a nuisance malleability vector. + +Consensus behavior is unchanged. + +If widely deployed this change would eliminate the last remaining known vector +for nuisance malleability on SIGHASH_ALL P2PKH transactions. On the down-side +it will block most transactions made by sufficiently out of date software. + +Unlike the other avenues to change txids on transactions this +one was randomly violated by all deployed bitcoin software prior to +its discovery. So, while other malleability vectors where made +non-standard as soon as they were discovered, this one has remained +permitted. Even BIP62 did not propose applying this rule to +old version transactions, but conforming implementations have become +much more common since BIP62 was initially written. + +Bitcoin Core has produced compatible signatures since a28fb70e in +September 2013, but this didn't make it into a release until 0.9 +in March 2014; Bitcoinj has done so for a similar span of time. +Bitcoinjs and electrum have been more recently updated. + +This does not replace the need for BIP62 or similar, as miners can +still cooperate to break transactions. Nor does it replace the +need for wallet software to handle malleability sanely[1]. This +only eliminates the cheap and irritating DOS attack. + +[1] On the Malleability of Bitcoin Transactions +Marcin Andrychowicz, Stefan Dziembowski, Daniel Malinowski, Łukasz Mazurek +http://fc15.ifca.ai/preproceedings/bitcoin/paper_9.pdf + +Minimum relay fee default increase +----------------------------------- + +The default for the `-minrelaytxfee` setting has been increased from `0.00001` +to `0.00005`. + +This is necessitated by the current transaction flooding, causing +outrageous memory usage on nodes due to the mempool ballooning. This is a +temporary measure, bridging the time until a dynamic method for determining +this fee is merged (which will be in 0.12). + +(see https://github.com/bitcoin/bitcoin/pull/6793, as well as the 0.11.0 +release notes, in which this value was suggested) + +0.10.3 Change log +================= + +Detailed release notes follow. This overview includes changes that affect external +behavior, not code moves, refactors or string updates. + +- #6186 `e4a7d51` Fix two problems in CSubnet parsing +- #6153 `ebd7d8d` Parameter interaction: disable upnp if -proxy set +- #6203 `ecc96f5` Remove P2SH coinbase flag, no longer interesting +- #6226 `181771b` json: fail read_string if string contains trailing garbage +- #6244 `09334e0` configure: Detect (and reject) LibreSSL +- #6276 `0fd8464` Fix getbalance * 0 +- #6274 `be64204` Add option `-alerts` to opt out of alert system +- #6319 `3f55638` doc: update mailing list address +- #6438 `7e66e9c` openssl: avoid config file load/race +- #6439 `255eced` Updated URL location of netinstall for Debian +- #6412 `0739e6e` Test whether created sockets are select()able +- #6694 `f696ea1` [QT] fix thin space word wrap line brake issue +- #6704 `743cc9e` Backport bugfixes to 0.10 +- #6769 `1cea6b0` Test LowS in standardness, removes nuisance malleability vector. +- #6789 `093d7b5` Update miniupnpc to 1.9.20151008 +- #6795 `f2778e0` net: Disable upnp by default +- #6797 `91ef4d9` Do not store more than 200 timedata samples +- #6793 `842c48d` Bump minrelaytxfee default + +Credits +======= + +Thanks to everyone who directly contributed to this release: + +- Adam Weiss +- Alex Morcos +- Casey Rodarmor +- Cory Fields +- fanquake +- Gregory Maxwell +- Jonas Schnelli +- J Ross Nicoll +- Luke Dashjr +- Pavel Vasin +- Pieter Wuille +- randy-waterhouse +- ฿tcDrak +- Tom Harding +- Veres Lajos +- Wladimir J. van der Laan + +And all those who contributed additional code review and/or security research: + +- timothy on IRC for reporting the issue +- Vulnerability in miniupnp discovered by Aleksandar Nikolic of Cisco Talos + +As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). diff --git a/doc/release-notes/release-notes-0.9.5.md b/doc/release-notes/release-notes-0.9.5.md new file mode 100644 index 00000000000..bed0af9879b --- /dev/null +++ b/doc/release-notes/release-notes-0.9.5.md @@ -0,0 +1,60 @@ +Bitcoin Core version 0.9.5 is now available from: + + https://bitcoin.org/bin/0.9.5/ + +This is a new minor version release, with the goal of backporting BIP66. There +are also a few bug fixes and updated translations. Upgrading to this release is +recommended. + +Please report bugs using the issue tracker at github: + + https://github.com/bitcoin/bitcoin/issues + +How to Upgrade +=============== + +If you are running an older version, shut it down. Wait until it has completely +shut down (which might take a few minutes for older versions), then run the +installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or +bitcoind/bitcoin-qt (on Linux). + +Notable changes +================ + +Mining and relay policy enhancements +------------------------------------ + +Bitcoin Core's block templates are now for version 3 blocks only, and any mining +software relying on its `getblocktemplate` must be updated in parallel to use +libblkmaker either version 0.4.2 or any version from 0.5.1 onward. +If you are solo mining, this will affect you the moment you upgrade Bitcoin +Core, which must be done prior to BIP66 achieving its 951/1001 status. +If you are mining with the stratum mining protocol: this does not affect you. +If you are mining with the getblocktemplate protocol to a pool: this will affect +you at the pool operator's discretion, which must be no later than BIP66 +achieving its 951/1001 status. + +0.9.5 changelog +================ + +- `74f29c2` Check pindexBestForkBase for null +- `9cd1dd9` Fix priority calculation in CreateTransaction +- `6b4163b` Sanitize command strings before logging them. +- `3230b32` Raise version of created blocks, and enforce DERSIG in mempool +- `989d499` Backport of some of BIP66's tests +- `ab03660` Implement BIP 66 validation rules and switchover logic +- `8438074` build: fix dynamic boost check when --with-boost= is used + +Credits +-------- + +Thanks to who contributed to this release, at least: + +- 21E14 +- Alex Morcos +- Cory Fields +- Gregory Maxwell +- Pieter Wuille +- Wladimir J. van der Laan + +As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). From 0b3fd07fd24a96b205d4f85d00157d5f115fad9e Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Mon, 19 Oct 2015 12:03:04 +0200 Subject: [PATCH 177/201] build: make sure OpenSSL heeds noexecstack This passes `-Wa,--noexecstack` to the assembler when building platform-specific assembly files, to signal that a non-executable stack can be used. This is the same approach as used by Debian (see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=430583) Rebased-From: bfcdc21a5da25ec1aa4aecc4cd8960dfa1c11781 Github-Pull: #6852 --- depends/packages/openssl.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/depends/packages/openssl.mk b/depends/packages/openssl.mk index eb4779410bf..492994b7157 100644 --- a/depends/packages/openssl.mk +++ b/depends/packages/openssl.mk @@ -10,7 +10,7 @@ $(package)_config_opts=--prefix=$(host_prefix) --openssldir=$(host_prefix)/etc/o $(package)_config_opts+=no-krb5 no-camellia no-capieng no-cast no-cms no-dtls1 no-gost no-gmp no-heartbeats no-idea no-jpake no-md2 $(package)_config_opts+=no-mdc2 no-rc5 no-rdrand no-rfc3779 no-rsax no-sctp no-seed no-sha0 no-static_engine no-whirlpool no-rc2 no-rc4 no-ssl2 no-ssl3 $(package)_config_opts+=$($(package)_cflags) $($(package)_cppflags) -$(package)_config_opts_linux=-fPIC +$(package)_config_opts_linux=-fPIC -Wa,--noexecstack $(package)_config_opts_x86_64_linux=linux-x86_64 $(package)_config_opts_i686_linux=linux-generic32 $(package)_config_opts_arm_linux=linux-generic32 From 5297194bbd6e0d6730515567248caf9c135e296c Mon Sep 17 00:00:00 2001 From: Gregory Maxwell Date: Wed, 21 Oct 2015 23:52:29 +0000 Subject: [PATCH 178/201] Set TCP_NODELAY on P2P sockets. Nagle appears to be a significant contributor to latency now that the static sleeps are gone. Most of our messages are relatively large compared to IP + TCP so I do not expect this to create enormous overhead. This may also reduce traffic burstyness somewhat. Conflicts: src/net.cpp Rebased-From: a4e28b3d1e5c95eb0c87f144851cd65048c3e0bc Github-Pull: #6867 --- src/compat.h | 1 + src/net.cpp | 12 ++++++++++++ src/netbase.cpp | 9 ++++++++- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/compat.h b/src/compat.h index e08e348ed84..651e641daa0 100644 --- a/src/compat.h +++ b/src/compat.h @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include diff --git a/src/net.cpp b/src/net.cpp index 375c00308c8..0fe52556a8d 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -894,6 +894,15 @@ void ThreadSocketHandler() } else { + // According to the internet TCP_NODELAY is not carried into accepted sockets + // on all platforms. Set it again here just to be sure. + int set = 1; +#ifdef WIN32 + setsockopt(hSocket, IPPROTO_TCP, TCP_NODELAY, (const char*)&set, sizeof(int)); +#else + setsockopt(hSocket, IPPROTO_TCP, TCP_NODELAY, (void*)&set, sizeof(int)); +#endif + CNode* pnode = new CNode(hSocket, addr, "", true); pnode->AddRef(); pnode->fWhitelisted = whitelisted; @@ -1530,8 +1539,11 @@ bool BindListenPort(const CService &addrBind, string& strError, bool fWhiteliste // Allow binding if the port is still in TIME_WAIT state after // the program was closed and restarted. setsockopt(hListenSocket, SOL_SOCKET, SO_REUSEADDR, (void*)&nOne, sizeof(int)); + // Disable Nagle's algorithm + setsockopt(hListenSocket, IPPROTO_TCP, TCP_NODELAY, (void*)&nOne, sizeof(int)); #else setsockopt(hListenSocket, SOL_SOCKET, SO_REUSEADDR, (const char*)&nOne, sizeof(int)); + setsockopt(hListenSocket, IPPROTO_TCP, TCP_NODELAY, (const char*)&nOne, sizeof(int)); #endif // Set to non-blocking, incoming connections will also inherit this diff --git a/src/netbase.cpp b/src/netbase.cpp index ca864104c04..0b38e4dba57 100644 --- a/src/netbase.cpp +++ b/src/netbase.cpp @@ -407,12 +407,19 @@ bool static ConnectSocketDirectly(const CService &addrConnect, SOCKET& hSocketRe if (hSocket == INVALID_SOCKET) return false; -#ifdef SO_NOSIGPIPE int set = 1; +#ifdef SO_NOSIGPIPE // Different way of disabling SIGPIPE on BSD setsockopt(hSocket, SOL_SOCKET, SO_NOSIGPIPE, (void*)&set, sizeof(int)); #endif + //Disable Nagle's algorithm +#ifdef WIN32 + setsockopt(hSocket, IPPROTO_TCP, TCP_NODELAY, (const char*)&set, sizeof(int)); +#else + setsockopt(hSocket, IPPROTO_TCP, TCP_NODELAY, (void*)&set, sizeof(int)); +#endif + // Set to non-blocking if (!SetSocketNonBlocking(hSocket, true)) return error("ConnectSocketDirectly: Setting socket to non-blocking failed, error %s\n", NetworkErrorString(WSAGetLastError())); From 72a0adfb3c364173d28bab03bf46349ab696c107 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Sun, 1 Nov 2015 16:28:02 +0100 Subject: [PATCH 179/201] qt: Final translations update on 0.10 branch Translations for 0.12 have been opened, translations for 0.10 have been closed. --- src/qt/locale/bitcoin_de.ts | 4 + src/qt/locale/bitcoin_fr.ts | 12 ++ src/qt/locale/bitcoin_hu.ts | 180 ++++++++++++++++++++++- src/qt/locale/bitcoin_lv_LV.ts | 18 ++- src/qt/locale/bitcoin_pt_BR.ts | 16 +++ src/qt/locale/bitcoin_ru.ts | 48 +++++++ src/qt/locale/bitcoin_sl_SI.ts | 10 +- src/qt/locale/bitcoin_uz@Cyrl.ts | 302 ++++++++++++++++++++++++++++++++++++++- 8 files changed, 575 insertions(+), 15 deletions(-) diff --git a/src/qt/locale/bitcoin_de.ts b/src/qt/locale/bitcoin_de.ts index f2cb3be9a90..3f0c0241522 100644 --- a/src/qt/locale/bitcoin_de.ts +++ b/src/qt/locale/bitcoin_de.ts @@ -3234,6 +3234,10 @@ Beispiel: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com Zufällig eine von <n> Netzwerknachrichten verwürfeln + Receive and display P2P network alerts (default: %u) + P2P-Netzwerk-Alarme empfangen und anzeigen (Standard: %u) + + Send trace/debug info to console instead of debug.log file Rückverfolgungs- und Debuginformationen an die Konsole senden, anstatt sie in debug.log zu schreiben diff --git a/src/qt/locale/bitcoin_fr.ts b/src/qt/locale/bitcoin_fr.ts index 2d1644e59aa..40500fb5d8a 100644 --- a/src/qt/locale/bitcoin_fr.ts +++ b/src/qt/locale/bitcoin_fr.ts @@ -1989,6 +1989,10 @@ Adresse : %4 Copier la monnaie + Total Amount %1<span style='font-size:10pt;font-weight:normal;'><br />(=%2)</span> + Montant total %1<span style='font-size:10pt;font-weight:normal;'><br />(=%2)</span> + + or ou @@ -3151,6 +3155,10 @@ par exemple : alertnotify=echo %%s | mail -s "Alerte Bitcoin" admin@foo.com Erreur de lecture de la base de données, fermeture en cours. + Error: A fatal internal error occurred, see debug.log for details + Erreur : une erreur interne fatale s'est produite. Voir debug.log pour plus de détails + + Error: Unsupported argument -tor found, use -onion. Erreur : argument non pris en charge -tor trouvé, utiliser -onion. @@ -3219,6 +3227,10 @@ par exemple : alertnotify=echo %%s | mail -s "Alerte Bitcoin" admin@foo.com Tester aléatoirement 1 message du réseau sur <n> + Receive and display P2P network alerts (default: %u) + Recevoir et afficher les alertes du réseau poste à poste (%u par défaut) + + Send trace/debug info to console instead of debug.log file Envoyer les informations de débogage/trace à la console au lieu du fichier debug.log diff --git a/src/qt/locale/bitcoin_hu.ts b/src/qt/locale/bitcoin_hu.ts index 0906b0cd95e..8c347b6ffdd 100644 --- a/src/qt/locale/bitcoin_hu.ts +++ b/src/qt/locale/bitcoin_hu.ts @@ -521,6 +521,10 @@ Cím: %4 CoinControlDialog + Coin Selection + Érme Választás + + Quantity: Mennyiség: @@ -569,6 +573,14 @@ Cím: %4 Összeg + Received with label + Címkével érkezett + + + Received with address + Címmel érkezett + + Date Dátum @@ -936,6 +948,10 @@ Cím: %4 &Induljon el a számítógép bekapcsolásakor + Size of &database cache + A&datbázis gyorsítótár mérete + + MB MB @@ -964,6 +980,10 @@ Cím: %4 &Hálózat + W&allet + T&árca + + Expert szakértő @@ -1071,6 +1091,10 @@ Cím: %4 A kijelzett információ lehet, hogy elavult. A pénztárcája automatikusan szinkronizálja magát a Bitcoin hálózattal miután a kapcsolat létrejön, de ez e folyamat még nem fejeződött be. + Watch-only: + Csak megfigyelés + + Available: Elérhető: @@ -1095,6 +1119,10 @@ Cím: %4 Bányászott egyenleg amely még nem érett be. + Balances + Egyenlegek + + Total: Összesen: @@ -1133,6 +1161,10 @@ Cím: %4 User Agent + Address/Hostname + Cím/Hosztnév + + Ping Time Ping idő @@ -1144,6 +1176,10 @@ Cím: %4 Összeg + Enter a Bitcoin address (e.g. %1) + Ad meg egy Bitcoin címet (pl: %1) + + %1 d %1 n @@ -1164,10 +1200,22 @@ Cím: %4 HÁLÓZAT + UNKNOWN + ISMERETLEN + + + None + Semmi + + N/A Nem elérhető - + + %1 ms + %1 ms + + QRImageWidget @@ -1218,6 +1266,10 @@ Cím: %4 Használt OpenSSL verzió + Using BerkeleyDB version + Használt BerkeleyDB verzió + + Startup time Bekapcsolás ideje @@ -1254,6 +1306,10 @@ Cím: %4 &Peerek + Select a peer to view detailed information. + Peer kijelölése a részletes információkért + + Version Verzió @@ -1266,6 +1322,10 @@ Cím: %4 Szolgáltatások + Connection Time + Csatlakozás ideje + + Last Send Legutóbb küldött @@ -1302,6 +1362,10 @@ Cím: %4 &Hálózati forgalom + &Clear + &Törlés + + Totals Összesen: @@ -1354,17 +1418,37 @@ Cím: %4 %1 GB + via %1 + által %1 + + never soha + Inbound + Bejövő + + + Outbound + Kimenő + + Unknown Ismeretlen - + + Fetching... + Begyüjtés + + ReceiveCoinsDialog + &Amount: + &Összeg: + + &Label: Címke: @@ -1373,14 +1457,30 @@ Cím: %4 &Üzenet: + Clear all fields of the form. + Minden mező törlése + + Clear Törlés + Requested payments history + A kért kifizetések története + + + &Request payment + &Fizetés kérése + + Show Mutat + Remove the selected entries from the list + A kijelölt elemek törlése a listáról + + Remove Eltávolítás @@ -1416,6 +1516,14 @@ Cím: %4 &Kép mentése + Request payment to %1 + Fizetés kérése a %1-hez + + + Payment information + Kifizetés információ + + URI URI: @@ -1466,7 +1574,15 @@ Cím: %4 (no label) (nincs címke) - + + (no message) + (nincs üzenet) + + + (no amount) + (nincs összeg) + + SendCoinsDialog @@ -1478,6 +1594,14 @@ Cím: %4 Bemenetek... + automatically selected + automatikusan kiválasztva + + + Insufficient funds! + Fedezethiány! + + Quantity: Mennyiség: @@ -1510,6 +1634,26 @@ Cím: %4 Tranzakciós díj + Choose... + Válassz... + + + Minimize + Kicsinyítés + + + per kilobyte + kilobájtonként + + + normal + normal + + + fast + gyors + + Send to multiple recipients at once Küldés több címzettnek egyszerre @@ -1518,6 +1662,10 @@ Cím: %4 &Címzett hozzáadása + Clear all fields of the form. + Minden mező törlése + + Dust: Por-határ: @@ -1594,6 +1742,10 @@ Cím: %4 Többször szerepel ugyanaz a cím. Egy küldési műveletben egy címre csak egyszer lehet küldeni. + Warning: Invalid Bitcoin address + Figyelmeztetés: Érvénytelen Bitcoin cím + + (no label) (nincs címke) @@ -1601,6 +1753,10 @@ Cím: %4 Copy dust Visszajáró másolása + + Are you sure you want to send? + Biztos, hogy el akarod küldeni? + SendCoinsEntry @@ -1622,6 +1778,10 @@ Cím: %4 Címke: + Choose previously used address + Válassz egy korábban már használt címet + + Alt+A Alt+A @@ -1634,6 +1794,10 @@ Cím: %4 Alt+P + Remove this entry + Ez a bejegyzés eltávolítása + + Message: Üzenet: @@ -1648,7 +1812,11 @@ Cím: %4 Bitcoin Core is shutting down... A Bitcoin Core leáll... - + + Do not shut down the computer until this window disappears. + Ne álljon le a számítógép amíg ez az ablak el nem tűnik. + + SignVerifyMessageDialog @@ -1664,6 +1832,10 @@ Cím: %4 Aláírhat a címeivel üzeneteket, amivel bizonyíthatja, hogy a címek az önéi. Vigyázzon, hogy ne írjon alá semmi félreérthetőt, mivel a phising támadásokkal megpróbálhatják becsapni, hogy az azonosságát átírja másokra. Csak olyan részletes állításokat írjon alá, amivel egyetért. + Choose previously used address + Válassz egy korábban már használt címet + + Alt+A Alt+A diff --git a/src/qt/locale/bitcoin_lv_LV.ts b/src/qt/locale/bitcoin_lv_LV.ts index 2c6b7b4a22a..b2a6a0a6ea8 100644 --- a/src/qt/locale/bitcoin_lv_LV.ts +++ b/src/qt/locale/bitcoin_lv_LV.ts @@ -62,6 +62,14 @@ Saņemšanas adreses + These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. + Šīs ir jūsu Bitcoin adreses maksājumu sūtīšanai. Vienmēr pārbaudiet summu un saņēmēja adresi pirms monētu sūtīšanas. + + + These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Šīs ir jūsu Bitcoin adreses maksājumu saņemšanai. Ir ieteicams katram darījumam izmantot jaunu saņemšanas adresi. + + Copy &Label Kopēt &Nosaukumu @@ -81,7 +89,11 @@ Exporting Failed Eksportēšana Neizdevās - + + There was an error trying to save the address list to %1. Please try again. + Radās kļūda, saglabājot adrešu sarakstu %1. Lūdzu, mēģiniet vēlreiz! + + AddressTableModel @@ -156,6 +168,10 @@ Vai tu tiešām vēlies šifrēt savu maciņu? + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + SVARĪGI: Iepriekšējie maka faila dublējumi ir jāaizvieto ar jauno, šifrēto maka failu. Drošības apsvērumu dēļ iepriekšējie nešifrētā maka dublējumi vairs nebūs derīgi, tiklīdz sāksiet izmantot jauno, šifrēto maku. + + Warning: The Caps Lock key is on! Brīdinājums: Caps Lock ir ieslēgts! diff --git a/src/qt/locale/bitcoin_pt_BR.ts b/src/qt/locale/bitcoin_pt_BR.ts index 3b91cfec27c..fb212b5e187 100644 --- a/src/qt/locale/bitcoin_pt_BR.ts +++ b/src/qt/locale/bitcoin_pt_BR.ts @@ -1236,6 +1236,10 @@ Endereço: %4 Solicitação de pagamento rejeitada + Payment request network doesn't match client network. + Rede de pedido de pagamento não corresponde rede do cliente. + + Payment request has expired. Solicitação de pagamento expirou. @@ -1260,10 +1264,18 @@ Endereço: %4 URL de cobrança é inválida: %1 + URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. + URI não pode ser analisado ! Isto pode ser causado por um endereço Bitcoin inválido ou parâmetros URI informados incorretamente. + + Payment request file handling Manipulação de arquivo de cobrança + Payment request file cannot be read! This can be caused by an invalid payment request file. + Arquivo de pedido de pagamento não pode ser lido ! Isto pode ser causado por uma requisição de pagamento inválida. + + Unverified payment requests to custom payment scripts are unsupported. Cobrança não verificada para scripts de pagamento personalizados não é suportado. @@ -3310,6 +3322,10 @@ por exemplo: alertnotify=echo %%s | mail -s "Alerta do Bitcoin" admin@foo.com.br Definir tamanho mínimo do bloco, em bytes (padrão: %u) + Set the number of threads to service RPC calls (default: %d) + Defina o número de threads para chamadas do serviço RPC (padrão: %d) + + Specify configuration file (default: %s) Especificar arquivo de configuração (padrão: %s) diff --git a/src/qt/locale/bitcoin_ru.ts b/src/qt/locale/bitcoin_ru.ts index b03ab05f075..53fb0c4e5ec 100644 --- a/src/qt/locale/bitcoin_ru.ts +++ b/src/qt/locale/bitcoin_ru.ts @@ -437,6 +437,14 @@ CoinControlDialog + Change: + Размен: + + + Copy change + Копировать размен + + (no label) (нет метки) @@ -487,6 +495,10 @@ ReceiveCoinsDialog + + Clear all fields of the form. + Очистить все поля формы + ReceiveRequestDialog @@ -513,6 +525,18 @@ SendCoinsDialog + Change: + Размен: + + + Clear all fields of the form. + Очистить все поля формы + + + Copy change + Копировать размен + + (no label) (нет метки) @@ -548,10 +572,34 @@ Address Адрес + + Received with + Получено на + + + Sent to + Отправлено на + + + Mined + Добытые + TransactionView + Received with + Получено на + + + Sent to + Отправлено на + + + Mined + Добытые + + Exporting Failed Экспорт не удался diff --git a/src/qt/locale/bitcoin_sl_SI.ts b/src/qt/locale/bitcoin_sl_SI.ts index 7b08cb750a3..3a1754546dd 100644 --- a/src/qt/locale/bitcoin_sl_SI.ts +++ b/src/qt/locale/bitcoin_sl_SI.ts @@ -63,15 +63,15 @@ Receiving addresses - Seznam naslovov prejemanja ... + Prejemni naslovi These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Seznam naslovov za pošiljanje plačil. Vedno preverite znesek in prejemnikov naslov pred pošiljanjem. + Tukaj so vaši Bitcoin naslovi za pošiljanje plačil. Vedno preverite znesek in prejemnikov naslov pred pošiljanjem kovancev. These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Seznam vaših bitcoin naslovov za prejemanje plačil. Priporočljivo je uporabiti nov naslov za vsako novo plačilo. + Tukaj so vaši Bitcoin naslovi za prejemanje plačil. Priporočljivo je uporabiti nov naslov za vsako novo plačilo. Copy &Label @@ -91,7 +91,7 @@ Exporting Failed - Neuspešen izvoz + Izvoz neuspešen @@ -149,7 +149,7 @@ Change passphrase - Zamenjaj geslo + Spremeni geslo Enter the old and new passphrase to the wallet. diff --git a/src/qt/locale/bitcoin_uz@Cyrl.ts b/src/qt/locale/bitcoin_uz@Cyrl.ts index 1013db678c2..06c6b1c29f7 100644 --- a/src/qt/locale/bitcoin_uz@Cyrl.ts +++ b/src/qt/locale/bitcoin_uz@Cyrl.ts @@ -959,6 +959,10 @@ Address: %4 Бегона тараф ўтказмалари URL манзиллари + &Network + Тармоқ + + Proxy &IP: Прокси &IP рақами: @@ -1101,13 +1105,53 @@ Address: %4 Recent transactions Сўнгги пул ўтказмалари - + + Unconfirmed transactions to watch-only addresses + Тасдиқланмаган ўтказмалар-фақат кўринадиган манзилларда + + + Current total balance in watch-only addresses + Жорий умумий баланс фақат кўринадиган манзилларда + + + out of sync + Синхронлашдан ташқари + + PaymentServer + + URI handling + URI осилиб қолмоқда + + + Invalid payment address %1 + Нотўғри тўлов манзили %1 + + + Payment request rejected + Тўлов сўрови инкор этилди + + + Payment request network doesn't match client network. + Тўлов сўрови тармоғи мижоз тармоғига мос келмайди. + + + Payment request has expired. + Тўлов сўрови тугади. + + + Payment request error + Тўлов сўрови хато + PeerTableModel + User Agent + Фойдаланувчи вакил + + Ping Time Ping вақти @@ -1119,6 +1163,10 @@ Address: %4 Миқдори + Enter a Bitcoin address (e.g. %1) + Bitcoin манзилини киритинг (масалан. %1) + + %1 m %1 д @@ -1221,6 +1269,22 @@ Address: %4 Батафсил маълумотларни кўриш учун уламни танланг. + Direction + Йўналиш + + + Version + Версия + + + User Agent + Фойдаланувчи вакил + + + Services + Хизматлар + + Starting Height Узунликнинг бошланиши @@ -1341,6 +1405,14 @@ Address: %4 ҳеч қачон + Inbound + Ички йўналиш + + + Outbound + Ташқи йўналиш + + Unknown Номаълум @@ -1427,10 +1499,30 @@ Address: %4 ReceiveRequestDialog + QR Code + QR Коди + + + Copy &Address + Нусҳалаш & Манзил + + &Save Image... Расмни &сақлаш + Request payment to %1 + %1 дан Тўловни сўраш + + + Payment information + Тўлов маълумоти + + + URI + URI + + Address Манзил @@ -1442,6 +1534,10 @@ Address: %4 Label Ёрлик + + Message + Хабар + RecentRequestsTableModel @@ -1454,6 +1550,10 @@ Address: %4 Ёрлик + Message + Хабар + + Amount Миқдори @@ -1461,7 +1561,15 @@ Address: %4 (no label) (Ёрлик мавжуд эмас) - + + (no message) + (Хабар йўқ) + + + (no amount) + (Миқдор мавжуд эмас) + + SendCoinsDialog @@ -1469,6 +1577,18 @@ Address: %4 Тангаларни жунат + Coin Control Features + Танга бошқаруви ҳусусиятлари + + + automatically selected + автоматик тарзда танланган + + + Insufficient funds! + Етарли бўлмаган миқдор + + Quantity: Сони: @@ -1505,6 +1625,38 @@ Address: %4 Бошқа ўзгартирилган манзил + Transaction Fee: + Ўтказма тўлови + + + Choose... + Танлов + + + Minimize + Камайтириш + + + per kilobyte + Хар килобайтига + + + Recommended: + Тавсия этилган + + + Confirmation time: + Тасдиқ вақти + + + normal + Нормал + + + fast + Тезкор + + Send to multiple recipients at once Бирданига бир нечта қабул қилувчиларга жўнатиш @@ -1517,6 +1669,10 @@ Address: %4 Ахлат қутиси: + Clear &All + Барчасини &Тозалаш + + Balance: Баланс @@ -1525,10 +1681,18 @@ Address: %4 Жўнатиш амалини тасдиқлаш + S&end + Жў&натиш + + Confirm send coins Тангалар жўнаишни тасдиқлаш + %1 to %2 + %1 дан %2 + + Copy quantity Нусха сони @@ -1557,6 +1721,10 @@ Address: %4 Нусха қайтими + or + ёки + + The amount to pay must be larger than 0. Тўлов миқдори 0. дан катта бўлиши керак. @@ -1604,6 +1772,14 @@ Address: %4 &Ёрлиқ: + Choose previously used address + Олдин фойдаланилган манзилни танла + + + This is a normal payment. + Бу нормал тўлов. + + Alt+A Alt+A @@ -1615,6 +1791,14 @@ Address: %4 Alt+P Alt+P + + Message: + Хабар: + + + This is a verified payment request. + Бу тасдиқланган тўлов талаби. + ShutdownWindow @@ -1622,6 +1806,10 @@ Address: %4 SignVerifyMessageDialog + Choose previously used address + Олдин фойдаланилган манзилни танла + + Alt+A Alt+A @@ -1637,7 +1825,15 @@ Address: %4 Signature Имзо - + + Clear &All + Барчасини & Тозалаш + + + Message verified. + Хабар тасдиқланди. + + SplashScreen @@ -1675,14 +1871,78 @@ Address: %4 Сана + Source + Манба + + + Generated + Яратилган + + + From + Дан + + + To + Га + + + own address + ўз манзили + + + label + ёрлиқ + + + Credit + Кредит + + + not accepted + қабул қилинмади + + + Transaction fee + Ўтказма тўлови + + + Net amount + Умумий миқдор + + + Message + Хабар + + + Comment + Шарҳ + + Transaction ID - ID + Ўтказма ID си + + + Merchant + Савдо + + + Transaction + Ўтказма Amount Миқдори + true + рост + + + false + ёлғон + + , has not been successfully broadcast yet , ҳалигача трансляция қилингани йўқ @@ -1733,10 +1993,22 @@ Address: %4 Яратилди, аммо қабул қилинмади + Offline + Оффлайн + + + Unconfirmed + Тасдиқланмаган + + Received with Ёрдамида қабул қилиш + Received from + Дан қабул қилиш + + Sent to Жўнатиш @@ -1852,10 +2124,22 @@ Address: %4 Ёрликни тахрирлаш + Show transaction details + Ўтказма тафсилотларини кўрсатиш + + + Export Transaction History + Ўтказмалар тарихини экспорт қилиш + + Exporting Failed Экспорт қилиб бўлмади + The transaction history was successfully saved to %1. + Ўтказмалар тарихи %1 га муваффаққиятли сақланди. + + Comma separated file (*.csv) Вергул билан ажратилган файл (*.csv) @@ -1897,7 +2181,11 @@ Address: %4 WalletFrame - + + No wallet has been loaded. + Хали бирорта хамён юкланмади. + + WalletModel @@ -1939,6 +2227,10 @@ Address: %4 Синов тармоғидан фойдаланинг + Connection options: + Уланиш кўрсаткичлари: + + Information Маълумот From 5216f3c5d48001f17422d4604c0e9a7c55cd4993 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Wed, 4 Nov 2015 23:50:36 +0100 Subject: [PATCH 180/201] Squashed 'src/leveldb/' changes from 7d41e6f..20ca81f 20ca81f Merge pull request #9 7aa105e leveldb: Win32WritableFile without memory mapping git-subtree-dir: src/leveldb git-subtree-split: 20ca81f08fb7fa108923a091668e447dcf5c6b9d --- util/env_win.cc | 236 ++++++++++---------------------------------------------- 1 file changed, 39 insertions(+), 197 deletions(-) diff --git a/util/env_win.cc b/util/env_win.cc index ef2ecae8306..e11a96b7918 100644 --- a/util/env_win.cc +++ b/util/env_win.cc @@ -103,39 +103,20 @@ class Win32RandomAccessFile : public RandomAccessFile DISALLOW_COPY_AND_ASSIGN(Win32RandomAccessFile); }; -class Win32MapFile : public WritableFile +class Win32WritableFile : public WritableFile { public: - Win32MapFile(const std::string& fname); + Win32WritableFile(const std::string& fname); + ~Win32WritableFile(); - ~Win32MapFile(); virtual Status Append(const Slice& data); virtual Status Close(); virtual Status Flush(); virtual Status Sync(); BOOL isEnable(); private: - std::string _filename; - HANDLE _hFile; - size_t _page_size; - size_t _map_size; // How much extra memory to map at a time - char* _base; // The mapped region - HANDLE _base_handle; - char* _limit; // Limit of the mapped region - char* _dst; // Where to write next (in range [base_,limit_]) - char* _last_sync; // Where have we synced up to - uint64_t _file_offset; // Offset of base_ in file - //LARGE_INTEGER file_offset_; - // Have we done an munmap of unsynced data? - bool _pending_sync; - - // Roundup x to a multiple of y - static size_t _Roundup(size_t x, size_t y); - size_t _TruncateToPageBoundary(size_t s); - bool _UnmapCurrentRegion(); - bool _MapNewRegion(); - DISALLOW_COPY_AND_ASSIGN(Win32MapFile); - BOOL _Init(LPCWSTR Path); + std::string filename_; + ::HANDLE _hFile; }; class Win32FileLock : public FileLock @@ -442,202 +423,63 @@ void Win32RandomAccessFile::_CleanUp() } } -size_t Win32MapFile::_Roundup( size_t x, size_t y ) +Win32WritableFile::Win32WritableFile(const std::string& fname) + : filename_(fname) { - return ((x + y - 1) / y) * y; + std::wstring path; + ToWidePath(fname, path); + DWORD Flag = PathFileExistsW(path.c_str()) ? OPEN_EXISTING : CREATE_ALWAYS; + _hFile = CreateFileW(path.c_str(), + GENERIC_READ | GENERIC_WRITE, + FILE_SHARE_READ|FILE_SHARE_DELETE|FILE_SHARE_WRITE, + NULL, + Flag, + FILE_ATTRIBUTE_NORMAL, + NULL); + // CreateFileW returns INVALID_HANDLE_VALUE in case of error, always check isEnable() before use } -size_t Win32MapFile::_TruncateToPageBoundary( size_t s ) +Win32WritableFile::~Win32WritableFile() { - s -= (s & (_page_size - 1)); - assert((s % _page_size) == 0); - return s; + if (_hFile != INVALID_HANDLE_VALUE) + Close(); } -bool Win32MapFile::_UnmapCurrentRegion() +Status Win32WritableFile::Append(const Slice& data) { - bool result = true; - if (_base != NULL) { - if (_last_sync < _limit) { - // Defer syncing this data until next Sync() call, if any - _pending_sync = true; - } - if (!UnmapViewOfFile(_base) || !CloseHandle(_base_handle)) - result = false; - _file_offset += _limit - _base; - _base = NULL; - _base_handle = NULL; - _limit = NULL; - _last_sync = NULL; - _dst = NULL; - // Increase the amount we map the next time, but capped at 1MB - if (_map_size < (1<<20)) { - _map_size *= 2; - } + DWORD r = 0; + if (!WriteFile(_hFile, data.data(), data.size(), &r, NULL) || r != data.size()) { + return Status::IOError("Win32WritableFile.Append::WriteFile: "+filename_, Win32::GetLastErrSz()); } - return result; -} - -bool Win32MapFile::_MapNewRegion() -{ - assert(_base == NULL); - //LONG newSizeHigh = (LONG)((file_offset_ + map_size_) >> 32); - //LONG newSizeLow = (LONG)((file_offset_ + map_size_) & 0xFFFFFFFF); - DWORD off_hi = (DWORD)(_file_offset >> 32); - DWORD off_lo = (DWORD)(_file_offset & 0xFFFFFFFF); - LARGE_INTEGER newSize; - newSize.QuadPart = _file_offset + _map_size; - SetFilePointerEx(_hFile, newSize, NULL, FILE_BEGIN); - SetEndOfFile(_hFile); - - _base_handle = CreateFileMappingA( - _hFile, - NULL, - PAGE_READWRITE, - 0, - 0, - 0); - if (_base_handle != NULL) { - _base = (char*) MapViewOfFile(_base_handle, - FILE_MAP_ALL_ACCESS, - off_hi, - off_lo, - _map_size); - if (_base != NULL) { - _limit = _base + _map_size; - _dst = _base; - _last_sync = _base; - return true; - } - } - return false; + return Status::OK(); } -Win32MapFile::Win32MapFile( const std::string& fname) : - _filename(fname), - _hFile(NULL), - _page_size(Win32::g_PageSize), - _map_size(_Roundup(65536, Win32::g_PageSize)), - _base(NULL), - _base_handle(NULL), - _limit(NULL), - _dst(NULL), - _last_sync(NULL), - _file_offset(0), - _pending_sync(false) +Status Win32WritableFile::Close() { - std::wstring path; - ToWidePath(fname, path); - _Init(path.c_str()); - assert((Win32::g_PageSize & (Win32::g_PageSize - 1)) == 0); -} - -Status Win32MapFile::Append( const Slice& data ) -{ - const char* src = data.data(); - size_t left = data.size(); - Status s; - while (left > 0) { - assert(_base <= _dst); - assert(_dst <= _limit); - size_t avail = _limit - _dst; - if (avail == 0) { - if (!_UnmapCurrentRegion() || - !_MapNewRegion()) { - return Status::IOError("WinMmapFile.Append::UnmapCurrentRegion or MapNewRegion: ", Win32::GetLastErrSz()); - } - } - size_t n = (left <= avail) ? left : avail; - memcpy(_dst, src, n); - _dst += n; - src += n; - left -= n; - } - return s; -} - -Status Win32MapFile::Close() -{ - Status s; - size_t unused = _limit - _dst; - if (!_UnmapCurrentRegion()) { - s = Status::IOError("WinMmapFile.Close::UnmapCurrentRegion: ",Win32::GetLastErrSz()); - } else if (unused > 0) { - // Trim the extra space at the end of the file - LARGE_INTEGER newSize; - newSize.QuadPart = _file_offset - unused; - if (!SetFilePointerEx(_hFile, newSize, NULL, FILE_BEGIN)) { - s = Status::IOError("WinMmapFile.Close::SetFilePointer: ",Win32::GetLastErrSz()); - } else - SetEndOfFile(_hFile); - } if (!CloseHandle(_hFile)) { - if (s.ok()) { - s = Status::IOError("WinMmapFile.Close::CloseHandle: ", Win32::GetLastErrSz()); - } + return Status::IOError("Win32WritableFile.Close::CloseHandle: "+filename_, Win32::GetLastErrSz()); } _hFile = INVALID_HANDLE_VALUE; - _base = NULL; - _base_handle = NULL; - _limit = NULL; - - return s; -} - -Status Win32MapFile::Sync() -{ - Status s; - if (_pending_sync) { - // Some unmapped data was not synced - _pending_sync = false; - if (!FlushFileBuffers(_hFile)) { - s = Status::IOError("WinMmapFile.Sync::FlushFileBuffers: ",Win32::GetLastErrSz()); - } - } - if (_dst > _last_sync) { - // Find the beginnings of the pages that contain the first and last - // bytes to be synced. - size_t p1 = _TruncateToPageBoundary(_last_sync - _base); - size_t p2 = _TruncateToPageBoundary(_dst - _base - 1); - _last_sync = _dst; - if (!FlushViewOfFile(_base + p1, p2 - p1 + _page_size)) { - s = Status::IOError("WinMmapFile.Sync::FlushViewOfFile: ",Win32::GetLastErrSz()); - } - } - return s; + return Status::OK(); } -Status Win32MapFile::Flush() +Status Win32WritableFile::Flush() { + // Nothing to do here, there are no application-side buffers return Status::OK(); } -Win32MapFile::~Win32MapFile() +Status Win32WritableFile::Sync() { - if (_hFile != INVALID_HANDLE_VALUE) { - Win32MapFile::Close(); + if (!FlushFileBuffers(_hFile)) { + return Status::IOError("Win32WritableFile.Sync::FlushFileBuffers "+filename_, Win32::GetLastErrSz()); } + return Status::OK(); } -BOOL Win32MapFile::_Init( LPCWSTR Path ) -{ - DWORD Flag = PathFileExistsW(Path) ? OPEN_EXISTING : CREATE_ALWAYS; - _hFile = CreateFileW(Path, - GENERIC_READ | GENERIC_WRITE, - FILE_SHARE_READ|FILE_SHARE_DELETE|FILE_SHARE_WRITE, - NULL, - Flag, - FILE_ATTRIBUTE_NORMAL, - NULL); - if(!_hFile || _hFile == INVALID_HANDLE_VALUE) - return FALSE; - else - return TRUE; -} - -BOOL Win32MapFile::isEnable() +BOOL Win32WritableFile::isEnable() { - return _hFile ? TRUE : FALSE; + return _hFile != INVALID_HANDLE_VALUE; } Win32FileLock::Win32FileLock( const std::string& fname ) : @@ -981,7 +823,7 @@ Status Win32Env::NewLogger( const std::string& fname, Logger** result ) { Status sRet; std::string path = fname; - Win32MapFile* pMapFile = new Win32MapFile(ModifyPath(path)); + Win32WritableFile* pMapFile = new Win32WritableFile(ModifyPath(path)); if(!pMapFile->isEnable()){ delete pMapFile; *result = NULL; @@ -995,7 +837,7 @@ Status Win32Env::NewWritableFile( const std::string& fname, WritableFile** resul { Status sRet; std::string path = fname; - Win32MapFile* pFile = new Win32MapFile(ModifyPath(path)); + Win32WritableFile* pFile = new Win32WritableFile(ModifyPath(path)); if(!pFile->isEnable()){ *result = NULL; sRet = Status::IOError(fname,Win32::GetLastErrSz()); From 9c810058d8f3ae76234dc4efa53a57306694b92c Mon Sep 17 00:00:00 2001 From: Diego Viola Date: Tue, 22 Sep 2015 04:25:26 -0300 Subject: [PATCH 181/201] Fix spelling of Qt --- contrib/debian/examples/bitcoin.conf | 4 ++-- src/qt/guiutil.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/contrib/debian/examples/bitcoin.conf b/contrib/debian/examples/bitcoin.conf index 31cca981e0a..2fc46fb60f6 100644 --- a/contrib/debian/examples/bitcoin.conf +++ b/contrib/debian/examples/bitcoin.conf @@ -54,7 +54,7 @@ # JSON-RPC options (for controlling a running Bitcoin/bitcoind process) # -# server=1 tells Bitcoin-QT and bitcoind to accept JSON-RPC commands +# server=1 tells Bitcoin-Qt and bitcoind to accept JSON-RPC commands #server=0 # You must set rpcuser and rpcpassword to secure the JSON-RPC api @@ -72,7 +72,7 @@ # NOTE: opening up the RPC port to hosts outside your local trusted network is NOT RECOMMENDED, # because the rpcpassword is transmitted over the network unencrypted. -# server=1 tells Bitcoin-QT to accept JSON-RPC commands. +# server=1 tells Bitcoin-Qt to accept JSON-RPC commands. # it is also read by bitcoind to determine if RPC should be enabled #rpcallowip=10.1.1.34/255.255.255.0 #rpcallowip=1.2.3.4/24 diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp index de8edef7927..71de3d2cd05 100644 --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -390,7 +390,7 @@ void SubstituteFonts(const QString& language) { #if defined(Q_OS_MAC) // Background: -// OSX's default font changed in 10.9 and QT is unable to find it with its +// OSX's default font changed in 10.9 and Qt is unable to find it with its // usual fallback methods when building against the 10.7 sdk or lower. // The 10.8 SDK added a function to let it find the correct fallback font. // If this fallback is not properly loaded, some characters may fail to From 3ad96bdf73f788a65c769a7579bace40cab0bd81 Mon Sep 17 00:00:00 2001 From: Alex Morcos Date: Thu, 17 Sep 2015 17:43:34 -0400 Subject: [PATCH 182/201] Fix locking in GetTransaction. GetTransaction needs to lock cs_main until ReadBlockFromDisk completes, the data inside CBlockIndex's can change since pruning. This lock was held by all calls to GetTransaction except rest_tx. --- src/main.cpp | 68 +++++++++++++++++++++++++++++------------------------------- 1 file changed, 33 insertions(+), 35 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index bcb0f20d61a..50e01fa4008 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1110,47 +1110,45 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa bool GetTransaction(const uint256 &hash, CTransaction &txOut, uint256 &hashBlock, bool fAllowSlow) { CBlockIndex *pindexSlow = NULL; + + LOCK(cs_main); + + if (mempool.lookup(hash, txOut)) { - LOCK(cs_main); - { - if (mempool.lookup(hash, txOut)) - { - return true; - } - } + return true; + } - if (fTxIndex) { - CDiskTxPos postx; - if (pblocktree->ReadTxIndex(hash, postx)) { - CAutoFile file(OpenBlockFile(postx, true), SER_DISK, CLIENT_VERSION); - if (file.IsNull()) - return error("%s: OpenBlockFile failed", __func__); - CBlockHeader header; - try { - file >> header; - fseek(file.Get(), postx.nTxOffset, SEEK_CUR); - file >> txOut; - } catch (std::exception &e) { - return error("%s : Deserialize or I/O error - %s", __func__, e.what()); - } - hashBlock = header.GetHash(); - if (txOut.GetHash() != hash) - return error("%s : txid mismatch", __func__); - return true; + if (fTxIndex) { + CDiskTxPos postx; + if (pblocktree->ReadTxIndex(hash, postx)) { + CAutoFile file(OpenBlockFile(postx, true), SER_DISK, CLIENT_VERSION); + if (file.IsNull()) + return error("%s: OpenBlockFile failed", __func__); + CBlockHeader header; + try { + file >> header; + fseek(file.Get(), postx.nTxOffset, SEEK_CUR); + file >> txOut; + } catch (std::exception &e) { + return error("%s : Deserialize or I/O error - %s", __func__, e.what()); } + hashBlock = header.GetHash(); + if (txOut.GetHash() != hash) + return error("%s : txid mismatch", __func__); + return true; } + } - if (fAllowSlow) { // use coin database to locate block that contains transaction, and scan it - int nHeight = -1; - { - CCoinsViewCache &view = *pcoinsTip; - const CCoins* coins = view.AccessCoins(hash); - if (coins) - nHeight = coins->nHeight; - } - if (nHeight > 0) - pindexSlow = chainActive[nHeight]; + if (fAllowSlow) { // use coin database to locate block that contains transaction, and scan it + int nHeight = -1; + { + CCoinsViewCache &view = *pcoinsTip; + const CCoins* coins = view.AccessCoins(hash); + if (coins) + nHeight = coins->nHeight; } + if (nHeight > 0) + pindexSlow = chainActive[nHeight]; } if (pindexSlow) { From 612efe89e3cc59f9c5ea16ece8a386e7c74bdd53 Mon Sep 17 00:00:00 2001 From: MarcoFalke Date: Mon, 7 Sep 2015 11:00:59 +0200 Subject: [PATCH 183/201] [Qt] Raise debug window when requested * Raise the debug window when hidden behind other windows * Switch to the debug window when on another virtual desktop * Show the debug window when minimized This change is a conceptual copy of 5ffaaba and 382e9e2 --- src/qt/bitcoingui.cpp | 17 ++++++++++++----- src/qt/bitcoingui.h | 2 ++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 30b7b54de79..6b4840dcd6c 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -207,11 +207,6 @@ BitcoinGUI::BitcoinGUI(const NetworkStyle *networkStyle, QWidget *parent) : statusBar()->addWidget(progressBar); statusBar()->addPermanentWidget(frameBlocks); - connect(openRPCConsoleAction, SIGNAL(triggered()), rpcConsole, SLOT(show())); - - // prevents an open debug window from becoming stuck/unusable on client shutdown - connect(quitAction, SIGNAL(triggered()), rpcConsole, SLOT(hide())); - // Install event filter to be able to catch status tip events (QEvent::StatusTip) this->installEventFilter(this); @@ -334,6 +329,10 @@ void BitcoinGUI::createActions(const NetworkStyle *networkStyle) connect(optionsAction, SIGNAL(triggered()), this, SLOT(optionsClicked())); connect(toggleHideAction, SIGNAL(triggered()), this, SLOT(toggleHidden())); connect(showHelpMessageAction, SIGNAL(triggered()), this, SLOT(showHelpMessageClicked())); + connect(openRPCConsoleAction, SIGNAL(triggered()), this, SLOT(showDebugWindow())); + // prevents an open debug window from becoming stuck/unusable on client shutdown + connect(quitAction, SIGNAL(triggered()), rpcConsole, SLOT(hide())); + #ifdef ENABLE_WALLET if(walletFrame) { @@ -569,6 +568,14 @@ void BitcoinGUI::aboutClicked() dlg.exec(); } +void BitcoinGUI::showDebugWindow() +{ + rpcConsole->showNormal(); + rpcConsole->show(); + rpcConsole->raise(); + rpcConsole->activateWindow(); +} + void BitcoinGUI::showHelpMessageClicked() { HelpMessageDialog *help = new HelpMessageDialog(this, false); diff --git a/src/qt/bitcoingui.h b/src/qt/bitcoingui.h index 662ef9d9e84..616c3717b94 100644 --- a/src/qt/bitcoingui.h +++ b/src/qt/bitcoingui.h @@ -189,6 +189,8 @@ private slots: void optionsClicked(); /** Show about dialog */ void aboutClicked(); + /** Show debug window */ + void showDebugWindow(); /** Show help message dialog */ void showHelpMessageClicked(); #ifndef Q_OS_MAC From dfe0d4da7e56926937d1f309eb43030a81fa29df Mon Sep 17 00:00:00 2001 From: Zak Wilcox Date: Sat, 29 Aug 2015 18:52:44 +0100 Subject: [PATCH 184/201] Include bitcoin-tx binary on Debian/Ubuntu Currently left out of Matt's PPA. Debian's package for unstable already has it. --- contrib/debian/bitcoind.install | 1 + 1 file changed, 1 insertion(+) diff --git a/contrib/debian/bitcoind.install b/contrib/debian/bitcoind.install index 798ea851f6e..494e5cbdc3a 100644 --- a/contrib/debian/bitcoind.install +++ b/contrib/debian/bitcoind.install @@ -1,2 +1,3 @@ usr/local/bin/bitcoind usr/bin usr/local/bin/bitcoin-cli usr/bin +usr/local/bin/bitcoin-tx usr/bin From 43c2789fe36fd8ee7657d2e1cea65f7c49564eb7 Mon Sep 17 00:00:00 2001 From: Zak Wilcox Date: Thu, 17 Sep 2015 07:23:04 +0100 Subject: [PATCH 185/201] Split bitcoin-tx into its own package Reverts the change putting it in the bitcoind deb. --- contrib/debian/bitcoin-tx.install | 1 + contrib/debian/bitcoind.install | 1 - contrib/debian/control | 15 +++++++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 contrib/debian/bitcoin-tx.install diff --git a/contrib/debian/bitcoin-tx.install b/contrib/debian/bitcoin-tx.install new file mode 100644 index 00000000000..2c21052a687 --- /dev/null +++ b/contrib/debian/bitcoin-tx.install @@ -0,0 +1 @@ +usr/local/bin/bitcoin-tx usr/bin diff --git a/contrib/debian/bitcoind.install b/contrib/debian/bitcoind.install index 494e5cbdc3a..798ea851f6e 100644 --- a/contrib/debian/bitcoind.install +++ b/contrib/debian/bitcoind.install @@ -1,3 +1,2 @@ usr/local/bin/bitcoind usr/bin usr/local/bin/bitcoin-cli usr/bin -usr/local/bin/bitcoin-tx usr/bin diff --git a/contrib/debian/control b/contrib/debian/control index a653260ad30..a1af841f1c6 100644 --- a/contrib/debian/control +++ b/contrib/debian/control @@ -56,3 +56,18 @@ Description: peer-to-peer network based digital currency - Qt GUI requires 20+ GB of space, slowly growing. . This package provides Bitcoin-Qt, a GUI for Bitcoin based on Qt. + +Package: bitcoin-tx +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: peer-to-peer digital currency - standalone transaction tool + Bitcoin is a free open source peer-to-peer electronic cash system that + is completely decentralized, without the need for a central server or + trusted parties. Users hold the crypto keys to their own money and + transact directly with each other, with the help of a P2P network to + check for double-spending. + . + This package provides bitcoin-tx, a command-line transaction creation + tool with minimal dependencies which can be used without a bitcoin + daemon. Some means of exchanging minimal transaction data with peers + is still required. From b3964e3b7a91547d2080206361a401d6ad615777 Mon Sep 17 00:00:00 2001 From: Zak Wilcox Date: Thu, 17 Sep 2015 10:17:24 +0100 Subject: [PATCH 186/201] Drop "with minimal dependencies" from description Five boost libs plus libcrypto are needed; I don't think that quite passes for minimal. --- contrib/debian/control | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/contrib/debian/control b/contrib/debian/control index a1af841f1c6..5eca0341e35 100644 --- a/contrib/debian/control +++ b/contrib/debian/control @@ -68,6 +68,5 @@ Description: peer-to-peer digital currency - standalone transaction tool check for double-spending. . This package provides bitcoin-tx, a command-line transaction creation - tool with minimal dependencies which can be used without a bitcoin - daemon. Some means of exchanging minimal transaction data with peers - is still required. + tool which can be used without a bitcoin daemon. Some means of + exchanging minimal transaction data with peers is still required. From cf67d8b49b59d66bc0e079a31ca547834dd49161 Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Thu, 9 Apr 2015 11:50:18 +0000 Subject: [PATCH 187/201] Bugfix: Allow mining on top of old tip blocks for testnet (fixes testnet-in-a-box use case) --- src/chainparams.cpp | 3 +++ src/chainparams.h | 2 ++ src/main.cpp | 3 ++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/chainparams.cpp b/src/chainparams.cpp index ffcbaceb0a2..244d8ff0e77 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -122,6 +122,7 @@ class CMainParams : public CChainParams { nMinerThreads = 0; nTargetTimespan = 14 * 24 * 60 * 60; // two weeks nTargetSpacing = 10 * 60; + nMaxTipAge = 24 * 60 * 60; /** * Build the genesis block. Note that the output of the genesis coinbase cannot @@ -203,6 +204,7 @@ class CTestNetParams : public CMainParams { nMinerThreads = 0; nTargetTimespan = 14 * 24 * 60 * 60; //! two weeks nTargetSpacing = 10 * 60; + nMaxTipAge = 0x7fffffff; //! Modify the testnet genesis block so the timestamp is valid for a later start. genesis.nTime = 1296688602; @@ -260,6 +262,7 @@ class CRegTestParams : public CTestNetParams { nTargetTimespan = 14 * 24 * 60 * 60; //! two weeks nTargetSpacing = 10 * 60; bnProofOfWorkLimit = ~uint256(0) >> 1; + nMaxTipAge = 24 * 60 * 60; genesis.nTime = 1296688602; genesis.nBits = 0x207fffff; genesis.nNonce = 2; diff --git a/src/chainparams.h b/src/chainparams.h index ef20a885585..4b6ddca3577 100644 --- a/src/chainparams.h +++ b/src/chainparams.h @@ -69,6 +69,7 @@ class CChainParams int64_t TargetTimespan() const { return nTargetTimespan; } int64_t TargetSpacing() const { return nTargetSpacing; } int64_t Interval() const { return nTargetTimespan / nTargetSpacing; } + int64_t MaxTipAge() const { return nMaxTipAge; } /** Make miner stop after a block is found. In RPC, don't return until nGenProcLimit blocks are generated */ bool MineBlocksOnDemand() const { return fMineBlocksOnDemand; } /** In the future use NetworkIDString() for RPC fields */ @@ -95,6 +96,7 @@ class CChainParams int64_t nTargetTimespan; int64_t nTargetSpacing; int nMinerThreads; + long nMaxTipAge; std::vector vSeeds; std::vector base58Prefixes[MAX_BASE58_TYPES]; CBaseChainParams::Network networkID; diff --git a/src/main.cpp b/src/main.cpp index 50e01fa4008..dd438f42c7f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1248,6 +1248,7 @@ CAmount GetBlockValue(int nHeight, const CAmount& nFees) bool IsInitialBlockDownload() { + const CChainParams& chainParams = Params(); LOCK(cs_main); if (fImporting || fReindex || chainActive.Height() < Checkpoints::GetTotalBlocksEstimate()) return true; @@ -1255,7 +1256,7 @@ bool IsInitialBlockDownload() if (lockIBDState) return false; bool state = (chainActive.Height() < pindexBestHeader->nHeight - 24 * 6 || - pindexBestHeader->GetBlockTime() < GetTime() - 24 * 60 * 60); + pindexBestHeader->GetBlockTime() < GetTime() - chainParams.MaxTipAge()); if (!state) lockIBDState = true; return state; From a2f2fb6acfbc8db3626b790839b54fd417c08806 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Thu, 1 Oct 2015 18:38:54 +0200 Subject: [PATCH 188/201] build: disable -Wself-assign Prevent these warnings in clang 3.6: ./serialize.h:96:9: warning: explicitly assigning value of variable of type 'uint64_t' (aka 'unsigned long') to itself [-Wself-assign] obj = (obj); ~~~ ^ ~~~ --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index bc0bbc43979..93517fb31c6 100644 --- a/configure.ac +++ b/configure.ac @@ -167,7 +167,7 @@ fi ## compatibility with the legacy buildsystem. ## if test "x$CXXFLAGS_overridden" = "xno"; then - CXXFLAGS="$CXXFLAGS -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter" + CXXFLAGS="$CXXFLAGS -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter -Wno-self-assign" fi CPPFLAGS="$CPPFLAGS -DBOOST_SPIRIT_THREADSAFE -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS" From 90897ab34326b2b600b683f598bca702d5beb8d3 Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Mon, 12 Oct 2015 14:25:51 -0700 Subject: [PATCH 189/201] Update bluematt-key, the old one is long-since revoked --- contrib/gitian-downloader/bluematt-key.pgp | Bin 4113 -> 10324 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/contrib/gitian-downloader/bluematt-key.pgp b/contrib/gitian-downloader/bluematt-key.pgp index fb6d9eb28423d2c8ece89179f8e67ae06fa6dc13..2389d4657fb7f5f225f5d76e08841fd6e21d4be9 100644 GIT binary patch literal 10324 zcmZ{qWl&vPv#uAukl-5J-Q9viU=iHi-7UD=!rk57Ex227*WeDp3C`Ww-#Pc3ANS55 zb5@O6)zvlX8U1#T?sUjc(8_(4pCM2IN5BkXI<6>utH4=2cz^~1mq1ODEpC4!Ey*Cf zjo?jsn0Met*9B^={l#Ey!uFzFa39tj3bDYjnG*Z{LkRtk#x<3M_$A{5O2=tnM`#og zW$i#KA9rAE%RE-hV`=Pa(Q0vlvgX;l+uB9)P$8K7`x1(Ae1M8@Gu;*Ltv_y%v~;)k zrdu^6x&U%>l>{vYFdprf5(a_=j)F@u4}!os*{=#WLyHQCY(W#AfdNBY$ZOaA)T?@r zY3Q7GzajI2aM7Z&7w-VEm2pg-7so@$q_p+mRrw zIXk_5IcDb!I`2D{k|6QJL|GENv-3UW*Z5mr$`W3R{s|FWy|FJ96TvS5p8?z18E zB)OoJzLgg~hMNI1d~%i#@l59HmA!ri^!r|V=Fd4mqq#&biCrPp7sqEhrP9SmsuBP! z1Z!KCUJK^Y`k6c^m6+_{iI(wZ&tnW}P?tJ>H-&MI&_U6aqs{B-Q~%(ZE@z^{5i}(h9)Jb`fM{a+X6WKVB4+PoXk%kfLL+M9YWjDDmPEkzpO5h0 zm+^moG8x<3egQ)YL1REb0%&0%|6&A*4+R5{J^=-QLxcyyK|w;mVgVuH5fGuVA)z23 zi69_x`~e8?sNjw^voB1hQ}sqDAFdv80xT9RKjcOjs(L(P66Gsp&F#G33Mg6i+V=AM zJVO@f%5wPq&im|9xx>E@$&)zJD65K5*kCyLiIAbPIlk@&F+=!iPZj2dxbsUnF|~Bhg|n0nbyb(Hc2C zd#S@pbku{Rf-}~_!mWAEnyb&EZ`HSpH1lFii)-a$KdD*3@E25cma1^hXIm0!05vvB&*~6+iX%;0i*n_{rLxH+lZ#?lYDWyD@rbVnSL2nz z_yRC;#Bzjo>$fKRhrjOs(1_@%JO_)Y0~P2><@2okJ})Emi8iKuG1#)HVQ^;ej+#Q; zmU=BcGaq3dij!Y7`; z#~fst666~-zy}H87Z?SGB!EW!halL02@3y<$LF1S1+ncI6|-zqKzrT9-4G0*5qsZB z(X!t)`fJCQ>@YR5B~w|&{T5Ccq@6aKID6BJhQz>XqJa@d#y1WnHPRy+?)c+L+9A+6 z)cE8b1*Y@1krz3CdIQHc)B^(`5Uc%#II5&4Os^GN0Kamw!AW<@Yh(lSN}-lO_CpKZ*M$UNCfLy_G$jx03O^-ENjC7&%4`L(5Vt5VRy zkWk5}^umgrd_v@z&BgRVAD-l_$P#-)mwTrY{%nIDtfVdLN3uKi`U@cT zlGK+eM)KB3$HhNqEs;oSka2-Ur2He2CPQnRXQ68fZLmQdqg*?tO#>llMkCBUd7EN1 zMH%O_Q4w0b(W|doCjNCc*C6yk9dB;pVW!)W&%}-l)ZtnG&;k5Qhl>8S-CsJ!ZNF4= zLBffkwL-lM1^~Ig9ekZ%h1WBOD4V!_&->pRdvoXzinW@@;=}toF6+67 zf3fFsD&3I`06S87sduow^-NfYY{A38N%U11p?J=u=N0I$HeK8^{vOCgyZfo1G3>zR zx0I1b)R0bHT9r|1;q{}2;OjQr!fDBv@*Bzf!h*_qxFj?N+P~f@_qC}1^{y%;(Wp*@ z|M}e$kn0JVvz7!aeY0<&vsZEMx3=<5wF1c12_k^H+TiG8>UAc+%r6|=*G?V)L;T-E zpt|YU`Pb0*W7xnl!6syK5D*ZG@+mAka#`_#35K?Kw_*Co(24Ar)Y{h4Ig^M5nr+xM z<|`XQ3(2_~%Kfj$D(|7siI4uf+hpD9HB)Nyvk47>S>io$IZzH3=MsoFyJ-a8=Wabc z9YWTO8jjGHD%Rqzt!s1Rm)6g++&rm>hb^Cq6B4yL4TJw2(r(HAdWSJea^G9eaK=DXmKqR`+E0}HW?o0%U)e*tx?x{IBwtj_S+T?3x*d}7Zp|>p zR~Mgrm-bLIxY@nZCl{CT-8F;@Kp=}4YQbysP2gJvZ>vDLowBUlFWpwza@gcNCqrN-Y;z`hHg26c$g6toa0RoUN=F08`ZN$fR$C@L@ht{z43gEAy^`0$QkRr%VpBkK8t8X@Q~tGW0Ku zs<-rOe;KOB$!X>A>HDPGNdgF{c*~i|kZq>5&&?MH5R-5^ycp%Ng$#n3wYdD$_$UC1msc)Qqmc@HxAjnTExUBy2MgH_j zP()kRErBACxz)=eSKX z;W={l#O2{hhAI>}LV-)hZ8dX@!DNFtH+S`V?2>5r44~T@jt~c2o~3D=JX8V;8LAr0t7AC3 z7Frjd#%2~obw@SCAD0w~LK}=mOI#n^+=}a-h7%sOI|c5VC5IUt%leW`-;}>PYCOwQ zryJK9y~861OC>f(Xr|&;wAR?(_tHhmOM188e(7M+D&;v3^XP5Eq#3lVVhR%SQjl_U z<`vk{p#KIVE6~Z%U%Ly+<|gcAF*Bol!apL1QKjN!s2%z}0k2fKC(3=aGFHuzjA94D zB}g(lf4pm5gvf|1Vc;<#=X4iX?x;#e+dFN;FaX5tc&t4Szeb+$r3%BL(HrH}8*SE$ z>|L2gl2=*VNgBG{d=RK}__magaz)K2l3YYa5|E;~FdNas{#E!~y!uOymN~(XHeS@W z9`)7O4ZKzJ)9P!Upnfmx#Z00;((oYtoo#96riOA^VbtflkwY#tNkpStl!#PSG2^r- zsTcUhf&|Jx86{o}WA>g=D;ucQQu0GZv(o~LZwe};6FbmQP$a~Y#MTM-A~_Jb#shw6 z{cA~Y25T|p`&8b}b4cI9N4Ag9AE6Z*VlgLST%B5I3#Epz{ZSZq83YLJv*N`C7sUYV z90yjXsav&K=@3m|e&S`qBOjbgQaDA7rPDWODu$(VahX?{UM8J$QF>u8l2N=6#YgwC zoRSL(#lZ|scC5dmJ4|@(K)#zYw;`5q{KtwVj9T6idIByk0k9_C2bi&HXn2b>kU z*C2irz5Sr50*F#)FkWRZI-2gKN%Sl*dPzm{Dg&5+l2U1%eFv) z+Su>S)xo3sizsohd~TVorD4NlV1S&9K8^evG$5 zf!6MO*c?nhrlj_7;iDyQOuxTL`f!PpS-Q~_7H#``=zspHl|q9m$JF$+ZxC$5>4J|f zxu4kDd(6_8HyO2y!ds$8gTJc5Y9!nQh2Z*Y2g7wzXcdGwqYoUlb}e9yJQQ}}s`8DC zpt18acj4NDH6@QjnByS!u4$3vSLbdjkeM>m>8m4xJWc>!_VDhh*B2SLDz^(bDRZiE zc@b8o>i%a2^38~HbF6ruHjg^IF4NC9)nnVV5h$*jHPw}9EAk7KgVQB3O6qC25|Io> zl6)Yul?vVpCi*h0_T>iGcFJilV}FXNYxsX0M*gZ90$57*!bu(885c*4eTYNQkjuf= zeGh+1(Llz>{e;=e1Vte_KPl@wnWDz}P?ys_e`@nxC#GN*h_^do#W#R`>gGojec*F` zx?;{L8Bb0lMP2kewVfgmg}^-GE>>NVp8M%`mg9HHGfx;gJRjXfJ@(pBG&pW-)~qMp zf`s$;fP&N(f;99#4;!t5I{E61c`9l-S(giZjgdDRn`F+WRm<5D@djBbL!Li~`!RUU z_K(SWGhYuR$btG752qK$$3Gd!Ux`KdS7M)^E&fMhaVjGRNa__=ZusC{k*g;)`GEe! zQj9}|btDCJQ{wQNkGlzViOj$R>VwPOSn>;j)Ks;RY7z7)rXLP?(puUA9UZFErVQj1i5dXSXo9$924zpT7=$QZ&GHL32P z$-K$<$L`$rQ@e5u)n)>VSl^TH?OQha&{u{`AG1V+k-5qx^;?~#D;?ixnXnX}QRh}K|0Vm>U<$?*X4==;#LHO zq%uNarW1KNgGhX%%g>R!l3c3{_7-rmP@(Ud8~PP~%7dIw((Z-AE%Kof~ABu?+1+Dx*(&&j$*&uV;BFMF$<@!yA2E4ko!eiVUf_U0(r-90X z_qh?^=3<*htZPS=s~whQpUvkPU1^~`?PP}Jyr$WuGP>)4X@=00a6R2}Vf&1X8RsuA zpGM8a8WYP;sgw)u$HpXMYz#iFuT6?rJ#O;|eT-SzA@nBoEiL3$(8K_Xi;ZCMe6KqQ zBj6cjR)Z-#Q44(PqM>BW5o1zR`CX{sXUG`R0*D{yjo07Lw_H7ty*~w!$h3U*B*OZR z%hx#~_p9}lVst^j{i1OsiaseYbZtOCpX+jfm8WOmtaQOR^rfCohbsdSbv%v_Do6iu z$;>S2XAE^avO%ERStv5ML(fSnG-gHT7jw!DJv-R0;VS6ia0!hFbvOKkj9t<-ojly@ za{T-jy1c?oxRQhCE%k1oq(zHZ=Qm(gimcN?D(FlZuAl~tJ{{Bmn=9&N?nqId=pIN) zF09@AM2sAbg6?rj#9EQ(qo^xRZ?Rn^K5D1?EIjRhYx2KzNV%^$^zRw^Q3O09tQd2- zWk&gMOniu;c3Q}}t5ct|jFk=&%ls66NQ+zedsHvHcE^1DRxQ_lIK z#WHwJ0<^BwH3yQ;-18^#N6pF@2r+OX_U20TTXd~s5v4yB&taNNhfwGX8iX`%;cSKc z22yUk?VmZm48C16@oz*x5|ZRkn7|RX#|?}2O!_AtRKc`66uF~9VGLE{?-l&KlRh+T z%i}*p*Z=*2wo~=Qdnw^PMg-R>g=CzmP6#Y)GHqtmzFIMt5)+?SZfbu-{!EKqbAto( z3y>{|rxXyPveht5ppOFy3M)+ZYl(r1L`+jKy``4sQmOBr?`rW@#U}g7BNsodzNUgf z>FXx$=Dt|0{DMnUxL6$K+`XcD0M!{dp%*M$&ua`v*R+7e#nwyed1gLKLt@*Zx{&h3 zx+g-b7`^UAcT9CnPbSO!9Z^4gMOjJE{agaKI@aP0vIC>Z`Ntu4>m>Ovd+?|C9DP~7 zugsP<<5$)_ZlP1KxZyX95f#i#Y+akN$!U&Clv>*yA9)za4f`k@!E{&Us$at!U5Q6r z@P4{KHmgUSo6kWUvi~9DEUkj}8fxK~W~X#r-c}|ptlQAlN$#fUW-OXcP`@;7*s_yK z?86YM=&lkgI~)g$X5pXY8I#z3lr(8jY{`>?aX<`-Me3V&4#dX?b|4bWR=fjoGuRkpWOOQ-oNFkwI0kOmG^1DZvfa0biu%PR5Mu2=m@5 zzKg!6Lv{2p>ki|rNi(nEV$_*>%g+y|(|$ewjIday1L7V~)F4KY5NGKQvoSs2kER%6 zE7aI$^1POm)Q$`HH!Qq)q~WQ)fLe}%TAP+wQ6|eIsN86aHc{_eLrD)pB72R9riRyR znzGOX1z5Bet_2EW4zf=K+WZNQGPKQZ>>Woqtw*%+%yY|p!-vyctxtSUXL zeQbNR^jJ32AyKSl0;6!U1@vJc&j}l`3<&E)Amhd zTNGz{XAg^LPvyL=olaFVSBzjJP(p7$qB+l2q3UF{m~!=o{Ex_UJAPe1st?PgE}FB9 zw{H8gCS2@(k8!srL|FZLXex^9f(obUh&>Dj2x#-NzBFc`FqD<;+o{_K!QVjFBX&Kn zg`CuTr`a8|n!z}6lAvIdl*ih*!sGP3;#DV?Fh$1GLsi|K(OVWWurKFGhz6-gug=@N zO>~WRE`hPff`YN-36UNx8lvR5vKz=jgz1JaqIct`$KQJDah6&v*#t|X|YN)7+_mPuPx%PeQixx+dau z#y+zE^vn+jQYdRQGgKy3&#Do$>OPkzmK|-}Q?#I1TK|)wg!yt%HSSlnciTsM2o~v4 z5Uw+>?Z*hYsVsbIkMaJ9g{XotDf1Xv%$$Z6 z`kFJLfg8=00fZx$ADtTM1fzE$Rk|01*dv=7eYb+t#jc@MKo_p=+xIPA^9$eaF1~jt z`TUyK^o%gqxk~%W=w+w_gQw!8ftgPY@x!K6+bt01Mf(SNK&E4%WBDg1DAsV^qNmJA zWZy#p!#i%WMhUlDr^AI^8S(Xj5kG;LT4&8?rUr6=aYRnBwb1YSyp+==brPI$Q59zw z;FF!#H8!tCq{rt4dtUZP6nHw*W{ua@)1iv<+qPS}$JIY1zg24=dr65q%SO1EU1NPU zAZ&{*Udch*b?z|vh9JN}2%cQgj3W`OnI{TKID&f1eKX17=butyfmFRwDc!lpH#;e| zZZfk&Pj;IF>d$_>mOU^`-?{QL`p~!0tdHF=>=8_AEFLQ;o^&_Ds5(@cs|?E=;_rC# z!RY7v8P{$=#V8mU2^NcmyYV=O? z46V&M@q&R*R0_tfd_|)zZV2%KLtgw_#Vr4GQTW?F93}`g_e+92ra$1HhX_F9X6j^V zW@&07?C?(;%hbuv+0xF%!qm;)(uB#*)P;pxT#{XalUsz7gGWqEQk0vMorRl)mz9TC zR8*9Qi;G=?O@fP4Oak;Dd!GR`md=*W{~uc-Tq2x2BCH&uoV*-dBBJ6FtUMBIEZidO zBI2T4+#+mZ;-WmF?3_%WEnHk2ocWlUjcn}Anf{-CF+14XSQ>jUxwyOhjdz9BEuIYP zk(>tpC?67GgkGY}w-=B4`k%S535Qj8V>vjfP6BF+V$$O5W(0mhepgIfJ35t4>J=y) z_yx_wC`oBLK`b}$#Z3FlJ=u3f*C`V1tHX<+h5_2Wma6al+wn(S>H|?KS$o#OY9&-fBXc5Uy+Lp+M6$ zF7u|&qT?VNr7#MAA0wdeX)b-Wi!V5q zbJ@w!(n{ut4d}oXay&Bl#s$?dq*<6QW5t}s!>4HreR%U#Cu;kU=>#gkg7(TGl-My3 z!1j`2(LUy!vD2ql^E)iwqNvZIRxY||e@gc$o(z|D8`hOOnPU7zW7E;!1%`sV{n!kB z!ld(UW9~V-iCVl=zWt@SaeFa#&lgLe5o+?Tc4qb2mMYMYMu6s5xr;mV6gKq1vRhNw zfBFXhl`TEj{Kdm_rkp^y3lQ&|1O((xaZ&oWfR55Ke9`K54xH*}PoR>Hg*jBN)3gcZ zEYwA!LQc)NQV?7uvhi`qn<+PaP-xy3k%}I?aWy)9dF~#?Sd1#e=p17huN@XApd&1E z`Z-A8pUh(A`xwjf670A=S>wRr1kHZVM1ihVL7tFC-3>~U{$9L2GgX)1TJLhPYJEfl zw7HJ$fcIa|I!g^|)MuG1`@0cpiqlPjRAW7Uh(|!WaI;+1TJq`ZJtU}KZZBOoO@=H4 zj+58k5EnKbZt@5Tme}_quk1c3)jTW;GN~*+UYG(&)PZ3wm!lNO6Q`K9D|$cYbrJ+R z-*4`aPf0@*F@h=X;pYkXemKiwnMxA5J++wy7Q%Mwir*VpC2OsxRYGj4v9A&`AcH|J~u+RcUGnP-=^0mtC z%bA?1OOuAv;I6F9oaq9YOq@3XOf?gVC0`PT*0P3KkA7OX{jX9?^(~O|@Ag>lPR+`s z<8%fHqkP!9qGiL?XnialxaVx6v~dy8_1+#vy-<#i=cp znKvO~iW%7ONs7o=Y8{CZWN8HIu|l7n0gQ=W{@I>!(wXnl8Fq=|ZyY^BouB4qt#4?UtV-^c=;6?c^Gn>Hd6IP&{c! zUq8+iE*{v7RTd04!07(Irl|v|MLN5uxfznt{{5{vu2<1-*^iT$K`%m&6)s6Au7{FV zw;UQ_8*U5hppwY_UD76TT4L9|G(qv$4HEj~r#^_z3>FY7F>_tDI#pL+ z-yOAsnAs6a_T0Fd54Ubrpvak*C?{E=4^&6Smi3D9wSo6C?Qgr&#mh~%1M|f$D!5}B zoOWGlkw`uhL;?T~0_J{#d5Lrm^ljIVT*^~{G3|>cwH+9r@I%S;>s4E{)o9`M_707S$+Y04?p@6ml@k?rgw8A+p%^SFTV!1%ujQC3K17l={=?3xQ5sm)7Xf z-T*W+fVR-?n+Ax45uZ+lNK>mDxt@-Hm)Q38(zdH?v7^7VX8EZ~q4JgFy#C#+T}=d^ z{Dlq0*zpaB)JsS zx;0|JQW=o~#R@#-Zy&HEQg*ezV>U;{OZ+D8bT!C(ND2!}AKgO8ksb-@qign-BLB_? zfgvfOasRpfMEUPoAEf`x`uvR>|2@&8$&T`&VxxZN84&uE;hvk+ET}!syKtAz;aNeR zP4FE}RZZBHZxe3?mJE&PWxZ)qIkQNS$1#vIjZYHsSbMdi^J2j9xj zSvZdR&q`67av1J}V0^y`EP0c=>T^NO5LSG6(FutT8QR zjZLMH7uDGqyQ~YYq!+5uCqPk0t!)T3w`UuI#TRpifo4n9j?3K3>Gl-_!T2bq#I1W| zm;6{Kx^fP~!?|6&$Xp_AaecoQjdK3 zOvwL77K$#@_zY|xg;=%BS_W9`lE5PgBi!bR`S`fCCB%2_kqnH zPX^7G(~7uUXmXQ>pbt^$yv-$g+x@C(nc4Ix%^${oVj9us(kc0MX~>BYM9?a7M{;`NOUz17U7V{^Nv!0&`b7pc`7Z)3pP1%qFu#q^ YdwG{wk5UyOo}K#wKU;q@OV7XfKc-z}EdT%j literal 4113 zcmb8xWmFVuy9Qtw1{rcFB?e*WoEf?Xqy*^_6anduVTOX{1{^m6TArkq{6z zF(ODe%IDtSTIcM2)`@j~J@51WzSjNR=>T$|mdD9`d`i5}>(e*=1xy159eV{y*E?Ws zXfsn2dCyfuKv{H;6$z90FuTnVMYQ>gGXjGBLu81hPl=C%{ciTQ9klKs&615yb!4c| zS>S?BSQpFN&TUh4MwUXM3S!nWMtCYF-m}L?c84=xNjE_Sa@rj`p5-a8S@4*hN4Ux$ zM7;BrDG17NT`H3jL5Uo~e)EAon`_%N_LRYoDj_Ho`j@=PV;ET7YBqBjVe`x})m|)g((&G76zghDDl( zV|eq{dN^5yW;8#jH;Bqnw8YAL%KLsl11-mK4w_vYGSsBt_M?p*KK+-M6& zpXXHY2t~$h-mz;c*4Im^;ad}s2wqaYgV*?wTSBwQSvofQjyc!r`)n&q?{Opr%n>9Z zN~iC;)+ep0wk+EGQe5!sie%ZUQe~oV13|4^Wq;pDS+0v8_Ck8SCxCcp??-~z(Y#UF z6#M&KrUITwxpN-h9F^Ycn~mNNA=9}hA7#Y1&%#&F%HZl=zRA=U1M`nxdzOe+leb!; zd##gBV7lrpFuO#MsXe9VXY6iTX@-y(sZ|9Y6+Rw*1D}?qrzcd&&E3+)#SO}%=;CGj z=MOJb#`X7*xB9*R`GC9H-irbl0BP_6c=rGhf?K4-AR+?5t=k{~F$pQ~4uAk3z>E)| zdjVj;CnP4W1=0}$v^p-xsOcS?(b5P6+8zyeb@YVW+IZoS5K}U)PU$LrjW=NHq{JJD zO;`C+nYq?%DO)BF3${dVk}ojU<|xLEXC@i=D!H#6jfiG6FxiQ>jLUR9#ic=vPZAwDFk|Q<;u7>_deyl?Y3WXoHzm z+kE*5Y}l-s6*X1`7ZiX}y^m}*$>eGy;If7&Lxr&rtiYEE4Joamw@;o#s@ z`&lfRNuM&X;{IaqZZgV&{;O&I+c5k@-H3CYdj9~g&<1myb zd98n|8I75$PGH}gwI7s`%I_L9I%Z_lp8V4JVzPK%ERjzw_|RQ=$l8Fdf#V+pWvu^g zQU13(M;Evk%KA?&oIMl!_f`+>BtwPyl0f8fyI}xjOx6O@H(SJ9binIQJW ztKpGb>D3{pRK(l#>>+&+6WQ5<3KWhTne-9YtSfx>7Rnv$%6c^&+o>`hq4a2$hco7C zwzN&MHB&?fHsH|fJ_U)9`25oBY_;AETY$jLos41O~+%Lb}rNdCwsH2ubWKp$S|I}Fq*yB|Q z9016W+V=>v`NnkytDgWjLIk2{_^_!OUFHU*aF~<=xFp#iRP-Ywf=v-mku{aQ&iHm% zQyJB_f~UFK`@F8ggg%hXj8n0K&_)n6(_|MB#VYgKk{Db3I%O!w{qwC)HLaIDieo_% zD3!-c25l*Y4#OxczIhd)l=cVX941T&rT_;FkSXXCOJ+bF`9OZkEW$_fVb&=cPUi z)fvp5oVyZ}Fz;7Dh93}JzXBcF_F%rn&B>2Va&+C)^NDpwiOp%a<*%u~mBFw=EOxrs zB`}>)i+a*j@(jFO2F{})wY!$m5!LtIL5x$O+p78MeR(C(t-iRx*=MxgW+J({z}=*0 zR55D#G7cS1okwL;yxa-#68v86_xX%~9doZMGKmADgZCScPS;oY<>IFw)KjLBcM|^0 zDUypgxf*}IuR`<_5%1YwxTg+751(#WXxFd@q0`bvGC+^*$}@1T`aF5b!dq$T3opJa zvzoo27oxqMXg;P4mY-(PgR^pa1QsPk5Xj@k3nd5INLh5bJkiG#a}9>^{VdCSRtvdb zra43uzq&t2%H#*}qUXg8*L!qWCT@B7G=6)_A}ZAmkJlVMM?S5ZRppb~qO!OWnj=?M zfnBj5-FRro^$yH1#nTZ zQCZj&n&tW|W%8XatMa(8UN-3zYG1o6r<7i;UDwYay(9NX%L5kE)Q?xF@<-NC1NT3L zSvh)IyE&p@E{-1m^|t5 zR}kpZD$puOeey~$F@+0H7tjk>Y#1z2mXKo%f#0 ze(JSvNZ#2!+D52NUVrUw`Nl=@PI7 zy6-KuW~6L?Z&%{8Z7L0!s=dN`Z2xvqu$OD0M_Z63b!MBIJVdvMEHfiK%Mx!0mkpAl z5D1XxSM9A`U#22qGXL<*`{gZM>wgyelKA4zoK7}V{7dojqho)-_#O9=x2Sh=4{}&C5<`

%0oQbf~VN@N@X&5rIawp{v`g9=8}nvXkM9aaGxkh_&qq)AtFgKO2}*EKcqk zojC^VVd}8x@r3A_4@Fc*vE&|GM=aeyN$y{vt9L+wh=W?^qKCod)cyl@vxJEp-yT5X z^T1X09+&Jj#1fwZdj_5Gpa|`7{yvwj(N(zS@_rHt5`0rp5-w93F3N>Rh68fM@dL({0^eLQc9G>zAfcGt?7J>_FM}n#$XKPUVyg`?6@; zvmPT7oJ5WtCx=WJ74uKtW0@jUQGZ?e*&MAZbm;rSwryDCEL zVvOlW0jOLXV^6G^i5`e*kp5&*ADK;kFnrH~1>o%!q8DuvPR%vVFluZ`C7!`LKJ`lhF<9H6w|p75R?J|U z?6Px7uUZ0D2eUiKedGVD*hc|4f%L!2Iv4;U`?HFlOA`_U$sLdWexddP!B@Zns>5zW zEsP`RySbB!vZCI#2A1O^4yU83v<<(T8Tkgw?UU4P&R!6YVj$EVKKTI&ug@M{hV91h zoIvar9eN{>)E7N|4?CXwzG(V~KXTw@7 zrRz(6y(548k%bk;&ovR0ZUF_KOU1v?!J%h#;+^!{-4 z0I|9pEka7PlKR%5)qBog{Ey#KR+f%3M|*}fI)-{cFKx| zac;S9()zAmXPJBP@;>Da^HRMlrJHX(?xhxjeGYm_*Si%W+hQilFSyzBI<6XZ*Lpa#qDU8*BA!ull&2`Y&fGs_M`~} z?xOf42*aTA;~MJ#at$q+xGevae8moxR?m^$@SxP@UX@v3$QU;F&s-_t zu;=x459PZw=_G&WINL9-%h$OuFzVJ*h2%taed%V+32mhQoDA25#9VTzGHNqzR8ga3 p;$CWvfXvuo0#DcLav)Q2c^q~Cc|eO(TWVr+`!?FB7= Date: Sat, 10 Oct 2015 06:46:35 -0400 Subject: [PATCH 190/201] Clarification of unit test build instructions. --- src/test/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/test/README.md b/src/test/README.md index 7efce6f0522..eeaceb60c6a 100644 --- a/src/test/README.md +++ b/src/test/README.md @@ -16,6 +16,8 @@ their tests in a test suite called "_tests". For an examples of this pattern, examine uint160_tests.cpp and uint256_tests.cpp. +Add the source files to /src/Makefile.test.include to add them to the build. + For further reading, I found the following website to be helpful in explaining how the boost unit test framework works: [http://www.alittlemadness.com/2009/03/31/c-unit-testing-with-boosttest/](http://www.alittlemadness.com/2009/03/31/c-unit-testing-with-boosttest/). \ No newline at end of file From 256321ebd2c6a65283ce8cb57329275093594338 Mon Sep 17 00:00:00 2001 From: Mitchell Cash Date: Sat, 17 Oct 2015 20:10:45 +1000 Subject: [PATCH 191/201] Correct spelling mistakes in doc folder MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - OSX —> OS X - XCode —> Xcode - github —> GitHub - homebrew —> Homebrew - gitian —> Gitian - Other miscellaneous obvious spelling fixes and whitespace removal --- doc/README.md | 6 ++--- doc/README_osx.txt | 18 +++++++-------- doc/build-osx.md | 10 ++++----- doc/coding.md | 2 +- doc/gitian-building.md | 60 +++++++++++++++++++++++++------------------------- doc/init.md | 6 ++--- doc/release-process.md | 34 ++++++++++++++-------------- doc/tor.md | 11 +++++---- 8 files changed, 72 insertions(+), 75 deletions(-) diff --git a/doc/README.md b/doc/README.md index a2066c9f276..a5ad4e82f0a 100644 --- a/doc/README.md +++ b/doc/README.md @@ -7,7 +7,7 @@ Setup Running --------------------- -The following are some helpful notes on how to run Bitcoin on your native platform. +The following are some helpful notes on how to run Bitcoin on your native platform. ### Unix @@ -26,7 +26,7 @@ Unpack the files into a directory and run: Unpack the files into a directory, and then run bitcoin-qt.exe. -### OSX +### OS X Drag Bitcoin-Qt to your applications folder, and then run Bitcoin-Qt. @@ -41,7 +41,7 @@ Building --------------------- The following are developer notes on how to build Bitcoin on your native platform. They are not complete guides, but include notes on the necessary libraries, compile flags, etc. -- [OSX Build Notes](build-osx.md) +- [OS X Build Notes](build-osx.md) - [Unix Build Notes](build-unix.md) Development diff --git a/doc/README_osx.txt b/doc/README_osx.txt index d56234f7d94..40b0bdf9ced 100644 --- a/doc/README_osx.txt +++ b/doc/README_osx.txt @@ -1,12 +1,12 @@ -Deterministic OSX Dmg Notes. +Deterministic OS X Dmg Notes. -Working OSX DMG's are created in Linux by combining a recent clang, +Working OS X DMGs are created in Linux by combining a recent clang, the Apple's binutils (ld, ar, etc), and DMG authoring tools. Apple uses clang extensively for development and has upstreamed the necessary functionality so that a vanilla clang can take advantage. It supports the use of -F, -target, -mmacosx-version-min, and --sysroot, which are all necessary -when building for OSX. A pre-compiled version of 3.2 is used because it was not +when building for OS X. A pre-compiled version of 3.2 is used because it was not available in the Precise repositories at the time this work was started. In the future, it can be switched to use system packages instead. @@ -35,11 +35,11 @@ This file is several gigabytes in size, but only a single directory inside is needed: Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk Unfortunately, the usual linux tools (7zip, hpmount, loopback mount) are incapable of opening this file. -To create a tarball suitable for gitian input, mount the dmg in OSX, then create it with: +To create a tarball suitable for Gitian input, mount the dmg in OS X, then create it with: $ tar -C /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/ -czf MacOSX10.7.sdk.tar.gz MacOSX10.7.sdk -The gitian descriptors build 2 sets of files: Linux tools, then Apple binaries +The Gitian descriptors build 2 sets of files: Linux tools, then Apple binaries which are created using these tools. The build process has been designed to avoid including the SDK's files in Gitian's outputs. All interim tarballs are fully deterministic and may be freely redistributed. @@ -63,20 +63,20 @@ Ideally, the creation could be fixed and genisoimage would no longer be necessar Background images and other features can be added to DMG files by inserting a .DS_Store before creation. The easiest way to create this file is to build a -DMG without one, move it to a device running OSX, customize the layout, then +DMG without one, move it to a device running OS X, customize the layout, then grab the .DS_Store file for later use. That is the approach taken here. -As of OSX Mavericks (10.9), using an Apple-blessed key to sign binaries is a +As of OS X Mavericks (10.9), using an Apple-blessed key to sign binaries is a requirement in order to satisfy the new Gatekeeper requirements. Because this private key cannot be shared, we'll have to be a bit creative in order for the build process to remain somewhat deterministic. Here's how it works: -- Builders use gitian to create an unsigned release. This outputs an unsigned +- Builders use Gitian to create an unsigned release. This outputs an unsigned dmg which users may choose to bless and run. It also outputs an unsigned app structure in the form of a tarball, which also contains all of the tools that have been previously (deterministically) built in order to create a final dmg. - The Apple keyholder uses this unsigned app to create a detached signature, using the script that is also included there. -- Builders feed the unsigned app + detached signature back into gitian. It +- Builders feed the unsigned app + detached signature back into Gitian. It uses the pre-built tools to recombine the pieces into a deterministic dmg. diff --git a/doc/build-osx.md b/doc/build-osx.md index c41820f2b1b..68d73db60e4 100644 --- a/doc/build-osx.md +++ b/doc/build-osx.md @@ -1,6 +1,6 @@ Mac OS X Build Instructions and Notes ==================================== -This guide will show you how to build bitcoind(headless client) for OSX. +This guide will show you how to build bitcoind(headless client) for OS X. Notes ----- @@ -13,8 +13,8 @@ built-in one is located in `/Applications/Utilities`. Preparation ----------- -You need to install XCode with all the options checked so that the compiler -and everything is available in /usr not just /Developer. XCode should be +You need to install Xcode with all the options checked so that the compiler +and everything is available in /usr not just /Developer. Xcode should be available on your OS X installation media, but if not, you can get the current version from https://developer.apple.com/xcode/. If you install Xcode 4.3 or later, you'll need to install its command line tools. This can @@ -65,7 +65,7 @@ After exiting, you'll get a warning that the install is keg-only, which means it ### Building `bitcoind` -1. Clone the github tree to get the source code and go into the directory. +1. Clone the GitHub tree to get the source code and go into the directory. git clone https://github.com/bitcoin/bitcoin.git cd bitcoin @@ -89,7 +89,7 @@ Use Qt Creator as IDE You can use Qt Creator as IDE, for debugging and for manipulating forms, etc. Download Qt Creator from http://www.qt.io/download/. Download the "community edition" and only install Qt Creator (uncheck the rest during the installation process). -1. Make sure you installed everything through homebrew mentioned above +1. Make sure you installed everything through Homebrew mentioned above 2. Do a proper ./configure --with-gui=qt5 --enable-debug 3. In Qt Creator do "New Project" -> Import Project -> Import Existing Project 4. Enter "bitcoin-qt" as project name, enter src/qt as location diff --git a/doc/coding.md b/doc/coding.md index 43294dbe4c1..c0631ce3fe2 100644 --- a/doc/coding.md +++ b/doc/coding.md @@ -57,7 +57,7 @@ As Doxygen recognizes the comments by the delimiters (`/**` and `*/` in this cas To describe a class use the same construct above the class definition: ```c++ -/** +/** * Alerts are for notifying old versions if they become too obsolete and * need to upgrade. The message is displayed in the status bar. * @see GetWarnings() diff --git a/doc/gitian-building.md b/doc/gitian-building.md index 6a295747415..39f8d521805 100644 --- a/doc/gitian-building.md +++ b/doc/gitian-building.md @@ -1,7 +1,7 @@ Gitian building ================ -*Setup instructions for a gitian build of Bitcoin using a Debian VM or physical system.* +*Setup instructions for a Gitian build of Bitcoin using a Debian VM or physical system.* Gitian is the deterministic build process that is used to build the Bitcoin Core executables. It provides a way to be reasonably sure that the @@ -13,7 +13,7 @@ Multiple developers build the source code by following a specific descriptor These results are compared and only if they match, the build is accepted and uploaded to bitcoin.org. -More independent gitian builders are needed, which is why I wrote this +More independent Gitian builders are needed, which is why I wrote this guide. It is preferred to follow these steps yourself instead of using someone else's VM image to avoid 'contaminating' the build. @@ -22,9 +22,9 @@ Table of Contents - [Create a new VirtualBox VM](#create-a-new-virtualbox-vm) - [Connecting to the VM](#connecting-to-the-vm) -- [Setting up Debian for gitian building](#setting-up-debian-for-gitian-building) -- [Installing gitian](#installing-gitian) -- [Setting up gitian images](#setting-up-gitian-images) +- [Setting up Debian for Gitian building](#setting-up-debian-for-gitian-building) +- [Installing Gitian](#installing-gitian) +- [Setting up Gitian images](#setting-up-gitian-images) - [Getting and building the inputs](#getting-and-building-the-inputs) - [Building Bitcoin](#building-bitcoin) - [Building an alternative repository](#building-an-alternative-repository) @@ -60,18 +60,18 @@ In the VirtualBox GUI click "Create" and choose the following parameters in the ![](gitian-building/create_vm_hard_drive.png) - Hard Drive: Create a virtual hard drive now - + ![](gitian-building/create_vm_hard_drive_file_type.png) -- Hard Drive file type: Use the default, VDI (VirtualBox Disk Image) +- Hard Drive file type: Use the default, VDI (VirtualBox Disk Image) ![](gitian-building/create_vm_storage_physical_hard_drive.png) - -- Storage on Physical hard drive: Dynamically Allocated - + +- Storage on Physical hard drive: Dynamically Allocated + ![](gitian-building/create_vm_file_location_size.png) -- Disk size: at least 40GB; as low as 20GB *may* be possible, but better to err on the safe side +- Disk size: at least 40GB; as low as 20GB *may* be possible, but better to err on the safe side - Push the `Create` button Get the [Debian 7.8 net installer](http://cdimage.debian.org/cdimage/archive/7.8.0/amd64/iso-cd/debian-7.8.0-amd64-netinst.iso) (a more recent minor version should also work, see also [Debian Network installation](https://www.debian.org/CD/netinst/)). @@ -81,7 +81,7 @@ Unixy OSes by entering the following in a terminal: echo "b712a141bc60269db217d3b3e456179bd6b181645f90e4aac9c42ed63de492e9 debian-7.4.0-amd64-netinst.iso" | sha256sum -c # (must return OK) -After creating the VM, we need to configure it. +After creating the VM, we need to configure it. - Click the `Settings` button, then go to the `Network` tab. Adapter 1 should be attacked to `NAT`. @@ -125,22 +125,22 @@ and proceed, just press `Enter`. To select a different button, press `Tab`. ![](gitian-building/debian_install_4_configure_keyboard.png) - The VM will detect network settings using DHCP, this should all proceed automatically -- Configure the network: +- Configure the network: - System name `debian`. - Leave domain name empty. ![](gitian-building/debian_install_5_configure_the_network.png) -- Choose a root password and enter it twice (remember it for later) +- Choose a root password and enter it twice (remember it for later) ![](gitian-building/debian_install_6a_set_up_root_password.png) -- Name the new user `debian` (the full name doesn't matter, you can leave it empty) +- Name the new user `debian` (the full name doesn't matter, you can leave it empty) ![](gitian-building/debian_install_7_set_up_user_fullname.png) ![](gitian-building/debian_install_8_set_up_username.png) -- Choose a user password and enter it twice (remember it for later) +- Choose a user password and enter it twice (remember it for later) ![](gitian-building/debian_install_9_user_password.png) @@ -150,11 +150,11 @@ and proceed, just press `Enter`. To select a different button, press `Tab`. ![](gitian-building/debian_install_10_configure_clock.png) - Disk setup - - Partitioning method: Guided - Use the entire disk - + - Partitioning method: Guided - Use the entire disk + ![](gitian-building/debian_install_11_partition_disks.png) - - Select disk to partition: SCSI1 (0,0,0) + - Select disk to partition: SCSI1 (0,0,0) ![](gitian-building/debian_install_12_choose_disk.png) @@ -168,7 +168,7 @@ and proceed, just press `Enter`. To select a different button, press `Tab`. ![](gitian-building/debian_install_15_write_changes.png) - The base system will be installed, this will take a minute or so -- Choose a mirror (any will do) +- Choose a mirror (any will do) ![](gitian-building/debian_install_16_choose_a_mirror.png) @@ -217,7 +217,7 @@ Replace `root` with `debian` to log in as user. [1] http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html [2] http://winscp.net/eng/index.php -Setting up Debian for gitian building +Setting up Debian for Gitian building -------------------------------------- In this section we will be setting up the Debian installation for Gitian building. @@ -237,7 +237,7 @@ Then set up LXC and the rest with the following, which is a complex jumble of se ```bash # the version of lxc-start in Debian 7.4 needs to run as root, so make sure -# that the build script can exectute it without providing a password +# that the build script can execute it without providing a password echo "%sudo ALL=NOPASSWD: /usr/bin/lxc-start" > /etc/sudoers.d/gitian-lxc # add cgroup for LXC echo "cgroup /sys/fs/cgroup cgroup defaults 0 0" >> /etc/fstab @@ -257,7 +257,7 @@ reboot At the end the VM is rebooted to make sure that the changes take effect. The steps in this section need only to be performed once. -Installing gitian +Installing Gitian ------------------ Re-login as the user `debian` that was created during installation. @@ -277,7 +277,7 @@ cd .. **Note**: When sudo asks for a password, enter the password for the user *debian* not for *root*. -Clone the git repositories for bitcoin and gitian and then checkout the bitcoin version that you want to build. +Clone the git repositories for bitcoin and Gitian and then checkout the bitcoin version that you want to build. ```bash git clone https://github.com/devrandom/gitian-builder.git @@ -287,7 +287,7 @@ git checkout v${VERSION} cd .. ``` -Setting up gitian images +Setting up Gitian images ------------------------- Gitian needs virtual images of the operating system to build in. @@ -313,13 +313,13 @@ Getting and building the inputs Follow the instructions in [doc/release-process.md](release-process.md) in the bitcoin repository under 'Fetch and build inputs' to install sources which require manual intervention. Also follow the next step: 'Seed the Gitian sources cache', which will fetch all necessary source files allowing -for gitian to work offline. +for Gitian to work offline. Building Bitcoin ---------------- -To build Bitcoin (for Linux, OSX and Windows) just follow the steps under 'perform -gitian builds' in [doc/release-process.md](release-process.md) in the bitcoin repository. +To build Bitcoin (for Linux, OS X and Windows) just follow the steps under 'perform +Gitian builds' in [doc/release-process.md](release-process.md) in the bitcoin repository. This may take a long time as it also builds the dependencies needed for each descriptor. These dependencies will be cached after a successful build to avoid rebuilding them when possible. @@ -358,7 +358,7 @@ Building an alternative repository ----------------------------------- If you want to do a test build of a pull on GitHub it can be useful to point -the gitian builder at an alternative repository, using the same descriptors +the Gitian builder at an alternative repository, using the same descriptors and inputs. For example: @@ -388,7 +388,7 @@ in `gitian.sigs` to your signing machine and do ``` This will create the `.sig` files that can be committed together with the `.assert` files to assert your -gitian build. +Gitian build. Uploading signatures --------------------- diff --git a/doc/init.md b/doc/init.md index 1f0559d8064..4d7ba01f08f 100644 --- a/doc/init.md +++ b/doc/init.md @@ -34,9 +34,8 @@ generate one from the shell yourself like this: bash -c 'tr -dc a-zA-Z0-9 < /dev/urandom | head -c32 && echo' -Once you have a password in hand, set rpcpassword= in /etc/bitcoin/bitcoin.conf -For an example configuration file that describes the configuration settings, +For an example configuration file that describes the configuration settings, see contrib/debian/examples/bitcoin.conf. 3. Paths @@ -81,7 +80,7 @@ Drop bitcoind.conf in /etc/init. Test by running "service bitcoind start" it will automatically start on reboot. NOTE: This script is incompatible with CentOS 5 and Amazon Linux 2014 as they -use old versions of Upstart and do not supply the start-stop-daemon uitility. +use old versions of Upstart and do not supply the start-stop-daemon utility. 5. Auto-respawn ----------------------------------- @@ -89,4 +88,3 @@ use old versions of Upstart and do not supply the start-stop-daemon uitility. Auto respawning is currently only configured for Upstart and systemd. Reasonable defaults have been chosen but YMMV. - diff --git a/doc/release-process.md b/doc/release-process.md index 8c90243d77e..06cd84d62a0 100644 --- a/doc/release-process.md +++ b/doc/release-process.md @@ -23,15 +23,15 @@ Release Process * * * -###update gitian +###update Gitian - In order to take advantage of the new caching features in gitian, be sure to update to a recent version (e9741525c or higher is recommended) + In order to take advantage of the new caching features in Gitian, be sure to update to a recent version (e9741525c or higher is recommended) -###perform gitian builds +###perform Gitian builds From a directory containing the bitcoin source, gitian-builder and gitian.sigs - export SIGNER=(your gitian key, ie bluematt, sipa, etc) + export SIGNER=(your Gitian key, ie bluematt, sipa, etc) export VERSION=(new version, e.g. 0.8.0) pushd ./bitcoin git checkout v${VERSION} @@ -39,27 +39,27 @@ Release Process pushd ./gitian-builder ###fetch and build inputs: (first time, or when dependency versions change) - + mkdir -p inputs - Register and download the Apple SDK: (see OSX Readme for details) - + Register and download the Apple SDK: (see OS X Readme for details) + https://developer.apple.com/downloads/download.action?path=Developer_Tools/xcode_4.6.3/xcode4630916281a.dmg - + Using a Mac, create a tarball for the 10.7 SDK and copy it to the inputs directory: - + tar -C /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/ -czf MacOSX10.7.sdk.tar.gz MacOSX10.7.sdk ###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: + By default, Gitian will fetch source files as needed. For offline builds, they can be fetched ahead of time: make -C ../bitcoin/depends download SOURCES_PATH=`pwd`/cache/common Only missing files will be fetched, so this is safe to re-run for each build. ###Build Bitcoin Core for Linux, Windows, and OS X: - + ./bin/gbuild --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml ./bin/gsign --signer $SIGNER --release ${VERSION}-linux --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml mv build/out/bitcoin-*.tar.gz build/out/src/bitcoin-*.tar.gz ../ @@ -76,8 +76,8 @@ Release Process 1. source tarball (bitcoin-${VERSION}.tar.gz) 2. linux 32-bit and 64-bit binaries dist tarballs (bitcoin-${VERSION}-linux[32|64].tar.gz) 3. windows 32-bit and 64-bit installers and dist zips (bitcoin-${VERSION}-win[32|64]-setup.exe, bitcoin-${VERSION}-win[32|64].zip) - 4. OSX unsigned installer (bitcoin-${VERSION}-osx-unsigned.dmg) - 5. Gitian signatures (in gitian.sigs/${VERSION}-/(your gitian key)/ + 4. OS X unsigned installer (bitcoin-${VERSION}-osx-unsigned.dmg) + 5. Gitian signatures (in gitian.sigs/${VERSION}-/(your Gitian key)/ ###Next steps: @@ -91,11 +91,11 @@ Commit your signature to gitian.sigs: git push # Assuming you can push to the gitian.sigs tree popd - Wait for OSX detached signature: - Once the OSX build has 3 matching signatures, Gavin will sign it with the apple App-Store key. + Wait for OS X detached signature: + Once the OS X build has 3 matching signatures, Gavin will sign it with the apple App-Store key. He will then upload a detached signature to be combined with the unsigned app to create a signed binary. - Create the signed OSX binary: + Create the signed OS X binary: pushd ./gitian-builder # Fetch the signature as instructed by Gavin @@ -105,7 +105,7 @@ Commit your signature to gitian.sigs: mv build/out/bitcoin-osx-signed.dmg ../bitcoin-${VERSION}-osx.dmg popd -Commit your signature for the signed OSX binary: +Commit your signature for the signed OS X binary: pushd gitian.sigs git add ${VERSION}-osx-signed/${SIGNER} diff --git a/doc/tor.md b/doc/tor.md index 560f71fa27c..e3fabfb2a8a 100644 --- a/doc/tor.md +++ b/doc/tor.md @@ -15,15 +15,15 @@ outgoing connections be anonymized, but more is possible. -proxy=ip:port Set the proxy server. If SOCKS5 is selected (default), this proxy server will be used to try to reach .onion addresses as well. - + -onion=ip:port Set the proxy server to use for tor hidden services. You do not need to set this if it's the same as -proxy. You can use -noonion to explicitly disable access to hidden service. - + -listen When using -proxy, listening is disabled by default. If you want to run a hidden service (see next section), you'll need to enable it explicitly. - + -connect=X When behind a Tor proxy, you can specify .onion addresses instead -addnode=X of IP addresses or hostnames in these parameters. It requires -seednode=X SOCKS5. In Tor mode, such addresses can also be exchanged with @@ -55,10 +55,10 @@ your bitcoind's P2P listen port (8333 by default). preference for your node to advertize itself with, for connections coming from unroutable addresses (such as 127.0.0.1, where the Tor proxy typically runs). - + -listen You'll need to enable listening for incoming connections, as this is off by default behind a proxy. - + -discover When -externalip is specified, no attempt is made to discover local IPv4 or IPv6 addresses. If you want to run a dual stack, reachable from both Tor and IPv4 (or IPv6), you'll need to either pass your @@ -82,4 +82,3 @@ If you only want to use Tor to reach onion addresses, but not use it as a proxy for normal IPv4/IPv6 communication, use: ./bitcoin -onion=127.0.0.1:9050 -externalip=57qr3yd1nyntf5k.onion -discover - From 38671bff4ed606c8b4db1dd308efc54e72f7d2b5 Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Fri, 9 Oct 2015 13:40:36 -0700 Subject: [PATCH 192/201] Update debian/changelog and slight tweak to debian/control --- contrib/debian/changelog | 36 ++++++++++++++++++++++++++++++++++++ contrib/debian/control | 3 ++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/contrib/debian/changelog b/contrib/debian/changelog index d1683f420b2..2843fb904e9 100644 --- a/contrib/debian/changelog +++ b/contrib/debian/changelog @@ -1,3 +1,39 @@ +bitcoin (0.10.2-precise1) precise; urgency=medium + + * New upstream release. + + -- Matt Corallo (BlueMatt) Mon, 29 Jun 2015 17:33:00 -1000 + +bitcoin (0.10.1-precise3) precise; urgency=medium + + * Fix build dep (include python). + + -- Matt Corallo (BlueMatt) Tue, 5 May 2015 09:28:00 -1000 + +bitcoin (0.10.1-precise2) precise; urgency=medium + + * Fix miniupnpc dep. + + -- Matt Corallo (BlueMatt) Tue, 5 May 2015 00:33:00 -1000 + +bitcoin (0.10.1-precise1) precise; urgency=medium + + * New upstream release. + + -- Matt Corallo (BlueMatt) Tue, 5 May 2015 00:07:00 -1000 + +bitcoin (0.10.0-precise1) precise; urgency=medium + + * New upstream releases. + + -- Matt Corallo (BlueMatt) Wed, 18 Feb 2015 13:22:00 -1000 + +bitcoin (0.9.4-precise1) precise; urgency=high + + * New upstream releases. + + -- Matt Corallo (laptop - only while traveling) Mon, 12 Jan 2015 23:30:00 -1000 + bitcoin (0.9.3-precise1) precise; urgency=medium * New upstream releases. diff --git a/contrib/debian/control b/contrib/debian/control index 5eca0341e35..7e6363607df 100644 --- a/contrib/debian/control +++ b/contrib/debian/control @@ -20,7 +20,8 @@ Build-Depends: debhelper, qt4-qmake, libqt4-dev, libqrencode-dev, - libprotobuf-dev, protobuf-compiler + libprotobuf-dev, protobuf-compiler, + python Standards-Version: 3.9.2 Homepage: http://www.bitcoin.org/ Vcs-Git: git://github.com/bitcoin/bitcoin.git From 97546fc44c04aa7d157b16ee7edc2778b23c2403 Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Fri, 9 Oct 2015 15:32:05 -0700 Subject: [PATCH 193/201] Change URLs to https in debian/control --- contrib/debian/control | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contrib/debian/control b/contrib/debian/control index 7e6363607df..fff4e472a7c 100644 --- a/contrib/debian/control +++ b/contrib/debian/control @@ -23,9 +23,9 @@ Build-Depends: debhelper, libprotobuf-dev, protobuf-compiler, python Standards-Version: 3.9.2 -Homepage: http://www.bitcoin.org/ +Homepage: https://www.bitcoin.org/ Vcs-Git: git://github.com/bitcoin/bitcoin.git -Vcs-Browser: http://github.com/bitcoin/bitcoin +Vcs-Browser: https://github.com/bitcoin/bitcoin Package: bitcoind Architecture: any From 8b3311fb8d99fce4835e4a7f0ae0e9cdd0e40db8 Mon Sep 17 00:00:00 2001 From: Daniel Cousens Date: Sun, 18 Oct 2015 21:02:36 +1100 Subject: [PATCH 194/201] *: alias -h for --help --- src/bitcoin-cli.cpp | 2 +- src/bitcoin-tx.cpp | 2 +- src/bitcoind.cpp | 2 +- src/qt/bitcoin.cpp | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/bitcoin-cli.cpp b/src/bitcoin-cli.cpp index ea349b197e5..9c85db8c6d3 100644 --- a/src/bitcoin-cli.cpp +++ b/src/bitcoin-cli.cpp @@ -66,7 +66,7 @@ static bool AppInitRPC(int argc, char* argv[]) // Parameters // ParseParameters(argc, argv); - if (argc<2 || mapArgs.count("-?") || mapArgs.count("-help") || mapArgs.count("-version")) { + if (argc<2 || mapArgs.count("-?") || mapArgs.count("-h") || mapArgs.count("-help") || mapArgs.count("-version")) { std::string strUsage = _("Bitcoin Core RPC client version") + " " + FormatFullVersion() + "\n"; if (!mapArgs.count("-version")) { strUsage += "\n" + _("Usage:") + "\n" + diff --git a/src/bitcoin-tx.cpp b/src/bitcoin-tx.cpp index 3aa2211f978..3c8915593ad 100644 --- a/src/bitcoin-tx.cpp +++ b/src/bitcoin-tx.cpp @@ -44,7 +44,7 @@ static bool AppInitRawTx(int argc, char* argv[]) fCreateBlank = GetBoolArg("-create", false); - if (argc<2 || mapArgs.count("-?") || mapArgs.count("-help")) + if (argc<2 || mapArgs.count("-?") || mapArgs.count("-h") || mapArgs.count("-help")) { // First part of help message is specific to this utility std::string strUsage = _("Bitcoin Core bitcoin-tx utility version") + " " + FormatFullVersion() + "\n\n" + diff --git a/src/bitcoind.cpp b/src/bitcoind.cpp index be7757b0b6c..f45415015f8 100644 --- a/src/bitcoind.cpp +++ b/src/bitcoind.cpp @@ -67,7 +67,7 @@ bool AppInit(int argc, char* argv[]) ParseParameters(argc, argv); // Process help and version before taking care about datadir - if (mapArgs.count("-?") || mapArgs.count("-help") || mapArgs.count("-version")) + if (mapArgs.count("-?") || mapArgs.count("-h") || mapArgs.count("-help") || mapArgs.count("-version")) { std::string strUsage = _("Bitcoin Core Daemon") + " " + _("version") + " " + FormatFullVersion() + "\n"; diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index f30df348c5f..3ab8adefe49 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -537,7 +537,7 @@ int main(int argc, char *argv[]) // Show help message immediately after parsing command-line options (for "-lang") and setting locale, // but before showing splash screen. - if (mapArgs.count("-?") || mapArgs.count("-help") || mapArgs.count("-version")) + if (mapArgs.count("-?") || mapArgs.count("-h") || mapArgs.count("-help") || mapArgs.count("-version")) { HelpMessageDialog help(NULL, mapArgs.count("-version")); help.showOrPrint(); From c2e7baf2bdb2e2c163bcadaebe68ee00c9a27e7c Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Mon, 9 Nov 2015 15:08:30 +0100 Subject: [PATCH 195/201] Bump version to 0.10.4, add release notes --- configure.ac | 2 +- doc/Doxyfile | 2 +- doc/README.md | 2 +- doc/README_windows.txt | 2 +- doc/release-notes.md | 189 +++++++++++++++++++++++++------------------------ src/clientversion.h | 2 +- 6 files changed, 103 insertions(+), 96 deletions(-) diff --git a/configure.ac b/configure.ac index 93517fb31c6..aa03489d9da 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N) AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 0) define(_CLIENT_VERSION_MINOR, 10) -define(_CLIENT_VERSION_REVISION, 3) +define(_CLIENT_VERSION_REVISION, 4) define(_CLIENT_VERSION_BUILD, 0) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2015) diff --git a/doc/Doxyfile b/doc/Doxyfile index 453ba14d5ce..0133be2a618 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -34,7 +34,7 @@ PROJECT_NAME = Bitcoin # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = 0.10.3 +PROJECT_NUMBER = 0.10.4 # 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 diff --git a/doc/README.md b/doc/README.md index a5ad4e82f0a..1dea631ce01 100644 --- a/doc/README.md +++ b/doc/README.md @@ -1,4 +1,4 @@ -Bitcoin Core 0.10.3 +Bitcoin Core 0.10.4 ===================== Setup diff --git a/doc/README_windows.txt b/doc/README_windows.txt index 9065f436219..f5e09a46159 100644 --- a/doc/README_windows.txt +++ b/doc/README_windows.txt @@ -1,4 +1,4 @@ -Bitcoin Core 0.10.2 +Bitcoin Core 0.10.4 ===================== Intro diff --git a/doc/release-notes.md b/doc/release-notes.md index 8a110e562c4..38a2c1347d0 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,9 +1,10 @@ -Bitcoin Core version 0.10.3 is now available from: +Bitcoin Core version 0.10.4 is now available from: - + -This is a new minor version release, bringing security fixes and translation -updates. It is recommended to upgrade to this version as soon as possible. +This is a new minor version release, bringing bug fixes, the BIP65 +(CLTV) consensus change, and relay policy preparation for BIP113. It is +recommended to upgrade to this version as soon as possible. Please report bugs using the issue tracker at github: @@ -41,125 +42,131 @@ bootstrap.dat) anew afterwards. It is possible that the data from a completely synchronised 0.10 node may be usable in older versions as-is, but this is not supported and may break as soon as the older version attempts to reindex. -This does not affect wallet forward or backward compatibility. +This does not affect wallet forward or backward compatibility. There are no +known problems when downgrading from 0.11.x to 0.10.x. -Notable changes -=============== +Notable changes since 0.10.3 +============================ -Fix buffer overflow in bundled upnp ------------------------------------- +BIP65 soft fork to enforce OP_CHECKLOCKTIMEVERIFY opcode +-------------------------------------------------------- -Bundled miniupnpc was updated to 1.9.20151008. This fixes a buffer overflow in -the XML parser during initial network discovery. +This release includes several changes related to the [BIP65][] soft fork +which redefines the existing OP_NOP2 opcode as OP_CHECKLOCKTIMEVERIFY +(CLTV) so that a transaction output can be made unspendable until a +specified point in the future. -Details can be found here: http://talosintel.com/reports/TALOS-2015-0035/ +1. This release will only relay and mine transactions spending a CLTV + output if they comply with the BIP65 rules as provided in code. -This applies to the distributed executables only, not when building from source or -using distribution provided packages. +2. This release will produce version 4 blocks by default. Please see the + *notice to miners* below. -Additionally, upnp has been disabled by default. This may result in a lower -number of reachable nodes on IPv4, however this prevents future libupnpc -vulnerabilities from being a structural risk to the network -(see https://github.com/bitcoin/bitcoin/pull/6795). +3. Once 951 out of a sequence of 1,001 blocks on the local node's best block + chain contain version 4 (or higher) blocks, this release will no + longer accept new version 3 blocks and it will only accept version 4 + blocks if they comply with the BIP65 rules for CLTV. -Test for LowS signatures before relaying ------------------------------------------ +For more information about the soft-forking change, please see + -Make the node require the canonical 'low-s' encoding for ECDSA signatures when -relaying or mining. This removes a nuisance malleability vector. +Graphs showing the progress towards block version 4 adoption may be +found at the URLs below: -Consensus behavior is unchanged. +- Block versions over the last 50,000 blocks as progress towards BIP65 + consensus enforcement: -If widely deployed this change would eliminate the last remaining known vector -for nuisance malleability on SIGHASH_ALL P2PKH transactions. On the down-side -it will block most transactions made by sufficiently out of date software. +- Block versions over the last 2,000 blocks showing the days to the + earliest possible BIP65 consensus-enforced block: -Unlike the other avenues to change txids on transactions this -one was randomly violated by all deployed bitcoin software prior to -its discovery. So, while other malleability vectors where made -non-standard as soon as they were discovered, this one has remained -permitted. Even BIP62 did not propose applying this rule to -old version transactions, but conforming implementations have become -much more common since BIP62 was initially written. +**Notice to miners:** Bitcoin Core’s block templates are now for +version 4 blocks only, and any mining software relying on its +getblocktemplate must be updated in parallel to use libblkmaker either +version FIXME or any version from FIXME onward. -Bitcoin Core has produced compatible signatures since a28fb70e in -September 2013, but this didn't make it into a release until 0.9 -in March 2014; Bitcoinj has done so for a similar span of time. -Bitcoinjs and electrum have been more recently updated. +- If you are solo mining, this will affect you the moment you upgrade + Bitcoin Core, which must be done prior to BIP65 achieving its 951/1001 + status. -This does not replace the need for BIP62 or similar, as miners can -still cooperate to break transactions. Nor does it replace the -need for wallet software to handle malleability sanely[1]. This -only eliminates the cheap and irritating DOS attack. +- If you are mining with the stratum mining protocol: this does not + affect you. -[1] On the Malleability of Bitcoin Transactions -Marcin Andrychowicz, Stefan Dziembowski, Daniel Malinowski, Łukasz Mazurek -http://fc15.ifca.ai/preproceedings/bitcoin/paper_9.pdf +- If you are mining with the getblocktemplate protocol to a pool: this + will affect you at the pool operator’s discretion, which must be no + later than BIP65 achieving its 951/1001 status. -Minimum relay fee default increase ------------------------------------ +[BIP65]: https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki -The default for the `-minrelaytxfee` setting has been increased from `0.00001` -to `0.00005`. +Windows bug fix for corrupted UTXO database on unclean shutdowns +---------------------------------------------------------------- -This is necessitated by the current transaction flooding, causing -outrageous memory usage on nodes due to the mempool ballooning. This is a -temporary measure, bridging the time until a dynamic method for determining -this fee is merged (which will be in 0.12). +Several Windows users reported that they often need to reindex the +entire blockchain after an unclean shutdown of Bitcoin Core on Windows +(or an unclean shutdown of Windows itself). Although unclean shutdowns +remain unsafe, this release no longer relies on memory-mapped files for +the UTXO database, which significantly reduced the frequency of unclean +shutdowns leading to required reindexes during testing. -(see https://github.com/bitcoin/bitcoin/pull/6793, as well as the 0.11.0 -release notes, in which this value was suggested) +For more information, see: -0.10.3 Change log +Other fixes for database corruption on Windows are expected in the +next major release. + +0.10.4 Change log ================= -Detailed release notes follow. This overview includes changes that affect external -behavior, not code moves, refactors or string updates. - -- #6186 `e4a7d51` Fix two problems in CSubnet parsing -- #6153 `ebd7d8d` Parameter interaction: disable upnp if -proxy set -- #6203 `ecc96f5` Remove P2SH coinbase flag, no longer interesting -- #6226 `181771b` json: fail read_string if string contains trailing garbage -- #6244 `09334e0` configure: Detect (and reject) LibreSSL -- #6276 `0fd8464` Fix getbalance * 0 -- #6274 `be64204` Add option `-alerts` to opt out of alert system -- #6319 `3f55638` doc: update mailing list address -- #6438 `7e66e9c` openssl: avoid config file load/race -- #6439 `255eced` Updated URL location of netinstall for Debian -- #6412 `0739e6e` Test whether created sockets are select()able -- #6694 `f696ea1` [QT] fix thin space word wrap line brake issue -- #6704 `743cc9e` Backport bugfixes to 0.10 -- #6769 `1cea6b0` Test LowS in standardness, removes nuisance malleability vector. -- #6789 `093d7b5` Update miniupnpc to 1.9.20151008 -- #6795 `f2778e0` net: Disable upnp by default -- #6797 `91ef4d9` Do not store more than 200 timedata samples -- #6793 `842c48d` Bump minrelaytxfee default +Detailed release notes follow. This overview includes changes that affect +behavior, not code moves, refactors and string updates. For convenience in locating +the code changes and accompanying discussion, both the pull request and +git merge commit are mentioned. + +- #6953 `8b3311f` alias -h for --help +- #6953 `97546fc` Change URLs to https in debian/control +- #6953 `38671bf` Update debian/changelog and slight tweak to debian/control +- #6953 `256321e` Correct spelling mistakes in doc folder +- #6953 `eae0350` Clarification of unit test build instructions +- #6953 `90897ab` Update bluematt-key, the old one is long-since revoked +- #6953 `a2f2fb6` build: disable -Wself-assign +- #6953 `cf67d8b` Bugfix: Allow mining on top of old tip blocks for testnet (fixes testnet-in-a-box use case) +- #6953 `b3964e3` Drop "with minimal dependencies" from description +- #6953 `43c2789` Split bitcoin-tx into its own package +- #6953 `dfe0d4d` Include bitcoin-tx binary on Debian/Ubuntu +- #6953 `612efe8` [Qt] Raise debug window when requested +- #6953 `3ad96bd` Fix locking in GetTransaction +- #6953 `9c81005` Fix spelling of Qt +- #6946 `94b67e5` Update LevelDB +- #6706 `5dc72f8` CLTV: Add more tests to improve coverage +- #6706 `6a1343b` Add RPC tests for the CHECKLOCKTIMEVERIFY (BIP65) soft-fork +- #6706 `4137248` Add CHECKLOCKTIMEVERIFY (BIP65) soft-fork logic +- #6706 `0e01d0f` Enable CHECKLOCKTIMEVERIFY as a standard script verify flag +- #6706 `6d01325` Replace NOP2 with CHECKLOCKTIMEVERIFY (BIP65) +- #6706 `750d54f` Move LOCKTIME_THRESHOLD to src/script/script.h +- #6706 `6897468` Make CScriptNum() take nMaxNumSize as an argument +- #6867 `5297194` Set TCP_NODELAY on P2P sockets +- #6836 `fb818b6` Bring historical release notes up to date +- #6852 `0b3fd07` build: make sure OpenSSL heeds noexecstack Credits ======= Thanks to everyone who directly contributed to this release: -- Adam Weiss - Alex Morcos -- Casey Rodarmor -- Cory Fields -- fanquake +- Daniel Cousens +- Diego Viola +- Eric Lombrozo +- Esteban Ordano - Gregory Maxwell -- Jonas Schnelli -- J Ross Nicoll - Luke Dashjr -- Pavel Vasin +- MarcoFalke +- Matt Corallo +- Micha +- Mitchell Cash +- Peter Todd - Pieter Wuille -- randy-waterhouse -- ฿tcDrak -- Tom Harding -- Veres Lajos - Wladimir J. van der Laan +- Zak Wilcox -And all those who contributed additional code review and/or security research: - -- timothy on IRC for reporting the issue -- Vulnerability in miniupnp discovered by Aleksandar Nikolic of Cisco Talos +And those who contributed additional code review and/or security research. As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). diff --git a/src/clientversion.h b/src/clientversion.h index 6dadd472bd4..d113962fc64 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -16,7 +16,7 @@ //! These need to be macros, as clientversion.cpp's and bitcoin*-res.rc's voodoo requires it #define CLIENT_VERSION_MAJOR 0 #define CLIENT_VERSION_MINOR 10 -#define CLIENT_VERSION_REVISION 3 +#define CLIENT_VERSION_REVISION 4 #define CLIENT_VERSION_BUILD 0 //! Set to true for release, false for prerelease or test build From b0c97ce31a93caa0037c67a0dc133b8873911070 Mon Sep 17 00:00:00 2001 From: MarcoFalke Date: Wed, 20 Jan 2016 09:51:02 +0100 Subject: [PATCH 196/201] [walletdb] Fix syntax error in key parser Github-Pull: #7381 Rebased-From: fa6d4cc09575de30386bfbc5c8c3858cd7a2f42a --- src/db.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/db.cpp b/src/db.cpp index 12650e459f3..cb6f7d5a001 100644 --- a/src/db.cpp +++ b/src/db.cpp @@ -199,7 +199,7 @@ bool CDBEnv::Salvage(std::string strFile, bool fAggressive, std::vector Date: Mon, 30 Nov 2015 13:23:00 +0100 Subject: [PATCH 197/201] Fix url in .travis.yml Github-Pull: #7136 Rebased-From: 9999cb0626750c912097c73a1ef5c50435a922e3 --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 06dd4c6aaab..944beb7651b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,7 @@ # - A travis bug causes caches to trample eachother when using the same # compiler key (which we don't use anyway). This is worked around for now by # replacing the "compilers" with a build name prefixed by the no-op ":" -# command. See: https://github.com/travis-ci/casher/issues/6 +# command. See: https://github.com/travis-ci/travis-ci/issues/4393 os: linux language: cpp From 6bf4884d7bd0d3ab73e80ae25792fbbd4c8bc68f Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Tue, 9 Feb 2016 22:17:09 +0000 Subject: [PATCH 198/201] Workaround Travis-side CI issues Github-Pull: #7487 Rebased-From: 149641e8fc9996da01eb76ffe4578828c40d37b5 c01f08db127883ff985889214eebdbe9513c729a 5d1148cb79856ac4695a0c7ac1cd28ada04eff34 1ecbb3b0f717c277f3db1a923fff16f7fc39432c --- .travis.yml | 8 +++++++- depends/builders/darwin.mk | 2 +- depends/builders/linux.mk | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 944beb7651b..65fd0433ddf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,12 @@ # compiler key (which we don't use anyway). This is worked around for now by # replacing the "compilers" with a build name prefixed by the no-op ":" # command. See: https://github.com/travis-ci/travis-ci/issues/4393 +# - sudo/dist/group are set so as to get Blue Box VMs, necessary for [loopback] +# IPv6 support + +sudo: required +dist: precise +group: legacy os: linux language: cpp @@ -47,7 +53,7 @@ install: before_script: - unset CC; unset CXX - mkdir -p depends/SDKs depends/sdk-sources - - if [ -n "$OSX_SDK" -a ! -f depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then wget $SDK_URL/MacOSX${OSX_SDK}.sdk.tar.gz -O depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz; fi + - if [ -n "$OSX_SDK" -a ! -f depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then curl --location --fail $SDK_URL/MacOSX${OSX_SDK}.sdk.tar.gz -o depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz; fi - if [ -n "$OSX_SDK" -a -f depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then tar -C depends/SDKs -xf depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz; fi - make $MAKEJOBS -C depends HOST=$HOST $DEP_OPTS script: diff --git a/depends/builders/darwin.mk b/depends/builders/darwin.mk index b366460e64b..cedbddc5784 100644 --- a/depends/builders/darwin.mk +++ b/depends/builders/darwin.mk @@ -7,7 +7,7 @@ build_darwin_OTOOL: = $(shell xcrun -f otool) build_darwin_NM: = $(shell xcrun -f nm) build_darwin_INSTALL_NAME_TOOL:=$(shell xcrun -f install_name_tool) build_darwin_SHA256SUM = shasum -a 256 -build_darwin_DOWNLOAD = curl --connect-timeout $(DOWNLOAD_CONNECT_TIMEOUT) --retry $(DOWNLOAD_RETRIES) -L -o +build_darwin_DOWNLOAD = curl --location --fail --connect-timeout $(DOWNLOAD_CONNECT_TIMEOUT) --retry $(DOWNLOAD_RETRIES) -L -o #darwin host on darwin builder. overrides darwin host preferences. darwin_CC=$(shell xcrun -f clang) -mmacosx-version-min=$(OSX_MIN_VERSION) diff --git a/depends/builders/linux.mk b/depends/builders/linux.mk index 98d0e9de348..d6a304e4b4b 100644 --- a/depends/builders/linux.mk +++ b/depends/builders/linux.mk @@ -1,2 +1,2 @@ build_linux_SHA256SUM = sha256sum -build_linux_DOWNLOAD = wget --timeout=$(DOWNLOAD_CONNECT_TIMEOUT) --tries=$(DOWNLOAD_RETRIES) -nv -O +build_linux_DOWNLOAD = curl --location --fail --connect-timeout $(DOWNLOAD_CONNECT_TIMEOUT) --retry $(DOWNLOAD_RETRIES) -L -o From 61646394b7faff0a31aeaa0339d36bc45829ee5c Mon Sep 17 00:00:00 2001 From: MarcoFalke Date: Fri, 26 Feb 2016 09:59:39 +0100 Subject: [PATCH 199/201] [depends] builders: No need to set -L and --location for curl Github-Pull: #7606 Rebased-From: fa7a5c54fc836ada12c185c43806c5e4a1044701 --- depends/builders/darwin.mk | 2 +- depends/builders/linux.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/depends/builders/darwin.mk b/depends/builders/darwin.mk index cedbddc5784..200d6ed22a2 100644 --- a/depends/builders/darwin.mk +++ b/depends/builders/darwin.mk @@ -7,7 +7,7 @@ build_darwin_OTOOL: = $(shell xcrun -f otool) build_darwin_NM: = $(shell xcrun -f nm) build_darwin_INSTALL_NAME_TOOL:=$(shell xcrun -f install_name_tool) build_darwin_SHA256SUM = shasum -a 256 -build_darwin_DOWNLOAD = curl --location --fail --connect-timeout $(DOWNLOAD_CONNECT_TIMEOUT) --retry $(DOWNLOAD_RETRIES) -L -o +build_darwin_DOWNLOAD = curl --location --fail --connect-timeout $(DOWNLOAD_CONNECT_TIMEOUT) --retry $(DOWNLOAD_RETRIES) -o #darwin host on darwin builder. overrides darwin host preferences. darwin_CC=$(shell xcrun -f clang) -mmacosx-version-min=$(OSX_MIN_VERSION) diff --git a/depends/builders/linux.mk b/depends/builders/linux.mk index d6a304e4b4b..b03f4240104 100644 --- a/depends/builders/linux.mk +++ b/depends/builders/linux.mk @@ -1,2 +1,2 @@ build_linux_SHA256SUM = sha256sum -build_linux_DOWNLOAD = curl --location --fail --connect-timeout $(DOWNLOAD_CONNECT_TIMEOUT) --retry $(DOWNLOAD_RETRIES) -L -o +build_linux_DOWNLOAD = curl --location --fail --connect-timeout $(DOWNLOAD_CONNECT_TIMEOUT) --retry $(DOWNLOAD_RETRIES) -o From 4e1134bdf1acff669c0f489934ac5f919c634d69 Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Sat, 27 Feb 2016 06:09:18 +0000 Subject: [PATCH 200/201] Bugfix: gitian: Add curl to packages (now needed for depends) Conflicts: contrib/gitian-descriptors/gitian-osx.yml Github-Pull: #7614 Rebased-From: 5c70a6d6d15cc301b76558f708948c375fe63ccb --- contrib/gitian-descriptors/gitian-linux.yml | 1 + contrib/gitian-descriptors/gitian-osx.yml | 1 + contrib/gitian-descriptors/gitian-win.yml | 1 + 3 files changed, 3 insertions(+) diff --git a/contrib/gitian-descriptors/gitian-linux.yml b/contrib/gitian-descriptors/gitian-linux.yml index ddf74decfa0..d23398ed28a 100644 --- a/contrib/gitian-descriptors/gitian-linux.yml +++ b/contrib/gitian-descriptors/gitian-linux.yml @@ -6,6 +6,7 @@ suites: architectures: - "amd64" packages: +- "curl" - "g++-multilib" - "git-core" - "pkg-config" diff --git a/contrib/gitian-descriptors/gitian-osx.yml b/contrib/gitian-descriptors/gitian-osx.yml index 30f00633bc5..b7b7df96d79 100644 --- a/contrib/gitian-descriptors/gitian-osx.yml +++ b/contrib/gitian-descriptors/gitian-osx.yml @@ -7,6 +7,7 @@ architectures: - "amd64" packages: - "g++-multilib" +- "curl" - "git-core" - "pkg-config" - "autoconf2.13" diff --git a/contrib/gitian-descriptors/gitian-win.yml b/contrib/gitian-descriptors/gitian-win.yml index 91405a55d01..ff62d9140fd 100644 --- a/contrib/gitian-descriptors/gitian-win.yml +++ b/contrib/gitian-descriptors/gitian-win.yml @@ -6,6 +6,7 @@ suites: architectures: - "amd64" packages: +- "curl" - "g++" - "git-core" - "pkg-config" From 9cea1698132ab68b0d6b204ff5c8d154d9192b19 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Thu, 9 Mar 2017 20:29:41 +0100 Subject: [PATCH 201/201] net: Disable P2P alert system --- src/main.cpp | 28 ++-------------------------- 1 file changed, 2 insertions(+), 26 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index dd438f42c7f..2c44f07c7c1 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4278,32 +4278,8 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, else if (fAlerts && strCommand == "alert") { - CAlert alert; - vRecv >> alert; - - uint256 alertHash = alert.GetHash(); - if (pfrom->setKnown.count(alertHash) == 0) - { - if (alert.ProcessAlert()) - { - // Relay - pfrom->setKnown.insert(alertHash); - { - LOCK(cs_vNodes); - BOOST_FOREACH(CNode* pnode, vNodes) - alert.RelayTo(pnode); - } - } - else { - // Small DoS penalty so peers that send us lots of - // duplicate/expired/invalid-signature/whatever alerts - // eventually get banned. - // This isn't a Misbehaving(100) (immediate ban) because the - // peer might be an older or different implementation with - // a different signature key, etc. - Misbehaving(pfrom->GetId(), 10); - } - } + // Alert message handling disabled + // See https://bitcoin.org/en/alert/2016-11-01-alert-retirement }