mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-22 00:00:55 +01:00
Compare commits
186 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0602db06eb | ||
|
|
391b2cf025 | ||
|
|
1e3dafcaa7 | ||
|
|
bf47116671 | ||
|
|
4b8a3f5d23 | ||
|
|
b667765151 | ||
|
|
809df9e462 | ||
|
|
1618c63095 | ||
|
|
93b9a61f12 | ||
|
|
9bb1a16523 | ||
|
|
cb7ef312ff | ||
|
|
ad8393634a | ||
|
|
2559a19e6f | ||
|
|
a69cc077d9 | ||
|
|
7af24577b5 | ||
|
|
a81642c650 | ||
|
|
f455bfd78a | ||
|
|
3f1db56bc1 | ||
|
|
42ea47db42 | ||
|
|
7b57bc998f | ||
|
|
4fcb915944 | ||
|
|
2ce9e586d5 | ||
|
|
f518d9ae6a | ||
|
|
3a6cdd459c | ||
|
|
1c8c7f8af9 | ||
|
|
1036c43fe5 | ||
|
|
2eea279fe6 | ||
|
|
305f768242 | ||
|
|
70268454e8 | ||
|
|
6372a75581 | ||
|
|
8195cb0d7f | ||
|
|
34153a7e4a | ||
|
|
f224cbc3d8 | ||
|
|
fc308a6cdb | ||
|
|
2ed0647ac1 | ||
|
|
a607a95d81 | ||
|
|
459f2db425 | ||
|
|
49bf090185 | ||
|
|
bb83fe1902 | ||
|
|
4c82cea99b | ||
|
|
7871a7d3be | ||
|
|
6baa317b5f | ||
|
|
55b7abfa8a | ||
|
|
5bec7744d1 | ||
|
|
92d6105c4e | ||
|
|
51001d684b | ||
|
|
c6e4d0ce82 | ||
|
|
e976c36ddf | ||
|
|
ec8dedff46 | ||
|
|
59b210d9a7 | ||
|
|
fc966bbd2b | ||
|
|
e3272242e2 | ||
|
|
9961abf9e4 | ||
|
|
bf191a7183 | ||
|
|
d570aa4290 | ||
|
|
0a5477c7e3 | ||
|
|
b4136f21cf | ||
|
|
dc897e53d8 | ||
|
|
8aee55af3d | ||
|
|
6f279652b0 | ||
|
|
ffb6ea4e5e | ||
|
|
2df65eeb98 | ||
|
|
3acec38781 | ||
|
|
0e9d04bf0a | ||
|
|
da4908c3a0 | ||
|
|
41088795dd | ||
|
|
f3457d0e83 | ||
|
|
9c8006dc33 | ||
|
|
de7053f114 | ||
|
|
fd79ed6b20 | ||
|
|
d94fc336c4 | ||
|
|
623de0acbb | ||
|
|
5b728c8e98 | ||
|
|
34833534b6 | ||
|
|
7d4546f17d | ||
|
|
cf18f42899 | ||
|
|
265bb214ec | ||
|
|
01223a0261 | ||
|
|
adbc9d164a | ||
|
|
fdad04e617 | ||
|
|
a2bd86a5ff | ||
|
|
ca0f3f734c | ||
|
|
b28415baae | ||
|
|
1646f9c760 | ||
|
|
20cdc2b36c | ||
|
|
51bad9195e | ||
|
|
405e069d3b | ||
|
|
c94527a973 | ||
|
|
27e861a9b3 | ||
|
|
dea3b87dd9 | ||
|
|
a43be5bcdb | ||
|
|
019c492490 | ||
|
|
e169349f8c | ||
|
|
b6c0209aaf | ||
|
|
6a62c745a9 | ||
|
|
0fe2a9a196 | ||
|
|
6b4d9f2736 | ||
|
|
806c78f014 | ||
|
|
a825d4af5e | ||
|
|
a36f3320a9 | ||
|
|
8d2e51d862 | ||
|
|
2f0b30a58a | ||
|
|
e4605d9dd4 | ||
|
|
2c4ff35a8f | ||
|
|
794a80eee3 | ||
|
|
f9cf7b589f | ||
|
|
f1ced0d776 | ||
|
|
2e1ac70df9 | ||
|
|
b6468d3c42 | ||
|
|
d8dd8e7356 | ||
|
|
62d18cdb89 | ||
|
|
8b61aee690 | ||
|
|
75997c3b35 | ||
|
|
8d13b4298c | ||
|
|
6642558078 | ||
|
|
19d63e8a93 | ||
|
|
b1a6c94683 | ||
|
|
921542e0bd | ||
|
|
2e31b1d48d | ||
|
|
2b97b36e5d | ||
|
|
e38211f5e8 | ||
|
|
e0bfd28de2 | ||
|
|
812c870043 | ||
|
|
eeb24a3a01 | ||
|
|
f3f7891776 | ||
|
|
47c02a8ae8 | ||
|
|
f0b67954f0 | ||
|
|
44241765e3 | ||
|
|
7310f1f2eb | ||
|
|
cef03198dc | ||
|
|
82bf6fc6d4 | ||
|
|
801d2ae924 | ||
|
|
bb5e7cb308 | ||
|
|
4d3ba18386 | ||
|
|
11a5992c90 | ||
|
|
847c75ec64 | ||
|
|
2a5d099e47 | ||
|
|
2cb720ae61 | ||
|
|
b278a43646 | ||
|
|
716066dbea | ||
|
|
016b9ada21 | ||
|
|
5398f205e3 | ||
|
|
1d80d1e319 | ||
|
|
c276c1e1d1 | ||
|
|
50bd3f626d | ||
|
|
fc2aa09cf3 | ||
|
|
9e8aae31c1 | ||
|
|
fb7b529384 | ||
|
|
f266f2668b | ||
|
|
7123b95bea | ||
|
|
843233277d | ||
|
|
46c8d23dad | ||
|
|
7c53587101 | ||
|
|
3751912e8e | ||
|
|
fa120bd01c | ||
|
|
5f2cf88c23 | ||
|
|
0ced455b99 | ||
|
|
adcc788f2a | ||
|
|
d4c9d00e7e | ||
|
|
134d824193 | ||
|
|
58f1e54cbf | ||
|
|
fad16a90b2 | ||
|
|
48790e0efa | ||
|
|
a461cf4e37 | ||
|
|
29a3cb2378 | ||
|
|
e8ad101e5b | ||
|
|
5b059a833e | ||
|
|
e51bb71e4a | ||
|
|
0a6af47ffa | ||
|
|
0d3e8183fa | ||
|
|
28b978b19e | ||
|
|
9c76cf50fb | ||
|
|
129b03ff62 | ||
|
|
07164bbead | ||
|
|
eb9c21ed79 | ||
|
|
6ab120cc6c | ||
|
|
4ef8374559 | ||
|
|
2b59cfb1f7 | ||
|
|
9fe1f6bd89 | ||
|
|
6c2b0085fb | ||
|
|
cbdd338a75 | ||
|
|
8f0121c957 | ||
|
|
008f64f80f | ||
|
|
1c4b9b3135 | ||
|
|
30c246b04f | ||
|
|
252ca9c5d8 |
@@ -1,7 +1,7 @@
|
||||
sudo: required
|
||||
dist: trusty
|
||||
os: linux
|
||||
language: generic
|
||||
language: minimal
|
||||
cache:
|
||||
directories:
|
||||
- depends/built
|
||||
|
||||
1
COPYING
1
COPYING
@@ -1,6 +1,7 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2009-2017 The Bitcoin Core developers
|
||||
Copyright (c) 2009-2017 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
|
||||
|
||||
@@ -44,6 +44,9 @@ DIST_CONTRIB = $(top_srcdir)/contrib/bitcoin-cli.bash-completion \
|
||||
$(top_srcdir)/contrib/bitcoind.bash-completion \
|
||||
$(top_srcdir)/contrib/init \
|
||||
$(top_srcdir)/contrib/rpm
|
||||
DIST_SHARE = \
|
||||
$(top_srcdir)/share/genbuild.sh \
|
||||
$(top_srcdir)/share/rpcuser
|
||||
|
||||
BIN_CHECKS=$(top_srcdir)/contrib/devtools/symbol-check.py \
|
||||
$(top_srcdir)/contrib/devtools/security-check.py
|
||||
@@ -213,7 +216,7 @@ endif
|
||||
|
||||
dist_noinst_SCRIPTS = autogen.sh
|
||||
|
||||
EXTRA_DIST = $(top_srcdir)/share/genbuild.sh test/functional/test_runner.py test/functional $(DIST_CONTRIB) $(DIST_DOCS) $(WINDOWS_PACKAGING) $(OSX_PACKAGING) $(BIN_CHECKS)
|
||||
EXTRA_DIST = $(DIST_SHARE) test/functional/test_runner.py test/functional $(DIST_CONTRIB) $(DIST_DOCS) $(WINDOWS_PACKAGING) $(OSX_PACKAGING) $(BIN_CHECKS)
|
||||
|
||||
EXTRA_DIST += \
|
||||
test/util/bitcoin-util-test.py \
|
||||
@@ -249,6 +252,7 @@ EXTRA_DIST += \
|
||||
test/util/data/txcreatemultisig3.json \
|
||||
test/util/data/txcreatemultisig4.hex \
|
||||
test/util/data/txcreatemultisig4.json \
|
||||
test/util/data/txcreatemultisig5.json \
|
||||
test/util/data/txcreateoutpubkey1.hex \
|
||||
test/util/data/txcreateoutpubkey1.json \
|
||||
test/util/data/txcreateoutpubkey2.hex \
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N)
|
||||
AC_PREREQ([2.60])
|
||||
define(_CLIENT_VERSION_MAJOR, 0)
|
||||
define(_CLIENT_VERSION_MINOR, 14)
|
||||
define(_CLIENT_VERSION_REVISION, 99)
|
||||
define(_CLIENT_VERSION_MINOR, 15)
|
||||
define(_CLIENT_VERSION_REVISION, 2)
|
||||
define(_CLIENT_VERSION_BUILD, 0)
|
||||
define(_CLIENT_VERSION_IS_RELEASE, false)
|
||||
define(_CLIENT_VERSION_IS_RELEASE, true)
|
||||
define(_COPYRIGHT_YEAR, 2017)
|
||||
define(_COPYRIGHT_HOLDERS,[The %s developers])
|
||||
define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Bitcoin Core]])
|
||||
@@ -1231,6 +1231,7 @@ AC_SUBST(QR_LIBS)
|
||||
AC_CONFIG_FILES([Makefile src/Makefile doc/man/Makefile share/setup.nsi share/qt/Info.plist test/config.ini])
|
||||
AC_CONFIG_FILES([contrib/devtools/split-debug.sh],[chmod +x contrib/devtools/split-debug.sh])
|
||||
AC_CONFIG_FILES([doc/Doxyfile])
|
||||
AC_CONFIG_LINKS([contrib/filter-lcov.py:contrib/filter-lcov.py])
|
||||
AC_CONFIG_LINKS([test/functional/test_runner.py:test/functional/test_runner.py])
|
||||
AC_CONFIG_LINKS([test/util/bitcoin-util-test.py:test/util/bitcoin-util-test.py])
|
||||
|
||||
@@ -1261,7 +1262,7 @@ if test x$need_bundled_univalue = xyes; then
|
||||
AC_CONFIG_SUBDIRS([src/univalue])
|
||||
fi
|
||||
|
||||
ac_configure_args="${ac_configure_args} --disable-shared --with-pic --with-bignum=no --enable-module-recovery"
|
||||
ac_configure_args="${ac_configure_args} --disable-shared --with-pic --with-bignum=no --enable-module-recovery --disable-jni"
|
||||
AC_CONFIG_SUBDIRS([src/secp256k1])
|
||||
|
||||
AC_OUTPUT
|
||||
|
||||
@@ -132,7 +132,6 @@ script: |
|
||||
export PATH=${WRAP_DIR}:${PATH}
|
||||
|
||||
# Create the release tarball using (arbitrarily) the first host
|
||||
export GIT_DIR="$PWD/.git"
|
||||
./autogen.sh
|
||||
CONFIG_SITE=${BASEPREFIX}/`echo "${HOSTS}" | awk '{print $1;}'`/share/config.site ./configure --prefix=/
|
||||
make dist
|
||||
@@ -145,6 +144,9 @@ script: |
|
||||
find bitcoin-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST
|
||||
popd
|
||||
|
||||
# Workaround for tarball not building with the bare tag version (prep)
|
||||
make -C src obj/build.h
|
||||
|
||||
ORIGPATH="$PATH"
|
||||
# Extract the release tarball into a dir for each host and build
|
||||
for i in ${HOSTS}; do
|
||||
@@ -155,6 +157,11 @@ script: |
|
||||
mkdir -p ${INSTALLPATH}
|
||||
tar --strip-components=1 -xf ../$SOURCEDIST
|
||||
|
||||
# Workaround for tarball not building with the bare tag version
|
||||
echo '#!/bin/true' >share/genbuild.sh
|
||||
mkdir src/obj
|
||||
cp ../src/obj/build.h src/obj/
|
||||
|
||||
CONFIG_SITE=${BASEPREFIX}/${i}/share/config.site ./configure --prefix=/ --disable-ccache --disable-maintainer-mode --disable-dependency-tracking ${CONFIGFLAGS} CFLAGS="${HOST_CFLAGS}" CXXFLAGS="${HOST_CXXFLAGS}" LDFLAGS="${HOST_LDFLAGS}"
|
||||
make ${MAKEOPTS}
|
||||
make ${MAKEOPTS} -C src check-security
|
||||
|
||||
@@ -101,7 +101,6 @@ script: |
|
||||
export PATH=${WRAP_DIR}:${PATH}
|
||||
|
||||
# Create the release tarball using (arbitrarily) the first host
|
||||
export GIT_DIR="$PWD/.git"
|
||||
./autogen.sh
|
||||
CONFIG_SITE=${BASEPREFIX}/`echo "${HOSTS}" | awk '{print $1;}'`/share/config.site ./configure --prefix=/
|
||||
make dist
|
||||
@@ -115,6 +114,9 @@ script: |
|
||||
find bitcoin-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST
|
||||
popd
|
||||
|
||||
# Workaround for tarball not building with the bare tag version (prep)
|
||||
make -C src obj/build.h
|
||||
|
||||
ORIGPATH="$PATH"
|
||||
# Extract the release tarball into a dir for each host and build
|
||||
for i in ${HOSTS}; do
|
||||
@@ -125,6 +127,11 @@ script: |
|
||||
mkdir -p ${INSTALLPATH}
|
||||
tar --strip-components=1 -xf ../$SOURCEDIST
|
||||
|
||||
# Workaround for tarball not building with the bare tag version
|
||||
echo '#!/bin/true' >share/genbuild.sh
|
||||
mkdir src/obj
|
||||
cp ../src/obj/build.h src/obj/
|
||||
|
||||
CONFIG_SITE=${BASEPREFIX}/${i}/share/config.site ./configure --prefix=/ --disable-ccache --disable-maintainer-mode --disable-dependency-tracking ${CONFIGFLAGS}
|
||||
make ${MAKEOPTS}
|
||||
make install-strip DESTDIR=${INSTALLPATH}
|
||||
|
||||
@@ -116,7 +116,6 @@ script: |
|
||||
export PATH=${WRAP_DIR}:${PATH}
|
||||
|
||||
# Create the release tarball using (arbitrarily) the first host
|
||||
export GIT_DIR="$PWD/.git"
|
||||
./autogen.sh
|
||||
CONFIG_SITE=${BASEPREFIX}/`echo "${HOSTS}" | awk '{print $1;}'`/share/config.site ./configure --prefix=/
|
||||
make dist
|
||||
@@ -132,6 +131,9 @@ script: |
|
||||
cp ../$SOURCEDIST $OUTDIR/src
|
||||
popd
|
||||
|
||||
# Workaround for tarball not building with the bare tag version (prep)
|
||||
make -C src obj/build.h
|
||||
|
||||
ORIGPATH="$PATH"
|
||||
# Extract the release tarball into a dir for each host and build
|
||||
for i in ${HOSTS}; do
|
||||
@@ -142,6 +144,11 @@ script: |
|
||||
mkdir -p ${INSTALLPATH}
|
||||
tar --strip-components=1 -xf ../$SOURCEDIST
|
||||
|
||||
# Workaround for tarball not building with the bare tag version
|
||||
echo '#!/bin/true' >share/genbuild.sh
|
||||
mkdir src/obj
|
||||
cp ../src/obj/build.h src/obj/
|
||||
|
||||
CONFIG_SITE=${BASEPREFIX}/${i}/share/config.site ./configure --prefix=/ --disable-ccache --disable-maintainer-mode --disable-dependency-tracking ${CONFIGFLAGS} CFLAGS="${HOST_CFLAGS}" CXXFLAGS="${HOST_CXXFLAGS}"
|
||||
make ${MAKEOPTS}
|
||||
make ${MAKEOPTS} -C src check-security
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/sbin/runscript
|
||||
#!/sbin/openrc-run
|
||||
|
||||
# backward compatibility for existing gentoo layout
|
||||
#
|
||||
|
||||
@@ -46,6 +46,11 @@ for LINE in $(echo "$GPG_RES"); do
|
||||
REVSIG=true
|
||||
GOODREVSIG="[GNUPG:] GOODSIG ${LINE#* * *}"
|
||||
;;
|
||||
"[GNUPG:] EXPKEYSIG "*)
|
||||
[ "$BITCOIN_VERIFY_COMMITS_ALLOW_REVSIG" != 1 ] && exit 1
|
||||
REVSIG=true
|
||||
GOODREVSIG="[GNUPG:] GOODSIG ${LINE#* * *}"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
if ! $VALID; then
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
PACKAGE=qt
|
||||
$(package)_version=5.7.1
|
||||
$(package)_download_path=http://download.qt.io/official_releases/qt/5.7/$($(package)_version)/submodules
|
||||
$(package)_download_path=https://download.qt.io/archive/qt/5.7/$($(package)_version)/submodules
|
||||
$(package)_suffix=opensource-src-$($(package)_version).tar.gz
|
||||
$(package)_file_name=qtbase-$($(package)_suffix)
|
||||
$(package)_sha256_hash=95f83e532d23b3ddbde7973f380ecae1bac13230340557276f75f2e37984e410
|
||||
@@ -8,7 +8,8 @@ $(package)_dependencies=openssl zlib
|
||||
$(package)_linux_dependencies=freetype fontconfig libxcb libX11 xproto libXext
|
||||
$(package)_build_subdir=qtbase
|
||||
$(package)_qt_libs=corelib network widgets gui plugins testlib
|
||||
$(package)_patches=mac-qmake.conf mingw-uuidof.patch pidlist_absolute.patch fix-xcb-include-order.patch fix_qt_pkgconfig.patch
|
||||
$(package)_patches=mac-qmake.conf mingw-uuidof.patch pidlist_absolute.patch fix-xcb-include-order.patch
|
||||
$(package)_patches+=fix_qt_pkgconfig.patch fix-cocoahelpers-macos.patch qfixed-coretext.patch
|
||||
|
||||
$(package)_qttranslations_file_name=qttranslations-$($(package)_suffix)
|
||||
$(package)_qttranslations_sha256_hash=3a15aebd523c6d89fb97b2d3df866c94149653a26d27a00aac9b6d3020bc5a1d
|
||||
@@ -140,6 +141,8 @@ define $(package)_preprocess_cmds
|
||||
patch -p1 < $($(package)_patch_dir)/pidlist_absolute.patch && \
|
||||
patch -p1 < $($(package)_patch_dir)/fix-xcb-include-order.patch && \
|
||||
patch -p1 < $($(package)_patch_dir)/fix_qt_pkgconfig.patch && \
|
||||
patch -p1 < $($(package)_patch_dir)/fix-cocoahelpers-macos.patch && \
|
||||
patch -p1 < $($(package)_patch_dir)/qfixed-coretext.patch && \
|
||||
echo "!host_build: QMAKE_CFLAGS += $($(package)_cflags) $($(package)_cppflags)" >> qtbase/mkspecs/common/gcc-base.conf && \
|
||||
echo "!host_build: QMAKE_CXXFLAGS += $($(package)_cxxflags) $($(package)_cppflags)" >> qtbase/mkspecs/common/gcc-base.conf && \
|
||||
echo "!host_build: QMAKE_LFLAGS += $($(package)_ldflags)" >> qtbase/mkspecs/common/gcc-base.conf && \
|
||||
|
||||
70
depends/patches/qt/fix-cocoahelpers-macos.patch
Normal file
70
depends/patches/qt/fix-cocoahelpers-macos.patch
Normal file
@@ -0,0 +1,70 @@
|
||||
From 0707260a4f8e64dfadf1df5f935e74cabb7c7d27 Mon Sep 17 00:00:00 2001
|
||||
From: Jake Petroules <jake.petroules@qt.io>
|
||||
Date: Sun, 1 Oct 2017 21:48:17 -0700
|
||||
Subject: [PATCH] Fix build error with macOS 10.13 SDK
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=utf8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Several of these variables/macros are no longer defined. We didn't
|
||||
validate the preconditions on iOS, tvOS, or watchOS, so no
|
||||
need to bother validating them on macOS either. Nor did we check the
|
||||
OSStatus result on any platform anyways.
|
||||
|
||||
Task-number: QTBUG-63401
|
||||
Change-Id: Ife64dff767cf6d3f4b839fc53ec486181c176bf3
|
||||
(cherry-picked from 861544583511d4e6f7745d2339b26ff1cd44132b)
|
||||
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
||||
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
||||
---
|
||||
src/plugins/platforms/cocoa/qcocoahelpers.h | 2 +-
|
||||
src/plugins/platforms/cocoa/qcocoahelpers.mm | 13 +------------
|
||||
2 files changed, 2 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git old/qtbase/src/plugins/platforms/cocoa/qcocoahelpers.h new/qtbase/src/plugins/platforms/cocoa/qcocoahelpers.h
|
||||
index bbb3793..74371d5 100644
|
||||
--- old/qtbase/src/plugins/platforms/cocoa/qcocoahelpers.h
|
||||
+++ new/qtbase/src/plugins/platforms/cocoa/qcocoahelpers.h
|
||||
@@ -80,7 +80,7 @@ QColor qt_mac_toQColor(CGColorRef color);
|
||||
// Creates a mutable shape, it's the caller's responsibility to release.
|
||||
HIMutableShapeRef qt_mac_QRegionToHIMutableShape(const QRegion ®ion);
|
||||
|
||||
-OSStatus qt_mac_drawCGImage(CGContextRef inContext, const CGRect *inBounds, CGImageRef inImage);
|
||||
+void qt_mac_drawCGImage(CGContextRef inContext, const CGRect *inBounds, CGImageRef inImage);
|
||||
|
||||
NSDragOperation qt_mac_mapDropAction(Qt::DropAction action);
|
||||
NSDragOperation qt_mac_mapDropActions(Qt::DropActions actions);
|
||||
diff --git old/qtbase/src/plugins/platforms/cocoa/qcocoahelpers.mm new/qtbase/src/plugins/platforms/cocoa/qcocoahelpers.mm
|
||||
index cd73148..3f8429e 100644
|
||||
--- old/qtbase/src/plugins/platforms/cocoa/qcocoahelpers.mm
|
||||
+++ new/qtbase/src/plugins/platforms/cocoa/qcocoahelpers.mm
|
||||
@@ -544,15 +544,8 @@ NSRect qt_mac_flipRect(const QRect &rect)
|
||||
return NSMakeRect(rect.x(), flippedY, rect.width(), rect.height());
|
||||
}
|
||||
|
||||
-OSStatus qt_mac_drawCGImage(CGContextRef inContext, const CGRect *inBounds, CGImageRef inImage)
|
||||
+void qt_mac_drawCGImage(CGContextRef inContext, const CGRect *inBounds, CGImageRef inImage)
|
||||
{
|
||||
- // Verbatim copy if HIViewDrawCGImage (as shown on Carbon-Dev)
|
||||
- OSStatus err = noErr;
|
||||
-
|
||||
- require_action(inContext != NULL, InvalidContext, err = paramErr);
|
||||
- require_action(inBounds != NULL, InvalidBounds, err = paramErr);
|
||||
- require_action(inImage != NULL, InvalidImage, err = paramErr);
|
||||
-
|
||||
CGContextSaveGState( inContext );
|
||||
CGContextTranslateCTM (inContext, 0, inBounds->origin.y + CGRectGetMaxY(*inBounds));
|
||||
CGContextScaleCTM(inContext, 1, -1);
|
||||
@@ -560,10 +553,6 @@ OSStatus qt_mac_drawCGImage(CGContextRef inContext, const CGRect *inBounds, CGIm
|
||||
CGContextDrawImage(inContext, *inBounds, inImage);
|
||||
|
||||
CGContextRestoreGState(inContext);
|
||||
-InvalidImage:
|
||||
-InvalidBounds:
|
||||
-InvalidContext:
|
||||
- return err;
|
||||
}
|
||||
|
||||
Qt::MouseButton cocoaButton2QtButton(NSInteger buttonNum)
|
||||
--
|
||||
2.7.4
|
||||
34
depends/patches/qt/qfixed-coretext.patch
Normal file
34
depends/patches/qt/qfixed-coretext.patch
Normal file
@@ -0,0 +1,34 @@
|
||||
From dbdd5f0ffbce52c8b789ed09f1aa3f1da6c02e23 Mon Sep 17 00:00:00 2001
|
||||
From: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
|
||||
Date: Fri, 30 Mar 2018 11:58:16 -0700
|
||||
Subject: [PATCH] QCoreTextFontEngine: Fix build with Xcode 9.3
|
||||
|
||||
Apple LLVM version 9.1.0 (clang-902.0.39.1)
|
||||
|
||||
Error message:
|
||||
|
||||
.../qfontengine_coretext.mm:827:20: error: qualified reference to
|
||||
'QFixed' is a constructor name rather than a type in this context
|
||||
return QFixed::QFixed(int(CTFontGetUnitsPerEm(ctfont)));
|
||||
|
||||
Change-Id: Iebe26b3b087a16b10664208fc8851cbddb47f043
|
||||
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
|
||||
---
|
||||
src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git old/qtbase/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm new/qtbase/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm
|
||||
index 25ff69d877d..98b753eff96 100644
|
||||
--- old/qtbase/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm
|
||||
+++ new/qtbase/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm
|
||||
@@ -824,7 +824,7 @@ void QCoreTextFontEngine::getUnscaledGlyph(glyph_t glyph, QPainterPath *path, gl
|
||||
|
||||
QFixed QCoreTextFontEngine::emSquareSize() const
|
||||
{
|
||||
- return QFixed::QFixed(int(CTFontGetUnitsPerEm(ctfont)));
|
||||
+ return QFixed(int(CTFontGetUnitsPerEm(ctfont)));
|
||||
}
|
||||
|
||||
QFontEngine *QCoreTextFontEngine::cloneWithSize(qreal pixelSize) const
|
||||
--
|
||||
2.16.3
|
||||
@@ -1,10 +1,10 @@
|
||||
OpenBSD build guide
|
||||
======================
|
||||
(updated for OpenBSD 6.0)
|
||||
(updated for OpenBSD 6.2)
|
||||
|
||||
This guide describes how to build bitcoind and command-line utilities on OpenBSD.
|
||||
|
||||
As OpenBSD is most common as a server OS, we will not bother with the GUI.
|
||||
OpenBSD is most commonly used as a server OS, so this guide does not contain instructions for building the GUI.
|
||||
|
||||
Preparation
|
||||
-------------
|
||||
@@ -12,65 +12,33 @@ Preparation
|
||||
Run the following as root to install the base dependencies for building:
|
||||
|
||||
```bash
|
||||
pkg_add gmake libtool libevent
|
||||
pkg_add git gmake libevent libtool
|
||||
pkg_add autoconf # (select highest version, e.g. 2.69)
|
||||
pkg_add automake # (select highest version, e.g. 1.15)
|
||||
pkg_add python # (select highest version, e.g. 3.5)
|
||||
pkg_add python # (select highest version, e.g. 3.6)
|
||||
pkg_add boost
|
||||
|
||||
git clone https://github.com/bitcoin/bitcoin.git
|
||||
```
|
||||
|
||||
The default C++ compiler that comes with OpenBSD 5.9 is g++ 4.2. This version is old (from 2007), and is not able to compile the current version of Bitcoin Core, primarily as it has no C++11 support, but even before there were issues. So here we will be installing a newer compiler.
|
||||
See [dependencies.md](dependencies.md) for a complete overview.
|
||||
|
||||
GCC
|
||||
-------
|
||||
|
||||
You can install a newer version of gcc with:
|
||||
The default C++ compiler that comes with OpenBSD 6.2 is g++ 4.2.1. This version is old (from 2007), and is not able to compile the current version of Bitcoin Core because it has no C++11 support. We'll install a newer version of GCC:
|
||||
|
||||
```bash
|
||||
pkg_add g++ # (select newest 4.x version, e.g. 4.9.3)
|
||||
```
|
||||
pkg_add g++
|
||||
```
|
||||
|
||||
This compiler will not overwrite the system compiler, it will be installed as `egcc` and `eg++` in `/usr/local/bin`.
|
||||
|
||||
### Building boost
|
||||
|
||||
Do not use `pkg_add boost`! The boost version installed thus is compiled using the `g++` compiler not `eg++`, which will result in a conflict between `/usr/local/lib/libestdc++.so.XX.0` and `/usr/lib/libstdc++.so.XX.0`, resulting in a test crash:
|
||||
|
||||
test_bitcoin:/usr/lib/libstdc++.so.57.0: /usr/local/lib/libestdc++.so.17.0 : WARNING: symbol(_ZN11__gnu_debug17_S_debug_me ssagesE) size mismatch, relink your program
|
||||
...
|
||||
Segmentation fault (core dumped)
|
||||
|
||||
This makes it necessary to build boost, or at least the parts used by Bitcoin Core, manually:
|
||||
|
||||
```
|
||||
# Pick some path to install boost to, here we create a directory within the bitcoin directory
|
||||
BITCOIN_ROOT=$(pwd)
|
||||
BOOST_PREFIX="${BITCOIN_ROOT}/boost"
|
||||
mkdir -p $BOOST_PREFIX
|
||||
|
||||
# Fetch the source and verify that it is not tampered with
|
||||
curl -o boost_1_61_0.tar.bz2 http://heanet.dl.sourceforge.net/project/boost/boost/1.61.0/boost_1_61_0.tar.bz2
|
||||
echo 'a547bd06c2fd9a71ba1d169d9cf0339da7ebf4753849a8f7d6fdb8feee99b640 boost_1_61_0.tar.bz2' | sha256 -c
|
||||
# MUST output: (SHA256) boost_1_61_0.tar.bz2: OK
|
||||
tar -xjf boost_1_61_0.tar.bz2
|
||||
|
||||
# Boost 1.61 needs one small patch for OpenBSD
|
||||
cd boost_1_61_0
|
||||
# Also here: https://gist.githubusercontent.com/laanwj/bf359281dc319b8ff2e1/raw/92250de8404b97bb99d72ab898f4a8cb35ae1ea3/patch-boost_test_impl_execution_monitor_ipp.patch
|
||||
patch -p0 < /usr/ports/devel/boost/patches/patch-boost_test_impl_execution_monitor_ipp
|
||||
|
||||
# Build w/ minimum configuration necessary for bitcoin
|
||||
echo 'using gcc : : eg++ : <cxxflags>"-fvisibility=hidden -fPIC" <linkflags>"" <archiver>"ar" <striper>"strip" <ranlib>"ranlib" <rc>"" : ;' > user-config.jam
|
||||
config_opts="runtime-link=shared threadapi=pthread threading=multi link=static variant=release --layout=tagged --build-type=complete --user-config=user-config.jam -sNO_BZIP2=1"
|
||||
./bootstrap.sh --without-icu --with-libraries=chrono,filesystem,program_options,system,thread,test
|
||||
./b2 -d2 -j2 -d1 ${config_opts} --prefix=${BOOST_PREFIX} stage
|
||||
./b2 -d0 -j4 ${config_opts} --prefix=${BOOST_PREFIX} install
|
||||
```
|
||||
This compiler will not overwrite the system compiler, it will be installed as `egcc` and `eg++` in `/usr/local/bin`.
|
||||
|
||||
### Building BerkeleyDB
|
||||
|
||||
BerkeleyDB is only necessary for the wallet functionality. To skip this, pass `--disable-wallet` to `./configure`.
|
||||
|
||||
See "Berkeley DB" in [build_unix.md](build_unix.md) for instructions on how to build BerkeleyDB 4.8.
|
||||
See "Berkeley DB" in [build-unix.md](build-unix.md#berkeley-db) for instructions on how to build BerkeleyDB 4.8.
|
||||
You cannot use the BerkeleyDB library from ports, for the same reason as boost above (g++/libstd++ incompatibility).
|
||||
|
||||
```bash
|
||||
@@ -98,8 +66,8 @@ The standard ulimit restrictions in OpenBSD are very strict:
|
||||
|
||||
data(kbytes) 1572864
|
||||
|
||||
This is, unfortunately, no longer enough to compile some `.cpp` files in the project,
|
||||
at least with gcc 4.9.3 (see issue https://github.com/bitcoin/bitcoin/issues/6658).
|
||||
This, unfortunately, may no longer be enough to compile some `.cpp` files in the project,
|
||||
at least with GCC 4.9.4 (see issue [#6658](https://github.com/bitcoin/bitcoin/issues/6658)).
|
||||
If your user is in the `staff` group the limit can be raised with:
|
||||
|
||||
ulimit -d 3000000
|
||||
@@ -118,59 +86,32 @@ export AUTOCONF_VERSION=2.69 # replace this with the autoconf version that you i
|
||||
export AUTOMAKE_VERSION=1.15 # replace this with the automake version that you installed
|
||||
./autogen.sh
|
||||
```
|
||||
Make sure `BDB_PREFIX` and `BOOST_PREFIX` are set to the appropriate paths from the above steps.
|
||||
Make sure `BDB_PREFIX` is set to the appropriate path from the above steps.
|
||||
|
||||
To configure with wallet:
|
||||
```bash
|
||||
./configure --with-gui=no --with-boost=$BOOST_PREFIX \
|
||||
CC=egcc CXX=eg++ CPP=ecpp \
|
||||
./configure --with-gui=no CC=egcc CXX=eg++ CPP=ecpp \
|
||||
BDB_LIBS="-L${BDB_PREFIX}/lib -ldb_cxx-4.8" BDB_CFLAGS="-I${BDB_PREFIX}/include"
|
||||
```
|
||||
|
||||
To configure without wallet:
|
||||
```bash
|
||||
./configure --disable-wallet --with-gui=no --with-boost=$BOOST_PREFIX \
|
||||
CC=egcc CXX=eg++ CPP=ecpp
|
||||
./configure --disable-wallet --with-gui=no CC=egcc CXX=eg++ CPP=ecpp
|
||||
```
|
||||
|
||||
Build and run the tests:
|
||||
```bash
|
||||
gmake # can use -jX here for parallelism
|
||||
gmake # use -jX here for parallelism
|
||||
gmake check
|
||||
```
|
||||
|
||||
Clang (not currently working)
|
||||
Clang
|
||||
------------------------------
|
||||
|
||||
WARNING: This is outdated, needs to be updated for OpenBSD 6.0 and re-tried.
|
||||
|
||||
Using a newer g++ results in linking the new code to a new libstdc++.
|
||||
Libraries built with the old g++, will still import the old library.
|
||||
This gives conflicts, necessitating rebuild of all C++ dependencies of the application.
|
||||
|
||||
With clang this can - at least theoretically - be avoided because it uses the
|
||||
base system's libstdc++.
|
||||
|
||||
```bash
|
||||
pkg_add llvm boost
|
||||
```
|
||||
pkg_add llvm
|
||||
|
||||
```bash
|
||||
./configure --disable-wallet --with-gui=no CC=clang CXX=clang++
|
||||
gmake
|
||||
gmake # use -jX here for parallelism
|
||||
gmake check
|
||||
```
|
||||
|
||||
However, this does not appear to work. Compilation succeeds, but link fails
|
||||
with many 'local symbol discarded' errors:
|
||||
|
||||
local symbol 150: discarded in section `.text._ZN10tinyformat6detail14FormatIterator6finishEv' from libbitcoin_util.a(libbitcoin_util_a-random.o)
|
||||
local symbol 151: discarded in section `.text._ZN10tinyformat6detail14FormatIterator21streamStateFromFormatERSoRjPKcii' from libbitcoin_util.a(libbitcoin_util_a-random.o)
|
||||
local symbol 152: discarded in section `.text._ZN10tinyformat6detail12convertToIntIA13_cLb0EE6invokeERA13_Kc' from libbitcoin_util.a(libbitcoin_util_a-random.o)
|
||||
|
||||
According to similar reported errors this is a binutils (ld) issue in 2.15, the
|
||||
version installed by OpenBSD 5.7:
|
||||
|
||||
- http://openbsd-archive.7691.n7.nabble.com/UPDATE-cppcheck-1-65-td248900.html
|
||||
- https://llvm.org/bugs/show_bug.cgi?id=9758
|
||||
|
||||
There is no known workaround for this.
|
||||
|
||||
@@ -4,7 +4,11 @@ WINDOWS BUILD NOTES
|
||||
Below are some notes on how to build Bitcoin Core for Windows.
|
||||
|
||||
Most developers use cross-compilation from Ubuntu to build executables for
|
||||
Windows. This is also used to build the release binaries.
|
||||
Windows. Cross-compilation is also used to build the release binaries.
|
||||
|
||||
Currently only building on Ubuntu Trusty 14.04 or Ubuntu Zesty 17.04 or later is supported.
|
||||
Building on Ubuntu Xenial 16.04 is known to be broken, see extensive discussion in issue [8732](https://github.com/bitcoin/bitcoin/issues/8732).
|
||||
While it may be possible to do so with work arounds, it's potentially dangerous and not recommended.
|
||||
|
||||
While there are potentially a number of ways to build on Windows (for example using msys / mingw-w64),
|
||||
using the Windows Subsystem For Linux is the most straightforward. If you are building with
|
||||
@@ -59,6 +63,14 @@ A host toolchain (`build-essential`) is necessary because some dependency
|
||||
packages (such as `protobuf`) need to build host utilities that are used in the
|
||||
build process.
|
||||
|
||||
|
||||
If you're building on Ubuntu 17.04 or later, run these two commands, selecting the 'posix' variant for both,
|
||||
to work around issues with mingw-w64. See issue [8732](https://github.com/bitcoin/bitcoin/issues/8732) for more information.
|
||||
```
|
||||
sudo update-alternatives --config x86_64-w64-mingw32-g++
|
||||
sudo update-alternatives --config x86_64-w64-mingw32-gcc
|
||||
```
|
||||
|
||||
## Building for 64-bit Windows
|
||||
|
||||
To build executables for Windows 64-bit, install the following dependencies:
|
||||
@@ -67,6 +79,7 @@ To build executables for Windows 64-bit, install the following dependencies:
|
||||
|
||||
Then build using:
|
||||
|
||||
PATH=$(echo "$PATH" | sed -e 's/:\/mnt.*//g') # strip out problematic Windows %PATH% imported var
|
||||
cd depends
|
||||
make HOST=x86_64-w64-mingw32
|
||||
cd ..
|
||||
@@ -78,10 +91,11 @@ Then build using:
|
||||
|
||||
To build executables for Windows 32-bit, install the following dependencies:
|
||||
|
||||
sudo apt-get install g++-mingw-w64-i686 mingw-w64-i686-dev
|
||||
sudo apt-get install g++-mingw-w64-i686 mingw-w64-i686-dev
|
||||
|
||||
Then build using:
|
||||
|
||||
PATH=$(echo "$PATH" | sed -e 's/:\/mnt.*//g') # strip out problematic Windows %PATH% imported var
|
||||
cd depends
|
||||
make HOST=i686-w64-mingw32
|
||||
cd ..
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
* wallet.dat: personal wallet (BDB) with keys and transactions
|
||||
* .cookie: session RPC authentication cookie (written at start when cookie authentication is used, deleted on shutdown): since 0.12.0
|
||||
* onion_private_key: cached Tor hidden service private key for `-listenonion`: since 0.12.0
|
||||
* guisettings.ini.bak: backup of former GUI settings after `-resetguisettings` is used
|
||||
|
||||
Only used in pre-0.8.0
|
||||
---------------------
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4.
|
||||
.TH BITCOIN-CLI "1" "February 2017" "bitcoin-cli v0.14.99.0" "User Commands"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.46.4.
|
||||
.TH BITCOIN-CLI "1" "September 2018" "bitcoin-cli v0.15.2" "User Commands"
|
||||
.SH NAME
|
||||
bitcoin-cli \- manual page for bitcoin-cli v0.14.99.0
|
||||
bitcoin-cli \- manual page for bitcoin-cli v0.15.2
|
||||
.SH DESCRIPTION
|
||||
Bitcoin Core RPC client version v0.14.99.0
|
||||
Bitcoin Core RPC client version v0.15.2
|
||||
.SS "Usage:"
|
||||
.TP
|
||||
bitcoin\-cli [options] <command> [params]
|
||||
@@ -64,12 +64,19 @@ Password for JSON\-RPC connections
|
||||
.HP
|
||||
\fB\-rpcclienttimeout=\fR<n>
|
||||
.IP
|
||||
Timeout during HTTP requests (default: 900)
|
||||
Timeout in seconds during HTTP requests, or 0 for no timeout. (default:
|
||||
900)
|
||||
.HP
|
||||
\fB\-stdin\fR
|
||||
.IP
|
||||
Read extra arguments from standard input, one per line until EOF/Ctrl\-D
|
||||
(recommended for sensitive information such as passphrases)
|
||||
.HP
|
||||
\fB\-rpcwallet=\fR<walletname>
|
||||
.IP
|
||||
Send RPC for non\-default wallet on RPC server (argument is wallet
|
||||
filename in bitcoind directory, required if bitcoind/\-Qt runs
|
||||
with multiple wallets)
|
||||
.SH COPYRIGHT
|
||||
Copyright (C) 2009-2017 The Bitcoin Core developers
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4.
|
||||
.TH BITCOIN-QT "1" "February 2017" "bitcoin-qt v0.14.99.0" "User Commands"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.46.4.
|
||||
.TH BITCOIN-QT "1" "September 2018" "bitcoin-qt v0.15.2" "User Commands"
|
||||
.SH NAME
|
||||
bitcoin-qt \- manual page for bitcoin-qt v0.14.99.0
|
||||
bitcoin-qt \- manual page for bitcoin-qt v0.15.2
|
||||
.SH DESCRIPTION
|
||||
Bitcoin Core version v0.14.99.0 (64\-bit)
|
||||
Bitcoin Core version v0.15.2 (64\-bit)
|
||||
Usage:
|
||||
.IP
|
||||
bitcoin\-qt [command\-line options]
|
||||
@@ -32,9 +32,9 @@ block hash)
|
||||
If this block is in the chain assume that it and its ancestors are valid
|
||||
and potentially skip their script verification (0 to verify all,
|
||||
default:
|
||||
00000000000000000013176bf8d7dfeab4e1db31dc93bc311b436e82ab226b90,
|
||||
0000000000000000003b9ce759c2a087d52abc4266f8f4ebd6d768b89defa50a,
|
||||
testnet:
|
||||
00000000000128796ee387cf110ccb9d2f36cffaf7f73079c995377c65ac0dcc)
|
||||
0000000002e9e7b00e1f6dc5123a04aad68dd0f0968d8c7aa45f6640795c37b1)
|
||||
.HP
|
||||
\fB\-conf=\fR<file>
|
||||
.IP
|
||||
@@ -46,7 +46,7 @@ Specify data directory
|
||||
.HP
|
||||
\fB\-dbcache=\fR<n>
|
||||
.IP
|
||||
Set database cache size in megabytes (4 to 16384, default: 300)
|
||||
Set database cache size in megabytes (4 to 16384, default: 450)
|
||||
.HP
|
||||
\fB\-loadblock=\fR<file>
|
||||
.IP
|
||||
@@ -65,6 +65,10 @@ Keep the transaction memory pool below <n> megabytes (default: 300)
|
||||
Do not keep transactions in the mempool longer than <n> hours (default:
|
||||
336)
|
||||
.HP
|
||||
\fB\-persistmempool\fR
|
||||
.IP
|
||||
Whether to save the mempool on shutdown and load on restart (default: 1)
|
||||
.HP
|
||||
\fB\-blockreconstructionextratxn=\fR<n>
|
||||
.IP
|
||||
Extra transactions to keep in memory for compact block reconstructions
|
||||
@@ -72,7 +76,7 @@ Extra transactions to keep in memory for compact block reconstructions
|
||||
.HP
|
||||
\fB\-par=\fR<n>
|
||||
.IP
|
||||
Set the number of script verification threads (\fB\-2\fR to 16, 0 = auto, <0 =
|
||||
Set the number of script verification threads (\fB\-4\fR to 16, 0 = auto, <0 =
|
||||
leave that many cores free, default: 0)
|
||||
.HP
|
||||
\fB\-pid=\fR<file>
|
||||
@@ -131,8 +135,8 @@ for IPv6
|
||||
.HP
|
||||
\fB\-connect=\fR<ip>
|
||||
.IP
|
||||
Connect only to the specified node(s); \fB\-noconnect\fR or \fB\-connect\fR=\fI\,0\/\fR alone to
|
||||
disable automatic connections
|
||||
Connect only to the specified node(s); \fB\-connect\fR=\fI\,0\/\fR disables automatic
|
||||
connections
|
||||
.HP
|
||||
\fB\-discover\fR
|
||||
.IP
|
||||
@@ -146,7 +150,7 @@ Allow DNS lookups for \fB\-addnode\fR, \fB\-seednode\fR and \fB\-connect\fR (def
|
||||
\fB\-dnsseed\fR
|
||||
.IP
|
||||
Query for peer addresses via DNS lookup, if low on addresses (default: 1
|
||||
unless \fB\-connect\fR/\-noconnect)
|
||||
unless \fB\-connect\fR used)
|
||||
.HP
|
||||
\fB\-externalip=\fR<ip>
|
||||
.IP
|
||||
@@ -158,8 +162,7 @@ Always query for peer addresses via DNS lookup (default: 0)
|
||||
.HP
|
||||
\fB\-listen\fR
|
||||
.IP
|
||||
Accept connections from outside (default: 1 if no \fB\-proxy\fR or
|
||||
\fB\-connect\fR/\-noconnect)
|
||||
Accept connections from outside (default: 1 if no \fB\-proxy\fR or \fB\-connect\fR)
|
||||
.HP
|
||||
\fB\-listenonion\fR
|
||||
.IP
|
||||
@@ -214,11 +217,6 @@ Connect through SOCKS5 proxy
|
||||
Randomize credentials for every proxy connection. This enables Tor
|
||||
stream isolation (default: 1)
|
||||
.HP
|
||||
\fB\-rpcserialversion\fR
|
||||
.IP
|
||||
Sets the serialization of raw transaction or block hex returned in
|
||||
non\-verbose mode, non\-segwit(0) or segwit(1) (default: 1)
|
||||
.HP
|
||||
\fB\-seednode=\fR<ip>
|
||||
.IP
|
||||
Connect to a node to retrieve peer addresses, and disconnect
|
||||
@@ -253,16 +251,6 @@ times. 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
|
||||
.HP
|
||||
\fB\-whitelistrelay\fR
|
||||
.IP
|
||||
Accept relayed transactions received from whitelisted peers even when
|
||||
not relaying transactions (default: 1)
|
||||
.HP
|
||||
\fB\-whitelistforcerelay\fR
|
||||
.IP
|
||||
Force relay of transactions from whitelisted peers even if they violate
|
||||
local relay policy (default: 1)
|
||||
.HP
|
||||
\fB\-maxuploadtarget=\fR<n>
|
||||
.IP
|
||||
Tries to keep outbound traffic under the given target (in MiB per 24h),
|
||||
@@ -276,13 +264,21 @@ Do not load the wallet and disable wallet RPC calls
|
||||
.HP
|
||||
\fB\-keypool=\fR<n>
|
||||
.IP
|
||||
Set key pool size to <n> (default: 100)
|
||||
Set key pool size to <n> (default: 1000)
|
||||
.HP
|
||||
\fB\-fallbackfee=\fR<amt>
|
||||
.IP
|
||||
A fee rate (in BTC/kB) that will be used when fee estimation has
|
||||
insufficient data (default: 0.0002)
|
||||
.HP
|
||||
\fB\-discardfee=\fR<amt>
|
||||
.IP
|
||||
The fee rate (in BTC/kB) that indicates your tolerance for discarding
|
||||
change by adding it to the fee (default: 0.0001). Note: An output
|
||||
is discarded if it is dust at this rate, but we will always
|
||||
discard up to the dust relay fee and a discard fee above that is
|
||||
limited by the fee estimate for the longest target
|
||||
.HP
|
||||
\fB\-mintxfee=\fR<amt>
|
||||
.IP
|
||||
Fees (in BTC/kB) smaller than this are considered zero fee for
|
||||
@@ -370,10 +366,16 @@ Append comment to the user agent string
|
||||
.IP
|
||||
Output debugging information (default: 0, supplying <category> is
|
||||
optional). If <category> is not supplied or if <category> = 1,
|
||||
output all debugging information.<category> can be: addrman,
|
||||
alert, bench, cmpctblock, coindb, db, http, libevent, lock,
|
||||
mempool, mempoolrej, net, proxy, prune, rand, reindex, rpc,
|
||||
selectcoins, tor, zmq, qt.
|
||||
output all debugging information. <category> can be: net, tor,
|
||||
mempool, http, bench, zmq, db, rpc, estimatefee, addrman,
|
||||
selectcoins, reindex, cmpctblock, rand, prune, proxy, mempoolrej,
|
||||
libevent, coindb, qt, leveldb.
|
||||
.HP
|
||||
\fB\-debugexclude=\fR<category>
|
||||
.IP
|
||||
Exclude debugging information for a category. Can be used in conjunction
|
||||
with \fB\-debug\fR=\fI\,1\/\fR to output debug logs for all categories except one
|
||||
or more specified categories.
|
||||
.HP
|
||||
\fB\-help\-debug\fR
|
||||
.IP
|
||||
@@ -387,11 +389,6 @@ Include IP addresses in debug output (default: 0)
|
||||
.IP
|
||||
Prepend debug output with timestamp (default: 1)
|
||||
.HP
|
||||
\fB\-minrelaytxfee=\fR<amt>
|
||||
.IP
|
||||
Fees (in BTC/kB) smaller than this are considered zero fee for relaying,
|
||||
mining and transaction creation (default: 0.00001)
|
||||
.HP
|
||||
\fB\-maxtxfee=\fR<amt>
|
||||
.IP
|
||||
Maximum total fees (in BTC) to use in a single wallet transaction or raw
|
||||
@@ -431,21 +428,32 @@ Maximum size of data in data carrier transactions we relay and mine
|
||||
\fB\-mempoolreplacement\fR
|
||||
.IP
|
||||
Enable transaction replacement in the memory pool (default: 1)
|
||||
.HP
|
||||
\fB\-minrelaytxfee=\fR<amt>
|
||||
.IP
|
||||
Fees (in BTC/kB) smaller than this are considered zero fee for relaying,
|
||||
mining and transaction creation (default: 0.00001)
|
||||
.HP
|
||||
\fB\-whitelistrelay\fR
|
||||
.IP
|
||||
Accept relayed transactions received from whitelisted peers even when
|
||||
not relaying transactions (default: 1)
|
||||
.HP
|
||||
\fB\-whitelistforcerelay\fR
|
||||
.IP
|
||||
Force relay of transactions from whitelisted peers even if they violate
|
||||
local relay policy (default: 1)
|
||||
.PP
|
||||
Block creation options:
|
||||
.HP
|
||||
\fB\-blockmaxweight=\fR<n>
|
||||
.IP
|
||||
Set maximum BIP141 block weight (default: 3000000)
|
||||
Set maximum BIP141 block weight (default: 3996000)
|
||||
.HP
|
||||
\fB\-blockmaxsize=\fR<n>
|
||||
.IP
|
||||
Set maximum block size in bytes (default: 750000)
|
||||
.HP
|
||||
\fB\-blockprioritysize=\fR<n>
|
||||
.IP
|
||||
Set maximum size of high\-priority/low\-fee transactions in bytes
|
||||
(default: 0)
|
||||
Set maximum BIP141 block weight to this * 4. Deprecated, use
|
||||
blockmaxweight
|
||||
.HP
|
||||
\fB\-blockmintxfee=\fR<amt>
|
||||
.IP
|
||||
@@ -462,11 +470,14 @@ Accept command line and JSON\-RPC commands
|
||||
.IP
|
||||
Accept public REST requests (default: 0)
|
||||
.HP
|
||||
\fB\-rpcbind=\fR<addr>
|
||||
\fB\-rpcbind=\fR<addr>[:port]
|
||||
.IP
|
||||
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 to given address to listen for JSON\-RPC connections. This option is
|
||||
ignored unless \fB\-rpcallowip\fR is also passed. Port is optional and
|
||||
overrides \fB\-rpcport\fR. Use [host]:port notation for IPv6. This
|
||||
option can be specified multiple times (default: 127.0.0.1 and
|
||||
::1 i.e., localhost, or if \fB\-rpcallowip\fR has been specified,
|
||||
0.0.0.0 and :: i.e., all addresses)
|
||||
.HP
|
||||
\fB\-rpccookiefile=\fR<loc>
|
||||
.IP
|
||||
@@ -501,6 +512,11 @@ 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
|
||||
.HP
|
||||
\fB\-rpcserialversion\fR
|
||||
.IP
|
||||
Sets the serialization of raw transaction or block hex returned in
|
||||
non\-verbose mode, non\-segwit(0) or segwit(1) (default: 1)
|
||||
.HP
|
||||
\fB\-rpcthreads=\fR<n>
|
||||
.IP
|
||||
Set the number of threads to service RPC calls (default: 4)
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4.
|
||||
.TH BITCOIN-TX "1" "February 2017" "bitcoin-tx v0.14.99.0" "User Commands"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.46.4.
|
||||
.TH BITCOIN-TX "1" "September 2018" "bitcoin-tx v0.15.2" "User Commands"
|
||||
.SH NAME
|
||||
bitcoin-tx \- manual page for bitcoin-tx v0.14.99.0
|
||||
bitcoin-tx \- manual page for bitcoin-tx v0.15.2
|
||||
.SH DESCRIPTION
|
||||
Bitcoin Core bitcoin\-tx utility version v0.14.99.0
|
||||
Bitcoin Core bitcoin\-tx utility version v0.15.2
|
||||
.SS "Usage:"
|
||||
.TP
|
||||
bitcoin\-tx [options] <hex\-tx> [commands]
|
||||
@@ -63,6 +63,11 @@ nversion=N
|
||||
.IP
|
||||
Set TX version to N
|
||||
.IP
|
||||
replaceable(=N)
|
||||
.IP
|
||||
Set RBF opt\-in sequence number for input N (if not provided, opt\-in all
|
||||
available inputs)
|
||||
.IP
|
||||
outaddr=VALUE:ADDRESS
|
||||
.IP
|
||||
Add address\-based output to TX
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4.
|
||||
.TH BITCOIND "1" "February 2017" "bitcoind v0.14.99.0" "User Commands"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.46.4.
|
||||
.TH BITCOIND "1" "September 2018" "bitcoind v0.15.2" "User Commands"
|
||||
.SH NAME
|
||||
bitcoind \- manual page for bitcoind v0.14.99.0
|
||||
bitcoind \- manual page for bitcoind v0.15.2
|
||||
.SH DESCRIPTION
|
||||
Bitcoin Core Daemon version v0.14.99.0
|
||||
Bitcoin Core Daemon version v0.15.2
|
||||
.SS "Usage:"
|
||||
.TP
|
||||
bitcoind [options]
|
||||
@@ -33,9 +33,9 @@ block hash)
|
||||
If this block is in the chain assume that it and its ancestors are valid
|
||||
and potentially skip their script verification (0 to verify all,
|
||||
default:
|
||||
00000000000000000013176bf8d7dfeab4e1db31dc93bc311b436e82ab226b90,
|
||||
0000000000000000003b9ce759c2a087d52abc4266f8f4ebd6d768b89defa50a,
|
||||
testnet:
|
||||
00000000000128796ee387cf110ccb9d2f36cffaf7f73079c995377c65ac0dcc)
|
||||
0000000002e9e7b00e1f6dc5123a04aad68dd0f0968d8c7aa45f6640795c37b1)
|
||||
.HP
|
||||
\fB\-conf=\fR<file>
|
||||
.IP
|
||||
@@ -51,7 +51,7 @@ Specify data directory
|
||||
.HP
|
||||
\fB\-dbcache=\fR<n>
|
||||
.IP
|
||||
Set database cache size in megabytes (4 to 16384, default: 300)
|
||||
Set database cache size in megabytes (4 to 16384, default: 450)
|
||||
.HP
|
||||
\fB\-loadblock=\fR<file>
|
||||
.IP
|
||||
@@ -70,6 +70,10 @@ Keep the transaction memory pool below <n> megabytes (default: 300)
|
||||
Do not keep transactions in the mempool longer than <n> hours (default:
|
||||
336)
|
||||
.HP
|
||||
\fB\-persistmempool\fR
|
||||
.IP
|
||||
Whether to save the mempool on shutdown and load on restart (default: 1)
|
||||
.HP
|
||||
\fB\-blockreconstructionextratxn=\fR<n>
|
||||
.IP
|
||||
Extra transactions to keep in memory for compact block reconstructions
|
||||
@@ -77,7 +81,7 @@ Extra transactions to keep in memory for compact block reconstructions
|
||||
.HP
|
||||
\fB\-par=\fR<n>
|
||||
.IP
|
||||
Set the number of script verification threads (\fB\-2\fR to 16, 0 = auto, <0 =
|
||||
Set the number of script verification threads (\fB\-4\fR to 16, 0 = auto, <0 =
|
||||
leave that many cores free, default: 0)
|
||||
.HP
|
||||
\fB\-pid=\fR<file>
|
||||
@@ -136,8 +140,8 @@ for IPv6
|
||||
.HP
|
||||
\fB\-connect=\fR<ip>
|
||||
.IP
|
||||
Connect only to the specified node(s); \fB\-noconnect\fR or \fB\-connect\fR=\fI\,0\/\fR alone to
|
||||
disable automatic connections
|
||||
Connect only to the specified node(s); \fB\-connect\fR=\fI\,0\/\fR disables automatic
|
||||
connections
|
||||
.HP
|
||||
\fB\-discover\fR
|
||||
.IP
|
||||
@@ -151,7 +155,7 @@ Allow DNS lookups for \fB\-addnode\fR, \fB\-seednode\fR and \fB\-connect\fR (def
|
||||
\fB\-dnsseed\fR
|
||||
.IP
|
||||
Query for peer addresses via DNS lookup, if low on addresses (default: 1
|
||||
unless \fB\-connect\fR/\-noconnect)
|
||||
unless \fB\-connect\fR used)
|
||||
.HP
|
||||
\fB\-externalip=\fR<ip>
|
||||
.IP
|
||||
@@ -163,8 +167,7 @@ Always query for peer addresses via DNS lookup (default: 0)
|
||||
.HP
|
||||
\fB\-listen\fR
|
||||
.IP
|
||||
Accept connections from outside (default: 1 if no \fB\-proxy\fR or
|
||||
\fB\-connect\fR/\-noconnect)
|
||||
Accept connections from outside (default: 1 if no \fB\-proxy\fR or \fB\-connect\fR)
|
||||
.HP
|
||||
\fB\-listenonion\fR
|
||||
.IP
|
||||
@@ -219,11 +222,6 @@ Connect through SOCKS5 proxy
|
||||
Randomize credentials for every proxy connection. This enables Tor
|
||||
stream isolation (default: 1)
|
||||
.HP
|
||||
\fB\-rpcserialversion\fR
|
||||
.IP
|
||||
Sets the serialization of raw transaction or block hex returned in
|
||||
non\-verbose mode, non\-segwit(0) or segwit(1) (default: 1)
|
||||
.HP
|
||||
\fB\-seednode=\fR<ip>
|
||||
.IP
|
||||
Connect to a node to retrieve peer addresses, and disconnect
|
||||
@@ -258,16 +256,6 @@ times. 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
|
||||
.HP
|
||||
\fB\-whitelistrelay\fR
|
||||
.IP
|
||||
Accept relayed transactions received from whitelisted peers even when
|
||||
not relaying transactions (default: 1)
|
||||
.HP
|
||||
\fB\-whitelistforcerelay\fR
|
||||
.IP
|
||||
Force relay of transactions from whitelisted peers even if they violate
|
||||
local relay policy (default: 1)
|
||||
.HP
|
||||
\fB\-maxuploadtarget=\fR<n>
|
||||
.IP
|
||||
Tries to keep outbound traffic under the given target (in MiB per 24h),
|
||||
@@ -281,13 +269,21 @@ Do not load the wallet and disable wallet RPC calls
|
||||
.HP
|
||||
\fB\-keypool=\fR<n>
|
||||
.IP
|
||||
Set key pool size to <n> (default: 100)
|
||||
Set key pool size to <n> (default: 1000)
|
||||
.HP
|
||||
\fB\-fallbackfee=\fR<amt>
|
||||
.IP
|
||||
A fee rate (in BTC/kB) that will be used when fee estimation has
|
||||
insufficient data (default: 0.0002)
|
||||
.HP
|
||||
\fB\-discardfee=\fR<amt>
|
||||
.IP
|
||||
The fee rate (in BTC/kB) that indicates your tolerance for discarding
|
||||
change by adding it to the fee (default: 0.0001). Note: An output
|
||||
is discarded if it is dust at this rate, but we will always
|
||||
discard up to the dust relay fee and a discard fee above that is
|
||||
limited by the fee estimate for the longest target
|
||||
.HP
|
||||
\fB\-mintxfee=\fR<amt>
|
||||
.IP
|
||||
Fees (in BTC/kB) smaller than this are considered zero fee for
|
||||
@@ -375,10 +371,16 @@ Append comment to the user agent string
|
||||
.IP
|
||||
Output debugging information (default: 0, supplying <category> is
|
||||
optional). If <category> is not supplied or if <category> = 1,
|
||||
output all debugging information.<category> can be: addrman,
|
||||
alert, bench, cmpctblock, coindb, db, http, libevent, lock,
|
||||
mempool, mempoolrej, net, proxy, prune, rand, reindex, rpc,
|
||||
selectcoins, tor, zmq.
|
||||
output all debugging information. <category> can be: net, tor,
|
||||
mempool, http, bench, zmq, db, rpc, estimatefee, addrman,
|
||||
selectcoins, reindex, cmpctblock, rand, prune, proxy, mempoolrej,
|
||||
libevent, coindb, qt, leveldb.
|
||||
.HP
|
||||
\fB\-debugexclude=\fR<category>
|
||||
.IP
|
||||
Exclude debugging information for a category. Can be used in conjunction
|
||||
with \fB\-debug\fR=\fI\,1\/\fR to output debug logs for all categories except one
|
||||
or more specified categories.
|
||||
.HP
|
||||
\fB\-help\-debug\fR
|
||||
.IP
|
||||
@@ -392,11 +394,6 @@ Include IP addresses in debug output (default: 0)
|
||||
.IP
|
||||
Prepend debug output with timestamp (default: 1)
|
||||
.HP
|
||||
\fB\-minrelaytxfee=\fR<amt>
|
||||
.IP
|
||||
Fees (in BTC/kB) smaller than this are considered zero fee for relaying,
|
||||
mining and transaction creation (default: 0.00001)
|
||||
.HP
|
||||
\fB\-maxtxfee=\fR<amt>
|
||||
.IP
|
||||
Maximum total fees (in BTC) to use in a single wallet transaction or raw
|
||||
@@ -436,21 +433,32 @@ Maximum size of data in data carrier transactions we relay and mine
|
||||
\fB\-mempoolreplacement\fR
|
||||
.IP
|
||||
Enable transaction replacement in the memory pool (default: 1)
|
||||
.HP
|
||||
\fB\-minrelaytxfee=\fR<amt>
|
||||
.IP
|
||||
Fees (in BTC/kB) smaller than this are considered zero fee for relaying,
|
||||
mining and transaction creation (default: 0.00001)
|
||||
.HP
|
||||
\fB\-whitelistrelay\fR
|
||||
.IP
|
||||
Accept relayed transactions received from whitelisted peers even when
|
||||
not relaying transactions (default: 1)
|
||||
.HP
|
||||
\fB\-whitelistforcerelay\fR
|
||||
.IP
|
||||
Force relay of transactions from whitelisted peers even if they violate
|
||||
local relay policy (default: 1)
|
||||
.PP
|
||||
Block creation options:
|
||||
.HP
|
||||
\fB\-blockmaxweight=\fR<n>
|
||||
.IP
|
||||
Set maximum BIP141 block weight (default: 3000000)
|
||||
Set maximum BIP141 block weight (default: 3996000)
|
||||
.HP
|
||||
\fB\-blockmaxsize=\fR<n>
|
||||
.IP
|
||||
Set maximum block size in bytes (default: 750000)
|
||||
.HP
|
||||
\fB\-blockprioritysize=\fR<n>
|
||||
.IP
|
||||
Set maximum size of high\-priority/low\-fee transactions in bytes
|
||||
(default: 0)
|
||||
Set maximum BIP141 block weight to this * 4. Deprecated, use
|
||||
blockmaxweight
|
||||
.HP
|
||||
\fB\-blockmintxfee=\fR<amt>
|
||||
.IP
|
||||
@@ -467,11 +475,14 @@ Accept command line and JSON\-RPC commands
|
||||
.IP
|
||||
Accept public REST requests (default: 0)
|
||||
.HP
|
||||
\fB\-rpcbind=\fR<addr>
|
||||
\fB\-rpcbind=\fR<addr>[:port]
|
||||
.IP
|
||||
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 to given address to listen for JSON\-RPC connections. This option is
|
||||
ignored unless \fB\-rpcallowip\fR is also passed. Port is optional and
|
||||
overrides \fB\-rpcport\fR. Use [host]:port notation for IPv6. This
|
||||
option can be specified multiple times (default: 127.0.0.1 and
|
||||
::1 i.e., localhost, or if \fB\-rpcallowip\fR has been specified,
|
||||
0.0.0.0 and :: i.e., all addresses)
|
||||
.HP
|
||||
\fB\-rpccookiefile=\fR<loc>
|
||||
.IP
|
||||
@@ -506,6 +517,11 @@ 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
|
||||
.HP
|
||||
\fB\-rpcserialversion\fR
|
||||
.IP
|
||||
Sets the serialization of raw transaction or block hex returned in
|
||||
non\-verbose mode, non\-segwit(0) or segwit(1) (default: 1)
|
||||
.HP
|
||||
\fB\-rpcthreads=\fR<n>
|
||||
.IP
|
||||
Set the number of threads to service RPC calls (default: 4)
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
(note: this is a temporary file, to be added-to by anybody, and moved to
|
||||
release-notes at release time)
|
||||
Bitcoin Core version *0.15.2* is now available from:
|
||||
|
||||
Bitcoin Core version *0.15.0* is now available from:
|
||||
<https://bitcoincore.org/bin/bitcoin-core-0.15.2/>
|
||||
|
||||
<https://bitcoin.org/bin/bitcoin-core-0.15.0/>
|
||||
or
|
||||
|
||||
This is a new major version release, including new features, various bugfixes
|
||||
and performance improvements, as well as updated translations.
|
||||
<https://bitcoin.org/bin/bitcoin-core-0.15.2/>
|
||||
|
||||
Please report bugs using the issue tracker at github:
|
||||
This is a new minor version release, including various bugfixes and
|
||||
performance improvements, as well as updated translations.
|
||||
|
||||
Please report bugs using the issue tracker at GitHub:
|
||||
|
||||
<https://github.com/bitcoin/bitcoin/issues>
|
||||
|
||||
@@ -21,12 +22,16 @@ 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)
|
||||
installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac)
|
||||
or `bitcoind`/`bitcoin-qt` (on Linux).
|
||||
|
||||
The first time you run version 0.15.0, your chainstate database will be converted to a
|
||||
new format, which will take anywhere from a few minutes to half an hour,
|
||||
depending on the speed of your machine.
|
||||
The first time you run version 0.15.0 or higher, your chainstate database will
|
||||
be converted to a new format, which will take anywhere from a few minutes to
|
||||
half an hour, depending on the speed of your machine.
|
||||
|
||||
The file format of `fee_estimates.dat` changed in version 0.15.0. Hence, a
|
||||
downgrade from version 0.15 or upgrade to version 0.15 will cause all fee
|
||||
estimates to be discarded.
|
||||
|
||||
Note that the block database format also changed in version 0.8.0 and there is no
|
||||
automatic upgrade code from before version 0.8 to version 0.15.0. Upgrading
|
||||
@@ -53,335 +58,60 @@ the Linux kernel, macOS 10.8+, and Windows Vista and later. Windows XP is not su
|
||||
Bitcoin Core should also work on most other Unix-like systems but is not
|
||||
frequently tested on them.
|
||||
|
||||
|
||||
Notable changes
|
||||
===============
|
||||
|
||||
Performance Improvements
|
||||
------------------------
|
||||
Denial-of-Service vulnerability CVE-2018-17144
|
||||
-------------------------------
|
||||
|
||||
Version 0.15 contains a number of significant performance improvements, which make
|
||||
Initial Block Download, startup, transaction and block validation much faster:
|
||||
A denial-of-service vulnerability exploitable by miners has been discovered in
|
||||
Bitcoin Core versions 0.14.0 up to 0.16.2. It is recommended to upgrade any of
|
||||
the vulnerable versions to 0.15.2 or 0.16.3 as soon as possible.
|
||||
|
||||
- The chainstate database (which is used for tracking UTXOs) has been changed
|
||||
from a per-transaction model to a per-output model (See [PR 10195](https://github.com/bitcoin/bitcoin/pull/10195)). Advantages of this model
|
||||
are that it:
|
||||
- avoids the CPU overhead of deserializing and serializing the unused outputs;
|
||||
- has more predictable memory usage;
|
||||
- uses simpler code;
|
||||
- is adaptable to various future cache flushing strategies.
|
||||
0.15.2 Change log
|
||||
=================
|
||||
|
||||
As a result, validating the blockchain during Initial Block Download (IBD) and reindex
|
||||
is ~30-40% faster, uses 10-20% less memory, and flushes to disk far less frequently.
|
||||
The only downside is that the on-disk database is 15% larger. During the conversion from the previous format
|
||||
a few extra gigabytes may be used.
|
||||
- Earlier versions experienced a spike in memory usage while flushing UTXO updates to disk.
|
||||
As a result, only half of the available memory was actually used as cache, and the other half was
|
||||
reserved to accommodate flushing. This is no longer the case (See [PR 10148](https://github.com/bitcoin/bitcoin/pull/10148)), and the entirety of
|
||||
the available cache (see `-dbcache`) is now actually used as cache. This reduces the flushing
|
||||
frequency by a factor 2 or more.
|
||||
- In previous versions, signature validation for transactions has been cached when the
|
||||
transaction is accepted to the mempool. Version 0.15 extends this to cache the entire script
|
||||
validity (See [PR 10192](https://github.com/bitcoin/bitcoin/pull/10192)). This means that if a transaction in a block has already been accepted to the
|
||||
mempool, the scriptSig does not need to be re-evaluated. Empirical tests show that
|
||||
this results in new block validation being 40-50% faster.
|
||||
- LevelDB has been upgraded to version 1.20 (See [PR 10544](https://github.com/bitcoin/bitcoin/pull/10544)). This version contains hardware acceleration for CRC
|
||||
on architectures supporting SSE 4.2. As a result, synchronization and block validation are now faster.
|
||||
- SHA256 hashing has been optimized for architectures supporting SSE 4 (See [PR 10182](https://github.com/bitcoin/bitcoin/pull/10182)). SHA256 is around
|
||||
50% faster on supported hardware, which results in around 5% faster IBD and block
|
||||
validation. In version 0.15, SHA256 hardware optimization is disabled in release builds by
|
||||
default, but can be enabled by using `--enable-experimental-asm` when building.
|
||||
- Refill of the keypool no longer flushes the wallet between each key which resulted in a ~20x speedup in creating a new wallet. Part of this speedup was used to increase the default keypool to 1000 keys to make recovery more robust. (See [PR 10831](https://github.com/bitcoin/bitcoin/pull/10831)).
|
||||
### Build system
|
||||
|
||||
Fee Estimation Improvements
|
||||
---------------------------
|
||||
- #11995 `9bb1a16` depends: Fix Qt build with XCode 9.2(fanquake)
|
||||
- #12946 `93b9a61` depends: Fix Qt build with XCode 9.3(fanquake)
|
||||
- #13544 `9fd3e00` depends: Update Qt download url (fanquake)
|
||||
- #11847 `cb7ef31` Make boost::multi_index comparators const (sdaftuar)
|
||||
|
||||
Fee estimation has been significantly improved in version 0.15, with more accurate fee estimates used by the wallet and a wider range of options for advanced users of the `estimatesmartfee` and `estimaterawfee` RPCs (See [PR 10199](https://github.com/bitcoin/bitcoin/pull/10199)).
|
||||
### Consensus
|
||||
- #14247 `4b8a3f5` Fix crash bug with duplicate inputs within a transaction (TheBlueMatt, sdaftuar)
|
||||
|
||||
### RPC
|
||||
- #11676 `7af2457` contrib/init: Update openrc-run filename (Luke Dashjr)
|
||||
- #11277 `7026845` Fix uninitialized URI in batch RPC requests (Russell Yanofsky)
|
||||
|
||||
### Wallet
|
||||
- #11289 `3f1db56` Wrap dumpwallet warning and note scripts aren't dumped (MeshCollider)
|
||||
- #11289 `42ea47d` Add wallet backup text to import*, add* and dumpwallet RPCs (MeshCollider)
|
||||
- #11590 `6372a75` [Wallet] always show help-line of wallet encryption calls (Jonas Schnelli)
|
||||
|
||||
### Changes to internal logic and wallet behavior
|
||||
### bitcoin-tx
|
||||
|
||||
- Internally, estimates are now tracked on 3 different time horizons. This allows for longer targets and means estimates adjust more quickly to changes in conditions.
|
||||
- Estimates can now be *conservative* or *economical*. *Conservative* estimates use longer time horizons to produce an estimate which is less susceptible to rapid changes in fee conditions. *Economical* estimates use shorter time horizons and will be more affected by short-term changes in fee conditions. Economical estimates may be considerably lower during periods of low transaction activity (for example over weekends), but may result in transactions being unconfirmed if prevailing fees increase rapidly.
|
||||
- By default, the wallet will use conservative fee estimates to increase the reliability of transactions being confirmed within the desired target. For transactions that are marked as replaceable, the wallet will use an economical estimate by default, since the fee can be 'bumped' if the fee conditions change rapidly (See [PR 10589](https://github.com/bitcoin/bitcoin/pull/10589)).
|
||||
- Estimates can now be made for confirmation targets up to 1008 blocks (one week).
|
||||
- More data on historical fee rates is stored, leading to more precise fee estimates.
|
||||
- Transactions which leave the mempool due to eviction or other non-confirmed reasons are now taken into account by the fee estimation logic, leading to more accurate fee estimates.
|
||||
- The fee estimation logic will make sure enough data has been gathered to return a meaningful estimate. If there is insufficient data, a fallback default fee is used.
|
||||
- #11554 `a69cc07` Sanity-check script sizes in bitcoin-tx (TheBlueMatt)
|
||||
|
||||
### Changes to fee estimate RPCs
|
||||
|
||||
- The `estimatefee` RPC is now deprecated in favor of using only `estimatesmartfee` (which is the implementation used by the GUI)
|
||||
- The `estimatesmartfee` RPC interface has been changed (See [PR 10707](https://github.com/bitcoin/bitcoin/pull/10707)):
|
||||
- The `nblocks` argument has been renamed to `conf_target` (to be consistent with other RPC methods).
|
||||
- An `estimate_mode` argument has been added. This argument takes one of the following strings: `CONSERVATIVE`, `ECONOMICAL` or `UNSET` (which defaults to `CONSERVATIVE`).
|
||||
- The RPC return object now contains an `errors` member, which returns errors encountered during processing.
|
||||
- If Bitcoin Core has not been running for long enough and has not seen enough blocks or transactions to produce an accurate fee estimation, an error will be returned (previously a value of -1 was used to indicate an error, which could be confused for a feerate).
|
||||
- A new `estimaterawfee` RPC is added to provide raw fee data. External clients can query and use this data in their own fee estimation logic.
|
||||
|
||||
Multi-wallet support
|
||||
--------------------
|
||||
|
||||
Bitcoin Core now supports loading multiple, separate wallets (See [PR 8694](https://github.com/bitcoin/bitcoin/pull/8694), [PR 10849](https://github.com/bitcoin/bitcoin/pull/10849)). The wallets are completely separated, with individual balances, keys and received transactions.
|
||||
|
||||
Multi-wallet is enabled by using more than one `-wallet` argument when starting Bitcoin, either on the command line or in the Bitcoin config file.
|
||||
|
||||
**In Bitcoin-Qt, only the first wallet will be displayed and accessible for creating and signing transactions.** GUI selectable multiple wallets will be supported in a future version. However, even in 0.15 other loaded wallets will continue to remain synchronized to the node's current tip in the background. This can be useful if running a pruned node, since loading a wallet where the most recent sync is beyond the pruned height results in having to download and revalidate the whole blockchain. Continuing to synchronize all wallets in the background avoids this problem.
|
||||
|
||||
Bitcoin Core 0.15.0 contains the following changes to the RPC interface and `bitcoin-cli` for multi-wallet:
|
||||
|
||||
* When running Bitcoin Core with a single wallet, there are **no** changes to the RPC interface or `bitcoin-cli`. All RPC calls and `bitcoin-cli` commands continue to work as before.
|
||||
* When running Bitcoin Core with multi-wallet, all *node-level* RPC methods continue to work as before. HTTP RPC requests should be send to the normal `<RPC IP address>:<RPC port>/` endpoint, and `bitcoin-cli` commands should be run as before. A *node-level* RPC method is any method which does not require access to the wallet.
|
||||
* When running Bitcoin Core with multi-wallet, *wallet-level* RPC methods must specify the wallet for which they're intended in every request. HTTP RPC requests should be send to the `<RPC IP address>:<RPC port>/wallet/<wallet name>/` endpoint, for example `127.0.0.1:8332/wallet/wallet1.dat/`. `bitcoin-cli` commands should be run with a `-rpcwallet` option, for example `bitcoin-cli -rpcwallet=wallet1.dat getbalance`.
|
||||
* A new *node-level* `listwallets` RPC method is added to display which wallets are currently loaded. The names returned by this method are the same as those used in the HTTP endpoint and for the `rpcwallet` argument.
|
||||
|
||||
Note that while multi-wallet is now fully supported, the RPC multi-wallet interface should be considered unstable for version 0.15.0, and there may backwards-incompatible changes in future versions.
|
||||
|
||||
Replace-by-fee control in the GUI
|
||||
---------------------------------
|
||||
|
||||
Bitcoin Core has supported creating opt-in replace-by-fee (RBF) transactions
|
||||
since version 0.12.0, and since version 0.14.0 has included a `bumpfee` RPC method to
|
||||
replace unconfirmed opt-in RBF transactions with a new transaction that pays
|
||||
a higher fee.
|
||||
|
||||
In version 0.15, creating an opt-in RBF transaction and replacing the unconfirmed
|
||||
transaction with a higher-fee transaction are both supported in the GUI (See [PR 9592](https://github.com/bitcoin/bitcoin/pull/9592)).
|
||||
|
||||
Removal of Coin Age Priority
|
||||
----------------------------
|
||||
|
||||
In previous versions of Bitcoin Core, a portion of each block could be reserved for transactions based on the age and value of UTXOs they spent. This concept (Coin Age Priority) is a policy choice by miners, and there are no consensus rules around the inclusion of Coin Age Priority transactions in blocks. In practice, only a few miners continue to use Coin Age Priority for transaction selection in blocks. Bitcoin Core 0.15 removes all remaining support for Coin Age Priority (See [PR 9602](https://github.com/bitcoin/bitcoin/pull/9602)). This has the following implications:
|
||||
|
||||
- The concept of *free transactions* has been removed. High Coin Age Priority transactions would previously be allowed to be relayed even if they didn't attach a miner fee. This is no longer possible since there is no concept of Coin Age Priority. The `-limitfreerelay` and `-relaypriority` options which controlled relay of free transactions have therefore been removed.
|
||||
- The `-sendfreetransactions` option has been removed, since almost all miners do not include transactions which do not attach a transaction fee.
|
||||
- The `-blockprioritysize` option has been removed.
|
||||
- The `estimatepriority` and `estimatesmartpriority` RPCs have been removed.
|
||||
- The `getmempoolancestors`, `getmempooldescendants`, `getmempooolentry` and `getrawmempool` RPCs no longer return `startingpriority` and `currentpriority`.
|
||||
- The `prioritisetransaction` RPC no longer takes a `priority_delta` argument, which is replaced by a `dummy` argument for backwards compatibility with clients using positional arguments. The RPC is still used to change the apparent fee-rate of the transaction by using the `fee_delta` argument.
|
||||
- `-minrelaytxfee` can now be set to 0. If `minrelaytxfee` is set, then fees smaller than `minrelaytxfee` (per kB) are rejected from relaying, mining and transaction creation. This defaults to 1000 satoshi/kB.
|
||||
- The `-printpriority` option has been updated to only output the fee rate and hash of transactions included in a block by the mining code.
|
||||
|
||||
Mempool Persistence Across Restarts
|
||||
-----------------------------------
|
||||
|
||||
Version 0.14 introduced mempool persistence across restarts (the mempool is saved to a `mempool.dat` file in the data directory prior to shutdown and restores the mempool when the node is restarted). Version 0.15 allows this feature to be switched on or off using the `-persistmempool` command-line option (See [PR 9966](https://github.com/bitcoin/bitcoin/pull/9966)). By default, the option is set to true, and the mempool is saved on shutdown and reloaded on startup. If set to false, the `mempool.dat` file will not be loaded on startup or saved on shutdown.
|
||||
|
||||
New RPC methods
|
||||
---------------
|
||||
|
||||
Version 0.15 introduces several new RPC methods:
|
||||
|
||||
- `abortrescan` stops current wallet rescan, e.g. when triggered by an `importprivkey` call (See [PR 10208](https://github.com/bitcoin/bitcoin/pull/10208)).
|
||||
- `combinerawtransaction` accepts a JSON array of raw transactions and combines them into a single raw transaction (See [PR 10571](https://github.com/bitcoin/bitcoin/pull/10571)).
|
||||
- `estimaterawfee` returns raw fee data so that customized logic can be implemented to analyze the data and calculate estimates. See [Fee Estimation Improvements](#fee-estimation-improvements) for full details on changes to the fee estimation logic and interface.
|
||||
- `getchaintxstats` returns statistics about the total number and rate of transactions
|
||||
in the chain (See [PR 9733](https://github.com/bitcoin/bitcoin/pull/9733)).
|
||||
- `listwallets` lists wallets which are currently loaded. See the *Multi-wallet* section
|
||||
of these release notes for full details (See [Multi-wallet support](#multi-wallet-support)).
|
||||
- `uptime` returns the total runtime of the `bitcoind` server since its last start (See [PR 10400](https://github.com/bitcoin/bitcoin/pull/10400)).
|
||||
|
||||
Low-level RPC changes
|
||||
---------------------
|
||||
|
||||
- When using Bitcoin Core in multi-wallet mode, RPC requests for wallet methods must specify
|
||||
the wallet that they're intended for. See [Multi-wallet support](#multi-wallet-support) for full details.
|
||||
|
||||
- The new database model no longer stores information about transaction
|
||||
versions of unspent outputs (See [Performance improvements](#performance-improvements)). This means that:
|
||||
- The `gettxout` RPC no longer has a `version` field in the response.
|
||||
- The `gettxoutsetinfo` RPC reports `hash_serialized_2` instead of `hash_serialized`,
|
||||
which does not commit to the transaction versions of unspent outputs, but does
|
||||
commit to the height and coinbase information.
|
||||
- The `getutxos` REST path no longer reports the `txvers` field in JSON format,
|
||||
and always reports 0 for transaction versions in the binary format
|
||||
|
||||
- The `estimatefee` RPC is deprecated. Clients should switch to using the `estimatesmartfee` RPC, which returns better fee estimates. See [Fee Estimation Improvements](#fee-estimation-improvements) for full details on changes to the fee estimation logic and interface.
|
||||
|
||||
- The `gettxoutsetinfo` response now contains `disk_size` and `bogosize` instead of
|
||||
`bytes_serialized`. The first is a more accurate estimate of actual disk usage, but
|
||||
is not deterministic. The second is unrelated to disk usage, but is a
|
||||
database-independent metric of UTXO set size: it counts every UTXO entry as 50 + the
|
||||
length of its scriptPubKey (See [PR 10426](https://github.com/bitcoin/bitcoin/pull/10426)).
|
||||
|
||||
- `signrawtransaction` can no longer be used to combine multiple transactions into a single transaction. Instead, use the new `combinerawtransaction` RPC (See [PR 10571](https://github.com/bitcoin/bitcoin/pull/10571)).
|
||||
|
||||
- `fundrawtransaction` no longer accepts a `reserveChangeKey` option. This option used to allow RPC users to fund a raw transaction using an key from the keypool for the change address without removing it from the available keys in the keypool. The key could then be re-used for a `getnewaddress` call, which could potentially result in confusing or dangerous behaviour (See [PR 10784](https://github.com/bitcoin/bitcoin/pull/10784)).
|
||||
|
||||
- `estimatepriority` and `estimatesmartpriority` have been removed. See [Removal of Coin Age Priority](#removal-of-coin-age-priority).
|
||||
|
||||
- The `listunspent` RPC now takes a `query_options` argument (see [PR 8952](https://github.com/bitcoin/bitcoin/pull/8952)), which is a JSON object
|
||||
containing one or more of the following members:
|
||||
- `minimumAmount` - a number specifying the minimum value of each UTXO
|
||||
- `maximumAmount` - a number specifying the maximum value of each UTXO
|
||||
- `maximumCount` - a number specifying the minimum number of UTXOs
|
||||
- `minimumSumAmount` - a number specifying the minimum sum value of all UTXOs
|
||||
|
||||
- The `getmempoolancestors`, `getmempooldescendants`, `getmempooolentry` and `getrawmempool` RPCs no longer return `startingpriority` and `currentpriority`. See [Removal of Coin Age Priority](#removal-of-coin-age-priority).
|
||||
|
||||
- The `dumpwallet` RPC now returns the full absolute path to the dumped wallet. (it
|
||||
used to return no value, even if successful (See [PR 9740](https://github.com/bitcoin/bitcoin/pull/9740)).
|
||||
|
||||
- In the `getpeerinfo` RPC, the return object for each peer now returns an `addrbind` member, which contains the ip address and port of the connection to the peer. This is in addition to the `addrlocal` member which contains the ip address and port of the local node as reported by the peer (See [PR 10478](https://github.com/bitcoin/bitcoin/pull/10478)).
|
||||
|
||||
- The `disconnectnode` RPC can now disconnect a node specified by node ID (as well as by IP address/port). To disconnect a node based on node ID, call the RPC with the new `nodeid` argument (See [PR 10143](https://github.com/bitcoin/bitcoin/pull/10143)).
|
||||
|
||||
- The second argument in `prioritisetransaction` has been renamed from `priority_delta` to `dummy` since Bitcoin Core no longer has a concept of coin age priority. The `dummy` argument has no functional effect, but is retained for positional argument compatibility. See [Removal of Coin Age Priority](#removal-of-coin-age-priority).
|
||||
|
||||
- The `resendwallettransactions` RPC throws an error if the `-walletbroadcast` option is set to false (See [PR 10995](https://github.com/bitcoin/bitcoin/pull/10995)).
|
||||
|
||||
- The second argument in the `submitblock` RPC argument has been renamed from `parameters` to `dummy`. This argument never had any effect, and the renaming is simply to communicate this fact to the user (See [PR 10191](https://github.com/bitcoin/bitcoin/pull/10191))
|
||||
(Clients should, however, use positional arguments for `submitblock` in order to be compatible with BIP 22.)
|
||||
|
||||
- The `verbose` argument of `getblock` has been renamed to `verbosity` and now takes an integer from 0-2. Verbose level 0 is equivalent to `verbose=false`. Verbose level 1 is equivalent to `verbose=true`. Verbose level 2 will give the full transaction details of each transaction in the output as given by `getrawtransaction`. The old behavior of using the `verbose` named argument and a boolean value is still maintained for compatibility.
|
||||
|
||||
- Error codes have been updated to be more accurate for the following error cases (See [PR 9853](https://github.com/bitcoin/bitcoin/pull/9853)):
|
||||
- `getblock` now returns RPC_MISC_ERROR if the block can't be found on disk (for
|
||||
example if the block has been pruned). Previously returned RPC_INTERNAL_ERROR.
|
||||
- `pruneblockchain` now returns RPC_MISC_ERROR if the blocks cannot be pruned
|
||||
because the node is not in pruned mode. Previously returned RPC_METHOD_NOT_FOUND.
|
||||
- `pruneblockchain` now returns RPC_INVALID_PARAMETER if the blocks cannot be pruned
|
||||
because the supplied timestamp is too late. Previously returned RPC_INTERNAL_ERROR.
|
||||
- `pruneblockchain` now returns RPC_MISC_ERROR if the blocks cannot be pruned
|
||||
because the blockchain is too short. Previously returned RPC_INTERNAL_ERROR.
|
||||
- `setban` now returns RPC_CLIENT_INVALID_IP_OR_SUBNET if the supplied IP address
|
||||
or subnet is invalid. Previously returned RPC_CLIENT_NODE_ALREADY_ADDED.
|
||||
- `setban` now returns RPC_CLIENT_INVALID_IP_OR_SUBNET if the user tries to unban
|
||||
a node that has not previously been banned. Previously returned RPC_MISC_ERROR.
|
||||
- `removeprunedfunds` now returns RPC_WALLET_ERROR if `bitcoind` is unable to remove
|
||||
the transaction. Previously returned RPC_INTERNAL_ERROR.
|
||||
- `removeprunedfunds` now returns RPC_INVALID_PARAMETER if the transaction does not
|
||||
exist in the wallet. Previously returned RPC_INTERNAL_ERROR.
|
||||
- `fundrawtransaction` now returns RPC_INVALID_ADDRESS_OR_KEY if an invalid change
|
||||
address is provided. Previously returned RPC_INVALID_PARAMETER.
|
||||
- `fundrawtransaction` now returns RPC_WALLET_ERROR if `bitcoind` is unable to create
|
||||
the transaction. The error message provides further details. Previously returned
|
||||
RPC_INTERNAL_ERROR.
|
||||
- `bumpfee` now returns RPC_INVALID_PARAMETER if the provided transaction has
|
||||
descendants in the wallet. Previously returned RPC_MISC_ERROR.
|
||||
- `bumpfee` now returns RPC_INVALID_PARAMETER if the provided transaction has
|
||||
descendants in the mempool. Previously returned RPC_MISC_ERROR.
|
||||
- `bumpfee` now returns RPC_WALLET_ERROR if the provided transaction has
|
||||
has been mined or conflicts with a mined transaction. Previously returned
|
||||
RPC_INVALID_ADDRESS_OR_KEY.
|
||||
- `bumpfee` now returns RPC_WALLET_ERROR if the provided transaction is not
|
||||
BIP 125 replaceable. Previously returned RPC_INVALID_ADDRESS_OR_KEY.
|
||||
- `bumpfee` now returns RPC_WALLET_ERROR if the provided transaction has already
|
||||
been bumped by a different transaction. Previously returned RPC_INVALID_REQUEST.
|
||||
- `bumpfee` now returns RPC_WALLET_ERROR if the provided transaction contains
|
||||
inputs which don't belong to this wallet. Previously returned RPC_INVALID_ADDRESS_OR_KEY.
|
||||
- `bumpfee` now returns RPC_WALLET_ERROR if the provided transaction has multiple change
|
||||
outputs. Previously returned RPC_MISC_ERROR.
|
||||
- `bumpfee` now returns RPC_WALLET_ERROR if the provided transaction has no change
|
||||
output. Previously returned RPC_MISC_ERROR.
|
||||
- `bumpfee` now returns RPC_WALLET_ERROR if the fee is too high. Previously returned
|
||||
RPC_MISC_ERROR.
|
||||
- `bumpfee` now returns RPC_WALLET_ERROR if the fee is too low. Previously returned
|
||||
RPC_MISC_ERROR.
|
||||
- `bumpfee` now returns RPC_WALLET_ERROR if the change output is too small to bump the
|
||||
fee. Previously returned RPC_MISC_ERROR.
|
||||
### Tests
|
||||
- #11277 `3a6cdd4` Add test for multiwallet batch RPC calls (Russell Yanofsky)
|
||||
- #11647 `1c8c7f8` Add missing batch rpc calls to python coverage logs (Russell Yanofsky)
|
||||
- #11277 `1036c43` Add missing multiwallet rpc calls to python coverage logs (Russell Yanofsky)
|
||||
- #11277 `305f768` Limit AuthServiceProxyWrapper.\_\_getattr\_\_ wrapping (Russell Yanofsky)
|
||||
- #11277 `2eea279` Make AuthServiceProxy.\_batch method usable (Russell Yanofsky)
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
Thanks to everyone who directly contributed to this release:
|
||||
|
||||
- ロハン ダル
|
||||
- Ahmad Kazi
|
||||
- aideca
|
||||
- Akio Nakamura
|
||||
- Alex Morcos
|
||||
- Allan Doensen
|
||||
- Andres G. Aragoneses
|
||||
- Andrew Chow
|
||||
- Awemany
|
||||
- Bob McElrath
|
||||
- Brian McMichael
|
||||
- BtcDrak
|
||||
- Charlie Lee
|
||||
- Chris Gavin
|
||||
- Chris Stewart
|
||||
- Cory Fields
|
||||
- CryptAxe
|
||||
- Dag Robole
|
||||
- Daniel Aleksandersen
|
||||
- Daniel Cousens
|
||||
- darksh1ne
|
||||
- Dimitris Tsapakidis
|
||||
- Eric Shaw Jr
|
||||
- Evan Klitzke
|
||||
- fanquake
|
||||
- Felix Weis
|
||||
- flack
|
||||
- Greg Griffith
|
||||
- Gregory Maxwell
|
||||
- Gregory Sanders
|
||||
- gubatron
|
||||
- Ian Kelling
|
||||
- Jack Grigg
|
||||
- James Evans
|
||||
- James Hilliard
|
||||
- Jameson Lopp
|
||||
- Jeremy Rubin
|
||||
- Jimmy Song
|
||||
- João Barbosa
|
||||
- Johnathan Corgan
|
||||
- John Newbery
|
||||
- Jonas Schnelli
|
||||
- jonnynewbs
|
||||
- Jorge Timón
|
||||
- Kalle Alm
|
||||
- Karl-Johan Alm
|
||||
- Kewde
|
||||
- keystrike
|
||||
- KibbledJiveElkZoo
|
||||
- Kibbled Jive Elk Zoo
|
||||
- kirit93
|
||||
- kobake
|
||||
- Kyle Honeycutt
|
||||
- Lawrence Nahum
|
||||
- Luke Dashjr
|
||||
- Marco Falke
|
||||
- Marcos Mayorga
|
||||
- Marijn Stollenga
|
||||
- Mario Dian
|
||||
- Mark Friedenbach
|
||||
- Marko Bencun
|
||||
- Masahiko Hyuga
|
||||
- Matt Corallo
|
||||
- Matthew Zipkin
|
||||
- Matthias Grundmann
|
||||
- Michael Goldstein
|
||||
- Michael Rotarius
|
||||
- Mikerah
|
||||
- Mike van Rossum
|
||||
- Mitchell Cash
|
||||
- NicolasDorier
|
||||
- Nicolas Dorier
|
||||
- Patrick Strateman
|
||||
- Pavel Janík
|
||||
- Pavlos Antoniou
|
||||
- Pavol Rusnak
|
||||
- Pedro Branco
|
||||
- Peter Todd
|
||||
- Pieter Wuille
|
||||
- practicalswift
|
||||
- René Nyffenegger
|
||||
- Ricardo Velhote
|
||||
- romanornr
|
||||
- MeshCollider
|
||||
- Russell Yanofsky
|
||||
- Rusty Russell
|
||||
- Ryan Havar
|
||||
- shaolinfry
|
||||
- Shigeya Suzuki
|
||||
- Simone Madeo
|
||||
- Spencer Lievens
|
||||
- Steven D. Lander
|
||||
- Suhas Daftuar
|
||||
- Takashi Mitsuta
|
||||
- Thomas Snider
|
||||
- Timothy Redaelli
|
||||
- tintinweb
|
||||
- tnaka
|
||||
- Warren Togami
|
||||
- Wladimir J. van der Laan
|
||||
|
||||
As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/).
|
||||
|
||||
87
doc/release-notes/release-notes-0.15.0.1.md
Normal file
87
doc/release-notes/release-notes-0.15.0.1.md
Normal file
@@ -0,0 +1,87 @@
|
||||
Bitcoin Core version *0.15.0.1* is now available from:
|
||||
|
||||
<https://bitcoin.org/bin/bitcoin-core-0.15.0.1/>
|
||||
|
||||
and
|
||||
|
||||
<https://bitcoincore.org/bin/bitcoin-core-0.15.0.1/>
|
||||
|
||||
This is a minor bug fix for 0.15.0.
|
||||
|
||||
Please report bugs using the issue tracker at GitHub:
|
||||
|
||||
<https://github.com/bitcoin/bitcoin/issues>
|
||||
|
||||
To receive security and update notifications, please subscribe to:
|
||||
|
||||
<https://bitcoincore.org/en/list/announcements/join/>
|
||||
|
||||
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).
|
||||
|
||||
The first time you run version 0.15.0 or higher, your chainstate database will
|
||||
be converted to a new format, which will take anywhere from a few minutes to
|
||||
half an hour, depending on the speed of your machine.
|
||||
|
||||
The file format of `fee_estimates.dat` changed in version 0.15.0. Hence, a
|
||||
downgrade from version 0.15.0 or upgrade to version 0.15.0 will cause all fee
|
||||
estimates to be discarded.
|
||||
|
||||
Note that the block database format also changed in version 0.8.0 and there is no
|
||||
automatic upgrade code from before version 0.8 to version 0.15.0. Upgrading
|
||||
directly from 0.7.x and earlier without redownloading the blockchain is not supported.
|
||||
However, as usual, old wallet versions are still supported.
|
||||
|
||||
Downgrading warning
|
||||
-------------------
|
||||
|
||||
The chainstate database for this release is not compatible with previous
|
||||
releases, so if you run 0.15 and then decide to switch back to any
|
||||
older version, you will need to run the old release with the `-reindex-chainstate`
|
||||
option to rebuild the chainstate data structures in the old format.
|
||||
|
||||
If your node has pruning enabled, this will entail re-downloading and
|
||||
processing the entire blockchain.
|
||||
|
||||
Compatibility
|
||||
==============
|
||||
|
||||
Bitcoin Core is extensively tested on multiple operating systems using
|
||||
the Linux kernel, macOS 10.8+, and Windows Vista and later. Windows XP is not supported.
|
||||
|
||||
Bitcoin Core should also work on most other Unix-like systems but is not
|
||||
frequently tested on them.
|
||||
|
||||
Notable changes
|
||||
===============
|
||||
|
||||
GUI startup crash issue
|
||||
-------------------------
|
||||
|
||||
After upgrade to 0.15.0, some clients would crash at startup because a custom
|
||||
fee setting was configured that no longer exists in the GUI. This is a minimal
|
||||
patch to avoid this issue from occuring.
|
||||
|
||||
0.15.0.1 Change log
|
||||
====================
|
||||
|
||||
- #11332 `46c8d23` Fix possible crash with invalid nCustomFeeRadio in QSettings (achow101, TheBlueMatt)
|
||||
|
||||
Also the manpages were updated, as this was forgotten for 0.15.0.
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
Thanks to everyone who directly contributed to this release:
|
||||
|
||||
- Andrew Chow
|
||||
- Matt Corallo
|
||||
- Jonas Schnelli
|
||||
- Wladimir J. van der Laan
|
||||
|
||||
As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/).
|
||||
878
doc/release-notes/release-notes-0.15.0.md
Normal file
878
doc/release-notes/release-notes-0.15.0.md
Normal file
@@ -0,0 +1,878 @@
|
||||
Bitcoin Core version *0.15.0* is now available from:
|
||||
|
||||
<https://bitcoin.org/bin/bitcoin-core-0.15.0/>
|
||||
|
||||
This is a new major version release, including new features, various bugfixes
|
||||
and performance improvements, as well as updated translations.
|
||||
|
||||
Please report bugs using the issue tracker at GitHub:
|
||||
|
||||
<https://github.com/bitcoin/bitcoin/issues>
|
||||
|
||||
To receive security and update notifications, please subscribe to:
|
||||
|
||||
<https://bitcoincore.org/en/list/announcements/join/>
|
||||
|
||||
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).
|
||||
|
||||
The first time you run version 0.15.0, your chainstate database will be converted to a
|
||||
new format, which will take anywhere from a few minutes to half an hour,
|
||||
depending on the speed of your machine.
|
||||
|
||||
The file format of `fee_estimates.dat` changed in version 0.15.0. Hence, a
|
||||
downgrade from version 0.15.0 or upgrade to version 0.15.0 will cause all fee
|
||||
estimates to be discarded.
|
||||
|
||||
Note that the block database format also changed in version 0.8.0 and there is no
|
||||
automatic upgrade code from before version 0.8 to version 0.15.0. Upgrading
|
||||
directly from 0.7.x and earlier without redownloading the blockchain is not supported.
|
||||
However, as usual, old wallet versions are still supported.
|
||||
|
||||
Downgrading warning
|
||||
-------------------
|
||||
|
||||
The chainstate database for this release is not compatible with previous
|
||||
releases, so if you run 0.15 and then decide to switch back to any
|
||||
older version, you will need to run the old release with the `-reindex-chainstate`
|
||||
option to rebuild the chainstate data structures in the old format.
|
||||
|
||||
If your node has pruning enabled, this will entail re-downloading and
|
||||
processing the entire blockchain.
|
||||
|
||||
Compatibility
|
||||
==============
|
||||
|
||||
Bitcoin Core is extensively tested on multiple operating systems using
|
||||
the Linux kernel, macOS 10.8+, and Windows Vista and later. Windows XP is not supported.
|
||||
|
||||
Bitcoin Core should also work on most other Unix-like systems but is not
|
||||
frequently tested on them.
|
||||
|
||||
Notes for 0.15.0
|
||||
================
|
||||
|
||||
Current SegWit support
|
||||
----------------------
|
||||
|
||||
Version 0.15.0 supports adding a segregated witness address via the `addwitnessaddress` RPC, but
|
||||
please note that this is a testing/expert RPC, which does not guarantee recovery from backup. Only use
|
||||
this RPC if you know what you are doing. More complete wallet support for segregated witness is coming
|
||||
in a next version.
|
||||
|
||||
Rescanning with encrypted wallets
|
||||
---------------------------------
|
||||
|
||||
As in previous versions, when using an encrypted HD wallet, the keypool cannot be topped up without unlocking
|
||||
the wallet. This means that currently, in order to recover from a backup of an encrypted HD wallet, the user
|
||||
must unlock the wallet with a really long timeout and manually trigger a rescan, otherwise they risk missing
|
||||
some keys when auto-topup cannot run. Unfortunately there is no `rescan` RPC in this version, that will be
|
||||
included in a future version, so for now a rescan can be triggered using one of the `import*` commands, using
|
||||
a dummy address generated by another (trusted) wallet.
|
||||
|
||||
Notable changes
|
||||
===============
|
||||
|
||||
Performance Improvements
|
||||
------------------------
|
||||
|
||||
Version 0.15 contains a number of significant performance improvements, which make
|
||||
Initial Block Download, startup, transaction and block validation much faster:
|
||||
|
||||
- The chainstate database (which is used for tracking UTXOs) has been changed
|
||||
from a per-transaction model to a per-output model (See [PR 10195](https://github.com/bitcoin/bitcoin/pull/10195)). Advantages of this model
|
||||
are that it:
|
||||
- avoids the CPU overhead of deserializing and serializing the unused outputs;
|
||||
- has more predictable memory usage;
|
||||
- uses simpler code;
|
||||
- is adaptable to various future cache flushing strategies.
|
||||
|
||||
As a result, validating the blockchain during Initial Block Download (IBD) and reindex
|
||||
is ~30-40% faster, uses 10-20% less memory, and flushes to disk far less frequently.
|
||||
The only downside is that the on-disk database is 15% larger. During the conversion from the previous format
|
||||
a few extra gigabytes may be used.
|
||||
- Earlier versions experienced a spike in memory usage while flushing UTXO updates to disk.
|
||||
As a result, only half of the available memory was actually used as cache, and the other half was
|
||||
reserved to accommodate flushing. This is no longer the case (See [PR 10148](https://github.com/bitcoin/bitcoin/pull/10148)), and the entirety of
|
||||
the available cache (see `-dbcache`) is now actually used as cache. This reduces the flushing
|
||||
frequency by a factor 2 or more.
|
||||
- In previous versions, signature validation for transactions has been cached when the
|
||||
transaction is accepted to the mempool. Version 0.15 extends this to cache the entire script
|
||||
validity (See [PR 10192](https://github.com/bitcoin/bitcoin/pull/10192)). This means that if a transaction in a block has already been accepted to the
|
||||
mempool, the scriptSig does not need to be re-evaluated. Empirical tests show that
|
||||
this results in new block validation being 40-50% faster.
|
||||
- LevelDB has been upgraded to version 1.20 (See [PR 10544](https://github.com/bitcoin/bitcoin/pull/10544)). This version contains hardware acceleration for CRC
|
||||
on architectures supporting SSE 4.2. As a result, synchronization and block validation are now faster.
|
||||
- SHA256 hashing has been optimized for architectures supporting SSE 4 (See [PR 10821](https://github.com/bitcoin/bitcoin/pull/10821)). SHA256 is around
|
||||
50% faster on supported hardware, which results in around 5% faster IBD and block
|
||||
validation. In version 0.15, SHA256 hardware optimization is disabled in release builds by
|
||||
default, but can be enabled by using `--enable-experimental-asm` when building.
|
||||
- Refill of the keypool no longer flushes the wallet between each key which resulted in a ~20x speedup in creating a new wallet. Part of this speedup was used to increase the default keypool to 1000 keys to make recovery more robust. (See [PR 10831](https://github.com/bitcoin/bitcoin/pull/10831)).
|
||||
|
||||
Fee Estimation Improvements
|
||||
---------------------------
|
||||
|
||||
Fee estimation has been significantly improved in version 0.15, with more accurate fee estimates used by the wallet and a wider range of options for advanced users of the `estimatesmartfee` and `estimaterawfee` RPCs (See [PR 10199](https://github.com/bitcoin/bitcoin/pull/10199)).
|
||||
|
||||
### Changes to internal logic and wallet behavior
|
||||
|
||||
- Internally, estimates are now tracked on 3 different time horizons. This allows for longer targets and means estimates adjust more quickly to changes in conditions.
|
||||
- Estimates can now be *conservative* or *economical*. *Conservative* estimates use longer time horizons to produce an estimate which is less susceptible to rapid changes in fee conditions. *Economical* estimates use shorter time horizons and will be more affected by short-term changes in fee conditions. Economical estimates may be considerably lower during periods of low transaction activity (for example over weekends), but may result in transactions being unconfirmed if prevailing fees increase rapidly.
|
||||
- By default, the wallet will use conservative fee estimates to increase the reliability of transactions being confirmed within the desired target. For transactions that are marked as replaceable, the wallet will use an economical estimate by default, since the fee can be 'bumped' if the fee conditions change rapidly (See [PR 10589](https://github.com/bitcoin/bitcoin/pull/10589)).
|
||||
- Estimates can now be made for confirmation targets up to 1008 blocks (one week).
|
||||
- More data on historical fee rates is stored, leading to more precise fee estimates.
|
||||
- Transactions which leave the mempool due to eviction or other non-confirmed reasons are now taken into account by the fee estimation logic, leading to more accurate fee estimates.
|
||||
- The fee estimation logic will make sure enough data has been gathered to return a meaningful estimate. If there is insufficient data, a fallback default fee is used.
|
||||
|
||||
### Changes to fee estimate RPCs
|
||||
|
||||
- The `estimatefee` RPC is now deprecated in favor of using only `estimatesmartfee` (which is the implementation used by the GUI)
|
||||
- The `estimatesmartfee` RPC interface has been changed (See [PR 10707](https://github.com/bitcoin/bitcoin/pull/10707)):
|
||||
- The `nblocks` argument has been renamed to `conf_target` (to be consistent with other RPC methods).
|
||||
- An `estimate_mode` argument has been added. This argument takes one of the following strings: `CONSERVATIVE`, `ECONOMICAL` or `UNSET` (which defaults to `CONSERVATIVE`).
|
||||
- The RPC return object now contains an `errors` member, which returns errors encountered during processing.
|
||||
- If Bitcoin Core has not been running for long enough and has not seen enough blocks or transactions to produce an accurate fee estimation, an error will be returned (previously a value of -1 was used to indicate an error, which could be confused for a feerate).
|
||||
- A new `estimaterawfee` RPC is added to provide raw fee data. External clients can query and use this data in their own fee estimation logic.
|
||||
|
||||
Multi-wallet support
|
||||
--------------------
|
||||
|
||||
Bitcoin Core now supports loading multiple, separate wallets (See [PR 8694](https://github.com/bitcoin/bitcoin/pull/8694), [PR 10849](https://github.com/bitcoin/bitcoin/pull/10849)). The wallets are completely separated, with individual balances, keys and received transactions.
|
||||
|
||||
Multi-wallet is enabled by using more than one `-wallet` argument when starting Bitcoin, either on the command line or in the Bitcoin config file.
|
||||
|
||||
**In Bitcoin-Qt, only the first wallet will be displayed and accessible for creating and signing transactions.** GUI selectable multiple wallets will be supported in a future version. However, even in 0.15 other loaded wallets will remain synchronized to the node's current tip in the background. This can be useful if running a pruned node, since loading a wallet where the most recent sync is beyond the pruned height results in having to download and revalidate the whole blockchain. Continuing to synchronize all wallets in the background avoids this problem.
|
||||
|
||||
Bitcoin Core 0.15.0 contains the following changes to the RPC interface and `bitcoin-cli` for multi-wallet:
|
||||
|
||||
* When running Bitcoin Core with a single wallet, there are **no** changes to the RPC interface or `bitcoin-cli`. All RPC calls and `bitcoin-cli` commands continue to work as before.
|
||||
* When running Bitcoin Core with multi-wallet, all *node-level* RPC methods continue to work as before. HTTP RPC requests should be send to the normal `<RPC IP address>:<RPC port>/` endpoint, and `bitcoin-cli` commands should be run as before. A *node-level* RPC method is any method which does not require access to the wallet.
|
||||
* When running Bitcoin Core with multi-wallet, *wallet-level* RPC methods must specify the wallet for which they're intended in every request. HTTP RPC requests should be send to the `<RPC IP address>:<RPC port>/wallet/<wallet name>/` endpoint, for example `127.0.0.1:8332/wallet/wallet1.dat/`. `bitcoin-cli` commands should be run with a `-rpcwallet` option, for example `bitcoin-cli -rpcwallet=wallet1.dat getbalance`.
|
||||
* A new *node-level* `listwallets` RPC method is added to display which wallets are currently loaded. The names returned by this method are the same as those used in the HTTP endpoint and for the `rpcwallet` argument.
|
||||
|
||||
Note that while multi-wallet is now fully supported, the RPC multi-wallet interface should be considered unstable for version 0.15.0, and there may backwards-incompatible changes in future versions.
|
||||
|
||||
Replace-by-fee control in the GUI
|
||||
---------------------------------
|
||||
|
||||
Bitcoin Core has supported creating opt-in replace-by-fee (RBF) transactions
|
||||
since version 0.12.0, and since version 0.14.0 has included a `bumpfee` RPC method to
|
||||
replace unconfirmed opt-in RBF transactions with a new transaction that pays
|
||||
a higher fee.
|
||||
|
||||
In version 0.15, creating an opt-in RBF transaction and replacing the unconfirmed
|
||||
transaction with a higher-fee transaction are both supported in the GUI (See [PR 9592](https://github.com/bitcoin/bitcoin/pull/9592)).
|
||||
|
||||
Removal of Coin Age Priority
|
||||
----------------------------
|
||||
|
||||
In previous versions of Bitcoin Core, a portion of each block could be reserved for transactions based on the age and value of UTXOs they spent. This concept (Coin Age Priority) is a policy choice by miners, and there are no consensus rules around the inclusion of Coin Age Priority transactions in blocks. In practice, only a few miners continue to use Coin Age Priority for transaction selection in blocks. Bitcoin Core 0.15 removes all remaining support for Coin Age Priority (See [PR 9602](https://github.com/bitcoin/bitcoin/pull/9602)). This has the following implications:
|
||||
|
||||
- The concept of *free transactions* has been removed. High Coin Age Priority transactions would previously be allowed to be relayed even if they didn't attach a miner fee. This is no longer possible since there is no concept of Coin Age Priority. The `-limitfreerelay` and `-relaypriority` options which controlled relay of free transactions have therefore been removed.
|
||||
- The `-sendfreetransactions` option has been removed, since almost all miners do not include transactions which do not attach a transaction fee.
|
||||
- The `-blockprioritysize` option has been removed.
|
||||
- The `estimatepriority` and `estimatesmartpriority` RPCs have been removed.
|
||||
- The `getmempoolancestors`, `getmempooldescendants`, `getmempoolentry` and `getrawmempool` RPCs no longer return `startingpriority` and `currentpriority`.
|
||||
- The `prioritisetransaction` RPC no longer takes a `priority_delta` argument, which is replaced by a `dummy` argument for backwards compatibility with clients using positional arguments. The RPC is still used to change the apparent fee-rate of the transaction by using the `fee_delta` argument.
|
||||
- `-minrelaytxfee` can now be set to 0. If `minrelaytxfee` is set, then fees smaller than `minrelaytxfee` (per kB) are rejected from relaying, mining and transaction creation. This defaults to 1000 satoshi/kB.
|
||||
- The `-printpriority` option has been updated to only output the fee rate and hash of transactions included in a block by the mining code.
|
||||
|
||||
Mempool Persistence Across Restarts
|
||||
-----------------------------------
|
||||
|
||||
Version 0.14 introduced mempool persistence across restarts (the mempool is saved to a `mempool.dat` file in the data directory prior to shutdown and restores the mempool when the node is restarted). Version 0.15 allows this feature to be switched on or off using the `-persistmempool` command-line option (See [PR 9966](https://github.com/bitcoin/bitcoin/pull/9966)). By default, the option is set to true, and the mempool is saved on shutdown and reloaded on startup. If set to false, the `mempool.dat` file will not be loaded on startup or saved on shutdown.
|
||||
|
||||
New RPC methods
|
||||
---------------
|
||||
|
||||
Version 0.15 introduces several new RPC methods:
|
||||
|
||||
- `abortrescan` stops current wallet rescan, e.g. when triggered by an `importprivkey` call (See [PR 10208](https://github.com/bitcoin/bitcoin/pull/10208)).
|
||||
- `combinerawtransaction` accepts a JSON array of raw transactions and combines them into a single raw transaction (See [PR 10571](https://github.com/bitcoin/bitcoin/pull/10571)).
|
||||
- `estimaterawfee` returns raw fee data so that customized logic can be implemented to analyze the data and calculate estimates. See [Fee Estimation Improvements](#fee-estimation-improvements) for full details on changes to the fee estimation logic and interface.
|
||||
- `getchaintxstats` returns statistics about the total number and rate of transactions
|
||||
in the chain (See [PR 9733](https://github.com/bitcoin/bitcoin/pull/9733)).
|
||||
- `listwallets` lists wallets which are currently loaded. See the *Multi-wallet* section
|
||||
of these release notes for full details (See [Multi-wallet support](#multi-wallet-support)).
|
||||
- `uptime` returns the total runtime of the `bitcoind` server since its last start (See [PR 10400](https://github.com/bitcoin/bitcoin/pull/10400)).
|
||||
|
||||
Low-level RPC changes
|
||||
---------------------
|
||||
|
||||
- When using Bitcoin Core in multi-wallet mode, RPC requests for wallet methods must specify
|
||||
the wallet that they're intended for. See [Multi-wallet support](#multi-wallet-support) for full details.
|
||||
|
||||
- The new database model no longer stores information about transaction
|
||||
versions of unspent outputs (See [Performance improvements](#performance-improvements)). This means that:
|
||||
- The `gettxout` RPC no longer has a `version` field in the response.
|
||||
- The `gettxoutsetinfo` RPC reports `hash_serialized_2` instead of `hash_serialized`,
|
||||
which does not commit to the transaction versions of unspent outputs, but does
|
||||
commit to the height and coinbase information.
|
||||
- The `getutxos` REST path no longer reports the `txvers` field in JSON format,
|
||||
and always reports 0 for transaction versions in the binary format
|
||||
|
||||
- The `estimatefee` RPC is deprecated. Clients should switch to using the `estimatesmartfee` RPC, which returns better fee estimates. See [Fee Estimation Improvements](#fee-estimation-improvements) for full details on changes to the fee estimation logic and interface.
|
||||
|
||||
- The `gettxoutsetinfo` response now contains `disk_size` and `bogosize` instead of
|
||||
`bytes_serialized`. The first is a more accurate estimate of actual disk usage, but
|
||||
is not deterministic. The second is unrelated to disk usage, but is a
|
||||
database-independent metric of UTXO set size: it counts every UTXO entry as 50 + the
|
||||
length of its scriptPubKey (See [PR 10426](https://github.com/bitcoin/bitcoin/pull/10426)).
|
||||
|
||||
- `signrawtransaction` can no longer be used to combine multiple transactions into a single transaction. Instead, use the new `combinerawtransaction` RPC (See [PR 10571](https://github.com/bitcoin/bitcoin/pull/10571)).
|
||||
|
||||
- `fundrawtransaction` no longer accepts a `reserveChangeKey` option. This option used to allow RPC users to fund a raw transaction using an key from the keypool for the change address without removing it from the available keys in the keypool. The key could then be re-used for a `getnewaddress` call, which could potentially result in confusing or dangerous behaviour (See [PR 10784](https://github.com/bitcoin/bitcoin/pull/10784)).
|
||||
|
||||
- `estimatepriority` and `estimatesmartpriority` have been removed. See [Removal of Coin Age Priority](#removal-of-coin-age-priority).
|
||||
|
||||
- The `listunspent` RPC now takes a `query_options` argument (see [PR 8952](https://github.com/bitcoin/bitcoin/pull/8952)), which is a JSON object
|
||||
containing one or more of the following members:
|
||||
- `minimumAmount` - a number specifying the minimum value of each UTXO
|
||||
- `maximumAmount` - a number specifying the maximum value of each UTXO
|
||||
- `maximumCount` - a number specifying the minimum number of UTXOs
|
||||
- `minimumSumAmount` - a number specifying the minimum sum value of all UTXOs
|
||||
|
||||
- The `getmempoolancestors`, `getmempooldescendants`, `getmempoolentry` and `getrawmempool` RPCs no longer return `startingpriority` and `currentpriority`. See [Removal of Coin Age Priority](#removal-of-coin-age-priority).
|
||||
|
||||
- The `dumpwallet` RPC now returns the full absolute path to the dumped wallet. It
|
||||
used to return no value, even if successful (See [PR 9740](https://github.com/bitcoin/bitcoin/pull/9740)).
|
||||
|
||||
- In the `getpeerinfo` RPC, the return object for each peer now returns an `addrbind` member, which contains the ip address and port of the connection to the peer. This is in addition to the `addrlocal` member which contains the ip address and port of the local node as reported by the peer (See [PR 10478](https://github.com/bitcoin/bitcoin/pull/10478)).
|
||||
|
||||
- The `disconnectnode` RPC can now disconnect a node specified by node ID (as well as by IP address/port). To disconnect a node based on node ID, call the RPC with the new `nodeid` argument (See [PR 10143](https://github.com/bitcoin/bitcoin/pull/10143)).
|
||||
|
||||
- The second argument in `prioritisetransaction` has been renamed from `priority_delta` to `dummy` since Bitcoin Core no longer has a concept of coin age priority. The `dummy` argument has no functional effect, but is retained for positional argument compatibility. See [Removal of Coin Age Priority](#removal-of-coin-age-priority).
|
||||
|
||||
- The `resendwallettransactions` RPC throws an error if the `-walletbroadcast` option is set to false (See [PR 10995](https://github.com/bitcoin/bitcoin/pull/10995)).
|
||||
|
||||
- The second argument in the `submitblock` RPC argument has been renamed from `parameters` to `dummy`. This argument never had any effect, and the renaming is simply to communicate this fact to the user (See [PR 10191](https://github.com/bitcoin/bitcoin/pull/10191))
|
||||
(Clients should, however, use positional arguments for `submitblock` in order to be compatible with BIP 22.)
|
||||
|
||||
- The `verbose` argument of `getblock` has been renamed to `verbosity` and now takes an integer from 0 to 2. Verbose level 0 is equivalent to `verbose=false`. Verbose level 1 is equivalent to `verbose=true`. Verbose level 2 will give the full transaction details of each transaction in the output as given by `getrawtransaction`. The old behavior of using the `verbose` named argument and a boolean value is still maintained for compatibility.
|
||||
|
||||
- Error codes have been updated to be more accurate for the following error cases (See [PR 9853](https://github.com/bitcoin/bitcoin/pull/9853)):
|
||||
- `getblock` now returns RPC_MISC_ERROR if the block can't be found on disk (for
|
||||
example if the block has been pruned). Previously returned RPC_INTERNAL_ERROR.
|
||||
- `pruneblockchain` now returns RPC_MISC_ERROR if the blocks cannot be pruned
|
||||
because the node is not in pruned mode. Previously returned RPC_METHOD_NOT_FOUND.
|
||||
- `pruneblockchain` now returns RPC_INVALID_PARAMETER if the blocks cannot be pruned
|
||||
because the supplied timestamp is too late. Previously returned RPC_INTERNAL_ERROR.
|
||||
- `pruneblockchain` now returns RPC_MISC_ERROR if the blocks cannot be pruned
|
||||
because the blockchain is too short. Previously returned RPC_INTERNAL_ERROR.
|
||||
- `setban` now returns RPC_CLIENT_INVALID_IP_OR_SUBNET if the supplied IP address
|
||||
or subnet is invalid. Previously returned RPC_CLIENT_NODE_ALREADY_ADDED.
|
||||
- `setban` now returns RPC_CLIENT_INVALID_IP_OR_SUBNET if the user tries to unban
|
||||
a node that has not previously been banned. Previously returned RPC_MISC_ERROR.
|
||||
- `removeprunedfunds` now returns RPC_WALLET_ERROR if `bitcoind` is unable to remove
|
||||
the transaction. Previously returned RPC_INTERNAL_ERROR.
|
||||
- `removeprunedfunds` now returns RPC_INVALID_PARAMETER if the transaction does not
|
||||
exist in the wallet. Previously returned RPC_INTERNAL_ERROR.
|
||||
- `fundrawtransaction` now returns RPC_INVALID_ADDRESS_OR_KEY if an invalid change
|
||||
address is provided. Previously returned RPC_INVALID_PARAMETER.
|
||||
- `fundrawtransaction` now returns RPC_WALLET_ERROR if `bitcoind` is unable to create
|
||||
the transaction. The error message provides further details. Previously returned
|
||||
RPC_INTERNAL_ERROR.
|
||||
- `bumpfee` now returns RPC_INVALID_PARAMETER if the provided transaction has
|
||||
descendants in the wallet. Previously returned RPC_MISC_ERROR.
|
||||
- `bumpfee` now returns RPC_INVALID_PARAMETER if the provided transaction has
|
||||
descendants in the mempool. Previously returned RPC_MISC_ERROR.
|
||||
- `bumpfee` now returns RPC_WALLET_ERROR if the provided transaction has
|
||||
has been mined or conflicts with a mined transaction. Previously returned
|
||||
RPC_INVALID_ADDRESS_OR_KEY.
|
||||
- `bumpfee` now returns RPC_WALLET_ERROR if the provided transaction is not
|
||||
BIP 125 replaceable. Previously returned RPC_INVALID_ADDRESS_OR_KEY.
|
||||
- `bumpfee` now returns RPC_WALLET_ERROR if the provided transaction has already
|
||||
been bumped by a different transaction. Previously returned RPC_INVALID_REQUEST.
|
||||
- `bumpfee` now returns RPC_WALLET_ERROR if the provided transaction contains
|
||||
inputs which don't belong to this wallet. Previously returned RPC_INVALID_ADDRESS_OR_KEY.
|
||||
- `bumpfee` now returns RPC_WALLET_ERROR if the provided transaction has multiple change
|
||||
outputs. Previously returned RPC_MISC_ERROR.
|
||||
- `bumpfee` now returns RPC_WALLET_ERROR if the provided transaction has no change
|
||||
output. Previously returned RPC_MISC_ERROR.
|
||||
- `bumpfee` now returns RPC_WALLET_ERROR if the fee is too high. Previously returned
|
||||
RPC_MISC_ERROR.
|
||||
- `bumpfee` now returns RPC_WALLET_ERROR if the fee is too low. Previously returned
|
||||
RPC_MISC_ERROR.
|
||||
- `bumpfee` now returns RPC_WALLET_ERROR if the change output is too small to bump the
|
||||
fee. Previously returned RPC_MISC_ERROR.
|
||||
|
||||
0.15.0 Change log
|
||||
=================
|
||||
|
||||
### RPC and other APIs
|
||||
- #9485 `61a640e` ZMQ example using python3 and asyncio (mcelrath)
|
||||
- #9894 `0496e15` remove 'label' filter for rpc command help (instagibbs)
|
||||
- #9853 `02bd6e9` Fix error codes from various RPCs (jnewbery)
|
||||
- #9842 `598ef9c` Fix RPC failure testing (continuation of #9707) (jnewbery)
|
||||
- #10038 `d34995a` Add mallocinfo mode to `getmemoryinfo` RPC (laanwj)
|
||||
- #9500 `3568b30` [Qt][RPC] Autocomplete commands for 'help' command in debug console (achow101)
|
||||
- #10056 `e6156a0` [zmq] Call va_end() on va_start()ed args (kallewoof)
|
||||
- #10086 `7438cea` Trivial: move rpcserialversion into RPC option group (jlopp)
|
||||
- #10150 `350b224` [rpc] Add logging rpc (jnewbery)
|
||||
- #10208 `393160c` [wallet] Rescan abortability (kallewoof)
|
||||
- #10143 `a987def` [net] Allow disconnectnode RPC to be called with node id (jnewbery)
|
||||
- #10281 `0e8499c` doc: Add RPC interface guidelines (laanwj)
|
||||
- #9733 `d4732f3` Add getchaintxstats RPC (sipa)
|
||||
- #10310 `f4b15e2` [doc] Add hint about getmempoolentry to getrawmempool help (kallewoof)
|
||||
- #8704 `96c850c` [RPC] Transaction details in getblock (achow101)
|
||||
- #8952 `9390845` Add query options to listunspent RPC call (pedrobranco)
|
||||
- #10413 `08ac35a` Fix docs (there's no rpc command setpaytxfee) (RHavar)
|
||||
- #8384 `e317c0d` Add witness data output to TxInError messages (instagibbs)
|
||||
- #9571 `4677151` RPC: getblockchaininfo returns BIP signaling statistics (pinheadmz)
|
||||
- #10450 `ef2d062` Fix bumpfee rpc "errors" return value (ryanofsky)
|
||||
- #10475 `39039b1` [RPC] getmempoolinfo mempoolminfee is a BTC/KB feerate (instagibbs)
|
||||
- #10478 `296928e` rpc: Add listen address to incoming connections in `getpeerinfo` (laanwj)
|
||||
- #10403 `08d0390` Fix importmulti failure to return rescan errors (ryanofsky)
|
||||
- #9740 `9fec4da` Add friendly output to dumpwallet (aideca)
|
||||
- #10426 `16f6c98` Replace bytes_serialized with bogosize (sipa)
|
||||
- #10252 `980deaf` RPC/Mining: Restore API compatibility for prioritisetransaction (luke-jr)
|
||||
- #9672 `46311e7` Opt-into-RBF for RPC & bitcoin-tx (luke-jr)
|
||||
- #10481 `9c248e3` Decodehextx scripts sanity check (achow101)
|
||||
- #10488 `fa1f106` Note that the prioritizetransaction dummy value is deprecated, and has no meaning (TheBlueMatt)
|
||||
- #9738 `c94b89e` gettxoutproof() should return consistent result (jnewbery)
|
||||
- #10191 `00350bd` [trivial] Rename unused RPC arguments 'dummy' (jnewbery)
|
||||
- #10627 `b62b4c8` fixed listunspent rpc convert parameter (tnakagawa)
|
||||
- #10412 `bef02fb` Improve wallet rescan API (ryanofsky)
|
||||
- #10400 `1680ee0` [RPC] Add an uptime command that displays the amount of time (in seconds) bitcoind has been running (rvelhote)
|
||||
- #10683 `d81bec7` rpc: Move the `generate` RPC call to rpcwallet (laanwj)
|
||||
- #10710 `30bc0f6` REST/RPC example update (Mirobit)
|
||||
- #10747 `9edda0c` [rpc] fix verbose argument for getblock in bitcoin-cli (jnewbery)
|
||||
- #10589 `104f5f2` More economical fee estimates for RBF and RPC options to control (morcos)
|
||||
- #10543 `b27b004` Change API to estimaterawfee (morcos)
|
||||
- #10807 `afd2fca` getbalance example covers at least 6 confirms (instagibbs)
|
||||
- #10707 `75b5643` Better API for estimatesmartfee RPC (morcos)
|
||||
- #10784 `9e8d6a3` Do not allow users to get keys from keypool without reserving them (TheBlueMatt)
|
||||
- #10857 `d445a2c` [RPC] Add a deprecation warning to getinfo's output (achow101)
|
||||
- #10571 `adf170d` [RPC]Move transaction combining from signrawtransaction to new RPC (achow101)
|
||||
- #10783 `041dad9` [RPC] Various rpc argument fixes (instagibbs)
|
||||
- #9622 `6ef3c7e` [rpc] listsinceblock should include lost transactions when parameter is a reorg'd block (kallewoof)
|
||||
- #10799 `8537187` Prevent user from specifying conflicting parameters to fundrawtx (TheBlueMatt)
|
||||
- #10931 `0b11a07` Fix misleading "Method not found" multiwallet errors (ryanofsky)
|
||||
- #10788 `f66c596` [RPC] Fix addwitnessaddress by replacing ismine with producesignature (achow101)
|
||||
- #10999 `627c3c0` Fix amounts formatting in `decoderawtransaction` (laanwj)
|
||||
- #11002 `4268426` [wallet] return correct error code from resendwallettransaction (jnewbery)
|
||||
- #11029 `96a63a3` [RPC] trivial: gettxout no longer shows version of tx (FelixWeis)
|
||||
- #11083 `6c2b008` Fix combinerawtransaction RPC help result section (jonasnick)
|
||||
- #11027 `07164bb` [RPC] Only return hex field once in getrawtransaction (achow101)
|
||||
- #10698 `5af6572` Be consistent in calling transactions "replaceable" for Opt-In RBF (TheBlueMatt)
|
||||
|
||||
### Block and transaction handling
|
||||
- #9801 `a8c5751` Removed redundant parameter from mempool.PrioritiseTransaction (gubatron)
|
||||
- #9819 `1efc99c` Remove harmless read of unusued priority estimates (morcos)
|
||||
- #9822 `b7547fa` Remove block file location upgrade code (benma)
|
||||
- #9602 `30ff3a2` Remove coin age priority and free transactions - implementation (morcos)
|
||||
- #9548 `47510ad` Remove min reasonable fee (morcos)
|
||||
- #10249 `c73af54` Switch CCoinsMap from boost to std unordered_map (sipa)
|
||||
- #9966 `2a183de` Control mempool persistence using a command line parameter (jnewbery)
|
||||
- #10199 `318ea50` Better fee estimates (morcos)
|
||||
- #10196 `bee3529` Bugfix: PrioritiseTransaction updates the mempool tx counter (sdaftuar)
|
||||
- #10195 `1088b02` Switch chainstate db and cache to per-txout model (sipa)
|
||||
- #10284 `c2ab38b` Always log debug information for fee calculation in CreateTransaction (morcos)
|
||||
- #10503 `efbcf2b` Use REJECT_DUPLICATE for already known and conflicted txn (sipa)
|
||||
- #10537 `b3eb0d6` Few Minor per-utxo assert-semantics re-adds and tweak (TheBlueMatt)
|
||||
- #10626 `8c841a3` doc: Remove outdated minrelaytxfee comment (MarcoFalke)
|
||||
- #10559 `234ffc6` Change semantics of HaveCoinInCache to match HaveCoin (morcos)
|
||||
- #10581 `7878353` Simplify return values of GetCoin/HaveCoin(InCache) (sipa)
|
||||
- #10684 `a381f6a` Remove no longer used mempool.exists(outpoint) (morcos)
|
||||
- #10148 `d4e551a` Use non-atomic flushing with block replay (sipa)
|
||||
- #10685 `30c2130` Clarify CCoinsViewMemPool documentation (TheBlueMatt)
|
||||
- #10558 `90a002e` Address nits from per-utxo change (morcos)
|
||||
- #10706 `6859ad2` Improve wallet fee logic and fix GUI bugs (morcos)
|
||||
- #10526 `754aa02` Force on-the-fly compaction during pertxout upgrade (sipa)
|
||||
- #10985 `d896d5c` Add undocumented -forcecompactdb to force LevelDB compactions (sipa)
|
||||
- #10292 `e4bbd3d` Improved efficiency in COutPoint constructors (mm-s)
|
||||
- #10290 `8d6d43e` Add -stopatheight for benchmarking (sipa)
|
||||
|
||||
### P2P protocol and network code
|
||||
- #9726 `7639d38` netbase: Do not print an error on connection timeouts through proxy (laanwj)
|
||||
- #9805 `5b583ef` Add seed.btc.petertodd.org to mainnet DNS seeds (petertodd)
|
||||
- #9861 `22f609f` Trivial: Debug log ambiguity fix for peer addrs (keystrike)
|
||||
- #9774 `90cb2a2` Enable host lookups for -proxy and -onion parameters (jmcorgan)
|
||||
- #9558 `7b585cf` Clarify assumptions made about when BlockCheck is called (TheBlueMatt)
|
||||
- #10135 `e19586a` [p2p] Send the correct error code in reject messages (jnewbery)
|
||||
- #9665 `eab00d9` Use cached [compact] blocks to respond to getdata messages (TheBlueMatt)
|
||||
- #10215 `a077a90` Check interruptNet during dnsseed lookups (TheBlueMatt)
|
||||
- #10234 `faf2dea` [net] listbanned RPC and QT should show correct banned subnets (jnewbery)
|
||||
- #10134 `314ebdf` [qa] Fixes segwit block relay test after inv-direct-fetch was disabled (sdaftuar)
|
||||
- #10351 `3f57c55` removed unused code in INV message (Greg-Griffith)
|
||||
- #10061 `ae78609` [net] Added SetSocketNoDelay() utility function (tjps)
|
||||
- #10408 `28c6e8d` Net: Improvements to Tor control port parser (str4d)
|
||||
- #10460 `5c63d66` Broadcast address every day, not 9 hours (sipa)
|
||||
- #10471 `400fdd0` Denote functions CNode::GetRecvVersion() and CNode::GetRefCount() as const (pavlosantoniou)
|
||||
- #10345 `67700b3` [P2P] Timeout for headers sync (sdaftuar)
|
||||
- #10564 `8d9f45e` Return early in IsBanned (gmaxwell)
|
||||
- #10587 `de8db47` Net: Fix resource leak in ReadBinaryFile(...) (practicalswift)
|
||||
- #9549 `b33ca14` [net] Avoid possibility of NULL pointer dereference in MarkBlockAsInFlight(...) (practicalswift)
|
||||
- #10446 `2772dc9` net: avoid extra dns query per seed (theuni)
|
||||
- #10824 `9dd6a2b` Avoid unnecessary work in SetNetworkActive (promag)
|
||||
- #10948 `df3a6f4` p2p: Hardcoded seeds update pre-0.15 branch (laanwj)
|
||||
- #10977 `02f4c4a` [net] Fix use of uninitialized value in getnetworkinfo(const JSONRPCRequest&) (practicalswift)
|
||||
- #10982 `c8b62c7` Disconnect network service bits 6 and 8 until Aug 1, 2018 (TheBlueMatt)
|
||||
- #11012 `0e5cff6` Make sure to clean up mapBlockSource if we've already seen the block (theuni)
|
||||
|
||||
### Validation
|
||||
- #9725 `67023e9` CValidationInterface Cleanups (TheBlueMatt)
|
||||
- #10178 `2584925` Remove CValidationInterface::UpdatedTransaction (TheBlueMatt)
|
||||
- #10201 `a6548a4` pass Consensus::Params& to functions in validation.cpp and make them static (mariodian)
|
||||
- #10297 `431a548` Simplify DisconnectBlock arguments/return value (sipa)
|
||||
- #10464 `f94b7d5` Introduce static DoWarning (simplify UpdateTip) (jtimon)
|
||||
- #10569 `2e7d8f8` Fix stopatheight (achow101)
|
||||
- #10192 `2935b46` Cache full script execution results in addition to signatures (TheBlueMatt)
|
||||
- #10179 `21ed30a` Give CValidationInterface Support for calling notifications on the CScheduler Thread (TheBlueMatt)
|
||||
- #10557 `66270a4` Make check to distinguish between orphan txs and old txs more efficient (morcos)
|
||||
- #10775 `7c2400c` nCheckDepth chain height fix (romanornr)
|
||||
- #10821 `16240f4` Add SSE4 optimized SHA256 (sipa)
|
||||
- #10854 `04d395e` Avoid using sizes on non-fixed-width types to derive protocol constants (gmaxwell)
|
||||
- #10945 `2a50b11` Update defaultAssumeValid according to release-process.md (gmaxwell)
|
||||
- #10986 `2361208` Update chain transaction statistics (sipa)
|
||||
- #11028 `6bdf4b3` Avoid masking of difficulty adjustment errors by checkpoints (sipa)
|
||||
- #9533 `cb598cf` Allow non-power-of-2 signature cache sizes (sipa)
|
||||
- #9208 `acd9957` Improve DisconnectTip performance (sdaftuar)
|
||||
- #10618 `f90603a` Remove confusing MAX_BLOCK_BASE_SIZE (gmaxwell)
|
||||
- #10758 `bd92424` Fix some chainstate-init-order bugs (TheBlueMatt)
|
||||
- #10550 `b7296bc` Don't return stale data from CCoinsViewCache::Cursor() (ryanofsky)
|
||||
- #10998 `2507fd5` Fix upgrade cancel warnings (TheBlueMatt)
|
||||
- #9868 `cbdb473` Abstract out the command line options for block assembly (sipa)
|
||||
|
||||
### Build system
|
||||
- #9727 `5f0556d` Remove fallbacks for boost_filesystem < v3 (laanwj)
|
||||
- #9788 `50a2265` gitian: bump descriptors for master (theuni)
|
||||
- #9794 `7ca2f54` Minor update to qrencode package builder (mitchellcash)
|
||||
- #9514 `2cc0df1` release: Windows signing script (theuni)
|
||||
- #9921 `8b789d8` build: Probe MSG_DONTWAIT in the same way as MSG_NOSIGNAL (laanwj)
|
||||
- #10011 `32d1b34` build: Fix typo s/HAVE_DONTWAIT/HAVE_MSG_DONTWAIT (laanwj)
|
||||
- #9946 `90dd9e6` Fix build errors if spaces in path or parent directory (pinheadmz)
|
||||
- #10136 `81da4c7` build: Disable Wshadow warning (laanwj)
|
||||
- #10166 `64962ae` Ignore Doxyfile generated from Doxyfile.in template (paveljanik)
|
||||
- #10239 `0416ea9` Make Boost use std::atomic internally (sipa)
|
||||
- #10228 `27faa6c` build: regenerate bitcoin-config.h as necessary (theuni)
|
||||
- #10273 `8979f45` [scripts] Minor improvements to `macdeployqtplus` script (chrisgavin)
|
||||
- #10325 `a26280b` 0.15.0 Depends Updates (fanquake)
|
||||
- #10328 `79aeff6` Update contrib/debian to latest Ubuntu PPA upload (TheBlueMatt)
|
||||
- #7522 `d25449f` Bugfix: Only use git for build info if the repository is actually the right one (luke-jr)
|
||||
- #10489 `e654d61` build: silence gcc7's implicit fallthrough warning (theuni)
|
||||
- #10549 `ad1a13e` Avoid printing generic and duplicated "checking for QT" during ./configure (drizzt)
|
||||
- #10628 `8465b68` [depends] expat 2.2.1 (fanquake)
|
||||
- #10806 `db825d2` build: verify that the assembler can handle crc32 functions (theuni)
|
||||
- #10766 `b4d03be` Building Environment: Set ARFLAGS to cr (ReneNyffenegger)
|
||||
- #10803 `91edda8` Explicitly search for bdb5.3 (pstratem)
|
||||
- #10855 `81560b0` random: only use getentropy on openbsd (theuni)
|
||||
- #10508 `1caafa6` Run Qt wallet tests on travis (ryanofsky)
|
||||
- #10851 `e222618` depends: fix fontconfig with newer glibc (theuni)
|
||||
- #10971 `88b1e4b` build: fix missing sse42 in depends builds (theuni)
|
||||
- #11097 `129b03f` gitian: quick hack to fix version string in releases (theuni)
|
||||
- #10039 `919aaf6` Fix compile errors with Qt 5.3.2 and Boost 1.55.0 (ryanofsky)
|
||||
- #10168 `7032021` Fix build warning from #error text (jnewbery)
|
||||
- #10301 `318392c` Check if sys/random.h is required for getentropy (jameshilliard)
|
||||
|
||||
### GUI
|
||||
- #9724 `1a9fd5c` Qt/Intro: Add explanation of IBD process (luke-jr)
|
||||
- #9834 `b00ba62` qt: clean up initialize/shutdown signals (benma)
|
||||
- #9481 `ce01e62` [Qt] Show more significant warning if we fall back to the default fee (jonasschnelli)
|
||||
- #9974 `b9f930b` Add basic Qt wallet test (ryanofsky)
|
||||
- #9690 `a387d3a` Change 'Clear' button string to 'Reset' (da2x)
|
||||
- #9592 `9c7b7cf` [Qt] Add checkbox in the GUI to opt-in to RBF when creating a transaction (ryanofsky)
|
||||
- #10098 `2b477e6` Make qt wallet test compatible with qt4 (ryanofsky)
|
||||
- #9890 `1fa4ae6` Add a button to open the config file in a text editor (ericshawlinux)
|
||||
- #10156 `51833a1` Fix for issues with startup and multiple monitors on windows (AllanDoensen)
|
||||
- #10177 `de01da7` Changed "Send" button default status from true to false (KibbledJiveElkZoo)
|
||||
- #10221 `e96486c` Stop treating coinbase outputs differently in GUI: show them at 1conf (TheBlueMatt)
|
||||
- #10231 `987a6c0` [Qt] Reduce a significant cs_main lock freeze (jonasschnelli)
|
||||
- #10242 `f6f3b58` [qt] Don't call method on null WalletModel object (ryanofsky)
|
||||
- #10093 `a3e756b` [Qt] Don't add arguments of sensitive command to console window (jonasschnelli)
|
||||
- #10362 `95546c8` [GUI] Add OSX keystroke to RPCConsole info (spencerlievens)
|
||||
- #9697 `962cd3f` [Qt] simple fee bumper with user verification (jonasschnelli)
|
||||
- #10390 `e477516` [wallet] remove minimum total fee option (instagibbs)
|
||||
- #10420 `4314544` Add Qt tests for wallet spends & bumpfee (ryanofsky)
|
||||
- #10454 `c1c9a95` Fix broken q4 test build (ryanofsky)
|
||||
- #10449 `64beb13` Overhaul Qt fee bumper (jonasschnelli)
|
||||
- #10582 `7c72fb9` Pass in smart fee slider value to coin control dialog (morcos)
|
||||
- #10673 `4c72cc3` [qt] Avoid potential null pointer dereference in TransactionView::exportClicked() (practicalswift)
|
||||
- #10769 `8fdd23a` [Qt] replace fee slider with a Dropdown, extend conf. targets (jonasschnelli)
|
||||
- #10870 `412b466` [Qt] Use wallet 0 in rpc console if running with multiple wallets (jonasschnelli)
|
||||
- #10988 `a9dd111` qt: Increase BLOCK_CHAIN_SIZE constants (laanwj)
|
||||
- #10644 `e292140` Slightly overhaul NSI pixmaps (jonasschnelli)
|
||||
- #10660 `0c3542e` Allow to cancel the txdb upgrade via splashscreen keypress 'q' (jonasschnelli)
|
||||
|
||||
### Wallet
|
||||
- #9359 `f7ec7cf` Add test for CWalletTx::GetImmatureCredit() returning stale values (ryanofsky)
|
||||
- #9576 `56ab672` [wallet] Remove redundant initialization (practicalswift)
|
||||
- #9333 `fa625b0` Document CWalletTx::mapValue entries and remove erase of nonexistent "version" entry (ryanofsky)
|
||||
- #9906 `72fb515` Disallow copy constructor CReserveKeys (instagibbs)
|
||||
- #9369 `3178b2c` Factor out CWallet::nTimeSmart computation into a method (ryanofsky)
|
||||
- #9830 `afcd7c0` Add safe flag to listunspent result (NicolasDorier)
|
||||
- #9993 `c49355c` Initialize nRelockTime (pstratem)
|
||||
- #9818 `3d857f3` Save watch only key timestamps when reimporting keys (ryanofsky)
|
||||
- #9294 `f34cdcb` Use internal HD chain for change outputs (hd split) (jonasschnelli)
|
||||
- #10164 `e183ea2` Wallet: reduce excess logic InMempool() (kewde)
|
||||
- #10186 `c9ff4f8` Remove SYNC_TRANSACTION_NOT_IN_BLOCK magic number (jnewbery)
|
||||
- #10226 `64c45aa` wallet: Use boost to more portably ensure -wallet specifies only a filename (luke-jr)
|
||||
- #9827 `c91ca0a` Improve ScanForWalletTransactions return value (ryanofsky)
|
||||
- #9951 `fa1ac28` Wallet database handling abstractions/simplifications (laanwj)
|
||||
- #10265 `c29a0d4` [wallet] [moveonly] Check non-null pindex before potentially referencing (kallewoof)
|
||||
- #10283 `a550f6e` Cleanup: reduce to one GetMinimumFee call signature (morcos)
|
||||
- #10294 `e2b99b1` [Wallet] unset change position when there is no change (instagibbs)
|
||||
- #10115 `d3dce0e` Avoid reading the old hd master key during wallet encryption (TheBlueMatt)
|
||||
- #10341 `18c9deb` rpc/wallet: Workaround older UniValue which returns a std::string temporary for get_str (luke-jr)
|
||||
- #10308 `94e5227` [wallet] Securely erase potentially sensitive keys/values (tjps)
|
||||
- #10257 `ea1fd43` [test] Add test for getmemoryinfo (jimmysong)
|
||||
- #10295 `ce8176d` [qt] Move some WalletModel functions into CWallet (ryanofsky)
|
||||
- #10506 `7cc2c67` Fix bumpfee test after #10449 (ryanofsky)
|
||||
- #10500 `098b01d` Avoid CWalletTx copies in GetAddressBalances and GetAddressGroupings (ryanofsky)
|
||||
- #10455 `0747d33` Simplify feebumper minimum fee code slightly (ryanofsky)
|
||||
- #10522 `2805d60` [wallet] Remove unused variables (practicalswift)
|
||||
- #8694 `177433a` Basic multiwallet support (luke-jr)
|
||||
- #10598 `7a74f88` Supress struct/class mismatch warnings introduced in #10284 (paveljanik)
|
||||
- #9343 `209eef6` Don't create change at dust limit (morcos)
|
||||
- #10744 `ed88e31` Use method name via __func__ macro (darksh1ne)
|
||||
- #10712 `e8b9523` Add change output if necessary to reduce excess fee (morcos)
|
||||
- #10816 `1c011ff` Properly forbid -salvagewallet and -zapwallettxes for multi wallet (morcos)
|
||||
- #10235 `5cfdda2` Track keypool entries as internal vs external in memory (TheBlueMatt)
|
||||
- #10330 `bf0a08b` [wallet] fix zapwallettxes interaction with persistent mempool (jnewbery)
|
||||
- #10831 `0b01935` Batch flushing operations to the walletdb during top up and increase keypool size (gmaxwell)
|
||||
- #10795 `7b6e8bc` No longer ever reuse keypool indexes (TheBlueMatt)
|
||||
- #10849 `bde4f93` Multiwallet: simplest endpoint support (jonasschnelli)
|
||||
- #10817 `9022aa3` Redefine Dust and add a discard_rate (morcos)
|
||||
- #10883 `bf3b742` Rename -usewallet to -rpcwallet (morcos)
|
||||
- #10604 `420238d` [wallet] [tests] Add listwallets RPC, include wallet name in `getwalletinfo` and add multiwallet test (jnewbery)
|
||||
- #10885 `70888a3` Reject invalid wallets (promag)
|
||||
- #10949 `af56397` Clarify help message for -discardfee (morcos)
|
||||
- #10942 `2e857bb` Eliminate fee overpaying edge case when subtracting fee from recipients (morcos)
|
||||
- #10995 `fa64636` Fix resendwallettransactions assert failure if -walletbroadcast=0 (TheBlueMatt)
|
||||
- #11022 `653a46d` Basic keypool topup (jnewbery)
|
||||
- #11081 `9fe1f6b` Add length check for CExtKey deserialization (jonasschnelli, guidovranken)
|
||||
- #11044 `4ef8374` [wallet] Keypool topup cleanups (jnewbery)
|
||||
- #11145 `e51bb71` Fix rounding bug in calculation of minimum change (morcos)
|
||||
- #9605 `779f2f9` Use CScheduler for wallet flushing, remove ThreadFlushWalletDB (TheBlueMatt)
|
||||
- #10108 `4e3efd4` ApproximateBestSubset should take inputs by reference, not value (RHavar)
|
||||
|
||||
### Tests and QA
|
||||
- #9744 `8efd1c8` Remove unused module from rpc-tests (34ro)
|
||||
- #9657 `7ff4a53` Improve rpc-tests.py (jnewbery)
|
||||
- #9766 `7146d96` Add --exclude option to rpc-tests.py (jnewbery)
|
||||
- #9577 `d6064a8` Fix docstrings in qa tests (jnewbery)
|
||||
- #9823 `a13a417` qa: Set correct path for binaries in rpc tests (MarcoFalke)
|
||||
- #9847 `6206252` Extra test vector for BIP32 (sipa)
|
||||
- #9350 `88c2ae3` [Trivial] Adding label for amount inside of tx_valid/tx_invalid.json (Christewart)
|
||||
- #9888 `36afd4d` travis: Verify commits only for one target (MarcoFalke)
|
||||
- #9904 `58861ad` test: Fail if InitBlockIndex fails (laanwj)
|
||||
- #9828 `67c5cc1` Avoid -Wshadow warnings in wallet_tests (ryanofsky)
|
||||
- #9832 `48c3429` [qa] assert_start_raises_init_error (NicolasDorier)
|
||||
- #9739 `9d5fcbf` Fix BIP68 activation test (jnewbery)
|
||||
- #9547 `d32581c` bench: Assert that division by zero is unreachable (practicalswift)
|
||||
- #9843 `c78adbf` Fix segwit getblocktemplate test (jnewbery)
|
||||
- #9929 `d5ce14e` tests: Delete unused function _rpchost_to_args (laanwj)
|
||||
- #9555 `19be26a` [test] Avoid reading a potentially uninitialized variable in tx_invalid-test (transaction_tests.cpp) (practicalswift)
|
||||
- #9945 `ac23a7c` Improve logging in bctest.py if there is a formatting mismatch (jnewbery)
|
||||
- #9768 `8910b47` [qa] Add logging to test_framework.py (jnewbery)
|
||||
- #9972 `21833f9` Fix extended rpc tests broken by #9768 (jnewbery)
|
||||
- #9977 `857d1e1` QA: getblocktemplate_longpoll.py should always use >0 fee tx (sdaftuar)
|
||||
- #9970 `3cc13ea` Improve readability of segwit.py, smartfees.py (sdaftuar)
|
||||
- #9497 `2c781fb` CCheckQueue Unit Tests (JeremyRubin)
|
||||
- #10024 `9225de2` [trivial] Use log.info() instead of print() in remaining functional test cases (jnewbery)
|
||||
- #9956 `3192e52` Reorganise qa directory (jnewbery)
|
||||
- #10017 `02d64bd` combine_logs.py - aggregates log files from multiple bitcoinds during functional tests (jnewbery)
|
||||
- #10047 `dfef6b6` [tests] Remove unused variables and imports (practicalswift)
|
||||
- #9701 `a230b05` Make bumpfee tests less fragile (ryanofsky)
|
||||
- #10053 `ca20923` [test] Allow functional test cases to be skipped (jnewbery)
|
||||
- #10052 `a0b1e57` [test] Run extended tests once daily in Travis (jnewbery)
|
||||
- #10069 `1118493` [QA] Fix typo in fundrawtransaction test (NicolasDorier)
|
||||
- #10083 `c044f03` [QA] Renaming rawTx into rawtx (NicolasDorier)
|
||||
- #10073 `b1a4f27` Actually run assumevalid.py (jnewbery)
|
||||
- #9780 `c412fd8` Suppress noisy output from qa tests in Travis (jnewbery)
|
||||
- #10096 `79af9fb` Check that all test scripts in test/functional are being run (jnewbery)
|
||||
- #10076 `5b029aa` [qa] combine_logs: Use ordered list for logfiles (MarcoFalke)
|
||||
- #10107 `f2734c2` Remove unused variable. Remove accidental trailing semicolons in Python code (practicalswift)
|
||||
- #10109 `8ac8041` Remove SingleNodeConnCB (jnewbery)
|
||||
- #10114 `edc62c9` [tests] sync_with_ping should assert that ping hasn't timed out (jnewbery)
|
||||
- #10128 `427d2fd` Speed Up CuckooCache tests (JeremyRubin)
|
||||
- #10072 `12af74b` Remove sources of unreliablility in extended functional tests (jnewbery)
|
||||
- #10077 `ebfd653` [qa] Add setnetworkactive smoke test (MarcoFalke)
|
||||
- #10152 `080d7c7` [trivial] remove unused line in Travis config (jnewbery)
|
||||
- #10159 `df1ca9e` [tests] color test results and sort alphabetically (jnewbery)
|
||||
- #10124 `88799ea` [test] Suppress test logging spam (jnewbery)
|
||||
- #10142 `ed09dd3` Run bitcoin_test-qt under minimal QPA platform (ryanofsky)
|
||||
- #9949 `a27dbc5` [bench] Avoid function call arguments which are pointers to uninitialized values (practicalswift)
|
||||
- #10187 `b44adf9` tests: Fix test_runner return value in case of skipped test (laanwj)
|
||||
- #10197 `d86bb07` [tests] Functional test warnings (jnewbery)
|
||||
- #10219 `9111df9` Tests: Order Python Tests Differently (jimmysong)
|
||||
- #10229 `f3db4c6` Tests: Add test for getdifficulty (jimmysong)
|
||||
- #10224 `2723bcd` [test] Add test for getaddednodeinfo (jimmysong)
|
||||
- #10023 `c530c15` [tests] remove maxblocksinflight.py (functionality covered by other test) (jnewbery)
|
||||
- #10097 `1b25b6d` Move zmq test skipping logic into individual test case (jnewbery)
|
||||
- #10272 `54e2d87` [Tests] Prevent warning: variable 'x' is uninitialized (paveljanik)
|
||||
- #10225 `e0a7e19` [test] Add aborttrescan tests (kallewoof)
|
||||
- #10278 `8254a8a` [test] Add Unit Test for GetListenPort (jimmysong)
|
||||
- #10280 `47535d7` [test] Unit test amount.h/amount.cpp (jimmysong)
|
||||
- #10256 `80c3a73` [test] Add test for gettxout to wallet.py (jimmysong)
|
||||
- #10264 `492d22f` [test] Add tests for getconnectioncount, getnettotals and ping (jimmysong)
|
||||
- #10169 `8f3e384` [tests] Remove func test code duplication (jnewbery)
|
||||
- #10198 `dc8fc0c` [tests] Remove is_network_split from functional test framework (jnewbery)
|
||||
- #10255 `3c5e6c9` [test] Add test for listaddressgroupings (jimmysong)
|
||||
- #10137 `75171f0` Remove unused import. Remove accidental trailing semicolons (practicalswift)
|
||||
- #10307 `83073de` [tests] allow zmq test to be run in out-of-tree builds (jnewbery)
|
||||
- #10344 `e927483` [tests] Fix abandonconflict.py intermittency (jnewbery)
|
||||
- #10318 `170bc2c` [tests] fix wait_for_inv() (jnewbery)
|
||||
- #10171 `fff72de` [tests] Add node methods to test framework (jnewbery)
|
||||
- #10352 `23d78c4` test: Add elapsed time to RPC tracing (laanwj)
|
||||
- #10342 `6a796b2` [tests] Improve mempool_persist test (jnewbery)
|
||||
- #10287 `776ba23` [tests] Update Unit Test for addrman.h/addrman.cpp (jimmysong)
|
||||
- #10365 `7ee5236` [tests] increase timeouts in sendheaders test (jnewbery)
|
||||
- #10361 `f6241b3` qa: disablewallet: Check that wallet is really disabled (MarcoFalke)
|
||||
- #10371 `4b766fc` [tests] Clean up addrman_tests.cpp (jimmysong)
|
||||
- #10253 `87abe20` [test] Add test for getnetworkhashps (jimmysong)
|
||||
- #10376 `8bd16ee` [tests] fix disconnect_ban intermittency (jnewbery)
|
||||
- #10374 `5411997` qa: Warn when specified test is not found (MarcoFalke)
|
||||
- #10405 `0542978` tests: Correct testcase in script_tests.json for large number OP_EQUAL (laanwj)
|
||||
- #10429 `6b99daf` tests: fix spurious addrman test failure (theuni)
|
||||
- #10433 `8e57256` [tests] improve tmpdir structure (jnewbery)
|
||||
- #10415 `217b416` [tests] Speed up fuzzing by ~200x when using afl-fuzz (practicalswift)
|
||||
- #10445 `b4b057a` Add test for empty chain and reorg consistency for gettxoutsetinfo (gmaxwell)
|
||||
- #10423 `1aefc94` [tests] skipped tests should clean up after themselves (jnewbery)
|
||||
- #10359 `329fc1d` [tests] functional tests should call BitcoinTestFramework start/stop node methods (jnewbery)
|
||||
- #10514 `e103b3f` Bugfix: missing == 0 after randrange (sipa)
|
||||
- #10515 `c871f32` [test] Add test for getchaintxstats (jimmysong)
|
||||
- #10509 `bea5b00` Remove xvfb configuration from travis (ryanofsky)
|
||||
- #10535 `30853e1` [qa] fundrawtx: Fix shutdown race (MarcoFalke)
|
||||
- #9909 `300f8e7` tests: Add FindEarliestAtLeast test for edge cases (ryanofsky)
|
||||
- #10331 `75e898c` Share config between util and functional tests (jnewbery)
|
||||
- #10321 `e801084` Use FastRandomContext for all tests (sipa)
|
||||
- #10524 `6c2d81f` [tests] Remove printf(...) (practicalswift)
|
||||
- #10547 `71ab6e5` [tests] Use FastRandomContext instead of boost::random::{mt19937,uniform_int_distribution} (practicalswift)
|
||||
- #10551 `6702617` [Tests] Wallet encryption functional tests (achow101)
|
||||
- #10555 `643fa0b` [tests] various improvements to zmq_test.py (jnewbery)
|
||||
- #10533 `d083bd9` [tests] Use cookie auth instead of rpcuser and rpcpassword (achow101)
|
||||
- #10632 `c68a9a6` qa: Add stopatheight test (MarcoFalke)
|
||||
- #10636 `4bc853b` [qa] util: Check return code after closing bitcoind proc (MarcoFalke)
|
||||
- #10662 `e0a7801` Initialize randomness in benchmarks (achow101)
|
||||
- #10612 `7c87a9c` The young person's guide to the test_framework (jnewbery)
|
||||
- #10659 `acb1153` [qa] blockchain: Pass on closed connection during generate call (MarcoFalke)
|
||||
- #10690 `416af3e` [qa] Bugfix: allow overriding extra_args in ComparisonTestFramework (sdaftuar)
|
||||
- #10556 `65cc7aa` Move stop/start functions from utils.py into BitcoinTestFramework (jnewbery)
|
||||
- #10704 `dd07f47` [tests] nits in dbcrash.py (jnewbery)
|
||||
- #10743 `be82498` [test] don't run dbcrash.py on Travis (jnewbery)
|
||||
- #10761 `d3b5870` [tests] fix replace_by_fee.py (jnewbery)
|
||||
- #10759 `1d4805c` Fix multi_rpc test for hosts that dont default to utf8 (TheBlueMatt)
|
||||
- #10190 `e4f226a` [tests] mining functional tests (including regression test for submitblock) (jnewbery)
|
||||
- #10739 `1fc783f` test: Move variable `state` down where it is used (paveljanik)
|
||||
- #9980 `fee0d80` Fix mem access violation merkleblock (Christewart)
|
||||
- #10893 `0c173a1` [QA] Avoid running multiwallet.py twice (jonasschnelli)
|
||||
- #10927 `9d5e8f9` test: Make sure wallet.backup is created in temp path (laanwj)
|
||||
- #10899 `f29d5db` [test] Qt: Use _putenv_s instead of setenv on Windows builds (brianmcmichael)
|
||||
- #10912 `5c8eb79` [tests] Fix incorrect memory_cleanse(…) call in crypto_tests.cpp (practicalswift)
|
||||
- #11001 `fa8a063` [tests] Test disconnecting unsupported service bits logic (jnewbery)
|
||||
- #10695 `929fd72` [qa] Rewrite BIP65/BIP66 functional tests (sdaftuar)
|
||||
- #10963 `ecd2135` [bench] Restore format state of cout after printing with std::fixed/setprecision (practicalswift)
|
||||
- #11025 `e5d26e4` qa: Fix inv race in example_test (MarcoFalke)
|
||||
- #10765 `2c811e0` Tests: address placement should be deterministic by default (ReneNyffenegger)
|
||||
- #11000 `ac016e1` test: Add resendwallettransactions functional tests (promag)
|
||||
- #11032 `aeb3175` [qa] Fix block message processing error in sendheaders.py (sdaftuar)
|
||||
- #10105 `0b9fb68` [tests] fixup - make all Travis test runs quiet, non just cron job runs (jnewbery)
|
||||
- #10222 `6ce7337` [tests] test_runner - check unicode (jnewbery)
|
||||
- #10327 `35da2ae` [tests] remove import-abort-rescan.py (jnewbery)
|
||||
- #11023 `bf74d37` [tests] Add option to attach a python debugger if functional test fails (jnewbery)
|
||||
- #10565 `8c2098a` [coverage] Remove subtrees and benchmarks from coverage report (achow101)
|
||||
|
||||
### Miscellaneous
|
||||
- #9871 `be8ba2c` Add a tree sha512 hash to merge commits (sipa)
|
||||
- #9821 `d19d45a` util: Specific GetOSRandom for Linux/FreeBSD/OpenBSD (laanwj)
|
||||
- #9903 `ba80a68` Docs: add details to -rpcclienttimeout doc (ian-kelling)
|
||||
- #9910 `53c300f` Docs: correct and elaborate -rpcbind doc (ian-kelling)
|
||||
- #9905 `01b7cda` [contrib] gh-merge: Move second sha512 check to the end (MarcoFalke)
|
||||
- #9880 `4df8213` Verify Tree-SHA512s in merge commits, enforce sigs are not SHA1 (TheBlueMatt)
|
||||
- #9932 `00c13ea` Fix verify-commits on travis and always check top commit's tree (TheBlueMatt)
|
||||
- #9952 `6996e06` Add historical release notes for 0.14.0 (laanwj)
|
||||
- #9940 `fa99663` Fix verify-commits on OSX, update for new bad Tree-SHA512, point travis to different keyservers (TheBlueMatt)
|
||||
- #9963 `8040ae6` util: Properly handle errors during log message formatting (laanwj)
|
||||
- #9984 `cce056d` devtools: Make github-merge compute SHA512 from git, instead of worktree (laanwj)
|
||||
- #9995 `8bcf934` [doc] clarify blockchain size and pruning (askmike)
|
||||
- #9734 `0c17afc` Add updating of chainTxData to release process (sipa)
|
||||
- #10063 `530fcbd` add missing spaces so that markdown recognizes headline (flack)
|
||||
- #10085 `db1ae54` Docs: remove 'noconnect' option (jlopp)
|
||||
- #10090 `8e4f7e7` Update bitcoin.conf with example for pruning (coinables)
|
||||
- #9424 `1a5aaab` Change LogAcceptCategory to use uint32_t rather than sets of strings (gmaxwell)
|
||||
- #10036 `fbf36ca` Fix init README format to render correctly on github (jlopp)
|
||||
- #10058 `a2cd0b0` No need to use OpenSSL malloc/free (tjps)
|
||||
- #10123 `471ed00` Allow debug logs to be excluded from specified component (jnewbery)
|
||||
- #10104 `fadf078` linearize script: Option to use RPC cookie (achow101)
|
||||
- #10162 `a3a2160` [trivial] Log calls to getblocktemplate (jnewbery)
|
||||
- #10155 `928695b` build: Deduplicate version numbers (laanwj)
|
||||
- #10211 `a86255b` [doc] Contributor fixes & new "finding reviewers" section (kallewoof)
|
||||
- #10250 `1428f30` Fix some empty vector references (sipa)
|
||||
- #10270 `95f5e44` Remove Clang workaround for Boost 1.46 (fanquake)
|
||||
- #10263 `cb007e4` Trivial: fix fee estimate write error log message (CryptAxe)
|
||||
- #9670 `bd9ec0e` contrib: github-merge improvements (laanwj)
|
||||
- #10260 `1d75597` [doc] Minor corrections to osx dependencies (fanquake)
|
||||
- #10189 `750c5a5` devtools/net: add a verifier for scriptable changes. Use it to make CNode::id private (theuni)
|
||||
- #10322 `bc64b5a` Use hardware timestamps in RNG seeding (sipa)
|
||||
- #10381 `7f2b9e0` Shadowing warnings are not enabled by default, update doc accordingly (paveljanik)
|
||||
- #10380 `b6ee855` [doc] Removing comments about dirty entries on txmempool (madeo)
|
||||
- #10383 `d0c37ee` [logging] log system time and mock time (jnewbery)
|
||||
- #10404 `b45a52a` doc: Add logging to FinalizeNode() (sdaftuar)
|
||||
- #10388 `526e839` Output line to debug.log when IsInitialBlockDownload latches to false (morcos)
|
||||
- #10372 `15254e9` Add perf counter data to GetStrongRandBytes state in scheduler (TheBlueMatt)
|
||||
- #10461 `55b72f3` Update style guide (sipa)
|
||||
- #10486 `10e8c0a` devtools: Retry after signing fails in github-merge (laanwj)
|
||||
- #10447 `f259263` Make bitcoind invalid argument error message specific (laanwj)
|
||||
- #10495 `6a38b79` contrib: Update location of seeds.txt (laanwj)
|
||||
- #10469 `b6b150b` Fixing typo in rpcdump.cpp help message (keystrike)
|
||||
- #10451 `27b9931` contrib/init/bitcoind.openrcconf: Don't disable wallet by default (luke-jr)
|
||||
- #10323 `00d3692` Update to latest libsecp256k1 master (sipa)
|
||||
- #10422 `cec9e1e` Fix timestamp in fee estimate debug message (morcos)
|
||||
- #10566 `5d034ee` [docs] Use the "domain name setup" image (previously unused) in the gitian docs (practicalswift)
|
||||
- #10534 `a514ac3` Clarify prevector::erase and avoid swap-to-clear (sipa)
|
||||
- #10575 `22ec768` Header include guideline (sipa)
|
||||
- #10480 `fbf5d3b` Improve commit-check-script.sh (sipa)
|
||||
- #10502 `1ad3d4e` scripted-diff: Remove BOOST_FOREACH, Q_FOREACH and PAIRTYPE (jtimon)
|
||||
- #10377 `b63be2c` Use rdrand as entropy source on supported platforms (sipa)
|
||||
- #9895 `228c319` Turn TryCreateDirectory() into TryCreateDirectories() (benma)
|
||||
- #10602 `d76e84a` Make clang-format use C++11 features (e.g. A<A<int>> instead of A<A<int> >) (practicalswift)
|
||||
- #10623 `c38f540` doc: Add 0.14.2 release notes (MarcoFalke)
|
||||
- #10276 `b750b33` contrib/verifybinaries: allow filtering by platform (knocte)
|
||||
- #10248 `01c4b14` Rewrite addrdb with less duplication using CHashVerifier (sipa)
|
||||
- #10577 `232508f` Add an explanation of quickly hashing onto a non-power of two range (gmaxwell)
|
||||
- #10608 `eee398f` Add a comment explaining the use of MAX_BLOCK_BASE_SIZE (gmaxwell)
|
||||
- #10728 `7397af9` fix typo in help text for removeprunedfunds (AkioNak)
|
||||
- #10193 `6dbcc74` scripted-diff: Remove #include <boost/foreach.hpp> (jtimon)
|
||||
- #10676 `379aed0` document script-based return fields for validateaddress (instagibbs)
|
||||
- #10651 `cef4b5c` Verify binaries from bitcoincore.org and bitcoin.org (TheBlueMatt)
|
||||
- #10786 `ca4c545` Add PR description to merge commit in github-merge.py (sipa)
|
||||
- #10812 `c5904e8` [utils] Allow bitcoin-cli's -rpcconnect option to be used with square brackets (jnewbery)
|
||||
- #10842 `3895e25` Fix incorrect Doxygen tag (@ince → @since). Doxygen parameter name matching (practicalswift)
|
||||
- #10681 `df0793f` add gdb attach process to test README (instagibbs)
|
||||
- #10789 `1124328` Punctuation/grammer fixes in rpcwallet.cpp (stevendlander)
|
||||
- #10655 `78f307b` Properly document target_confirmations in listsinceblock (RHavar)
|
||||
- #10917 `5c003cb` developer-notes: add reference to snake_case and PascalCase (benma)
|
||||
- #11003 `4b5a7ce` Docs: Capitalize bullet points in CONTRIBUTING guide (eklitzke)
|
||||
- #10968 `98aa3f6` Add instructions for parallel gitian builds (coblee)
|
||||
- #11076 `1c4b9b3` 0.15 release-notes nits: fix redundancy, remove accidental parenthesis & fix range style (practicalswift)
|
||||
- #11090 `8f0121c` Update contributor names in release-notes.md (Derek701)
|
||||
- #11056 `cbdd338` disable jni in builds (instagibbs)
|
||||
- #11080 `2b59cfb` doc: Update build-openbsd for 6.1 (laanwj)
|
||||
- #11119 `0a6af47` [doc] build-windows: Mention that only trusty works (MarcoFalke)
|
||||
- #11108 `e8ad101` Changing -txindex requires -reindex, not -reindex-chainstate (TheBlueMatt)
|
||||
- #9792 `342b9bc` FastRandomContext improvements and switch to ChaCha20 (sipa)
|
||||
- #9505 `67ed40e` Prevector Quick Destruct (JeremyRubin)
|
||||
- #10820 `ef37f20` Use cpuid intrinsics instead of asm code (sipa)
|
||||
- #9999 `a328904` [LevelDB] Plug leveldb logs to bitcoin logs (NicolasDorier)
|
||||
- #9693 `c5e9e42` Prevent integer overflow in ReadVarInt (gmaxwell)
|
||||
- #10129 `351d0ad` scheduler: fix sub-second precision with boost < 1.50 (theuni)
|
||||
- #10153 `fade788` logging: Fix off-by-one for shrinkdebugfile default (MarcoFalke)
|
||||
- #10305 `c45da32` Fix potential NPD introduced in b297426c (TheBlueMatt)
|
||||
- #10338 `daf3e7d` Maintain state across GetStrongRandBytes calls (sipa)
|
||||
- #10544 `a4fe077` Update to LevelDB 1.20 (sipa)
|
||||
- #10614 `cafe24f` random: fix crash on some 64bit platforms (theuni)
|
||||
- #10714 `2a09a38` Avoid printing incorrect block indexing time due to uninitialized variable (practicalswift)
|
||||
- #10837 `8bc6d1f` Fix resource leak on error in GetDevURandom (corebob)
|
||||
- #10832 `89bb036` init: Factor out AppInitLockDataDirectory and fix startup core dump issue (laanwj)
|
||||
- #10914 `b995a37` Add missing lock in CScheduler::AreThreadsServicingQueue() (TheBlueMatt)
|
||||
- #10958 `659c096` Update to latest Bitcoin patches for LevelDB (sipa)
|
||||
- #10919 `c1c671f` Fix more init bugs (TheBlueMatt)
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
Thanks to everyone who directly contributed to this release:
|
||||
|
||||
- ロハン ダル
|
||||
- Ahmad Kazi
|
||||
- aideca
|
||||
- Akio Nakamura
|
||||
- Alex Morcos
|
||||
- Allan Doensen
|
||||
- Andres G. Aragoneses
|
||||
- Andrew Chow
|
||||
- Angel Leon
|
||||
- Awemany
|
||||
- Bob McElrath
|
||||
- Brian McMichael
|
||||
- BtcDrak
|
||||
- Charlie Lee
|
||||
- Chris Gavin
|
||||
- Chris Stewart
|
||||
- Cory Fields
|
||||
- CryptAxe
|
||||
- Dag Robole
|
||||
- Daniel Aleksandersen
|
||||
- Daniel Cousens
|
||||
- darksh1ne
|
||||
- Dimitris Tsapakidis
|
||||
- Eric Shaw
|
||||
- Evan Klitzke
|
||||
- fanquake
|
||||
- Felix Weis
|
||||
- flack
|
||||
- Guido Vranken
|
||||
- Greg Griffith
|
||||
- Gregory Maxwell
|
||||
- Gregory Sanders
|
||||
- Ian Kelling
|
||||
- Jack Grigg
|
||||
- James Evans
|
||||
- James Hilliard
|
||||
- Jameson Lopp
|
||||
- Jeremy Rubin
|
||||
- Jimmy Song
|
||||
- João Barbosa
|
||||
- Johnathan Corgan
|
||||
- John Newbery
|
||||
- Jonas Schnelli
|
||||
- Jorge Timón
|
||||
- Karl-Johan Alm
|
||||
- kewde
|
||||
- KibbledJiveElkZoo
|
||||
- Kirit Thadaka
|
||||
- kobake
|
||||
- Kyle Honeycutt
|
||||
- Lawrence Nahum
|
||||
- Luke Dashjr
|
||||
- Marco Falke
|
||||
- Marcos Mayorga
|
||||
- Marijn Stollenga
|
||||
- Mario Dian
|
||||
- Mark Friedenbach
|
||||
- Marko Bencun
|
||||
- Masahiko Hyuga
|
||||
- Matt Corallo
|
||||
- Matthew Zipkin
|
||||
- Matthias Grundmann
|
||||
- Michael Goldstein
|
||||
- Michael Rotarius
|
||||
- Mikerah
|
||||
- Mike van Rossum
|
||||
- Mitchell Cash
|
||||
- Nicolas Dorier
|
||||
- Patrick Strateman
|
||||
- Pavel Janík
|
||||
- Pavlos Antoniou
|
||||
- Pavol Rusnak
|
||||
- Pedro Branco
|
||||
- Peter Todd
|
||||
- Pieter Wuille
|
||||
- practicalswift
|
||||
- René Nyffenegger
|
||||
- Ricardo Velhote
|
||||
- romanornr
|
||||
- Russell Yanofsky
|
||||
- Rusty Russell
|
||||
- Ryan Havar
|
||||
- shaolinfry
|
||||
- Shigeya Suzuki
|
||||
- Simone Madeo
|
||||
- Spencer Lievens
|
||||
- Steven D. Lander
|
||||
- Suhas Daftuar
|
||||
- Takashi Mitsuta
|
||||
- Thomas Snider
|
||||
- Timothy Redaelli
|
||||
- tintinweb
|
||||
- tnaka
|
||||
- Warren Togami
|
||||
- Wladimir J. van der Laan
|
||||
|
||||
As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/).
|
||||
@@ -13,18 +13,24 @@ QT_TS = \
|
||||
qt/locale/bitcoin_be_BY.ts \
|
||||
qt/locale/bitcoin_bg_BG.ts \
|
||||
qt/locale/bitcoin_bg.ts \
|
||||
qt/locale/bitcoin_bn.ts \
|
||||
qt/locale/bitcoin_bs.ts \
|
||||
qt/locale/bitcoin_ca_ES.ts \
|
||||
qt/locale/bitcoin_ca.ts \
|
||||
qt/locale/bitcoin_ca@valencia.ts \
|
||||
qt/locale/bitcoin_cs.ts \
|
||||
qt/locale/bitcoin_cy.ts \
|
||||
qt/locale/bitcoin_da.ts \
|
||||
qt/locale/bitcoin_de_DE.ts \
|
||||
qt/locale/bitcoin_de.ts \
|
||||
qt/locale/bitcoin_el_GR.ts \
|
||||
qt/locale/bitcoin_el.ts \
|
||||
qt/locale/bitcoin_en_AU.ts \
|
||||
qt/locale/bitcoin_en_GB.ts \
|
||||
qt/locale/bitcoin_en.ts \
|
||||
qt/locale/bitcoin_en_US.ts \
|
||||
qt/locale/bitcoin_eo.ts \
|
||||
qt/locale/bitcoin_es_419.ts \
|
||||
qt/locale/bitcoin_es_AR.ts \
|
||||
qt/locale/bitcoin_es_CL.ts \
|
||||
qt/locale/bitcoin_es_CO.ts \
|
||||
@@ -44,13 +50,16 @@ QT_TS = \
|
||||
qt/locale/bitcoin_fr_FR.ts \
|
||||
qt/locale/bitcoin_fr.ts \
|
||||
qt/locale/bitcoin_gl.ts \
|
||||
qt/locale/bitcoin_he_IL.ts \
|
||||
qt/locale/bitcoin_he.ts \
|
||||
qt/locale/bitcoin_hi_IN.ts \
|
||||
qt/locale/bitcoin_hr.ts \
|
||||
qt/locale/bitcoin_hu.ts \
|
||||
qt/locale/bitcoin_id_ID.ts \
|
||||
qt/locale/bitcoin_id.ts \
|
||||
qt/locale/bitcoin_it_IT.ts \
|
||||
qt/locale/bitcoin_it.ts \
|
||||
qt/locale/bitcoin_ja_JP.ts \
|
||||
qt/locale/bitcoin_ja.ts \
|
||||
qt/locale/bitcoin_ka.ts \
|
||||
qt/locale/bitcoin_kk_KZ.ts \
|
||||
@@ -63,8 +72,11 @@ QT_TS = \
|
||||
qt/locale/bitcoin_mk_MK.ts \
|
||||
qt/locale/bitcoin_mn.ts \
|
||||
qt/locale/bitcoin_ms_MY.ts \
|
||||
qt/locale/bitcoin_my.ts \
|
||||
qt/locale/bitcoin_nb_NO.ts \
|
||||
qt/locale/bitcoin_nb.ts \
|
||||
qt/locale/bitcoin_ne.ts \
|
||||
qt/locale/bitcoin_nl_NL.ts \
|
||||
qt/locale/bitcoin_nl.ts \
|
||||
qt/locale/bitcoin_pam.ts \
|
||||
qt/locale/bitcoin_pl.ts \
|
||||
@@ -74,6 +86,7 @@ QT_TS = \
|
||||
qt/locale/bitcoin_ro.ts \
|
||||
qt/locale/bitcoin_ru_RU.ts \
|
||||
qt/locale/bitcoin_ru.ts \
|
||||
qt/locale/bitcoin_si.ts \
|
||||
qt/locale/bitcoin_sk.ts \
|
||||
qt/locale/bitcoin_sl_SI.ts \
|
||||
qt/locale/bitcoin_sq.ts \
|
||||
@@ -81,7 +94,9 @@ QT_TS = \
|
||||
qt/locale/bitcoin_sr.ts \
|
||||
qt/locale/bitcoin_sv.ts \
|
||||
qt/locale/bitcoin_ta.ts \
|
||||
qt/locale/bitcoin_te.ts \
|
||||
qt/locale/bitcoin_th_TH.ts \
|
||||
qt/locale/bitcoin_th.ts \
|
||||
qt/locale/bitcoin_tr_TR.ts \
|
||||
qt/locale/bitcoin_tr.ts \
|
||||
qt/locale/bitcoin_uk.ts \
|
||||
|
||||
@@ -25,12 +25,10 @@ TEST_QT_H = \
|
||||
qt/test/wallettests.h
|
||||
|
||||
TEST_BITCOIN_CPP = \
|
||||
test/test_bitcoin.cpp \
|
||||
test/testutil.cpp
|
||||
test/test_bitcoin.cpp
|
||||
|
||||
TEST_BITCOIN_H = \
|
||||
test/test_bitcoin.h \
|
||||
test/testutil.h
|
||||
test/test_bitcoin.h
|
||||
|
||||
qt_test_test_bitcoin_qt_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \
|
||||
$(QT_INCLUDES) $(QT_TEST_INCLUDES) $(PROTOBUF_CFLAGS)
|
||||
|
||||
@@ -65,6 +65,7 @@ BITCOIN_TESTS =\
|
||||
test/scheduler_tests.cpp \
|
||||
test/script_P2SH_tests.cpp \
|
||||
test/script_tests.cpp \
|
||||
test/script_standard_tests.cpp \
|
||||
test/scriptnum_tests.cpp \
|
||||
test/serialize_tests.cpp \
|
||||
test/sighash_tests.cpp \
|
||||
@@ -74,8 +75,6 @@ BITCOIN_TESTS =\
|
||||
test/test_bitcoin.cpp \
|
||||
test/test_bitcoin.h \
|
||||
test/test_bitcoin_main.cpp \
|
||||
test/testutil.cpp \
|
||||
test/testutil.h \
|
||||
test/timedata_tests.cpp \
|
||||
test/torcontrol_tests.cpp \
|
||||
test/transaction_tests.cpp \
|
||||
@@ -148,7 +147,7 @@ bitcoin_test_clean : FORCE
|
||||
|
||||
check-local:
|
||||
@echo "Running test/util/bitcoin-util-test.py..."
|
||||
$(top_builddir)/test/util/bitcoin-util-test.py
|
||||
$(PYTHON) $(top_builddir)/test/util/bitcoin-util-test.py
|
||||
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C secp256k1 check
|
||||
if EMBEDDED_UNIVALUE
|
||||
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C univalue check
|
||||
|
||||
@@ -472,6 +472,8 @@ public:
|
||||
nTried = 0;
|
||||
nNew = 0;
|
||||
nLastGood = 1; //Initially at 1 so that "never" is strictly worse.
|
||||
mapInfo.clear();
|
||||
mapAddr.clear();
|
||||
}
|
||||
|
||||
CAddrMan()
|
||||
|
||||
@@ -310,6 +310,9 @@ static void MutateTxAddOutPubKey(CMutableTransaction& tx, const std::string& str
|
||||
}
|
||||
|
||||
if (bSegWit) {
|
||||
if (!pubkey.IsCompressed()) {
|
||||
throw std::runtime_error("Uncompressed pubkeys are not useable for SegWit outputs");
|
||||
}
|
||||
// Call GetScriptForWitness() to build a P2WSH scriptPubKey
|
||||
scriptPubKey = GetScriptForWitness(scriptPubKey);
|
||||
}
|
||||
@@ -377,10 +380,19 @@ static void MutateTxAddOutMultiSig(CMutableTransaction& tx, const std::string& s
|
||||
CScript scriptPubKey = GetScriptForMultisig(required, pubkeys);
|
||||
|
||||
if (bSegWit) {
|
||||
for (CPubKey& pubkey : pubkeys) {
|
||||
if (!pubkey.IsCompressed()) {
|
||||
throw std::runtime_error("Uncompressed pubkeys are not useable for SegWit outputs");
|
||||
}
|
||||
}
|
||||
// Call GetScriptForWitness() to build a P2WSH scriptPubKey
|
||||
scriptPubKey = GetScriptForWitness(scriptPubKey);
|
||||
}
|
||||
if (bScriptHash) {
|
||||
if (scriptPubKey.size() > MAX_SCRIPT_ELEMENT_SIZE) {
|
||||
throw std::runtime_error(strprintf(
|
||||
"redeemScript exceeds size limit: %d > %d", scriptPubKey.size(), MAX_SCRIPT_ELEMENT_SIZE));
|
||||
}
|
||||
// Get the address for the redeem script, then call
|
||||
// GetScriptForDestination() to construct a P2SH scriptPubKey.
|
||||
CBitcoinAddress addr(scriptPubKey);
|
||||
@@ -443,10 +455,19 @@ static void MutateTxAddOutScript(CMutableTransaction& tx, const std::string& str
|
||||
bScriptHash = (flags.find("S") != std::string::npos);
|
||||
}
|
||||
|
||||
if (scriptPubKey.size() > MAX_SCRIPT_SIZE) {
|
||||
throw std::runtime_error(strprintf(
|
||||
"script exceeds size limit: %d > %d", scriptPubKey.size(), MAX_SCRIPT_SIZE));
|
||||
}
|
||||
|
||||
if (bSegWit) {
|
||||
scriptPubKey = GetScriptForWitness(scriptPubKey);
|
||||
}
|
||||
if (bScriptHash) {
|
||||
if (scriptPubKey.size() > MAX_SCRIPT_ELEMENT_SIZE) {
|
||||
throw std::runtime_error(strprintf(
|
||||
"redeemScript exceeds size limit: %d > %d", scriptPubKey.size(), MAX_SCRIPT_ELEMENT_SIZE));
|
||||
}
|
||||
CBitcoinAddress addr(scriptPubKey);
|
||||
scriptPubKey = GetScriptForDestination(addr.Get());
|
||||
}
|
||||
|
||||
@@ -228,7 +228,6 @@ public:
|
||||
vSeeds.emplace_back("testnet-seed.bitcoin.jonasschnelli.ch", true);
|
||||
vSeeds.emplace_back("seed.tbtc.petertodd.org", true);
|
||||
vSeeds.emplace_back("testnet-seed.bluematt.me", false);
|
||||
vSeeds.emplace_back("testnet-seed.bitcoin.schildbach.de", false);
|
||||
|
||||
base58Prefixes[PUBKEY_ADDRESS] = std::vector<unsigned char>(1,111);
|
||||
base58Prefixes[SCRIPT_ADDRESS] = std::vector<unsigned char>(1,196);
|
||||
|
||||
@@ -31,6 +31,6 @@ UniValue ValueFromAmount(const CAmount& amount);
|
||||
std::string FormatScript(const CScript& script);
|
||||
std::string EncodeHexTx(const CTransaction& tx, const int serializeFlags = 0);
|
||||
void ScriptPubKeyToUniv(const CScript& scriptPubKey, UniValue& out, bool fIncludeHex);
|
||||
void TxToUniv(const CTransaction& tx, const uint256& hashBlock, UniValue& entry);
|
||||
void TxToUniv(const CTransaction& tx, const uint256& hashBlock, UniValue& entry, bool include_hex = true, int serialize_flags = 0);
|
||||
|
||||
#endif // BITCOIN_CORE_IO_H
|
||||
|
||||
@@ -153,7 +153,7 @@ void ScriptPubKeyToUniv(const CScript& scriptPubKey,
|
||||
out.pushKV("addresses", a);
|
||||
}
|
||||
|
||||
void TxToUniv(const CTransaction& tx, const uint256& hashBlock, UniValue& entry)
|
||||
void TxToUniv(const CTransaction& tx, const uint256& hashBlock, UniValue& entry, bool include_hex, int serialize_flags)
|
||||
{
|
||||
entry.pushKV("txid", tx.GetHash().GetHex());
|
||||
entry.pushKV("hash", tx.GetWitnessHash().GetHex());
|
||||
@@ -207,5 +207,7 @@ void TxToUniv(const CTransaction& tx, const uint256& hashBlock, UniValue& entry)
|
||||
if (!hashBlock.IsNull())
|
||||
entry.pushKV("blockhash", hashBlock.GetHex());
|
||||
|
||||
entry.pushKV("hex", EncodeHexTx(tx)); // the hex-encoded transaction. used the name "hex" to be consistent with the verbose output of "getrawtransaction".
|
||||
if (include_hex) {
|
||||
entry.pushKV("hex", EncodeHexTx(tx, serialize_flags)); // the hex-encoded transaction. used the name "hex" to be consistent with the verbose output of "getrawtransaction".
|
||||
}
|
||||
}
|
||||
|
||||
@@ -192,7 +192,7 @@ static bool HTTPReq_JSONRPC(HTTPRequest* req, const std::string &)
|
||||
|
||||
// array of requests
|
||||
} else if (valRequest.isArray())
|
||||
strReply = JSONRPCExecBatch(valRequest.get_array());
|
||||
strReply = JSONRPCExecBatch(jreq, valRequest.get_array());
|
||||
else
|
||||
throw JSONRPCError(RPC_PARSE_ERROR, "Top-level object parse error");
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
|
||||
#include <event2/thread.h>
|
||||
#include <event2/buffer.h>
|
||||
#include <event2/bufferevent.h>
|
||||
#include <event2/util.h>
|
||||
#include <event2/keyvalq_struct.h>
|
||||
|
||||
@@ -239,6 +240,16 @@ static std::string RequestMethodString(HTTPRequest::RequestMethod m)
|
||||
/** HTTP request callback */
|
||||
static void http_request_cb(struct evhttp_request* req, void* arg)
|
||||
{
|
||||
// Disable reading to work around a libevent bug, fixed in 2.2.0.
|
||||
if (event_get_version_number() >= 0x02010600 && event_get_version_number() < 0x02020001) {
|
||||
evhttp_connection* conn = evhttp_request_get_connection(req);
|
||||
if (conn) {
|
||||
bufferevent* bev = evhttp_connection_get_bufferevent(conn);
|
||||
if (bev) {
|
||||
bufferevent_disable(bev, EV_READ);
|
||||
}
|
||||
}
|
||||
}
|
||||
std::unique_ptr<HTTPRequest> hreq(new HTTPRequest(req));
|
||||
|
||||
LogPrint(BCLog::HTTP, "Received a %s request for %s from %s\n",
|
||||
@@ -599,11 +610,24 @@ void HTTPRequest::WriteReply(int nStatus, const std::string& strReply)
|
||||
struct evbuffer* evb = evhttp_request_get_output_buffer(req);
|
||||
assert(evb);
|
||||
evbuffer_add(evb, strReply.data(), strReply.size());
|
||||
HTTPEvent* ev = new HTTPEvent(eventBase, true,
|
||||
std::bind(evhttp_send_reply, req, nStatus, (const char*)nullptr, (struct evbuffer *)nullptr));
|
||||
ev->trigger(0);
|
||||
auto req_copy = req;
|
||||
HTTPEvent* ev = new HTTPEvent(eventBase, true, [req_copy, nStatus]{
|
||||
evhttp_send_reply(req_copy, nStatus, nullptr, nullptr);
|
||||
// Re-enable reading from the socket. This is the second part of the libevent
|
||||
// workaround above.
|
||||
if (event_get_version_number() >= 0x02010600 && event_get_version_number() < 0x02020001) {
|
||||
evhttp_connection* conn = evhttp_request_get_connection(req_copy);
|
||||
if (conn) {
|
||||
bufferevent* bev = evhttp_connection_get_bufferevent(conn);
|
||||
if (bev) {
|
||||
bufferevent_enable(bev, EV_READ | EV_WRITE);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
ev->trigger(nullptr);
|
||||
replySent = true;
|
||||
req = 0; // transferred back to main thread
|
||||
req = nullptr; // transferred back to main thread
|
||||
}
|
||||
|
||||
CService HTTPRequest::GetPeer()
|
||||
|
||||
39
src/init.cpp
39
src/init.cpp
@@ -193,12 +193,15 @@ void Shutdown()
|
||||
}
|
||||
#endif
|
||||
MapPort(false);
|
||||
|
||||
// Because these depend on each-other, we make sure that neither can be
|
||||
// using the other before destroying them.
|
||||
UnregisterValidationInterface(peerLogic.get());
|
||||
if(g_connman) g_connman->Stop();
|
||||
peerLogic.reset();
|
||||
g_connman.reset();
|
||||
|
||||
StopTorControl();
|
||||
UnregisterNodeSignals(GetNodeSignals());
|
||||
if (fDumpMempoolLater && gArgs.GetArg("-persistmempool", DEFAULT_PERSIST_MEMPOOL)) {
|
||||
DumpMempool();
|
||||
}
|
||||
@@ -362,6 +365,9 @@ std::string HelpMessage(HelpMessageMode mode)
|
||||
strUsage += HelpMessageOpt("-maxorphantx=<n>", strprintf(_("Keep at most <n> unconnectable transactions in memory (default: %u)"), DEFAULT_MAX_ORPHAN_TRANSACTIONS));
|
||||
strUsage += HelpMessageOpt("-maxmempool=<n>", strprintf(_("Keep the transaction memory pool below <n> megabytes (default: %u)"), DEFAULT_MAX_MEMPOOL_SIZE));
|
||||
strUsage += HelpMessageOpt("-mempoolexpiry=<n>", strprintf(_("Do not keep transactions in the mempool longer than <n> hours (default: %u)"), DEFAULT_MEMPOOL_EXPIRY));
|
||||
if (showDebug) {
|
||||
strUsage += HelpMessageOpt("-minimumchainwork=<hex>", strprintf("Minimum work assumed to exist on a valid chain in hex (default: %s, testnet: %s)", defaultChainParams->GetConsensus().nMinimumChainWork.GetHex(), testnetChainParams->GetConsensus().nMinimumChainWork.GetHex()));
|
||||
}
|
||||
strUsage += HelpMessageOpt("-persistmempool", strprintf(_("Whether to save the mempool on shutdown and load on restart (default: %u)"), DEFAULT_PERSIST_MEMPOOL));
|
||||
strUsage += HelpMessageOpt("-blockreconstructionextratxn=<n>", strprintf(_("Extra transactions to keep in memory for compact block reconstructions (default: %u)"), DEFAULT_BLOCK_RECONSTRUCTION_EXTRA_TXN));
|
||||
strUsage += HelpMessageOpt("-par=<n>", strprintf(_("Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d)"),
|
||||
@@ -494,7 +500,7 @@ std::string HelpMessage(HelpMessageMode mode)
|
||||
|
||||
strUsage += HelpMessageGroup(_("Block creation options:"));
|
||||
strUsage += HelpMessageOpt("-blockmaxweight=<n>", strprintf(_("Set maximum BIP141 block weight (default: %d)"), DEFAULT_BLOCK_MAX_WEIGHT));
|
||||
strUsage += HelpMessageOpt("-blockmaxsize=<n>", strprintf(_("Set maximum block size in bytes (default: %d)"), DEFAULT_BLOCK_MAX_SIZE));
|
||||
strUsage += HelpMessageOpt("-blockmaxsize=<n>", _("Set maximum BIP141 block weight to this * 4. Deprecated, use blockmaxweight"));
|
||||
strUsage += HelpMessageOpt("-blockmintxfee=<amt>", strprintf(_("Set lowest fee rate (in %s/kB) for transactions to be included in block creation. (default: %s)"), CURRENCY_UNIT, FormatMoney(DEFAULT_BLOCK_MIN_TX_FEE)));
|
||||
if (showDebug)
|
||||
strUsage += HelpMessageOpt("-blockversion=<n>", "Override block version to test forking scenarios");
|
||||
@@ -796,6 +802,15 @@ void InitParameterInteraction()
|
||||
if (gArgs.SoftSetBoolArg("-whitelistrelay", true))
|
||||
LogPrintf("%s: parameter interaction: -whitelistforcerelay=1 -> setting -whitelistrelay=1\n", __func__);
|
||||
}
|
||||
|
||||
if (gArgs.IsArgSet("-blockmaxsize")) {
|
||||
unsigned int max_size = gArgs.GetArg("-blockmaxsize", 0);
|
||||
if (gArgs.SoftSetArg("blockmaxweight", strprintf("%d", max_size * WITNESS_SCALE_FACTOR))) {
|
||||
LogPrintf("%s: parameter interaction: -blockmaxsize=%d -> setting -blockmaxweight=%d (-blockmaxsize is deprecated!)\n", __func__, max_size, max_size * WITNESS_SCALE_FACTOR);
|
||||
} else {
|
||||
LogPrintf("%s: Ignoring blockmaxsize setting which is overridden by blockmaxweight", __func__);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static std::string ResolveErrMsg(const char * const optname, const std::string& strBind)
|
||||
@@ -979,6 +994,20 @@ bool AppInitParameterInteraction()
|
||||
else
|
||||
LogPrintf("Validating signatures for all blocks.\n");
|
||||
|
||||
if (gArgs.IsArgSet("-minimumchainwork")) {
|
||||
const std::string minChainWorkStr = gArgs.GetArg("-minimumchainwork", "");
|
||||
if (!IsHexNumber(minChainWorkStr)) {
|
||||
return InitError(strprintf("Invalid non-hex (%s) minimum chain work value specified", minChainWorkStr));
|
||||
}
|
||||
nMinimumChainWork = UintToArith256(uint256S(minChainWorkStr));
|
||||
} else {
|
||||
nMinimumChainWork = UintToArith256(chainparams.GetConsensus().nMinimumChainWork);
|
||||
}
|
||||
LogPrintf("Setting nMinimumChainWork=%s\n", nMinimumChainWork.GetHex());
|
||||
if (nMinimumChainWork < UintToArith256(chainparams.GetConsensus().nMinimumChainWork)) {
|
||||
LogPrintf("Warning: nMinimumChainWork set below default value of %s\n", chainparams.GetConsensus().nMinimumChainWork.GetHex());
|
||||
}
|
||||
|
||||
// mempool limits
|
||||
int64_t nMempoolSizeMax = gArgs.GetArg("-maxmempool", DEFAULT_MAX_MEMPOOL_SIZE) * 1000000;
|
||||
int64_t nMempoolSizeMin = gArgs.GetArg("-limitdescendantsize", DEFAULT_DESCENDANT_SIZE_LIMIT) * 1000 * 40;
|
||||
@@ -1258,9 +1287,8 @@ bool AppInitMain(boost::thread_group& threadGroup, CScheduler& scheduler)
|
||||
g_connman = std::unique_ptr<CConnman>(new CConnman(GetRand(std::numeric_limits<uint64_t>::max()), GetRand(std::numeric_limits<uint64_t>::max())));
|
||||
CConnman& connman = *g_connman;
|
||||
|
||||
peerLogic.reset(new PeerLogicValidation(&connman));
|
||||
peerLogic.reset(new PeerLogicValidation(&connman, scheduler));
|
||||
RegisterValidationInterface(peerLogic.get());
|
||||
RegisterNodeSignals(GetNodeSignals());
|
||||
|
||||
// sanitize comments per BIP-0014, format user agent and check total size
|
||||
std::vector<std::string> uacomments;
|
||||
@@ -1428,7 +1456,7 @@ bool AppInitMain(boost::thread_group& threadGroup, CScheduler& scheduler)
|
||||
|
||||
// Check for changed -txindex state
|
||||
if (fTxIndex != gArgs.GetBoolArg("-txindex", DEFAULT_TXINDEX)) {
|
||||
strLoadError = _("You need to rebuild the database using -reindex-chainstate to change -txindex");
|
||||
strLoadError = _("You need to rebuild the database using -reindex to change -txindex");
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1651,6 +1679,7 @@ bool AppInitMain(boost::thread_group& threadGroup, CScheduler& scheduler)
|
||||
connOptions.nMaxFeeler = 1;
|
||||
connOptions.nBestHeight = chainActive.Height();
|
||||
connOptions.uiInterface = &uiInterface;
|
||||
connOptions.m_msgproc = peerLogic.get();
|
||||
connOptions.nSendBufferMaxSize = 1000*gArgs.GetArg("-maxsendbuffer", DEFAULT_MAXSENDBUFFER);
|
||||
connOptions.nReceiveFloodSize = 1000*gArgs.GetArg("-maxreceivebuffer", DEFAULT_MAXRECEIVEBUFFER);
|
||||
|
||||
|
||||
@@ -172,6 +172,8 @@ struct CExtKey {
|
||||
{
|
||||
unsigned int len = ::ReadCompactSize(s);
|
||||
unsigned char code[BIP32_EXTKEY_SIZE];
|
||||
if (len != BIP32_EXTKEY_SIZE)
|
||||
throw std::runtime_error("Invalid extended key size\n");
|
||||
s.read((char *)&code[0], len);
|
||||
Decode(code);
|
||||
}
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
// its ancestors.
|
||||
|
||||
uint64_t nLastBlockTx = 0;
|
||||
uint64_t nLastBlockSize = 0;
|
||||
uint64_t nLastBlockWeight = 0;
|
||||
|
||||
int64_t UpdateTime(CBlockHeader* pblock, const Consensus::Params& consensusParams, const CBlockIndex* pindexPrev)
|
||||
@@ -64,7 +63,6 @@ int64_t UpdateTime(CBlockHeader* pblock, const Consensus::Params& consensusParam
|
||||
BlockAssembler::Options::Options() {
|
||||
blockMinFeeRate = CFeeRate(DEFAULT_BLOCK_MIN_TX_FEE);
|
||||
nBlockMaxWeight = DEFAULT_BLOCK_MAX_WEIGHT;
|
||||
nBlockMaxSize = DEFAULT_BLOCK_MAX_SIZE;
|
||||
}
|
||||
|
||||
BlockAssembler::BlockAssembler(const CChainParams& params, const Options& options) : chainparams(params)
|
||||
@@ -72,10 +70,6 @@ BlockAssembler::BlockAssembler(const CChainParams& params, const Options& option
|
||||
blockMinFeeRate = options.blockMinFeeRate;
|
||||
// Limit weight to between 4K and MAX_BLOCK_WEIGHT-4K for sanity:
|
||||
nBlockMaxWeight = std::max<size_t>(4000, std::min<size_t>(MAX_BLOCK_WEIGHT - 4000, options.nBlockMaxWeight));
|
||||
// Limit size to between 1K and MAX_BLOCK_SERIALIZED_SIZE-1K for sanity:
|
||||
nBlockMaxSize = std::max<size_t>(1000, std::min<size_t>(MAX_BLOCK_SERIALIZED_SIZE - 1000, options.nBlockMaxSize));
|
||||
// Whether we need to account for byte usage (in addition to weight usage)
|
||||
fNeedSizeAccounting = (nBlockMaxSize < MAX_BLOCK_SERIALIZED_SIZE - 1000);
|
||||
}
|
||||
|
||||
static BlockAssembler::Options DefaultOptions(const CChainParams& params)
|
||||
@@ -85,20 +79,7 @@ static BlockAssembler::Options DefaultOptions(const CChainParams& params)
|
||||
// If only one is given, only restrict the specified resource.
|
||||
// If both are given, restrict both.
|
||||
BlockAssembler::Options options;
|
||||
options.nBlockMaxWeight = DEFAULT_BLOCK_MAX_WEIGHT;
|
||||
options.nBlockMaxSize = DEFAULT_BLOCK_MAX_SIZE;
|
||||
bool fWeightSet = false;
|
||||
if (gArgs.IsArgSet("-blockmaxweight")) {
|
||||
options.nBlockMaxWeight = gArgs.GetArg("-blockmaxweight", DEFAULT_BLOCK_MAX_WEIGHT);
|
||||
options.nBlockMaxSize = MAX_BLOCK_SERIALIZED_SIZE;
|
||||
fWeightSet = true;
|
||||
}
|
||||
if (gArgs.IsArgSet("-blockmaxsize")) {
|
||||
options.nBlockMaxSize = gArgs.GetArg("-blockmaxsize", DEFAULT_BLOCK_MAX_SIZE);
|
||||
if (!fWeightSet) {
|
||||
options.nBlockMaxWeight = options.nBlockMaxSize * WITNESS_SCALE_FACTOR;
|
||||
}
|
||||
}
|
||||
options.nBlockMaxWeight = gArgs.GetArg("-blockmaxweight", DEFAULT_BLOCK_MAX_WEIGHT);
|
||||
if (gArgs.IsArgSet("-blockmintxfee")) {
|
||||
CAmount n = 0;
|
||||
ParseMoney(gArgs.GetArg("-blockmintxfee", ""), n);
|
||||
@@ -116,7 +97,6 @@ void BlockAssembler::resetBlock()
|
||||
inBlock.clear();
|
||||
|
||||
// Reserve space for coinbase tx
|
||||
nBlockSize = 1000;
|
||||
nBlockWeight = 4000;
|
||||
nBlockSigOpsCost = 400;
|
||||
fIncludeWitness = false;
|
||||
@@ -175,7 +155,6 @@ std::unique_ptr<CBlockTemplate> BlockAssembler::CreateNewBlock(const CScript& sc
|
||||
int64_t nTime1 = GetTimeMicros();
|
||||
|
||||
nLastBlockTx = nBlockTx;
|
||||
nLastBlockSize = nBlockSize;
|
||||
nLastBlockWeight = nBlockWeight;
|
||||
|
||||
// Create coinbase transaction.
|
||||
@@ -190,8 +169,7 @@ std::unique_ptr<CBlockTemplate> BlockAssembler::CreateNewBlock(const CScript& sc
|
||||
pblocktemplate->vchCoinbaseCommitment = GenerateCoinbaseCommitment(*pblock, pindexPrev, chainparams.GetConsensus());
|
||||
pblocktemplate->vTxFees[0] = -nFees;
|
||||
|
||||
uint64_t nSerializeSize = GetSerializeSize(*pblock, SER_NETWORK, PROTOCOL_VERSION);
|
||||
LogPrintf("CreateNewBlock(): total size: %u block weight: %u txs: %u fees: %ld sigops %d\n", nSerializeSize, GetBlockWeight(*pblock), nBlockTx, nFees, nBlockSigOpsCost);
|
||||
LogPrintf("CreateNewBlock(): block weight: %u txs: %u fees: %ld sigops %d\n", GetBlockWeight(*pblock), nBlockTx, nFees, nBlockSigOpsCost);
|
||||
|
||||
// Fill in header
|
||||
pblock->hashPrevBlock = pindexPrev->GetBlockHash();
|
||||
@@ -238,22 +216,13 @@ bool BlockAssembler::TestPackage(uint64_t packageSize, int64_t packageSigOpsCost
|
||||
// - transaction finality (locktime)
|
||||
// - premature witness (in case segwit transactions are added to mempool before
|
||||
// segwit activation)
|
||||
// - serialized size (in case -blockmaxsize is in use)
|
||||
bool BlockAssembler::TestPackageTransactions(const CTxMemPool::setEntries& package)
|
||||
{
|
||||
uint64_t nPotentialBlockSize = nBlockSize; // only used with fNeedSizeAccounting
|
||||
for (const CTxMemPool::txiter it : package) {
|
||||
if (!IsFinalTx(it->GetTx(), nHeight, nLockTimeCutoff))
|
||||
return false;
|
||||
if (!fIncludeWitness && it->GetTx().HasWitness())
|
||||
return false;
|
||||
if (fNeedSizeAccounting) {
|
||||
uint64_t nTxSize = ::GetSerializeSize(it->GetTx(), SER_NETWORK, PROTOCOL_VERSION);
|
||||
if (nPotentialBlockSize + nTxSize >= nBlockMaxSize) {
|
||||
return false;
|
||||
}
|
||||
nPotentialBlockSize += nTxSize;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -263,9 +232,6 @@ void BlockAssembler::AddToBlock(CTxMemPool::txiter iter)
|
||||
pblock->vtx.emplace_back(iter->GetSharedTx());
|
||||
pblocktemplate->vTxFees.push_back(iter->GetFee());
|
||||
pblocktemplate->vTxSigOpsCost.push_back(iter->GetSigOpCost());
|
||||
if (fNeedSizeAccounting) {
|
||||
nBlockSize += ::GetSerializeSize(iter->GetTx(), SER_NETWORK, PROTOCOL_VERSION);
|
||||
}
|
||||
nBlockWeight += iter->GetTxWeight();
|
||||
++nBlockTx;
|
||||
nBlockSigOpsCost += iter->GetSigOpCost();
|
||||
|
||||
@@ -71,7 +71,7 @@ struct modifiedentry_iter {
|
||||
// except operating on CTxMemPoolModifiedEntry.
|
||||
// TODO: refactor to avoid duplication of this logic.
|
||||
struct CompareModifiedEntry {
|
||||
bool operator()(const CTxMemPoolModifiedEntry &a, const CTxMemPoolModifiedEntry &b)
|
||||
bool operator()(const CTxMemPoolModifiedEntry &a, const CTxMemPoolModifiedEntry &b) const
|
||||
{
|
||||
double f1 = (double)a.nModFeesWithAncestors * b.nSizeWithAncestors;
|
||||
double f2 = (double)b.nModFeesWithAncestors * a.nSizeWithAncestors;
|
||||
@@ -86,7 +86,7 @@ struct CompareModifiedEntry {
|
||||
// This is sufficient to sort an ancestor package in an order that is valid
|
||||
// to appear in a block.
|
||||
struct CompareTxIterByAncestorCount {
|
||||
bool operator()(const CTxMemPool::txiter &a, const CTxMemPool::txiter &b)
|
||||
bool operator()(const CTxMemPool::txiter &a, const CTxMemPool::txiter &b) const
|
||||
{
|
||||
if (a->GetCountWithAncestors() != b->GetCountWithAncestors())
|
||||
return a->GetCountWithAncestors() < b->GetCountWithAncestors();
|
||||
@@ -139,13 +139,11 @@ private:
|
||||
|
||||
// Configuration parameters for the block size
|
||||
bool fIncludeWitness;
|
||||
unsigned int nBlockMaxWeight, nBlockMaxSize;
|
||||
bool fNeedSizeAccounting;
|
||||
unsigned int nBlockMaxWeight;
|
||||
CFeeRate blockMinFeeRate;
|
||||
|
||||
// Information on the current status of the block
|
||||
uint64_t nBlockWeight;
|
||||
uint64_t nBlockSize;
|
||||
uint64_t nBlockTx;
|
||||
uint64_t nBlockSigOpsCost;
|
||||
CAmount nFees;
|
||||
|
||||
67
src/net.cpp
67
src/net.cpp
@@ -89,10 +89,6 @@ std::string strSubVersion;
|
||||
|
||||
limitedmap<uint256, int64_t> mapAlreadyAskedFor(MAX_INV_SZ);
|
||||
|
||||
// Signals for message handling
|
||||
static CNodeSignals g_signals;
|
||||
CNodeSignals& GetNodeSignals() { return g_signals; }
|
||||
|
||||
void CConnman::AddOneShot(const std::string& strDest)
|
||||
{
|
||||
LOCK(cs_vOneShots);
|
||||
@@ -665,7 +661,7 @@ void CNode::copyStats(CNodeStats &stats)
|
||||
X(cleanSubVer);
|
||||
}
|
||||
X(fInbound);
|
||||
X(fAddnode);
|
||||
X(m_manual_connection);
|
||||
X(nStartingHeight);
|
||||
{
|
||||
LOCK(cs_vSend);
|
||||
@@ -1114,7 +1110,7 @@ void CConnman::AcceptConnection(const ListenSocket& hListenSocket) {
|
||||
CNode* pnode = new CNode(id, nLocalServices, GetBestHeight(), hSocket, addr, CalculateKeyedNetGroup(addr), nonce, addr_bind, "", true);
|
||||
pnode->AddRef();
|
||||
pnode->fWhitelisted = whitelisted;
|
||||
GetNodeSignals().InitializeNode(pnode, *this);
|
||||
m_msgproc->InitializeNode(pnode);
|
||||
|
||||
LogPrint(BCLog::NET, "connection from %s accepted\n", addr.ToString());
|
||||
|
||||
@@ -1674,6 +1670,37 @@ void CConnman::ProcessOneShot()
|
||||
}
|
||||
}
|
||||
|
||||
bool CConnman::GetTryNewOutboundPeer()
|
||||
{
|
||||
return m_try_another_outbound_peer;
|
||||
}
|
||||
|
||||
void CConnman::SetTryNewOutboundPeer(bool flag)
|
||||
{
|
||||
m_try_another_outbound_peer = flag;
|
||||
LogPrint(BCLog::NET, "net: setting try another outbound peer=%s\n", flag ? "true" : "false");
|
||||
}
|
||||
|
||||
// Return the number of peers we have over our outbound connection limit
|
||||
// Exclude peers that are marked for disconnect, or are going to be
|
||||
// disconnected soon (eg one-shots and feelers)
|
||||
// Also exclude peers that haven't finished initial connection handshake yet
|
||||
// (so that we don't decide we're over our desired connection limit, and then
|
||||
// evict some peer that has finished the handshake)
|
||||
int CConnman::GetExtraOutboundCount()
|
||||
{
|
||||
int nOutbound = 0;
|
||||
{
|
||||
LOCK(cs_vNodes);
|
||||
for (CNode* pnode : vNodes) {
|
||||
if (!pnode->fInbound && !pnode->m_manual_connection && !pnode->fFeeler && !pnode->fDisconnect && !pnode->fOneShot && pnode->fSuccessfullyConnected) {
|
||||
++nOutbound;
|
||||
}
|
||||
}
|
||||
}
|
||||
return std::max(nOutbound - nMaxOutbound, 0);
|
||||
}
|
||||
|
||||
void CConnman::ThreadOpenConnections()
|
||||
{
|
||||
// Connect to specific addresses
|
||||
@@ -1738,7 +1765,7 @@ void CConnman::ThreadOpenConnections()
|
||||
{
|
||||
LOCK(cs_vNodes);
|
||||
for (CNode* pnode : vNodes) {
|
||||
if (!pnode->fInbound && !pnode->fAddnode) {
|
||||
if (!pnode->fInbound && !pnode->m_manual_connection) {
|
||||
|
||||
// Count the peers that have all relevant services
|
||||
if (pnode->fSuccessfullyConnected && !pnode->fFeeler && ((pnode->nServices & nRelevantServices) == nRelevantServices)) {
|
||||
@@ -1768,7 +1795,8 @@ void CConnman::ThreadOpenConnections()
|
||||
// * Only make a feeler connection once every few minutes.
|
||||
//
|
||||
bool fFeeler = false;
|
||||
if (nOutbound >= nMaxOutbound) {
|
||||
|
||||
if (nOutbound >= nMaxOutbound && !GetTryNewOutboundPeer()) {
|
||||
int64_t nTime = GetTimeMicros(); // The current time right now (in microseconds).
|
||||
if (nTime > nNextFeeler) {
|
||||
nNextFeeler = PoissonNextSend(nTime, FEELER_INTERVAL);
|
||||
@@ -1934,7 +1962,7 @@ void CConnman::ThreadOpenAddedConnections()
|
||||
}
|
||||
|
||||
// if successful, this moves the passed grant to the constructed node
|
||||
bool CConnman::OpenNetworkConnection(const CAddress& addrConnect, bool fCountFailure, CSemaphoreGrant *grantOutbound, const char *pszDest, bool fOneShot, bool fFeeler, bool fAddnode)
|
||||
bool CConnman::OpenNetworkConnection(const CAddress& addrConnect, bool fCountFailure, CSemaphoreGrant *grantOutbound, const char *pszDest, bool fOneShot, bool fFeeler, bool manual_connection)
|
||||
{
|
||||
//
|
||||
// Initiate outbound network connection
|
||||
@@ -1963,10 +1991,10 @@ bool CConnman::OpenNetworkConnection(const CAddress& addrConnect, bool fCountFai
|
||||
pnode->fOneShot = true;
|
||||
if (fFeeler)
|
||||
pnode->fFeeler = true;
|
||||
if (fAddnode)
|
||||
pnode->fAddnode = true;
|
||||
if (manual_connection)
|
||||
pnode->m_manual_connection = true;
|
||||
|
||||
GetNodeSignals().InitializeNode(pnode, *this);
|
||||
m_msgproc->InitializeNode(pnode);
|
||||
{
|
||||
LOCK(cs_vNodes);
|
||||
vNodes.push_back(pnode);
|
||||
@@ -1996,16 +2024,16 @@ void CConnman::ThreadMessageHandler()
|
||||
continue;
|
||||
|
||||
// Receive messages
|
||||
bool fMoreNodeWork = GetNodeSignals().ProcessMessages(pnode, *this, flagInterruptMsgProc);
|
||||
bool fMoreNodeWork = m_msgproc->ProcessMessages(pnode, flagInterruptMsgProc);
|
||||
fMoreWork |= (fMoreNodeWork && !pnode->fPauseSend);
|
||||
if (flagInterruptMsgProc)
|
||||
return;
|
||||
|
||||
// Send messages
|
||||
{
|
||||
LOCK(pnode->cs_sendProcessing);
|
||||
GetNodeSignals().SendMessages(pnode, *this, flagInterruptMsgProc);
|
||||
m_msgproc->SendMessages(pnode, flagInterruptMsgProc);
|
||||
}
|
||||
|
||||
if (flagInterruptMsgProc)
|
||||
return;
|
||||
}
|
||||
@@ -2211,6 +2239,7 @@ CConnman::CConnman(uint64_t nSeed0In, uint64_t nSeed1In) : nSeed0(nSeed0In), nSe
|
||||
semOutbound = nullptr;
|
||||
semAddnode = nullptr;
|
||||
flagInterruptMsgProc = false;
|
||||
SetTryNewOutboundPeer(false);
|
||||
|
||||
Options connOptions;
|
||||
Init(connOptions);
|
||||
@@ -2324,6 +2353,7 @@ bool CConnman::Start(CScheduler& scheduler, const Options& connOptions)
|
||||
//
|
||||
// Start threads
|
||||
//
|
||||
assert(m_msgproc);
|
||||
InterruptSocks5(false);
|
||||
interruptNet.reset();
|
||||
flagInterruptMsgProc = false;
|
||||
@@ -2443,9 +2473,10 @@ void CConnman::DeleteNode(CNode* pnode)
|
||||
{
|
||||
assert(pnode);
|
||||
bool fUpdateConnectionTime = false;
|
||||
GetNodeSignals().FinalizeNode(pnode->GetId(), fUpdateConnectionTime);
|
||||
if(fUpdateConnectionTime)
|
||||
m_msgproc->FinalizeNode(pnode->GetId(), fUpdateConnectionTime);
|
||||
if(fUpdateConnectionTime) {
|
||||
addrman.Connected(pnode->addr);
|
||||
}
|
||||
delete pnode;
|
||||
}
|
||||
|
||||
@@ -2704,7 +2735,7 @@ CNode::CNode(NodeId idIn, ServiceFlags nLocalServicesIn, int nMyStartingHeightIn
|
||||
strSubVer = "";
|
||||
fWhitelisted = false;
|
||||
fOneShot = false;
|
||||
fAddnode = false;
|
||||
m_manual_connection = false;
|
||||
fClient = false; // set by version message
|
||||
fFeeler = false;
|
||||
fSuccessfullyConnected = false;
|
||||
|
||||
51
src/net.h
51
src/net.h
@@ -33,7 +33,6 @@
|
||||
#include <arpa/inet.h>
|
||||
#endif
|
||||
|
||||
#include <boost/signals2/signal.hpp>
|
||||
|
||||
class CScheduler;
|
||||
class CNode;
|
||||
@@ -116,7 +115,7 @@ struct CSerializedNetMsg
|
||||
std::string command;
|
||||
};
|
||||
|
||||
|
||||
class NetEventsInterface;
|
||||
class CConnman
|
||||
{
|
||||
public:
|
||||
@@ -138,6 +137,7 @@ public:
|
||||
int nMaxFeeler = 0;
|
||||
int nBestHeight = 0;
|
||||
CClientUIInterface* uiInterface = nullptr;
|
||||
NetEventsInterface* m_msgproc = nullptr;
|
||||
unsigned int nSendBufferMaxSize = 0;
|
||||
unsigned int nReceiveFloodSize = 0;
|
||||
uint64_t nMaxOutboundTimeframe = 0;
|
||||
@@ -156,6 +156,7 @@ public:
|
||||
nMaxFeeler = connOptions.nMaxFeeler;
|
||||
nBestHeight = connOptions.nBestHeight;
|
||||
clientInterface = connOptions.uiInterface;
|
||||
m_msgproc = connOptions.m_msgproc;
|
||||
nSendBufferMaxSize = connOptions.nSendBufferMaxSize;
|
||||
nReceiveFloodSize = connOptions.nReceiveFloodSize;
|
||||
nMaxOutboundTimeframe = connOptions.nMaxOutboundTimeframe;
|
||||
@@ -170,7 +171,7 @@ public:
|
||||
void Interrupt();
|
||||
bool GetNetworkActive() const { return fNetworkActive; };
|
||||
void SetNetworkActive(bool active);
|
||||
bool OpenNetworkConnection(const CAddress& addrConnect, bool fCountFailure, CSemaphoreGrant *grantOutbound = nullptr, const char *strDest = nullptr, bool fOneShot = false, bool fFeeler = false, bool fAddnode = false);
|
||||
bool OpenNetworkConnection(const CAddress& addrConnect, bool fCountFailure, CSemaphoreGrant *grantOutbound = nullptr, const char *strDest = nullptr, bool fOneShot = false, bool fFeeler = false, bool manual_connection = false);
|
||||
bool CheckIncomingNonce(uint64_t nonce);
|
||||
|
||||
bool ForNode(NodeId id, std::function<bool(CNode* pnode)> func);
|
||||
@@ -250,6 +251,19 @@ public:
|
||||
void GetBanned(banmap_t &banmap);
|
||||
void SetBanned(const banmap_t &banmap);
|
||||
|
||||
// This allows temporarily exceeding nMaxOutbound, with the goal of finding
|
||||
// a peer that is better than all our current peers.
|
||||
void SetTryNewOutboundPeer(bool flag);
|
||||
bool GetTryNewOutboundPeer();
|
||||
|
||||
// Return the number of outbound peers we have in excess of our target (eg,
|
||||
// if we previously called SetTryNewOutboundPeer(true), and have since set
|
||||
// to false, we may have extra peers that we wish to disconnect). This may
|
||||
// return a value less than (num_outbound_connections - num_outbound_slots)
|
||||
// in cases where some outbound connections are not yet fully connected, or
|
||||
// not yet fully disconnected.
|
||||
int GetExtraOutboundCount();
|
||||
|
||||
bool AddNode(const std::string& node);
|
||||
bool RemoveAddedNode(const std::string& node);
|
||||
std::vector<AddedNodeInfo> GetAddedNodeInfo();
|
||||
@@ -396,6 +410,7 @@ private:
|
||||
int nMaxFeeler;
|
||||
std::atomic<int> nBestHeight;
|
||||
CClientUIInterface* clientInterface;
|
||||
NetEventsInterface* m_msgproc;
|
||||
|
||||
/** SipHasher seeds for deterministic randomness */
|
||||
const uint64_t nSeed0, nSeed1;
|
||||
@@ -414,6 +429,13 @@ private:
|
||||
std::thread threadOpenAddedConnections;
|
||||
std::thread threadOpenConnections;
|
||||
std::thread threadMessageHandler;
|
||||
|
||||
/** flag for deciding to connect to an extra outbound peer,
|
||||
* in excess of nMaxOutbound
|
||||
* This takes the place of a feeler connection */
|
||||
std::atomic_bool m_try_another_outbound_peer;
|
||||
|
||||
friend struct CConnmanTest;
|
||||
};
|
||||
extern std::unique_ptr<CConnman> g_connman;
|
||||
void Discover(boost::thread_group& threadGroup);
|
||||
@@ -436,19 +458,18 @@ struct CombinerAll
|
||||
}
|
||||
};
|
||||
|
||||
// Signals for message handling
|
||||
struct CNodeSignals
|
||||
/**
|
||||
* Interface for message handling
|
||||
*/
|
||||
class NetEventsInterface
|
||||
{
|
||||
boost::signals2::signal<bool (CNode*, CConnman&, std::atomic<bool>&), CombinerAll> ProcessMessages;
|
||||
boost::signals2::signal<bool (CNode*, CConnman&, std::atomic<bool>&), CombinerAll> SendMessages;
|
||||
boost::signals2::signal<void (CNode*, CConnman&)> InitializeNode;
|
||||
boost::signals2::signal<void (NodeId, bool&)> FinalizeNode;
|
||||
public:
|
||||
virtual bool ProcessMessages(CNode* pnode, std::atomic<bool>& interrupt) = 0;
|
||||
virtual bool SendMessages(CNode* pnode, std::atomic<bool>& interrupt) = 0;
|
||||
virtual void InitializeNode(CNode* pnode) = 0;
|
||||
virtual void FinalizeNode(NodeId id, bool& update_connection_time) = 0;
|
||||
};
|
||||
|
||||
|
||||
CNodeSignals& GetNodeSignals();
|
||||
|
||||
|
||||
enum
|
||||
{
|
||||
LOCAL_NONE, // unknown
|
||||
@@ -508,7 +529,7 @@ public:
|
||||
int nVersion;
|
||||
std::string cleanSubVer;
|
||||
bool fInbound;
|
||||
bool fAddnode;
|
||||
bool m_manual_connection;
|
||||
int nStartingHeight;
|
||||
uint64_t nSendBytes;
|
||||
mapMsgCmdSize mapSendBytesPerMsgCmd;
|
||||
@@ -618,7 +639,7 @@ public:
|
||||
bool fWhitelisted; // This peer can bypass DoS banning.
|
||||
bool fFeeler; // If true this node is being used as a short lived feeler.
|
||||
bool fOneShot;
|
||||
bool fAddnode;
|
||||
bool m_manual_connection;
|
||||
bool fClient;
|
||||
const bool fInbound;
|
||||
std::atomic_bool fSuccessfullyConnected;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -8,6 +8,7 @@
|
||||
|
||||
#include "net.h"
|
||||
#include "validationinterface.h"
|
||||
#include "consensus/params.h"
|
||||
|
||||
/** Default for -maxorphantx, maximum number of orphan transactions kept in memory */
|
||||
static const unsigned int DEFAULT_MAX_ORPHAN_TRANSACTIONS = 100;
|
||||
@@ -21,23 +22,51 @@ static const unsigned int DEFAULT_BLOCK_RECONSTRUCTION_EXTRA_TXN = 100;
|
||||
* Timeout = base + per_header * (expected number of headers) */
|
||||
static constexpr int64_t HEADERS_DOWNLOAD_TIMEOUT_BASE = 15 * 60 * 1000000; // 15 minutes
|
||||
static constexpr int64_t HEADERS_DOWNLOAD_TIMEOUT_PER_HEADER = 1000; // 1ms/header
|
||||
/** Protect at least this many outbound peers from disconnection due to slow/
|
||||
* behind headers chain.
|
||||
*/
|
||||
static constexpr int32_t MAX_OUTBOUND_PEERS_TO_PROTECT_FROM_DISCONNECT = 4;
|
||||
/** Timeout for (unprotected) outbound peers to sync to our chainwork, in seconds */
|
||||
static constexpr int64_t CHAIN_SYNC_TIMEOUT = 20 * 60; // 20 minutes
|
||||
/** How frequently to check for stale tips, in seconds */
|
||||
static constexpr int64_t STALE_CHECK_INTERVAL = 10 * 60; // 10 minutes
|
||||
/** How frequently to check for extra outbound peers and disconnect, in seconds */
|
||||
static constexpr int64_t EXTRA_PEER_CHECK_INTERVAL = 45;
|
||||
/** Minimum time an outbound-peer-eviction candidate must be connected for, in order to evict, in seconds */
|
||||
static constexpr int64_t MINIMUM_CONNECT_TIME = 30;
|
||||
|
||||
/** Register with a network node to receive its signals */
|
||||
void RegisterNodeSignals(CNodeSignals& nodeSignals);
|
||||
/** Unregister a network node */
|
||||
void UnregisterNodeSignals(CNodeSignals& nodeSignals);
|
||||
|
||||
class PeerLogicValidation : public CValidationInterface {
|
||||
class PeerLogicValidation : public CValidationInterface, public NetEventsInterface {
|
||||
private:
|
||||
CConnman* connman;
|
||||
CConnman* const connman;
|
||||
|
||||
public:
|
||||
PeerLogicValidation(CConnman* connmanIn);
|
||||
explicit PeerLogicValidation(CConnman* connman, CScheduler &scheduler);
|
||||
|
||||
void BlockConnected(const std::shared_ptr<const CBlock>& pblock, const CBlockIndex* pindexConnected, const std::vector<CTransactionRef>& vtxConflicted) override;
|
||||
void UpdatedBlockTip(const CBlockIndex *pindexNew, const CBlockIndex *pindexFork, bool fInitialDownload) override;
|
||||
void BlockChecked(const CBlock& block, const CValidationState& state) override;
|
||||
void NewPoWValidBlock(const CBlockIndex *pindex, const std::shared_ptr<const CBlock>& pblock) override;
|
||||
|
||||
|
||||
void InitializeNode(CNode* pnode) override;
|
||||
void FinalizeNode(NodeId nodeid, bool& fUpdateConnectionTime) override;
|
||||
/** Process protocol messages received from a given node */
|
||||
bool ProcessMessages(CNode* pfrom, std::atomic<bool>& interrupt) override;
|
||||
/**
|
||||
* Send queued protocol messages to be sent to a give node.
|
||||
*
|
||||
* @param[in] pto The node which we are sending messages to.
|
||||
* @param[in] interrupt Interrupt condition for processing threads
|
||||
* @return True if there is more work to be done
|
||||
*/
|
||||
bool SendMessages(CNode* pto, std::atomic<bool>& interrupt) override;
|
||||
|
||||
void ConsiderEviction(CNode *pto, int64_t time_in_seconds);
|
||||
void CheckForStaleTipAndEvictPeers(const Consensus::Params &consensusParams);
|
||||
void EvictExtraOutboundPeers(int64_t time_in_seconds);
|
||||
|
||||
private:
|
||||
int64_t m_stale_tip_check_time; //! Next time to check for stale tip
|
||||
};
|
||||
|
||||
struct CNodeStateStats {
|
||||
@@ -52,16 +81,4 @@ bool GetNodeStateStats(NodeId nodeid, CNodeStateStats &stats);
|
||||
/** Increase a node's misbehavior score. */
|
||||
void Misbehaving(NodeId nodeid, int howmuch);
|
||||
|
||||
/** Process protocol messages received from a given node */
|
||||
bool ProcessMessages(CNode* pfrom, CConnman& connman, const std::atomic<bool>& interrupt);
|
||||
/**
|
||||
* Send queued protocol messages to be sent to a give node.
|
||||
*
|
||||
* @param[in] pto The node which we are sending messages to.
|
||||
* @param[in] connman The connection manager for that node.
|
||||
* @param[in] interrupt Interrupt condition for processing threads
|
||||
* @return True if there is more work to be done
|
||||
*/
|
||||
bool SendMessages(CNode* pto, CConnman& connman, const std::atomic<bool>& interrupt);
|
||||
|
||||
#endif // BITCOIN_NET_PROCESSING_H
|
||||
|
||||
125
src/netbase.cpp
125
src/netbase.cpp
@@ -184,6 +184,48 @@ struct timeval MillisToTimeval(int64_t nTimeout)
|
||||
return timeout;
|
||||
}
|
||||
|
||||
/** SOCKS version */
|
||||
enum SOCKSVersion: uint8_t {
|
||||
SOCKS4 = 0x04,
|
||||
SOCKS5 = 0x05
|
||||
};
|
||||
|
||||
/** Values defined for METHOD in RFC1928 */
|
||||
enum SOCKS5Method: uint8_t {
|
||||
NOAUTH = 0x00, //! No authentication required
|
||||
GSSAPI = 0x01, //! GSSAPI
|
||||
USER_PASS = 0x02, //! Username/password
|
||||
NO_ACCEPTABLE = 0xff, //! No acceptable methods
|
||||
};
|
||||
|
||||
/** Values defined for CMD in RFC1928 */
|
||||
enum SOCKS5Command: uint8_t {
|
||||
CONNECT = 0x01,
|
||||
BIND = 0x02,
|
||||
UDP_ASSOCIATE = 0x03
|
||||
};
|
||||
|
||||
/** Values defined for REP in RFC1928 */
|
||||
enum SOCKS5Reply: uint8_t {
|
||||
SUCCEEDED = 0x00, //! Succeeded
|
||||
GENFAILURE = 0x01, //! General failure
|
||||
NOTALLOWED = 0x02, //! Connection not allowed by ruleset
|
||||
NETUNREACHABLE = 0x03, //! Network unreachable
|
||||
HOSTUNREACHABLE = 0x04, //! Network unreachable
|
||||
CONNREFUSED = 0x05, //! Connection refused
|
||||
TTLEXPIRED = 0x06, //! TTL expired
|
||||
CMDUNSUPPORTED = 0x07, //! Command not supported
|
||||
ATYPEUNSUPPORTED = 0x08, //! Address type not supported
|
||||
};
|
||||
|
||||
/** Values defined for ATYPE in RFC1928 */
|
||||
enum SOCKS5Atyp: uint8_t {
|
||||
IPV4 = 0x01,
|
||||
DOMAINNAME = 0x03,
|
||||
IPV6 = 0x04,
|
||||
};
|
||||
|
||||
/** Status codes that can be returned by InterruptibleRecv */
|
||||
enum class IntrRecvError {
|
||||
OK,
|
||||
Timeout,
|
||||
@@ -203,7 +245,7 @@ enum class IntrRecvError {
|
||||
*
|
||||
* @note This function requires that hSocket is in non-blocking mode.
|
||||
*/
|
||||
static IntrRecvError InterruptibleRecv(char* data, size_t len, int timeout, const SOCKET& hSocket)
|
||||
static IntrRecvError InterruptibleRecv(uint8_t* data, size_t len, int timeout, const SOCKET& hSocket)
|
||||
{
|
||||
int64_t curTime = GetTimeMillis();
|
||||
int64_t endTime = curTime + timeout;
|
||||
@@ -211,7 +253,7 @@ static IntrRecvError InterruptibleRecv(char* data, size_t len, int timeout, cons
|
||||
// to break off in case of an interruption.
|
||||
const int64_t maxWait = 1000;
|
||||
while (len > 0 && curTime < endTime) {
|
||||
ssize_t ret = recv(hSocket, data, len, 0); // Optimistically try the recv first
|
||||
ssize_t ret = recv(hSocket, (char*)data, len, 0); // Optimistically try the recv first
|
||||
if (ret > 0) {
|
||||
len -= ret;
|
||||
data += ret;
|
||||
@@ -242,24 +284,35 @@ static IntrRecvError InterruptibleRecv(char* data, size_t len, int timeout, cons
|
||||
return len == 0 ? IntrRecvError::OK : IntrRecvError::Timeout;
|
||||
}
|
||||
|
||||
/** Credentials for proxy authentication */
|
||||
struct ProxyCredentials
|
||||
{
|
||||
std::string username;
|
||||
std::string password;
|
||||
};
|
||||
|
||||
std::string Socks5ErrorString(int err)
|
||||
/** Convert SOCKS5 reply to a an error message */
|
||||
std::string Socks5ErrorString(uint8_t err)
|
||||
{
|
||||
switch(err) {
|
||||
case 0x01: return "general failure";
|
||||
case 0x02: return "connection not allowed";
|
||||
case 0x03: return "network unreachable";
|
||||
case 0x04: return "host unreachable";
|
||||
case 0x05: return "connection refused";
|
||||
case 0x06: return "TTL expired";
|
||||
case 0x07: return "protocol error";
|
||||
case 0x08: return "address type not supported";
|
||||
default: return "unknown";
|
||||
case SOCKS5Reply::GENFAILURE:
|
||||
return "general failure";
|
||||
case SOCKS5Reply::NOTALLOWED:
|
||||
return "connection not allowed";
|
||||
case SOCKS5Reply::NETUNREACHABLE:
|
||||
return "network unreachable";
|
||||
case SOCKS5Reply::HOSTUNREACHABLE:
|
||||
return "host unreachable";
|
||||
case SOCKS5Reply::CONNREFUSED:
|
||||
return "connection refused";
|
||||
case SOCKS5Reply::TTLEXPIRED:
|
||||
return "TTL expired";
|
||||
case SOCKS5Reply::CMDUNSUPPORTED:
|
||||
return "protocol error";
|
||||
case SOCKS5Reply::ATYPEUNSUPPORTED:
|
||||
return "address type not supported";
|
||||
default:
|
||||
return "unknown";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -274,34 +327,34 @@ static bool Socks5(const std::string& strDest, int port, const ProxyCredentials
|
||||
}
|
||||
// Accepted authentication methods
|
||||
std::vector<uint8_t> vSocks5Init;
|
||||
vSocks5Init.push_back(0x05);
|
||||
vSocks5Init.push_back(SOCKSVersion::SOCKS5);
|
||||
if (auth) {
|
||||
vSocks5Init.push_back(0x02); // # METHODS
|
||||
vSocks5Init.push_back(0x00); // X'00' NO AUTHENTICATION REQUIRED
|
||||
vSocks5Init.push_back(0x02); // X'02' USERNAME/PASSWORD (RFC1929)
|
||||
vSocks5Init.push_back(0x02); // Number of methods
|
||||
vSocks5Init.push_back(SOCKS5Method::NOAUTH);
|
||||
vSocks5Init.push_back(SOCKS5Method::USER_PASS);
|
||||
} else {
|
||||
vSocks5Init.push_back(0x01); // # METHODS
|
||||
vSocks5Init.push_back(0x00); // X'00' NO AUTHENTICATION REQUIRED
|
||||
vSocks5Init.push_back(0x01); // Number of methods
|
||||
vSocks5Init.push_back(SOCKS5Method::NOAUTH);
|
||||
}
|
||||
ssize_t ret = send(hSocket, (const char*)vSocks5Init.data(), vSocks5Init.size(), MSG_NOSIGNAL);
|
||||
if (ret != (ssize_t)vSocks5Init.size()) {
|
||||
CloseSocket(hSocket);
|
||||
return error("Error sending to proxy");
|
||||
}
|
||||
char pchRet1[2];
|
||||
uint8_t pchRet1[2];
|
||||
if ((recvr = InterruptibleRecv(pchRet1, 2, SOCKS5_RECV_TIMEOUT, hSocket)) != IntrRecvError::OK) {
|
||||
CloseSocket(hSocket);
|
||||
LogPrintf("Socks5() connect to %s:%d failed: InterruptibleRecv() timeout or other failure\n", strDest, port);
|
||||
return false;
|
||||
}
|
||||
if (pchRet1[0] != 0x05) {
|
||||
if (pchRet1[0] != SOCKSVersion::SOCKS5) {
|
||||
CloseSocket(hSocket);
|
||||
return error("Proxy failed to initialize");
|
||||
}
|
||||
if (pchRet1[1] == 0x02 && auth) {
|
||||
if (pchRet1[1] == SOCKS5Method::USER_PASS && auth) {
|
||||
// Perform username/password authentication (as described in RFC1929)
|
||||
std::vector<uint8_t> vAuth;
|
||||
vAuth.push_back(0x01);
|
||||
vAuth.push_back(0x01); // Current (and only) version of user/pass subnegotiation
|
||||
if (auth->username.size() > 255 || auth->password.size() > 255)
|
||||
return error("Proxy username or password too long");
|
||||
vAuth.push_back(auth->username.size());
|
||||
@@ -314,7 +367,7 @@ static bool Socks5(const std::string& strDest, int port, const ProxyCredentials
|
||||
return error("Error sending authentication to proxy");
|
||||
}
|
||||
LogPrint(BCLog::PROXY, "SOCKS5 sending proxy authentication %s:%s\n", auth->username, auth->password);
|
||||
char pchRetA[2];
|
||||
uint8_t pchRetA[2];
|
||||
if ((recvr = InterruptibleRecv(pchRetA, 2, SOCKS5_RECV_TIMEOUT, hSocket)) != IntrRecvError::OK) {
|
||||
CloseSocket(hSocket);
|
||||
return error("Error reading proxy authentication response");
|
||||
@@ -323,17 +376,17 @@ static bool Socks5(const std::string& strDest, int port, const ProxyCredentials
|
||||
CloseSocket(hSocket);
|
||||
return error("Proxy authentication unsuccessful");
|
||||
}
|
||||
} else if (pchRet1[1] == 0x00) {
|
||||
} else if (pchRet1[1] == SOCKS5Method::NOAUTH) {
|
||||
// Perform no authentication
|
||||
} else {
|
||||
CloseSocket(hSocket);
|
||||
return error("Proxy requested wrong authentication method %02x", pchRet1[1]);
|
||||
}
|
||||
std::vector<uint8_t> vSocks5;
|
||||
vSocks5.push_back(0x05); // VER protocol version
|
||||
vSocks5.push_back(0x01); // CMD CONNECT
|
||||
vSocks5.push_back(0x00); // RSV Reserved
|
||||
vSocks5.push_back(0x03); // ATYP DOMAINNAME
|
||||
vSocks5.push_back(SOCKSVersion::SOCKS5); // VER protocol version
|
||||
vSocks5.push_back(SOCKS5Command::CONNECT); // CMD CONNECT
|
||||
vSocks5.push_back(0x00); // RSV Reserved must be 0
|
||||
vSocks5.push_back(SOCKS5Atyp::DOMAINNAME); // ATYP DOMAINNAME
|
||||
vSocks5.push_back(strDest.size()); // Length<=255 is checked at beginning of function
|
||||
vSocks5.insert(vSocks5.end(), strDest.begin(), strDest.end());
|
||||
vSocks5.push_back((port >> 8) & 0xFF);
|
||||
@@ -343,7 +396,7 @@ static bool Socks5(const std::string& strDest, int port, const ProxyCredentials
|
||||
CloseSocket(hSocket);
|
||||
return error("Error sending to proxy");
|
||||
}
|
||||
char pchRet2[4];
|
||||
uint8_t pchRet2[4];
|
||||
if ((recvr = InterruptibleRecv(pchRet2, 4, SOCKS5_RECV_TIMEOUT, hSocket)) != IntrRecvError::OK) {
|
||||
CloseSocket(hSocket);
|
||||
if (recvr == IntrRecvError::Timeout) {
|
||||
@@ -355,26 +408,26 @@ static bool Socks5(const std::string& strDest, int port, const ProxyCredentials
|
||||
return error("Error while reading proxy response");
|
||||
}
|
||||
}
|
||||
if (pchRet2[0] != 0x05) {
|
||||
if (pchRet2[0] != SOCKSVersion::SOCKS5) {
|
||||
CloseSocket(hSocket);
|
||||
return error("Proxy failed to accept request");
|
||||
}
|
||||
if (pchRet2[1] != 0x00) {
|
||||
if (pchRet2[1] != SOCKS5Reply::SUCCEEDED) {
|
||||
// Failures to connect to a peer that are not proxy errors
|
||||
CloseSocket(hSocket);
|
||||
LogPrintf("Socks5() connect to %s:%d failed: %s\n", strDest, port, Socks5ErrorString(pchRet2[1]));
|
||||
return false;
|
||||
}
|
||||
if (pchRet2[2] != 0x00) {
|
||||
if (pchRet2[2] != 0x00) { // Reserved field must be 0
|
||||
CloseSocket(hSocket);
|
||||
return error("Error: malformed proxy response");
|
||||
}
|
||||
char pchRet3[256];
|
||||
uint8_t pchRet3[256];
|
||||
switch (pchRet2[3])
|
||||
{
|
||||
case 0x01: recvr = InterruptibleRecv(pchRet3, 4, SOCKS5_RECV_TIMEOUT, hSocket); break;
|
||||
case 0x04: recvr = InterruptibleRecv(pchRet3, 16, SOCKS5_RECV_TIMEOUT, hSocket); break;
|
||||
case 0x03:
|
||||
case SOCKS5Atyp::IPV4: recvr = InterruptibleRecv(pchRet3, 4, SOCKS5_RECV_TIMEOUT, hSocket); break;
|
||||
case SOCKS5Atyp::IPV6: recvr = InterruptibleRecv(pchRet3, 16, SOCKS5_RECV_TIMEOUT, hSocket); break;
|
||||
case SOCKS5Atyp::DOMAINNAME:
|
||||
{
|
||||
recvr = InterruptibleRecv(pchRet3, 1, SOCKS5_RECV_TIMEOUT, hSocket);
|
||||
if (recvr != IntrRecvError::OK) {
|
||||
|
||||
@@ -16,10 +16,8 @@
|
||||
class CCoinsViewCache;
|
||||
class CTxOut;
|
||||
|
||||
/** Default for -blockmaxsize, which controls the maximum size of block the mining code will create **/
|
||||
static const unsigned int DEFAULT_BLOCK_MAX_SIZE = 750000;
|
||||
/** Default for -blockmaxweight, which controls the range of block weights the mining code will create **/
|
||||
static const unsigned int DEFAULT_BLOCK_MAX_WEIGHT = 3000000;
|
||||
static const unsigned int DEFAULT_BLOCK_MAX_WEIGHT = MAX_BLOCK_WEIGHT - 4000;
|
||||
/** Default for -blockmintxfee, which sets the minimum feerate for a transaction in blocks created by mining code **/
|
||||
static const unsigned int DEFAULT_BLOCK_MIN_TX_FEE = 1000;
|
||||
/** The maximum weight for transactions we're willing to relay/mine */
|
||||
|
||||
@@ -6,18 +6,24 @@
|
||||
<file alias="be_BY">locale/bitcoin_be_BY.qm</file>
|
||||
<file alias="bg_BG">locale/bitcoin_bg_BG.qm</file>
|
||||
<file alias="bg">locale/bitcoin_bg.qm</file>
|
||||
<file alias="bn">locale/bitcoin_bn.qm</file>
|
||||
<file alias="bs">locale/bitcoin_bs.qm</file>
|
||||
<file alias="ca_ES">locale/bitcoin_ca_ES.qm</file>
|
||||
<file alias="ca">locale/bitcoin_ca.qm</file>
|
||||
<file alias="ca@valencia">locale/bitcoin_ca@valencia.qm</file>
|
||||
<file alias="cs">locale/bitcoin_cs.qm</file>
|
||||
<file alias="cy">locale/bitcoin_cy.qm</file>
|
||||
<file alias="da">locale/bitcoin_da.qm</file>
|
||||
<file alias="de_DE">locale/bitcoin_de_DE.qm</file>
|
||||
<file alias="de">locale/bitcoin_de.qm</file>
|
||||
<file alias="el_GR">locale/bitcoin_el_GR.qm</file>
|
||||
<file alias="el">locale/bitcoin_el.qm</file>
|
||||
<file alias="en_AU">locale/bitcoin_en_AU.qm</file>
|
||||
<file alias="en_GB">locale/bitcoin_en_GB.qm</file>
|
||||
<file alias="en">locale/bitcoin_en.qm</file>
|
||||
<file alias="en_US">locale/bitcoin_en_US.qm</file>
|
||||
<file alias="eo">locale/bitcoin_eo.qm</file>
|
||||
<file alias="es_419">locale/bitcoin_es_419.qm</file>
|
||||
<file alias="es_AR">locale/bitcoin_es_AR.qm</file>
|
||||
<file alias="es_CL">locale/bitcoin_es_CL.qm</file>
|
||||
<file alias="es_CO">locale/bitcoin_es_CO.qm</file>
|
||||
@@ -37,13 +43,16 @@
|
||||
<file alias="fr_FR">locale/bitcoin_fr_FR.qm</file>
|
||||
<file alias="fr">locale/bitcoin_fr.qm</file>
|
||||
<file alias="gl">locale/bitcoin_gl.qm</file>
|
||||
<file alias="he_IL">locale/bitcoin_he_IL.qm</file>
|
||||
<file alias="he">locale/bitcoin_he.qm</file>
|
||||
<file alias="hi_IN">locale/bitcoin_hi_IN.qm</file>
|
||||
<file alias="hr">locale/bitcoin_hr.qm</file>
|
||||
<file alias="hu">locale/bitcoin_hu.qm</file>
|
||||
<file alias="id_ID">locale/bitcoin_id_ID.qm</file>
|
||||
<file alias="id">locale/bitcoin_id.qm</file>
|
||||
<file alias="it_IT">locale/bitcoin_it_IT.qm</file>
|
||||
<file alias="it">locale/bitcoin_it.qm</file>
|
||||
<file alias="ja_JP">locale/bitcoin_ja_JP.qm</file>
|
||||
<file alias="ja">locale/bitcoin_ja.qm</file>
|
||||
<file alias="ka">locale/bitcoin_ka.qm</file>
|
||||
<file alias="kk_KZ">locale/bitcoin_kk_KZ.qm</file>
|
||||
@@ -56,8 +65,11 @@
|
||||
<file alias="mk_MK">locale/bitcoin_mk_MK.qm</file>
|
||||
<file alias="mn">locale/bitcoin_mn.qm</file>
|
||||
<file alias="ms_MY">locale/bitcoin_ms_MY.qm</file>
|
||||
<file alias="my">locale/bitcoin_my.qm</file>
|
||||
<file alias="nb_NO">locale/bitcoin_nb_NO.qm</file>
|
||||
<file alias="nb">locale/bitcoin_nb.qm</file>
|
||||
<file alias="ne">locale/bitcoin_ne.qm</file>
|
||||
<file alias="nl_NL">locale/bitcoin_nl_NL.qm</file>
|
||||
<file alias="nl">locale/bitcoin_nl.qm</file>
|
||||
<file alias="pam">locale/bitcoin_pam.qm</file>
|
||||
<file alias="pl">locale/bitcoin_pl.qm</file>
|
||||
@@ -67,6 +79,7 @@
|
||||
<file alias="ro">locale/bitcoin_ro.qm</file>
|
||||
<file alias="ru_RU">locale/bitcoin_ru_RU.qm</file>
|
||||
<file alias="ru">locale/bitcoin_ru.qm</file>
|
||||
<file alias="si">locale/bitcoin_si.qm</file>
|
||||
<file alias="sk">locale/bitcoin_sk.qm</file>
|
||||
<file alias="sl_SI">locale/bitcoin_sl_SI.qm</file>
|
||||
<file alias="sq">locale/bitcoin_sq.qm</file>
|
||||
@@ -74,7 +87,9 @@
|
||||
<file alias="sr">locale/bitcoin_sr.qm</file>
|
||||
<file alias="sv">locale/bitcoin_sv.qm</file>
|
||||
<file alias="ta">locale/bitcoin_ta.qm</file>
|
||||
<file alias="te">locale/bitcoin_te.qm</file>
|
||||
<file alias="th_TH">locale/bitcoin_th_TH.qm</file>
|
||||
<file alias="th">locale/bitcoin_th.qm</file>
|
||||
<file alias="tr_TR">locale/bitcoin_tr_TR.qm</file>
|
||||
<file alias="tr">locale/bitcoin_tr.qm</file>
|
||||
<file alias="uk">locale/bitcoin_uk.qm</file>
|
||||
|
||||
@@ -123,7 +123,11 @@ BitcoinGUI::BitcoinGUI(const PlatformStyle *_platformStyle, const NetworkStyle *
|
||||
spinnerFrame(0),
|
||||
platformStyle(_platformStyle)
|
||||
{
|
||||
GUIUtil::restoreWindowGeometry("nWindow", QSize(850, 550), this);
|
||||
QSettings settings;
|
||||
if (!restoreGeometry(settings.value("MainWindowGeometry").toByteArray())) {
|
||||
// Restore failed (perhaps missing setting), center the window
|
||||
move(QApplication::desktop()->availableGeometry().center() - frameGeometry().center());
|
||||
}
|
||||
|
||||
QString windowTitle = tr(PACKAGE_NAME) + " - ";
|
||||
#ifdef ENABLE_WALLET
|
||||
@@ -261,7 +265,8 @@ BitcoinGUI::~BitcoinGUI()
|
||||
// Unsubscribe from notifications from core
|
||||
unsubscribeFromCoreSignals();
|
||||
|
||||
GUIUtil::saveWindowGeometry("nWindow", this);
|
||||
QSettings settings;
|
||||
settings.setValue("MainWindowGeometry", saveGeometry());
|
||||
if(trayIcon) // Hide tray icon, as deleting will let it linger until quit (on Ubuntu)
|
||||
trayIcon->hide();
|
||||
#ifdef Q_OS_MAC
|
||||
|
||||
@@ -250,8 +250,6 @@ QT_TRANSLATE_NOOP("bitcoin-core", ""
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", ""
|
||||
"You need to rebuild the database using -reindex to go back to unpruned "
|
||||
"mode. This will redownload the entire blockchain"),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", ""
|
||||
"You need to rebuild the database using -reindex-chainstate to change -txindex"),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", "%d of last 100 blocks have unexpected version"),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", "%s corrupt, salvage failed"),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", "%s is set very high!"),
|
||||
@@ -416,6 +414,7 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Wallet options:"),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", "Warning"),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", "Warning: unknown new rules activated (versionbit %i)"),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", "Whether to operate in a blocks only mode (default: %u)"),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", "You need to rebuild the database using -reindex to change -txindex"),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", "Zapping all transactions from wallet..."),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", "ZeroMQ notification options:"),
|
||||
};
|
||||
|
||||
@@ -846,19 +846,13 @@
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayoutFee13">
|
||||
<item>
|
||||
<widget class="QRadioButton" name="radioCustomPerKilobyte">
|
||||
<widget class="QLabel" name="labelCustomPerKilobyte">
|
||||
<property name="toolTip">
|
||||
<string>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.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>per kilobyte</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<attribute name="buttonGroup">
|
||||
<string notr="true">groupCustomFee</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
@@ -1285,6 +1279,5 @@
|
||||
<connections/>
|
||||
<buttongroups>
|
||||
<buttongroup name="groupFee"/>
|
||||
<buttongroup name="groupCustomFee"/>
|
||||
</buttongroups>
|
||||
</ui>
|
||||
|
||||
@@ -842,32 +842,6 @@ bool SetStartOnSystemStartup(bool fAutoStart) { return false; }
|
||||
|
||||
#endif
|
||||
|
||||
void saveWindowGeometry(const QString& strSetting, QWidget *parent)
|
||||
{
|
||||
QSettings settings;
|
||||
settings.setValue(strSetting + "Pos", parent->pos());
|
||||
settings.setValue(strSetting + "Size", parent->size());
|
||||
}
|
||||
|
||||
void restoreWindowGeometry(const QString& strSetting, const QSize& defaultSize, QWidget *parent)
|
||||
{
|
||||
QSettings settings;
|
||||
QPoint pos = settings.value(strSetting + "Pos").toPoint();
|
||||
QSize size = settings.value(strSetting + "Size", defaultSize).toSize();
|
||||
|
||||
parent->resize(size);
|
||||
parent->move(pos);
|
||||
|
||||
if ((!pos.x() && !pos.y()) || (QApplication::desktop()->screenNumber(parent) == -1))
|
||||
{
|
||||
QRect screen = QApplication::desktop()->screenGeometry();
|
||||
QPoint defaultPos((screen.width() - defaultSize.width()) / 2,
|
||||
(screen.height() - defaultSize.height()) / 2);
|
||||
parent->resize(defaultSize);
|
||||
parent->move(defaultPos);
|
||||
}
|
||||
}
|
||||
|
||||
void setClipboard(const QString& str)
|
||||
{
|
||||
QApplication::clipboard()->setText(str, QClipboard::Clipboard);
|
||||
|
||||
@@ -179,11 +179,6 @@ namespace GUIUtil
|
||||
bool GetStartOnSystemStartup();
|
||||
bool SetStartOnSystemStartup(bool fAutoStart);
|
||||
|
||||
/** Save window size and position */
|
||||
void saveWindowGeometry(const QString& strSetting, QWidget *parent);
|
||||
/** Restore window size and position */
|
||||
void restoreWindowGeometry(const QString& strSetting, const QSize &defaultSizeIn, QWidget *parent);
|
||||
|
||||
/* Convert QString to OS specific boost path through UTF-8 */
|
||||
fs::path qstringToBoostPath(const QString &path);
|
||||
|
||||
|
||||
187
src/qt/locale/bitcoin_bn.ts
Normal file
187
src/qt/locale/bitcoin_bn.ts
Normal file
@@ -0,0 +1,187 @@
|
||||
<TS language="bn" version="2.1">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
<source>Right-click to edit address or label</source>
|
||||
<translation>ঠিকানা কিংবা লেভেল সম্পাদনার জন্য রাইট-ক্লিক করুন</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Create a new address</source>
|
||||
<translation>undefined</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AddressTableModel</name>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>ঠিকানা </translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AskPassphraseDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>BanTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>BitcoinGUI</name>
|
||||
<message>
|
||||
<source>Warning</source>
|
||||
<translation>সতর্কতা</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoinControlDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditAddressDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>FreespaceChecker</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>HelpMessageDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>Intro</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ModalOverlay</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OpenURIDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OptionsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OverviewPage</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>PaymentServer</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>PeerTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject::QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QRImageWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>RPCConsole</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveCoinsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveRequestDialog</name>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>ঠিকানা </translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RecentRequestsTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsEntry</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendConfirmationDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShutdownWindow</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SignVerifyMessageDialog</name>
|
||||
<message>
|
||||
<source>The entered address is invalid.</source>
|
||||
<translation>প্রবেশকৃত ঠিকানাটি শুদ্ধ নয়।</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Please check the signature and try again.</source>
|
||||
<translation>অনুগ্রহ করে স্বাক্ষরটি পুনরায় পরীক্ষা করে আবারও চেষ্টা করুন।</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SplashScreen</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TrafficGraphWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDesc</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDescDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionView</name>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>ঠিকানা </translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletView</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>bitcoin-core</name>
|
||||
<message>
|
||||
<source>Block creation options:</source>
|
||||
<translation>ব্লক তৈরির অপশনগুলো:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Debugging/Testing options:</source>
|
||||
<translation>ডিবাগিং/টেস্টিং অপশন:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Do you want to rebuild the block database now?</source>
|
||||
<translation>আপনি কি পুনরায় ব্লক ডাটাবেইজ এখনই তৈরি করতে চান?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RPC server options:</source>
|
||||
<translation>আরপিসি সার্ভার অপশন:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This is experimental software.</source>
|
||||
<translation>এটি পরীক্ষামূলক সফটওয়্যার।</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction amount too small</source>
|
||||
<translation>লেনদেনের পরিমান অনেক ছোট</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction too large</source>
|
||||
<translation>লেনদেনর অংক অনেক বড়</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning</source>
|
||||
<translation>সতর্কতা</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading addresses...</source>
|
||||
<translation>ঠিকানাগুলো লোডিং হচ্ছে...</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
163
src/qt/locale/bitcoin_bs.ts
Normal file
163
src/qt/locale/bitcoin_bs.ts
Normal file
@@ -0,0 +1,163 @@
|
||||
<TS language="bs" version="2.1">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>AddressTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>AskPassphraseDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>BanTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>BitcoinGUI</name>
|
||||
<message>
|
||||
<source>Bitcoin</source>
|
||||
<translation>Bitcoin</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoinControlDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditAddressDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>FreespaceChecker</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>HelpMessageDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>Intro</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ModalOverlay</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OpenURIDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OptionsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OverviewPage</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>PaymentServer</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>PeerTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject::QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QRImageWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>RPCConsole</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveCoinsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveRequestDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>RecentRequestsTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsEntry</name>
|
||||
<message>
|
||||
<source>Alt+A</source>
|
||||
<translation>Alt+A</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+P</source>
|
||||
<translation>Alt+P</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendConfirmationDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShutdownWindow</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SignVerifyMessageDialog</name>
|
||||
<message>
|
||||
<source>Alt+A</source>
|
||||
<translation>Alt+A</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+P</source>
|
||||
<translation>Alt+P</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SplashScreen</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TrafficGraphWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDesc</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDescDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionView</name>
|
||||
<message>
|
||||
<source>All</source>
|
||||
<translation>Sve</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Today</source>
|
||||
<translation>Danas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This month</source>
|
||||
<translation>Ovaj mjesec</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Last month</source>
|
||||
<translation>Prošli mjesec</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This year</source>
|
||||
<translation>Ove godine</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletView</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>bitcoin-core</name>
|
||||
<message>
|
||||
<source>Bitcoin Core</source>
|
||||
<translation>Bitcoin Jezrga</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
@@ -29,10 +29,42 @@
|
||||
<source>&Delete</source>
|
||||
<translation>&Dileu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sending addresses</source>
|
||||
<translation>Anfon cyfeiriadau</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Receiving addresses</source>
|
||||
<translation>Derbyn cyfeiriadau</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy Address</source>
|
||||
<translation>&Copïo Cyfeiriad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy &Label</source>
|
||||
<translation>Copïo &Label</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Exporting Failed</source>
|
||||
<translation>Methu Allforio</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AddressTableModel</name>
|
||||
</context>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Label</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>Cyfeiriad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(dim label)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AskPassphraseDialog</name>
|
||||
<message>
|
||||
@@ -81,6 +113,14 @@
|
||||
<source>Quit application</source>
|
||||
<translation>Gadael rhaglen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&About %1</source>
|
||||
<translation>&Ynghylch %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show information about %1</source>
|
||||
<translation>Dangos gwybodaeth am %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>About &Qt</source>
|
||||
<translation>Ynghylch &Qt</translation>
|
||||
@@ -220,6 +260,18 @@
|
||||
<source>Date</source>
|
||||
<translation>Dyddiad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy address</source>
|
||||
<translation>Copïo cyfeiriad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy label</source>
|
||||
<translation>Copïo label</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(dim label)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditAddressDialog</name>
|
||||
@@ -361,6 +413,10 @@
|
||||
<source>&Label:</source>
|
||||
<translation>&Label:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy label</source>
|
||||
<translation>Copïo label</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveRequestDialog</name>
|
||||
@@ -368,9 +424,29 @@
|
||||
<source>Copy &Address</source>
|
||||
<translation>&Cyfeiriad Copi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>Cyfeiriad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Label</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RecentRequestsTableModel</name>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Dyddiad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Label</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(dim label)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsDialog</name>
|
||||
@@ -394,7 +470,11 @@
|
||||
<source>Confirm the send action</source>
|
||||
<translation>Cadarnhau'r gweithrediad anfon</translation>
|
||||
</message>
|
||||
</context>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(dim label)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsEntry</name>
|
||||
<message>
|
||||
@@ -455,15 +535,87 @@
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDesc</name>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Dyddiad</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDescDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionTableModel</name>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Dyddiad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Type</source>
|
||||
<translation>Math</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Label</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(dim label)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionView</name>
|
||||
<message>
|
||||
<source>Today</source>
|
||||
<translation>Heddiw</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This week</source>
|
||||
<translation>Yr wythnos hon</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This month</source>
|
||||
<translation>Y mis hwn</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Last month</source>
|
||||
<translation>Mis diwethaf</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This year</source>
|
||||
<translation>Eleni</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy address</source>
|
||||
<translation>Copïo cyfeiriad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy label</source>
|
||||
<translation>Copïo label</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Edit label</source>
|
||||
<translation>Golygu label</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Dyddiad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Type</source>
|
||||
<translation>Math</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Label</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>Cyfeiriad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Exporting Failed</source>
|
||||
<translation>Methu Allforio</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
@@ -476,6 +628,10 @@
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletView</name>
|
||||
<message>
|
||||
<source>&Export</source>
|
||||
<translation>&Allforio</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>bitcoin-core</name>
|
||||
|
||||
@@ -3067,7 +3067,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Accept relayed transactions received from whitelisted peers even when not relaying transactions (default: %d)</source>
|
||||
<translation>Geben Sie immer die Transaktionen, die Sie von freigegebenen Peers erhalten haben, weiter (Voreinstellung: %d)</translation>
|
||||
<translation>Immer übermittelte Transaktionen von freigegebenen Peers akzeptieren, auch wenn keine Transaktionen übermittelt werden (Standard: %d)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bind to given address and always listen on it. Use [host]:port notation for IPv6</source>
|
||||
|
||||
628
src/qt/locale/bitcoin_de_DE.ts
Normal file
628
src/qt/locale/bitcoin_de_DE.ts
Normal file
@@ -0,0 +1,628 @@
|
||||
<TS language="de_DE" version="2.1">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
<source>Right-click to edit address or label</source>
|
||||
<translation>Rechtsklick um Adresse oder Etikett zu bearbeiten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Create a new address</source>
|
||||
<translation>Eine neue Adresse erstellen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&New</source>
|
||||
<translation>&Neu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy the currently selected address to the system clipboard</source>
|
||||
<translation>Ausgewählte Adresse in die Zwischenablage kopieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy</source>
|
||||
<translation>&Kopieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>C&lose</source>
|
||||
<translation>Schliessen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete the currently selected address from the list</source>
|
||||
<translation>Ausgewählte Adresse aus der Liste löschen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export the data in the current tab to a file</source>
|
||||
<translation>Daten des aktiven Fensters exportieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Export</source>
|
||||
<translation>&Exportieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Delete</source>
|
||||
<translation>&Löschen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose the address to send coins to</source>
|
||||
<translation>Wähle die Empfängeradresse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose the address to receive coins with</source>
|
||||
<translation>Wähle die Empfangsadresse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>C&hoose</source>
|
||||
<translation>Dies sind deine Bitcoin Adressen zum Senden von Zahlungsmitteln.
|
||||
Überprüfe immer die Menge, sowie die Empfänger-Adresse vor dem Senden von Coins.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sending addresses</source>
|
||||
<translation>Sendeadresse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Receiving addresses</source>
|
||||
<translation>Empfangsadresse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy Address</source>
|
||||
<translation>&Kopiere Adresse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy &Label</source>
|
||||
<translation>Kopiere &Etikett</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Edit</source>
|
||||
<translation>&Bearbeiten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export Address List</source>
|
||||
<translation>Export Adressliste</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Comma separated file (*.csv)</source>
|
||||
<translation>Komma getrenntes Dokument (*.csv)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Exporting Failed</source>
|
||||
<translation>Export fehlgeschlagen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AddressTableModel</name>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Etikett</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>Adresse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(kein Etikett)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AskPassphraseDialog</name>
|
||||
<message>
|
||||
<source>Passphrase Dialog</source>
|
||||
<translation>Passwort Dialog</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter passphrase</source>
|
||||
<translation>Passwort eingeben</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New passphrase</source>
|
||||
<translation>Neues Passwort</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Repeat new passphrase</source>
|
||||
<translation>Neues Passwort wiederholen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Encrypt wallet</source>
|
||||
<translation>Brieftasche verschlüsseln</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This operation needs your wallet passphrase to unlock the wallet.</source>
|
||||
<translation>Diese Aktion benötigt ihr Passwort zum entsperren der Wallet.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unlock wallet</source>
|
||||
<translation>Brieftasche entriegeln</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Decrypt wallet</source>
|
||||
<translation>Brieftasche entschlüsseln</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Change passphrase</source>
|
||||
<translation>Passwort ändern</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirm wallet encryption</source>
|
||||
<translation>Brieftaschenverschlüsselung bestätigen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet encrypted</source>
|
||||
<translation>Brieftasche verschlüsselt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet encryption failed</source>
|
||||
<translation>Brieftaschenverschlüsselung fehlgeschlagen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet unlock failed</source>
|
||||
<translation>Brieftasche öffnen fehlgeschlagen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The passphrase entered for the wallet decryption was incorrect.</source>
|
||||
<translation>Inkorrektes Passwort um die Brieftasche zu entschlüsseln</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet decryption failed</source>
|
||||
<translation>Brieftasche entschlüsseln fehlgeschlagen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet passphrase was successfully changed.</source>
|
||||
<translation>Brieftaschen Passwort erfolgreich geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: The Caps Lock key is on!</source>
|
||||
<translation>Achtung: Die Umschalttaste ist eingeschaltet!</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BanTableModel</name>
|
||||
<message>
|
||||
<source>IP/Netmask</source>
|
||||
<translation>IP/Netzmaske</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Banned Until</source>
|
||||
<translation>Gesperrt bis</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BitcoinGUI</name>
|
||||
<message>
|
||||
<source>Synchronizing with network...</source>
|
||||
<translation>Über das Netzwerk abgleichen...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Overview</source>
|
||||
<translation>&Übersicht</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Node</source>
|
||||
<translation>Knoten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show general overview of wallet</source>
|
||||
<translation>Generelle Übersicht der Brieftasche </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Transactions</source>
|
||||
<translation>&Transaktionen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Browse transaction history</source>
|
||||
<translation>Zeige Transaktionsverlauf</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Quit application</source>
|
||||
<translation>Programm beenden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Options...</source>
|
||||
<translation>&Einstellungen...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Encrypt Wallet...</source>
|
||||
<translation>&Brieftasche verschlüsseln...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Backup Wallet...</source>
|
||||
<translation>&Sicherungskopie der Brieftasche...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Change Passphrase...</source>
|
||||
<translation>&Passwort ändern...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Sending addresses...</source>
|
||||
<translation>&Adressen senden...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Receiving addresses...</source>
|
||||
<translation>&Adressen empfangen...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet</source>
|
||||
<translation>Brieftasche</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Send</source>
|
||||
<translation>&Senden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Receive</source>
|
||||
<translation>&Empfangen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Settings</source>
|
||||
<translation>&Einstellungen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Help</source>
|
||||
<translation>&Hilfe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show the list of used sending addresses and labels</source>
|
||||
<translation>Zeige Liste der benutzten Sendeadressen und -etiketten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error</source>
|
||||
<translation>Fehler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning</source>
|
||||
<translation>Achtung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Information</source>
|
||||
<translation>Information</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sent transaction</source>
|
||||
<translation>Überweisung gesendet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Incoming transaction</source>
|
||||
<translation>Überweisung empfangen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoinControlDialog</name>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Datum</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirmations</source>
|
||||
<translation>Bestätigungen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirmed</source>
|
||||
<translation>Bestätigt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy address</source>
|
||||
<translation>Adresse kopieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy label</source>
|
||||
<translation>Etikett kopieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy amount</source>
|
||||
<translation>Betrag kopieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy transaction ID</source>
|
||||
<translation>Transaktions ID kopieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>yes</source>
|
||||
<translation>Ja</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>no</source>
|
||||
<translation>Nein</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(kein Etikett)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditAddressDialog</name>
|
||||
<message>
|
||||
<source>Edit Address</source>
|
||||
<translation>Adresse bearbeiten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Label</source>
|
||||
<translation>&Etikett</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Address</source>
|
||||
<translation>&Adresse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New receiving address</source>
|
||||
<translation>Neue Empfangsadresse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New sending address</source>
|
||||
<translation>Neue Sendeadresse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Edit receiving address</source>
|
||||
<translation>Empfangsadresse bearbeiten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Edit sending address</source>
|
||||
<translation>Sendeadresse bearbeiten</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>FreespaceChecker</name>
|
||||
<message>
|
||||
<source>name</source>
|
||||
<translation>Name</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>HelpMessageDialog</name>
|
||||
<message>
|
||||
<source>version</source>
|
||||
<translation>Version</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Intro</name>
|
||||
<message>
|
||||
<source>Welcome</source>
|
||||
<translation>Willkommen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error</source>
|
||||
<translation>Fehler</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ModalOverlay</name>
|
||||
<message>
|
||||
<source>Form</source>
|
||||
<translation>Formular</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown...</source>
|
||||
<translation>Unbekannt...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>OpenURIDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OptionsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OverviewPage</name>
|
||||
<message>
|
||||
<source>Form</source>
|
||||
<translation>Formular</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PaymentServer</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>PeerTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject::QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QRImageWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>RPCConsole</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveCoinsDialog</name>
|
||||
<message>
|
||||
<source>Copy label</source>
|
||||
<translation>Etikett kopieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy amount</source>
|
||||
<translation>Betrag kopieren</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveRequestDialog</name>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>Adresse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Etikett</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RecentRequestsTableModel</name>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Datum</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Etikett</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(kein Etikett)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsDialog</name>
|
||||
<message>
|
||||
<source>Copy amount</source>
|
||||
<translation>Betrag kopieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(kein Etikett)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsEntry</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendConfirmationDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShutdownWindow</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SignVerifyMessageDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SplashScreen</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TrafficGraphWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDesc</name>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Datum</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDescDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionTableModel</name>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Datum</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Etikett</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(kein Etikett)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionView</name>
|
||||
<message>
|
||||
<source>Copy address</source>
|
||||
<translation>Adresse kopieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy label</source>
|
||||
<translation>Etikett kopieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy amount</source>
|
||||
<translation>Betrag kopieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy transaction ID</source>
|
||||
<translation>Transaktions ID kopieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Comma separated file (*.csv)</source>
|
||||
<translation>Komma getrenntes Dokument (*.csv)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirmed</source>
|
||||
<translation>Bestätigt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Datum</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Etikett</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>Adresse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Exporting Failed</source>
|
||||
<translation>Export fehlgeschlagen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletView</name>
|
||||
<message>
|
||||
<source>&Export</source>
|
||||
<translation>&Exportieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export the data in the current tab to a file</source>
|
||||
<translation>Daten des aktiven Fensters exportieren</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>bitcoin-core</name>
|
||||
<message>
|
||||
<source>Information</source>
|
||||
<translation>Information</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning</source>
|
||||
<translation>Achtung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This is the minimum transaction fee you pay on every transaction.</source>
|
||||
<translation>Das ist die Mindestgebühr jeder Transaktion</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This is the transaction fee you will pay if you send a transaction.</source>
|
||||
<translation>Das ist die Gebühr für die Überweisung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction amounts must not be negative</source>
|
||||
<translation>Überweisungsbetrag kann nicht negativ sein</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction must have at least one recipient</source>
|
||||
<translation>Überweisung muss mindestens einen Empfänger haben </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Insufficient funds</source>
|
||||
<translation>Ungenügendes Guthaben</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading block index...</source>
|
||||
<translation>Block Verzeichnis laden...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading wallet...</source>
|
||||
<translation>Brieftasche laden...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Done loading</source>
|
||||
<translation>Laden abgeschlossen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error</source>
|
||||
<translation>Fehler</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
@@ -61,6 +61,14 @@
|
||||
<source>Receiving addresses</source>
|
||||
<translation>Διευθύνσεις λήψης</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
|
||||
<translation>Αυτές είναι οι Bitcoin διευθύνσεις σας για να στέλνετε πληρωμές. Να ελέγχετε πάντα το ποσό, καθώς και τη διεύθυνση παραλήπτη πριν στείλετε νομίσματα.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction.</source>
|
||||
<translation>Αυτές είναι οι Bitcoin διευθύνσεις σας για να λαμβάνετε πληρωμές. Προτείνετε να χρησιμοποιείτε μια νέα διεύθυνση παραλήπτη για κάθε συναλλαγή.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy Address</source>
|
||||
<translation>&Αντιγραφή Διεύθυνσης</translation>
|
||||
@@ -85,7 +93,11 @@
|
||||
<source>Exporting Failed</source>
|
||||
<translation>Αποτυχία Εξαγωγής</translation>
|
||||
</message>
|
||||
</context>
|
||||
<message>
|
||||
<source>There was an error trying to save the address list to %1. Please try again.</source>
|
||||
<translation>Σφάλμα κατά την προσπάθεια αποθήκευσης της λίστας διευθύνσεων στο %1. Παρακαλώ δοκιμάστε ξανά.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AddressTableModel</name>
|
||||
<message>
|
||||
@@ -119,6 +131,10 @@
|
||||
<source>Repeat new passphrase</source>
|
||||
<translation>Επανέλαβε τον νέο κωδικό πρόσβασης</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</source>
|
||||
<translation>Εισάγετε το νέο κωδικό πρόσβασης στο πορτοφόλι. <br/>Παρακαλώ χρησιμοποιείστε έναν κωδικό με <b>δέκα ή περισσότερους τυχαίους χαρακτήρες </b>, ή <b>οχτώ ή παραπάνω λέξεις </b>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Encrypt wallet</source>
|
||||
<translation>Κρυπτογράφηση πορτοφολιού</translation>
|
||||
|
||||
@@ -3990,7 +3990,7 @@
|
||||
<context>
|
||||
<name>bitcoin-core</name>
|
||||
<message>
|
||||
<location filename="../bitcoinstrings.cpp" line="+343"/>
|
||||
<location filename="../bitcoinstrings.cpp" line="+341"/>
|
||||
<source>Options:</source>
|
||||
<translation>Options:</translation>
|
||||
</message>
|
||||
@@ -4015,7 +4015,7 @@
|
||||
<translation>Accept command line and JSON-RPC commands</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-207"/>
|
||||
<location line="-205"/>
|
||||
<source>Distributed under the MIT software license, see the accompanying file %s or %s</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -4040,7 +4040,7 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+150"/>
|
||||
<location line="+148"/>
|
||||
<source>Error: A fatal internal error occurred, see debug.log for details</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -4065,7 +4065,7 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-386"/>
|
||||
<location line="-384"/>
|
||||
<source>Bitcoin Core</source>
|
||||
<translation type="unfinished">Bitcoin Core</translation>
|
||||
</message>
|
||||
@@ -4221,11 +4221,6 @@
|
||||
</message>
|
||||
<message>
|
||||
<location line="+11"/>
|
||||
<source>You need to rebuild the database using -reindex-chainstate to change -txindex</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+2"/>
|
||||
<source>%d of last 100 blocks have unexpected version</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -4580,7 +4575,7 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-389"/>
|
||||
<location line="-387"/>
|
||||
<source>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</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -4655,7 +4650,7 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+9"/>
|
||||
<location line="+7"/>
|
||||
<source>(default: %u)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -4839,6 +4834,11 @@
|
||||
<source>Whether to operate in a blocks only mode (default: %u)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+1"/>
|
||||
<source>You need to rebuild the database using -reindex to change -txindex</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+1"/>
|
||||
<source>Zapping all transactions from wallet...</source>
|
||||
@@ -4850,22 +4850,22 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-76"/>
|
||||
<location line="-77"/>
|
||||
<source>Password for JSON-RPC connections</source>
|
||||
<translation>Password for JSON-RPC connections</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-261"/>
|
||||
<location line="-259"/>
|
||||
<source>Execute command when the best block changes (%s in cmd is replaced by block hash)</source>
|
||||
<translation>Execute command when the best block changes (%s in cmd is replaced by block hash)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+184"/>
|
||||
<location line="+182"/>
|
||||
<source>Allow DNS lookups for -addnode, -seednode and -connect</source>
|
||||
<translation>Allow DNS lookups for -addnode, -seednode and -connect</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-253"/>
|
||||
<location line="-251"/>
|
||||
<source>(1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -5000,7 +5000,7 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+13"/>
|
||||
<location line="+11"/>
|
||||
<source>%s is set very high!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
175
src/qt/locale/bitcoin_en_AU.ts
Normal file
175
src/qt/locale/bitcoin_en_AU.ts
Normal file
@@ -0,0 +1,175 @@
|
||||
<TS language="en_AU" version="2.1">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>AddressTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>AskPassphraseDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>BanTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>BitcoinGUI</name>
|
||||
<message>
|
||||
<source>Synchronizing with network...</source>
|
||||
<translation>Synchronising with network...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoinControlDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditAddressDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>FreespaceChecker</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>HelpMessageDialog</name>
|
||||
<message>
|
||||
<source>Start minimized</source>
|
||||
<translation>Start minimised</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Intro</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ModalOverlay</name>
|
||||
<message>
|
||||
<source>Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below.</source>
|
||||
<translation>Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronising with the bitcoin network, as detailed below.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>OpenURIDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OptionsDialog</name>
|
||||
<message>
|
||||
<source>Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu.</source>
|
||||
<translation>Minimise instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show only a tray icon after minimizing the window.</source>
|
||||
<translation>Show only a tray icon after minimising the window.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Minimize to the tray instead of the taskbar</source>
|
||||
<translation>&Minimise to the tray instead of the taskbar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>M&inimize on close</source>
|
||||
<translation>M&inimise on close</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>OverviewPage</name>
|
||||
<message>
|
||||
<source>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</source>
|
||||
<translation>The displayed information may be out of date. Your wallet automatically synchronises with the Bitcoin network after a connection is established, but this process has not completed yet.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PaymentServer</name>
|
||||
<message>
|
||||
<source>Payment request is not initialized.</source>
|
||||
<translation>Payment request is not initialised.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PeerTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject::QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QRImageWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>RPCConsole</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveCoinsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveRequestDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>RecentRequestsTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsDialog</name>
|
||||
<message>
|
||||
<source>(Smart fee not initialized yet. This usually takes a few blocks...)</source>
|
||||
<translation>(Smart fee not initialised yet. This usually takes a few blocks...)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsEntry</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendConfirmationDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShutdownWindow</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SignVerifyMessageDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SplashScreen</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TrafficGraphWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDesc</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDescDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionView</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletView</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>bitcoin-core</name>
|
||||
<message>
|
||||
<source>Error initializing block database</source>
|
||||
<translation>Error initialising block database</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error initializing wallet database environment %s!</source>
|
||||
<translation>Error initialising wallet database environment %s!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Initialization sanity check failed. %s is shutting down.</source>
|
||||
<translation>Initialisation sanity check failed. %s is shutting down.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Randomize credentials for every proxy connection. This enables Tor stream isolation (default: %u)</source>
|
||||
<translation>Randomise credentials for every proxy connection. This enables Tor stream isolation (default: %u)</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
175
src/qt/locale/bitcoin_en_US.ts
Normal file
175
src/qt/locale/bitcoin_en_US.ts
Normal file
@@ -0,0 +1,175 @@
|
||||
<TS language="en_US" version="2.1">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
<source>Right-click to edit address or label</source>
|
||||
<translation>Right-click to edit address or label</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Create a new address</source>
|
||||
<translation>Create a new address</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&New</source>
|
||||
<translation>&New</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy the currently selected address to the system clipboard</source>
|
||||
<translation>Copy the currently selected address to the system clipboard</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy</source>
|
||||
<translation>&Copy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>C&lose</source>
|
||||
<translation>C&lose</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete the currently selected address from the list</source>
|
||||
<translation>Delete the currently selected address from the list</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export the data in the current tab to a file</source>
|
||||
<translation>Export the data in the current tab to a file</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Export</source>
|
||||
<translation>&Export</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Delete</source>
|
||||
<translation>&Delete</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AddressTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>AskPassphraseDialog</name>
|
||||
<message>
|
||||
<source>Passphrase Dialog</source>
|
||||
<translation>Passphrase Dialog</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter passphrase</source>
|
||||
<translation>Enter passphrase</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New passphrase</source>
|
||||
<translation>New passphrase</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Repeat new passphrase</source>
|
||||
<translation>Repeat new passphrase</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BanTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>BitcoinGUI</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoinControlDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditAddressDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>FreespaceChecker</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>HelpMessageDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>Intro</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ModalOverlay</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OpenURIDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OptionsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OverviewPage</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>PaymentServer</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>PeerTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject::QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QRImageWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>RPCConsole</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveCoinsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveRequestDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>RecentRequestsTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsEntry</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendConfirmationDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShutdownWindow</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SignVerifyMessageDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SplashScreen</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TrafficGraphWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDesc</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDescDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionView</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletView</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>bitcoin-core</name>
|
||||
</context>
|
||||
</TS>
|
||||
167
src/qt/locale/bitcoin_es_419.ts
Normal file
167
src/qt/locale/bitcoin_es_419.ts
Normal file
@@ -0,0 +1,167 @@
|
||||
<TS language="es_419" version="2.1">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
<source>Right-click to edit address or label</source>
|
||||
<translation>Haga clic para editar la dirección o etiqueta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Create a new address</source>
|
||||
<translation>Crear una nueva dirección</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&New</source>
|
||||
<translation>&New</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy the currently selected address to the system clipboard</source>
|
||||
<translation>Copia la dirección seleccionada al portapapeles del sistema</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete the currently selected address from the list</source>
|
||||
<translation>Borrar la dirección que esta seleccionada en la lista</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export the data in the current tab to a file</source>
|
||||
<translation>Exportar los datos de la actual tabla hacia un archivo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose the address to send coins to</source>
|
||||
<translation>Seleccione la dirección a la que enviará las monedas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose the address to receive coins with</source>
|
||||
<translation>Seleccione la dirección con la que recibirá las monedas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sending addresses</source>
|
||||
<translation>Enviando direcciones</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Receiving addresses</source>
|
||||
<translation>Recibiendo direcciones</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
|
||||
<translation>Estas son sus direcciones de Bitcoin para enviar sus pagos. Siempre revise el monto y la dirección recibida antes de enviar monedas.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AddressTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>AskPassphraseDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>BanTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>BitcoinGUI</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoinControlDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditAddressDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>FreespaceChecker</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>HelpMessageDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>Intro</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ModalOverlay</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OpenURIDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OptionsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OverviewPage</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>PaymentServer</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>PeerTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject::QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QRImageWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>RPCConsole</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveCoinsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveRequestDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>RecentRequestsTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsEntry</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendConfirmationDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShutdownWindow</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SignVerifyMessageDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SplashScreen</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TrafficGraphWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDesc</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDescDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionView</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletView</name>
|
||||
<message>
|
||||
<source>Export the data in the current tab to a file</source>
|
||||
<translation>Exportar los datos de la actual tabla hacia un archivo</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>bitcoin-core</name>
|
||||
</context>
|
||||
</TS>
|
||||
@@ -3,23 +3,23 @@
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
<source>Right-click to edit address or label</source>
|
||||
<translation>Haz clic derecho para editar la dirección o etiqueta</translation>
|
||||
<translation>Haga clic en el botón derecho para editar la dirección o etiqueta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Create a new address</source>
|
||||
<translation>Crear una nueva dirección</translation>
|
||||
<translation>Cree una nueva dirección</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&New</source>
|
||||
<translation>&Nuevo</translation>
|
||||
<translation> Y Nuevo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy the currently selected address to the system clipboard</source>
|
||||
<translation>Copiar la dirección seleccionada al portapapeles del sistema</translation>
|
||||
<translation>Copie la dirección seleccionada al portapapeles del sistema</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy</source>
|
||||
<translation>&Copiar</translation>
|
||||
<translation>Y Copiar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>C&lose</source>
|
||||
@@ -27,19 +27,19 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete the currently selected address from the list</source>
|
||||
<translation>Eliminar la dirección seleccionada de la lista</translation>
|
||||
<translation>Elimine la dirección seleccionada de la lista</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export the data in the current tab to a file</source>
|
||||
<translation>Exportar los datos en la ficha actual a un archivo</translation>
|
||||
<translation>Exporte los datos en la ficha actual a un archivo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Export</source>
|
||||
<translation>&Exportar</translation>
|
||||
<translation>Y Exportar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Delete</source>
|
||||
<translation>&Eliminar</translation>
|
||||
<translation>Y Eliminar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose the address to send coins to</source>
|
||||
@@ -55,19 +55,19 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Sending addresses</source>
|
||||
<translation>Enviando direcciones</translation>
|
||||
<translation>Direcciones para hacer pagos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Receiving addresses</source>
|
||||
<translation>Recibiendo direcciones</translation>
|
||||
<translation>Direcciones para recibir pagos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
|
||||
<translation>Estas son sus direcciones Bitcoin para enviar pagos. Verifique siempre la cantidad y la dirección de recibimiento antes de enviar monedas.</translation>
|
||||
<translation>Estas son sus direcciones Bitcoin para enviar pagos. Verifique siempre la cantidad y la dirección de destino antes de enviar monedas.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction.</source>
|
||||
<translation>Estas son sus direcciones Bitcoin para recibir pagos. Se recomienda utilizar una nueva dirección de recibimiento para cada transacción</translation>
|
||||
<translation>Estas son sus direcciones Bitcoin para recibir pagos. Se recomienda utilizar una nueva dirección de recepción para cada transacción</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy Address</source>
|
||||
@@ -87,15 +87,15 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Comma separated file (*.csv)</source>
|
||||
<translation>Archivo separado de coma (*.csv)</translation>
|
||||
<translation>Archivo separado mediante coma (*.csv)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Exporting Failed</source>
|
||||
<translation>Falló la exportación</translation>
|
||||
<translation>No se ha podido completar la exportación</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>There was an error trying to save the address list to %1. Please try again.</source>
|
||||
<translation>Había un error intentando guardar la lista de direcciones en %1. Por favor inténtelo de nuevo.</translation>
|
||||
<translation>Se ha producido un error intentando guardar la lista de direcciones en %1. Por favor inténtelo de nuevo.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -117,15 +117,15 @@
|
||||
<name>AskPassphraseDialog</name>
|
||||
<message>
|
||||
<source>Passphrase Dialog</source>
|
||||
<translation>Diálogo de contraseña</translation>
|
||||
<translation>Cuadro de diálogo de la frase de contraseña</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter passphrase</source>
|
||||
<translation>Introducir contraseña</translation>
|
||||
<translation>Introduzca frase de contraseña</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New passphrase</source>
|
||||
<translation>Nueva contraseña</translation>
|
||||
<translation>Repita la nueva frase de contraseña</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Repeat new passphrase</source>
|
||||
@@ -137,7 +137,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Encrypt wallet</source>
|
||||
<translation>Monedero encriptado</translation>
|
||||
<translation>Encripte el Monedero</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This operation needs your wallet passphrase to unlock the wallet.</source>
|
||||
@@ -531,6 +531,14 @@
|
||||
<source>Incoming transaction</source>
|
||||
<translation>Transacción entrante</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>HD key generation is <b>enabled</b></source>
|
||||
<translation>La generación de claves HD está <b>activada</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>HD key generation is <b>disabled</b></source>
|
||||
<translation>La generación de claves HD está <b>desactivada</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet is <b>encrypted</b> and currently <b>unlocked</b></source>
|
||||
<translation>El monedero está <b>cifrado</b> y actualmente <b>desbloqueado</b></translation>
|
||||
@@ -719,7 +727,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>New receiving address</source>
|
||||
<translation>Nueva dirección de recivimiento</translation>
|
||||
<translation>Nueva dirección de recepción</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New sending address</source>
|
||||
@@ -727,7 +735,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Edit receiving address</source>
|
||||
<translation>Editar dirección de recivimiento</translation>
|
||||
<translation>Editar dirección de recepción</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Edit sending address</source>
|
||||
@@ -877,6 +885,10 @@
|
||||
<source>Form</source>
|
||||
<translation>Formulario</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below.</source>
|
||||
<translation>Las transacciones recientes podrían no ser visibles todavía, por lo que el balance de la cartera podría ser incorrecto. Esta información será correcta una vez su cartera se haya terminado de sincronizar con la red bitcoin, como se detalla más abajo.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Number of blocks left</source>
|
||||
<translation>Número de bloques restantes</translation>
|
||||
@@ -1395,6 +1407,26 @@
|
||||
<source>%1 ms</source>
|
||||
<translation>%1 ms</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%n second(s)</source>
|
||||
<translation><numerusform>%n segundo</numerusform><numerusform>%n segundos</numerusform></translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%n minute(s)</source>
|
||||
<translation><numerusform>%n minuto</numerusform><numerusform>%n minutos</numerusform></translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%n hour(s)</source>
|
||||
<translation><numerusform>%n hora</numerusform><numerusform>%n horas</numerusform></translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%n day(s)</source>
|
||||
<translation><numerusform>%n día</numerusform><numerusform>%n días</numerusform></translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%n week(s)</source>
|
||||
<translation><numerusform>%n semana</numerusform><numerusform>%n semanas</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 and %2</source>
|
||||
<translation>%1 y %2</translation>
|
||||
@@ -1410,7 +1442,15 @@
|
||||
<source>Error: Specified data directory "%1" does not exist.</source>
|
||||
<translation>Error: directorio especificado "%1" no existe.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<message>
|
||||
<source>Error: Cannot parse configuration file: %1. Only use key=value syntax.</source>
|
||||
<translation>Error: no se puede interpretar el archivo de configuración: %1. Utilize exclusivamente sintaxis clave=valor.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error: %1</source>
|
||||
<translation>Error: %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QRImageWidget</name>
|
||||
<message>
|
||||
@@ -1588,6 +1628,10 @@
|
||||
<source>Ping Wait</source>
|
||||
<translation>Espera de Ping</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Min Ping</source>
|
||||
<translation>Ping mín.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Time Offset</source>
|
||||
<translation>Desplazamiento de tiempo</translation>
|
||||
@@ -1648,6 +1692,14 @@
|
||||
<source>1 &year</source>
|
||||
<translation>1 &año</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Disconnect</source>
|
||||
<translation>&Desconectar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Unban</source>
|
||||
<translation>&Desbanear</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Welcome to the %1 RPC console.</source>
|
||||
<translation>Bienvenido a la consola RPC %1.</translation>
|
||||
@@ -1660,6 +1712,14 @@
|
||||
<source>Type <b>help</b> for an overview of available commands.</source>
|
||||
<translation>Escriba <b>help</b> para ver un resumen de los comandos disponibles.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramification of a command.</source>
|
||||
<translation>ADVERTENCIA: algunos estafadores han estado pidiendo a los usuarios que escriban comandos aquí, robando el contenido de sus carteras. No use esta consola sin entender completamente las ramificaciones del comando.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Network activity disabled</source>
|
||||
<translation>Actividad de red desactivada</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 B</source>
|
||||
<translation>%1 B</translation>
|
||||
@@ -2104,6 +2164,10 @@
|
||||
<source>Transaction creation failed!</source>
|
||||
<translation>¡Falló la creación de transacción!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The transaction was rejected with the following reason: %1</source>
|
||||
<translation>Esta transacción fue rechazada por la siguiente razón: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>A fee higher than %1 is considered an absurdly high fee.</source>
|
||||
<translation>Una couta mayor que %1 se considera una cuota irracionalmente alta.</translation>
|
||||
@@ -2112,6 +2176,10 @@
|
||||
<source>Payment request expired.</source>
|
||||
<translation>Solicitud de pago caducada.</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%n block(s)</source>
|
||||
<translation><numerusform>%n bloque</numerusform><numerusform>%n bloques</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pay only the required fee of %1</source>
|
||||
<translation>Pagar únicamente la cuota solicitada de %1</translation>
|
||||
@@ -2124,6 +2192,14 @@
|
||||
<source>Warning: Unknown change address</source>
|
||||
<translation>Alerta: dirección cambiada desconocida</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirm custom change address</source>
|
||||
<translation>Confirmar dirección de cambio personalizada</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure?</source>
|
||||
<translation>La dirección que seleccionó para el cambio no es parte de esta cartera. Parte o la totalidad de los fondos de su cartera podrían ser enviados a esta dirección. ¿Está seguro?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(sin etiqueta)</translation>
|
||||
@@ -2385,6 +2461,10 @@
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDesc</name>
|
||||
<message numerus="yes">
|
||||
<source>Open for %n more block(s)</source>
|
||||
<translation><numerusform>Abierto para %n bloque más</numerusform><numerusform>Abierto para %n bloques más</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open until %1</source>
|
||||
<translation>Abierto hasta %1</translation>
|
||||
@@ -3658,6 +3738,10 @@
|
||||
<source>Threshold for disconnecting misbehaving peers (default: %u)</source>
|
||||
<translation>Umbral para la desconexión de pares con mal comportamiento (predeterminado: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction amounts must not be negative</source>
|
||||
<translation>Las cantidades de las transacciones no pueden ser negativas.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown network specified in -onlynet: '%s'</source>
|
||||
<translation>La red especificada en -onlynet '%s' es desconocida</translation>
|
||||
|
||||
@@ -1003,6 +1003,10 @@
|
||||
<source>Map port using &UPnP</source>
|
||||
<translation>מיפוי פתחה באמצעות UPnP</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Connect to the Bitcoin network through a SOCKS5 proxy.</source>
|
||||
<translation>התחבר לרשת הביטקוין דרך פרוקסי SOCKS5.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Proxy &IP:</source>
|
||||
<translation>כתובת ה־IP של המ&תווך:</translation>
|
||||
|
||||
203
src/qt/locale/bitcoin_he_IL.ts
Normal file
203
src/qt/locale/bitcoin_he_IL.ts
Normal file
@@ -0,0 +1,203 @@
|
||||
<TS language="he_IL" version="2.1">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
<source>Right-click to edit address or label</source>
|
||||
<translation>קליק ימני כדי לערוך כתובת או תווית</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Create a new address</source>
|
||||
<translation>צור כתובת חדשה</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&New</source>
|
||||
<translation>חדש</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy the currently selected address to the system clipboard</source>
|
||||
<translation>העתק את הכתובת הנבחרת ללוח</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy</source>
|
||||
<translation>העתק</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>C&lose</source>
|
||||
<translation>סגור</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete the currently selected address from the list</source>
|
||||
<translation>מחק את הכתובת הנבחרת מהרשימה</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export the data in the current tab to a file</source>
|
||||
<translation>יצא את המידע בעמוד הנוכחי לקובץ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Export</source>
|
||||
<translation>ייצוא</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Delete</source>
|
||||
<translation>מחק</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose the address to send coins to</source>
|
||||
<translation>בחר את הכתובת כדי לשלוח אליה מטבעות</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose the address to receive coins with</source>
|
||||
<translation>בחר את הכתובת כדי לקבל אליה מטבעות</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>C&hoose</source>
|
||||
<translation>בחר</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sending addresses</source>
|
||||
<translation>שולח כתובות</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Receiving addresses</source>
|
||||
<translation>מקבל כתובות</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
|
||||
<translation>אלו הן כתובות הביטקוין שלך לשליחת תשלומים. תמיד בדוק את כתובת הארנק המקבל לפני שליחת מטבעות</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction.</source>
|
||||
<translation>אלו הן כתובות הביטקוין שלך לקבלת תשלומים. מומלץ להשתמש בכתובת חדשה בכל העברת מטבעות</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AddressTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>AskPassphraseDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>BanTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>BitcoinGUI</name>
|
||||
<message>
|
||||
<source>Bitcoin</source>
|
||||
<translation>ביטקוין</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet</source>
|
||||
<translation>ארנק</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoinControlDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditAddressDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>FreespaceChecker</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>HelpMessageDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>Intro</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ModalOverlay</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OpenURIDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OptionsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OverviewPage</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>PaymentServer</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>PeerTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject::QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QRImageWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>RPCConsole</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveCoinsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveRequestDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>RecentRequestsTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsEntry</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendConfirmationDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShutdownWindow</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SignVerifyMessageDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SplashScreen</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TrafficGraphWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDesc</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDescDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionView</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletView</name>
|
||||
<message>
|
||||
<source>&Export</source>
|
||||
<translation>ייצוא</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export the data in the current tab to a file</source>
|
||||
<translation>יצא את המידע בעמוד הנוכחי לקובץ</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>bitcoin-core</name>
|
||||
</context>
|
||||
</TS>
|
||||
@@ -11,7 +11,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>&New</source>
|
||||
<translation>नया</translation>
|
||||
<translation>&NEW</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy the currently selected address to the system clipboard</source>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
171
src/qt/locale/bitcoin_id.ts
Normal file
171
src/qt/locale/bitcoin_id.ts
Normal file
@@ -0,0 +1,171 @@
|
||||
<TS language="id" version="2.1">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
<source>Right-click to edit address or label</source>
|
||||
<translation>Klik kanan untuk mengubah alamat atau label</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Create a new address</source>
|
||||
<translation>Buat sebuah alamat baru</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&New</source>
|
||||
<translation>&Baru</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy the currently selected address to the system clipboard</source>
|
||||
<translation>Salin alamat yang dipilih ke dalam clipboard sistem</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy</source>
|
||||
<translation>&Salin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>C&lose</source>
|
||||
<translation>&Tutup</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete the currently selected address from the list</source>
|
||||
<translation>Hapus alamat yang dipilih dari daftar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Delete</source>
|
||||
<translation>&Hapus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose the address to send coins to</source>
|
||||
<translation>Pilih alamat untuk mengirim koin kepada</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>C&hoose</source>
|
||||
<translation>P&ilih</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sending addresses</source>
|
||||
<translation>Alamat mengirim</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Receiving addresses</source>
|
||||
<translation>Alamat menerima</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy Address</source>
|
||||
<translation>&Salin Alamat</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AddressTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>AskPassphraseDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>BanTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>BitcoinGUI</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoinControlDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditAddressDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>FreespaceChecker</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>HelpMessageDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>Intro</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ModalOverlay</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OpenURIDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OptionsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OverviewPage</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>PaymentServer</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>PeerTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject::QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QRImageWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>RPCConsole</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveCoinsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveRequestDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>RecentRequestsTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsEntry</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendConfirmationDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShutdownWindow</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SignVerifyMessageDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SplashScreen</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TrafficGraphWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDesc</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDescDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionView</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletView</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>bitcoin-core</name>
|
||||
</context>
|
||||
</TS>
|
||||
@@ -3,7 +3,7 @@
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
<source>Right-click to edit address or label</source>
|
||||
<translation>Tasto destro per modificare l'indirizzo o l'etichetta</translation>
|
||||
<translation>Fare clic con il tasto destro del mouse per modificare l'indirizzo o l'etichetta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Create a new address</source>
|
||||
@@ -881,6 +881,10 @@
|
||||
<source>Form</source>
|
||||
<translation>Modulo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below.</source>
|
||||
<translation>Transazioni recenti potrebbero non essere visibili ancora, perciò il saldo del tuo portafoglio potrebbe non essere corretto. Questa informazione risulterà corretta quando il tuo portafoglio avrà terminato la sincronizzazione con la rete bitcoin, come indicato in dettaglio più sotto.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Number of blocks left</source>
|
||||
<translation>Numero di blocchi mancanti</translation>
|
||||
@@ -1431,6 +1435,14 @@ Per specificare più URL separarli con una barra verticale "|".</translation>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject::QObject</name>
|
||||
<message>
|
||||
<source>Error: Specified data directory "%1" does not exist.</source>
|
||||
<translation>Errore: La cartella dati "%1" specificata non esiste.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error: Cannot parse configuration file: %1. Only use key=value syntax.</source>
|
||||
<translation>Errore: impossibile interpretare il file di configurazione: %1. Usare esclusivamente la sintassi chiave=valore.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error: %1</source>
|
||||
<translation>Errore: %1</translation>
|
||||
@@ -2165,6 +2177,10 @@ Per specificare più URL separarli con una barra verticale "|".</translation>
|
||||
<source>Pay only the required fee of %1</source>
|
||||
<translation> Paga solamente la commissione richiesta di %1</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>Estimated to begin confirmation within %n block(s).</source>
|
||||
<translation><numerusform>Inizio delle conferme stimato entro %n blocchi.</numerusform><numerusform>Inizio delle conferme stimato entro %n blocchi.</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: Invalid Bitcoin address</source>
|
||||
<translation>Attenzione: Indirizzo Bitcoin non valido</translation>
|
||||
@@ -2592,6 +2608,10 @@ Per specificare più URL separarli con una barra verticale "|".</translation>
|
||||
<source>Unconfirmed</source>
|
||||
<translation>Non confermata</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Abandoned</source>
|
||||
<translation>Abbandonato</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirmed (%1 confirmations)</source>
|
||||
<translation>Confermata (%1 conferme)</translation>
|
||||
@@ -2608,6 +2628,10 @@ Per specificare più URL separarli con una barra verticale "|".</translation>
|
||||
<source>Received with</source>
|
||||
<translation>Ricevuto tramite</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Received from</source>
|
||||
<translation>Ricevuto da</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sent to</source>
|
||||
<translation>Inviato a</translation>
|
||||
@@ -2715,6 +2739,10 @@ Per specificare più URL separarli con una barra verticale "|".</translation>
|
||||
<source>Min amount</source>
|
||||
<translation>Importo minimo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Abandon transaction</source>
|
||||
<translation>Abbandona transazione </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy address</source>
|
||||
<translation>Copia indirizzo</translation>
|
||||
|
||||
2645
src/qt/locale/bitcoin_ja_JP.ts
Normal file
2645
src/qt/locale/bitcoin_ja_JP.ts
Normal file
File diff suppressed because it is too large
Load Diff
@@ -44,6 +44,10 @@
|
||||
</context>
|
||||
<context>
|
||||
<name>AddressTableModel</name>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>Adresas</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AskPassphraseDialog</name>
|
||||
@@ -113,6 +117,10 @@
|
||||
<source>&About %1</source>
|
||||
<translation>&Apie %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show information about %1</source>
|
||||
<translation>Rodyti informaciją apie %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>About &Qt</source>
|
||||
<translation>Apie &Qt</translation>
|
||||
@@ -245,6 +253,12 @@
|
||||
<source>Catching up...</source>
|
||||
<translation>Vejamasi...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Date: %1
|
||||
</source>
|
||||
<translation>Data: %1
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sent transaction</source>
|
||||
<translation>Sandoris nusiųstas</translation>
|
||||
@@ -716,6 +730,10 @@
|
||||
<source>Copy &Address</source>
|
||||
<translation>&Kopijuoti adresą</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>Adresas</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RecentRequestsTableModel</name>
|
||||
@@ -900,6 +918,10 @@
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionView</name>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>Adresas</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
|
||||
@@ -37,10 +37,46 @@
|
||||
<source>&Delete</source>
|
||||
<translation>&Dzēst</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose the address to send coins to</source>
|
||||
<translation>Izvēlies adresi uz kuru sūtīt bitcoins</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose the address to receive coins with</source>
|
||||
<translation>Izvēlies adresi ar kuru saņemt bitcoins</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy Address</source>
|
||||
<translation>&Kopēt adresi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Edit</source>
|
||||
<translation>&Rediģēt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export Address List</source>
|
||||
<translation>Eksportēt Adrešu Sarakstu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Exporting Failed</source>
|
||||
<translation>Eksportēšana Neizdevās</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AddressTableModel</name>
|
||||
</context>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Nosaukums</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>Adrese</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(bez nosaukuma)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AskPassphraseDialog</name>
|
||||
<message>
|
||||
@@ -59,6 +95,30 @@
|
||||
<source>Repeat new passphrase</source>
|
||||
<translation>Jaunā parole vēlreiz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Encrypt wallet</source>
|
||||
<translation>Šifrēt maciņu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unlock wallet</source>
|
||||
<translation>Atslēgt maciņu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Decrypt wallet</source>
|
||||
<translation>Atšifrēt maciņu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirm wallet encryption</source>
|
||||
<translation>Apstiprināt maciņa šifrēšanu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Are you sure you wish to encrypt your wallet?</source>
|
||||
<translation>Vai tu tiešām vēlies šifrēt savu maciņu?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet encryption failed</source>
|
||||
<translation>Maciņa šifrēšana neizdevās</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BanTableModel</name>
|
||||
@@ -328,6 +388,10 @@
|
||||
<source>Confirmed</source>
|
||||
<translation>Apstiprināts</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(bez nosaukuma)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditAddressDialog</name>
|
||||
@@ -840,9 +904,25 @@
|
||||
<source>&Save Image...</source>
|
||||
<translation>&Saglabāt Attēlu...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>Adrese</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Nosaukums</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RecentRequestsTableModel</name>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Nosaukums</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(bez nosaukuma)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsDialog</name>
|
||||
@@ -926,7 +1006,11 @@
|
||||
<source>S&end</source>
|
||||
<translation>&Sūtīt</translation>
|
||||
</message>
|
||||
</context>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(bez nosaukuma)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsEntry</name>
|
||||
<message>
|
||||
@@ -1081,9 +1165,29 @@
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionTableModel</name>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Nosaukums</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(bez nosaukuma)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionView</name>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Nosaukums</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>Adrese</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Exporting Failed</source>
|
||||
<translation>Eksportēšana Neizdevās</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
|
||||
@@ -318,6 +318,22 @@ Alihkan fail data ke dalam tab semasa</translation>
|
||||
<source>Open &URI...</source>
|
||||
<translation>Buka &URI...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Click to disable network activity.</source>
|
||||
<translation>Tekan untuk lumpuhkan rangkaian</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Network activity disabled.</source>
|
||||
<translation>Aktiviti rangkaian dilumpuhkan</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Click to enable network activity again.</source>
|
||||
<translation>Tekan untuk mengaktifkan rangkain semula</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Syncing Headers (%1%)...</source>
|
||||
<translation>Penyelarasn tajuk (%1%)...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reindexing blocks on disk...</source>
|
||||
<translation>Reindexi blok pada cakera...</translation>
|
||||
@@ -330,6 +346,70 @@ Alihkan fail data ke dalam tab semasa</translation>
|
||||
<source>Backup wallet to another location</source>
|
||||
<translation>Wallet sandaran ke lokasi lain</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Change the passphrase used for wallet encryption</source>
|
||||
<translation>Tukar kata laluan untuk dompet disulitkan</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Debug window</source>
|
||||
<translation>Tetingkap Debug</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open debugging and diagnostic console</source>
|
||||
<translation>buka debug dan konsol diagnostik</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Verify message...</source>
|
||||
<translation>sahkan mesej</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bitcoin</source>
|
||||
<translation>Bitcoin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet</source>
|
||||
<translation>dompet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Send</source>
|
||||
<translation>hantar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Receive</source>
|
||||
<translation>terima</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Show / Hide</source>
|
||||
<translation>&tunjuk/sembunyi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show or hide the main Window</source>
|
||||
<translation>tunjuk atau sembunyi tetingkap utama</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Encrypt the private keys that belong to your wallet</source>
|
||||
<translation>sulitkan kata laluan milik peribadi anda </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sign messages with your Bitcoin addresses to prove you own them</source>
|
||||
<translation>Log mesej dengan alamat Bitcoin anda untuk membuktikan anda memilikinya</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Verify messages to ensure they were signed with specified Bitcoin addresses</source>
|
||||
<translation>Sahkan mesej untuk memastikan mereka telah ditandatangani dengan alamat Bitcoin yang ditentukan</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&File</source>
|
||||
<translation>fail</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Settings</source>
|
||||
<translation>tetapan</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Help</source>
|
||||
<translation>tolong</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoinControlDialog</name>
|
||||
|
||||
163
src/qt/locale/bitcoin_my.ts
Normal file
163
src/qt/locale/bitcoin_my.ts
Normal file
@@ -0,0 +1,163 @@
|
||||
<TS language="my" version="2.1">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
<source>Right-click to edit address or label</source>
|
||||
<translation>လိပ်စာ သို့မဟုတ် ခေါင်းစဉ်တပ်ရန် Right-click နှိပ်ပါ။</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Create a new address</source>
|
||||
<translation>လိပ်စာအသစ်ယူမယ်။</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&New</source>
|
||||
<translation>&အသစ်</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy the currently selected address to the system clipboard</source>
|
||||
<translation>လက်ရှိရွေးထားတဲ့ လိပ်စာကို clipboard ပေါ်တင်မယ်။</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy</source>
|
||||
<translation>&ကူးမယ်</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete the currently selected address from the list</source>
|
||||
<translation>လက်ရှိရွေးထားတဲ့ လိပ်စာကို ဖျက်မယ်။</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export the data in the current tab to a file</source>
|
||||
<translation>လက်ရှိ tab မှာရှိတဲ့ဒေတာတွေကို ဖိုင်လ်မှာသိမ်းမယ်။</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Export</source>
|
||||
<translation>&ထုတ်ယူသိမ်းဆည်း</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Delete</source>
|
||||
<translation>&ဖျက်</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AddressTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>AskPassphraseDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>BanTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>BitcoinGUI</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoinControlDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditAddressDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>FreespaceChecker</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>HelpMessageDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>Intro</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ModalOverlay</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OpenURIDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OptionsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OverviewPage</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>PaymentServer</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>PeerTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject::QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QRImageWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>RPCConsole</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveCoinsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveRequestDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>RecentRequestsTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsEntry</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendConfirmationDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShutdownWindow</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SignVerifyMessageDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SplashScreen</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TrafficGraphWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDesc</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDescDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionView</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletView</name>
|
||||
<message>
|
||||
<source>&Export</source>
|
||||
<translation>&ထုတ်ယူသိမ်းဆည်း</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export the data in the current tab to a file</source>
|
||||
<translation>လက်ရှိ tab မှာရှိတဲ့ဒေတာတွေကို ဖိုင်လ်မှာသိမ်းမယ်။</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>bitcoin-core</name>
|
||||
</context>
|
||||
</TS>
|
||||
@@ -433,6 +433,14 @@
|
||||
<source>%n active connection(s) to Bitcoin network</source>
|
||||
<translation><numerusform>%n aktiv forbindelse til Bitcoin-nettverket</numerusform><numerusform>%n aktive forbindelser til Bitcoin-nettverket</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Indexing blocks on disk...</source>
|
||||
<translation>Indekserer blokker på disk...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Processing blocks on disk...</source>
|
||||
<translation>Prosesserer blokker på disk...</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>Processed %n block(s) of transaction history.</source>
|
||||
<translation><numerusform>Lastet %n blokk med transaksjonshistorikk.</numerusform><numerusform>Lastet %n blokker med transaksjonshistorikk.</numerusform></translation>
|
||||
|
||||
575
src/qt/locale/bitcoin_nb_NO.ts
Normal file
575
src/qt/locale/bitcoin_nb_NO.ts
Normal file
@@ -0,0 +1,575 @@
|
||||
<TS language="nb_NO" version="2.1">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
<source>Right-click to edit address or label</source>
|
||||
<translation>Høyreklikk for å redigere adresse, eller beskrivelse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Create a new address</source>
|
||||
<translation>Opprett en ny adresse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&New</source>
|
||||
<translation>&Ny</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy the currently selected address to the system clipboard</source>
|
||||
<translation>Kopier den valgte adressen til utklippstavlen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy</source>
|
||||
<translation>&Kopier</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>C&lose</source>
|
||||
<translation>&Lukk</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete the currently selected address from the list</source>
|
||||
<translation>Slett den valgte adressen fra listen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export the data in the current tab to a file</source>
|
||||
<translation>Eksporter data i den valgte fliken til en fil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Export</source>
|
||||
<translation>&Eksport</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Delete</source>
|
||||
<translation>&Slett</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose the address to send coins to</source>
|
||||
<translation>Velg en adresse å sende mynter til</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose the address to receive coins with</source>
|
||||
<translation>Velg adressen som skal motta myntene</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>C&hoose</source>
|
||||
<translation>&Velg</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sending addresses</source>
|
||||
<translation>Avsender adresser</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Receiving addresses</source>
|
||||
<translation>Mottager adresser</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
|
||||
<translation>Dette er dine Bitcoin adresser for å sende å sende betalinger. Husk å sjekke beløp og mottager adresser før du sender mynter.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction.</source>
|
||||
<translation>Dette er dine Bitcoin adresse for å motta betalinger. Det er anbefalt å bruke en ny mottager adresse for hver transaksjon.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy Address</source>
|
||||
<translation>&Kopier adresse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy &Label</source>
|
||||
<translation>Kopier &beskrivelse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Edit</source>
|
||||
<translation>R&ediger</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export Address List</source>
|
||||
<translation>Eksporter adresse listen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Comma separated file (*.csv)</source>
|
||||
<translation>Komma separert fil (*.csv)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Exporting Failed</source>
|
||||
<translation>Eksporten feilet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>There was an error trying to save the address list to %1. Please try again.</source>
|
||||
<translation>Fet oppstod en feil ved lagring av adresselisten til %1. Vennligst prøv igjen.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AddressTableModel</name>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Beskrivelse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>Adresse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(ingen beskrivelse)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AskPassphraseDialog</name>
|
||||
<message>
|
||||
<source>Passphrase Dialog</source>
|
||||
<translation>Passord dialog</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter passphrase</source>
|
||||
<translation>Oppgi passord setning</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New passphrase</source>
|
||||
<translation>Ny passord setning</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Repeat new passphrase</source>
|
||||
<translation>Repeter passorsetningen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</source>
|
||||
<translation>Oppgi passordsetningen for lommeboken. <br/>Vennligst bruk en passordsetninge med <b>ti, eller flere tilfeldige tegn </b>, eller <b>åtte, eller flere ord</b>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Encrypt wallet</source>
|
||||
<translation>Krypter lommeboken</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This operation needs your wallet passphrase to unlock the wallet.</source>
|
||||
<translation>Denne operasjonen krever passordsetningen for å låse opp lommeboken.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unlock wallet</source>
|
||||
<translation>Lås opp lommeboken</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This operation needs your wallet passphrase to decrypt the wallet.</source>
|
||||
<translation>Denne operasjonen krever passordsetningen for å dekryptere lommeboken.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Decrypt wallet</source>
|
||||
<translation>Dekrypter lommeboken</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Change passphrase</source>
|
||||
<translation>Endre passordsetningen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter the old passphrase and new passphrase to the wallet.</source>
|
||||
<translation>Oppgi den gamle og den nye passordsetningen for lommeboken.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirm wallet encryption</source>
|
||||
<translation>Bekreft kryptering av lommeboken</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>!</source>
|
||||
<translation>Advarsel: Dersom du krypterer lommeboken og mister passordsetningen vil du <b>MISTE ALLE DINE BITCOIN</b>!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Are you sure you wish to encrypt your wallet?</source>
|
||||
<translation>Er du sikker på at du vil kryptere lommeboken?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet encrypted</source>
|
||||
<translation>Lommeboken er kryptert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
|
||||
<translation>%1 vil nå lukkes for å fullføre krypteringsprosessen. Husk at å kryptere lommeboken ikke kan beskytte dine bitcoin fullstendig fra å bli stjålet av skadelig programvare som har infisert datamaskinen din.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>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.</source>
|
||||
<translation>VIKTIG: Alle tidligere sikkerhetskopier du har tatt av lommebokfilen bør erstattes med den nye krypterte lommebokfilen. Av sikkerhetsgrunner vil tidligere sikkerhetskopier av lommebokfilen bli ubrukelige når du begynner å bruke den ny kypterte lommeboken.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet encryption failed</source>
|
||||
<translation>Lommebokkrypteringen feilet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
|
||||
<translation>Lommebokkrypteringen feilet pga. en intern feil. Lommeboken din ble ikke kryptert.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The supplied passphrases do not match.</source>
|
||||
<translation>De oppgitte passordsetningene er forskjellige.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet unlock failed</source>
|
||||
<translation>Opplåsing av lommeboken feilet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The passphrase entered for the wallet decryption was incorrect.</source>
|
||||
<translation>Passordsetningen som ble oppgitt for å dekryptere lommeboken var feil.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet decryption failed</source>
|
||||
<translation>Dekryptering av lommeboken feilet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet passphrase was successfully changed.</source>
|
||||
<translation>Passordsetningen for lommeboken ble endret</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: The Caps Lock key is on!</source>
|
||||
<translation>Advarsel: Caps Lock er på!</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BanTableModel</name>
|
||||
<message>
|
||||
<source>IP/Netmask</source>
|
||||
<translation>IP/Nettmaske</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Banned Until</source>
|
||||
<translation>Utestengt Til</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BitcoinGUI</name>
|
||||
<message>
|
||||
<source>Sign &message...</source>
|
||||
<translation>Signer &melding</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronizing with network...</source>
|
||||
<translation>Synkroniserer med nettverket</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Overview</source>
|
||||
<translation>&Oversikt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Node</source>
|
||||
<translation>Node</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show general overview of wallet</source>
|
||||
<translation>Vis generell oversikt over lommeboken</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Transactions</source>
|
||||
<translation>&Transaksjoner</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Browse transaction history</source>
|
||||
<translation>Bla gjennom transaksjoner</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>E&xit</source>
|
||||
<translation>&Avslutt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Quit application</source>
|
||||
<translation>Avslutt program</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&About %1</source>
|
||||
<translation>&Om %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show information about %1</source>
|
||||
<translation>Vis informasjon om %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>About &Qt</source>
|
||||
<translation>Om &Qt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show information about Qt</source>
|
||||
<translation>Vis informasjon om Qt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Options...</source>
|
||||
<translation>&Valg</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Modify configuration options for %1</source>
|
||||
<translation>Endre konfigurasjonsalternativer for %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Encrypt Wallet...</source>
|
||||
<translation>&Krypter lommebok...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Backup Wallet...</source>
|
||||
<translation>&Sikkerhetskopier lommebok</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Change Passphrase...</source>
|
||||
<translation>&Endre passordsetning</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Sending addresses...</source>
|
||||
<translation>&Avsender adresser</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Receiving addresses...</source>
|
||||
<translation>&Mottager adresser</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open &URI...</source>
|
||||
<translation>Åpne &URI</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Click to disable network activity.</source>
|
||||
<translation>Klikk for å slå av nettverksaktivitet.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Network activity disabled.</source>
|
||||
<translation>Nettverksaktivitet er slått av</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Click to enable network activity again.</source>
|
||||
<translation>Klikk for å slå på nettverksaktivitet igjen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Syncing Headers (%1%)...</source>
|
||||
<translation>Synkroniserer Headers (%1%)...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reindexing blocks on disk...</source>
|
||||
<translation>Reindekserer blokker på disken</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Send coins to a Bitcoin address</source>
|
||||
<translation>Send mynter til en Bitcoin adresse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Backup wallet to another location</source>
|
||||
<translation>Sikkerhetskopier lommeboken til en annen lokasjon</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Change the passphrase used for wallet encryption</source>
|
||||
<translation>Endre passordsetningen for kryptering av lommeboken</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Debug window</source>
|
||||
<translation>&Feilsøkingsvindu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open debugging and diagnostic console</source>
|
||||
<translation>Åpne konsoll for feilsøking og diagnostisering</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Verify message...</source>
|
||||
<translation>&Verifiser meldingen...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bitcoin</source>
|
||||
<translation>Bitcoin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet</source>
|
||||
<translation>Lommebok</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Send</source>
|
||||
<translation>&Sende</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Receive</source>
|
||||
<translation>&Motta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Show / Hide</source>
|
||||
<translation>Vi&s / Skjul</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show or hide the main Window</source>
|
||||
<translation>Vis, eller skjul, hovedvinduet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Encrypt the private keys that belong to your wallet</source>
|
||||
<translation>Krypter de private nøklene som tilhører lommeboken din</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sign messages with your Bitcoin addresses to prove you own them</source>
|
||||
<translation>Signer meldingene med Bitcoin adresse for å bevise at diu eier dem</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Verify messages to ensure they were signed with specified Bitcoin addresses</source>
|
||||
<translation>Verifiser meldinger for å sikre at de ble signert med en angitt Bitcoin adresse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&File</source>
|
||||
<translation>&Fil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Settings</source>
|
||||
<translation>In&stillinger</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Help</source>
|
||||
<translation>&Hjelp</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tabs toolbar</source>
|
||||
<translation>Hjelpelinje for fliker</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoinControlDialog</name>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(ingen beskrivelse)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditAddressDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>FreespaceChecker</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>HelpMessageDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>Intro</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ModalOverlay</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OpenURIDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OptionsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OverviewPage</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>PaymentServer</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>PeerTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject::QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QRImageWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>RPCConsole</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveCoinsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveRequestDialog</name>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>Adresse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Beskrivelse</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RecentRequestsTableModel</name>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Beskrivelse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(ingen beskrivelse)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsDialog</name>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(ingen beskrivelse)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsEntry</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendConfirmationDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShutdownWindow</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SignVerifyMessageDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SplashScreen</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TrafficGraphWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDesc</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDescDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionTableModel</name>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Beskrivelse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(ingen beskrivelse)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionView</name>
|
||||
<message>
|
||||
<source>Comma separated file (*.csv)</source>
|
||||
<translation>Komma separert fil (*.csv)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Beskrivelse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>Adresse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Exporting Failed</source>
|
||||
<translation>Eksporten feilet</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletView</name>
|
||||
<message>
|
||||
<source>&Export</source>
|
||||
<translation>&Eksport</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export the data in the current tab to a file</source>
|
||||
<translation>Eksporter data i den valgte fliken til en fil</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>bitcoin-core</name>
|
||||
</context>
|
||||
</TS>
|
||||
@@ -311,7 +311,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>&Receiving addresses...</source>
|
||||
<translation>&Ontvang adressen...</translation>
|
||||
<translation>&Ontvangstadressen...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open &URI...</source>
|
||||
@@ -423,7 +423,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Show the list of used receiving addresses and labels</source>
|
||||
<translation>Toon de lijst met gebruikte ontvangst adressen en labels</translation>
|
||||
<translation>Toon de lijst met gebruikte ontvangstadressen en labels</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open a bitcoin: URI or payment request</source>
|
||||
@@ -1809,7 +1809,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>An optional label to associate with the new receiving address.</source>
|
||||
<translation>Een optioneel label om te associëren met het nieuwe ontvangende adres</translation>
|
||||
<translation>Een optioneel label om te associëren met het nieuwe ontvangstadres</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Use this form to request payments. All fields are <b>optional</b>.</source>
|
||||
@@ -3455,7 +3455,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Fees (in %s/kB) smaller than this are considered zero fee for relaying, mining and transaction creation (default: %s)</source>
|
||||
<translation>Transactiekosten (in %s/kB) kleiner dan dit worden beschouw dat geen transactiekosten in rekening worden gebracht voor doorgeven, mijnen en transactiecreatie (standaard: %s)</translation>
|
||||
<translation>Transactiekosten (in %s/kB) kleiner dan dit worden beschouw dat geen transactiekosten in rekening worden gebracht voor doorgeven, delven en transactiecreatie (standaard: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u)</source>
|
||||
@@ -3663,7 +3663,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Equivalent bytes per sigop in transactions for relay and mining (default: %u)</source>
|
||||
<translation>Equivalent byter per sigop in transactions voor doorsturen en mijnen (standaard: %u)</translation>
|
||||
<translation>Equivalente bytes per sigop in transacties voor doorsturen en delven (standaard: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fees (in %s/kB) smaller than this are considered zero fee for transaction creation (default: %s)</source>
|
||||
|
||||
199
src/qt/locale/bitcoin_nl_NL.ts
Normal file
199
src/qt/locale/bitcoin_nl_NL.ts
Normal file
@@ -0,0 +1,199 @@
|
||||
<TS language="nl_NL" version="2.1">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
<source>Right-click to edit address or label</source>
|
||||
<translation>Klik met de rechter muisknop om dit adres of label te veranderen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Create a new address</source>
|
||||
<translation>Maak een nieuw adres aan</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&New</source>
|
||||
<translation>&Nieuw</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy the currently selected address to the system clipboard</source>
|
||||
<translation>Kopieer het geselecteerde adres naar het klembord</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy</source>
|
||||
<translation>&Kopieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>C&lose</source>
|
||||
<translation>S&luiten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete the currently selected address from the list</source>
|
||||
<translation>Verwijder het geselecteerde adres uit de lijst</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export the data in the current tab to a file</source>
|
||||
<translation>Exporteer de data in dit tab naar een bestand</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Export</source>
|
||||
<translation>&Exporteer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Delete</source>
|
||||
<translation>&Verwijderen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose the address to send coins to</source>
|
||||
<translation>Selecteer het adres om munten naar toe te sturen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose the address to receive coins with</source>
|
||||
<translation>Selecteer het adres om munten mee te ontvangen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>C&hoose</source>
|
||||
<translation>S&electeren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sending addresses</source>
|
||||
<translation>Verzendadres</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Receiving addresses</source>
|
||||
<translation>Ontvangstadres</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
|
||||
<translation>Dit zijn uw Bitcoin adressen voor het versturen van betalingen. Controleer altijd het bedrag en het ontvangstadres voordat u munten verstuurd.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction.</source>
|
||||
<translation>Dit zijn uw Bitcoin adressen voor het ontvangen van betalingen. Het wordt aanbevolen om voor elke transactie een nieuw ontvangstadres te gebruiken.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy Address</source>
|
||||
<translation>&Adres Kopiëren</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AddressTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>AskPassphraseDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>BanTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>BitcoinGUI</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoinControlDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditAddressDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>FreespaceChecker</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>HelpMessageDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>Intro</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ModalOverlay</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OpenURIDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OptionsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OverviewPage</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>PaymentServer</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>PeerTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject::QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QRImageWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>RPCConsole</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveCoinsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveRequestDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>RecentRequestsTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsEntry</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendConfirmationDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShutdownWindow</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SignVerifyMessageDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SplashScreen</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TrafficGraphWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDesc</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDescDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionView</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletView</name>
|
||||
<message>
|
||||
<source>&Export</source>
|
||||
<translation>&Exporteer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export the data in the current tab to a file</source>
|
||||
<translation>Exporteer de data in dit tab naar een bestand</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>bitcoin-core</name>
|
||||
</context>
|
||||
</TS>
|
||||
@@ -889,6 +889,10 @@
|
||||
<source>Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below.</source>
|
||||
<translation>Świeże transakcje mogą nie być jeszcze widoczne, a zatem saldo portfela może być nieprawidłowe. Te detale będą poprawne, gdy portfel zakończy synchronizację z siecią bitcoin, zgodnie z poniższym opisem.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network.</source>
|
||||
<translation>Próba wydania bitcoinów które nie są jeszcze wyświetlone jako transakcja zostanie odrzucona przez sieć. </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Number of blocks left</source>
|
||||
<translation>Pozostało bloków</translation>
|
||||
@@ -1301,6 +1305,10 @@
|
||||
<source>Refund from %1</source>
|
||||
<translation>Zwrot z %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Payment request %1 is too large (%2 bytes, allowed %3 bytes).</source>
|
||||
<translation>Żądanie płatności %1 jest zbyt duże (%2 bajtów, dozwolone %3 bajtów).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error communicating with %1: %2</source>
|
||||
<translation>Błąd komunikacji z %1 : %2</translation>
|
||||
@@ -1418,6 +1426,10 @@
|
||||
<source>Error: Specified data directory "%1" does not exist.</source>
|
||||
<translation>Błąd: Określony folder danych "%1" nie istnieje.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error: Cannot parse configuration file: %1. Only use key=value syntax.</source>
|
||||
<translation>Błąd: Nie można przetworzyć pliku konfiguracyjnego: %1. Używaj tylko składni klucz=wartość.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error: %1</source>
|
||||
<translation>Błąd: %1</translation>
|
||||
@@ -1688,6 +1700,14 @@
|
||||
<source>Type <b>help</b> for an overview of available commands.</source>
|
||||
<translation>Wpisz <b>help</b> aby uzyskać listę dostępnych komend</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramification of a command.</source>
|
||||
<translation>UWAGA: Oszuści nakłaniają do wpisywania tutaj różnych poleceń aby ukraść portfel. Nie używaj tej konsoli bez pełnego zrozumienia wpisywanych poleceń.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Network activity disabled</source>
|
||||
<translation>Aktywność sieciowa wyłączona</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 B</source>
|
||||
<translation>%1 B</translation>
|
||||
@@ -1870,7 +1890,15 @@
|
||||
<source>Message</source>
|
||||
<translation>Wiadomość</translation>
|
||||
</message>
|
||||
</context>
|
||||
<message>
|
||||
<source>Resulting URI too long, try to reduce the text for label / message.</source>
|
||||
<translation>Wynikowy URI jest zbyt długi, spróbuj zmniejszyć tekst etykiety / wiadomości</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error encoding URI into QR Code.</source>
|
||||
<translation>Błąd kodowania URI w kod QR</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RecentRequestsTableModel</name>
|
||||
<message>
|
||||
@@ -2120,14 +2148,30 @@
|
||||
<source>Transaction creation failed!</source>
|
||||
<translation>Utworzenie transakcji nie powiodło się!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The transaction was rejected with the following reason: %1</source>
|
||||
<translation>Transakcja została odrzucona z następującym powodem: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>A fee higher than %1 is considered an absurdly high fee.</source>
|
||||
<translation>Opłata wyższa niż %1 jest uznawana za absurdalnie dużą.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Payment request expired.</source>
|
||||
<translation>Żądanie płatności upłynęło.</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%n block(s)</source>
|
||||
<translation><numerusform>%n blok</numerusform><numerusform>%n bloków</numerusform><numerusform>%n bloków</numerusform><numerusform>%n bloków</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pay only the required fee of %1</source>
|
||||
<translation>Zapłać tylko wymaganą opłatę w wysokości %1</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>Estimated to begin confirmation within %n block(s).</source>
|
||||
<translation><numerusform>Przybliżony czas zatwierdzenia: %n blok.</numerusform><numerusform>Przybliżony czas zatwierdzenia: %n bloki.</numerusform><numerusform>Przybliżony czas zatwierdzenia: %n bloków.</numerusform><numerusform>Przybliżony czas zatwierdzenia: %n bloków.</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: Invalid Bitcoin address</source>
|
||||
<translation>Ostrzeżenie: nieprawidłowy adres Bitcoin</translation>
|
||||
@@ -2136,6 +2180,10 @@
|
||||
<source>Warning: Unknown change address</source>
|
||||
<translation>Ostrzeżenie: Nieznany adres reszty</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirm custom change address</source>
|
||||
<translation>Potwierdź zmianę adresu własnego</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(brak etykiety)</translation>
|
||||
@@ -2219,7 +2267,11 @@
|
||||
<source>Memo:</source>
|
||||
<translation>Notatka:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<message>
|
||||
<source>Enter a label for this address to add it to your address book</source>
|
||||
<translation>Wprowadź etykietę dla tego adresu by dodać go do książki adresowej</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendConfirmationDialog</name>
|
||||
<message>
|
||||
@@ -2325,6 +2377,10 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw
|
||||
<source>Reset all verify message fields</source>
|
||||
<translation>Resetuje wszystkie pola weryfikacji wiadomości</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Click "Sign Message" to generate signature</source>
|
||||
<translation>Kliknij "Podpisz Wiadomość" żeby uzyskać podpis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The entered address is invalid.</source>
|
||||
<translation>Podany adres jest nieprawidłowy.</translation>
|
||||
@@ -2333,6 +2389,10 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw
|
||||
<source>Please check the address and try again.</source>
|
||||
<translation>Proszę sprawdzić adres i spróbować ponownie.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The entered address does not refer to a key.</source>
|
||||
<translation>Wprowadzony adres nie odnosi się do klucza.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet unlock was cancelled.</source>
|
||||
<translation>Odblokowanie portfela zostało anulowane.</translation>
|
||||
@@ -2349,6 +2409,22 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw
|
||||
<source>Message signed.</source>
|
||||
<translation>Wiadomość podpisana.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The signature could not be decoded.</source>
|
||||
<translation>Podpis nie może zostać zdekodowany.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Please check the signature and try again.</source>
|
||||
<translation>Sprawdź podpis i spróbuj ponownie.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The signature did not match the message digest.</source>
|
||||
<translation>Podpis nie odpowiada skrótowi wiadomości.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Message verification failed.</source>
|
||||
<translation>Weryfikacja wiadomości nie powiodła się.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Message verified.</source>
|
||||
<translation>Wiadomość zweryfikowana.</translation>
|
||||
@@ -2370,10 +2446,54 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDesc</name>
|
||||
<message numerus="yes">
|
||||
<source>Open for %n more block(s)</source>
|
||||
<translation><numerusform>Otwórz dla %n kolejnego bloku</numerusform><numerusform>Otwórz dla %n kolejnych bloków</numerusform><numerusform>Otwórz dla %n kolejnych bloków</numerusform><numerusform>Otwórz dla %n kolejnych bloków</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open until %1</source>
|
||||
<translation>Otwórz do %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conflicted with a transaction with %1 confirmations</source>
|
||||
<translation>sprzeczny z transakcją posiadającą %1 potwierdzeń</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1/offline</source>
|
||||
<translation>%1/offline</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>0/unconfirmed, %1</source>
|
||||
<translation>0/niezatwierdzone, %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>in memory pool</source>
|
||||
<translation>w obszarze pamięci</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>abandoned</source>
|
||||
<translation>porzucone</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1/unconfirmed</source>
|
||||
<translation>%1/niezatwierdzone</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 confirmations</source>
|
||||
<translation>%1 potwierdzeń</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Status</source>
|
||||
<translation>Status</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>, has not been successfully broadcast yet</source>
|
||||
<translation>, nie został jeszcze pomyślnie rozesłany</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>, broadcast through %n node(s)</source>
|
||||
<translation><numerusform>, przekazywany przez %n węzęł</numerusform><numerusform>, przekazywany przez %n węzy</numerusform><numerusform>, przekazywany przez %n węzłów</numerusform><numerusform>, przekazywany przez %n węzłów</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Data</translation>
|
||||
@@ -2410,14 +2530,50 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw
|
||||
<source>label</source>
|
||||
<translation>etykieta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Credit</source>
|
||||
<translation>Uznanie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>not accepted</source>
|
||||
<translation>niezaakceptowane</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Debit</source>
|
||||
<translation>Debet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction fee</source>
|
||||
<translation>Opłata transakcyjna</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Net amount</source>
|
||||
<translation>Kwota netto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Message</source>
|
||||
<translation>Wiadomość</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Comment</source>
|
||||
<translation>Komentarz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction ID</source>
|
||||
<translation>ID transakcji</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction total size</source>
|
||||
<translation>Rozmiar transakcji</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Output index</source>
|
||||
<translation>Indeks wyjściowy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Debug information</source>
|
||||
<translation>Informacje debugowania</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction</source>
|
||||
<translation>Transakcja</translation>
|
||||
@@ -2445,7 +2601,11 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw
|
||||
<source>This pane shows a detailed description of the transaction</source>
|
||||
<translation>Ten panel pokazuje szczegółowy opis transakcji</translation>
|
||||
</message>
|
||||
</context>
|
||||
<message>
|
||||
<source>Details for %1</source>
|
||||
<translation>Szczegóły %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionTableModel</name>
|
||||
<message>
|
||||
@@ -2460,6 +2620,14 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw
|
||||
<source>Label</source>
|
||||
<translation>Etykieta</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>Open for %n more block(s)</source>
|
||||
<translation><numerusform>Otwórz dla %n kolejnego bloku</numerusform><numerusform>Otwórz dla %n kolejnych bloków</numerusform><numerusform>Otwórz dla %n kolejnych bloków</numerusform><numerusform>Otwórz dla %n kolejnych bloków</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open until %1</source>
|
||||
<translation>Otwórz do %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Offline</source>
|
||||
<translation>Offline</translation>
|
||||
@@ -2472,26 +2640,70 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw
|
||||
<source>Abandoned</source>
|
||||
<translation>Porzucone</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirming (%1 of %2 recommended confirmations)</source>
|
||||
<translation>Potwierdzanie (%1 z %2 rekomendowanych potwierdzeń)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirmed (%1 confirmations)</source>
|
||||
<translation>Zatwierdzony (%1 potwierdzeń)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Conflicted</source>
|
||||
<translation>Skonfliktowane</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Immature (%1 confirmations, will be available after %2)</source>
|
||||
<translation>Niedojrzała (%1 potwierdzeń, będzie dostępna po %2)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This block was not received by any other nodes and will probably not be accepted!</source>
|
||||
<translation>Ten blok nie został odebrany przez jakikolwiek inny węzeł i prawdopodobnie nie zostanie zaakceptowany!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generated but not accepted</source>
|
||||
<translation>Wygenerowane ale nie zaakceptowane</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Received from</source>
|
||||
<translation>Odebrano od</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sent to</source>
|
||||
<translation>Wysłane do</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Payment to yourself</source>
|
||||
<translation>Płatność do siebie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mined</source>
|
||||
<translation>Wydobyto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>watch-only</source>
|
||||
<translation>tylko-obserwowany</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(n/a)</source>
|
||||
<translation>(brak)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(brak etykiety)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction status. Hover over this field to show number of confirmations.</source>
|
||||
<translation>Status transakcji. Najedź na pole, aby zobaczyć liczbę potwierdzeń.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Date and time that the transaction was received.</source>
|
||||
<translation>Data i czas odebrania transakcji.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Type of transaction.</source>
|
||||
<translation>Rodzaj transakcji.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionView</name>
|
||||
@@ -2527,6 +2739,26 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw
|
||||
<source>Sent to</source>
|
||||
<translation>Wysłane do</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>To yourself</source>
|
||||
<translation>Do siebie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mined</source>
|
||||
<translation>Wydobyto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Other</source>
|
||||
<translation>Inne</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter address or label to search</source>
|
||||
<translation>Wprowadź adres albo etykietę aby wyszukać</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Abandon transaction</source>
|
||||
<translation>Porzuć transakcję</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy address</source>
|
||||
<translation>Kopiuj adres</translation>
|
||||
@@ -2543,14 +2775,34 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw
|
||||
<source>Copy transaction ID</source>
|
||||
<translation>Skopiuj ID transakcji</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy raw transaction</source>
|
||||
<translation>Skopiuj surowe dane transakcji</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy full transaction details</source>
|
||||
<translation>Skopiuj pełne informacje o transakcji</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Edit label</source>
|
||||
<translation>Zmień etykietę</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show transaction details</source>
|
||||
<translation>Pokaż szczegóły transakcji</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export Transaction History</source>
|
||||
<translation>Eksport historii transakcji</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Comma separated file (*.csv)</source>
|
||||
<translation>Plik *.CSV (dane rozdzielane przecinkami)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirmed</source>
|
||||
<translation>Potwierdzony</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Data</translation>
|
||||
@@ -2567,10 +2819,22 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw
|
||||
<source>Address</source>
|
||||
<translation>Adres</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>ID</source>
|
||||
<translation>ID</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Exporting Failed</source>
|
||||
<translation>Eksportowanie nie powiodło się</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Exporting Successful</source>
|
||||
<translation>Eksport powiódł się</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The transaction history was successfully saved to %1.</source>
|
||||
<translation>Historia transakcji została zapisana do %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Range:</source>
|
||||
<translation>Zakres:</translation>
|
||||
@@ -2589,20 +2853,44 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
</context>
|
||||
<message>
|
||||
<source>No wallet has been loaded.</source>
|
||||
<translation>Nie załadowano żadnego portfela.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletModel</name>
|
||||
</context>
|
||||
<message>
|
||||
<source>Send Coins</source>
|
||||
<translation>Wyślij płatność</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletView</name>
|
||||
<message>
|
||||
<source>&Export</source>
|
||||
<translation>&Eksportuj</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export the data in the current tab to a file</source>
|
||||
<translation>Eksportuj dane z aktywnej karty do pliku</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Backup Wallet</source>
|
||||
<translation>Kopia zapasowa portfela</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet Data (*.dat)</source>
|
||||
<translation>Dane Portfela (*.dat)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Backup Failed</source>
|
||||
<translation>Nie udało się wykonać kopii zapasowej</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>There was an error trying to save the wallet data to %1.</source>
|
||||
<translation>Wystąpił błąd przy próbie zapisu pliku portfela do %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Backup Successful</source>
|
||||
<translation>Wykonano kopię zapasową</translation>
|
||||
@@ -2634,6 +2922,10 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw
|
||||
<source>Accept command line and JSON-RPC commands</source>
|
||||
<translation>Akceptuj linię poleceń oraz polecenia JSON-RPC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Distributed under the MIT software license, see the accompanying file %s or %s</source>
|
||||
<translation>Rozprowadzane na licencji MIT, zobacz dołączony plik %s lub %s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>If <category> is not supplied or if <category> = 1, output all debugging information.</source>
|
||||
<translation>Jeżeli <category> nie zostanie określona lub <category> = 1, wyświetl wszystkie informacje debugowania.</translation>
|
||||
@@ -3190,6 +3482,10 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw
|
||||
<source>Support filtering of blocks and transaction with bloom filters (default: %u)</source>
|
||||
<translation>Wspieraj filtrowanie bloków i transakcji używając Filtrów Blooma (domyślnie: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit %s and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard.</source>
|
||||
<translation>Produkt zawiera oprogramowanie stworzone przez OpenSSL Project do użycia w OpensSSL Toolkit %s, oprogramowanie kryptograficzne napisane przez Eric Young oraz oprogramowanie UPnP napisane przez Thomas Bernard.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</source>
|
||||
<translation>Całkowita długość łańcucha wersji (%i) przekracza maksymalną dopuszczalną długość (%i). Zmniejsz ilość lub rozmiar parametru uacomment.</translation>
|
||||
@@ -3274,10 +3570,18 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw
|
||||
<source>Relay non-P2SH multisig (default: %u)</source>
|
||||
<translation>Przekazuj transakcje multisig inne niż P2SH (domyślnie: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Send transactions with full-RBF opt-in enabled (default: %u)</source>
|
||||
<translation>Wyślij transakcje z włączoną flagą full-RBF (domyślnie: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set key pool size to <n> (default: %u)</source>
|
||||
<translation>Ustaw rozmiar puli kluczy na <n> (domyślnie: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set maximum BIP141 block weight (default: %d)</source>
|
||||
<translation>ustawienie maksymalnego rozmiaru bloku BIP141 (domyślnie: %d)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set the number of threads to service RPC calls (default: %d)</source>
|
||||
<translation>Ustaw liczbę wątków do obsługi RPC (domyślnie: %d)</translation>
|
||||
@@ -3298,6 +3602,22 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw
|
||||
<source>Spend unconfirmed change when sending transactions (default: %u)</source>
|
||||
<translation>Wydawaj niepotwierdzoną resztę podczas wysyłania transakcji (domyślnie: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Starting network threads...</source>
|
||||
<translation>Uruchamianie wątków sieciowych...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The wallet will avoid paying less than the minimum relay fee.</source>
|
||||
<translation>Portfel będzie unikał płacenia mniejszej niż przekazana opłaty.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This is the minimum transaction fee you pay on every transaction.</source>
|
||||
<translation>Minimalna opłata transakcyjna którą płacisz przy każdej transakcji.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This is the transaction fee you will pay if you send a transaction.</source>
|
||||
<translation>To jest opłata transakcyjna którą zapłacisz jeśli wyślesz transakcję. </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Threshold for disconnecting misbehaving peers (default: %u)</source>
|
||||
<translation>Próg, po którym nastąpi rozłączenie węzłów nietrzymających się zasad (domyślnie: %u)</translation>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Create a new address</source>
|
||||
<translation>Criar novo endereço</translation>
|
||||
<translation>Criar um novo endereço</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&New</source>
|
||||
@@ -327,7 +327,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Syncing Headers (%1%)...</source>
|
||||
<translation>Sincronizando cabeçahos (%1%)...</translation>
|
||||
<translation>Sincronizando cabeçalhos (%1%)...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reindexing blocks on disk...</source>
|
||||
@@ -923,7 +923,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown. Syncing Headers (%1)...</source>
|
||||
<translation>Desconhecido. Sincroniando cabeçahos (%1)...</translation>
|
||||
<translation>Desconhecido. Sincronizando cabeçalhos (%1)...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -3835,7 +3835,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Starting network threads...</source>
|
||||
<translation>Iniciando análise da rede...</translation>
|
||||
<translation>Iniciando atividades da rede...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The wallet will avoid paying less than the minimum relay fee.</source>
|
||||
@@ -3855,11 +3855,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction amounts must not be negative</source>
|
||||
<translation>As quantidades das transações devem ser positivas.</translation>
|
||||
<translation>As quantidades das transações não podem serem negativas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction has too long of a mempool chain</source>
|
||||
<translation>A transação demorou muito na memória</translation>
|
||||
<translation>A transação demorou muito para ser confirmada na mempool chain</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction must have at least one recipient</source>
|
||||
@@ -3879,7 +3879,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Add a node to connect to and attempt to keep the connection open</source>
|
||||
<translation>Adicionar um cliente para se conectar e tentar manter a conexão ativa</translation>
|
||||
<translation>Adicionar um nódulo para se conectar e tentar manter a conexão ativa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading wallet...</source>
|
||||
|
||||
@@ -2161,10 +2161,18 @@
|
||||
<source>The total exceeds your balance when the %1 transaction fee is included.</source>
|
||||
<translation>O total excede o seu saldo quando a taxa de transação %1 está incluída.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Duplicate address found: addresses should only be used once each.</source>
|
||||
<translation>Endereço duplicado encontrado: os endereços devem ser usados apenas uma vez.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction creation failed!</source>
|
||||
<translation>A criação da transação falhou!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The transaction was rejected with the following reason: %1</source>
|
||||
<translation>A transação foi rejeitada pelo seguinte motivo: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>A fee higher than %1 is considered an absurdly high fee.</source>
|
||||
<translation>Uma taxa superior a %1 é considerada uma taxa altamente absurda.</translation>
|
||||
@@ -2173,10 +2181,18 @@
|
||||
<source>Payment request expired.</source>
|
||||
<translation>Pedido de pagamento expirado.</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%n block(s)</source>
|
||||
<translation><numerusform>%n bloco</numerusform><numerusform>%n blocos</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pay only the required fee of %1</source>
|
||||
<translation>Pague apenas a taxa obrigatória de %1</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>Estimated to begin confirmation within %n block(s).</source>
|
||||
<translation><numerusform>Estimativa para iniciar a confirmação dentro de %n bloco.</numerusform><numerusform>Estimativa para iniciar a confirmação dentro de %n blocos.</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: Invalid Bitcoin address</source>
|
||||
<translation>Aviso: endereço Bitcoin inválido</translation>
|
||||
@@ -2189,6 +2205,10 @@
|
||||
<source>Confirm custom change address</source>
|
||||
<translation>Confirmar endereço de troco personalizado</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure?</source>
|
||||
<translation>O endereço que você selecionou para alterar não faz parte desta carteira. Qualquer ou todos os fundos em sua carteira podem ser enviados para este endereço. Você tem certeza?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(sem etiqueta)</translation>
|
||||
@@ -2272,7 +2292,11 @@
|
||||
<source>Memo:</source>
|
||||
<translation>Memorando:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<message>
|
||||
<source>Enter a label for this address to add it to your address book</source>
|
||||
<translation>Digite um rótulo para este endereço para adicioná-lo ao seu catálogo de endereços</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendConfirmationDialog</name>
|
||||
<message>
|
||||
@@ -2446,6 +2470,10 @@
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDesc</name>
|
||||
<message numerus="yes">
|
||||
<source>Open for %n more block(s)</source>
|
||||
<translation><numerusform>Abrir para %n ou mais bloco</numerusform><numerusform>Abrir para %n ou mais blocos</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open until %1</source>
|
||||
<translation>Aberto até %1</translation>
|
||||
@@ -2486,6 +2514,10 @@
|
||||
<source>, has not been successfully broadcast yet</source>
|
||||
<translation>, ainda não foi transmitido com sucesso</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>, broadcast through %n node(s)</source>
|
||||
<translation><numerusform>, transmitido através de %n nó</numerusform><numerusform>, transmitido através de %n nós</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Data</translation>
|
||||
@@ -2743,6 +2775,10 @@
|
||||
<source>Other</source>
|
||||
<translation>Outras</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter address or label to search</source>
|
||||
<translation>Digite o endereço ou o rótulo para pesquisar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Min amount</source>
|
||||
<translation>Valor mín.</translation>
|
||||
@@ -2845,7 +2881,11 @@
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
</context>
|
||||
<message>
|
||||
<source>No wallet has been loaded.</source>
|
||||
<translation>Nenhuma carteira foi carregada</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletModel</name>
|
||||
<message>
|
||||
@@ -2970,6 +3010,10 @@
|
||||
<source>Execute command when a wallet transaction changes (%s in cmd is replaced by TxID)</source>
|
||||
<translation>Executar o comando quando uma transação da carteira muda (no comando, %s é substituído pela Id. da Transação)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly.</source>
|
||||
<translation>Por favor verifique que a data e hora do seu computador estão certos! Se o relógio não estiver certo, o %s não funcionará corretamente.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d)</source>
|
||||
<translation>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)</translation>
|
||||
@@ -3498,6 +3542,10 @@
|
||||
<source>Warning: Unknown block versions being mined! It's possible unknown rules are in effect</source>
|
||||
<translation>Atenção: Versões desconhecidas de blocos estão a ser mineradas! É possível que regras desconhecias estão a ser efetuadas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%s is set very high!</source>
|
||||
<translation>%s está demasiado elevado!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(default: %s)</source>
|
||||
<translation>(predefinição: %s)</translation>
|
||||
|
||||
@@ -41,9 +41,61 @@
|
||||
<source>&Delete</source>
|
||||
<translation>&Şterge</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>C&hoose</source>
|
||||
<translation>&Alegeţi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sending addresses</source>
|
||||
<translation>Adresa destinatarului</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Receiving addresses</source>
|
||||
<translation>Adresa de primire</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
|
||||
<translation>Acestea sunt adresele tale Bitcoin pentru efectuarea platilor. Intotdeauna verifica atent suma de plata si adresa beneficiarului inainte de a trimite monede.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction.</source>
|
||||
<translation>Acestea sunt adresele tale Bitcoin pentru receptionarea platilor. Este recomandat sa folosesti mereu o adresa noua pentru primirea platilor.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy Address</source>
|
||||
<translation>&Copiază adresa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy &Label</source>
|
||||
<translation>Copiaza si eticheteaza</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Edit</source>
|
||||
<translation>&Editare</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export Address List</source>
|
||||
<translation>Exportă listă de adrese</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Comma separated file (*.csv)</source>
|
||||
<translation>Fisier .csv cu separator - virgula</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Exporting Failed</source>
|
||||
<translation>Exportarea a eșuat</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AddressTableModel</name>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Etichetă</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>Adresă</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AskPassphraseDialog</name>
|
||||
@@ -63,6 +115,30 @@
|
||||
<source>Repeat new passphrase</source>
|
||||
<translation>Repetaţi noua frază de acces</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Encrypt wallet</source>
|
||||
<translation>Criptare portofel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unlock wallet</source>
|
||||
<translation>Deblocare portofel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Decrypt wallet</source>
|
||||
<translation>Decriptare portofel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Change passphrase</source>
|
||||
<translation>Schimbă parola</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirm wallet encryption</source>
|
||||
<translation>Confirmaţi criptarea portofelului</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet encrypted</source>
|
||||
<translation>Portofel criptat</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BanTableModel</name>
|
||||
@@ -1230,13 +1306,25 @@
|
||||
<source>&Save Image...</source>
|
||||
<translation>&Salvează imaginea...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>Adresă</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Amount</source>
|
||||
<translation>Cantitate</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Etichetă</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RecentRequestsTableModel</name>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Etichetă</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsDialog</name>
|
||||
@@ -1547,9 +1635,29 @@
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionTableModel</name>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Etichetă</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionView</name>
|
||||
<message>
|
||||
<source>Comma separated file (*.csv)</source>
|
||||
<translation>Fisier .csv cu separator - virgula</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Etichetă</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>Adresă</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Exporting Failed</source>
|
||||
<translation>Exportarea a eșuat</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
|
||||
319
src/qt/locale/bitcoin_si.ts
Normal file
319
src/qt/locale/bitcoin_si.ts
Normal file
@@ -0,0 +1,319 @@
|
||||
<TS language="si" version="2.1">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
<source>Create a new address</source>
|
||||
<translation>නව ලිපිනයක් සාදන්න</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose the address to send coins to</source>
|
||||
<translation>කාසි යැවිය යුතු ලිපිනය තෝරන්න</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose the address to receive coins with</source>
|
||||
<translation>කාසි ලැබිය යුතු ලිපිනය තෝරන්න</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sending addresses</source>
|
||||
<translation>යවන ලිපින</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Receiving addresses</source>
|
||||
<translation>ලබන ලිපින</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AddressTableModel</name>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>ලේබලය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>ලිපිනය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(ලේබලයක් නැත)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AskPassphraseDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>BanTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>BitcoinGUI</name>
|
||||
<message>
|
||||
<source>Warning</source>
|
||||
<translation>අවවාදය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Information</source>
|
||||
<translation>තොරතුර</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoinControlDialog</name>
|
||||
<message>
|
||||
<source>Quantity:</source>
|
||||
<translation>ප්රමාණය:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bytes:</source>
|
||||
<translation>බයිට්ස්:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Amount:</source>
|
||||
<translation>අගය:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fee:</source>
|
||||
<translation>ගාස්තුව:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Amount</source>
|
||||
<translation>අගය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>දිනය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>yes</source>
|
||||
<translation>ඔව්</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>no</source>
|
||||
<translation>නැත</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(ලේබලයක් නැත)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(change)</source>
|
||||
<translation>(වෙනස)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditAddressDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>FreespaceChecker</name>
|
||||
<message>
|
||||
<source>name</source>
|
||||
<translation>නම</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>HelpMessageDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>Intro</name>
|
||||
<message>
|
||||
<source>Welcome</source>
|
||||
<translation>ආයුබෝවන්</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ModalOverlay</name>
|
||||
<message>
|
||||
<source>calculating...</source>
|
||||
<translation>ගණනනය කරමින්...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>OpenURIDialog</name>
|
||||
<message>
|
||||
<source>URI:</source>
|
||||
<translation>URI:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>OptionsDialog</name>
|
||||
<message>
|
||||
<source>MB</source>
|
||||
<translation>MB</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>IPv4</source>
|
||||
<translation>IPv4</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>IPv6</source>
|
||||
<translation>IPv6</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tor</source>
|
||||
<translation>Tor</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>OverviewPage</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>PaymentServer</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>PeerTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<source>Amount</source>
|
||||
<translation>අගය</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject::QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QRImageWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>RPCConsole</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveCoinsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveRequestDialog</name>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>ලිපිනය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Amount</source>
|
||||
<translation>අගය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>ලේබලය</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RecentRequestsTableModel</name>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>දිනය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>ලේබලය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(ලේබලයක් නැත)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsDialog</name>
|
||||
<message>
|
||||
<source>Quantity:</source>
|
||||
<translation>ප්රමාණය:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bytes:</source>
|
||||
<translation>බයිට්ස්:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Amount:</source>
|
||||
<translation>අගය:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fee:</source>
|
||||
<translation>ගාස්තුව:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(ලේබලයක් නැත)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsEntry</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendConfirmationDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShutdownWindow</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SignVerifyMessageDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SplashScreen</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TrafficGraphWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDesc</name>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>දිනය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Amount</source>
|
||||
<translation>අගය</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDescDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionTableModel</name>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>දිනය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>ලේබලය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(ලේබලයක් නැත)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionView</name>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>දිනය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>ලේබලය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>ලිපිනය</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletView</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>bitcoin-core</name>
|
||||
<message>
|
||||
<source>Information</source>
|
||||
<translation>තොරතුර</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning</source>
|
||||
<translation>අවවාදය</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
@@ -41,6 +41,38 @@
|
||||
<source>&Delete</source>
|
||||
<translation>&Izbrisati</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose the address to send coins to</source>
|
||||
<translation>Izaberite adresu za slanje novčića</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose the address to receive coins with</source>
|
||||
<translation>Izaberite adresu za prijem novčića</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sending addresses</source>
|
||||
<translation>Adresa na koju se šalje</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Receiving addresses</source>
|
||||
<translation>Adresa na koju se prima</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
|
||||
<translation>Ovo su Vaše Bitcoin adrese na koju se vrše uplate. Uvek proverite iznos i prijemnu adresu pre slanja novčića</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction.</source>
|
||||
<translation>Ovo su Vaše Bitcoin adrese za primanje uplata. Preporučuje se upotreba nove adrese za svaku transakciju.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy &Label</source>
|
||||
<translation>Kopiranje &Oznaka</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Edit</source>
|
||||
<translation>&Izmena</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AddressTableModel</name>
|
||||
@@ -137,6 +169,14 @@
|
||||
<source>Quit application</source>
|
||||
<translation>Isključi aplikaciju</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&About %1</source>
|
||||
<translation>&Otprilike %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show information about %1</source>
|
||||
<translation>Prikaži informacije za otprilike %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Options...</source>
|
||||
<translation>&Opcije...</translation>
|
||||
|
||||
@@ -1361,6 +1361,10 @@ Var vänlig och försök igen.</translation>
|
||||
<source>Node/Service</source>
|
||||
<translation>Nod/Tjänst</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NodeId</source>
|
||||
<translation>Nod-ID</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ping</source>
|
||||
<translation>Ping</translation>
|
||||
|
||||
279
src/qt/locale/bitcoin_te.ts
Normal file
279
src/qt/locale/bitcoin_te.ts
Normal file
@@ -0,0 +1,279 @@
|
||||
<TS language="te" version="2.1">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
<source>Right-click to edit address or label</source>
|
||||
<translation>చిరునామా లేదా లేబుల్ సవరించడానికి రైట్-క్లిక్ చేయండి</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Create a new address</source>
|
||||
<translation>క్రొత్త చిరునామా సృష్టించండి</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&New</source>
|
||||
<translation>&క్రొత్త</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy the currently selected address to the system clipboard</source>
|
||||
<translation>ప్రస్తుతం ఎంచుకున్న చిరునామాను సిస్టం క్లిప్ బోర్డుకు కాపీ చేయండి</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy</source>
|
||||
<translation>&కాపి</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>C&lose</source>
|
||||
<translation>C&కోల్పోవు</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete the currently selected address from the list</source>
|
||||
<translation>ప్రస్తుతం ఎంచుకున్న చిరునామా ను జాబితా నుండి తీసివేయండి</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sending addresses</source>
|
||||
<translation>పంపించే చిరునామాలు</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Receiving addresses</source>
|
||||
<translation>అందుకునే చిరునామాలు</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
|
||||
<translation>ఇవి మీరు పంపే చెల్లింపుల బిట్కాయిన్ చిరునామాలు. నాణేలు పంపే ముందు ప్రతిసారి అందుకునే చిరునామా మరియు చెల్లింపు మొత్తం సరిచూసుకోండి.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction.</source>
|
||||
<translation>ఇవి మీరు అందుకునే చెల్లింపుల బిట్కాయిన్ చిరునామాలు. ప్రతీ లావాదేవీకి క్రొత్త అందుకునే చిరునామా వాడటం మంచిది.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export Address List</source>
|
||||
<translation>చిరునామా జాబితాను ఎగుమతి చేయండి</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Exporting Failed</source>
|
||||
<translation>ఎగుమతి విఫలమయ్యింది</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AddressTableModel</name>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>ఉల్లాకు</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AskPassphraseDialog</name>
|
||||
<message>
|
||||
<source>Passphrase Dialog</source>
|
||||
<translation>సంకేతపదము డైలాగ్</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter passphrase</source>
|
||||
<translation>సంకేతపదము చేర్చండి</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New passphrase</source>
|
||||
<translation>క్రొత్త సంకేతపదము</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Repeat new passphrase</source>
|
||||
<translation>క్రొత్త సంకేతపదము మరలా ఇవ్వండి</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</source>
|
||||
<translation>జోలెకు క్రొత్త సంకేతపదము ఇవ్వండి.<br/> <b>పది లేదా ఎక్కువ యాదృచ్ఛిక అక్షరాలు</b>, లేక <b>ఎనిమిది కంటే ఎక్కువ పదాలు</b> కలిగి ఉన్న సంకేతపదము దయచేసి వాడండి.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>!</source>
|
||||
<translation>హెచ్చరిక: మీ జోలెని సంకేతపరిచి మీ సంకేతపదము కోల్పోతే, <b>మీ బిట్కాయిన్లు అన్నీ కోల్పోతారు</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Are you sure you wish to encrypt your wallet?</source>
|
||||
<translation>మీరు ఖచ్చితంగా మీ జోలెని సంకేతపరచాలని కోరుకుంటున్నారా?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet encrypted</source>
|
||||
<translation>జోలె సంకేతపరబడింది</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet encryption failed</source>
|
||||
<translation>జోలె సంకేతపరచడం విఫలమయ్యింది</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BanTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>BitcoinGUI</name>
|
||||
<message>
|
||||
<source>Error</source>
|
||||
<translation>లోపం</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning</source>
|
||||
<translation>హెచ్చరిక</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Information</source>
|
||||
<translation>వర్తమానము</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Up to date</source>
|
||||
<translation>తాజాగా ఉంది</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Connecting to peers...</source>
|
||||
<translation>తోటివాళ్లతో అనుసంధానం కుదురుస్తుంది</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoinControlDialog</name>
|
||||
<message>
|
||||
<source>Coin Selection</source>
|
||||
<translation>నాణెం ఎంపిక</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Quantity:</source>
|
||||
<translation>పరిమాణం</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditAddressDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>FreespaceChecker</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>HelpMessageDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>Intro</name>
|
||||
<message>
|
||||
<source>Error</source>
|
||||
<translation>లోపం</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ModalOverlay</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OpenURIDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OptionsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OverviewPage</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>PaymentServer</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>PeerTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject::QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QRImageWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>RPCConsole</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveCoinsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveRequestDialog</name>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>ఉల్లాకు</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RecentRequestsTableModel</name>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>ఉల్లాకు</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsDialog</name>
|
||||
<message>
|
||||
<source>Quantity:</source>
|
||||
<translation>పరిమాణం</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsEntry</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendConfirmationDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShutdownWindow</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SignVerifyMessageDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SplashScreen</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TrafficGraphWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDesc</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDescDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionTableModel</name>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>ఉల్లాకు</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionView</name>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>ఉల్లాకు</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Exporting Failed</source>
|
||||
<translation>ఎగుమతి విఫలమయ్యింది</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletView</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>bitcoin-core</name>
|
||||
<message>
|
||||
<source>Information</source>
|
||||
<translation>వర్తమానము</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning</source>
|
||||
<translation>హెచ్చరిక</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error</source>
|
||||
<translation>లోపం</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
219
src/qt/locale/bitcoin_th.ts
Normal file
219
src/qt/locale/bitcoin_th.ts
Normal file
@@ -0,0 +1,219 @@
|
||||
<TS language="th" version="2.1">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
<source>Right-click to edit address or label</source>
|
||||
<translation>คลิกขวาเพื่อแก้ไขที่อยู่หรือชื่อ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Create a new address</source>
|
||||
<translation>สร้างที่อยู่ใหม่</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&New</source>
|
||||
<translation>ใหม่</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy the currently selected address to the system clipboard</source>
|
||||
<translation>คัดลอกที่อยู่ที่เลือกอยู่ไปยังคลิบบอร์ดของระบบ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy</source>
|
||||
<translation>คัดลอก</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>C&lose</source>
|
||||
<translation>ปิด</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete the currently selected address from the list</source>
|
||||
<translation>ลบที่อยู่ที่เลือกไว้ออกจากรายการ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export the data in the current tab to a file</source>
|
||||
<translation>ส่งออกข้อมูลที่อยู่ในแถบนี้ไปในไฟล์</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Export</source>
|
||||
<translation>ส่งออก</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Delete</source>
|
||||
<translation>ลบ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose the address to send coins to</source>
|
||||
<translation>เลือกที่อยู่ที่จะส่งเหรียญ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose the address to receive coins with</source>
|
||||
<translation>เลือกที่อยู่ที่จะรับเหรียญ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>C&hoose</source>
|
||||
<translation>เลือก</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sending addresses</source>
|
||||
<translation>ที่อยู่ในการส่ง</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Receiving addresses</source>
|
||||
<translation>ที่อยู่ในการรับ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy Address</source>
|
||||
<translation>คัดลอกที่อยู่</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy &Label</source>
|
||||
<translation>คัดลอกชื่อ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Edit</source>
|
||||
<translation>แก้ไข</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Exporting Failed</source>
|
||||
<translation>การส่งออกล้มเหลว</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AddressTableModel</name>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>ที่อยู่</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AskPassphraseDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>BanTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>BitcoinGUI</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoinControlDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditAddressDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>FreespaceChecker</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>HelpMessageDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>Intro</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ModalOverlay</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OpenURIDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OptionsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OverviewPage</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>PaymentServer</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>PeerTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject::QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QRImageWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>RPCConsole</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveCoinsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveRequestDialog</name>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>ที่อยู่</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RecentRequestsTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsEntry</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendConfirmationDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShutdownWindow</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SignVerifyMessageDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SplashScreen</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TrafficGraphWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDesc</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDescDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionView</name>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>ที่อยู่</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Exporting Failed</source>
|
||||
<translation>การส่งออกล้มเหลว</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletView</name>
|
||||
<message>
|
||||
<source>&Export</source>
|
||||
<translation>ส่งออก</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export the data in the current tab to a file</source>
|
||||
<translation>ส่งออกข้อมูลที่อยู่ในแถบนี้ไปในไฟล์</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>bitcoin-core</name>
|
||||
</context>
|
||||
</TS>
|
||||
@@ -41,25 +41,125 @@
|
||||
<source>&Delete</source>
|
||||
<translation>&Sil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose the address to send coins to</source>
|
||||
<translation>koinlerin gönderileceği adresi seçin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>C&hoose</source>
|
||||
<translation>Seçim</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sending addresses</source>
|
||||
<translation>Gönderilen Adresler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Receiving addresses</source>
|
||||
<translation>Alınan Adresler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Edit</source>
|
||||
<translation>Düzenle</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export Address List</source>
|
||||
<translation>Adres Listesini Dışar Aktar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Exporting Failed</source>
|
||||
<translation>Dışa Aktarma Başarısız</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AddressTableModel</name>
|
||||
</context>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>etiket</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>adres</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(etiket yok)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AskPassphraseDialog</name>
|
||||
<message>
|
||||
<source>Encrypt wallet</source>
|
||||
<translation>Cüzdanı Şifrele</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This operation needs your wallet passphrase to unlock the wallet.</source>
|
||||
<translation>Bu işlem, cüzdan kilidinizi açmak için parolanıza ihtiyaç duyuyor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unlock wallet</source>
|
||||
<translation>Cüzdanı Kilitle</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Decrypt wallet</source>
|
||||
<translation>Cüzdanın Şifresini Çöz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirm wallet encryption</source>
|
||||
<translation>Cüzdan Şifrelemesini Onaylayın</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Are you sure you wish to encrypt your wallet?</source>
|
||||
<translation>Cüzdanınızı şifrelemek istediğinizden emin misiniz?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet encrypted</source>
|
||||
<translation>Cüzdan Şifrelendi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet unlock failed</source>
|
||||
<translation>Cüzdan Kilidi Açma Hatası</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BanTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>BitcoinGUI</name>
|
||||
<message>
|
||||
<source>E&xit</source>
|
||||
<translation>Çıkış</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&About %1</source>
|
||||
<translation>Hakkında%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Receiving addresses...</source>
|
||||
<translation>Alış adresleri</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Network activity disabled.</source>
|
||||
<translation>Ağ etkinliği devre dışı.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error</source>
|
||||
<translation>Hata</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning</source>
|
||||
<translation>Uyarı</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Information</source>
|
||||
<translation>Bilgi</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoinControlDialog</name>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(etiket yok)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditAddressDialog</name>
|
||||
@@ -80,6 +180,10 @@
|
||||
</context>
|
||||
<context>
|
||||
<name>Intro</name>
|
||||
<message>
|
||||
<source>Error</source>
|
||||
<translation>Hata</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ModalOverlay</name>
|
||||
@@ -120,13 +224,33 @@
|
||||
<source>Copy &Address</source>
|
||||
<translation>&Adresi Kopyala</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>adres</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>etiket</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RecentRequestsTableModel</name>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>etiket</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(etiket yok)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsDialog</name>
|
||||
</context>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(etiket yok)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsEntry</name>
|
||||
</context>
|
||||
@@ -153,9 +277,29 @@
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionTableModel</name>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>etiket</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(etiket yok)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionView</name>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>etiket</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>adres</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Exporting Failed</source>
|
||||
<translation>Dışa Aktarma Başarısız</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
@@ -171,5 +315,65 @@
|
||||
</context>
|
||||
<context>
|
||||
<name>bitcoin-core</name>
|
||||
</context>
|
||||
<message>
|
||||
<source>Print this help message and exit</source>
|
||||
<translation>Bu yardım mesajını yazdır ve çıkış yap</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Print version and exit</source>
|
||||
<translation>Versiyonu yazdır ve çıkış yap</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Verifying blocks...</source>
|
||||
<translation>Bloklar Onaylanıyor...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Verifying wallet...</source>
|
||||
<translation>Cüzdan Onaylanıyor...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet options:</source>
|
||||
<translation>Cüzdan Ayarları</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Information</source>
|
||||
<translation>Bilgi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RPC server options:</source>
|
||||
<translation>RPC sunucu ayarları</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction too large</source>
|
||||
<translation>İşlem çok büyük</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning</source>
|
||||
<translation>Uyarı</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading addresses...</source>
|
||||
<translation>Adresler bekleniyor...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Insufficient funds</source>
|
||||
<translation>Yetersiz Bakiye</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading wallet...</source>
|
||||
<translation>Cüzdan Bekleniyor...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cannot write default address</source>
|
||||
<translation>Varsayılan adres yazılamıyor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Rescanning...</source>
|
||||
<translation>Tekrar taranıyor...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error</source>
|
||||
<translation>Hata</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
@@ -197,7 +197,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>The supplied passphrases do not match.</source>
|
||||
<translation>提供的密码不yi'zhi。</translation>
|
||||
<translation>提供的密码不一致。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet unlock failed</source>
|
||||
@@ -531,6 +531,14 @@
|
||||
<source>Incoming transaction</source>
|
||||
<translation>流入交易</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>HD key generation is <b>enabled</b></source>
|
||||
<translation>HD密钥生成<b>启用</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>HD key generation is <b>disabled</b></source>
|
||||
<translation>HD密钥生成<b>禁用</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet is <b>encrypted</b> and currently <b>unlocked</b></source>
|
||||
<translation>钱包已被<b>加密</b>,当前为<b>解锁</b>状态</translation>
|
||||
@@ -918,7 +926,11 @@
|
||||
<source>Hide</source>
|
||||
<translation>隐藏</translation>
|
||||
</message>
|
||||
</context>
|
||||
<message>
|
||||
<source>Unknown. Syncing Headers (%1)...</source>
|
||||
<translation>未知状态。同步区块头(%1)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>OpenURIDialog</name>
|
||||
<message>
|
||||
@@ -2066,6 +2078,10 @@
|
||||
<source>Dust:</source>
|
||||
<translation>小额:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirmation time target:</source>
|
||||
<translation>确认时间目标:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Clear &All</source>
|
||||
<translation>清除所有(&A)</translation>
|
||||
@@ -2634,7 +2650,11 @@
|
||||
<source>This pane shows a detailed description of the transaction</source>
|
||||
<translation>当前面板显示了交易的详细信息</translation>
|
||||
</message>
|
||||
</context>
|
||||
<message>
|
||||
<source>Details for %1</source>
|
||||
<translation>%1 详情</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionTableModel</name>
|
||||
<message>
|
||||
@@ -2661,6 +2681,10 @@
|
||||
<source>Unconfirmed</source>
|
||||
<translation>未确认的 </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Abandoned</source>
|
||||
<translation>已丢弃</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirming (%1 of %2 recommended confirmations)</source>
|
||||
<translation>确认中 (推荐 %2个确认,已经有 %1个确认)</translation>
|
||||
@@ -2978,6 +3002,10 @@
|
||||
<translation>接受命令行和 JSON-RPC 命令
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Distributed under the MIT software license, see the accompanying file %s or %s</source>
|
||||
<translation>在MIT协议下分发,参见附带的 %s 文件或 %s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>If <category> is not supplied or if <category> = 1, output all debugging information.</source>
|
||||
<translation>如果<category>未提供或<category> = 1,输出所有调试信息。</translation>
|
||||
@@ -3036,14 +3064,34 @@
|
||||
<source>Bind to given address and always listen on it. Use [host]:port notation for IPv6</source>
|
||||
<translation>绑定指定的IP地址开始监听。IPv6地址请使用[host]:port 格式</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cannot obtain a lock on data directory %s. %s is probably already running.</source>
|
||||
<translation>无法给数据目录 %s 上锁。%s 可能已经在运行。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup</source>
|
||||
<translation>删除钱包的所有交易记录,且只有用 -rescan参数启动客户端才能重新取回交易记录 </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source>
|
||||
<translation>读取 %s 时发生错误!所有的密钥都可以正确读取,但是交易记录或地址簿数据可能已经丢失或出错。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Execute command when a wallet transaction changes (%s in cmd is replaced by TxID)</source>
|
||||
<translation>当最佳区块变化时执行命令 (命令行中的 %s 会被替换成区块哈希值)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maximum total fees (in %s) to use in a single wallet transaction or raw transaction; setting this too low may abort large transactions (default: %s)</source>
|
||||
<translation>最大的单次钱包或原始转账费用(%s),设置太低可能导致大尺寸交易失败(默认:%s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly.</source>
|
||||
<translation>请检查电脑的日期时间设置是否正确!时间错误可能会导致 %s 运行异常。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Please contribute if you find %s useful. Visit %s for further information about the software.</source>
|
||||
<translation>如果你认为%s对你比较有用的话,请对我们进行一些捐赠支持。请访问%s网站来获取有关这个软件的更多信息。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d)</source>
|
||||
<translation>设置脚本验证的程序 (%u 到 %d, 0 = 自动, <0 = 保留自由的核心, 默认值: %d)</translation>
|
||||
@@ -3056,6 +3104,10 @@
|
||||
<source>Use UPnP to map the listening port (default: 1 when listening and no -proxy)</source>
|
||||
<translation>使用UPnP暴露本机监听端口(默认:1 当正在监听且不使用代理)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%s corrupt, salvage failed</source>
|
||||
<translation>%s 已损坏,抢救备份失败</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>-maxmempool must be at least %d MB</source>
|
||||
<translation>-maxmempool 最小为%d MB</translation>
|
||||
@@ -3068,6 +3120,10 @@
|
||||
<source>Append comment to the user agent string</source>
|
||||
<translation>为用户代理字符串附加说明</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Attempt to recover private keys from a corrupt wallet on startup</source>
|
||||
<translation>启动时尝试从已损坏的钱包文件中恢复私钥</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Block creation options:</source>
|
||||
<translation>数据块创建选项:</translation>
|
||||
@@ -3076,6 +3132,10 @@
|
||||
<source>Cannot resolve -%s address: '%s'</source>
|
||||
<translation>无法解析 - %s 地址: '%s'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Chain selection options:</source>
|
||||
<translation>区块链选择选项:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Connection options:</source>
|
||||
<translation>连接选项:</translation>
|
||||
@@ -3132,6 +3192,14 @@
|
||||
<source>Error loading %s</source>
|
||||
<translation>载入 %s 时发生错误</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error loading %s: Wallet corrupted</source>
|
||||
<translation>%s 加载出错:钱包损坏</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error loading %s: Wallet requires newer version of %s</source>
|
||||
<translation>%s 加载错误:请升级到最新版 %s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error loading block database</source>
|
||||
<translation>导入数据块数据库出错</translation>
|
||||
@@ -3160,6 +3228,10 @@
|
||||
<source>Invalid -onion address: '%s'</source>
|
||||
<translation>无效的 -onion 地址:“%s”</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid amount for -%s=<amount>: '%s'</source>
|
||||
<translation>非法金额 -%s=<amount>: '%s'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid amount for -fallbackfee=<amount>: '%s'</source>
|
||||
<translation>-fallbackfee 的无效数额=<amount>: '%s'</translation>
|
||||
@@ -3168,6 +3240,10 @@
|
||||
<source>Keep the transaction memory pool below <n> megabytes (default: %u)</source>
|
||||
<translation>保持交易内存池大小低于<n>MB(默认:%u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading banlist...</source>
|
||||
<translation>加载黑名单</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Location of the auth cookie (default: data dir)</source>
|
||||
<translation>认证Cookie的位置 (默认: data目录)</translation>
|
||||
@@ -3180,6 +3256,10 @@
|
||||
<source>Only connect to nodes in network <net> (ipv4, ipv6 or onion)</source>
|
||||
<translation>只连接 <net>网络中的节点 (ipv4, ipv6 或 onion) </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Print this help message and exit</source>
|
||||
<translation>打印出这段帮助信息并退出</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Print version and exit</source>
|
||||
<translation>打印版本信息并退出</translation>
|
||||
@@ -3192,6 +3272,10 @@
|
||||
<source>Prune mode is incompatible with -txindex.</source>
|
||||
<translation>修剪模式与 -txindex 不兼容。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Rebuild chain state from the currently indexed blocks</source>
|
||||
<translation>从当前索引的区块中重建链状态</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set database cache size in megabytes (%d to %d, default: %d)</source>
|
||||
<translation>设置以MB为单位的数据库缓存大小(%d 到 %d, 默认值: %d)</translation>
|
||||
@@ -3208,6 +3292,10 @@
|
||||
<source>The source code is available from %s.</source>
|
||||
<translation>源代码可以在 %s 获得。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unable to bind to %s on this computer. %s is probably already running.</source>
|
||||
<translation>无法在本机绑定 %s 端口。%s 可能已经在运行。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unsupported argument -benchmark ignored, use -debug=bench.</source>
|
||||
<translation>忽略不支持的选项 -benchmark,使用 -debug=bench</translation>
|
||||
@@ -3509,6 +3597,10 @@
|
||||
<source>Support filtering of blocks and transaction with bloom filters (default: %u)</source>
|
||||
<translation>支持用 Bloom 过滤器来过滤区块和交易(默认值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This is the transaction fee you may pay when fee estimates are not available.</source>
|
||||
<translation>这是在费用估计不可用时你可能会支付的交易费。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</source>
|
||||
<translation>网络版本字符串的总长度 (%i) 超过最大长度 (%i) 了。请减少 uacomment 参数的数目或长度。</translation>
|
||||
@@ -3533,6 +3625,10 @@
|
||||
<source>Warning: Unknown block versions being mined! It's possible unknown rules are in effect</source>
|
||||
<translation>警告: 未知的区块版本被挖掘!未知规则可能已生效</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%s is set very high!</source>
|
||||
<translation>%s非常高!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(default: %s)</source>
|
||||
<translation>(默认: %s) </translation>
|
||||
@@ -3593,6 +3689,10 @@
|
||||
<source>Set key pool size to <n> (default: %u)</source>
|
||||
<translation>设置私钥池大小为 <n> (默认:%u) </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set maximum BIP141 block weight (default: %d)</source>
|
||||
<translation>设置BIP141最大区块权重 (默认: %d)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set the number of threads to service RPC calls (default: %d)</source>
|
||||
<translation>设置RPC服务线程数 (默认: %d) </translation>
|
||||
@@ -3617,10 +3717,22 @@
|
||||
<source>Starting network threads...</source>
|
||||
<translation>正在启动网络线程...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This is the transaction fee you will pay if you send a transaction.</source>
|
||||
<translation>如果发送交易,这是你交易付款时所要付的手续费。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Threshold for disconnecting misbehaving peers (default: %u)</source>
|
||||
<translation>断开 非礼节点的阀值 (默认: %u) </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction amounts must not be negative</source>
|
||||
<translation>交易金额不不可为负数</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction must have at least one recipient</source>
|
||||
<translation>交易必须包含至少一个接收人</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown network specified in -onlynet: '%s'</source>
|
||||
<translation>-onlynet 指定的是未知网络:%s</translation>
|
||||
|
||||
@@ -99,15 +99,18 @@ void ModalOverlay::tipUpdate(int count, const QDateTime& blockDate, double nVeri
|
||||
progressDelta = progressStart-sample.second;
|
||||
timeDelta = blockProcessTime[0].first - sample.first;
|
||||
progressPerHour = progressDelta/(double)timeDelta*1000*3600;
|
||||
remainingMSecs = remainingProgress / progressDelta * timeDelta;
|
||||
remainingMSecs = (progressDelta > 0) ? remainingProgress / progressDelta * timeDelta : -1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
// show progress increase per hour
|
||||
ui->progressIncreasePerH->setText(QString::number(progressPerHour*100, 'f', 2)+"%");
|
||||
|
||||
// show expected remaining time
|
||||
ui->expectedTimeLeft->setText(GUIUtil::formatNiceTimeOffset(remainingMSecs/1000.0));
|
||||
if(remainingMSecs >= 0) {
|
||||
ui->expectedTimeLeft->setText(GUIUtil::formatNiceTimeOffset(remainingMSecs / 1000.0));
|
||||
} else {
|
||||
ui->expectedTimeLeft->setText(QObject::tr("unknown"));
|
||||
}
|
||||
|
||||
static const int MAX_SAMPLES = 5000;
|
||||
if (blockProcessTime.count() > MAX_SAMPLES)
|
||||
@@ -169,4 +172,4 @@ void ModalOverlay::closeClicked()
|
||||
{
|
||||
showHide(true);
|
||||
userClosed = true;
|
||||
}
|
||||
}
|
||||
@@ -80,6 +80,8 @@ OptionsDialog::OptionsDialog(QWidget *parent, bool enableWallet) :
|
||||
ui->bitcoinAtStartup->setToolTip(ui->bitcoinAtStartup->toolTip().arg(tr(PACKAGE_NAME)));
|
||||
ui->bitcoinAtStartup->setText(ui->bitcoinAtStartup->text().arg(tr(PACKAGE_NAME)));
|
||||
|
||||
ui->openBitcoinConfButton->setToolTip(ui->openBitcoinConfButton->toolTip().arg(tr(PACKAGE_NAME)));
|
||||
|
||||
ui->lang->setToolTip(ui->lang->toolTip().arg(tr(PACKAGE_NAME)));
|
||||
ui->lang->addItem(QString("(") + tr("default") + QString(")"), QVariant(""));
|
||||
for (const QString &langStr : translations.entryList())
|
||||
|
||||
@@ -151,10 +151,32 @@ void OptionsModel::Init(bool resetSettings)
|
||||
language = settings.value("language").toString();
|
||||
}
|
||||
|
||||
/** Helper function to copy contents from one QSettings to another.
|
||||
* By using allKeys this also covers nested settings in a hierarchy.
|
||||
*/
|
||||
static void CopySettings(QSettings& dst, const QSettings& src)
|
||||
{
|
||||
for (const QString& key : src.allKeys()) {
|
||||
dst.setValue(key, src.value(key));
|
||||
}
|
||||
}
|
||||
|
||||
/** Back up a QSettings to an ini-formatted file. */
|
||||
static void BackupSettings(const fs::path& filename, const QSettings& src)
|
||||
{
|
||||
qWarning() << "Backing up GUI settings to" << GUIUtil::boostPathToQString(filename);
|
||||
QSettings dst(GUIUtil::boostPathToQString(filename), QSettings::IniFormat);
|
||||
dst.clear();
|
||||
CopySettings(dst, src);
|
||||
}
|
||||
|
||||
void OptionsModel::Reset()
|
||||
{
|
||||
QSettings settings;
|
||||
|
||||
// Backup old settings to chain-specific datadir for troubleshooting
|
||||
BackupSettings(GetDataDir(true) / "guisettings.ini.bak", settings);
|
||||
|
||||
// Save the strDataDir setting
|
||||
QString dataDir = Intro::getDefaultDataDirectory();
|
||||
dataDir = settings.value("strDataDir", dataDir).toString();
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
#include <wallet/wallet.h>
|
||||
#endif
|
||||
|
||||
#include <QDesktopWidget>
|
||||
#include <QKeyEvent>
|
||||
#include <QMenu>
|
||||
#include <QMessageBox>
|
||||
@@ -428,7 +429,11 @@ RPCConsole::RPCConsole(const PlatformStyle *_platformStyle, QWidget *parent) :
|
||||
consoleFontSize(0)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
GUIUtil::restoreWindowGeometry("nRPCConsoleWindow", this->size(), this);
|
||||
QSettings settings;
|
||||
if (!restoreGeometry(settings.value("RPCConsoleWindowGeometry").toByteArray())) {
|
||||
// Restore failed (perhaps missing setting), center the window
|
||||
move(QApplication::desktop()->availableGeometry().center() - frameGeometry().center());
|
||||
}
|
||||
|
||||
ui->openDebugLogfileButton->setToolTip(ui->openDebugLogfileButton->toolTip().arg(tr(PACKAGE_NAME)));
|
||||
|
||||
@@ -466,14 +471,14 @@ RPCConsole::RPCConsole(const PlatformStyle *_platformStyle, QWidget *parent) :
|
||||
ui->detailWidget->hide();
|
||||
ui->peerHeading->setText(tr("Select a peer to view detailed information."));
|
||||
|
||||
QSettings settings;
|
||||
consoleFontSize = settings.value(fontSizeSettingsKey, QFontInfo(QFont()).pointSize()).toInt();
|
||||
clear();
|
||||
}
|
||||
|
||||
RPCConsole::~RPCConsole()
|
||||
{
|
||||
GUIUtil::saveWindowGeometry("nRPCConsoleWindow", this);
|
||||
QSettings settings;
|
||||
settings.setValue("RPCConsoleWindowGeometry", saveGeometry());
|
||||
RPCUnsetTimerInterface(rpcTimerInterface);
|
||||
delete rpcTimerInterface;
|
||||
delete ui;
|
||||
|
||||
@@ -114,10 +114,6 @@ SendCoinsDialog::SendCoinsDialog(const PlatformStyle *_platformStyle, QWidget *p
|
||||
settings.setValue("nFeeRadio", 1); // custom
|
||||
if (!settings.contains("nFeeRadio"))
|
||||
settings.setValue("nFeeRadio", 0); // recommended
|
||||
if (!settings.contains("nCustomFeeRadio") && settings.contains("nTransactionFee") && settings.value("nTransactionFee").toLongLong() > 0) // compatibility
|
||||
settings.setValue("nCustomFeeRadio", 1); // total at least
|
||||
if (!settings.contains("nCustomFeeRadio"))
|
||||
settings.setValue("nCustomFeeRadio", 0); // per kilobyte
|
||||
if (!settings.contains("nSmartFeeSliderPosition"))
|
||||
settings.setValue("nSmartFeeSliderPosition", 0);
|
||||
if (!settings.contains("nTransactionFee"))
|
||||
@@ -127,8 +123,6 @@ SendCoinsDialog::SendCoinsDialog(const PlatformStyle *_platformStyle, QWidget *p
|
||||
ui->groupFee->setId(ui->radioSmartFee, 0);
|
||||
ui->groupFee->setId(ui->radioCustomFee, 1);
|
||||
ui->groupFee->button((int)std::max(0, std::min(1, settings.value("nFeeRadio").toInt())))->setChecked(true);
|
||||
ui->groupCustomFee->setId(ui->radioCustomPerKilobyte, 0);
|
||||
ui->groupCustomFee->button((int)std::max(0, std::min(1, settings.value("nCustomFeeRadio").toInt())))->setChecked(true);
|
||||
ui->customFee->setValue(settings.value("nTransactionFee").toLongLong());
|
||||
ui->checkBoxMinimumFee->setChecked(settings.value("fPayOnlyMinFee").toBool());
|
||||
minimizeFeeSection(settings.value("fFeeSectionMinimized").toBool());
|
||||
@@ -178,7 +172,6 @@ void SendCoinsDialog::setModel(WalletModel *_model)
|
||||
connect(ui->confTargetSelector, SIGNAL(currentIndexChanged(int)), this, SLOT(coinControlUpdateLabels()));
|
||||
connect(ui->groupFee, SIGNAL(buttonClicked(int)), this, SLOT(updateFeeSectionControls()));
|
||||
connect(ui->groupFee, SIGNAL(buttonClicked(int)), this, SLOT(coinControlUpdateLabels()));
|
||||
connect(ui->groupCustomFee, SIGNAL(buttonClicked(int)), this, SLOT(coinControlUpdateLabels()));
|
||||
connect(ui->customFee, SIGNAL(valueChanged()), this, SLOT(coinControlUpdateLabels()));
|
||||
connect(ui->checkBoxMinimumFee, SIGNAL(stateChanged(int)), this, SLOT(setMinimumFee()));
|
||||
connect(ui->checkBoxMinimumFee, SIGNAL(stateChanged(int)), this, SLOT(updateFeeSectionControls()));
|
||||
@@ -214,7 +207,6 @@ SendCoinsDialog::~SendCoinsDialog()
|
||||
QSettings settings;
|
||||
settings.setValue("fFeeSectionMinimized", fFeeMinimized);
|
||||
settings.setValue("nFeeRadio", ui->groupFee->checkedId());
|
||||
settings.setValue("nCustomFeeRadio", ui->groupCustomFee->checkedId());
|
||||
settings.setValue("nConfTarget", getConfTargetForIndex(ui->confTargetSelector->currentIndex()));
|
||||
settings.setValue("nTransactionFee", (qint64)ui->customFee->value());
|
||||
settings.setValue("fPayOnlyMinFee", ui->checkBoxMinimumFee->isChecked());
|
||||
@@ -609,7 +601,6 @@ void SendCoinsDialog::on_buttonMinimizeFee_clicked()
|
||||
|
||||
void SendCoinsDialog::setMinimumFee()
|
||||
{
|
||||
ui->radioCustomPerKilobyte->setChecked(true);
|
||||
ui->customFee->setValue(CWallet::GetRequiredFee(1000));
|
||||
}
|
||||
|
||||
@@ -622,7 +613,7 @@ void SendCoinsDialog::updateFeeSectionControls()
|
||||
ui->labelFeeEstimation ->setEnabled(ui->radioSmartFee->isChecked());
|
||||
ui->checkBoxMinimumFee ->setEnabled(ui->radioCustomFee->isChecked());
|
||||
ui->labelMinFeeWarning ->setEnabled(ui->radioCustomFee->isChecked());
|
||||
ui->radioCustomPerKilobyte ->setEnabled(ui->radioCustomFee->isChecked() && !ui->checkBoxMinimumFee->isChecked());
|
||||
ui->labelCustomPerKilobyte ->setEnabled(ui->radioCustomFee->isChecked() && !ui->checkBoxMinimumFee->isChecked());
|
||||
ui->customFee ->setEnabled(ui->radioCustomFee->isChecked() && !ui->checkBoxMinimumFee->isChecked());
|
||||
}
|
||||
|
||||
@@ -634,8 +625,7 @@ void SendCoinsDialog::updateFeeMinimizedLabel()
|
||||
if (ui->radioSmartFee->isChecked())
|
||||
ui->labelFeeMinimized->setText(ui->labelSmartFee->text());
|
||||
else {
|
||||
ui->labelFeeMinimized->setText(BitcoinUnits::formatWithUnit(model->getOptionsModel()->getDisplayUnit(), ui->customFee->value()) +
|
||||
((ui->radioCustomPerKilobyte->isChecked()) ? "/kB" : ""));
|
||||
ui->labelFeeMinimized->setText(BitcoinUnits::formatWithUnit(model->getOptionsModel()->getDisplayUnit(), ui->customFee->value()) + "/kB");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -789,10 +779,8 @@ void SendCoinsDialog::coinControlChangeEdited(const QString& text)
|
||||
}
|
||||
else // Valid address
|
||||
{
|
||||
CKeyID keyid;
|
||||
addr.GetKeyID(keyid);
|
||||
if (!model->havePrivKey(keyid)) // Unknown change address
|
||||
{
|
||||
const CTxDestination dest = addr.Get();
|
||||
if (!model->IsSpendable(dest)) {
|
||||
ui->labelCoinControlChangeLabel->setText(tr("Warning: Unknown change address"));
|
||||
|
||||
// confirmation dialog
|
||||
@@ -800,7 +788,7 @@ void SendCoinsDialog::coinControlChangeEdited(const QString& text)
|
||||
QMessageBox::Yes | QMessageBox::Cancel, QMessageBox::Cancel);
|
||||
|
||||
if(btnRetVal == QMessageBox::Yes)
|
||||
CoinControlDialog::coinControl->destChange = addr.Get();
|
||||
CoinControlDialog::coinControl->destChange = dest;
|
||||
else
|
||||
{
|
||||
ui->lineEditCoinControlChange->setText("");
|
||||
@@ -819,7 +807,7 @@ void SendCoinsDialog::coinControlChangeEdited(const QString& text)
|
||||
else
|
||||
ui->labelCoinControlChangeLabel->setText(tr("(no label)"));
|
||||
|
||||
CoinControlDialog::coinControl->destChange = addr.Get();
|
||||
CoinControlDialog::coinControl->destChange = dest;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
#include "rpc/register.h"
|
||||
#include "rpc/server.h"
|
||||
#include "rpcconsole.h"
|
||||
#include "test/testutil.h"
|
||||
#include "test/test_bitcoin.h"
|
||||
#include "univalue.h"
|
||||
#include "util.h"
|
||||
@@ -37,11 +36,6 @@ void RPCNestedTests::rpcNestedTests()
|
||||
// do some test setup
|
||||
// could be moved to a more generic place when we add more tests on QT level
|
||||
tableRPC.appendCommand("rpcNestedTest", &vRPCCommands[0]);
|
||||
ClearDatadirCache();
|
||||
std::string path = QDir::tempPath().toStdString() + "/" + strprintf("test_bitcoin_qt_%lu_%i", (unsigned long)GetTime(), (int)(GetRand(100000)));
|
||||
QDir dir(QString::fromStdString(path));
|
||||
dir.mkpath(".");
|
||||
gArgs.ForceSetArg("-datadir", path);
|
||||
//mempool.setSanityCheck(1.0);
|
||||
|
||||
TestingSetup test;
|
||||
@@ -136,6 +130,4 @@ void RPCNestedTests::rpcNestedTests()
|
||||
QVERIFY_EXCEPTION_THROWN(RPCConsole::RPCExecuteCommandLine(result, "rpcNestedTest(abc,,abc)"), std::runtime_error); //don't tollerate empty arguments when using ,
|
||||
QVERIFY_EXCEPTION_THROWN(RPCConsole::RPCExecuteCommandLine(result, "rpcNestedTest(abc,,)"), std::runtime_error); //don't tollerate empty arguments when using ,
|
||||
#endif
|
||||
|
||||
fs::remove_all(fs::path(path));
|
||||
}
|
||||
|
||||
@@ -53,6 +53,10 @@ int main(int argc, char *argv[])
|
||||
SetupNetworking();
|
||||
SelectParams(CBaseChainParams::MAIN);
|
||||
noui_connect();
|
||||
ClearDatadirCache();
|
||||
fs::path pathTemp = fs::temp_directory_path() / strprintf("test_bitcoin-qt_%lu_%i", (unsigned long)GetTime(), (int)GetRand(100000));
|
||||
fs::create_directories(pathTemp);
|
||||
gArgs.ForceSetArg("-datadir", pathTemp.string());
|
||||
|
||||
bool fInvalid = false;
|
||||
|
||||
@@ -97,5 +101,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
#endif
|
||||
|
||||
fs::remove_all(pathTemp);
|
||||
|
||||
return fInvalid;
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
#include <QScrollBar>
|
||||
#include <QSignalMapper>
|
||||
#include <QTableView>
|
||||
#include <QTimer>
|
||||
#include <QUrl>
|
||||
#include <QVBoxLayout>
|
||||
|
||||
@@ -112,6 +113,17 @@ TransactionView::TransactionView(const PlatformStyle *platformStyle, QWidget *pa
|
||||
amountWidget->setValidator(new QDoubleValidator(0, 1e20, 8, this));
|
||||
hlayout->addWidget(amountWidget);
|
||||
|
||||
// Delay before filtering transactions in ms
|
||||
static const int input_filter_delay = 200;
|
||||
|
||||
QTimer* amount_typing_delay = new QTimer(this);
|
||||
amount_typing_delay->setSingleShot(true);
|
||||
amount_typing_delay->setInterval(input_filter_delay);
|
||||
|
||||
QTimer* prefix_typing_delay = new QTimer(this);
|
||||
prefix_typing_delay->setSingleShot(true);
|
||||
prefix_typing_delay->setInterval(input_filter_delay);
|
||||
|
||||
QVBoxLayout *vlayout = new QVBoxLayout(this);
|
||||
vlayout->setContentsMargins(0,0,0,0);
|
||||
vlayout->setSpacing(0);
|
||||
@@ -173,8 +185,10 @@ TransactionView::TransactionView(const PlatformStyle *platformStyle, QWidget *pa
|
||||
connect(dateWidget, SIGNAL(activated(int)), this, SLOT(chooseDate(int)));
|
||||
connect(typeWidget, SIGNAL(activated(int)), this, SLOT(chooseType(int)));
|
||||
connect(watchOnlyWidget, SIGNAL(activated(int)), this, SLOT(chooseWatchonly(int)));
|
||||
connect(addressWidget, SIGNAL(textChanged(QString)), this, SLOT(changedPrefix(QString)));
|
||||
connect(amountWidget, SIGNAL(textChanged(QString)), this, SLOT(changedAmount(QString)));
|
||||
connect(amountWidget, SIGNAL(textChanged(QString)), amount_typing_delay, SLOT(start()));
|
||||
connect(amount_typing_delay, SIGNAL(timeout()), this, SLOT(changedAmount()));
|
||||
connect(addressWidget, SIGNAL(textChanged(QString)), prefix_typing_delay, SLOT(start()));
|
||||
connect(prefix_typing_delay, SIGNAL(timeout()), this, SLOT(changedPrefix()));
|
||||
|
||||
connect(view, SIGNAL(doubleClicked(QModelIndex)), this, SIGNAL(doubleClicked(QModelIndex)));
|
||||
connect(view, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(contextualMenu(QPoint)));
|
||||
@@ -312,20 +326,19 @@ void TransactionView::chooseWatchonly(int idx)
|
||||
(TransactionFilterProxy::WatchOnlyFilter)watchOnlyWidget->itemData(idx).toInt());
|
||||
}
|
||||
|
||||
void TransactionView::changedPrefix(const QString &prefix)
|
||||
void TransactionView::changedPrefix()
|
||||
{
|
||||
if(!transactionProxyModel)
|
||||
return;
|
||||
transactionProxyModel->setAddressPrefix(prefix);
|
||||
transactionProxyModel->setAddressPrefix(addressWidget->text());
|
||||
}
|
||||
|
||||
void TransactionView::changedAmount(const QString &amount)
|
||||
void TransactionView::changedAmount()
|
||||
{
|
||||
if(!transactionProxyModel)
|
||||
return;
|
||||
CAmount amount_parsed = 0;
|
||||
if(BitcoinUnits::parse(model->getOptionsModel()->getDisplayUnit(), amount, &amount_parsed))
|
||||
{
|
||||
if (BitcoinUnits::parse(model->getOptionsModel()->getDisplayUnit(), amountWidget->text(), &amount_parsed)) {
|
||||
transactionProxyModel->setMinAmount(amount_parsed);
|
||||
}
|
||||
else
|
||||
|
||||
@@ -112,8 +112,8 @@ public Q_SLOTS:
|
||||
void chooseDate(int idx);
|
||||
void chooseType(int idx);
|
||||
void chooseWatchonly(int idx);
|
||||
void changedPrefix(const QString &prefix);
|
||||
void changedAmount(const QString &amount);
|
||||
void changedAmount();
|
||||
void changedPrefix();
|
||||
void exportClicked();
|
||||
void focusTransaction(const QModelIndex&);
|
||||
|
||||
|
||||
@@ -561,9 +561,9 @@ bool WalletModel::getPubKey(const CKeyID &address, CPubKey& vchPubKeyOut) const
|
||||
return wallet->GetPubKey(address, vchPubKeyOut);
|
||||
}
|
||||
|
||||
bool WalletModel::havePrivKey(const CKeyID &address) const
|
||||
bool WalletModel::IsSpendable(const CTxDestination& dest) const
|
||||
{
|
||||
return wallet->HaveKey(address);
|
||||
return IsMine(*wallet, dest) & ISMINE_SPENDABLE;
|
||||
}
|
||||
|
||||
bool WalletModel::getPrivKey(const CKeyID &address, CKey& vchPrivKeyOut) const
|
||||
|
||||
@@ -190,7 +190,7 @@ public:
|
||||
UnlockContext requestUnlock();
|
||||
|
||||
bool getPubKey(const CKeyID &address, CPubKey& vchPubKeyOut) const;
|
||||
bool havePrivKey(const CKeyID &address) const;
|
||||
bool IsSpendable(const CTxDestination& dest) const;
|
||||
bool getPrivKey(const CKeyID &address, CKey& vchPrivKeyOut) const;
|
||||
void getOutputs(const std::vector<COutPoint>& vOutpoints, std::vector<COutput>& vOutputs);
|
||||
bool isSpent(const COutPoint& outpoint) const;
|
||||
|
||||
@@ -125,7 +125,7 @@ UniValue blockToJSON(const CBlock& block, const CBlockIndex* blockindex, bool tx
|
||||
if(txDetails)
|
||||
{
|
||||
UniValue objTx(UniValue::VOBJ);
|
||||
TxToUniv(*tx, uint256(), objTx);
|
||||
TxToUniv(*tx, uint256(), objTx, true, RPCSerializationFlags());
|
||||
txs.push_back(objTx);
|
||||
}
|
||||
else
|
||||
@@ -944,9 +944,10 @@ UniValue gettxout(const JSONRPCRequest& request)
|
||||
"gettxout \"txid\" n ( include_mempool )\n"
|
||||
"\nReturns details about an unspent transaction output.\n"
|
||||
"\nArguments:\n"
|
||||
"1. \"txid\" (string, required) The transaction id\n"
|
||||
"2. n (numeric, required) vout number\n"
|
||||
"3. include_mempool (boolean, optional) Whether to include the mempool\n"
|
||||
"1. \"txid\" (string, required) The transaction id\n"
|
||||
"2. \"n\" (numeric, required) vout number\n"
|
||||
"3. \"include_mempool\" (boolean, optional) Whether to include the mempool. Default: true."
|
||||
" Note that an unspent output that is spent in the mempool won't appear.\n"
|
||||
"\nResult:\n"
|
||||
"{\n"
|
||||
" \"bestblock\" : \"hash\", (string) the block hash\n"
|
||||
|
||||
@@ -115,8 +115,8 @@ static const CRPCConvertParam vRPCConvertParams[] =
|
||||
{ "keypoolrefill", 0, "newsize" },
|
||||
{ "getrawmempool", 0, "verbose" },
|
||||
{ "estimatefee", 0, "nblocks" },
|
||||
{ "estimatesmartfee", 0, "nblocks" },
|
||||
{ "estimaterawfee", 0, "nblocks" },
|
||||
{ "estimatesmartfee", 0, "conf_target" },
|
||||
{ "estimaterawfee", 0, "conf_target" },
|
||||
{ "estimaterawfee", 1, "threshold" },
|
||||
{ "prioritisetransaction", 1, "dummy" },
|
||||
{ "prioritisetransaction", 2, "fee_delta" },
|
||||
|
||||
@@ -195,7 +195,6 @@ UniValue getmininginfo(const JSONRPCRequest& request)
|
||||
"\nResult:\n"
|
||||
"{\n"
|
||||
" \"blocks\": nnn, (numeric) The current block\n"
|
||||
" \"currentblocksize\": nnn, (numeric) The last block size\n"
|
||||
" \"currentblockweight\": nnn, (numeric) The last block weight\n"
|
||||
" \"currentblocktx\": nnn, (numeric) The last block transaction\n"
|
||||
" \"difficulty\": xxx.xxxxx (numeric) The current difficulty\n"
|
||||
@@ -214,7 +213,6 @@ UniValue getmininginfo(const JSONRPCRequest& request)
|
||||
|
||||
UniValue obj(UniValue::VOBJ);
|
||||
obj.push_back(Pair("blocks", (int)chainActive.Height()));
|
||||
obj.push_back(Pair("currentblocksize", (uint64_t)nLastBlockSize));
|
||||
obj.push_back(Pair("currentblockweight", (uint64_t)nLastBlockWeight));
|
||||
obj.push_back(Pair("currentblocktx", (uint64_t)nLastBlockTx));
|
||||
obj.push_back(Pair("difficulty", (double)GetDifficulty()));
|
||||
|
||||
@@ -156,7 +156,7 @@ UniValue getpeerinfo(const JSONRPCRequest& request)
|
||||
// their ver message.
|
||||
obj.push_back(Pair("subver", stats.cleanSubVer));
|
||||
obj.push_back(Pair("inbound", stats.fInbound));
|
||||
obj.push_back(Pair("addnode", stats.fAddnode));
|
||||
obj.push_back(Pair("addnode", stats.m_manual_connection));
|
||||
obj.push_back(Pair("startingheight", stats.nStartingHeight));
|
||||
if (fStateStats) {
|
||||
obj.push_back(Pair("banscore", statestats.nMisbehavior));
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user