mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-22 16:14:50 +01:00
Compare commits
167 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fa27a07607 | ||
|
|
bfa7183c4e | ||
|
|
673919caf7 | ||
|
|
5f5b444cc0 | ||
|
|
784e218610 | ||
|
|
a6cba19831 | ||
|
|
aa2d12a592 | ||
|
|
641b2ffb45 | ||
|
|
063c8ce7a0 | ||
|
|
3f76160087 | ||
|
|
b2711b98bd | ||
|
|
410774ab89 | ||
|
|
df695db323 | ||
|
|
e2f7677bde | ||
|
|
1fb747a800 | ||
|
|
1dc357dabb | ||
|
|
629c7b029c | ||
|
|
bcb27d7b03 | ||
|
|
af25a757e0 | ||
|
|
715da91e91 | ||
|
|
2800b3d5c1 | ||
|
|
e78007fc1a | ||
|
|
d9fc969e71 | ||
|
|
23ba460c1a | ||
|
|
13b3bb5644 | ||
|
|
79745d1752 | ||
|
|
beb09f09b3 | ||
|
|
e29aa6e72e | ||
|
|
f88959ba7c | ||
|
|
0023c97890 | ||
|
|
832eb4ff54 | ||
|
|
966d8d0842 | ||
|
|
bb36ac82ef | ||
|
|
d24d0ec056 | ||
|
|
592016ba18 | ||
|
|
c80a498ae5 | ||
|
|
b2398240ff | ||
|
|
9c29bc71dc | ||
|
|
106471d0d7 | ||
|
|
206c30f6d7 | ||
|
|
d1f261150b | ||
|
|
d80c558e02 | ||
|
|
7ed1a60193 | ||
|
|
b55cbe82d9 | ||
|
|
b6c1f9478f | ||
|
|
86031083c7 | ||
|
|
5a58ddb6d5 | ||
|
|
206f5ee875 | ||
|
|
3dbc7def0f | ||
|
|
a635377b62 | ||
|
|
eb85ee62b3 | ||
|
|
890a92eba8 | ||
|
|
3460555f47 | ||
|
|
8f215c7a27 | ||
|
|
9c1a607a09 | ||
|
|
5935f0126e | ||
|
|
be92be5644 | ||
|
|
2472733a24 | ||
|
|
825ecb5758 | ||
|
|
fad9eb1014 | ||
|
|
379f71ea4f | ||
|
|
438483983a | ||
|
|
a4fc2fbb11 | ||
|
|
607b1b7498 | ||
|
|
a58d80d1b2 | ||
|
|
55462077fd | ||
|
|
e753cbd645 | ||
|
|
8602d8b213 | ||
|
|
e57462c6ba | ||
|
|
235550d019 | ||
|
|
802dcd37d1 | ||
|
|
7fcbe7dc11 | ||
|
|
a644780a2f | ||
|
|
194226f679 | ||
|
|
6d2448ca8e | ||
|
|
9c572e3b21 | ||
|
|
c69138a0d6 | ||
|
|
8f7cfb0096 | ||
|
|
fa3993bfe8 | ||
|
|
b3a04c963d | ||
|
|
f42ed1442e | ||
|
|
60d4621975 | ||
|
|
164082c822 | ||
|
|
bf32bc4b3d | ||
|
|
1b0752a265 | ||
|
|
956c0aac28 | ||
|
|
538fef6625 | ||
|
|
32ec900850 | ||
|
|
95faffed26 | ||
|
|
59716ec395 | ||
|
|
ed0498af28 | ||
|
|
ebf65666c2 | ||
|
|
a90db2f175 | ||
|
|
50c56f2fcf | ||
|
|
bb60121da1 | ||
|
|
6355214fd7 | ||
|
|
7bcf90cb01 | ||
|
|
dcd96b84cf | ||
|
|
f14a0aa99b | ||
|
|
09a05e86d4 | ||
|
|
7eab2db849 | ||
|
|
be8b9c62bf | ||
|
|
b022242887 | ||
|
|
98a24a262e | ||
|
|
238ef33692 | ||
|
|
d3a0382007 | ||
|
|
a7563633d2 | ||
|
|
da14d90984 | ||
|
|
889af0eaac | ||
|
|
85f1755163 | ||
|
|
ef27a060ac | ||
|
|
a01925c150 | ||
|
|
232ef630ec | ||
|
|
2edd0c40c3 | ||
|
|
20fd64fe10 | ||
|
|
021a9ad6f1 | ||
|
|
936ef73fab | ||
|
|
b80dedb596 | ||
|
|
333be7aabf | ||
|
|
487f0c3dc9 | ||
|
|
561b00a02b | ||
|
|
f810f14cf6 | ||
|
|
0fd3632868 | ||
|
|
71ac4ebe48 | ||
|
|
6a178e5261 | ||
|
|
7630301c16 | ||
|
|
b702e3757e | ||
|
|
fa3148aacb | ||
|
|
742f7dd972 | ||
|
|
37f236acc6 | ||
|
|
f9dbb319d2 | ||
|
|
f13ad1cae0 | ||
|
|
dc251de6a5 | ||
|
|
9586157c0f | ||
|
|
a6d7026a45 | ||
|
|
e8612adc5d | ||
|
|
ca253f6ebf | ||
|
|
fa852f0e8d | ||
|
|
aeb7fbfd69 | ||
|
|
1675b7ce55 | ||
|
|
4566011631 | ||
|
|
6b9f45e81b | ||
|
|
7aa6a8aefb | ||
|
|
29c24b05fb | ||
|
|
4a5e52cb51 | ||
|
|
20268c6d76 | ||
|
|
a0d4e79b4d | ||
|
|
a4f9c024c6 | ||
|
|
6f43ed4c5a | ||
|
|
fa466cbc50 | ||
|
|
2fa85ebd1c | ||
|
|
d88f7f8764 | ||
|
|
9999879f56 | ||
|
|
fa9ff8fe21 | ||
|
|
8f470ecc53 | ||
|
|
fa2cdc9ac2 | ||
|
|
ef362f2773 | ||
|
|
b4fc5257b7 | ||
|
|
3f5ad622e5 | ||
|
|
1a8a5ede9f | ||
|
|
6ad79cbd56 | ||
|
|
a720a98301 | ||
|
|
fa4ce7038d | ||
|
|
fa05626ca7 | ||
|
|
fa25210d62 | ||
|
|
1111aecbb5 | ||
|
|
fab0d85802 |
@@ -11,15 +11,15 @@ environment:
|
||||
PATH: 'C:\Python37-x64;C:\Python37-x64\Scripts;%PATH%'
|
||||
PYTHONUTF8: 1
|
||||
cache:
|
||||
- C:\tools\vcpkg\installed -> appveyor.yml
|
||||
- C:\Users\appveyor\clcache -> appveyor.yml, build_msvc\**, **\Makefile.am, **\*.vcxproj.in
|
||||
- C:\tools\vcpkg\installed -> .appveyor.yml
|
||||
- C:\Users\appveyor\clcache -> .appveyor.yml, build_msvc\**, **\Makefile.am, **\*.vcxproj.in
|
||||
install:
|
||||
- cmd: pip install --quiet git+https://github.com/frerich/clcache.git@v4.2.0
|
||||
# Disable zmq test for now since python zmq library on Windows would cause Access violation sometimes.
|
||||
# - cmd: pip install zmq
|
||||
- cmd: echo set(VCPKG_BUILD_TYPE release) >> C:\tools\vcpkg\triplets\%PLATFORM%-windows-static.cmake
|
||||
- cmd: vcpkg remove --outdated --recurse
|
||||
- cmd: vcpkg install --triplet %PLATFORM%-windows-static %PACKAGES% > NUL
|
||||
- cmd: del /s /q C:\Tools\vcpkg\installed\%PLATFORM%-windows-static\debug # Remove unused debug library
|
||||
before_build:
|
||||
- ps: clcache -M 536870912
|
||||
- cmd: python build_msvc\msvc-autogen.py
|
||||
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -66,6 +66,7 @@ src/qt/bitcoin-qt.includes
|
||||
*.a
|
||||
*.pb.cc
|
||||
*.pb.h
|
||||
*.dat
|
||||
|
||||
*.log
|
||||
*.trs
|
||||
@@ -120,3 +121,6 @@ contrib/devtools/split-debug.sh
|
||||
|
||||
# Output from running db4 installation
|
||||
db4/
|
||||
|
||||
# clang-check
|
||||
*.plist
|
||||
|
||||
@@ -1 +1 @@
|
||||
3.4.9
|
||||
3.5.6
|
||||
|
||||
@@ -146,7 +146,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>NOMINMAX;HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -164,7 +163,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>NOMINMAX;HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -180,7 +178,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>NOMINMAX;HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -198,7 +195,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>NOMINMAX;HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
|
||||
@@ -113,7 +113,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -131,7 +130,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -147,7 +145,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -165,7 +162,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
|
||||
@@ -116,7 +116,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -134,7 +133,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -150,7 +148,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -168,7 +165,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
|
||||
@@ -134,7 +134,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -152,7 +151,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -168,7 +166,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -186,7 +183,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
|
||||
@@ -79,7 +79,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -96,7 +95,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -115,7 +113,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -138,7 +135,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
<DisableSpecificWarnings>4018;4244;4267;4715;4805;</DisableSpecificWarnings>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<PreprocessorDefinitions>_WIN32_WINNT=0x0601;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;..\..\src\secp256k1\include;..\..\src\leveldb\include;..\..\src\leveldb\helpers\memenv;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
</Project>
|
||||
|
||||
@@ -99,7 +99,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>_SCL_SECURE_NO_WARNINGS;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -116,7 +115,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_SCL_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -131,7 +129,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_SCL_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -148,7 +145,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>_SCL_SECURE_NO_WARNINGS;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
|
||||
@@ -91,7 +91,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;..\..\src\secp256k1\include;</AdditionalIncludeDirectories>
|
||||
<SuppressStartupBanner>false</SuppressStartupBanner>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
@@ -109,7 +108,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;..\..\src\secp256k1\include;</AdditionalIncludeDirectories>
|
||||
<SuppressStartupBanner>false</SuppressStartupBanner>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
@@ -129,7 +127,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;..\..\src\secp256k1\include;</AdditionalIncludeDirectories>
|
||||
<SuppressStartupBanner>false</SuppressStartupBanner>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
@@ -151,7 +148,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;..\..\src\secp256k1\include;</AdditionalIncludeDirectories>
|
||||
<SuppressStartupBanner>false</SuppressStartupBanner>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
|
||||
@@ -89,7 +89,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -104,7 +103,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -121,7 +119,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -140,7 +137,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
|
||||
@@ -76,6 +76,12 @@
|
||||
<None Include="..\..\src\qt\locale\bitcoin_bg_BG.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_bn.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_bs.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_ca.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
@@ -88,6 +94,9 @@
|
||||
<None Include="..\..\src\qt\locale\bitcoin_cs.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_cs_CZ.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_cy.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
@@ -97,6 +106,9 @@
|
||||
<None Include="..\..\src\qt\locale\bitcoin_de.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_de_DE.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_el.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
@@ -106,6 +118,9 @@
|
||||
<None Include="..\..\src\qt\locale\bitcoin_en.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_en_AU.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_en_GB.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
@@ -115,6 +130,9 @@
|
||||
<None Include="..\..\src\qt\locale\bitcoin_es.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_es_419.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_es_AR.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
@@ -157,6 +175,9 @@
|
||||
<None Include="..\..\src\qt\locale\bitcoin_fi.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_fil.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_fr.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
@@ -172,6 +193,12 @@
|
||||
<None Include="..\..\src\qt\locale\bitcoin_he.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_he_IL.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_hi.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_hi_IN.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
@@ -181,6 +208,9 @@
|
||||
<None Include="..\..\src\qt\locale\bitcoin_hu.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_hu_HU.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_id.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
@@ -205,6 +235,9 @@
|
||||
<None Include="..\..\src\qt\locale\bitcoin_kk_KZ.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_km_KH.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_ko.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
@@ -235,24 +268,48 @@
|
||||
<None Include="..\..\src\qt\locale\bitcoin_mn.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_mr_IN.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_ms.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_ms_MY.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_my.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_nb.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_nb_NO.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_ne.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_nl.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_nl_BE.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_nl_NL.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_pam.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_pl.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_pl_PL.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_pt.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_pt_BR.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
@@ -271,9 +328,15 @@
|
||||
<None Include="..\..\src\qt\locale\bitcoin_ru_RU.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_si.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_sk.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_sk_SK.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_sl_SI.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
@@ -298,6 +361,15 @@
|
||||
<None Include="..\..\src\qt\locale\bitcoin_ta.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_ta_IN.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_te.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_th.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_th_TH.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
@@ -310,6 +382,9 @@
|
||||
<None Include="..\..\src\qt\locale\bitcoin_uk.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_uk_UA.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_ur_PK.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
@@ -322,6 +397,9 @@
|
||||
<None Include="..\..\src\qt\locale\bitcoin_vi_VN.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_zh-Hans.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="..\..\src\qt\locale\bitcoin_zh.ts">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
|
||||
@@ -89,9 +89,8 @@
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;..\..\src\leveldb\include;..\..\src\leveldb\helpers\memenv;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -104,9 +103,8 @@
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;..\..\src\leveldb\include;..\..\src\leveldb\helpers\memenv;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<SuppressStartupBanner>false</SuppressStartupBanner>
|
||||
</ClCompile>
|
||||
@@ -122,9 +120,8 @@
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;..\..\src\leveldb\include;..\..\src\leveldb\helpers\memenv;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -141,9 +138,8 @@
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;..\..\src\leveldb\include;..\..\src\leveldb\helpers\memenv;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
|
||||
@@ -92,7 +92,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>HAVE_CONFIG_H;WIN32;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -112,7 +111,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>HAVE_CONFIG_H;WIN32;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -134,7 +132,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>HAVE_CONFIG_H;WIN32;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -158,7 +155,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>HAVE_CONFIG_H;WIN32;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
|
||||
@@ -97,7 +97,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\wallet;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
@@ -113,7 +112,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\wallet;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
@@ -131,7 +129,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\wallet;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
@@ -151,7 +148,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\wallet;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
|
||||
@@ -97,7 +97,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>NOMINMAX;ZMQ_STATIC;HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<SuppressStartupBanner>false</SuppressStartupBanner>
|
||||
</ClCompile>
|
||||
@@ -113,7 +112,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>NOMINMAX;ZMQ_STATIC;HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<SuppressStartupBanner>false</SuppressStartupBanner>
|
||||
</ClCompile>
|
||||
@@ -131,7 +129,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>NOMINMAX;ZMQ_STATIC;HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<SuppressStartupBanner>false</SuppressStartupBanner>
|
||||
</ClCompile>
|
||||
@@ -151,7 +148,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>NOMINMAX;ZMQ_STATIC;HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<SuppressStartupBanner>false</SuppressStartupBanner>
|
||||
</ClCompile>
|
||||
|
||||
@@ -97,7 +97,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>NOMINMAX;ZMQ_STATIC;HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<SuppressStartupBanner>false</SuppressStartupBanner>
|
||||
</ClCompile>
|
||||
@@ -113,7 +112,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>NOMINMAX;ZMQ_STATIC;HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<SuppressStartupBanner>false</SuppressStartupBanner>
|
||||
</ClCompile>
|
||||
@@ -131,7 +129,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>NOMINMAX;ZMQ_STATIC;HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<SuppressStartupBanner>false</SuppressStartupBanner>
|
||||
</ClCompile>
|
||||
@@ -151,7 +148,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>NOMINMAX;ZMQ_STATIC;HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<SuppressStartupBanner>false</SuppressStartupBanner>
|
||||
</ClCompile>
|
||||
|
||||
@@ -126,7 +126,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>false</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\secp256k1\include;</AdditionalIncludeDirectories>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<SuppressStartupBanner>false</SuppressStartupBanner>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
@@ -143,7 +142,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>false</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\secp256k1\include;</AdditionalIncludeDirectories>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<SuppressStartupBanner>false</SuppressStartupBanner>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
@@ -162,7 +160,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>false</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\secp256k1\include;</AdditionalIncludeDirectories>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<SuppressStartupBanner>false</SuppressStartupBanner>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
@@ -183,7 +180,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>false</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\secp256k1\include;</AdditionalIncludeDirectories>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<SuppressStartupBanner>false</SuppressStartupBanner>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
|
||||
@@ -135,7 +135,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;NOMINMAX;WIN32;HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;..\..\src\leveldb\include;..\..\src\test;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -152,7 +151,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;NOMINMAX;WIN32;HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;..\..\src\leveldb\include;..\..\src\test;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -170,7 +168,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;NOMINMAX;WIN32;HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;..\..\src\leveldb\include;..\..\src\test;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -190,7 +187,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;NOMINMAX;WIN32;HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;..\..\src\leveldb\include;..\..\src\test;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
|
||||
@@ -95,7 +95,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>HAVE_CONFIG_H;WIN32;_SCL_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src\;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -110,7 +109,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src\;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -129,7 +127,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_SCL_SECURE_NO_WARNINGS;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src\;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -148,7 +145,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>HAVE_CONFIG_H;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>..\..\src\;</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
|
||||
10
configure.ac
10
configure.ac
@@ -1,11 +1,11 @@
|
||||
dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N)
|
||||
AC_PREREQ([2.60])
|
||||
define(_CLIENT_VERSION_MAJOR, 0)
|
||||
define(_CLIENT_VERSION_MINOR, 17)
|
||||
define(_CLIENT_VERSION_REVISION, 99)
|
||||
define(_CLIENT_VERSION_MINOR, 18)
|
||||
define(_CLIENT_VERSION_REVISION, 1)
|
||||
define(_CLIENT_VERSION_BUILD, 0)
|
||||
define(_CLIENT_VERSION_RC, 0)
|
||||
define(_CLIENT_VERSION_IS_RELEASE, false)
|
||||
define(_CLIENT_VERSION_IS_RELEASE, true)
|
||||
define(_COPYRIGHT_YEAR, 2019)
|
||||
define(_COPYRIGHT_HOLDERS,[The %s developers])
|
||||
define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Bitcoin Core]])
|
||||
@@ -725,6 +725,10 @@ if test x$TARGET_OS != xwindows; then
|
||||
AX_CHECK_COMPILE_FLAG([-fPIC],[PIC_FLAGS="-fPIC"])
|
||||
fi
|
||||
|
||||
# All versions of gcc that we commonly use for building are subject to bug
|
||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90348. To work around that, set
|
||||
# -fstack-reuse=none for all gcc builds. (Only gcc understands this flag)
|
||||
AX_CHECK_COMPILE_FLAG([-fstack-reuse=none],[HARDENED_CXXFLAGS="$HARDENED_CXXFLAGS -fstack-reuse=none"])
|
||||
if test x$use_hardening != xno; then
|
||||
use_hardening=yes
|
||||
AX_CHECK_COMPILE_FLAG([-Wstack-protector],[HARDENED_CXXFLAGS="$HARDENED_CXXFLAGS -Wstack-protector"])
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
if [ $# -ne 3 ];
|
||||
then echo "usage: $0 <input> <stripped-binary> <debug-binary>"
|
||||
fi
|
||||
|
||||
@@ -36,6 +36,7 @@ remotes:
|
||||
"dir": "bitcoin"
|
||||
files: []
|
||||
script: |
|
||||
set -e -o pipefail
|
||||
|
||||
WRAP_DIR=$HOME/wrapped
|
||||
HOSTS="i686-pc-linux-gnu x86_64-linux-gnu arm-linux-gnueabihf aarch64-linux-gnu riscv64-linux-gnu"
|
||||
@@ -179,8 +180,8 @@ script: |
|
||||
find . -name "lib*.la" -delete
|
||||
find . -name "lib*.a" -delete
|
||||
rm -rf ${DISTNAME}/lib/pkgconfig
|
||||
find ${DISTNAME}/bin -type f -executable -exec ../contrib/devtools/split-debug.sh {} {} {}.dbg \;
|
||||
find ${DISTNAME}/lib -type f -exec ../contrib/devtools/split-debug.sh {} {} {}.dbg \;
|
||||
find ${DISTNAME}/bin -type f -executable -print0 | xargs -0 -n1 -I{} ../contrib/devtools/split-debug.sh {} {} {}.dbg
|
||||
find ${DISTNAME}/lib -type f -print0 | xargs -0 -n1 -I{} ../contrib/devtools/split-debug.sh {} {} {}.dbg
|
||||
cp ../doc/README.md ${DISTNAME}/
|
||||
find ${DISTNAME} -not -name "*.dbg" | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ${OUTDIR}/${DISTNAME}-${i}.tar.gz
|
||||
find ${DISTNAME} -name "*.dbg" | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ${OUTDIR}/${DISTNAME}-${i}-debug.tar.gz
|
||||
|
||||
@@ -12,6 +12,8 @@ remotes:
|
||||
files:
|
||||
- "bitcoin-osx-unsigned.tar.gz"
|
||||
script: |
|
||||
set -e -o pipefail
|
||||
|
||||
WRAP_DIR=$HOME/wrapped
|
||||
mkdir -p ${WRAP_DIR}
|
||||
export PATH=`pwd`:$PATH
|
||||
|
||||
@@ -33,6 +33,8 @@ remotes:
|
||||
files:
|
||||
- "MacOSX10.11.sdk.tar.gz"
|
||||
script: |
|
||||
set -e -o pipefail
|
||||
|
||||
WRAP_DIR=$HOME/wrapped
|
||||
HOSTS="x86_64-apple-darwin14"
|
||||
CONFIGFLAGS="--enable-reduce-exports --disable-bench --disable-gui-tests GENISOIMAGE=$WRAP_DIR/genisoimage"
|
||||
|
||||
@@ -16,6 +16,8 @@ files:
|
||||
- "osslsigncode-Backports-to-1.7.1.patch"
|
||||
- "bitcoin-win-unsigned.tar.gz"
|
||||
script: |
|
||||
set -e -o pipefail
|
||||
|
||||
BUILD_DIR=`pwd`
|
||||
SIGDIR=${BUILD_DIR}/signature/win
|
||||
UNSIGNED_DIR=${BUILD_DIR}/unsigned
|
||||
|
||||
@@ -27,6 +27,8 @@ remotes:
|
||||
"dir": "bitcoin"
|
||||
files: []
|
||||
script: |
|
||||
set -e -o pipefail
|
||||
|
||||
WRAP_DIR=$HOME/wrapped
|
||||
HOSTS="i686-w64-mingw32 x86_64-w64-mingw32"
|
||||
CONFIGFLAGS="--enable-reduce-exports --disable-bench --disable-gui-tests"
|
||||
|
||||
@@ -1,99 +1,100 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFTTCCBDWgAwIBAgIRALlW05RLwG2hMQMX5d/o5J8wDQYJKoZIhvcNAQELBQAw
|
||||
fTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
|
||||
A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxIzAhBgNV
|
||||
BAMTGkNPTU9ETyBSU0EgQ29kZSBTaWduaW5nIENBMB4XDTE2MDIwMzAwMDAwMFoX
|
||||
DTE5MDMwNTIzNTk1OVowgbUxCzAJBgNVBAYTAlVTMQ4wDAYDVQQRDAU5ODEwNDEL
|
||||
MAkGA1UECAwCV0ExEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAkMB1N0ZSAzMDAx
|
||||
FzAVBgNVBAkMDjcxIENvbHVtYmlhIFN0MSUwIwYDVQQKDBxUaGUgQml0Y29pbiBG
|
||||
b3VuZGF0aW9uLCBJbmMuMSUwIwYDVQQDDBxUaGUgQml0Y29pbiBGb3VuZGF0aW9u
|
||||
LCBJbmMuMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw37Vrv9Gbku0
|
||||
+kuV0t89TuyxtAcmT7QE4GcwESKKjmkxfzD9a0qlhqk8GfQ+fw4DHNN+nLKNv7xB
|
||||
bk6aS7J2v2DcXkOjrP99P9jqgTkp7MC04VtG3OqVRGB+gum0pptRovYZUQXIdkY7
|
||||
GJOok/NDagwKiiUe2V2meZ7UctsZNvYeilQdTgKIIhrMB9NowCOhT8ocVL4Ki55/
|
||||
l7hukJn3fueCM3fHTwY2/1gaGsOHoCkFRsD7vokjAVpiY+8rUgvHjb0gxgojiVGd
|
||||
6a6/F5XJwKJacvUyN4Hfc2K5lRMQjTTmo4aWNWIa0iJ3TK9BHpdSLJBqerMPvmnM
|
||||
kkapS+ZTNQIDAQABo4IBjTCCAYkwHwYDVR0jBBgwFoAUKZFg/4pN+uv5pmq4z/nm
|
||||
S71JzhIwHQYDVR0OBBYEFONpQ+cV82URVe+V8G57377KxxexMA4GA1UdDwEB/wQE
|
||||
AwIHgDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMBEGCWCGSAGG
|
||||
+EIBAQQEAwIEEDBGBgNVHSAEPzA9MDsGDCsGAQQBsjEBAgEDAjArMCkGCCsGAQUF
|
||||
BwIBFh1odHRwczovL3NlY3VyZS5jb21vZG8ubmV0L0NQUzBDBgNVHR8EPDA6MDig
|
||||
NqA0hjJodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9SU0FDb2RlU2lnbmlu
|
||||
Z0NBLmNybDB0BggrBgEFBQcBAQRoMGYwPgYIKwYBBQUHMAKGMmh0dHA6Ly9jcnQu
|
||||
Y29tb2RvY2EuY29tL0NPTU9ET1JTQUNvZGVTaWduaW5nQ0EuY3J0MCQGCCsGAQUF
|
||||
BzABhhhodHRwOi8vb2NzcC5jb21vZG9jYS5jb20wDQYJKoZIhvcNAQELBQADggEB
|
||||
AGnBSi9K/9rgTAyKFKrfGWSfNOwAghmsnsvpZSQ7QyoGWBFKSgCs/70kErl18oHA
|
||||
g7Y8loQB1yukZmJaCa3OvGud7smn45TCh0TMf4EpP20Wxf4rMQTxwAatasHL3+vi
|
||||
I+Nl5bsRZ09kWjvayqLII5upjS/yq0JfpmyGl5k2C/fIpztq0iOLvqWlXcL4+51r
|
||||
cMUAfX6E6EaZQm//ikp+w2+7MEXTKguOuV3gwsrTy0DsvkZl4YDgx/FA4ImzXopv
|
||||
d+3KJPLvO+OSBqUD3JPwXHnuJqGAbLBFyyCa/feGUjLlR8cxcNWLWdp4qxtoIUPG
|
||||
3wTsC9YgrglS0F7FKMXlNRY=
|
||||
MIIFcTCCBFmgAwIBAgIRALWcUnSOxv9FQW3xdaMDO6swDQYJKoZIhvcNAQELBQAw
|
||||
fDELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
|
||||
A1UEBxMHU2FsZm9yZDEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMSQwIgYDVQQD
|
||||
ExtTZWN0aWdvIFJTQSBDb2RlIFNpZ25pbmcgQ0EwHhcNMTkwMzI3MDAwMDAwWhcN
|
||||
MjAwMzI2MjM1OTU5WjCBtDELMAkGA1UEBhMCQ0gxDTALBgNVBBEMBDgwMDUxCzAJ
|
||||
BgNVBAgMAlpIMRAwDgYDVQQHDAdaw7xyaWNoMRcwFQYDVQQJDA5NYXR0ZW5nYXNz
|
||||
ZSAyNzEuMCwGA1UECgwlQml0Y29pbiBDb3JlIENvZGUgU2lnbmluZyBBc3NvY2lh
|
||||
dGlvbjEuMCwGA1UEAwwlQml0Y29pbiBDb3JlIENvZGUgU2lnbmluZyBBc3NvY2lh
|
||||
dGlvbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK04VDwiY1wxcW3E
|
||||
WTTGmnbciCwETwC96DG4qcoH2PPNsVy3dfwGh0C02Qj2vL64IfwIGUFSgREvyjZk
|
||||
CNhEuJO2e0nO0rKNNH5v/JO+P7/VYPZkF5a3uUz9ulmihULXioieHB/q0l6BmiJL
|
||||
+cYaMVfidL9Y+IJwgiTqjnpRhv1Ik083SPsu6GcfQT9MJfY/+xse2EP0l4GfdFE6
|
||||
DRcWjiC8UHpfpGYcImzSFZZpbFbqoAyhueCl28QU4f8QAbS6BqNfaAK9MMACWDcK
|
||||
eTz3C5JK6CiUxOnGIxilXhljuybFUjR4jGl5eTRpuPWk95NTTYS36q+bx/1nYelx
|
||||
0n4nnDMCAwEAAaOCAbMwggGvMB8GA1UdIwQYMBaAFA7hOqhTOjHVir7Bu61nGgOF
|
||||
rTQOMB0GA1UdDgQWBBRbN7ECrPCdVvh58enwy3Dix46h2jAOBgNVHQ8BAf8EBAMC
|
||||
B4AwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggrBgEFBQcDAzARBglghkgBhvhC
|
||||
AQEEBAMCBBAwQAYDVR0gBDkwNzA1BgwrBgEEAbIxAQIBAwIwJTAjBggrBgEFBQcC
|
||||
ARYXaHR0cHM6Ly9zZWN0aWdvLmNvbS9DUFMwQwYDVR0fBDwwOjA4oDagNIYyaHR0
|
||||
cDovL2NybC5zZWN0aWdvLmNvbS9TZWN0aWdvUlNBQ29kZVNpZ25pbmdDQS5jcmww
|
||||
cwYIKwYBBQUHAQEEZzBlMD4GCCsGAQUFBzAChjJodHRwOi8vY3J0LnNlY3RpZ28u
|
||||
Y29tL1NlY3RpZ29SU0FDb2RlU2lnbmluZ0NBLmNydDAjBggrBgEFBQcwAYYXaHR0
|
||||
cDovL29jc3Auc2VjdGlnby5jb20wKwYDVR0RBCQwIoEgam9uYXNAYml0Y29pbmNv
|
||||
cmVjb2Rlc2lnbmluZy5vcmcwDQYJKoZIhvcNAQELBQADggEBAF/AIXcFBWCC2Red
|
||||
SHN4Cvko5mdSkDNgzjVFc+OwAJ5RdOgbERde4PnHm3Qmrnx+uMetVnmrC8Fv1Iwb
|
||||
kkR0bdbWBj6lF6zMsClIN6WJEfY+qfj1qi7wyucu+3OElYRC9bm5Lf0mEHQr8lJ1
|
||||
lGvAjPh+/hmxoVNbHFMZ1Ea+BrbjVwiSznt0gzdMh0CispBZKLWCIwRwi+hFjQrw
|
||||
Z7RLH8HeCJ5Ojl/OTDQqh6AylQ7l9w9KHsUt4Jqy/AnCCyAj2/6xjdwnuo3tCZwb
|
||||
g/9CydiAacD/83odphEeC2iBa+0wsj9bWmyYKY7S9n0u+wm3wBfZbSVMDDPk/la1
|
||||
3qCUDLk=
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIF4DCCA8igAwIBAgIQLnyHzA6TSlL+lP0ct800rzANBgkqhkiG9w0BAQwFADCB
|
||||
hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
|
||||
A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV
|
||||
BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTMwNTA5
|
||||
MDAwMDAwWhcNMjgwNTA4MjM1OTU5WjB9MQswCQYDVQQGEwJHQjEbMBkGA1UECBMS
|
||||
R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD
|
||||
T01PRE8gQ0EgTGltaXRlZDEjMCEGA1UEAxMaQ09NT0RPIFJTQSBDb2RlIFNpZ25p
|
||||
bmcgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCmmJBjd5E0f4rR
|
||||
3elnMRHrzB79MR2zuWJXP5O8W+OfHiQyESdrvFGRp8+eniWzX4GoGA8dHiAwDvth
|
||||
e4YJs+P9omidHCydv3Lj5HWg5TUjjsmK7hoMZMfYQqF7tVIDSzqwjiNLS2PgIpQ3
|
||||
e9V5kAoUGFEs5v7BEvAcP2FhCoyi3PbDMKrNKBh1SMF5WgjNu4xVjPfUdpA6M0ZQ
|
||||
c5hc9IVKaw+A3V7Wvf2pL8Al9fl4141fEMJEVTyQPDFGy3CuB6kK46/BAW+QGiPi
|
||||
XzjbxghdR7ODQfAuADcUuRKqeZJSzYcPe9hiKaR+ML0btYxytEjy4+gh+V5MYnmL
|
||||
Agaff9ULAgMBAAGjggFRMIIBTTAfBgNVHSMEGDAWgBS7r34CPfqm8TyEjq3uOJjs
|
||||
2TIy1DAdBgNVHQ4EFgQUKZFg/4pN+uv5pmq4z/nmS71JzhIwDgYDVR0PAQH/BAQD
|
||||
AgGGMBIGA1UdEwEB/wQIMAYBAf8CAQAwEwYDVR0lBAwwCgYIKwYBBQUHAwMwEQYD
|
||||
VR0gBAowCDAGBgRVHSAAMEwGA1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9jcmwuY29t
|
||||
b2RvY2EuY29tL0NPTU9ET1JTQUNlcnRpZmljYXRpb25BdXRob3JpdHkuY3JsMHEG
|
||||
CCsGAQUFBwEBBGUwYzA7BggrBgEFBQcwAoYvaHR0cDovL2NydC5jb21vZG9jYS5j
|
||||
b20vQ09NT0RPUlNBQWRkVHJ1c3RDQS5jcnQwJAYIKwYBBQUHMAGGGGh0dHA6Ly9v
|
||||
Y3NwLmNvbW9kb2NhLmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAAj8COcPu+Mo7id4M
|
||||
bU2x8U6ST6/COCwEzMVjEasJY6+rotcCP8xvGcM91hoIlP8l2KmIpysQGuCbsQci
|
||||
GlEcOtTh6Qm/5iR0rx57FjFuI+9UUS1SAuJ1CAVM8bdR4VEAxof2bO4QRHZXavHf
|
||||
WGshqknUfDdOvf+2dVRAGDZXZxHNTwLk/vPa/HUX2+y392UJI0kfQ1eD6n4gd2HI
|
||||
TfK7ZU2o94VFB696aSdlkClAi997OlE5jKgfcHmtbUIgos8MbAOMTM1zB5TnWo46
|
||||
BLqioXwfy2M6FafUFRunUkcyqfS/ZEfRqh9TTjIwc8Jvt3iCnVz/RrtrIh2IC/gb
|
||||
qjSm/Iz13X9ljIwxVzHQNuxHoc/Li6jvHBhYxQZ3ykubUa9MCEp6j+KjUuKOjswm
|
||||
5LLY5TjCqO3GgZw1a6lYYUoKl7RLQrZVnb6Z53BtWfhtKgx/GWBfDJqIbDCsUgmQ
|
||||
Fhv/K53b0CDKieoofjKOGd97SDMe12X4rsn4gxSTdn1k0I7OvjV9/3IxTZ+evR5s
|
||||
L6iPDAZQ+4wns3bJ9ObXwzTijIchhmH+v1V04SF3AwpobLvkyanmz1kl63zsRQ55
|
||||
ZmjoIs2475iFTZYRPAmK0H+8KCgT+2rKVI2SXM3CZZgGns5IW9S1N5NGQXwH3c/6
|
||||
Q++6Z2H/fUnguzB9XIDj5hY5S6c=
|
||||
MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCB
|
||||
iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
|
||||
cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
|
||||
BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAw
|
||||
MjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNV
|
||||
BAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
|
||||
aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2Vy
|
||||
dGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
|
||||
AoICAQCAEmUXNg7D2wiz0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B
|
||||
3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2jY0K2dvKpOyuR+OJv0OwWIJAJPuLodMkY
|
||||
tJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFnRghRy4YUVD+8M/5+bJz/
|
||||
Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O+T23LLb2
|
||||
VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT
|
||||
79uq/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6
|
||||
c0Plfg6lZrEpfDKEY1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmT
|
||||
Yo61Zs8liM2EuLE/pDkP2QKe6xJMlXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97l
|
||||
c6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8yexDJtC/QV9AqURE9JnnV4ee
|
||||
UB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+eLf8ZxXhyVeE
|
||||
Hg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd
|
||||
BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8G
|
||||
A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPF
|
||||
Up/L+M+ZBn8b2kMVn54CVVeWFPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KO
|
||||
VWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ7l8wXEskEVX/JJpuXior7gtNn3/3
|
||||
ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQEg9zKC7F4iRO/Fjs
|
||||
8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM8WcR
|
||||
iQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYze
|
||||
Sf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZ
|
||||
XHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/
|
||||
qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRB
|
||||
VXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aB
|
||||
L6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfG
|
||||
jjxDah2nGN59PRbxYvnKkKj9
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCB
|
||||
hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
|
||||
A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV
|
||||
BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMTE5
|
||||
MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgT
|
||||
EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
|
||||
Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNh
|
||||
dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR
|
||||
6FSS0gpWsawNJN3Fz0RndJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8X
|
||||
pz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZFGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC
|
||||
9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+5eNu/Nio5JIk2kNrYrhV
|
||||
/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pGx8cgoLEf
|
||||
Zd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z
|
||||
+pUX2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7w
|
||||
qP/0uK3pN/u6uPQLOvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZah
|
||||
SL0896+1DSJMwBGB7FY79tOi4lu3sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVIC
|
||||
u9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+CGCe01a60y1Dma/RMhnEw6abf
|
||||
Fobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5WdYgGq/yapiq
|
||||
crxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E
|
||||
FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB
|
||||
/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvl
|
||||
wFTPoCWOAvn9sKIN9SCYPBMtrFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM
|
||||
4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+nq6PK7o9mfjYcwlYRm6mnPTXJ9OV
|
||||
2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSgtZx8jb8uk2Intzna
|
||||
FxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwWsRqZ
|
||||
CuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiK
|
||||
boHGhfKppC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmcke
|
||||
jkk9u+UJueBPSZI9FoJAzMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yL
|
||||
S0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHqZJx64SIDqZxubw5lT2yHh17zbqD5daWb
|
||||
QOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl
|
||||
0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7ILaZRfyHB
|
||||
NVOFBkpdn627G190
|
||||
MIIF9TCCA92gAwIBAgIQHaJIMG+bJhjQguCWfTPTajANBgkqhkiG9w0BAQwFADCB
|
||||
iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
|
||||
cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
|
||||
BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTgx
|
||||
MTAyMDAwMDAwWhcNMzAxMjMxMjM1OTU5WjB8MQswCQYDVQQGEwJHQjEbMBkGA1UE
|
||||
CBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYDVQQK
|
||||
Ew9TZWN0aWdvIExpbWl0ZWQxJDAiBgNVBAMTG1NlY3RpZ28gUlNBIENvZGUgU2ln
|
||||
bmluZyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAIYijTKFehif
|
||||
SfCWL2MIHi3cfJ8Uz+MmtiVmKUCGVEZ0MWLFEO2yhyemmcuVMMBW9aR1xqkOUGKl
|
||||
UZEQauBLYq798PgYrKf/7i4zIPoMGYmobHutAMNhodxpZW0fbieW15dRhqb0J+V8
|
||||
aouVHltg1X7XFpKcAC9o95ftanK+ODtj3o+/bkxBXRIgCFnoOc2P0tbPBrRXBbZO
|
||||
oT5Xax+YvMRi1hsLjcdmG0qfnYHEckC14l/vC0X/o84Xpi1VsLewvFRqnbyNVlPG
|
||||
8Lp5UEks9wO5/i9lNfIi6iwHr0bZ+UYc3Ix8cSjz/qfGFN1VkW6KEQ3fBiSVfQ+n
|
||||
oXw62oY1YdMCAwEAAaOCAWQwggFgMB8GA1UdIwQYMBaAFFN5v1qqK0rPVIDh2JvA
|
||||
nfKyA2bLMB0GA1UdDgQWBBQO4TqoUzox1Yq+wbutZxoDha00DjAOBgNVHQ8BAf8E
|
||||
BAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHSUEFjAUBggrBgEFBQcDAwYI
|
||||
KwYBBQUHAwgwEQYDVR0gBAowCDAGBgRVHSAAMFAGA1UdHwRJMEcwRaBDoEGGP2h0
|
||||
dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9u
|
||||
QXV0aG9yaXR5LmNybDB2BggrBgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6
|
||||
Ly9jcnQudXNlcnRydXN0LmNvbS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAl
|
||||
BggrBgEFBQcwAYYZaHR0cDovL29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0B
|
||||
AQwFAAOCAgEATWNQ7Uc0SmGk295qKoyb8QAAHh1iezrXMsL2s+Bjs/thAIiaG20Q
|
||||
BwRPvrjqiXgi6w9G7PNGXkBGiRL0C3danCpBOvzW9Ovn9xWVM8Ohgyi33i/klPeF
|
||||
M4MtSkBIv5rCT0qxjyT0s4E307dksKYjalloUkJf/wTr4XRleQj1qZPea3FAmZa6
|
||||
ePG5yOLDCBaxq2NayBWAbXReSnV+pbjDbLXP30p5h1zHQE1jNfYw08+1Cg4LBH+g
|
||||
S667o6XQhACTPlNdNKUANWlsvp8gJRANGftQkGG+OY96jk32nw4e/gdREmaDJhlI
|
||||
lc5KycF/8zoFm/lv34h/wCOe0h5DekUxwZxNqfBZslkZ6GqNKQQCd3xLS81wvjqy
|
||||
VVp4Pry7bwMQJXcVNIr5NsxDkuS6T/FikyglVyn7URnHoSVAaoRXxrKdsbwcCtp8
|
||||
Z359LukoTBh+xHsxQXGaSynsCz1XUNLK3f2eBVHlRHjdAd6xdZgNVCT98E7j4viD
|
||||
vXK6yz067vBeF5Jobchh+abxKgoLpbn0nu6YMgWFnuv5gynTxix9vTp3Los3QqBq
|
||||
gu07SqqUEKThDfgXxbZaeTMYkuO1dfih6Y4KJR7kHvGfWocj/5+kUZ77OYARzdu1
|
||||
xKeogG/lU9Tg46LC0lsa+jImLWpXcBw8pFguo/NbSwfcMlnzh6cabVg=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
@@ -5,6 +5,18 @@ The headless daemon `bitcoind` has the JSON-RPC API enabled by default, the GUI
|
||||
option. In the GUI it is possible to execute RPC methods in the Debug Console
|
||||
Dialog.
|
||||
|
||||
## Versioning
|
||||
|
||||
The RPC interface might change from one major version of Bitcoin Core to the
|
||||
next. This makes the RPC interface implicitly versioned on the major version.
|
||||
The version tuple can be retrieved by e.g. the `getnetworkinfo` RPC in
|
||||
`version`.
|
||||
|
||||
Usually deprecated features can be re-enabled during the grace-period of one
|
||||
major version via the `-deprecatedrpc=` command line option. The release notes
|
||||
of a new major release come with detailed instructions on what RPC features
|
||||
were deprecated and how to re-enable them temporarily.
|
||||
|
||||
## Security
|
||||
|
||||
The RPC interface allows other programs to control Bitcoin Core,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
BIPs that are implemented by Bitcoin Core (up-to-date up to **v0.17.0**):
|
||||
BIPs that are implemented by Bitcoin Core (up-to-date up to **v0.18.0**):
|
||||
|
||||
* [`BIP 9`](https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki): The changes allowing multiple soft-forks to be deployed in parallel have been implemented since **v0.12.1** ([PR #7575](https://github.com/bitcoin/bitcoin/pull/7575))
|
||||
* [`BIP 11`](https://github.com/bitcoin/bips/blob/master/bip-0011.mediawiki): Multisig outputs are standard since **v0.6.0** ([PR #669](https://github.com/bitcoin/bitcoin/pull/669)).
|
||||
@@ -15,11 +15,11 @@ BIPs that are implemented by Bitcoin Core (up-to-date up to **v0.17.0**):
|
||||
* [`BIP 35`](https://github.com/bitcoin/bips/blob/master/bip-0035.mediawiki): The 'mempool' protocol message (and the protocol version bump to 60002) has been implemented since **v0.7.0** ([PR #1641](https://github.com/bitcoin/bitcoin/pull/1641)).
|
||||
* [`BIP 37`](https://github.com/bitcoin/bips/blob/master/bip-0037.mediawiki): The bloom filtering for transaction relaying, partial Merkle trees for blocks, and the protocol version bump to 70001 (enabling low-bandwidth SPV clients) has been implemented since **v0.8.0** ([PR #1795](https://github.com/bitcoin/bitcoin/pull/1795)).
|
||||
* [`BIP 42`](https://github.com/bitcoin/bips/blob/master/bip-0042.mediawiki): The bug that would have caused the subsidy schedule to resume after block 13440000 was fixed in **v0.9.2** ([PR #3842](https://github.com/bitcoin/bitcoin/pull/3842)).
|
||||
* [`BIP 61`](https://github.com/bitcoin/bips/blob/master/bip-0061.mediawiki): The 'reject' protocol message (and the protocol version bump to 70002) was added in **v0.9.0** ([PR #3185](https://github.com/bitcoin/bitcoin/pull/3185)). Starting *v0.17.0*, whether to send reject messages can be configured with the `-enablebip61` option.
|
||||
* [`BIP 61`](https://github.com/bitcoin/bips/blob/master/bip-0061.mediawiki): The 'reject' protocol message (and the protocol version bump to 70002) was added in **v0.9.0** ([PR #3185](https://github.com/bitcoin/bitcoin/pull/3185)). Starting **v0.17.0**, whether to send reject messages can be configured with the `-enablebip61` option, and support is deprecated as of **v0.18.0**.
|
||||
* [`BIP 65`](https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki): The CHECKLOCKTIMEVERIFY softfork was merged in **v0.12.0** ([PR #6351](https://github.com/bitcoin/bitcoin/pull/6351)), and backported to **v0.11.2** and **v0.10.4**. Mempool-only CLTV was added in [PR #6124](https://github.com/bitcoin/bitcoin/pull/6124).
|
||||
* [`BIP 66`](https://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki): The strict DER rules and associated version 3 blocks have been implemented since **v0.10.0** ([PR #5713](https://github.com/bitcoin/bitcoin/pull/5713)).
|
||||
* [`BIP 68`](https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki): Sequence locks have been implemented as of **v0.12.1** ([PR #7184](https://github.com/bitcoin/bitcoin/pull/7184)), and have been activated since *block 419328*.
|
||||
* [`BIP 70`](https://github.com/bitcoin/bips/blob/master/bip-0070.mediawiki) [`71`](https://github.com/bitcoin/bips/blob/master/bip-0071.mediawiki) [`72`](https://github.com/bitcoin/bips/blob/master/bip-0072.mediawiki): Payment Protocol support has been available in Bitcoin Core GUI since **v0.9.0** ([PR #5216](https://github.com/bitcoin/bitcoin/pull/5216)).
|
||||
* [`BIP 70`](https://github.com/bitcoin/bips/blob/master/bip-0070.mediawiki) [`71`](https://github.com/bitcoin/bips/blob/master/bip-0071.mediawiki) [`72`](https://github.com/bitcoin/bips/blob/master/bip-0072.mediawiki): Payment Protocol support has been available in Bitcoin Core GUI since **v0.9.0** ([PR #5216](https://github.com/bitcoin/bitcoin/pull/5216)). Support can be optionally disabled at build time since **v0.18.0** ([PR 14451](https://github.com/bitcoin/bitcoin/pull/14451)).
|
||||
* [`BIP 90`](https://github.com/bitcoin/bips/blob/master/bip-0090.mediawiki): Trigger mechanism for activation of BIPs 34, 65, and 66 has been simplified to block height checks since **v0.14.0** ([PR #8391](https://github.com/bitcoin/bitcoin/pull/8391)).
|
||||
* [`BIP 111`](https://github.com/bitcoin/bips/blob/master/bip-0111.mediawiki): `NODE_BLOOM` service bit added, and enforced for all peer versions as of **v0.13.0** ([PR #6579](https://github.com/bitcoin/bitcoin/pull/6579) and [PR #6641](https://github.com/bitcoin/bitcoin/pull/6641)).
|
||||
* [`BIP 112`](https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki): The CHECKSEQUENCEVERIFY opcode has been implemented since **v0.12.1** ([PR #7524](https://github.com/bitcoin/bitcoin/pull/7524)) and has been activated since *block 419328*.
|
||||
@@ -33,7 +33,7 @@ BIPs that are implemented by Bitcoin Core (up-to-date up to **v0.17.0**):
|
||||
* [`BIP 145`](https://github.com/bitcoin/bips/blob/master/bip-0145.mediawiki): getblocktemplate updates for Segregated Witness as of **v0.13.0** ([PR 8149](https://github.com/bitcoin/bitcoin/pull/8149)).
|
||||
* [`BIP 147`](https://github.com/bitcoin/bips/blob/master/bip-0147.mediawiki): NULLDUMMY softfork as of **v0.13.1** ([PR 8636](https://github.com/bitcoin/bitcoin/pull/8636) and [PR 8937](https://github.com/bitcoin/bitcoin/pull/8937)).
|
||||
* [`BIP 152`](https://github.com/bitcoin/bips/blob/master/bip-0152.mediawiki): Compact block transfer and related optimizations are used as of **v0.13.0** ([PR 8068](https://github.com/bitcoin/bitcoin/pull/8068)).
|
||||
* [`BIP 159`](https://github.com/bitcoin/bips/blob/master/bip-0159.mediawiki): NODE_NETWORK_LIMITED service bit [signaling only] is supported as of **v0.16.0** ([PR 11740](https://github.com/bitcoin/bitcoin/pull/11740)).
|
||||
* [`BIP 159`](https://github.com/bitcoin/bips/blob/master/bip-0159.mediawiki): The NODE_NETWORK_LIMITED service bit is signalled as of **v0.16.0** ([PR 11740](https://github.com/bitcoin/bitcoin/pull/11740)), and such nodes are connected to as of **v0.17.0** ([PR 10387](https://github.com/bitcoin/bitcoin/pull/10387)).
|
||||
* [`BIP 173`](https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki): Bech32 addresses for native Segregated Witness outputs are supported as of **v0.16.0** ([PR 11167](https://github.com/bitcoin/bitcoin/pull/11167)).
|
||||
* [`BIP 174`](https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki): RPCs to operate on Partially Signed Bitcoin Transactions (PSBT) are present as of **v0.17.0** ([PR 13557](https://github.com/bitcoin/bitcoin/pull/13557)).
|
||||
* [`BIP 176`](https://github.com/bitcoin/bips/blob/master/bip-0176.mediawiki): Bits Denomination [QT only] is supported as of **v0.16.0** ([PR 12035](https://github.com/bitcoin/bitcoin/pull/12035)).
|
||||
|
||||
@@ -82,6 +82,8 @@ Bitcoin Core is now available at `./src/bitcoind`
|
||||
|
||||
Before running, you may create an empty configuration file:
|
||||
|
||||
mkdir -p "/Users/${USER}/Library/Application Support/Bitcoin"
|
||||
|
||||
touch "/Users/${USER}/Library/Application Support/Bitcoin/bitcoin.conf"
|
||||
|
||||
chmod 600 "/Users/${USER}/Library/Application Support/Bitcoin/bitcoin.conf"
|
||||
|
||||
@@ -78,19 +78,13 @@ Now, you can either build from self-compiled [depends](/depends/README.md) or in
|
||||
|
||||
BerkeleyDB is required for the wallet.
|
||||
|
||||
**For Ubuntu only:** db4.8 packages are available [here](https://launchpad.net/~bitcoin/+archive/bitcoin).
|
||||
You can add the repository and install using the following commands:
|
||||
|
||||
sudo apt-get install software-properties-common
|
||||
sudo add-apt-repository ppa:bitcoin/bitcoin
|
||||
sudo apt-get update
|
||||
sudo apt-get install libdb4.8-dev libdb4.8++-dev
|
||||
|
||||
Ubuntu and Debian have their own libdb-dev and libdb++-dev packages, but these will install
|
||||
BerkeleyDB 5.1 or later. This will break binary wallet compatibility with the distributed executables, which
|
||||
are based on BerkeleyDB 4.8. If you do not care about wallet compatibility,
|
||||
pass `--with-incompatible-bdb` to configure.
|
||||
|
||||
Otherwise, you can build from self-compiled `depends` (see above).
|
||||
|
||||
To build Bitcoin Core without wallet, see [*Disable-wallet mode*](/doc/build-unix.md#disable-wallet-mode)
|
||||
|
||||
|
||||
|
||||
@@ -17,12 +17,12 @@ These are the dependencies currently used by Bitcoin Core. You can find instruct
|
||||
| libevent | [2.1.8-stable](https://github.com/libevent/libevent/releases) | 2.0.22 | No | | |
|
||||
| libjpeg | | | | | [Yes](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk#L65) |
|
||||
| libpng | | | | | [Yes](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk#L64) |
|
||||
| libsrvg | | | | | |
|
||||
| librsvg | | | | | |
|
||||
| MiniUPnPc | [2.0.20180203](http://miniupnp.free.fr/files) | | No | | |
|
||||
| OpenSSL | [1.0.1k](https://www.openssl.org/source) | | Yes | | |
|
||||
| PCRE | | | | | [Yes](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk#L66) |
|
||||
| protobuf | [2.6.1](https://github.com/google/protobuf/releases) | | No | | |
|
||||
| Python (tests) | | [3.4](https://www.python.org/downloads) | | | |
|
||||
| Python (tests) | | [3.5](https://www.python.org/downloads) | | | |
|
||||
| qrencode | [3.4.4](https://fukuchi.org/works/qrencode) | | No | | |
|
||||
| Qt | [5.9.7](https://download.qt.io/official_releases/qt/) | [5.5.1](https://github.com/bitcoin/bitcoin/issues/13478) | No | | |
|
||||
| XCB | | | | | [Yes](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk#L87) (Linux only) |
|
||||
@@ -43,4 +43,4 @@ Some dependencies are not needed in all configurations. The following are some f
|
||||
* ZeroMQ is needed only with the `--with-zmq` option.
|
||||
|
||||
#### Other
|
||||
* librsvg is only needed if you need to run `make deploy` on (cross-compliation to) macOS.
|
||||
* librsvg is only needed if you need to run `make deploy` on (cross-compilation to) macOS.
|
||||
|
||||
@@ -1,11 +1,18 @@
|
||||
# Support for Output Descriptors in Bitcoin Core
|
||||
|
||||
Since Bitcoin Core v0.17, there is support for Output Descriptors in the
|
||||
`scantxoutset` RPC call. This is a simple language which can be used to
|
||||
describe collections of output scripts.
|
||||
Since Bitcoin Core v0.17, there is support for Output Descriptors. This is a
|
||||
simple language which can be used to describe collections of output scripts.
|
||||
Supporting RPCs are:
|
||||
- `scantxoutset` takes as input descriptors to scan for, and also reports
|
||||
specialized descriptors for the matching UTXOs.
|
||||
- `getdescriptorinfo` analyzes a descriptor, and reports a canonicalized version
|
||||
with checksum added.
|
||||
- `deriveaddresses` takes as input a descriptor and computes the corresponding
|
||||
addresses.
|
||||
- `listunspent` outputs a specialized descriptor for the reported unspent outputs.
|
||||
|
||||
This document describes the language. For the specifics on usage for scanning
|
||||
the UTXO set, see the `scantxoutset` RPC help.
|
||||
This document describes the language. For the specifics on usage, see the RPC
|
||||
documentation for the functions mentioned above.
|
||||
|
||||
## Features
|
||||
|
||||
|
||||
@@ -15,3 +15,9 @@ endif
|
||||
if BUILD_BITCOIN_TX
|
||||
dist_man1_MANS+=bitcoin-tx.1
|
||||
endif
|
||||
|
||||
if ENABLE_WALLET
|
||||
if BUILD_BITCOIN_WALLET
|
||||
dist_man1_MANS+=bitcoin-wallet.1
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6.
|
||||
.TH BITCOIN-CLI "1" "February 2019" "bitcoin-cli v0.17.99.0" "User Commands"
|
||||
.TH BITCOIN-CLI "1" "August 2019" "bitcoin-cli v0.18.1.0" "User Commands"
|
||||
.SH NAME
|
||||
bitcoin-cli \- manual page for bitcoin-cli v0.17.99.0
|
||||
bitcoin-cli \- manual page for bitcoin-cli v0.18.1.0
|
||||
.SH SYNOPSIS
|
||||
.B bitcoin-cli
|
||||
[\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR] \fI\,Send command to Bitcoin Core\/\fR
|
||||
@@ -15,7 +15,7 @@ bitcoin-cli \- manual page for bitcoin-cli v0.17.99.0
|
||||
.B bitcoin-cli
|
||||
[\fI\,options\/\fR] \fI\,help <command> Get help for a command\/\fR
|
||||
.SH DESCRIPTION
|
||||
Bitcoin Core RPC client version v0.17.99.0
|
||||
Bitcoin Core RPC client version v0.18.1.0
|
||||
.SH OPTIONS
|
||||
.HP
|
||||
\-?
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6.
|
||||
.TH BITCOIN-QT "1" "February 2019" "bitcoin-qt v0.17.99.0" "User Commands"
|
||||
.TH BITCOIN-QT "1" "August 2019" "bitcoin-qt v0.18.1.0" "User Commands"
|
||||
.SH NAME
|
||||
bitcoin-qt \- manual page for bitcoin-qt v0.17.99.0
|
||||
bitcoin-qt \- manual page for bitcoin-qt v0.18.1.0
|
||||
.SH SYNOPSIS
|
||||
.B bitcoin-qt
|
||||
[\fI\,command-line options\/\fR]
|
||||
.SH DESCRIPTION
|
||||
Bitcoin Core version v0.17.99.0 (64\-bit)
|
||||
Bitcoin Core version v0.18.1.0 (64\-bit)
|
||||
.SH OPTIONS
|
||||
.HP
|
||||
\-?
|
||||
@@ -23,7 +23,7 @@ long fork (%s in cmd is replaced by message)
|
||||
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:
|
||||
0000000000000000002e63058c023a9a1de233554f28c7b21380b6c9003f36a8,
|
||||
0000000000000000000f1c54590ee18d15ec70e68c8cd4cfbadb1b4f11697eee,
|
||||
testnet:
|
||||
0000000000000037a8cd3e06cd5edbfe9dd1dbcc5dacab279376ef7cfc2b4c75)
|
||||
.HP
|
||||
@@ -41,6 +41,11 @@ Extra transactions to keep in memory for compact block reconstructions
|
||||
.IP
|
||||
Specify blocks directory (default: <datadir>/blocks)
|
||||
.HP
|
||||
\fB\-blocksonly\fR
|
||||
.IP
|
||||
Whether to reject transactions from network peers. Transactions from the
|
||||
wallet or RPC are not affected. (default: 0)
|
||||
.HP
|
||||
\fB\-conf=\fR<file>
|
||||
.IP
|
||||
Specify configuration file. Relative paths will be prefixed by datadir
|
||||
@@ -56,7 +61,9 @@ Specify data directory
|
||||
.HP
|
||||
\fB\-dbcache=\fR<n>
|
||||
.IP
|
||||
Set database cache size in MiB (4 to 16384, default: 450)
|
||||
Maximum database cache size <n> MiB (4 to 16384, default: 450). In
|
||||
addition, unused mempool memory is shared for this cache (see
|
||||
\fB\-maxmempool\fR).
|
||||
.HP
|
||||
\fB\-debuglogfile=\fR<file>
|
||||
.IP
|
||||
@@ -88,7 +95,7 @@ Do not keep transactions in the mempool longer than <n> hours (default:
|
||||
.HP
|
||||
\fB\-par=\fR<n>
|
||||
.IP
|
||||
Set the number of script verification threads (\fB\-8\fR to 16, 0 = auto, <0 =
|
||||
Set the number of script verification threads (\fB\-6\fR to 16, 0 = auto, <0 =
|
||||
leave that many cores free, default: 0)
|
||||
.HP
|
||||
\fB\-persistmempool\fR
|
||||
@@ -181,7 +188,7 @@ unless \fB\-connect\fR used)
|
||||
.HP
|
||||
\fB\-enablebip61\fR
|
||||
.IP
|
||||
Send reject messages per BIP61 (default: 0)
|
||||
Send reject messages per BIP61 (default: 1)
|
||||
.HP
|
||||
\fB\-externalip=\fR<ip>
|
||||
.IP
|
||||
@@ -290,9 +297,7 @@ Bind to given address and whitelist peers connecting to it. Use
|
||||
.IP
|
||||
Whitelist peers connecting from the given IP address (e.g. 1.2.3.4) or
|
||||
CIDR notated network (e.g. 1.2.3.0/24). Can be specified multiple
|
||||
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
|
||||
times. Whitelisted peers cannot be DoS banned
|
||||
.PP
|
||||
Wallet options:
|
||||
.HP
|
||||
@@ -406,17 +411,35 @@ ZeroMQ notification options:
|
||||
.IP
|
||||
Enable publish hash block in <address>
|
||||
.HP
|
||||
\fB\-zmqpubhashblockhwm=\fR<n>
|
||||
.IP
|
||||
Set publish hash block outbound message high water mark (default: 1000)
|
||||
.HP
|
||||
\fB\-zmqpubhashtx=\fR<address>
|
||||
.IP
|
||||
Enable publish hash transaction in <address>
|
||||
.HP
|
||||
\fB\-zmqpubhashtxhwm=\fR<n>
|
||||
.IP
|
||||
Set publish hash transaction outbound message high water mark (default:
|
||||
1000)
|
||||
.HP
|
||||
\fB\-zmqpubrawblock=\fR<address>
|
||||
.IP
|
||||
Enable publish raw block in <address>
|
||||
.HP
|
||||
\fB\-zmqpubrawblockhwm=\fR<n>
|
||||
.IP
|
||||
Set publish raw block outbound message high water mark (default: 1000)
|
||||
.HP
|
||||
\fB\-zmqpubrawtx=\fR<address>
|
||||
.IP
|
||||
Enable publish raw transaction in <address>
|
||||
.HP
|
||||
\fB\-zmqpubrawtxhwm=\fR<n>
|
||||
.IP
|
||||
Set publish raw transaction outbound message high water mark (default:
|
||||
1000)
|
||||
.PP
|
||||
Debugging/Testing options:
|
||||
.HP
|
||||
@@ -499,8 +522,9 @@ mining and transaction creation (default: 0.00001)
|
||||
.HP
|
||||
\fB\-whitelistforcerelay\fR
|
||||
.IP
|
||||
Force relay of transactions from whitelisted peers even if they violate
|
||||
local relay policy (default: 0)
|
||||
Force relay of transactions from whitelisted peers even if the
|
||||
transactions were already in the mempool or violate local relay
|
||||
policy (default: 0)
|
||||
.HP
|
||||
\fB\-whitelistrelay\fR
|
||||
.IP
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6.
|
||||
.TH BITCOIN-TX "1" "February 2019" "bitcoin-tx v0.17.99.0" "User Commands"
|
||||
.TH BITCOIN-TX "1" "August 2019" "bitcoin-tx v0.18.1.0" "User Commands"
|
||||
.SH NAME
|
||||
bitcoin-tx \- manual page for bitcoin-tx v0.17.99.0
|
||||
bitcoin-tx \- manual page for bitcoin-tx v0.18.1.0
|
||||
.SH SYNOPSIS
|
||||
.B bitcoin-tx
|
||||
[\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR] \fI\,Update hex-encoded bitcoin transaction\/\fR
|
||||
@@ -9,7 +9,7 @@ bitcoin-tx \- manual page for bitcoin-tx v0.17.99.0
|
||||
.B bitcoin-tx
|
||||
[\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR] \fI\,Create hex-encoded bitcoin transaction\/\fR
|
||||
.SH DESCRIPTION
|
||||
Bitcoin Core bitcoin\-tx utility version v0.17.99.0
|
||||
Bitcoin Core bitcoin\-tx utility version v0.18.1.0
|
||||
.SH OPTIONS
|
||||
.HP
|
||||
\-?
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6.
|
||||
.TH BITCOIN-WALLET "1" "February 2019" "bitcoin-wallet v0.17.99.0" "User Commands"
|
||||
.TH BITCOIN-WALLET "1" "August 2019" "bitcoin-wallet v0.18.1.0" "User Commands"
|
||||
.SH NAME
|
||||
bitcoin-wallet \- manual page for bitcoin-wallet v0.17.99.0
|
||||
bitcoin-wallet \- manual page for bitcoin-wallet v0.18.1.0
|
||||
.SH DESCRIPTION
|
||||
Bitcoin Core bitcoin\-wallet version v0.17.99.0
|
||||
Bitcoin Core bitcoin\-wallet version v0.18.1.0
|
||||
.PP
|
||||
wallet\-tool is an offline tool for creating and interacting with Bitcoin Core wallet files.
|
||||
By default wallet\-tool will act on wallets in the default mainnet wallet directory in the datadir.
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6.
|
||||
.TH BITCOIND "1" "February 2019" "bitcoind v0.17.99.0" "User Commands"
|
||||
.TH BITCOIND "1" "August 2019" "bitcoind v0.18.1.0" "User Commands"
|
||||
.SH NAME
|
||||
bitcoind \- manual page for bitcoind v0.17.99.0
|
||||
bitcoind \- manual page for bitcoind v0.18.1.0
|
||||
.SH SYNOPSIS
|
||||
.B bitcoind
|
||||
[\fI\,options\/\fR] \fI\,Start Bitcoin Core Daemon\/\fR
|
||||
.SH DESCRIPTION
|
||||
Bitcoin Core Daemon version v0.17.99.0
|
||||
Bitcoin Core Daemon version v0.18.1.0
|
||||
.SH OPTIONS
|
||||
.HP
|
||||
\-?
|
||||
@@ -23,7 +23,7 @@ long fork (%s in cmd is replaced by message)
|
||||
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:
|
||||
0000000000000000002e63058c023a9a1de233554f28c7b21380b6c9003f36a8,
|
||||
0000000000000000000f1c54590ee18d15ec70e68c8cd4cfbadb1b4f11697eee,
|
||||
testnet:
|
||||
0000000000000037a8cd3e06cd5edbfe9dd1dbcc5dacab279376ef7cfc2b4c75)
|
||||
.HP
|
||||
@@ -41,6 +41,11 @@ Extra transactions to keep in memory for compact block reconstructions
|
||||
.IP
|
||||
Specify blocks directory (default: <datadir>/blocks)
|
||||
.HP
|
||||
\fB\-blocksonly\fR
|
||||
.IP
|
||||
Whether to reject transactions from network peers. Transactions from the
|
||||
wallet or RPC are not affected. (default: 0)
|
||||
.HP
|
||||
\fB\-conf=\fR<file>
|
||||
.IP
|
||||
Specify configuration file. Relative paths will be prefixed by datadir
|
||||
@@ -56,7 +61,9 @@ Specify data directory
|
||||
.HP
|
||||
\fB\-dbcache=\fR<n>
|
||||
.IP
|
||||
Set database cache size in MiB (4 to 16384, default: 450)
|
||||
Maximum database cache size <n> MiB (4 to 16384, default: 450). In
|
||||
addition, unused mempool memory is shared for this cache (see
|
||||
\fB\-maxmempool\fR).
|
||||
.HP
|
||||
\fB\-debuglogfile=\fR<file>
|
||||
.IP
|
||||
@@ -88,7 +95,7 @@ Do not keep transactions in the mempool longer than <n> hours (default:
|
||||
.HP
|
||||
\fB\-par=\fR<n>
|
||||
.IP
|
||||
Set the number of script verification threads (\fB\-8\fR to 16, 0 = auto, <0 =
|
||||
Set the number of script verification threads (\fB\-6\fR to 16, 0 = auto, <0 =
|
||||
leave that many cores free, default: 0)
|
||||
.HP
|
||||
\fB\-persistmempool\fR
|
||||
@@ -181,7 +188,7 @@ unless \fB\-connect\fR used)
|
||||
.HP
|
||||
\fB\-enablebip61\fR
|
||||
.IP
|
||||
Send reject messages per BIP61 (default: 0)
|
||||
Send reject messages per BIP61 (default: 1)
|
||||
.HP
|
||||
\fB\-externalip=\fR<ip>
|
||||
.IP
|
||||
@@ -290,9 +297,7 @@ Bind to given address and whitelist peers connecting to it. Use
|
||||
.IP
|
||||
Whitelist peers connecting from the given IP address (e.g. 1.2.3.4) or
|
||||
CIDR notated network (e.g. 1.2.3.0/24). Can be specified multiple
|
||||
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
|
||||
times. Whitelisted peers cannot be DoS banned
|
||||
.PP
|
||||
Wallet options:
|
||||
.HP
|
||||
@@ -406,17 +411,35 @@ ZeroMQ notification options:
|
||||
.IP
|
||||
Enable publish hash block in <address>
|
||||
.HP
|
||||
\fB\-zmqpubhashblockhwm=\fR<n>
|
||||
.IP
|
||||
Set publish hash block outbound message high water mark (default: 1000)
|
||||
.HP
|
||||
\fB\-zmqpubhashtx=\fR<address>
|
||||
.IP
|
||||
Enable publish hash transaction in <address>
|
||||
.HP
|
||||
\fB\-zmqpubhashtxhwm=\fR<n>
|
||||
.IP
|
||||
Set publish hash transaction outbound message high water mark (default:
|
||||
1000)
|
||||
.HP
|
||||
\fB\-zmqpubrawblock=\fR<address>
|
||||
.IP
|
||||
Enable publish raw block in <address>
|
||||
.HP
|
||||
\fB\-zmqpubrawblockhwm=\fR<n>
|
||||
.IP
|
||||
Set publish raw block outbound message high water mark (default: 1000)
|
||||
.HP
|
||||
\fB\-zmqpubrawtx=\fR<address>
|
||||
.IP
|
||||
Enable publish raw transaction in <address>
|
||||
.HP
|
||||
\fB\-zmqpubrawtxhwm=\fR<n>
|
||||
.IP
|
||||
Set publish raw transaction outbound message high water mark (default:
|
||||
1000)
|
||||
.PP
|
||||
Debugging/Testing options:
|
||||
.HP
|
||||
@@ -499,8 +522,9 @@ mining and transaction creation (default: 0.00001)
|
||||
.HP
|
||||
\fB\-whitelistforcerelay\fR
|
||||
.IP
|
||||
Force relay of transactions from whitelisted peers even if they violate
|
||||
local relay policy (default: 0)
|
||||
Force relay of transactions from whitelisted peers even if the
|
||||
transactions were already in the mempool or violate local relay
|
||||
policy (default: 0)
|
||||
.HP
|
||||
\fB\-whitelistrelay\fR
|
||||
.IP
|
||||
|
||||
10
doc/psbt.md
10
doc/psbt.md
@@ -67,6 +67,9 @@ hardware implementations will typically implement multiple roles simultaneously.
|
||||
input a PSBT, adds UTXO, key, and script data to inputs and outputs that miss
|
||||
it, and optionally signs inputs. Where possible it also finalizes the partial
|
||||
signatures.
|
||||
- **`utxoupdatepsbt` (Updater)** is a node RPC that takes a PSBT and updates it
|
||||
to include information available from the UTXO set (works only for SegWit
|
||||
inputs).
|
||||
- **`finalizepsbt` (Finalizer, Extractor)** is a utility RPC that finalizes any
|
||||
partial signatures, and if all inputs are finalized, converts the result to a
|
||||
fully signed transaction which can be broadcast with `sendrawtransaction`.
|
||||
@@ -74,8 +77,15 @@ hardware implementations will typically implement multiple roles simultaneously.
|
||||
can be used at any point in the workflow to merge information added to
|
||||
different versions of the same PSBT. In particular it is useful to combine the
|
||||
output of multiple Updaters or Signers.
|
||||
- **`joinpsbts`** (Creator) is a utility RPC that joins multiple PSBTs together,
|
||||
concatenating the inputs and outputs. This can be used to construct CoinJoin
|
||||
transactions.
|
||||
- **`decodepsbt`** is a diagnostic utility RPC which will show all information in
|
||||
a PSBT in human-readable form, as well as compute its eventual fee if known.
|
||||
- **`analyzepsbt`** is a utility RPC that examines an RPC and reports the
|
||||
next steps in the workflow if known, computes the fee of the resulting
|
||||
transaction, and estimates the weight and feerate if possible.
|
||||
|
||||
|
||||
### Workflows
|
||||
|
||||
|
||||
@@ -35,3 +35,16 @@ blocks and transactions to fewer nodes.
|
||||
Reducing the maximum connected nodes to a minimum could be desirable if traffic
|
||||
limits are tiny. Keep in mind that bitcoin's trustless model works best if you are
|
||||
connected to a handful of nodes.
|
||||
|
||||
## 4. Turn off transaction relay (`-blocksonly`)
|
||||
|
||||
Forwarding transactions to peers increases the P2P traffic. To only sync blocks
|
||||
with other peers, you can disable transaction relay.
|
||||
|
||||
Be reminded of the effects of this setting.
|
||||
|
||||
- Fee estimation will no longer work.
|
||||
- Not relaying other's transactions could hurt your privacy if used while a
|
||||
wallet is loaded or if you use the node to broadcast transactions.
|
||||
- It makes block propagation slower because compact block relay can only be
|
||||
used when transaction relay is enabled.
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
Miscellaneous RPC Changes
|
||||
-------------------------
|
||||
- Descriptors with key origin information imported through `importmulti` will have their key origin information stored in the wallet for use with creating PSBTs.
|
||||
- If `bip32derivs` of both `walletprocesspsbt` and `walletcreatefundedpsbt` is set to true but the key metadata for a public key has not been updated yet, then that key will have a derivation path as if it were just an independent key (i.e. no derivation path and its master fingerprint is itself)
|
||||
|
||||
Miscellaneous Wallet changes
|
||||
----------------------------
|
||||
|
||||
- The key metadata will need to be upgraded the first time that the HD seed is available.
|
||||
For unencrypted wallets this will occur on wallet loading.
|
||||
For encrypted wallets this will occur the first time the wallet is unlocked.
|
||||
@@ -1,9 +0,0 @@
|
||||
Low-level RPC changes
|
||||
----------------------
|
||||
|
||||
The `listunspent` RPC has been modified so that it also returns `witnessScript`,
|
||||
the witness script in the case of a P2WSH or P2SH-P2WSH output.
|
||||
|
||||
The `signrawtransactionwithkey` and `signrawtransactionwithwallet` RPCs have been
|
||||
modified so that they also optionally accept a `witnessScript`, the witness script in the
|
||||
case of a P2WSH or P2SH-P2WSH output. This is compatible with the change to `listunspent`.
|
||||
@@ -1,5 +0,0 @@
|
||||
Descriptor import support
|
||||
---------------------
|
||||
|
||||
The `importmulti` RPC now supports importing of addresses from descriptors. A "desc" parameter can be provided instead of the "scriptPubKey" in a request, as well as an optional range for ranged descriptors to specify the start and end of the range to import. More information about
|
||||
descriptors can be found [here](https://github.com/bitcoin/bitcoin/blob/master/doc/descriptors.md).
|
||||
@@ -1,4 +0,0 @@
|
||||
New RPC methods
|
||||
------------
|
||||
|
||||
- `deriveaddresses` returns one or more addresses corresponding to an [output descriptor](/doc/descriptors.md).
|
||||
@@ -1,8 +0,0 @@
|
||||
Miscellaneous RPC changes
|
||||
------------
|
||||
|
||||
- The RPC `createwallet` now has an optional `blank` argument that can be used to create a blank wallet.
|
||||
Blank wallets do not have any keys or HD seed.
|
||||
They cannot be opened in software older than 0.18.
|
||||
Once a blank wallet has a HD seed set (by using `sethdseed`) or private keys, scripts, addresses, and other watch only things have been imported, the wallet is no longer blank and can be opened in 0.17.x.
|
||||
Encrypting a blank wallet will also set a HD seed for it.
|
||||
@@ -1,4 +0,0 @@
|
||||
Dependencies
|
||||
------------
|
||||
|
||||
- The minimum required version of QT has been increased from 5.2 to 5.5.1 (the [depends system](https://github.com/bitcoin/bitcoin/blob/master/depends/README.md) provides 5.9.7)
|
||||
@@ -1,12 +1,9 @@
|
||||
(note: this is a temporary file, to be added-to by anybody, and moved to
|
||||
release-notes at release time)
|
||||
Bitcoin Core version 0.18.1 is now available from:
|
||||
|
||||
Bitcoin Core version *version* is now available from:
|
||||
<https://bitcoincore.org/bin/bitcoin-core-0.18.1/>
|
||||
|
||||
<https://bitcoincore.org/bin/bitcoin-core-*version*/>
|
||||
|
||||
This is a new major version release, including new features, various bugfixes
|
||||
and performance improvements, as well as updated translations.
|
||||
This is a new minor version release, including new features, various bug
|
||||
fixes and performance improvements, as well as updated translations.
|
||||
|
||||
Please report bugs using the issue tracker at GitHub:
|
||||
|
||||
@@ -19,365 +16,120 @@ To receive security and update notifications, please subscribe to:
|
||||
How to Upgrade
|
||||
==============
|
||||
|
||||
If you are running an older version, shut it down. Wait until it has completely
|
||||
shut down (which might take a few minutes for older versions), then run the
|
||||
installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac)
|
||||
or `bitcoind`/`bitcoin-qt` (on Linux).
|
||||
If you are 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 first time you run version 0.15.0 or newer, 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.
|
||||
|
||||
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.
|
||||
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 or later. Upgrading directly from 0.7.x and earlier without
|
||||
redownloading the blockchain is not supported. However, as usual, old
|
||||
wallet versions are still supported.
|
||||
|
||||
Compatibility
|
||||
==============
|
||||
|
||||
Bitcoin Core is supported and extensively tested on operating systems using
|
||||
the Linux kernel, macOS 10.10+, and Windows 7 and newer. It is not recommended
|
||||
to use Bitcoin Core on unsupported systems.
|
||||
Bitcoin Core is supported and extensively tested on operating systems
|
||||
using the Linux kernel, macOS 10.10+, and Windows 7 and newer. It is not
|
||||
recommended to use Bitcoin Core on unsupported systems.
|
||||
|
||||
Bitcoin Core should also work on most other Unix-like systems but is not
|
||||
frequently tested on them.
|
||||
as frequently tested on them.
|
||||
|
||||
From 0.17.0 onwards, macOS <10.10 is no longer supported. 0.17.0 is
|
||||
From 0.17.0 onwards, macOS <10.10 is no longer supported. 0.17.0 is
|
||||
built using Qt 5.9.x, which doesn't support versions of macOS older than
|
||||
10.10. Additionally, Bitcoin Core does not yet change appearance when
|
||||
10.10. Additionally, Bitcoin Core does not yet change appearance when
|
||||
macOS "dark mode" is activated.
|
||||
|
||||
In addition to previously-supported CPU platforms, this release's
|
||||
pre-compiled distribution also provides binaries for the RISC-V
|
||||
platform.
|
||||
Known issues
|
||||
============
|
||||
|
||||
Notable changes
|
||||
===============
|
||||
Wallet GUI
|
||||
----------
|
||||
|
||||
Mining
|
||||
------
|
||||
For advanced users who have both (1) enabled coin control features, and
|
||||
(2) are using multiple wallets loaded at the same time: The coin control
|
||||
input selection dialog can erroneously retain wrong-wallet state when
|
||||
switching wallets using the dropdown menu. For now, it is recommended
|
||||
not to use coin control features with multiple wallets loaded.
|
||||
|
||||
- Calls to `getblocktemplate` will fail if the segwit rule is not specified.
|
||||
Calling `getblocktemplate` without segwit specified is almost certainly
|
||||
a misconfiguration since doing so results in lower rewards for the miner.
|
||||
Failed calls will produce an error message describing how to enable the
|
||||
segwit rule.
|
||||
|
||||
Configuration option changes
|
||||
----------------------------
|
||||
|
||||
- A warning is printed if an unrecognized section name is used in the
|
||||
configuration file. Recognized sections are `[test]`, `[main]`, and
|
||||
`[regtest]`.
|
||||
|
||||
- Four new options are available for configuring the maximum number of
|
||||
messages that ZMQ will queue in memory (the "high water mark") before
|
||||
dropping additional messages. The default value is 1,000, the same as
|
||||
was used for previous releases. See the [ZMQ
|
||||
documentation](https://github.com/bitcoin/bitcoin/blob/master/doc/zmq.md#usage)
|
||||
for details.
|
||||
|
||||
- The `enablebip61` option (introduced in Bitcoin Core 0.17.0) is
|
||||
used to toggle sending of BIP 61 reject messages. Reject messages have no use
|
||||
case on the P2P network and are only logged for debugging by most network
|
||||
nodes. The option will now by default be off for improved privacy and security
|
||||
as well as reduced upload usage. The option can explicitly be turned on for
|
||||
local-network debugging purposes.
|
||||
|
||||
- The `rpcallowip` option can no longer be used to automatically listen
|
||||
on all network interfaces. Instead, the `rpcbind` parameter must also
|
||||
be used to specify the IP addresses to listen on. Listening for RPC
|
||||
commands over a public network connection is insecure and should be
|
||||
disabled, so a warning is now printed if a user selects such a
|
||||
configuration. If you need to expose RPC in order to use a tool
|
||||
like Docker, ensure you only bind RPC to your localhost, e.g. `docker
|
||||
run [...] -p 127.0.0.1:8332:8332` (this is an extra `:8332` over the
|
||||
normal Docker port specification).
|
||||
|
||||
- The `rpcpassword` option now causes a startup error if the password
|
||||
set in the configuration file contains a hash character (#), as it's
|
||||
ambiguous whether the hash character is meant for the password or as a
|
||||
comment.
|
||||
|
||||
- The `whitelistforcerelay` option is used to relay transactions from
|
||||
whitelisted peers even when not accepted to the mempool. This option now
|
||||
defaults to being off, so that changes in policy and disconnect/ban behavior
|
||||
will not cause a node that is whitelisting another to be dropped by peers.
|
||||
Users can still explicitly enable this behavior with the command line option
|
||||
(and may want to consider [contacting](https://bitcoincore.org/en/contact/)
|
||||
the Bitcoin Core project to let us know about their
|
||||
use-case, as this feature could be deprecated in the future).
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
- A new short
|
||||
[document](https://github.com/bitcoin/bitcoin/blob/master/doc/JSON-RPC-interface.md)
|
||||
about the JSON-RPC interface describes cases where the results of an
|
||||
RPC might contain inconsistencies between data sourced from different
|
||||
subsystems, such as wallet state and mempool state. A note is added
|
||||
to the [REST interface documentation](https://github.com/bitcoin/bitcoin/blob/master/doc/REST-interface.md)
|
||||
indicating that the same rules apply.
|
||||
|
||||
- Further information is added to the [JSON-RPC
|
||||
documentation](https://github.com/bitcoin/bitcoin/blob/master/doc/JSON-RPC-interface.md)
|
||||
about how to secure this interface.
|
||||
|
||||
- A new [document](https://github.com/bitcoin/bitcoin/blob/master/doc/bitcoin-conf.md)
|
||||
about the `bitcoin.conf` file describes how to use it to configure
|
||||
Bitcoin Core.
|
||||
|
||||
- A new document introduces Bitcoin Core's BIP174
|
||||
[Partially-Signed Bitcoin Transactions (PSBT)](https://github.com/bitcoin/bitcoin/blob/master/doc/psbt.md)
|
||||
interface, which is used to allow multiple programs to collaboratively
|
||||
work to create, sign, and broadcast new transactions. This is useful
|
||||
for offline (cold storage) wallets, multisig wallets, coinjoin
|
||||
implementations, and many other cases where two or more programs need
|
||||
to interact to generate a complete transaction.
|
||||
|
||||
- The [output script descriptor](https://github.com/bitcoin/bitcoin/blob/master/doc/descriptors.md)
|
||||
documentation has been updated with information about new features in
|
||||
this still-developing language for describing the output scripts that
|
||||
a wallet or other program wants to receive notifications for, such as
|
||||
which addresses it wants to know received payments. The language is
|
||||
currently used in the `scantxoutset` RPC and is expected to be adapted
|
||||
to other RPCs and to the underlying wallet structure.
|
||||
|
||||
Build system changes
|
||||
--------------------
|
||||
|
||||
- A new `--disable-bip70` option may be passed to `./configure` to
|
||||
prevent Bitcoin-Qt from being built with support for the BIP70 payment
|
||||
protocol or from linking libssl. As the payment protocol has exposed
|
||||
Bitcoin Core to libssl vulnerabilities in the past, builders who don't
|
||||
need BIP70 support are encouraged to use this option to reduce their
|
||||
exposure to future vulnerabilities.
|
||||
|
||||
Deprecated or removed RPCs
|
||||
--------------------------
|
||||
|
||||
- The `signrawtransaction` RPC is removed after being deprecated and
|
||||
hidden behind a special configuration option in version 0.17.0.
|
||||
|
||||
- The 'account' API is removed after being deprecated in v0.17. The
|
||||
'label' API was introduced in v0.17 as a replacement for accounts.
|
||||
See the [release notes from v0.17](https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.17.0.md#label-and-account-apis-for-wallet)
|
||||
for a full description of the changes from the 'account' API to the
|
||||
'label' API.
|
||||
|
||||
- The `addwitnessaddress` RPC is removed after being deprecated in
|
||||
version 0.13.0.
|
||||
|
||||
- The wallet's `generate` RPC method is deprecated and will be fully
|
||||
removed in a subsequent major version. This RPC is only used for
|
||||
testing, but its implementation reached across multiple subsystems
|
||||
(wallet and mining), so it is being deprecated to simplify the
|
||||
wallet-node interface. Projects that are using `generate` for testing
|
||||
purposes should transition to using the `generatetoaddress` RPC, which
|
||||
does not require or use the wallet component. Calling
|
||||
`generatetoaddress` with an address returned by the `getnewaddress`
|
||||
RPC gives the same functionality as the old `generate` RPC. To
|
||||
continue using `generate` in this version, restart bitcoind with the
|
||||
`-deprecatedrpc=generate` configuration option.
|
||||
|
||||
New RPCs
|
||||
--------
|
||||
|
||||
- The `getnodeaddresses` RPC returns peer addresses known to this
|
||||
node. It may be used to find nodes to connect to without using a DNS
|
||||
seeder.
|
||||
|
||||
- The `listwalletdir` RPC returns a list of wallets in the wallet
|
||||
directory (either the default wallet directory or the directory
|
||||
configured by the `-walletdir` parameter).
|
||||
|
||||
- The `getrpcinfo` returns runtime details of the RPC server. At the
|
||||
moment, it returns an array of the currently active commands and how
|
||||
long they've been running.
|
||||
|
||||
Updated RPCs
|
||||
------------
|
||||
|
||||
Note: some low-level RPC changes mainly useful for testing are described
|
||||
in the Low-level Changes section below.
|
||||
|
||||
- The `getpeerinfo` RPC now returns an additional `minfeefilter` field
|
||||
set to the peer's BIP133 fee filter. You can use this to detect that
|
||||
you have peers that are willing to accept transactions below the
|
||||
default minimum relay fee.
|
||||
|
||||
- The mempool RPCs, such as `getrawmempool` with `verbose=true`, now
|
||||
return an additional "bip125-replaceable" value indicating whether the
|
||||
transaction (or its unconfirmed ancestors) opts-in to asking nodes and
|
||||
miners to replace it with a higher-feerate transaction spending any of
|
||||
the same inputs.
|
||||
|
||||
- The `settxfee` RPC previously silently ignored attempts to set the fee
|
||||
below the allowed minimums. It now prints a warning. The special
|
||||
value of "0" may still be used to request the minimum value.
|
||||
|
||||
- The `getaddressinfo` RPC now provides an `ischange` field indicating
|
||||
whether the wallet used the address in a change output.
|
||||
|
||||
- The `importmulti` RPC has been updated to support P2WSH, P2WPKH,
|
||||
P2SH-P2WPKH, and P2SH-P2WSH. Requests for P2WSH and P2SH-P2WSH accept
|
||||
an additional `witnessscript` parameter.
|
||||
|
||||
- The `importmulti` RPC now returns an additional `warnings` field for
|
||||
each request with an array of strings explaining when fields are being
|
||||
ignored or are inconsistent, if there are any.
|
||||
|
||||
- The `getaddressinfo` RPC now returns an additional `solvable` boolean
|
||||
field when Bitcoin Core knows enough about the address's scriptPubKey,
|
||||
optional redeemScript, and optional witnessScript in order for the
|
||||
wallet to be able to generate an unsigned input spending funds sent to
|
||||
that address.
|
||||
|
||||
- The `getaddressinfo`, `listunspent`, and `scantxoutset` RPCs now
|
||||
return an additional `desc` field that contains an output descriptor
|
||||
containing all key paths and signing information for the address
|
||||
(except for the private key). The `desc` field is only returned for
|
||||
`getaddressinfo` and `listunspent` when the address is solvable.
|
||||
|
||||
- The `importprivkey` RPC will preserve previously-set labels for
|
||||
addresses or public keys corresponding to the private key being
|
||||
imported. For example, if you imported a watch-only address with the
|
||||
label "cold wallet" in earlier releases of Bitcoin Core, subsequently
|
||||
importing the private key would default to resetting the address's
|
||||
label to the default empty-string label (""). In this release, the
|
||||
previous label of "cold wallet" will be retained. If you optionally
|
||||
specify any label besides the default when calling `importprivkey`,
|
||||
the new label will be applied to the address.
|
||||
|
||||
- See the [Mining](#mining) section for changes to `getblocktemplate`.
|
||||
|
||||
- The `getmininginfo` RPC now omits `currentblockweight` and `currentblocktx`
|
||||
when a block was never assembled via RPC on this node.
|
||||
|
||||
- The `getrawtransaction` RPC & REST endpoints no longer check the
|
||||
unspent UTXO set for a transaction. The remaining behaviors are as
|
||||
follows: 1. If a blockhash is provided, check the corresponding block.
|
||||
2. If no blockhash is provided, check the mempool. 3. If no blockhash
|
||||
is provided but txindex is enabled, also check txindex.
|
||||
|
||||
- The `unloadwallet` RPC is now synchronous, meaning it will not return
|
||||
until the wallet is fully unloaded.
|
||||
|
||||
REST changes
|
||||
------------
|
||||
|
||||
- A new `/rest/blockhashbyheight/` endpoint is added for fetching the
|
||||
hash of the block in the current best blockchain based on its height
|
||||
(how many blocks it is after the Genesis Block).
|
||||
|
||||
Graphical User Interface (GUI)
|
||||
------------------------------
|
||||
|
||||
- A new Window menu is added alongside the existing File, Settings, and
|
||||
Help menus. Several items from the other menus that opened new
|
||||
windows have been moved to this new Window menu.
|
||||
|
||||
- In the Send tab, the checkbox for "pay only the required fee"
|
||||
has been removed. Instead, the user can simply decrease the value in
|
||||
the Custom Feerate field all the way down to the node's configured
|
||||
minimum relay fee.
|
||||
|
||||
- In the Overview tab, the watch-only balance will be the only
|
||||
balance shown if the wallet was created using the `createwallet` RPC
|
||||
and the `disable_private_keys` parameter was set to true.
|
||||
|
||||
- The launch-on-startup option is no longer available on macOS if
|
||||
compiled with macosx min version greater than 10.11 (use
|
||||
CXXFLAGS="-mmacosx-version-min=10.11"
|
||||
CFLAGS="-mmacosx-version-min=10.11" for setting the deployment
|
||||
sdk version)
|
||||
|
||||
Tools
|
||||
----
|
||||
|
||||
- A new `bitcoin-wallet` tool is now distributed alongside Bitcoin
|
||||
Core's other executables. Without needing to use any RPCs, this tool
|
||||
can currently create a new wallet file or display some basic
|
||||
information about an existing wallet, such as whether the wallet is
|
||||
encrypted, whether it uses an HD seed, how many transactions it
|
||||
contains, and how many address book entries it has.
|
||||
|
||||
Low-level changes
|
||||
0.18.1 change log
|
||||
=================
|
||||
|
||||
RPC
|
||||
---
|
||||
### P2P protocol and network code
|
||||
- #15990 Add tests and documentation for blocksonly (MarcoFalke)
|
||||
- #16021 Avoid logging transaction decode errors to stderr (MarcoFalke)
|
||||
- #16405 fix: tor: Call `event_base_loopbreak` from the event's callback (promag)
|
||||
- #16412 Make poll in InterruptibleRecv only filter for POLLIN events (tecnovert)
|
||||
|
||||
- The `submitblock` RPC previously returned the reason a rejected block
|
||||
was invalid the first time it processed that block but returned a
|
||||
generic "duplicate" rejection message on subsequent occasions it
|
||||
processed the same block. It now always returns the fundamental
|
||||
reason for rejecting an invalid block and only returns "duplicate" for
|
||||
valid blocks it has already accepted.
|
||||
### Wallet
|
||||
- #15913 Add -ignorepartialspends to list of ignored wallet options (luke-jr)
|
||||
|
||||
- A new `submitheader` RPC allows submitting block headers independently
|
||||
from their block. This is likely only useful for testing.
|
||||
### RPC and other APIs
|
||||
- #15991 Bugfix: fix pruneblockchain returned prune height (jonasschnelli)
|
||||
- #15899 Document iswitness flag and fix bug in converttopsbt (MarcoFalke)
|
||||
- #16026 Ensure that uncompressed public keys in a multisig always returns a legacy address (achow101)
|
||||
- #14039 Disallow extended encoding for non-witness transactions (sipa)
|
||||
- #16210 add 2nd arg to signrawtransactionwithkey examples (dooglus)
|
||||
- #16250 signrawtransactionwithkey: report error when missing redeemScript/witnessScript (ajtowns)
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
### GUI
|
||||
- #16044 fix the bug of OPEN CONFIGURATION FILE on Mac (shannon1916)
|
||||
- #15957 Show "No wallets available" in open menu instead of nothing (meshcollider)
|
||||
- #16118 Enable open wallet menu on setWalletController (promag)
|
||||
- #16135 Set progressDialog to nullptr (promag)
|
||||
- #16231 Fix open wallet menu initialization order (promag)
|
||||
- #16254 Set `AA_EnableHighDpiScaling` attribute early (hebasto)
|
||||
- #16122 Enable console line edit on setClientModel (promag)
|
||||
- #16348 Assert QMetaObject::invokeMethod result (promag)
|
||||
|
||||
- The `-usehd` configuration option was removed in version 0.16. From
|
||||
that version onwards, all new wallets created are hierarchical
|
||||
deterministic wallets. This release makes specifying `-usehd` an
|
||||
invalid configuration option.
|
||||
### Build system
|
||||
- #15985 Add test for GCC bug 90348 (sipa)
|
||||
- #15947 Install bitcoin-wallet manpage (domob1812)
|
||||
- #15983 build with -fstack-reuse=none (MarcoFalke)
|
||||
|
||||
Network
|
||||
-------
|
||||
### Tests and QA
|
||||
- #15826 Pure python EC (sipa)
|
||||
- #15893 Add test for superfluous witness record in deserialization (instagibbs)
|
||||
- #14818 Bugfix: test/functional/rpc_psbt: Remove check for specific error message that depends on uncertain assumptions (luke-jr)
|
||||
- #15831 Add test that addmultisigaddress fails for watchonly addresses (MarcoFalke)
|
||||
|
||||
- This release allows peers that your node automatically disconnected
|
||||
for misbehavior (e.g. sending invalid data) to reconnect to your node
|
||||
if you have unused incoming connection slots. If your slots fill up,
|
||||
a misbehaving node will be disconnected to make room for nodes without
|
||||
a history of problems (unless the misbehaving node helps your node in
|
||||
some other way, such as by connecting to a part of the Internet from
|
||||
which you don't have many other peers). Previously, Bitcoin Core
|
||||
banned the IP addresses of misbehaving peers for a period of time
|
||||
(default of 1 day); this was easily circumvented by attackers with
|
||||
multiple IP addresses. If you manually ban a peer, such as by using
|
||||
the `setban` RPC, all connections from that peer will still be
|
||||
rejected.
|
||||
### Documentation
|
||||
- #15890 Remove text about txes always relayed from -whitelist (harding)
|
||||
|
||||
Security
|
||||
--------
|
||||
|
||||
- This release changes the Random Number Generator (RNG) used from
|
||||
OpenSSL to Bitcoin Core's own implementation, although entropy
|
||||
gathered by Bitcoin Core is fed out to OpenSSL and then read back in
|
||||
when the program needs strong randomness. This moves Bitcoin Core a
|
||||
little closer to no longer needing to depend on OpenSSL, a dependency
|
||||
that has caused security issues in the past.
|
||||
|
||||
Changes for particular platforms
|
||||
--------------------------------
|
||||
|
||||
- On macOS, Bitcoin Core now opts out of application CPU throttling
|
||||
("app nap") during initial blockchain download, when catching up from
|
||||
over 100 blocks behind the current chain tip, or when reindexing chain
|
||||
data. This helps prevent these operations from taking an excessively
|
||||
long time because the operating system is attempting to conserve
|
||||
power.
|
||||
### Miscellaneous
|
||||
- #16095 Catch by reference not value in wallettool (kristapsk)
|
||||
- #16205 Replace fprintf with tfm::format (MarcoFalke)
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
Thanks to everyone who directly contributed to this release:
|
||||
|
||||
- Andrew Chow
|
||||
- Anthony Towns
|
||||
- Chris Moore
|
||||
- Daniel Kraft
|
||||
- David A. Harding
|
||||
- fanquake
|
||||
- Gregory Sanders
|
||||
- Hennadii Stepanov
|
||||
- John Newbery
|
||||
- Jonas Schnelli
|
||||
- João Barbosa
|
||||
- Kristaps Kaupe
|
||||
- Luke Dashjr
|
||||
- MarcoFalke
|
||||
- MeshCollider
|
||||
- Pieter Wuille
|
||||
- shannon1916
|
||||
- tecnovert
|
||||
- Wladimir J. van der Laan
|
||||
|
||||
As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/).
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
systemd init file
|
||||
=========
|
||||
|
||||
The systemd init file (`contrib/init/bitcoind.service`) has been changed to use
|
||||
`/var/lib/bitcoind` as the data directory instead of `~bitcoin/.bitcoin`. This
|
||||
change makes Bitcoin Core more consistent with other services, and makes the
|
||||
systemd init config more consistent with existing Upstart and OpenRC configs.
|
||||
|
||||
The configuration, PID, and data directories are now completely managed by
|
||||
systemd, which will take care of their creation, permissions, etc. See
|
||||
[`systemd.exec (5)`](https://www.freedesktop.org/software/systemd/man/systemd.exec.html#RuntimeDirectory=)
|
||||
for more details.
|
||||
|
||||
When using the provided init files under `contrib/init`, overriding the
|
||||
`datadir` option in `/etc/bitcoin/bitcoin.conf` will have no effect. This is
|
||||
because the command line arguments specified in the init files take precedence
|
||||
over the options specified in `/etc/bitcoin/bitcoin.conf`.
|
||||
@@ -291,24 +291,48 @@ bitcoin.org (see below for bitcoin.org update instructions).
|
||||
- After the pull request is merged, the website will automatically show the newest version within 15 minutes, as well
|
||||
as update the OS download links. Ping @saivann/@harding (saivann/harding on Freenode) in case anything goes wrong
|
||||
|
||||
- Update other repositories and websites for new version
|
||||
|
||||
- bitcoincore.org blog post
|
||||
|
||||
- bitcoincore.org RPC documentation update
|
||||
|
||||
- Update packaging repo
|
||||
|
||||
- Notify BlueMatt so that he can start building [the PPAs](https://launchpad.net/~bitcoin/+archive/ubuntu/bitcoin)
|
||||
|
||||
- Create a new branch for the major release "0.xx" (used to build the snap package)
|
||||
|
||||
- Notify MarcoFalke so that he can start building the snap package
|
||||
|
||||
- https://code.launchpad.net/~bitcoin-core/bitcoin-core-snap/+git/packaging (Click "Import Now" to fetch the branch)
|
||||
- https://code.launchpad.net/~bitcoin-core/bitcoin-core-snap/+git/packaging/+ref/0.xx (Click "Create snap package")
|
||||
- Name it "bitcoin-core-snap-0.xx"
|
||||
- Leave owner and series as-is
|
||||
- Select architectures that are compiled via gitian
|
||||
- Leave "automatically build when branch changes" unticked
|
||||
- Tick "automatically upload to store"
|
||||
- Put "bitcoin-core" in the registered store package name field
|
||||
- Tick the "edge" box
|
||||
- Put "0.xx" in the track field
|
||||
- Click "create snap package"
|
||||
- Click "Request builds" for every new release on this branch (after updating the snapcraft.yml in the branch to reflect the latest gitian results)
|
||||
- Promote release on https://snapcraft.io/bitcoin-core/releases if it passes sanity checks
|
||||
|
||||
- This repo
|
||||
|
||||
- Archive release notes for the new version to `doc/release-notes/` (branch `master` and branch of the release)
|
||||
|
||||
- Create a [new GitHub release](https://github.com/bitcoin/bitcoin/releases/new) with a link to the archived release notes.
|
||||
|
||||
- Announce the release:
|
||||
|
||||
- bitcoin-dev and bitcoin-core-dev mailing list
|
||||
|
||||
- Bitcoin Core announcements list https://bitcoincore.org/en/list/announcements/join/
|
||||
|
||||
- bitcoincore.org blog post
|
||||
|
||||
- bitcoincore.org RPC documentation update
|
||||
|
||||
- Update title of #bitcoin on Freenode IRC
|
||||
|
||||
- Optionally twitter, reddit /r/Bitcoin, ... but this will usually sort out itself
|
||||
|
||||
- Notify BlueMatt so that he can start building [the PPAs](https://launchpad.net/~bitcoin/+archive/ubuntu/bitcoin)
|
||||
|
||||
- Archive release notes for the new version to `doc/release-notes/` (branch `master` and branch of the release)
|
||||
|
||||
- Create a [new GitHub release](https://github.com/bitcoin/bitcoin/releases/new) with a link to the archived release notes.
|
||||
|
||||
- Celebrate
|
||||
|
||||
@@ -7,11 +7,11 @@ The purpose of this library is to make the verification functionality that is cr
|
||||
|
||||
### API
|
||||
|
||||
The interface is defined in the C header `bitcoinconsensus.h` located in `src/script/bitcoinconsensus.h`.
|
||||
The interface is defined in the C header `bitcoinconsensus.h` located in `src/script/bitcoinconsensus.h`.
|
||||
|
||||
#### Version
|
||||
|
||||
`bitcoinconsensus_version` returns an `unsigned int` with the API version *(currently at an experimental `0`)*.
|
||||
`bitcoinconsensus_version` returns an `unsigned int` with the API version *(currently `1`)*.
|
||||
|
||||
#### Script Validation
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ outgoing connections, but more is possible.
|
||||
|
||||
-onion=ip:port Set the proxy server to use for Tor hidden services. You do not
|
||||
need to set this if it's the same as -proxy. You can use -noonion
|
||||
to explicitly disable access to hidden service.
|
||||
to explicitly disable access to hidden services.
|
||||
|
||||
-listen When using -proxy, listening is disabled by default. If you want
|
||||
to run a hidden service (see next section), you'll need to enable
|
||||
@@ -27,6 +27,11 @@ outgoing connections, but more is possible.
|
||||
-seednode=X SOCKS5. In Tor mode, such addresses can also be exchanged with
|
||||
other P2P nodes.
|
||||
|
||||
-onlynet=onion Make outgoing connections only to .onion addresses. Incoming
|
||||
connections are not affected by this option. This option can be
|
||||
specified multiple times to allow multiple network types, e.g.
|
||||
ipv4, ipv6, or onion.
|
||||
|
||||
In a typical situation, this suffices to run behind a Tor proxy:
|
||||
|
||||
./bitcoind -proxy=127.0.0.1:9050
|
||||
|
||||
@@ -5,7 +5,6 @@ SetCompressor /SOLID lzma
|
||||
|
||||
# General Symbol Definitions
|
||||
!define REGKEY "SOFTWARE\$(^Name)"
|
||||
!define VERSION @CLIENT_VERSION_MAJOR@.@CLIENT_VERSION_MINOR@.@CLIENT_VERSION_REVISION@
|
||||
!define COMPANY "@PACKAGE_NAME@ project"
|
||||
!define URL @PACKAGE_URL@
|
||||
|
||||
@@ -49,7 +48,7 @@ Var StartMenuGroup
|
||||
!insertmacro MUI_LANGUAGE English
|
||||
|
||||
# Installer attributes
|
||||
OutFile @abs_top_srcdir@/@PACKAGE_TARNAME@-${VERSION}-win@WINDOWS_BITS@-setup.exe
|
||||
OutFile @abs_top_srcdir@/@PACKAGE_TARNAME@-@PACKAGE_VERSION@-win@WINDOWS_BITS@-setup.exe
|
||||
!if "@WINDOWS_BITS@" == "64"
|
||||
InstallDir $PROGRAMFILES64\Bitcoin
|
||||
!else
|
||||
@@ -59,12 +58,12 @@ CRCCheck on
|
||||
XPStyle on
|
||||
BrandingText " "
|
||||
ShowInstDetails show
|
||||
VIProductVersion ${VERSION}.@CLIENT_VERSION_BUILD@
|
||||
VIProductVersion @CLIENT_VERSION_MAJOR@.@CLIENT_VERSION_MINOR@.@CLIENT_VERSION_REVISION@.@CLIENT_VERSION_BUILD@
|
||||
VIAddVersionKey ProductName "@PACKAGE_NAME@"
|
||||
VIAddVersionKey ProductVersion "${VERSION}"
|
||||
VIAddVersionKey ProductVersion "@PACKAGE_VERSION@"
|
||||
VIAddVersionKey CompanyName "${COMPANY}"
|
||||
VIAddVersionKey CompanyWebsite "${URL}"
|
||||
VIAddVersionKey FileVersion "${VERSION}"
|
||||
VIAddVersionKey FileVersion "@PACKAGE_VERSION@"
|
||||
VIAddVersionKey FileDescription ""
|
||||
VIAddVersionKey LegalCopyright ""
|
||||
InstallDirRegKey HKCU "${REGKEY}" Path
|
||||
@@ -99,7 +98,7 @@ Section -post SEC0001
|
||||
CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Uninstall $(^Name).lnk" $INSTDIR\uninstall.exe
|
||||
!insertmacro MUI_STARTMENU_WRITE_END
|
||||
WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayName "$(^Name)"
|
||||
WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayVersion "${VERSION}"
|
||||
WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayVersion "@PACKAGE_VERSION@"
|
||||
WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" Publisher "${COMPANY}"
|
||||
WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" URLInfoAbout "${URL}"
|
||||
WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayIcon $INSTDIR\uninstall.exe
|
||||
|
||||
@@ -9,51 +9,66 @@ EXTRA_LIBRARIES += qt/libbitcoinqt.a
|
||||
QT_TS = \
|
||||
qt/locale/bitcoin_af.ts \
|
||||
qt/locale/bitcoin_af_ZA.ts \
|
||||
qt/locale/bitcoin_am.ts \
|
||||
qt/locale/bitcoin_ar.ts \
|
||||
qt/locale/bitcoin_be_BY.ts \
|
||||
qt/locale/bitcoin_bg_BG.ts \
|
||||
qt/locale/bitcoin_bg.ts \
|
||||
qt/locale/bitcoin_ca_ES.ts \
|
||||
qt/locale/bitcoin_bg_BG.ts \
|
||||
qt/locale/bitcoin_bn.ts \
|
||||
qt/locale/bitcoin_bs.ts \
|
||||
qt/locale/bitcoin_ca.ts \
|
||||
qt/locale/bitcoin_ca@valencia.ts \
|
||||
qt/locale/bitcoin_ca_ES.ts \
|
||||
qt/locale/bitcoin_cs.ts \
|
||||
qt/locale/bitcoin_cs_CZ.ts \
|
||||
qt/locale/bitcoin_cy.ts \
|
||||
qt/locale/bitcoin_da.ts \
|
||||
qt/locale/bitcoin_de.ts \
|
||||
qt/locale/bitcoin_el_GR.ts \
|
||||
qt/locale/bitcoin_de_DE.ts \
|
||||
qt/locale/bitcoin_el.ts \
|
||||
qt/locale/bitcoin_en_GB.ts \
|
||||
qt/locale/bitcoin_el_GR.ts \
|
||||
qt/locale/bitcoin_en.ts \
|
||||
qt/locale/bitcoin_en_AU.ts \
|
||||
qt/locale/bitcoin_en_GB.ts \
|
||||
qt/locale/bitcoin_eo.ts \
|
||||
qt/locale/bitcoin_es.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 \
|
||||
qt/locale/bitcoin_es_DO.ts \
|
||||
qt/locale/bitcoin_es_ES.ts \
|
||||
qt/locale/bitcoin_es_MX.ts \
|
||||
qt/locale/bitcoin_es.ts \
|
||||
qt/locale/bitcoin_es_UY.ts \
|
||||
qt/locale/bitcoin_es_VE.ts \
|
||||
qt/locale/bitcoin_et_EE.ts \
|
||||
qt/locale/bitcoin_et.ts \
|
||||
qt/locale/bitcoin_et_EE.ts \
|
||||
qt/locale/bitcoin_eu_ES.ts \
|
||||
qt/locale/bitcoin_fa_IR.ts \
|
||||
qt/locale/bitcoin_fa.ts \
|
||||
qt/locale/bitcoin_fa_IR.ts \
|
||||
qt/locale/bitcoin_fi.ts \
|
||||
qt/locale/bitcoin_fil.ts \
|
||||
qt/locale/bitcoin_fr.ts \
|
||||
qt/locale/bitcoin_fr_CA.ts \
|
||||
qt/locale/bitcoin_fr_FR.ts \
|
||||
qt/locale/bitcoin_fr.ts \
|
||||
qt/locale/bitcoin_gl.ts \
|
||||
qt/locale/bitcoin_he.ts \
|
||||
qt/locale/bitcoin_he_IL.ts \
|
||||
qt/locale/bitcoin_hi.ts \
|
||||
qt/locale/bitcoin_hi_IN.ts \
|
||||
qt/locale/bitcoin_hr.ts \
|
||||
qt/locale/bitcoin_hu.ts \
|
||||
qt/locale/bitcoin_hu_HU.ts \
|
||||
qt/locale/bitcoin_id.ts \
|
||||
qt/locale/bitcoin_id_ID.ts \
|
||||
qt/locale/bitcoin_it_IT.ts \
|
||||
qt/locale/bitcoin_is.ts \
|
||||
qt/locale/bitcoin_it.ts \
|
||||
qt/locale/bitcoin_it_IT.ts \
|
||||
qt/locale/bitcoin_ja.ts \
|
||||
qt/locale/bitcoin_ka.ts \
|
||||
qt/locale/bitcoin_kk_KZ.ts \
|
||||
qt/locale/bitcoin_km_KH.ts \
|
||||
qt/locale/bitcoin_ko.ts \
|
||||
qt/locale/bitcoin_ko_KR.ts \
|
||||
qt/locale/bitcoin_ku_IQ.ts \
|
||||
qt/locale/bitcoin_ky.ts \
|
||||
@@ -61,37 +76,55 @@ QT_TS = \
|
||||
qt/locale/bitcoin_lt.ts \
|
||||
qt/locale/bitcoin_lv_LV.ts \
|
||||
qt/locale/bitcoin_mk_MK.ts \
|
||||
qt/locale/bitcoin_ml.ts \
|
||||
qt/locale/bitcoin_mn.ts \
|
||||
qt/locale/bitcoin_mr_IN.ts \
|
||||
qt/locale/bitcoin_ms.ts \
|
||||
qt/locale/bitcoin_ms_MY.ts \
|
||||
qt/locale/bitcoin_my.ts \
|
||||
qt/locale/bitcoin_nb.ts \
|
||||
qt/locale/bitcoin_nb_NO.ts \
|
||||
qt/locale/bitcoin_ne.ts \
|
||||
qt/locale/bitcoin_nl.ts \
|
||||
qt/locale/bitcoin_nl_BE.ts \
|
||||
qt/locale/bitcoin_nl_NL.ts \
|
||||
qt/locale/bitcoin_pam.ts \
|
||||
qt/locale/bitcoin_pl.ts \
|
||||
qt/locale/bitcoin_pl_PL.ts \
|
||||
qt/locale/bitcoin_pt.ts \
|
||||
qt/locale/bitcoin_pt_BR.ts \
|
||||
qt/locale/bitcoin_pt_PT.ts \
|
||||
qt/locale/bitcoin_ro_RO.ts \
|
||||
qt/locale/bitcoin_ro.ts \
|
||||
qt/locale/bitcoin_ru_RU.ts \
|
||||
qt/locale/bitcoin_ro_RO.ts \
|
||||
qt/locale/bitcoin_ru.ts \
|
||||
qt/locale/bitcoin_ru_RU.ts \
|
||||
qt/locale/bitcoin_si.ts \
|
||||
qt/locale/bitcoin_sk.ts \
|
||||
qt/locale/bitcoin_sk_SK.ts \
|
||||
qt/locale/bitcoin_sl_SI.ts \
|
||||
qt/locale/bitcoin_sn.ts \
|
||||
qt/locale/bitcoin_sq.ts \
|
||||
qt/locale/bitcoin_sr@latin.ts \
|
||||
qt/locale/bitcoin_sr.ts \
|
||||
qt/locale/bitcoin_sr@latin.ts \
|
||||
qt/locale/bitcoin_sv.ts \
|
||||
qt/locale/bitcoin_szl.ts \
|
||||
qt/locale/bitcoin_ta.ts \
|
||||
qt/locale/bitcoin_ta_IN.ts \
|
||||
qt/locale/bitcoin_te.ts \
|
||||
qt/locale/bitcoin_th.ts \
|
||||
qt/locale/bitcoin_th_TH.ts \
|
||||
qt/locale/bitcoin_tr_TR.ts \
|
||||
qt/locale/bitcoin_tr.ts \
|
||||
qt/locale/bitcoin_tr_TR.ts \
|
||||
qt/locale/bitcoin_uk.ts \
|
||||
qt/locale/bitcoin_uk_UA.ts \
|
||||
qt/locale/bitcoin_ur_PK.ts \
|
||||
qt/locale/bitcoin_uz@Cyrl.ts \
|
||||
qt/locale/bitcoin_vi.ts \
|
||||
qt/locale/bitcoin_vi_VN.ts \
|
||||
qt/locale/bitcoin_zh-Hans.ts \
|
||||
qt/locale/bitcoin_zh.ts \
|
||||
qt/locale/bitcoin_zh_CN.ts \
|
||||
qt/locale/bitcoin_zh_HK.ts \
|
||||
qt/locale/bitcoin_zh.ts \
|
||||
qt/locale/bitcoin_zh_TW.ts
|
||||
|
||||
QT_FORMS_UI = \
|
||||
|
||||
@@ -78,6 +78,7 @@ BITCOIN_TESTS =\
|
||||
test/bswap_tests.cpp \
|
||||
test/checkqueue_tests.cpp \
|
||||
test/coins_tests.cpp \
|
||||
test/compilerbug_tests.cpp \
|
||||
test/compress_tests.cpp \
|
||||
test/crypto_tests.cpp \
|
||||
test/cuckoocache_tests.cpp \
|
||||
|
||||
@@ -239,7 +239,9 @@ void CAddrMan::Good_(const CService& addr, bool test_before_evict, int64_t nTime
|
||||
|
||||
// Will moving this address into tried evict another entry?
|
||||
if (test_before_evict && (vvTried[tried_bucket][tried_bucket_pos] != -1)) {
|
||||
LogPrint(BCLog::ADDRMAN, "Collision inserting element into tried table, moving %s to m_tried_collisions=%d\n", addr.ToString(), m_tried_collisions.size());
|
||||
// Output the entry we'd be colliding with, for debugging purposes
|
||||
auto colliding_entry = mapInfo.find(vvTried[tried_bucket][tried_bucket_pos]);
|
||||
LogPrint(BCLog::ADDRMAN, "Collision inserting element into tried table (%s), moving %s to m_tried_collisions=%d\n", colliding_entry != mapInfo.end() ? colliding_entry->second.ToString() : "", addr.ToString(), m_tried_collisions.size());
|
||||
if (m_tried_collisions.size() < ADDRMAN_SET_TRIED_COLLISION_SIZE) {
|
||||
m_tried_collisions.insert(nId);
|
||||
}
|
||||
@@ -561,12 +563,19 @@ void CAddrMan::ResolveCollisions_()
|
||||
|
||||
// Give address at least 60 seconds to successfully connect
|
||||
if (GetAdjustedTime() - info_old.nLastTry > 60) {
|
||||
LogPrint(BCLog::ADDRMAN, "Swapping %s for %s in tried table\n", info_new.ToString(), info_old.ToString());
|
||||
LogPrint(BCLog::ADDRMAN, "Replacing %s with %s in tried table\n", info_old.ToString(), info_new.ToString());
|
||||
|
||||
// Replaces an existing address already in the tried table with the new address
|
||||
Good_(info_new, false, GetAdjustedTime());
|
||||
erase_collision = true;
|
||||
}
|
||||
} else if (GetAdjustedTime() - info_new.nLastSuccess > ADDRMAN_TEST_WINDOW) {
|
||||
// If the collision hasn't resolved in some reasonable amount of time,
|
||||
// just evict the old entry -- we must not be able to
|
||||
// connect to it for some reason.
|
||||
LogPrint(BCLog::ADDRMAN, "Unable to test; replacing %s with %s in tried table anyway\n", info_old.ToString(), info_new.ToString());
|
||||
Good_(info_new, false, GetAdjustedTime());
|
||||
erase_collision = true;
|
||||
}
|
||||
} else { // Collision is not actually a collision anymore
|
||||
Good_(info_new, false, GetAdjustedTime());
|
||||
|
||||
@@ -166,6 +166,9 @@ public:
|
||||
//! the maximum number of tried addr collisions to store
|
||||
#define ADDRMAN_SET_TRIED_COLLISION_SIZE 10
|
||||
|
||||
//! the maximum time we'll spend trying to resolve a tried table collision, in seconds
|
||||
static const int64_t ADDRMAN_TEST_WINDOW = 40*60; // 40 minutes
|
||||
|
||||
/**
|
||||
* Stochastical (IP) address manager
|
||||
*/
|
||||
|
||||
@@ -49,7 +49,7 @@ int main(int argc, char** argv)
|
||||
SetupBenchArgs();
|
||||
std::string error;
|
||||
if (!gArgs.ParseParameters(argc, argv, error)) {
|
||||
fprintf(stderr, "Error parsing command line arguments: %s\n", error.c_str());
|
||||
tfm::format(std::cerr, "Error parsing command line arguments: %s\n", error.c_str());
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ int main(int argc, char** argv)
|
||||
|
||||
double scaling_factor;
|
||||
if (!ParseDouble(scaling_str, &scaling_factor)) {
|
||||
fprintf(stderr, "Error parsing scaling factor as double: %s\n", scaling_str.c_str());
|
||||
tfm::format(std::cerr, "Error parsing scaling factor as double: %s\n", scaling_str.c_str());
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
|
||||
@@ -101,7 +101,7 @@ static int AppInitRPC(int argc, char* argv[])
|
||||
SetupCliArgs();
|
||||
std::string error;
|
||||
if (!gArgs.ParseParameters(argc, argv, error)) {
|
||||
fprintf(stderr, "Error parsing command line arguments: %s\n", error.c_str());
|
||||
tfm::format(std::cerr, "Error parsing command line arguments: %s\n", error.c_str());
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
if (argc < 2 || HelpRequested(gArgs) || gArgs.IsArgSet("-version")) {
|
||||
@@ -115,26 +115,26 @@ static int AppInitRPC(int argc, char* argv[])
|
||||
strUsage += "\n" + gArgs.GetHelpMessage();
|
||||
}
|
||||
|
||||
fprintf(stdout, "%s", strUsage.c_str());
|
||||
tfm::format(std::cout, "%s", strUsage.c_str());
|
||||
if (argc < 2) {
|
||||
fprintf(stderr, "Error: too few parameters\n");
|
||||
tfm::format(std::cerr, "Error: too few parameters\n");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
if (!fs::is_directory(GetDataDir(false))) {
|
||||
fprintf(stderr, "Error: Specified data directory \"%s\" does not exist.\n", gArgs.GetArg("-datadir", "").c_str());
|
||||
tfm::format(std::cerr, "Error: Specified data directory \"%s\" does not exist.\n", gArgs.GetArg("-datadir", "").c_str());
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
if (!gArgs.ReadConfigFiles(error, true)) {
|
||||
fprintf(stderr, "Error reading configuration file: %s\n", error.c_str());
|
||||
tfm::format(std::cerr, "Error reading configuration file: %s\n", error.c_str());
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
// Check for -testnet or -regtest parameter (BaseParams() calls are only valid after this clause)
|
||||
try {
|
||||
SelectBaseParams(gArgs.GetChainName());
|
||||
} catch (const std::exception& e) {
|
||||
fprintf(stderr, "Error: %s\n", e.what());
|
||||
tfm::format(std::cerr, "Error: %s\n", e.what());
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
return CONTINUE_EXECUTION;
|
||||
@@ -499,7 +499,7 @@ static int CommandLineRPC(int argc, char *argv[])
|
||||
}
|
||||
|
||||
if (strPrint != "") {
|
||||
fprintf((nRet == 0 ? stdout : stderr), "%s\n", strPrint.c_str());
|
||||
tfm::format(nRet == 0 ? std::cout : std::cerr, "%s\n", strPrint.c_str());
|
||||
}
|
||||
return nRet;
|
||||
}
|
||||
@@ -512,7 +512,7 @@ int main(int argc, char* argv[])
|
||||
#endif
|
||||
SetupEnvironment();
|
||||
if (!SetupNetworking()) {
|
||||
fprintf(stderr, "Error: Initializing networking failed\n");
|
||||
tfm::format(std::cerr, "Error: Initializing networking failed\n");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
event_set_log_callback(&libevent_log_cb);
|
||||
|
||||
@@ -81,7 +81,7 @@ static int AppInitRawTx(int argc, char* argv[])
|
||||
SetupBitcoinTxArgs();
|
||||
std::string error;
|
||||
if (!gArgs.ParseParameters(argc, argv, error)) {
|
||||
fprintf(stderr, "Error parsing command line arguments: %s\n", error.c_str());
|
||||
tfm::format(std::cerr, "Error parsing command line arguments: %s\n", error.c_str());
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
@@ -89,7 +89,7 @@ static int AppInitRawTx(int argc, char* argv[])
|
||||
try {
|
||||
SelectParams(gArgs.GetChainName());
|
||||
} catch (const std::exception& e) {
|
||||
fprintf(stderr, "Error: %s\n", e.what());
|
||||
tfm::format(std::cerr, "Error: %s\n", e.what());
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
@@ -103,10 +103,10 @@ static int AppInitRawTx(int argc, char* argv[])
|
||||
"\n";
|
||||
strUsage += gArgs.GetHelpMessage();
|
||||
|
||||
fprintf(stdout, "%s", strUsage.c_str());
|
||||
tfm::format(std::cout, "%s", strUsage.c_str());
|
||||
|
||||
if (argc < 2) {
|
||||
fprintf(stderr, "Error: too few parameters\n");
|
||||
tfm::format(std::cerr, "Error: too few parameters\n");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
return EXIT_SUCCESS;
|
||||
@@ -722,21 +722,21 @@ static void OutputTxJSON(const CTransaction& tx)
|
||||
TxToUniv(tx, uint256(), entry);
|
||||
|
||||
std::string jsonOutput = entry.write(4);
|
||||
fprintf(stdout, "%s\n", jsonOutput.c_str());
|
||||
tfm::format(std::cout, "%s\n", jsonOutput.c_str());
|
||||
}
|
||||
|
||||
static void OutputTxHash(const CTransaction& tx)
|
||||
{
|
||||
std::string strHexHash = tx.GetHash().GetHex(); // the hex-encoded transaction hash (aka the transaction id)
|
||||
|
||||
fprintf(stdout, "%s\n", strHexHash.c_str());
|
||||
tfm::format(std::cout, "%s\n", strHexHash.c_str());
|
||||
}
|
||||
|
||||
static void OutputTxHex(const CTransaction& tx)
|
||||
{
|
||||
std::string strHex = EncodeHexTx(tx);
|
||||
|
||||
fprintf(stdout, "%s\n", strHex.c_str());
|
||||
tfm::format(std::cout, "%s\n", strHex.c_str());
|
||||
}
|
||||
|
||||
static void OutputTx(const CTransaction& tx)
|
||||
@@ -827,7 +827,7 @@ static int CommandLineRawTx(int argc, char* argv[])
|
||||
}
|
||||
|
||||
if (strPrint != "") {
|
||||
fprintf((nRet == 0 ? stdout : stderr), "%s\n", strPrint.c_str());
|
||||
tfm::format(nRet == 0 ? std::cout : std::cerr, "%s\n", strPrint.c_str());
|
||||
}
|
||||
return nRet;
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ static bool WalletAppInit(int argc, char* argv[])
|
||||
SetupWalletToolArgs();
|
||||
std::string error_message;
|
||||
if (!gArgs.ParseParameters(argc, argv, error_message)) {
|
||||
fprintf(stderr, "Error parsing command line arguments: %s\n", error_message.c_str());
|
||||
tfm::format(std::cerr, "Error parsing command line arguments: %s\n", error_message.c_str());
|
||||
return false;
|
||||
}
|
||||
if (argc < 2 || HelpRequested(gArgs)) {
|
||||
@@ -49,7 +49,7 @@ static bool WalletAppInit(int argc, char* argv[])
|
||||
" bitcoin-wallet [options] <command>\n\n" +
|
||||
gArgs.GetHelpMessage();
|
||||
|
||||
fprintf(stdout, "%s", usage.c_str());
|
||||
tfm::format(std::cout, "%s", usage.c_str());
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ static bool WalletAppInit(int argc, char* argv[])
|
||||
LogInstance().m_print_to_console = gArgs.GetBoolArg("-printtoconsole", gArgs.GetBoolArg("-debug", false));
|
||||
|
||||
if (!fs::is_directory(GetDataDir(false))) {
|
||||
fprintf(stderr, "Error: Specified data directory \"%s\" does not exist.\n", gArgs.GetArg("-datadir", "").c_str());
|
||||
tfm::format(std::cerr, "Error: Specified data directory \"%s\" does not exist.\n", gArgs.GetArg("-datadir", "").c_str());
|
||||
return false;
|
||||
}
|
||||
// Check for -testnet or -regtest parameter (Params() calls are only valid after this clause)
|
||||
@@ -88,7 +88,7 @@ int main(int argc, char* argv[])
|
||||
for(int i = 1; i < argc; ++i) {
|
||||
if (!IsSwitchChar(argv[i][0])) {
|
||||
if (!method.empty()) {
|
||||
fprintf(stderr, "Error: two methods provided (%s and %s). Only one method should be provided.\n", method.c_str(), argv[i]);
|
||||
tfm::format(std::cerr, "Error: two methods provided (%s and %s). Only one method should be provided.\n", method.c_str(), argv[i]);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
method = argv[i];
|
||||
@@ -96,13 +96,13 @@ int main(int argc, char* argv[])
|
||||
}
|
||||
|
||||
if (method.empty()) {
|
||||
fprintf(stderr, "No method provided. Run `bitcoin-wallet -help` for valid methods.\n");
|
||||
tfm::format(std::cerr, "No method provided. Run `bitcoin-wallet -help` for valid methods.\n");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
// A name must be provided when creating a file
|
||||
if (method == "create" && !gArgs.IsArgSet("-wallet")) {
|
||||
fprintf(stderr, "Wallet name must be provided when creating a new wallet.\n");
|
||||
tfm::format(std::cerr, "Wallet name must be provided when creating a new wallet.\n");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@ static bool AppInit(int argc, char* argv[])
|
||||
SetupServerArgs();
|
||||
std::string error;
|
||||
if (!gArgs.ParseParameters(argc, argv, error)) {
|
||||
fprintf(stderr, "Error parsing command line arguments: %s\n", error.c_str());
|
||||
tfm::format(std::cerr, "Error parsing command line arguments: %s\n", error.c_str());
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -89,7 +89,7 @@ static bool AppInit(int argc, char* argv[])
|
||||
strUsage += "\n" + gArgs.GetHelpMessage();
|
||||
}
|
||||
|
||||
fprintf(stdout, "%s", strUsage.c_str());
|
||||
tfm::format(std::cout, "%s", strUsage.c_str());
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -97,25 +97,25 @@ static bool AppInit(int argc, char* argv[])
|
||||
{
|
||||
if (!fs::is_directory(GetDataDir(false)))
|
||||
{
|
||||
fprintf(stderr, "Error: Specified data directory \"%s\" does not exist.\n", gArgs.GetArg("-datadir", "").c_str());
|
||||
tfm::format(std::cerr, "Error: Specified data directory \"%s\" does not exist.\n", gArgs.GetArg("-datadir", "").c_str());
|
||||
return false;
|
||||
}
|
||||
if (!gArgs.ReadConfigFiles(error, true)) {
|
||||
fprintf(stderr, "Error reading configuration file: %s\n", error.c_str());
|
||||
tfm::format(std::cerr, "Error reading configuration file: %s\n", error.c_str());
|
||||
return false;
|
||||
}
|
||||
// Check for -testnet or -regtest parameter (Params() calls are only valid after this clause)
|
||||
try {
|
||||
SelectParams(gArgs.GetChainName());
|
||||
} catch (const std::exception& e) {
|
||||
fprintf(stderr, "Error: %s\n", e.what());
|
||||
tfm::format(std::cerr, "Error: %s\n", e.what());
|
||||
return false;
|
||||
}
|
||||
|
||||
// Error out when loose non-argument tokens are encountered on command line
|
||||
for (int i = 1; i < argc; i++) {
|
||||
if (!IsSwitchChar(argv[i][0])) {
|
||||
fprintf(stderr, "Error: Command line contains unexpected token '%s', see bitcoind -h for a list of options.\n", argv[i]);
|
||||
tfm::format(std::cerr, "Error: Command line contains unexpected token '%s', see bitcoind -h for a list of options.\n", argv[i]);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -147,18 +147,18 @@ static bool AppInit(int argc, char* argv[])
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||
#endif
|
||||
fprintf(stdout, "Bitcoin server starting\n");
|
||||
tfm::format(std::cout, "Bitcoin server starting\n");
|
||||
|
||||
// Daemonize
|
||||
if (daemon(1, 0)) { // don't chdir (1), do close FDs (0)
|
||||
fprintf(stderr, "Error: daemon() failed: %s\n", strerror(errno));
|
||||
tfm::format(std::cerr, "Error: daemon() failed: %s\n", strerror(errno));
|
||||
return false;
|
||||
}
|
||||
#if defined(MAC_OSX)
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
#else
|
||||
fprintf(stderr, "Error: -daemon is not supported on this operating system\n");
|
||||
tfm::format(std::cerr, "Error: -daemon is not supported on this operating system\n");
|
||||
return false;
|
||||
#endif // HAVE_DECL_DAEMON
|
||||
}
|
||||
|
||||
@@ -23,10 +23,32 @@ public:
|
||||
|
||||
void DummyWalletInit::AddWalletOptions() const
|
||||
{
|
||||
std::vector<std::string> opts = {"-addresstype", "-changetype", "-disablewallet", "-discardfee=<amt>", "-fallbackfee=<amt>",
|
||||
"-keypool=<n>", "-mintxfee=<amt>", "-paytxfee=<amt>", "-rescan", "-salvagewallet", "-spendzeroconfchange", "-txconfirmtarget=<n>",
|
||||
"-upgradewallet", "-wallet=<path>", "-walletbroadcast", "-walletdir=<dir>", "-walletnotify=<cmd>", "-walletrbf", "-zapwallettxes=<mode>",
|
||||
"-dblogsize=<n>", "-flushwallet", "-privdb", "-walletrejectlongchains"};
|
||||
std::vector<std::string> opts = {
|
||||
"-addresstype",
|
||||
"-avoidpartialspends",
|
||||
"-changetype",
|
||||
"-disablewallet",
|
||||
"-discardfee=<amt>",
|
||||
"-fallbackfee=<amt>",
|
||||
"-keypool=<n>",
|
||||
"-mintxfee=<amt>",
|
||||
"-paytxfee=<amt>",
|
||||
"-rescan",
|
||||
"-salvagewallet",
|
||||
"-spendzeroconfchange",
|
||||
"-txconfirmtarget=<n>",
|
||||
"-upgradewallet",
|
||||
"-wallet=<path>",
|
||||
"-walletbroadcast",
|
||||
"-walletdir=<dir>",
|
||||
"-walletnotify=<cmd>",
|
||||
"-walletrbf",
|
||||
"-zapwallettxes=<mode>",
|
||||
"-dblogsize=<n>",
|
||||
"-flushwallet",
|
||||
"-privdb",
|
||||
"-walletrejectlongchains",
|
||||
};
|
||||
gArgs.AddHiddenArgs(opts);
|
||||
}
|
||||
|
||||
|
||||
@@ -160,6 +160,7 @@ static std::string openmodeToStr(std::ios_base::openmode mode)
|
||||
void ifstream::open(const fs::path& p, std::ios_base::openmode mode)
|
||||
{
|
||||
close();
|
||||
mode |= std::ios_base::in;
|
||||
m_file = fsbridge::fopen(p, openmodeToStr(mode).c_str());
|
||||
if (m_file == nullptr) {
|
||||
return;
|
||||
@@ -183,6 +184,7 @@ void ifstream::close()
|
||||
void ofstream::open(const fs::path& p, std::ios_base::openmode mode)
|
||||
{
|
||||
close();
|
||||
mode |= std::ios_base::out;
|
||||
m_file = fsbridge::fopen(p, openmodeToStr(mode).c_str());
|
||||
if (m_file == nullptr) {
|
||||
return;
|
||||
|
||||
29
src/init.cpp
29
src/init.cpp
@@ -97,7 +97,6 @@ static const char* FEE_ESTIMATES_FILENAME="fee_estimates.dat";
|
||||
/**
|
||||
* The PID file facilities.
|
||||
*/
|
||||
#ifndef WIN32
|
||||
static const char* BITCOIN_PID_FILENAME = "bitcoind.pid";
|
||||
|
||||
static fs::path GetPidFile()
|
||||
@@ -107,16 +106,18 @@ static fs::path GetPidFile()
|
||||
|
||||
NODISCARD static bool CreatePidFile()
|
||||
{
|
||||
FILE* file = fsbridge::fopen(GetPidFile(), "w");
|
||||
fsbridge::ofstream file{GetPidFile()};
|
||||
if (file) {
|
||||
fprintf(file, "%d\n", getpid());
|
||||
fclose(file);
|
||||
#ifdef WIN32
|
||||
tfm::format(file, "%d\n", GetCurrentProcessId());
|
||||
#else
|
||||
tfm::format(file, "%d\n", getpid());
|
||||
#endif
|
||||
return true;
|
||||
} else {
|
||||
return InitError(strprintf(_("Unable to create the PID file '%s': %s"), GetPidFile().string(), std::strerror(errno)));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
@@ -286,15 +287,13 @@ void Shutdown(InitInterfaces& interfaces)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef WIN32
|
||||
try {
|
||||
if (!fs::remove(GetPidFile())) {
|
||||
LogPrintf("%s: Unable to remove PID file: File does not exist\n", __func__);
|
||||
}
|
||||
} catch (const fs::filesystem_error& e) {
|
||||
LogPrintf("%s: Unable to remove PID file: %s\n", __func__, e.what());
|
||||
LogPrintf("%s: Unable to remove PID file: %s\n", __func__, fsbridge::get_filesystem_error_message(e));
|
||||
}
|
||||
#endif
|
||||
interfaces.chain_clients.clear();
|
||||
UnregisterAllValidationInterfaces();
|
||||
GetMainSignals().UnregisterBackgroundSignalScheduler();
|
||||
@@ -376,7 +375,7 @@ void SetupServerArgs()
|
||||
gArgs.AddArg("-blocksdir=<dir>", "Specify blocks directory (default: <datadir>/blocks)", false, OptionsCategory::OPTIONS);
|
||||
gArgs.AddArg("-blocknotify=<cmd>", "Execute command when the best block changes (%s in cmd is replaced by block hash)", false, OptionsCategory::OPTIONS);
|
||||
gArgs.AddArg("-blockreconstructionextratxn=<n>", strprintf("Extra transactions to keep in memory for compact block reconstructions (default: %u)", DEFAULT_BLOCK_RECONSTRUCTION_EXTRA_TXN), false, OptionsCategory::OPTIONS);
|
||||
gArgs.AddArg("-blocksonly", strprintf("Whether to operate in a blocks only mode (default: %u)", DEFAULT_BLOCKSONLY), true, OptionsCategory::OPTIONS);
|
||||
gArgs.AddArg("-blocksonly", strprintf("Whether to reject transactions from network peers. Transactions from the wallet or RPC are not affected. (default: %u)", DEFAULT_BLOCKSONLY), false, OptionsCategory::OPTIONS);
|
||||
gArgs.AddArg("-conf=<file>", strprintf("Specify configuration file. Relative paths will be prefixed by datadir location. (default: %s)", BITCOIN_CONF_FILENAME), false, OptionsCategory::OPTIONS);
|
||||
gArgs.AddArg("-datadir=<dir>", "Specify data directory", false, OptionsCategory::OPTIONS);
|
||||
gArgs.AddArg("-dbbatchsize", strprintf("Maximum database write batch size in bytes (default: %u)", nDefaultDbBatchSize), true, OptionsCategory::OPTIONS);
|
||||
@@ -392,11 +391,7 @@ void SetupServerArgs()
|
||||
gArgs.AddArg("-par=<n>", strprintf("Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d)",
|
||||
-GetNumCores(), MAX_SCRIPTCHECK_THREADS, DEFAULT_SCRIPTCHECK_THREADS), false, OptionsCategory::OPTIONS);
|
||||
gArgs.AddArg("-persistmempool", strprintf("Whether to save the mempool on shutdown and load on restart (default: %u)", DEFAULT_PERSIST_MEMPOOL), false, OptionsCategory::OPTIONS);
|
||||
#ifndef WIN32
|
||||
gArgs.AddArg("-pid=<file>", strprintf("Specify pid file. Relative paths will be prefixed by a net-specific datadir location. (default: %s)", BITCOIN_PID_FILENAME), false, OptionsCategory::OPTIONS);
|
||||
#else
|
||||
hidden_args.emplace_back("-pid");
|
||||
#endif
|
||||
gArgs.AddArg("-prune=<n>", strprintf("Reduce storage requirements by enabling pruning (deleting) of old blocks. This allows the pruneblockchain RPC to be called to delete specific blocks, and enables automatic pruning of old blocks if a target size in MiB is provided. This mode is incompatible with -txindex and -rescan. "
|
||||
"Warning: Reverting this setting requires re-downloading the entire blockchain. "
|
||||
"(default: 0 = disable pruning blocks, 1 = allow manual pruning via RPC, >=%u = automatically prune block files to stay under the specified target size in MiB)", MIN_DISK_SPACE_FOR_BLOCK_FILES / 1024 / 1024), false, OptionsCategory::OPTIONS);
|
||||
@@ -450,7 +445,7 @@ void SetupServerArgs()
|
||||
#endif
|
||||
gArgs.AddArg("-whitebind=<addr>", "Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6", false, OptionsCategory::CONNECTION);
|
||||
gArgs.AddArg("-whitelist=<IP address or network>", "Whitelist peers connecting from the given IP address (e.g. 1.2.3.4) or CIDR notated network (e.g. 1.2.3.0/24). Can be specified multiple 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", false, OptionsCategory::CONNECTION);
|
||||
" Whitelisted peers cannot be DoS banned", false, OptionsCategory::CONNECTION);
|
||||
|
||||
g_wallet_init_interface.AddWalletOptions();
|
||||
|
||||
@@ -522,7 +517,7 @@ void SetupServerArgs()
|
||||
gArgs.AddArg("-mempoolreplacement", strprintf("Enable transaction replacement in the memory pool (default: %u)", DEFAULT_ENABLE_REPLACEMENT), false, OptionsCategory::NODE_RELAY);
|
||||
gArgs.AddArg("-minrelaytxfee=<amt>", strprintf("Fees (in %s/kB) smaller than this are considered zero fee for relaying, mining and transaction creation (default: %s)",
|
||||
CURRENCY_UNIT, FormatMoney(DEFAULT_MIN_RELAY_TX_FEE)), false, OptionsCategory::NODE_RELAY);
|
||||
gArgs.AddArg("-whitelistforcerelay", strprintf("Force relay of transactions from whitelisted peers even if they violate local relay policy (default: %d)", DEFAULT_WHITELISTFORCERELAY), false, OptionsCategory::NODE_RELAY);
|
||||
gArgs.AddArg("-whitelistforcerelay", strprintf("Force relay of transactions from whitelisted peers even if the transactions were already in the mempool or violate local relay policy (default: %d)", DEFAULT_WHITELISTFORCERELAY), false, OptionsCategory::NODE_RELAY);
|
||||
gArgs.AddArg("-whitelistrelay", strprintf("Accept relayed transactions received from whitelisted peers even when not relaying transactions (default: %d)", DEFAULT_WHITELISTRELAY), false, OptionsCategory::NODE_RELAY);
|
||||
|
||||
|
||||
@@ -1228,12 +1223,10 @@ bool AppInitMain(InitInterfaces& interfaces)
|
||||
{
|
||||
const CChainParams& chainparams = Params();
|
||||
// ********************************************************* Step 4a: application initialization
|
||||
#ifndef WIN32
|
||||
if (!CreatePidFile()) {
|
||||
// Detailed error printed inside CreatePidFile().
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
if (LogInstance().m_print_to_file) {
|
||||
if (gArgs.GetBoolArg("-shrinkdebugfile", LogInstance().DefaultShrinkDebugFile())) {
|
||||
// Do this first since it both loads a bunch of debug.log into memory,
|
||||
@@ -1417,7 +1410,7 @@ bool AppInitMain(InitInterfaces& interfaces)
|
||||
// see Step 2: parameter interactions for more information about these
|
||||
fListen = gArgs.GetBoolArg("-listen", DEFAULT_LISTEN);
|
||||
fDiscover = gArgs.GetBoolArg("-discover", true);
|
||||
fRelayTxes = !gArgs.GetBoolArg("-blocksonly", DEFAULT_BLOCKSONLY);
|
||||
g_relay_txes = !gArgs.GetBoolArg("-blocksonly", DEFAULT_BLOCKSONLY);
|
||||
|
||||
for (const std::string& strAddr : gArgs.GetArgs("-externalip")) {
|
||||
CService addrLocal;
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include <chainparams.h>
|
||||
#include <primitives/block.h>
|
||||
#include <sync.h>
|
||||
#include <txmempool.h>
|
||||
#include <uint256.h>
|
||||
#include <util/system.h>
|
||||
#include <validation.h>
|
||||
@@ -177,6 +178,13 @@ public:
|
||||
LOCK(cs_main);
|
||||
return GuessVerificationProgress(Params().TxData(), LookupBlockIndex(block_hash));
|
||||
}
|
||||
void requestMempoolTransactions(std::function<void(const CTransactionRef&)> fn) override
|
||||
{
|
||||
LOCK2(::cs_main, ::mempool.cs);
|
||||
for (const CTxMemPoolEntry& entry : ::mempool.mapTx) {
|
||||
fn(entry.GetSharedTx());
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
||||
@@ -16,6 +16,9 @@ class CBlock;
|
||||
class CScheduler;
|
||||
class uint256;
|
||||
struct CBlockLocator;
|
||||
class CTransaction;
|
||||
|
||||
using CTransactionRef = std::shared_ptr<const CTransaction>;
|
||||
|
||||
namespace interfaces {
|
||||
|
||||
@@ -127,6 +130,16 @@ public:
|
||||
//! Estimate fraction of total transactions verified if blocks up to
|
||||
//! the specified block hash are verified.
|
||||
virtual double guessVerificationProgress(const uint256& block_hash) = 0;
|
||||
|
||||
//! Synchronously send TransactionAddedToMempool notifications about all
|
||||
//! current mempool transactions to the specified handler and return after
|
||||
//! the last one is sent. These notifications aren't coordinated with async
|
||||
//! notifications sent by handleNotifications, so out of date async
|
||||
//! notifications from handleNotifications can arrive during and after
|
||||
//! synchronous notifications from requestMempoolTransactions. Clients need
|
||||
//! to be prepared to handle this by ignoring notifications about unknown
|
||||
//! removed transactions and already added new transactions.
|
||||
virtual void requestMempoolTransactions(std::function<void(const CTransactionRef&)> fn) = 0;
|
||||
};
|
||||
|
||||
//! Interface to let node manage chain clients (wallets, or maybe tools for
|
||||
|
||||
48
src/net.cpp
48
src/net.cpp
@@ -79,12 +79,14 @@ static const uint64_t RANDOMIZER_ID_LOCALHOSTNONCE = 0xd93e69e2bbfa5735ULL; // S
|
||||
//
|
||||
bool fDiscover = true;
|
||||
bool fListen = true;
|
||||
bool fRelayTxes = true;
|
||||
bool g_relay_txes = !DEFAULT_BLOCKSONLY;
|
||||
CCriticalSection cs_mapLocalHost;
|
||||
std::map<CNetAddr, LocalServiceInfo> mapLocalHost GUARDED_BY(cs_mapLocalHost);
|
||||
static bool vfLimited[NET_MAX] GUARDED_BY(cs_mapLocalHost) = {};
|
||||
std::string strSubVersion;
|
||||
|
||||
limitedmap<uint256, int64_t> mapAlreadyAskedFor(MAX_INV_SZ);
|
||||
|
||||
void CConnman::AddOneShot(const std::string& strDest)
|
||||
{
|
||||
LOCK(cs_vOneShots);
|
||||
@@ -1765,9 +1767,15 @@ void CConnman::ThreadOpenConnections(const std::vector<std::string> connect)
|
||||
addr = addrman.Select(fFeeler);
|
||||
}
|
||||
|
||||
// if we selected an invalid address, restart
|
||||
if (!addr.IsValid() || setConnected.count(addr.GetGroup()) || IsLocal(addr))
|
||||
// Require outbound connections, other than feelers, to be to distinct network groups
|
||||
if (!fFeeler && setConnected.count(addr.GetGroup())) {
|
||||
break;
|
||||
}
|
||||
|
||||
// if we selected an invalid or local address, restart
|
||||
if (!addr.IsValid() || IsLocal(addr)) {
|
||||
break;
|
||||
}
|
||||
|
||||
// If we didn't find an appropriate destination after trying 100 addresses fetched from addrman,
|
||||
// stop this loop, and let the outer loop run again (which sleeps, adds seed nodes, recalculates
|
||||
@@ -2642,6 +2650,40 @@ CNode::~CNode()
|
||||
CloseSocket(hSocket);
|
||||
}
|
||||
|
||||
void CNode::AskFor(const CInv& inv)
|
||||
{
|
||||
if (mapAskFor.size() > MAPASKFOR_MAX_SZ || setAskFor.size() > SETASKFOR_MAX_SZ)
|
||||
return;
|
||||
// a peer may not have multiple non-responded queue positions for a single inv item
|
||||
if (!setAskFor.insert(inv.hash).second)
|
||||
return;
|
||||
|
||||
// We're using mapAskFor as a priority queue,
|
||||
// the key is the earliest time the request can be sent
|
||||
int64_t nRequestTime;
|
||||
limitedmap<uint256, int64_t>::const_iterator it = mapAlreadyAskedFor.find(inv.hash);
|
||||
if (it != mapAlreadyAskedFor.end())
|
||||
nRequestTime = it->second;
|
||||
else
|
||||
nRequestTime = 0;
|
||||
LogPrint(BCLog::NET, "askfor %s %d (%s) peer=%d\n", inv.ToString(), nRequestTime, FormatISO8601Time(nRequestTime/1000000), id);
|
||||
|
||||
// Make sure not to reuse time indexes to keep things in the same order
|
||||
int64_t nNow = GetTimeMicros() - 1000000;
|
||||
static int64_t nLastTime;
|
||||
++nLastTime;
|
||||
nNow = std::max(nNow, nLastTime);
|
||||
nLastTime = nNow;
|
||||
|
||||
// Each retry is 2 minutes after the last
|
||||
nRequestTime = std::max(nRequestTime + 2 * 60 * 1000000, nNow);
|
||||
if (it != mapAlreadyAskedFor.end())
|
||||
mapAlreadyAskedFor.update(it, nRequestTime);
|
||||
else
|
||||
mapAlreadyAskedFor.insert(std::make_pair(inv.hash, nRequestTime));
|
||||
mapAskFor.insert(std::make_pair(nRequestTime, inv));
|
||||
}
|
||||
|
||||
bool CConnman::NodeFullyConnected(const CNode* pnode)
|
||||
{
|
||||
return pnode && pnode->fSuccessfullyConnected && !pnode->fDisconnect;
|
||||
|
||||
14
src/net.h
14
src/net.h
@@ -67,6 +67,10 @@ static const bool DEFAULT_UPNP = USE_UPNP;
|
||||
#else
|
||||
static const bool DEFAULT_UPNP = false;
|
||||
#endif
|
||||
/** The maximum number of entries in mapAskFor */
|
||||
static const size_t MAPASKFOR_MAX_SZ = MAX_INV_SZ;
|
||||
/** The maximum number of entries in setAskFor (larger due to getdata latency)*/
|
||||
static const size_t SETASKFOR_MAX_SZ = 2 * MAX_INV_SZ;
|
||||
/** The maximum number of peer connections to maintain. */
|
||||
static const unsigned int DEFAULT_MAX_PEER_CONNECTIONS = 125;
|
||||
/** The default for -maxuploadtarget. 0 = Unlimited */
|
||||
@@ -519,7 +523,9 @@ CAddress GetLocalAddress(const CNetAddr *paddrPeer, ServiceFlags nLocalServices)
|
||||
|
||||
extern bool fDiscover;
|
||||
extern bool fListen;
|
||||
extern bool fRelayTxes;
|
||||
extern bool g_relay_txes;
|
||||
|
||||
extern limitedmap<uint256, int64_t> mapAlreadyAskedFor;
|
||||
|
||||
/** Subversion as sent to the P2P network in `version` messages */
|
||||
extern std::string strSubVersion;
|
||||
@@ -709,6 +715,8 @@ public:
|
||||
// and in the order requested.
|
||||
std::vector<uint256> vInventoryBlockToSend GUARDED_BY(cs_inventory);
|
||||
CCriticalSection cs_inventory;
|
||||
std::set<uint256> setAskFor;
|
||||
std::multimap<int64_t, CInv> mapAskFor;
|
||||
int64_t nNextInvSend{0};
|
||||
// Used for headers announcements - unfiltered blocks to relay
|
||||
std::vector<uint256> vBlockHashesToAnnounce GUARDED_BY(cs_inventory);
|
||||
@@ -739,6 +747,8 @@ public:
|
||||
CAmount lastSentFeeFilter{0};
|
||||
int64_t nextSendTimeFeeFilter{0};
|
||||
|
||||
std::set<uint256> orphan_work_set;
|
||||
|
||||
CNode(NodeId id, ServiceFlags nLocalServicesIn, int nMyStartingHeightIn, SOCKET hSocketIn, const CAddress &addrIn, uint64_t nKeyedNetGroupIn, uint64_t nLocalHostNonceIn, const CAddress &addrBindIn, const std::string &addrNameIn = "", bool fInboundIn = false);
|
||||
~CNode();
|
||||
CNode(const CNode&) = delete;
|
||||
@@ -855,6 +865,8 @@ public:
|
||||
vBlockHashesToAnnounce.push_back(hash);
|
||||
}
|
||||
|
||||
void AskFor(const CInv& inv);
|
||||
|
||||
void CloseSocketDisconnect();
|
||||
|
||||
void copyStats(CNodeStats &stats);
|
||||
|
||||
@@ -64,21 +64,6 @@ static constexpr int STALE_RELAY_AGE_LIMIT = 30 * 24 * 60 * 60;
|
||||
/// Age after which a block is considered historical for purposes of rate
|
||||
/// limiting block relay. Set to one week, denominated in seconds.
|
||||
static constexpr int HISTORICAL_BLOCK_AGE = 7 * 24 * 60 * 60;
|
||||
/** Maximum number of in-flight transactions from a peer */
|
||||
static constexpr int32_t MAX_PEER_TX_IN_FLIGHT = 100;
|
||||
/** Maximum number of announced transactions from a peer */
|
||||
static constexpr int32_t MAX_PEER_TX_ANNOUNCEMENTS = 2 * MAX_INV_SZ;
|
||||
/** How many microseconds to delay requesting transactions from inbound peers */
|
||||
static constexpr int64_t INBOUND_PEER_TX_DELAY = 2 * 1000000;
|
||||
/** How long to wait (in microseconds) before downloading a transaction from an additional peer */
|
||||
static constexpr int64_t GETDATA_TX_INTERVAL = 60 * 1000000;
|
||||
/** Maximum delay (in microseconds) for transaction requests to avoid biasing some peers over others. */
|
||||
static constexpr int64_t MAX_GETDATA_RANDOM_DELAY = 2 * 1000000;
|
||||
static_assert(INBOUND_PEER_TX_DELAY >= MAX_GETDATA_RANDOM_DELAY,
|
||||
"To preserve security, MAX_GETDATA_RANDOM_DELAY should not exceed INBOUND_PEER_DELAY");
|
||||
/** Limit to avoid sending big packets. Not used in processing incoming GETDATA for compatibility */
|
||||
static const unsigned int MAX_GETDATA_SZ = 1000;
|
||||
|
||||
|
||||
struct COrphanTx {
|
||||
// When modifying, adapt the copy of this definition in tests/DoS_tests.
|
||||
@@ -292,66 +277,6 @@ struct CNodeState {
|
||||
//! Time of last new block announcement
|
||||
int64_t m_last_block_announcement;
|
||||
|
||||
/*
|
||||
* State associated with transaction download.
|
||||
*
|
||||
* Tx download algorithm:
|
||||
*
|
||||
* When inv comes in, queue up (process_time, txid) inside the peer's
|
||||
* CNodeState (m_tx_process_time) as long as m_tx_announced for the peer
|
||||
* isn't too big (MAX_PEER_TX_ANNOUNCEMENTS).
|
||||
*
|
||||
* The process_time for a transaction is set to nNow for outbound peers,
|
||||
* nNow + 2 seconds for inbound peers. This is the time at which we'll
|
||||
* consider trying to request the transaction from the peer in
|
||||
* SendMessages(). The delay for inbound peers is to allow outbound peers
|
||||
* a chance to announce before we request from inbound peers, to prevent
|
||||
* an adversary from using inbound connections to blind us to a
|
||||
* transaction (InvBlock).
|
||||
*
|
||||
* When we call SendMessages() for a given peer,
|
||||
* we will loop over the transactions in m_tx_process_time, looking
|
||||
* at the transactions whose process_time <= nNow. We'll request each
|
||||
* such transaction that we don't have already and that hasn't been
|
||||
* requested from another peer recently, up until we hit the
|
||||
* MAX_PEER_TX_IN_FLIGHT limit for the peer. Then we'll update
|
||||
* g_already_asked_for for each requested txid, storing the time of the
|
||||
* GETDATA request. We use g_already_asked_for to coordinate transaction
|
||||
* requests amongst our peers.
|
||||
*
|
||||
* For transactions that we still need but we have already recently
|
||||
* requested from some other peer, we'll reinsert (process_time, txid)
|
||||
* back into the peer's m_tx_process_time at the point in the future at
|
||||
* which the most recent GETDATA request would time out (ie
|
||||
* GETDATA_TX_INTERVAL + the request time stored in g_already_asked_for).
|
||||
* We add an additional delay for inbound peers, again to prefer
|
||||
* attempting download from outbound peers first.
|
||||
* We also add an extra small random delay up to 2 seconds
|
||||
* to avoid biasing some peers over others. (e.g., due to fixed ordering
|
||||
* of peer processing in ThreadMessageHandler).
|
||||
*
|
||||
* When we receive a transaction from a peer, we remove the txid from the
|
||||
* peer's m_tx_in_flight set and from their recently announced set
|
||||
* (m_tx_announced). We also clear g_already_asked_for for that entry, so
|
||||
* that if somehow the transaction is not accepted but also not added to
|
||||
* the reject filter, then we will eventually redownload from other
|
||||
* peers.
|
||||
*/
|
||||
struct TxDownloadState {
|
||||
/* Track when to attempt download of announced transactions (process
|
||||
* time in micros -> txid)
|
||||
*/
|
||||
std::multimap<int64_t, uint256> m_tx_process_time;
|
||||
|
||||
//! Store all the transactions a peer has recently announced
|
||||
std::set<uint256> m_tx_announced;
|
||||
|
||||
//! Store transactions which were requested by us
|
||||
std::set<uint256> m_tx_in_flight;
|
||||
};
|
||||
|
||||
TxDownloadState m_tx_download;
|
||||
|
||||
CNodeState(CAddress addrIn, std::string addrNameIn) : address(addrIn), name(addrNameIn) {
|
||||
fCurrentlyConnected = false;
|
||||
nMisbehavior = 0;
|
||||
@@ -379,9 +304,6 @@ struct CNodeState {
|
||||
}
|
||||
};
|
||||
|
||||
// Keeps track of the time (in microseconds) when transactions were requested last time
|
||||
limitedmap<uint256, int64_t> g_already_asked_for GUARDED_BY(cs_main)(MAX_INV_SZ);
|
||||
|
||||
/** Map maintaining per-node state. */
|
||||
static std::map<NodeId, CNodeState> mapNodeState GUARDED_BY(cs_main);
|
||||
|
||||
@@ -414,7 +336,7 @@ static void PushNodeVersion(CNode *pnode, CConnman* connman, int64_t nTime)
|
||||
CAddress addrMe = CAddress(CService(), nLocalNodeServices);
|
||||
|
||||
connman->PushMessage(pnode, CNetMsgMaker(INIT_PROTO_VERSION).Make(NetMsgType::VERSION, PROTOCOL_VERSION, (uint64_t)nLocalNodeServices, nTime, addrYou, addrMe,
|
||||
nonce, strSubVersion, nNodeStartingHeight, ::fRelayTxes));
|
||||
nonce, strSubVersion, nNodeStartingHeight, ::g_relay_txes));
|
||||
|
||||
if (fLogIPs) {
|
||||
LogPrint(BCLog::NET, "send version message: version %d, blocks=%d, us=%s, them=%s, peer=%d\n", PROTOCOL_VERSION, nNodeStartingHeight, addrMe.ToString(), addrYou.ToString(), nodeid);
|
||||
@@ -672,58 +594,6 @@ static void FindNextBlocksToDownload(NodeId nodeid, unsigned int count, std::vec
|
||||
}
|
||||
}
|
||||
|
||||
void EraseTxRequest(const uint256& txid) EXCLUSIVE_LOCKS_REQUIRED(cs_main)
|
||||
{
|
||||
g_already_asked_for.erase(txid);
|
||||
}
|
||||
|
||||
int64_t GetTxRequestTime(const uint256& txid) EXCLUSIVE_LOCKS_REQUIRED(cs_main)
|
||||
{
|
||||
auto it = g_already_asked_for.find(txid);
|
||||
if (it != g_already_asked_for.end()) {
|
||||
return it->second;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void UpdateTxRequestTime(const uint256& txid, int64_t request_time) EXCLUSIVE_LOCKS_REQUIRED(cs_main)
|
||||
{
|
||||
auto it = g_already_asked_for.find(txid);
|
||||
if (it == g_already_asked_for.end()) {
|
||||
g_already_asked_for.insert(std::make_pair(txid, request_time));
|
||||
} else {
|
||||
g_already_asked_for.update(it, request_time);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void RequestTx(CNodeState* state, const uint256& txid, int64_t nNow) EXCLUSIVE_LOCKS_REQUIRED(cs_main)
|
||||
{
|
||||
CNodeState::TxDownloadState& peer_download_state = state->m_tx_download;
|
||||
if (peer_download_state.m_tx_announced.size() >= MAX_PEER_TX_ANNOUNCEMENTS || peer_download_state.m_tx_announced.count(txid)) {
|
||||
// Too many queued announcements from this peer, or we already have
|
||||
// this announcement
|
||||
return;
|
||||
}
|
||||
peer_download_state.m_tx_announced.insert(txid);
|
||||
|
||||
int64_t process_time;
|
||||
int64_t last_request_time = GetTxRequestTime(txid);
|
||||
// First time requesting this tx
|
||||
if (last_request_time == 0) {
|
||||
process_time = nNow;
|
||||
} else {
|
||||
// Randomize the delay to avoid biasing some peers over others (such as due to
|
||||
// fixed ordering of peer processing in ThreadMessageHandler)
|
||||
process_time = last_request_time + GETDATA_TX_INTERVAL + GetRand(MAX_GETDATA_RANDOM_DELAY);
|
||||
}
|
||||
|
||||
// We delay processing announcements from non-preferred (eg inbound) peers
|
||||
if (!state->fPreferredDownload) process_time += INBOUND_PEER_TX_DELAY;
|
||||
|
||||
peer_download_state.m_tx_process_time.emplace(process_time, txid);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
// This function is used for testing the stale tip eviction logic, see
|
||||
@@ -1713,6 +1583,67 @@ bool static ProcessHeadersMessage(CNode *pfrom, CConnman *connman, const std::ve
|
||||
return true;
|
||||
}
|
||||
|
||||
void static ProcessOrphanTx(CConnman* connman, std::set<uint256>& orphan_work_set, std::list<CTransactionRef>& removed_txn) EXCLUSIVE_LOCKS_REQUIRED(cs_main, g_cs_orphans)
|
||||
{
|
||||
AssertLockHeld(cs_main);
|
||||
AssertLockHeld(g_cs_orphans);
|
||||
std::set<NodeId> setMisbehaving;
|
||||
bool done = false;
|
||||
while (!done && !orphan_work_set.empty()) {
|
||||
const uint256 orphanHash = *orphan_work_set.begin();
|
||||
orphan_work_set.erase(orphan_work_set.begin());
|
||||
|
||||
auto orphan_it = mapOrphanTransactions.find(orphanHash);
|
||||
if (orphan_it == mapOrphanTransactions.end()) continue;
|
||||
|
||||
const CTransactionRef porphanTx = orphan_it->second.tx;
|
||||
const CTransaction& orphanTx = *porphanTx;
|
||||
NodeId fromPeer = orphan_it->second.fromPeer;
|
||||
bool fMissingInputs2 = false;
|
||||
// Use a dummy CValidationState so someone can't setup nodes to counter-DoS based on orphan
|
||||
// resolution (that is, feeding people an invalid transaction based on LegitTxX in order to get
|
||||
// anyone relaying LegitTxX banned)
|
||||
CValidationState stateDummy;
|
||||
|
||||
if (setMisbehaving.count(fromPeer)) continue;
|
||||
if (AcceptToMemoryPool(mempool, stateDummy, porphanTx, &fMissingInputs2, &removed_txn, false /* bypass_limits */, 0 /* nAbsurdFee */)) {
|
||||
LogPrint(BCLog::MEMPOOL, " accepted orphan tx %s\n", orphanHash.ToString());
|
||||
RelayTransaction(orphanTx, connman);
|
||||
for (unsigned int i = 0; i < orphanTx.vout.size(); i++) {
|
||||
auto it_by_prev = mapOrphanTransactionsByPrev.find(COutPoint(orphanHash, i));
|
||||
if (it_by_prev != mapOrphanTransactionsByPrev.end()) {
|
||||
for (const auto& elem : it_by_prev->second) {
|
||||
orphan_work_set.insert(elem->first);
|
||||
}
|
||||
}
|
||||
}
|
||||
EraseOrphanTx(orphanHash);
|
||||
done = true;
|
||||
} else if (!fMissingInputs2) {
|
||||
int nDos = 0;
|
||||
if (stateDummy.IsInvalid(nDos) && nDos > 0) {
|
||||
// Punish peer that gave us an invalid orphan tx
|
||||
Misbehaving(fromPeer, nDos);
|
||||
setMisbehaving.insert(fromPeer);
|
||||
LogPrint(BCLog::MEMPOOL, " invalid orphan tx %s\n", orphanHash.ToString());
|
||||
}
|
||||
// Has inputs but not accepted to mempool
|
||||
// Probably non-standard or insufficient fee
|
||||
LogPrint(BCLog::MEMPOOL, " removed orphan tx %s\n", orphanHash.ToString());
|
||||
if (!orphanTx.HasWitness() && !stateDummy.CorruptionPossible()) {
|
||||
// Do not use rejection cache for witness transactions or
|
||||
// witness-stripped transactions, as they can have been malleated.
|
||||
// See https://github.com/bitcoin/bitcoin/issues/8279 for details.
|
||||
assert(recentRejects);
|
||||
recentRejects->insert(orphanHash);
|
||||
}
|
||||
EraseOrphanTx(orphanHash);
|
||||
done = true;
|
||||
}
|
||||
mempool.check(pcoinsTip.get());
|
||||
}
|
||||
}
|
||||
|
||||
bool static ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStream& vRecv, int64_t nTimeReceived, const CChainParams& chainparams, CConnman* connman, const std::atomic<bool>& interruptMsgProc, bool enable_bip61)
|
||||
{
|
||||
LogPrint(BCLog::NET, "received: %s (%u bytes) peer=%d\n", SanitizeString(strCommand), vRecv.size(), pfrom->GetId());
|
||||
@@ -2022,6 +1953,7 @@ bool static ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStr
|
||||
if (addr.nTime <= 100000000 || addr.nTime > nNow + 10 * 60)
|
||||
addr.nTime = nNow - 5 * 24 * 60 * 60;
|
||||
pfrom->AddAddressKnown(addr);
|
||||
if (g_banman->IsBanned(addr)) continue; // Do not process banned addresses beyond remembering we received them
|
||||
bool fReachable = IsReachable(addr);
|
||||
if (addr.nTime > nSince && !pfrom->fGetAddr && vAddr.size() <= 10 && addr.IsRoutable())
|
||||
{
|
||||
@@ -2079,7 +2011,7 @@ bool static ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStr
|
||||
return false;
|
||||
}
|
||||
|
||||
bool fBlocksOnly = !fRelayTxes;
|
||||
bool fBlocksOnly = !g_relay_txes;
|
||||
|
||||
// Allow whitelisted peers to send data other than blocks in blocks only mode if whitelistrelay is true
|
||||
if (pfrom->fWhitelisted && gArgs.GetBoolArg("-whitelistrelay", DEFAULT_WHITELISTRELAY))
|
||||
@@ -2088,7 +2020,6 @@ bool static ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStr
|
||||
LOCK(cs_main);
|
||||
|
||||
uint32_t nFetchFlags = GetFetchFlags(pfrom);
|
||||
int64_t nNow = GetTimeMicros();
|
||||
|
||||
for (CInv &inv : vInv)
|
||||
{
|
||||
@@ -2120,7 +2051,7 @@ bool static ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStr
|
||||
if (fBlocksOnly) {
|
||||
LogPrint(BCLog::NET, "transaction (%s) inv sent in violation of protocol peer=%d\n", inv.hash.ToString(), pfrom->GetId());
|
||||
} else if (!fAlreadyHave && !fImporting && !fReindex && !IsInitialBlockDownload()) {
|
||||
RequestTx(State(pfrom->GetId()), inv.hash, nNow);
|
||||
pfrom->AskFor(inv);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2335,14 +2266,12 @@ bool static ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStr
|
||||
if (strCommand == NetMsgType::TX) {
|
||||
// Stop processing the transaction early if
|
||||
// We are in blocks only mode and peer is either not whitelisted or whitelistrelay is off
|
||||
if (!fRelayTxes && (!pfrom->fWhitelisted || !gArgs.GetBoolArg("-whitelistrelay", DEFAULT_WHITELISTRELAY)))
|
||||
if (!g_relay_txes && (!pfrom->fWhitelisted || !gArgs.GetBoolArg("-whitelistrelay", DEFAULT_WHITELISTRELAY)))
|
||||
{
|
||||
LogPrint(BCLog::NET, "transaction sent in violation of protocol peer=%d\n", pfrom->GetId());
|
||||
return true;
|
||||
}
|
||||
|
||||
std::deque<COutPoint> vWorkQueue;
|
||||
std::vector<uint256> vEraseQueue;
|
||||
CTransactionRef ptx;
|
||||
vRecv >> ptx;
|
||||
const CTransaction& tx = *ptx;
|
||||
@@ -2355,10 +2284,8 @@ bool static ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStr
|
||||
bool fMissingInputs = false;
|
||||
CValidationState state;
|
||||
|
||||
CNodeState* nodestate = State(pfrom->GetId());
|
||||
nodestate->m_tx_download.m_tx_announced.erase(inv.hash);
|
||||
nodestate->m_tx_download.m_tx_in_flight.erase(inv.hash);
|
||||
EraseTxRequest(inv.hash);
|
||||
pfrom->setAskFor.erase(inv.hash);
|
||||
mapAlreadyAskedFor.erase(inv.hash);
|
||||
|
||||
std::list<CTransactionRef> lRemovedTxn;
|
||||
|
||||
@@ -2367,7 +2294,12 @@ bool static ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStr
|
||||
mempool.check(pcoinsTip.get());
|
||||
RelayTransaction(tx, connman);
|
||||
for (unsigned int i = 0; i < tx.vout.size(); i++) {
|
||||
vWorkQueue.emplace_back(inv.hash, i);
|
||||
auto it_by_prev = mapOrphanTransactionsByPrev.find(COutPoint(inv.hash, i));
|
||||
if (it_by_prev != mapOrphanTransactionsByPrev.end()) {
|
||||
for (const auto& elem : it_by_prev->second) {
|
||||
pfrom->orphan_work_set.insert(elem->first);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pfrom->nLastTXTime = GetTime();
|
||||
@@ -2378,65 +2310,7 @@ bool static ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStr
|
||||
mempool.size(), mempool.DynamicMemoryUsage() / 1000);
|
||||
|
||||
// Recursively process any orphan transactions that depended on this one
|
||||
std::set<NodeId> setMisbehaving;
|
||||
while (!vWorkQueue.empty()) {
|
||||
auto itByPrev = mapOrphanTransactionsByPrev.find(vWorkQueue.front());
|
||||
vWorkQueue.pop_front();
|
||||
if (itByPrev == mapOrphanTransactionsByPrev.end())
|
||||
continue;
|
||||
for (auto mi = itByPrev->second.begin();
|
||||
mi != itByPrev->second.end();
|
||||
++mi)
|
||||
{
|
||||
const CTransactionRef& porphanTx = (*mi)->second.tx;
|
||||
const CTransaction& orphanTx = *porphanTx;
|
||||
const uint256& orphanHash = orphanTx.GetHash();
|
||||
NodeId fromPeer = (*mi)->second.fromPeer;
|
||||
bool fMissingInputs2 = false;
|
||||
// Use a dummy CValidationState so someone can't setup nodes to counter-DoS based on orphan
|
||||
// resolution (that is, feeding people an invalid transaction based on LegitTxX in order to get
|
||||
// anyone relaying LegitTxX banned)
|
||||
CValidationState stateDummy;
|
||||
|
||||
|
||||
if (setMisbehaving.count(fromPeer))
|
||||
continue;
|
||||
if (AcceptToMemoryPool(mempool, stateDummy, porphanTx, &fMissingInputs2, &lRemovedTxn, false /* bypass_limits */, 0 /* nAbsurdFee */)) {
|
||||
LogPrint(BCLog::MEMPOOL, " accepted orphan tx %s\n", orphanHash.ToString());
|
||||
RelayTransaction(orphanTx, connman);
|
||||
for (unsigned int i = 0; i < orphanTx.vout.size(); i++) {
|
||||
vWorkQueue.emplace_back(orphanHash, i);
|
||||
}
|
||||
vEraseQueue.push_back(orphanHash);
|
||||
}
|
||||
else if (!fMissingInputs2)
|
||||
{
|
||||
int nDos = 0;
|
||||
if (stateDummy.IsInvalid(nDos) && nDos > 0)
|
||||
{
|
||||
// Punish peer that gave us an invalid orphan tx
|
||||
Misbehaving(fromPeer, nDos);
|
||||
setMisbehaving.insert(fromPeer);
|
||||
LogPrint(BCLog::MEMPOOL, " invalid orphan tx %s\n", orphanHash.ToString());
|
||||
}
|
||||
// Has inputs but not accepted to mempool
|
||||
// Probably non-standard or insufficient fee
|
||||
LogPrint(BCLog::MEMPOOL, " removed orphan tx %s\n", orphanHash.ToString());
|
||||
vEraseQueue.push_back(orphanHash);
|
||||
if (!orphanTx.HasWitness() && !stateDummy.CorruptionPossible()) {
|
||||
// Do not use rejection cache for witness transactions or
|
||||
// witness-stripped transactions, as they can have been malleated.
|
||||
// See https://github.com/bitcoin/bitcoin/issues/8279 for details.
|
||||
assert(recentRejects);
|
||||
recentRejects->insert(orphanHash);
|
||||
}
|
||||
}
|
||||
mempool.check(pcoinsTip.get());
|
||||
}
|
||||
}
|
||||
|
||||
for (const uint256& hash : vEraseQueue)
|
||||
EraseOrphanTx(hash);
|
||||
ProcessOrphanTx(connman, pfrom->orphan_work_set, lRemovedTxn);
|
||||
}
|
||||
else if (fMissingInputs)
|
||||
{
|
||||
@@ -2449,12 +2323,10 @@ bool static ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStr
|
||||
}
|
||||
if (!fRejectedParents) {
|
||||
uint32_t nFetchFlags = GetFetchFlags(pfrom);
|
||||
int64_t nNow = GetTimeMicros();
|
||||
|
||||
for (const CTxIn& txin : tx.vin) {
|
||||
CInv _inv(MSG_TX | nFetchFlags, txin.prevout.hash);
|
||||
pfrom->AddInventoryKnown(_inv);
|
||||
if (!AlreadyHave(_inv)) RequestTx(State(pfrom->GetId()), _inv.hash, nNow);
|
||||
if (!AlreadyHave(_inv)) pfrom->AskFor(_inv);
|
||||
}
|
||||
AddOrphanTx(ptx, pfrom->GetId());
|
||||
|
||||
@@ -2912,8 +2784,11 @@ bool static ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStr
|
||||
pfrom->vAddrToSend.clear();
|
||||
std::vector<CAddress> vAddr = connman->GetAddresses();
|
||||
FastRandomContext insecure_rand;
|
||||
for (const CAddress &addr : vAddr)
|
||||
pfrom->PushAddress(addr, insecure_rand);
|
||||
for (const CAddress &addr : vAddr) {
|
||||
if (!g_banman->IsBanned(addr)) {
|
||||
pfrom->PushAddress(addr, insecure_rand);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -3141,11 +3016,21 @@ bool PeerLogicValidation::ProcessMessages(CNode* pfrom, std::atomic<bool>& inter
|
||||
if (!pfrom->vRecvGetData.empty())
|
||||
ProcessGetData(pfrom, chainparams, connman, interruptMsgProc);
|
||||
|
||||
if (!pfrom->orphan_work_set.empty()) {
|
||||
std::list<CTransactionRef> removed_txn;
|
||||
LOCK2(cs_main, g_cs_orphans);
|
||||
ProcessOrphanTx(connman, pfrom->orphan_work_set, removed_txn);
|
||||
for (const CTransactionRef& removedTx : removed_txn) {
|
||||
AddToCompactExtraTransactions(removedTx);
|
||||
}
|
||||
}
|
||||
|
||||
if (pfrom->fDisconnect)
|
||||
return false;
|
||||
|
||||
// this maintains the order of responses
|
||||
if (!pfrom->vRecvGetData.empty()) return true;
|
||||
if (!pfrom->orphan_work_set.empty()) return true;
|
||||
|
||||
// Don't bother if send buffer is too full to respond anyway
|
||||
if (pfrom->fPauseSend)
|
||||
@@ -3211,23 +3096,22 @@ bool PeerLogicValidation::ProcessMessages(CNode* pfrom, std::atomic<bool>& inter
|
||||
if (m_enable_bip61) {
|
||||
connman->PushMessage(pfrom, CNetMsgMaker(INIT_PROTO_VERSION).Make(NetMsgType::REJECT, strCommand, REJECT_MALFORMED, std::string("error parsing message")));
|
||||
}
|
||||
if (strstr(e.what(), "end of data"))
|
||||
{
|
||||
if (strstr(e.what(), "end of data")) {
|
||||
// Allow exceptions from under-length message on vRecv
|
||||
LogPrint(BCLog::NET, "%s(%s, %u bytes): Exception '%s' caught, normally caused by a message being shorter than its stated length\n", __func__, SanitizeString(strCommand), nMessageSize, e.what());
|
||||
}
|
||||
else if (strstr(e.what(), "size too large"))
|
||||
{
|
||||
} else if (strstr(e.what(), "size too large")) {
|
||||
// Allow exceptions from over-long size
|
||||
LogPrint(BCLog::NET, "%s(%s, %u bytes): Exception '%s' caught\n", __func__, SanitizeString(strCommand), nMessageSize, e.what());
|
||||
}
|
||||
else if (strstr(e.what(), "non-canonical ReadCompactSize()"))
|
||||
{
|
||||
} else if (strstr(e.what(), "non-canonical ReadCompactSize()")) {
|
||||
// Allow exceptions from non-canonical encoding
|
||||
LogPrint(BCLog::NET, "%s(%s, %u bytes): Exception '%s' caught\n", __func__, SanitizeString(strCommand), nMessageSize, e.what());
|
||||
}
|
||||
else
|
||||
{
|
||||
} else if (strstr(e.what(), "Superfluous witness record")) {
|
||||
// Allow exceptions from illegal witness encoding
|
||||
LogPrint(BCLog::NET, "%s(%s, %u bytes): Exception '%s' caught\n", __func__, SanitizeString(strCommand), nMessageSize, e.what());
|
||||
} else if (strstr(e.what(), "Unknown transaction optional data")) {
|
||||
// Allow exceptions from unknown witness encoding
|
||||
LogPrint(BCLog::NET, "%s(%s, %u bytes): Exception '%s' caught\n", __func__, SanitizeString(strCommand), nMessageSize, e.what());
|
||||
} else {
|
||||
PrintExceptionContinue(&e, "ProcessMessages()");
|
||||
}
|
||||
}
|
||||
@@ -3879,39 +3763,24 @@ bool PeerLogicValidation::SendMessages(CNode* pto)
|
||||
//
|
||||
// Message: getdata (non-blocks)
|
||||
//
|
||||
auto& tx_process_time = state.m_tx_download.m_tx_process_time;
|
||||
while (!tx_process_time.empty() && tx_process_time.begin()->first <= nNow && state.m_tx_download.m_tx_in_flight.size() < MAX_PEER_TX_IN_FLIGHT) {
|
||||
const uint256& txid = tx_process_time.begin()->second;
|
||||
CInv inv(MSG_TX | GetFetchFlags(pto), txid);
|
||||
if (!AlreadyHave(inv)) {
|
||||
// If this transaction was last requested more than 1 minute ago,
|
||||
// then request.
|
||||
int64_t last_request_time = GetTxRequestTime(inv.hash);
|
||||
if (last_request_time <= nNow - GETDATA_TX_INTERVAL) {
|
||||
LogPrint(BCLog::NET, "Requesting %s peer=%d\n", inv.ToString(), pto->GetId());
|
||||
vGetData.push_back(inv);
|
||||
if (vGetData.size() >= MAX_GETDATA_SZ) {
|
||||
connman->PushMessage(pto, msgMaker.Make(NetMsgType::GETDATA, vGetData));
|
||||
vGetData.clear();
|
||||
}
|
||||
UpdateTxRequestTime(inv.hash, nNow);
|
||||
state.m_tx_download.m_tx_in_flight.insert(inv.hash);
|
||||
} else {
|
||||
// This transaction is in flight from someone else; queue
|
||||
// up processing to happen after the download times out
|
||||
// (with a slight delay for inbound peers, to prefer
|
||||
// requests to outbound peers).
|
||||
RequestTx(&state, txid, nNow);
|
||||
while (!pto->mapAskFor.empty() && (*pto->mapAskFor.begin()).first <= nNow)
|
||||
{
|
||||
const CInv& inv = (*pto->mapAskFor.begin()).second;
|
||||
if (!AlreadyHave(inv))
|
||||
{
|
||||
LogPrint(BCLog::NET, "Requesting %s peer=%d\n", inv.ToString(), pto->GetId());
|
||||
vGetData.push_back(inv);
|
||||
if (vGetData.size() >= 1000)
|
||||
{
|
||||
connman->PushMessage(pto, msgMaker.Make(NetMsgType::GETDATA, vGetData));
|
||||
vGetData.clear();
|
||||
}
|
||||
} else {
|
||||
// We have already seen this transaction, no need to download.
|
||||
state.m_tx_download.m_tx_announced.erase(inv.hash);
|
||||
state.m_tx_download.m_tx_in_flight.erase(inv.hash);
|
||||
//If we're not going to ask, don't expect a response.
|
||||
pto->setAskFor.erase(inv.hash);
|
||||
}
|
||||
tx_process_time.erase(tx_process_time.begin());
|
||||
pto->mapAskFor.erase(pto->mapAskFor.begin());
|
||||
}
|
||||
|
||||
|
||||
if (!vGetData.empty())
|
||||
connman->PushMessage(pto, msgMaker.Make(NetMsgType::GETDATA, vGetData));
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ static const unsigned int DEFAULT_MAX_ORPHAN_TRANSACTIONS = 100;
|
||||
/** Default number of orphan+recently-replaced txn to keep around for block reconstruction */
|
||||
static const unsigned int DEFAULT_BLOCK_RECONSTRUCTION_EXTRA_TXN = 100;
|
||||
/** Default for BIP61 (sending reject messages) */
|
||||
static constexpr bool DEFAULT_ENABLE_BIP61{false};
|
||||
static constexpr bool DEFAULT_ENABLE_BIP61{true};
|
||||
|
||||
class PeerLogicValidation final : public CValidationInterface, public NetEventsInterface {
|
||||
private:
|
||||
|
||||
@@ -268,7 +268,7 @@ static IntrRecvError InterruptibleRecv(uint8_t* data, size_t len, int timeout, c
|
||||
#ifdef USE_POLL
|
||||
struct pollfd pollfd = {};
|
||||
pollfd.fd = hSocket;
|
||||
pollfd.events = POLLIN | POLLOUT;
|
||||
pollfd.events = POLLIN;
|
||||
int nRet = poll(&pollfd, 1, timeout_ms);
|
||||
#else
|
||||
struct timeval tval = MillisToTimeval(timeout_ms);
|
||||
|
||||
@@ -37,7 +37,7 @@ bool noui_ThreadSafeMessageBox(const std::string& message, const std::string& ca
|
||||
|
||||
if (!fSecure)
|
||||
LogPrintf("%s: %s\n", strCaption, message);
|
||||
fprintf(stderr, "%s: %s\n", strCaption.c_str(), message.c_str());
|
||||
tfm::format(std::cerr, "%s: %s\n", strCaption.c_str(), message.c_str());
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -222,6 +222,10 @@ inline void UnserializeTransaction(TxType& tx, Stream& s) {
|
||||
for (size_t i = 0; i < tx.vin.size(); i++) {
|
||||
s >> tx.vin[i].scriptWitness.stack;
|
||||
}
|
||||
if (!tx.HasWitness()) {
|
||||
/* It's illegal to encode witnesses when all witness stacks are empty. */
|
||||
throw std::ios_base::failure("Superfluous witness record");
|
||||
}
|
||||
}
|
||||
if (flags) {
|
||||
/* Unknown flag in the serialization */
|
||||
|
||||
@@ -437,18 +437,22 @@ int GuiMain(int argc, char* argv[])
|
||||
Q_INIT_RESOURCE(bitcoin);
|
||||
Q_INIT_RESOURCE(bitcoin_locale);
|
||||
|
||||
BitcoinApplication app(*node, argc, argv);
|
||||
// Generate high-dpi pixmaps
|
||||
QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
|
||||
#if QT_VERSION >= 0x050600
|
||||
QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
|
||||
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
|
||||
#endif
|
||||
#ifdef Q_OS_MAC
|
||||
QApplication::setAttribute(Qt::AA_DontShowIconsInMenus);
|
||||
#endif
|
||||
|
||||
BitcoinApplication app(*node, argc, argv);
|
||||
|
||||
// Register meta types used for QMetaObject::invokeMethod
|
||||
qRegisterMetaType< bool* >();
|
||||
#ifdef ENABLE_WALLET
|
||||
qRegisterMetaType<WalletModel*>();
|
||||
#endif
|
||||
// Need to pass name here as CAmount is a typedef (see http://qt-project.org/doc/qt-5/qmetatype.html#qRegisterMetaType)
|
||||
// IMPORTANT if it is no longer a typedef use the normal variant above
|
||||
qRegisterMetaType< CAmount >("CAmount");
|
||||
|
||||
@@ -2,51 +2,66 @@
|
||||
<qresource prefix="/translations">
|
||||
<file alias="af">locale/bitcoin_af.qm</file>
|
||||
<file alias="af_ZA">locale/bitcoin_af_ZA.qm</file>
|
||||
<file alias="am">locale/bitcoin_am.qm</file>
|
||||
<file alias="ar">locale/bitcoin_ar.qm</file>
|
||||
<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="ca_ES">locale/bitcoin_ca_ES.qm</file>
|
||||
<file alias="bg_BG">locale/bitcoin_bg_BG.qm</file>
|
||||
<file alias="bn">locale/bitcoin_bn.qm</file>
|
||||
<file alias="bs">locale/bitcoin_bs.qm</file>
|
||||
<file alias="ca">locale/bitcoin_ca.qm</file>
|
||||
<file alias="ca@valencia">locale/bitcoin_ca@valencia.qm</file>
|
||||
<file alias="ca_ES">locale/bitcoin_ca_ES.qm</file>
|
||||
<file alias="cs">locale/bitcoin_cs.qm</file>
|
||||
<file alias="cs_CZ">locale/bitcoin_cs_CZ.qm</file>
|
||||
<file alias="cy">locale/bitcoin_cy.qm</file>
|
||||
<file alias="da">locale/bitcoin_da.qm</file>
|
||||
<file alias="de">locale/bitcoin_de.qm</file>
|
||||
<file alias="el_GR">locale/bitcoin_el_GR.qm</file>
|
||||
<file alias="de_DE">locale/bitcoin_de_DE.qm</file>
|
||||
<file alias="el">locale/bitcoin_el.qm</file>
|
||||
<file alias="en_GB">locale/bitcoin_en_GB.qm</file>
|
||||
<file alias="el_GR">locale/bitcoin_el_GR.qm</file>
|
||||
<file alias="en">locale/bitcoin_en.qm</file>
|
||||
<file alias="en_AU">locale/bitcoin_en_AU.qm</file>
|
||||
<file alias="en_GB">locale/bitcoin_en_GB.qm</file>
|
||||
<file alias="eo">locale/bitcoin_eo.qm</file>
|
||||
<file alias="es">locale/bitcoin_es.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>
|
||||
<file alias="es_DO">locale/bitcoin_es_DO.qm</file>
|
||||
<file alias="es_ES">locale/bitcoin_es_ES.qm</file>
|
||||
<file alias="es_MX">locale/bitcoin_es_MX.qm</file>
|
||||
<file alias="es">locale/bitcoin_es.qm</file>
|
||||
<file alias="es_UY">locale/bitcoin_es_UY.qm</file>
|
||||
<file alias="es_VE">locale/bitcoin_es_VE.qm</file>
|
||||
<file alias="et_EE">locale/bitcoin_et_EE.qm</file>
|
||||
<file alias="et">locale/bitcoin_et.qm</file>
|
||||
<file alias="et_EE">locale/bitcoin_et_EE.qm</file>
|
||||
<file alias="eu_ES">locale/bitcoin_eu_ES.qm</file>
|
||||
<file alias="fa_IR">locale/bitcoin_fa_IR.qm</file>
|
||||
<file alias="fa">locale/bitcoin_fa.qm</file>
|
||||
<file alias="fa_IR">locale/bitcoin_fa_IR.qm</file>
|
||||
<file alias="fi">locale/bitcoin_fi.qm</file>
|
||||
<file alias="fil">locale/bitcoin_fil.qm</file>
|
||||
<file alias="fr">locale/bitcoin_fr.qm</file>
|
||||
<file alias="fr_CA">locale/bitcoin_fr_CA.qm</file>
|
||||
<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">locale/bitcoin_he.qm</file>
|
||||
<file alias="he_IL">locale/bitcoin_he_IL.qm</file>
|
||||
<file alias="hi">locale/bitcoin_hi.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="hu_HU">locale/bitcoin_hu_HU.qm</file>
|
||||
<file alias="id">locale/bitcoin_id.qm</file>
|
||||
<file alias="id_ID">locale/bitcoin_id_ID.qm</file>
|
||||
<file alias="it_IT">locale/bitcoin_it_IT.qm</file>
|
||||
<file alias="is">locale/bitcoin_is.qm</file>
|
||||
<file alias="it">locale/bitcoin_it.qm</file>
|
||||
<file alias="it_IT">locale/bitcoin_it_IT.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>
|
||||
<file alias="km_KH">locale/bitcoin_km_KH.qm</file>
|
||||
<file alias="ko">locale/bitcoin_ko.qm</file>
|
||||
<file alias="ko_KR">locale/bitcoin_ko_KR.qm</file>
|
||||
<file alias="ku_IQ">locale/bitcoin_ku_IQ.qm</file>
|
||||
<file alias="ky">locale/bitcoin_ky.qm</file>
|
||||
@@ -54,37 +69,55 @@
|
||||
<file alias="lt">locale/bitcoin_lt.qm</file>
|
||||
<file alias="lv_LV">locale/bitcoin_lv_LV.qm</file>
|
||||
<file alias="mk_MK">locale/bitcoin_mk_MK.qm</file>
|
||||
<file alias="ml">locale/bitcoin_ml.qm</file>
|
||||
<file alias="mn">locale/bitcoin_mn.qm</file>
|
||||
<file alias="mr_IN">locale/bitcoin_mr_IN.qm</file>
|
||||
<file alias="ms">locale/bitcoin_ms.qm</file>
|
||||
<file alias="ms_MY">locale/bitcoin_ms_MY.qm</file>
|
||||
<file alias="my">locale/bitcoin_my.qm</file>
|
||||
<file alias="nb">locale/bitcoin_nb.qm</file>
|
||||
<file alias="nb_NO">locale/bitcoin_nb_NO.qm</file>
|
||||
<file alias="ne">locale/bitcoin_ne.qm</file>
|
||||
<file alias="nl">locale/bitcoin_nl.qm</file>
|
||||
<file alias="nl_BE">locale/bitcoin_nl_BE.qm</file>
|
||||
<file alias="nl_NL">locale/bitcoin_nl_NL.qm</file>
|
||||
<file alias="pam">locale/bitcoin_pam.qm</file>
|
||||
<file alias="pl">locale/bitcoin_pl.qm</file>
|
||||
<file alias="pl_PL">locale/bitcoin_pl_PL.qm</file>
|
||||
<file alias="pt">locale/bitcoin_pt.qm</file>
|
||||
<file alias="pt_BR">locale/bitcoin_pt_BR.qm</file>
|
||||
<file alias="pt_PT">locale/bitcoin_pt_PT.qm</file>
|
||||
<file alias="ro_RO">locale/bitcoin_ro_RO.qm</file>
|
||||
<file alias="ro">locale/bitcoin_ro.qm</file>
|
||||
<file alias="ru_RU">locale/bitcoin_ru_RU.qm</file>
|
||||
<file alias="ro_RO">locale/bitcoin_ro_RO.qm</file>
|
||||
<file alias="ru">locale/bitcoin_ru.qm</file>
|
||||
<file alias="ru_RU">locale/bitcoin_ru_RU.qm</file>
|
||||
<file alias="si">locale/bitcoin_si.qm</file>
|
||||
<file alias="sk">locale/bitcoin_sk.qm</file>
|
||||
<file alias="sk_SK">locale/bitcoin_sk_SK.qm</file>
|
||||
<file alias="sl_SI">locale/bitcoin_sl_SI.qm</file>
|
||||
<file alias="sn">locale/bitcoin_sn.qm</file>
|
||||
<file alias="sq">locale/bitcoin_sq.qm</file>
|
||||
<file alias="sr@latin">locale/bitcoin_sr@latin.qm</file>
|
||||
<file alias="sr">locale/bitcoin_sr.qm</file>
|
||||
<file alias="sr@latin">locale/bitcoin_sr@latin.qm</file>
|
||||
<file alias="sv">locale/bitcoin_sv.qm</file>
|
||||
<file alias="szl">locale/bitcoin_szl.qm</file>
|
||||
<file alias="ta">locale/bitcoin_ta.qm</file>
|
||||
<file alias="ta_IN">locale/bitcoin_ta_IN.qm</file>
|
||||
<file alias="te">locale/bitcoin_te.qm</file>
|
||||
<file alias="th">locale/bitcoin_th.qm</file>
|
||||
<file alias="th_TH">locale/bitcoin_th_TH.qm</file>
|
||||
<file alias="tr_TR">locale/bitcoin_tr_TR.qm</file>
|
||||
<file alias="tr">locale/bitcoin_tr.qm</file>
|
||||
<file alias="tr_TR">locale/bitcoin_tr_TR.qm</file>
|
||||
<file alias="uk">locale/bitcoin_uk.qm</file>
|
||||
<file alias="uk_UA">locale/bitcoin_uk_UA.qm</file>
|
||||
<file alias="ur_PK">locale/bitcoin_ur_PK.qm</file>
|
||||
<file alias="uz@Cyrl">locale/bitcoin_uz@Cyrl.qm</file>
|
||||
<file alias="vi">locale/bitcoin_vi.qm</file>
|
||||
<file alias="vi_VN">locale/bitcoin_vi_VN.qm</file>
|
||||
<file alias="zh-Hans">locale/bitcoin_zh-Hans.qm</file>
|
||||
<file alias="zh">locale/bitcoin_zh.qm</file>
|
||||
<file alias="zh_CN">locale/bitcoin_zh_CN.qm</file>
|
||||
<file alias="zh_HK">locale/bitcoin_zh_HK.qm</file>
|
||||
<file alias="zh">locale/bitcoin_zh.qm</file>
|
||||
<file alias="zh_TW">locale/bitcoin_zh_TW.qm</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
@@ -335,8 +335,9 @@ void BitcoinGUI::createActions()
|
||||
openAction->setStatusTip(tr("Open a bitcoin: URI or payment request"));
|
||||
|
||||
m_open_wallet_action = new QAction(tr("Open Wallet"), this);
|
||||
m_open_wallet_action->setMenu(new QMenu(this));
|
||||
m_open_wallet_action->setEnabled(false);
|
||||
m_open_wallet_action->setStatusTip(tr("Open a wallet"));
|
||||
m_open_wallet_menu = new QMenu(this);
|
||||
|
||||
m_close_wallet_action = new QAction(tr("Close Wallet..."), this);
|
||||
m_close_wallet_action->setStatusTip(tr("Close wallet"));
|
||||
@@ -368,11 +369,20 @@ void BitcoinGUI::createActions()
|
||||
connect(usedSendingAddressesAction, &QAction::triggered, walletFrame, &WalletFrame::usedSendingAddresses);
|
||||
connect(usedReceivingAddressesAction, &QAction::triggered, walletFrame, &WalletFrame::usedReceivingAddresses);
|
||||
connect(openAction, &QAction::triggered, this, &BitcoinGUI::openClicked);
|
||||
connect(m_open_wallet_action->menu(), &QMenu::aboutToShow, [this] {
|
||||
m_open_wallet_action->menu()->clear();
|
||||
for (std::string path : m_wallet_controller->getWalletsAvailableToOpen()) {
|
||||
connect(m_open_wallet_menu, &QMenu::aboutToShow, [this] {
|
||||
m_open_wallet_menu->clear();
|
||||
std::vector<std::string> available_wallets = m_wallet_controller->getWalletsAvailableToOpen();
|
||||
std::vector<std::string> wallets = m_node.listWalletDir();
|
||||
for (const auto& path : wallets) {
|
||||
QString name = path.empty() ? QString("["+tr("default wallet")+"]") : QString::fromStdString(path);
|
||||
QAction* action = m_open_wallet_action->menu()->addAction(name);
|
||||
QAction* action = m_open_wallet_menu->addAction(name);
|
||||
|
||||
if (std::find(available_wallets.begin(), available_wallets.end(), path) == available_wallets.end()) {
|
||||
// This wallet is already loaded
|
||||
action->setEnabled(false);
|
||||
continue;
|
||||
}
|
||||
|
||||
connect(action, &QAction::triggered, [this, name, path] {
|
||||
OpenWalletActivity* activity = m_wallet_controller->openWallet(path);
|
||||
|
||||
@@ -396,8 +406,14 @@ void BitcoinGUI::createActions()
|
||||
connect(activity, &OpenWalletActivity::opened, this, &BitcoinGUI::setCurrentWallet);
|
||||
connect(activity, &OpenWalletActivity::finished, activity, &QObject::deleteLater);
|
||||
connect(activity, &OpenWalletActivity::finished, dialog, &QObject::deleteLater);
|
||||
bool invoked = QMetaObject::invokeMethod(activity, "open");
|
||||
assert(invoked);
|
||||
});
|
||||
}
|
||||
if (wallets.empty()) {
|
||||
QAction* action = m_open_wallet_menu->addAction(tr("No wallets available"));
|
||||
action->setEnabled(false);
|
||||
}
|
||||
});
|
||||
connect(m_close_wallet_action, &QAction::triggered, [this] {
|
||||
m_wallet_controller->closeWallet(walletFrame->currentWalletModel(), this);
|
||||
@@ -618,6 +634,9 @@ void BitcoinGUI::setWalletController(WalletController* wallet_controller)
|
||||
|
||||
m_wallet_controller = wallet_controller;
|
||||
|
||||
m_open_wallet_action->setEnabled(true);
|
||||
m_open_wallet_action->setMenu(m_open_wallet_menu);
|
||||
|
||||
connect(wallet_controller, &WalletController::walletAdded, this, &BitcoinGUI::addWallet);
|
||||
connect(wallet_controller, &WalletController::walletRemoved, this, &BitcoinGUI::removeWallet);
|
||||
|
||||
@@ -1326,6 +1345,7 @@ void BitcoinGUI::showProgress(const QString &title, int nProgress)
|
||||
if (progressDialog) {
|
||||
progressDialog->close();
|
||||
progressDialog->deleteLater();
|
||||
progressDialog = nullptr;
|
||||
}
|
||||
} else if (progressDialog) {
|
||||
progressDialog->setValue(nProgress);
|
||||
@@ -1354,12 +1374,13 @@ static bool ThreadSafeMessageBox(BitcoinGUI* gui, const std::string& message, co
|
||||
style &= ~CClientUIInterface::SECURE;
|
||||
bool ret = false;
|
||||
// In case of modal message, use blocking connection to wait for user to click a button
|
||||
QMetaObject::invokeMethod(gui, "message",
|
||||
bool invoked = QMetaObject::invokeMethod(gui, "message",
|
||||
modal ? GUIUtil::blockingGUIThreadConnection() : Qt::QueuedConnection,
|
||||
Q_ARG(QString, QString::fromStdString(caption)),
|
||||
Q_ARG(QString, QString::fromStdString(message)),
|
||||
Q_ARG(unsigned int, style),
|
||||
Q_ARG(bool*, &ret));
|
||||
assert(invoked);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
@@ -148,6 +148,7 @@ private:
|
||||
QAction* openAction = nullptr;
|
||||
QAction* showHelpMessageAction = nullptr;
|
||||
QAction* m_open_wallet_action{nullptr};
|
||||
QMenu* m_open_wallet_menu{nullptr};
|
||||
QAction* m_close_wallet_action{nullptr};
|
||||
QAction* m_wallet_selector_label_action = nullptr;
|
||||
QAction* m_wallet_selector_action = nullptr;
|
||||
|
||||
@@ -15,8 +15,8 @@ QT_TRANSLATE_NOOP("bitcoin-core", ""
|
||||
"-maxtxfee is set very high! Fees this large could be paid on a single "
|
||||
"transaction."),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", ""
|
||||
"Can't generate a change-address key. Private keys are disabled for this "
|
||||
"wallet."),
|
||||
"Can't generate a change-address key. No keys in the internal keypool and "
|
||||
"can't generate any keys."),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", ""
|
||||
"Cannot obtain a lock on data directory %s. %s is probably already running."),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", ""
|
||||
@@ -88,9 +88,6 @@ QT_TRANSLATE_NOOP("bitcoin-core", ""
|
||||
"Warning: The network does not appear to fully agree! Some miners appear to "
|
||||
"be experiencing issues."),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", ""
|
||||
"Warning: Unknown block versions being mined! It's possible unknown rules are "
|
||||
"in effect"),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", ""
|
||||
"Warning: Wallet file corrupt, data salvaged! Original %s saved as %s in %s; "
|
||||
"if your balance or transactions are incorrect you should restore from a "
|
||||
"backup."),
|
||||
@@ -179,6 +176,7 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Transaction too large for fee policy"),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", "Transaction too large"),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", "Unable to bind to %s on this computer (bind returned error %s)"),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", "Unable to bind to %s on this computer. %s is probably already running."),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", "Unable to create the PID file '%s': %s"),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", "Unable to generate initial keys"),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", "Unable to generate keys"),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", "Unable to start HTTP server. See debug log for details."),
|
||||
|
||||
@@ -191,34 +191,39 @@ void ClientModel::updateBanlist()
|
||||
static void ShowProgress(ClientModel *clientmodel, const std::string &title, int nProgress)
|
||||
{
|
||||
// emits signal "showProgress"
|
||||
QMetaObject::invokeMethod(clientmodel, "showProgress", Qt::QueuedConnection,
|
||||
bool invoked = QMetaObject::invokeMethod(clientmodel, "showProgress", Qt::QueuedConnection,
|
||||
Q_ARG(QString, QString::fromStdString(title)),
|
||||
Q_ARG(int, nProgress));
|
||||
assert(invoked);
|
||||
}
|
||||
|
||||
static void NotifyNumConnectionsChanged(ClientModel *clientmodel, int newNumConnections)
|
||||
{
|
||||
// Too noisy: qDebug() << "NotifyNumConnectionsChanged: " + QString::number(newNumConnections);
|
||||
QMetaObject::invokeMethod(clientmodel, "updateNumConnections", Qt::QueuedConnection,
|
||||
bool invoked = QMetaObject::invokeMethod(clientmodel, "updateNumConnections", Qt::QueuedConnection,
|
||||
Q_ARG(int, newNumConnections));
|
||||
assert(invoked);
|
||||
}
|
||||
|
||||
static void NotifyNetworkActiveChanged(ClientModel *clientmodel, bool networkActive)
|
||||
{
|
||||
QMetaObject::invokeMethod(clientmodel, "updateNetworkActive", Qt::QueuedConnection,
|
||||
bool invoked = QMetaObject::invokeMethod(clientmodel, "updateNetworkActive", Qt::QueuedConnection,
|
||||
Q_ARG(bool, networkActive));
|
||||
assert(invoked);
|
||||
}
|
||||
|
||||
static void NotifyAlertChanged(ClientModel *clientmodel)
|
||||
{
|
||||
qDebug() << "NotifyAlertChanged";
|
||||
QMetaObject::invokeMethod(clientmodel, "updateAlert", Qt::QueuedConnection);
|
||||
bool invoked = QMetaObject::invokeMethod(clientmodel, "updateAlert", Qt::QueuedConnection);
|
||||
assert(invoked);
|
||||
}
|
||||
|
||||
static void BannedListChanged(ClientModel *clientmodel)
|
||||
{
|
||||
qDebug() << QString("%1: Requesting update for peer banlist").arg(__func__);
|
||||
QMetaObject::invokeMethod(clientmodel, "updateBanlist", Qt::QueuedConnection);
|
||||
bool invoked = QMetaObject::invokeMethod(clientmodel, "updateBanlist", Qt::QueuedConnection);
|
||||
assert(invoked);
|
||||
}
|
||||
|
||||
static void BlockTipChanged(ClientModel *clientmodel, bool initialSync, int height, int64_t blockTime, double verificationProgress, bool fHeader)
|
||||
@@ -240,11 +245,12 @@ static void BlockTipChanged(ClientModel *clientmodel, bool initialSync, int heig
|
||||
// if we are in-sync or if we notify a header update, update the UI regardless of last update time
|
||||
if (fHeader || !initialSync || now - nLastUpdateNotification > MODEL_UPDATE_DELAY) {
|
||||
//pass an async signal to the UI thread
|
||||
QMetaObject::invokeMethod(clientmodel, "numBlocksChanged", Qt::QueuedConnection,
|
||||
bool invoked = QMetaObject::invokeMethod(clientmodel, "numBlocksChanged", Qt::QueuedConnection,
|
||||
Q_ARG(int, height),
|
||||
Q_ARG(QDateTime, QDateTime::fromTime_t(blockTime)),
|
||||
Q_ARG(double, verificationProgress),
|
||||
Q_ARG(bool, fHeader));
|
||||
assert(invoked);
|
||||
nLastUpdateNotification = now;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -636,6 +636,9 @@
|
||||
<property name="placeholderText">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
|
||||
@@ -60,6 +60,7 @@
|
||||
|
||||
#include <objc/objc-runtime.h>
|
||||
#include <CoreServices/CoreServices.h>
|
||||
#include <QProcess>
|
||||
#endif
|
||||
|
||||
namespace GUIUtil {
|
||||
@@ -392,7 +393,15 @@ bool openBitcoinConf()
|
||||
configFile.close();
|
||||
|
||||
/* Open bitcoin.conf with the associated application */
|
||||
return QDesktopServices::openUrl(QUrl::fromLocalFile(boostPathToQString(pathConfig)));
|
||||
bool res = QDesktopServices::openUrl(QUrl::fromLocalFile(boostPathToQString(pathConfig)));
|
||||
#ifdef Q_OS_MAC
|
||||
// Workaround for macOS-specific behavior; see #15409.
|
||||
if (!res) {
|
||||
res = QProcess::startDetached("/usr/bin/open", QStringList{"-t", boostPathToQString(pathConfig)});
|
||||
}
|
||||
#endif
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
ToolTipToRichTextFilter::ToolTipToRichTextFilter(int _size_threshold, QObject *parent) :
|
||||
|
||||
@@ -245,10 +245,6 @@
|
||||
<source>&Overview</source>
|
||||
<translation>&Oorsig</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Node</source>
|
||||
<translation>Node</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show general overview of wallet</source>
|
||||
<translation>Vertoon 'n algemene oorsig van die beursie</translation>
|
||||
@@ -305,14 +301,6 @@
|
||||
<source>&Change Passphrase...</source>
|
||||
<translation>&Verander Wagwoord</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Sending addresses...</source>
|
||||
<translation>&Versending adresse...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Receiving addresses...</source>
|
||||
<translation>&Ontvanger adresse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open &URI...</source>
|
||||
<translation>Oop & URI...</translation>
|
||||
@@ -361,10 +349,6 @@
|
||||
<source>Bitcoin</source>
|
||||
<translation>Bitcoin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet</source>
|
||||
<translation>Beursie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Send</source>
|
||||
<translation>&Stuur</translation>
|
||||
@@ -465,6 +449,10 @@
|
||||
<source>Up to date</source>
|
||||
<translation>Op datum</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Window</source>
|
||||
<translation>&Venster</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 client</source>
|
||||
<translation>%1 kliënt</translation>
|
||||
@@ -833,11 +821,7 @@
|
||||
<source>Hide</source>
|
||||
<translation>Versteek</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown. Syncing Headers (%1)...</source>
|
||||
<translation>Onbekend. Besig Met Sinchroniseer Van Hoofde (%1)...</translation>
|
||||
</message>
|
||||
</context>
|
||||
</context>
|
||||
<context>
|
||||
<name>OpenURIDialog</name>
|
||||
<message>
|
||||
@@ -883,18 +867,10 @@
|
||||
<source>Size of &database cache</source>
|
||||
<translation>Grootte van &databasis kas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MB</source>
|
||||
<translation>MG</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Number of script &verification threads</source>
|
||||
<translation>Aantal skrip &verifikasie drade</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Active command-line options that override above options:</source>
|
||||
<translation>Aktiewe opdrag lyn opsies wat die boonste opsies ignoreer:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open the %1 configuration file from the working directory.</source>
|
||||
<translation>Maak die %1 konfigurasie lêer oop van die werk gids.</translation>
|
||||
@@ -1547,7 +1523,7 @@
|
||||
<message>
|
||||
<source>Using the fallbackfee can result in sending a transaction that will take several hours or days (or never) to confirm. Consider choosing your fee manually or wait until you have validated the complete chain.</source>
|
||||
<translation>Die verstekfooi kan veroorsaak dat 'n transaksie gestuur word wat
|
||||
etlike ure of dae (of nooit) sal neem om te bevestig. Oorweeg om
|
||||
etlike ure of dae (of nooit) sal neem om te bevestig. Oorweeg om
|
||||
'n fooi met die hand te kies, of wag tot jy die hele ketting bevestig het.</translation>
|
||||
</message>
|
||||
<message>
|
||||
@@ -1566,13 +1542,6 @@ etlike ure of dae (of nooit) sal neem om te bevestig. Oorweeg om
|
||||
<source>Hide</source>
|
||||
<translation>Versteek</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source>
|
||||
<translation>Om die minimumfooi te betaal is in die haak, mits daar minder transaksievolume
|
||||
as ruimte in die blok is. Wees bewus dat de gevolg kan wees dat 'n transaksie nooit
|
||||
bevestig nie indien daar meer aanvraag vir bitcoin transaksies is as wat die netwerk kan
|
||||
verwerk.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Recommended:</source>
|
||||
<translation>Aanbeveel:</translation>
|
||||
@@ -1607,7 +1576,7 @@ verwerk.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enable Replace-By-Fee</source>
|
||||
<translation>Bemontlik vervang-deur-fooi</translation>
|
||||
<translation>Bemoontlik vervang-deur-fooi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>With Replace-By-Fee (BIP-125) you can increase a transaction's fee after it is sent. Without this, a higher fee may be recommended to compensate for increased transaction delay risk.</source>
|
||||
@@ -1617,11 +1586,11 @@ transaksievertragingsrisiko.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Clear &All</source>
|
||||
<translation>Maak skoon &Alles</translation>
|
||||
<translation>Vee &Alles skoon</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Balance:</source>
|
||||
<translation>Balans:</translation>
|
||||
<translation>Saldo:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirm the send action</source>
|
||||
@@ -1727,10 +1696,6 @@ transaksievertragingsrisiko.</translation>
|
||||
<source>Payment request expired.</source>
|
||||
<translation>Betalings versoek verstryk.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pay only the required fee of %1</source>
|
||||
<translation>Betaal slegs die verlangde fooi van %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: Invalid Bitcoin address</source>
|
||||
<translation>Waarskuwing: Ongeldige Bitcoinadres</translation>
|
||||
@@ -1758,7 +1723,7 @@ Is u seker?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose previously used address</source>
|
||||
<translation>Kies voorhen gebruikte adres</translation>
|
||||
<translation>Kies voorheen gebruikte adres</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This is a normal payment.</source>
|
||||
@@ -1783,7 +1748,7 @@ Is u seker?</translation>
|
||||
<message>
|
||||
<source>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</source>
|
||||
<translation>De fooi word afgetrek van die gestuurde bedrag.
|
||||
Die ontvanger sal minder ontvang as wat u in die
|
||||
Die ontvanger sal minder ontvang as wat u in die
|
||||
bedrag opgee. As daar meer as een ontvanger is,
|
||||
word die fooi eweredig verdeel.</translation>
|
||||
</message>
|
||||
@@ -1805,7 +1770,8 @@ word die fooi eweredig verdeel.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This is an authenticated payment request.</source>
|
||||
<translation>Hierdie is 'n gemagtigde uitbetalingsversoek</translation>
|
||||
<translation>Hierdie is 'n gemagtigde uitbetalingsversoek
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pay To:</source>
|
||||
@@ -1830,7 +1796,7 @@ word die fooi eweredig verdeel.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose previously used address</source>
|
||||
<translation>Kies voorhen gebruikte adres</translation>
|
||||
<translation>Kies voorheen gebruikte adres</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+A</source>
|
||||
@@ -1846,7 +1812,7 @@ word die fooi eweredig verdeel.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Clear &All</source>
|
||||
<translation>Maak skoon &Alles</translation>
|
||||
<translation>Vee &Alles skoon</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Verify Message</source>
|
||||
@@ -2042,6 +2008,9 @@ word die fooi eweredig verdeel.</translation>
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletController</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
</context>
|
||||
@@ -2170,4 +2139,4 @@ word die fooi eweredig verdeel.</translation>
|
||||
<translation>Fout</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
</TS>
|
||||
@@ -183,10 +183,6 @@
|
||||
<source>Wallet encrypted</source>
|
||||
<translation>Beursie enkriptasie voltooi</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 gaan nou toe maak om die enkripsie proses klaar te maak. Onthou dat jou bitcoins nie ten volle beskerm kan word deur die beursie te enkrip teen "malware" wat jou rekenaar besmet.</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>BELANGRIK: Enige vorige rugsteune wat u gemaak het van u beursie-lêer moet vervang word met die nuut-gegenereerde, versleutelde beursie-lêer. Vir sekuriteitsredes sal vorige rugsteune van die onversleutelde beursie-lêer onbruikbaar word sodra u die nuwe, versleutelde beursie begin gebruik.</translation>
|
||||
@@ -249,10 +245,6 @@
|
||||
<source>&Overview</source>
|
||||
<translation>&Oorsig</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Node</source>
|
||||
<translation>Node</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show general overview of wallet</source>
|
||||
<translation>Wys algemene oorsig van die beursie</translation>
|
||||
@@ -309,14 +301,6 @@
|
||||
<source>&Change Passphrase...</source>
|
||||
<translation>Verander wagwoord frase...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Sending addresses...</source>
|
||||
<translation>Uitstuur adresse...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Receiving addresses...</source>
|
||||
<translation>&Ontvang adresse...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open &URI...</source>
|
||||
<translation>Maak &URI oop...</translation>
|
||||
@@ -369,10 +353,6 @@
|
||||
<source>Bitcoin</source>
|
||||
<translation>Bitcoin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet</source>
|
||||
<translation>Beursie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Send</source>
|
||||
<translation>&Stuur</translation>
|
||||
@@ -455,7 +435,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Transactions after this will not yet be visible.</source>
|
||||
<translation>Opvolgende transaksies sal nog nie sigbaar wees nie.</translation>
|
||||
<translation>Transaksies hierna sal nog nie sigbaar wees nie.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error</source>
|
||||
@@ -477,6 +457,10 @@
|
||||
<source>Show the %1 help message to get a list with possible Bitcoin command-line options</source>
|
||||
<translation>Wys die %1 hulpboodskap om 'n lys met moontlike Bitcoin bevel-lyn opsies te verkry</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Window</source>
|
||||
<translation>&Venster</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 client</source>
|
||||
<translation>%1 klient</translation>
|
||||
@@ -521,7 +505,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Sent transaction</source>
|
||||
<translation>Gestuurde transaksie</translation>
|
||||
<translation>Transaksie gestuur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Incoming transaction</source>
|
||||
@@ -1410,6 +1394,9 @@
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletController</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
</context>
|
||||
|
||||
@@ -179,10 +179,6 @@
|
||||
<source>Wallet encrypted</source>
|
||||
<translation>ቦርሳዎ ምስጢር ተደርጓል</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 የማመስጠር ሂደቱን ለመጨረስ አሁን ይዘጋል:: ያስታውሱ፣ ኮምፒተርዎ በተንኮል አዘል ሶፍትዌር ከተበከለ ቦርሳዎን ማመስጠር ቢትኮይኖቾን ሙሉበሙሉ እንዳይሰረቁ ሊከላከል አይችልም::</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>አስፈላጊ: ከ ቦርሳ ፋይልዎ ያከናወኗቸው ቀደም ያሉ ምትኬዎች በአዲስ በተፈጠረ የማመስጠሪያ ፋይል ውስጥ መተካት አለባቸው. ለደህንነት ሲባል, አዲሱን የተመሰጠ የቦርሳ ፋይል መጠቀም ሲጀመሩ ወዲያውኑ ቀደም ሲል ያልተመሰጠሩ የቦርሳ ፋይል ቅጂዎች ዋጋ ቢስ ይሆናሉ::</translation>
|
||||
@@ -245,10 +241,6 @@
|
||||
<source>&Overview</source>
|
||||
<translation>&አጠቃላይ እይታ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Node</source>
|
||||
<translation>እትር</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show general overview of wallet</source>
|
||||
<translation>የቦርሳ አጠቃላይ እይታ ኣሳይ</translation>
|
||||
@@ -428,6 +420,9 @@
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletController</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
</context>
|
||||
|
||||
@@ -187,10 +187,6 @@
|
||||
<source>Wallet encrypted</source>
|
||||
<translation>محفظة مشفرة</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 الآن لإنهاء عملية التشفير. تذكر أن تشفير محفظتك لا يمكن أن يحمي البتكوين الخاص بك بالكامل من السرقة عبر البرامج الضارة التي بامكانها أن تصيب جهاز الكمبيوتر الخاص بك.</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>هام: أي نسخة إحتياطية سابقة قمت بها لمحفظتك يجب استبدالها بأخرى حديثة، مشفرة. لأسباب أمنية، النسخ الاحتياطية السابقة لملفات المحفظة الغير مشفرة تصبح عديمة الفائدة مع بداية استخدام المحفظة المشفرة الجديدة.</translation>
|
||||
@@ -253,10 +249,6 @@
|
||||
<source>&Overview</source>
|
||||
<translation>&نظرة عامة</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Node</source>
|
||||
<translation>جهاز</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show general overview of wallet</source>
|
||||
<translation>إظهار نظرة عامة على المحفظة</translation>
|
||||
@@ -313,18 +305,14 @@
|
||||
<source>&Change Passphrase...</source>
|
||||
<translation>&تغيير كلمة المرور</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Sending addresses...</source>
|
||||
<translation>&عناوين الإرسال...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Receiving addresses...</source>
|
||||
<translation>&عناوين الاستقبال...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open &URI...</source>
|
||||
<translation>افتح &URI...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet:</source>
|
||||
<translation>محفظة:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Click to disable network activity.</source>
|
||||
<translation>اضغط لإلغاء تفعيل الشبكه</translation>
|
||||
@@ -373,10 +361,6 @@
|
||||
<source>Bitcoin</source>
|
||||
<translation>بتكوين</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet</source>
|
||||
<translation>محفظة</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Send</source>
|
||||
<translation>&ارسل</translation>
|
||||
@@ -477,10 +461,66 @@
|
||||
<source>Up to date</source>
|
||||
<translation>محدث</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Sending addresses</source>
|
||||
<translation>&عناوين الإرسال</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Receiving addresses</source>
|
||||
<translation>&عناوين الإستقبال</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open Wallet</source>
|
||||
<translation>افتح المحفظة</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open a wallet</source>
|
||||
<translation>افتح محفظة</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Close Wallet...</source>
|
||||
<translation>اغلق المحفظة</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Close wallet</source>
|
||||
<translation>اغلق المحفظة</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show the %1 help message to get a list with possible Bitcoin command-line options</source>
|
||||
<translation>بين اشارة المساعدة %1 للحصول على قائمة من خيارات اوامر البت كوين المحتملة </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>default wallet</source>
|
||||
<translation>محفظة إفتراضية</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Opening Wallet <b>%1</b>...</source>
|
||||
<translation>يتم فتح المحفظة<b>%1</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open Wallet Failed</source>
|
||||
<translation>فشل فتح المحفظة</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Window</source>
|
||||
<translation>نافذه</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Minimize</source>
|
||||
<translation>تصغير</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Zoom</source>
|
||||
<translation>تكبير</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Restore</source>
|
||||
<translation>إرجاع</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Main Window</source>
|
||||
<translation>النافذة الرئيسية</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 client</source>
|
||||
<translation>الزبون %1</translation>
|
||||
@@ -541,6 +581,10 @@
|
||||
<source>HD key generation is <b>disabled</b></source>
|
||||
<translation>توليد المفاتيح الهرمية الحتمية HD <b>معطل</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Private key <b>disabled</b></source>
|
||||
<translation>المفتاح السري <b>معطل</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet is <b>encrypted</b> and currently <b>unlocked</b></source>
|
||||
<translation>المحفظة <b>مشفرة</b> و <b>مفتوحة</b> حاليا</translation>
|
||||
@@ -692,6 +736,10 @@
|
||||
<source>(no label)</source>
|
||||
<translation>(لا وصف)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>change from %1 (%2)</source>
|
||||
<translation>تغير من %1 (%2)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(change)</source>
|
||||
<translation>(تغير)</translation>
|
||||
@@ -895,11 +943,7 @@
|
||||
<source>Hide</source>
|
||||
<translation>إخفاء</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown. Syncing Headers (%1)...</source>
|
||||
<translation>غير معروف. مزامنة الرؤوس (%1) ...</translation>
|
||||
</message>
|
||||
</context>
|
||||
</context>
|
||||
<context>
|
||||
<name>OpenURIDialog</name>
|
||||
<message>
|
||||
@@ -945,10 +989,6 @@
|
||||
<source>Size of &database cache</source>
|
||||
<translation>حجم ذاكرة التخزين المؤقت لقاعدة البيانات</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MB</source>
|
||||
<translation>م ب</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Number of script &verification threads</source>
|
||||
<translation>عدد مؤشرات التحقق من البرنامج النصي</translation>
|
||||
@@ -973,10 +1013,6 @@
|
||||
<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>التصغير بدلاً من الخروج من التطبيق عند إغلاق النافذة. عند تفعيل هذا الخيار، سيتم إغلاق التطبيق فقط بعد اختيار الخروج من القائمة.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Active command-line options that override above options:</source>
|
||||
<translation>خيارات سطر الأوامر النشطة التي تتجاوز الخيارات أعلاه:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open the %1 configuration file from the working directory.</source>
|
||||
<translation>فتح ملف الإعدادات %1 من الدليل العامل.</translation>
|
||||
@@ -1974,14 +2010,6 @@
|
||||
<source>Hide</source>
|
||||
<translation>إخفاء</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source>
|
||||
<translation>إن دفع الحد الأدنى فقط من الرسوم يجوز طالما أن حجم المعاملات أقل من المساحة الموجودة في الكتل. ولكن كن على علم بأن هذا يمكن أن ينتهي في معاملة غير مؤكدة أبداً عندما يكون هناك طلب أكبر على معاملات البتكوين مما تستطيع الشبكة معالجته.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(read the tooltip)</source>
|
||||
<translation>(اقرأ تلميح الأدوات)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Recommended:</source>
|
||||
<translation>موصى به:</translation>
|
||||
@@ -2134,10 +2162,6 @@
|
||||
<source>Payment request expired.</source>
|
||||
<translation>انتهاء صلاحية طلب الدفع.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pay only the required fee of %1</source>
|
||||
<translation>دفع فقط الرسوم المطلوبة ل %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: Invalid Bitcoin address</source>
|
||||
<translation>تحذير: عنوان بتكوين غير صالح</translation>
|
||||
@@ -2824,6 +2848,13 @@
|
||||
<translation>الوحدة لإظهار المبالغ فيها. انقر لتحديد وحدة أخرى.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletController</name>
|
||||
<message>
|
||||
<source>Close wallet</source>
|
||||
<translation>اغلق المحفظة</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
<message>
|
||||
@@ -2873,6 +2904,10 @@
|
||||
<source>Could not commit transaction</source>
|
||||
<translation>لا يمكن تنفيذ المعاملة</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>default wallet</source>
|
||||
<translation>محفظة إفتراضية</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletView</name>
|
||||
@@ -2956,10 +2991,6 @@
|
||||
<source>Do you want to rebuild the block database now?</source>
|
||||
<translation>هل تريد إعادة بناء قاعدة بيانات الكتل الآن؟</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error creating %s: You can't create non-HD wallets with this version.</source>
|
||||
<translation>خطأ في إنشاء %s: لا يمكنك إنشاء محافظ بلا خاصية الهرمية الحتمية non-HD باستخدام هذا الإصدار.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error loading %s</source>
|
||||
<translation>خطأ في تحميل %s</translation>
|
||||
@@ -3044,10 +3075,6 @@
|
||||
<source>Unable to generate keys</source>
|
||||
<translation> غير قادر على توليد مفاتيح.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unsupported argument -tor found, use -onion.</source>
|
||||
<translation>تم العثور على وسيطة غير مدعومة -tor ، استخدم -onion.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Upgrading UTXO database</source>
|
||||
<translation>ترقية قاعدة بيانات UTXO</translation>
|
||||
@@ -3068,10 +3095,6 @@
|
||||
<source>You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain</source>
|
||||
<translation>تحتاج إلى إعادة إنشاء قاعدة البيانات باستخدام -reindex للعودة إلى الوضعية الغير مجردة. هذا سوف يعيد تحميل سلسلة الكتل بأكملها</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error loading %s: You can't disable HD on an already existing HD wallet</source>
|
||||
<translation>خطأ أثناء تحميل %s: لا يمكنك تعطيل خاصية الهرمية الحتمية HD في محفظة مفعلة بخاصية الهرمية الحتمية HD مسبقاً</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error reading from database, shutting down.</source>
|
||||
<translation>خطأ في القراءة من قاعدة البيانات ، والتوقف.</translation>
|
||||
@@ -3128,10 +3151,6 @@
|
||||
<source>Zapping all transactions from wallet...</source>
|
||||
<translation>إزالة جميع المعاملات من المحفظة...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error loading %s: You can't enable HD on an already existing non-HD wallet</source>
|
||||
<translation>خطأ أثناء تحميل %s: لا يمكنك تفعيل خاصية الهرمية الحتمية HD في محفظة لا تملك خاصية الهرمية الحتمية non-HD مسبقاً</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: Wallet file corrupt, data salvaged! Original %s saved as %s in %s; if your balance or transactions are incorrect you should restore from a backup.</source>
|
||||
<translation>تحذير: ملف المحفظة فاسد ، تم انقاذ البيانات! تم حفظ %s الأصلي ك %s في %s؛ إذا كان رصيدك أو كانت معاملاتك غير صحيحة، فيجب عليك الإستعادة من نسخة احتياطية.</translation>
|
||||
|
||||
@@ -237,10 +237,6 @@
|
||||
<source>&Overview</source>
|
||||
<translation>Агляд</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Node</source>
|
||||
<translation>Вузел</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show general overview of wallet</source>
|
||||
<translation>Паказвае агульныя звесткі аб гаманцы</translation>
|
||||
@@ -285,14 +281,6 @@
|
||||
<source>&Change Passphrase...</source>
|
||||
<translation>&Change Passphrase...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Sending addresses...</source>
|
||||
<translation>Адрасы дасылання...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Receiving addresses...</source>
|
||||
<translation>Адрасы прымання...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open &URI...</source>
|
||||
<translation>Адчыниць &URI...</translation>
|
||||
@@ -329,10 +317,6 @@
|
||||
<source>Bitcoin</source>
|
||||
<translation>Біткойн</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet</source>
|
||||
<translation>Гаманец</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Send</source>
|
||||
<translation>Даслаць</translation>
|
||||
@@ -687,10 +671,6 @@
|
||||
<source>Options</source>
|
||||
<translation>Опцыі</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MB</source>
|
||||
<translation>Мб</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>W&allet</source>
|
||||
<translation>Гаманец</translation>
|
||||
@@ -1202,6 +1182,9 @@
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletController</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
</context>
|
||||
|
||||
@@ -249,10 +249,6 @@
|
||||
<source>&Overview</source>
|
||||
<translation>&Баланс</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Node</source>
|
||||
<translation>Сървър</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show general overview of wallet</source>
|
||||
<translation>Обобщена информация за портфейла</translation>
|
||||
@@ -309,14 +305,6 @@
|
||||
<source>&Change Passphrase...</source>
|
||||
<translation>&Смяна на паролата...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Sending addresses...</source>
|
||||
<translation>&Изпращане на адресите...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Receiving addresses...</source>
|
||||
<translation>&Получаване на адресите...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open &URI...</source>
|
||||
<translation>Отвори &URI...</translation>
|
||||
@@ -325,10 +313,6 @@
|
||||
<source>Wallet:</source>
|
||||
<translation>Портфейл</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>default wallet</source>
|
||||
<translation>Портфейл по подразбиране</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Click to disable network activity.</source>
|
||||
<translation>Натиснете за деактивиране на мрежата</translation>
|
||||
@@ -377,10 +361,6 @@
|
||||
<source>Bitcoin</source>
|
||||
<translation>Биткоин</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet</source>
|
||||
<translation>Портфейл</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Send</source>
|
||||
<translation>&Изпращане</translation>
|
||||
@@ -485,6 +465,18 @@
|
||||
<source>Show the %1 help message to get a list with possible Bitcoin command-line options</source>
|
||||
<translation>Покажи %1 помощно съобщение за да получиш лист с възможни Биткойн команди</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>default wallet</source>
|
||||
<translation>Портфейл по подразбиране</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Window</source>
|
||||
<translation>&Прозорец</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Minimize</source>
|
||||
<translation>Минимизирай</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 client</source>
|
||||
<translation>%1 клиент</translation>
|
||||
@@ -867,10 +859,6 @@
|
||||
<source>Size of &database cache</source>
|
||||
<translation>Размер на кеша в &базата данни</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MB</source>
|
||||
<translation>Мегабайта</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Number of script &verification threads</source>
|
||||
<translation>Брой на скриптове и &нишки за потвърждение</translation>
|
||||
@@ -1384,10 +1372,6 @@
|
||||
<source>Clear console</source>
|
||||
<translation>Изчисти конзолата</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>default wallet</source>
|
||||
<translation>Портфейл по подразбиране</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>via %1</source>
|
||||
<translation>посредством %1</translation>
|
||||
@@ -2286,6 +2270,9 @@
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletController</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
<message>
|
||||
@@ -2299,7 +2286,11 @@
|
||||
<source>Send Coins</source>
|
||||
<translation>Изпращане</translation>
|
||||
</message>
|
||||
</context>
|
||||
<message>
|
||||
<source>default wallet</source>
|
||||
<translation>Портфейл по подразбиране</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletView</name>
|
||||
<message>
|
||||
|
||||
@@ -201,10 +201,6 @@
|
||||
<source>&Overview</source>
|
||||
<translation>Преглед</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Node</source>
|
||||
<translation>Възел</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show general overview of wallet</source>
|
||||
<translation>Покажи общ преглед на портфейла</translation>
|
||||
@@ -261,14 +257,6 @@
|
||||
<source>&Change Passphrase...</source>
|
||||
<translation>Промени паролата...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Sending addresses...</source>
|
||||
<translation>Адреси за пращане...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Receiving addresses...</source>
|
||||
<translation>Адреси за получаване...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open &URI...</source>
|
||||
<translation>Отвори URI</translation>
|
||||
@@ -277,10 +265,6 @@
|
||||
<source>Reindexing blocks on disk...</source>
|
||||
<translation>Повторно индексиране на блоковете на диска...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet</source>
|
||||
<translation>портфейл</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Send</source>
|
||||
<translation>&изпращам</translation>
|
||||
@@ -874,6 +858,9 @@
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletController</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
</context>
|
||||
|
||||
186
src/qt/locale/bitcoin_bn.ts
Normal file
186
src/qt/locale/bitcoin_bn.ts
Normal file
@@ -0,0 +1,186 @@
|
||||
<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>নতুন একটি ঠিকানা তৈরি করুন</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&New</source>
|
||||
<translation>নূতন</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy</source>
|
||||
<translation>কপি/প্রতিলিপি</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>C&lose</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>
|
||||
<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>WalletController</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletView</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>bitcoin-core</name>
|
||||
<message>
|
||||
<source>Do you want to rebuild the block database now?</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>
|
||||
</context>
|
||||
</TS>
|
||||
286
src/qt/locale/bitcoin_bs.ts
Normal file
286
src/qt/locale/bitcoin_bs.ts
Normal file
@@ -0,0 +1,286 @@
|
||||
<TS language="bs" version="2.1">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
<source>Right-click to edit address or label</source>
|
||||
<translation>Desni klik za uređivanje adrese ili oznake</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Create a new address</source>
|
||||
<translation>Napravite novu adresu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&New</source>
|
||||
<translation>&Nova</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy the currently selected address to the system clipboard</source>
|
||||
<translation>Kopirajte trenutno odabranu adresu u sistemski meduspremnik</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy</source>
|
||||
<translation>&Kopirajte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>C&lose</source>
|
||||
<translation>&Zatvorite</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete the currently selected address from the list</source>
|
||||
<translation>Izbrišite trenutno odabranu odresu sa liste</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter address or label to search</source>
|
||||
<translation>Unesite adresu ili oznaku za pretragu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export the data in the current tab to a file</source>
|
||||
<translation>Izvezite podatke trenutne kartice u datoteku</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Export</source>
|
||||
<translation>&Izvezite</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Delete</source>
|
||||
<translation>Iz&brišite</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose the address to send coins to</source>
|
||||
<translation>Izaberite adresu na koju ćete poslati novac</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose the address to receive coins with</source>
|
||||
<translation>Izaberite adresu na koju ćete primiti novac</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>C&hoose</source>
|
||||
<translation>&Izaberite</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sending addresses</source>
|
||||
<translation>Adrese pošiljalaca</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Receiving addresses</source>
|
||||
<translation>Adrese primalaca</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 za slanje novca. Uvijek provjerite iznos i adresu primaoca prije slanja novca.</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 novca. Preporučljivo je da koristite novu adresu primaoca za svaku transakciju.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy Address</source>
|
||||
<translation>&Kopirajte adresu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy &Label</source>
|
||||
<translation>Kopirajte &ozanku</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Edit</source>
|
||||
<translation>&Uredite</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export Address List</source>
|
||||
<translation>Izvezite listu adresa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Comma separated file (*.csv)</source>
|
||||
<translation>Datoteka podataka odvojenih zarezima (*.csv)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Exporting Failed</source>
|
||||
<translation>Izvoz neuspješan</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>There was an error trying to save the address list to %1. Please try again.</source>
|
||||
<translation>Došlo je do greške kod spašavanja liste adresa na %1. Molimo pokušajte ponovo.</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>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>
|
||||
<message>
|
||||
<source>Bitcoin</source>
|
||||
<translation>Bitcoin</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>
|
||||
</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>
|
||||
<message>
|
||||
<source>Comma separated file (*.csv)</source>
|
||||
<translation>Datoteka podataka odvojenih zarezima (*.csv)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Exporting Failed</source>
|
||||
<translation>Izvoz neuspješan</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletController</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletView</name>
|
||||
<message>
|
||||
<source>&Export</source>
|
||||
<translation>&Izvezite</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export the data in the current tab to a file</source>
|
||||
<translation>Izvezite podatke trenutne kartice u datoteku</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>bitcoin-core</name>
|
||||
<message>
|
||||
<source>Bitcoin Core</source>
|
||||
<translation>Bitcoin Jezrga</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
@@ -187,10 +187,6 @@
|
||||
<source>Wallet encrypted</source>
|
||||
<translation>Moneder encriptat</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>Ara es tancarà el %1 per finalitzar el procés d'encriptació. Recordeu que encriptar el vostre moneder no garanteix que les vostres bitcoins no puguin ser robades per programari maliciós que infecti l'ordinador.</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>IMPORTANT: Tota copia de seguretat que hàgiu realitzat hauria de ser reemplaçada pel, recentment generat, fitxer encriptat del moneder. Per motius de seguretat, les còpies de seguretat anteriors del fitxer de moneder no encriptat esdevindran inusables tan aviat com començar a utilitzar el nou moneder encriptat.</translation>
|
||||
@@ -253,10 +249,6 @@
|
||||
<source>&Overview</source>
|
||||
<translation>&Panorama general</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Node</source>
|
||||
<translation>Node</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show general overview of wallet</source>
|
||||
<translation>Mostra el panorama general del moneder</translation>
|
||||
@@ -313,14 +305,6 @@
|
||||
<source>&Change Passphrase...</source>
|
||||
<translation>&Canvia la contrasenya...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Sending addresses...</source>
|
||||
<translation>Adreces d'e&nviament...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Receiving addresses...</source>
|
||||
<translation>Adreces de &recepció...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open &URI...</source>
|
||||
<translation>Obre un &URI...</translation>
|
||||
@@ -329,10 +313,6 @@
|
||||
<source>Wallet:</source>
|
||||
<translation>Moneder:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>default wallet</source>
|
||||
<translation>moneder per defecte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Click to disable network activity.</source>
|
||||
<translation>Feu clic per inhabilitar l'activitat de la xarxa.</translation>
|
||||
@@ -385,10 +365,6 @@
|
||||
<source>Bitcoin</source>
|
||||
<translation>Bitcoin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet</source>
|
||||
<translation>Moneder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Send</source>
|
||||
<translation>&Envia</translation>
|
||||
@@ -453,10 +429,6 @@
|
||||
<source>&Command-line options</source>
|
||||
<translation>Opcions de la &línia d'ordres</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%n active connection(s) to Bitcoin network</source>
|
||||
<translation><numerusform>%n connexió activa a la xarxa Bitcoin</numerusform><numerusform>%n connexions actives a la xarxa Bitcoin</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Indexing blocks on disk...</source>
|
||||
<translation>S'estan indexant els blocs al disc...</translation>
|
||||
@@ -465,10 +437,6 @@
|
||||
<source>Processing blocks on disk...</source>
|
||||
<translation>S'estan processant els blocs al disc...</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>Processed %n block(s) of transaction history.</source>
|
||||
<translation><numerusform>Processat %n bloc de l'històric de transaccions.</numerusform><numerusform>Processats %n blocs de l'històric de transaccions.</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 behind</source>
|
||||
<translation>%1 darrere</translation>
|
||||
@@ -501,6 +469,18 @@
|
||||
<source>Show the %1 help message to get a list with possible Bitcoin command-line options</source>
|
||||
<translation>Mostra el missatge d'ajuda del %1 per obtenir una llista amb les possibles opcions de línia d'ordres de Bitcoin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>default wallet</source>
|
||||
<translation>moneder per defecte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Window</source>
|
||||
<translation>&Finestra</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Minimize</source>
|
||||
<translation>Minimitza</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 client</source>
|
||||
<translation>Client de %1</translation>
|
||||
@@ -888,15 +868,7 @@
|
||||
<source>Error</source>
|
||||
<translation>Error</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%n GB of free space available</source>
|
||||
<translation><numerusform>%n GB d'espai lliure disponible</numerusform><numerusform>%n GB d'espai lliure disponibles</numerusform></translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>(of %n GB needed)</source>
|
||||
<translation><numerusform>(de %n GB necessari)</numerusform><numerusform>(de %n GB necessaris)</numerusform></translation>
|
||||
</message>
|
||||
</context>
|
||||
</context>
|
||||
<context>
|
||||
<name>ModalOverlay</name>
|
||||
<message>
|
||||
@@ -943,11 +915,7 @@
|
||||
<source>Hide</source>
|
||||
<translation>Amaga</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown. Syncing Headers (%1)...</source>
|
||||
<translation>Desconegut. Sincronització de les capçaleres (%1)...</translation>
|
||||
</message>
|
||||
</context>
|
||||
</context>
|
||||
<context>
|
||||
<name>OpenURIDialog</name>
|
||||
<message>
|
||||
@@ -993,10 +961,6 @@
|
||||
<source>Size of &database cache</source>
|
||||
<translation>Mida de la memòria cau de la base de &dades</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MB</source>
|
||||
<translation>MB</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Number of script &verification threads</source>
|
||||
<translation>Nombre de fils de &verificació d'scripts</translation>
|
||||
@@ -1029,10 +993,6 @@
|
||||
<source>Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source>
|
||||
<translation>URL de terceres parts (p. ex. explorador de blocs) que apareix en la pestanya de transaccions com elements del menú contextual. %s en l'URL es reemplaçat pel resum de la transacció. Diferents URL estan separades per una barra vertical |.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Active command-line options that override above options:</source>
|
||||
<translation>Opcions de línies d'ordre active que sobreescriuen les opcions de dalt:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open the %1 configuration file from the working directory.</source>
|
||||
<translation>Obriu el fitxer de configuració %1 des del directori de treball.</translation>
|
||||
@@ -1481,34 +1441,10 @@
|
||||
<source>%1 ms</source>
|
||||
<translation>%1 ms</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%n second(s)</source>
|
||||
<translation><numerusform>%n segon</numerusform><numerusform>%n segons</numerusform></translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%n minute(s)</source>
|
||||
<translation><numerusform>%n minut</numerusform><numerusform>%n minuts</numerusform></translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%n hour(s)</source>
|
||||
<translation><numerusform>%n hora</numerusform><numerusform>%n hores</numerusform></translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%n day(s)</source>
|
||||
<translation><numerusform>%n dia</numerusform><numerusform>%n dies</numerusform></translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%n week(s)</source>
|
||||
<translation><numerusform>%n setmana</numerusform><numerusform>%n setmanes</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 and %2</source>
|
||||
<translation>%1 i %2</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%n year(s)</source>
|
||||
<translation><numerusform>%n any</numerusform><numerusform>%n anys</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 B</source>
|
||||
<translation>%1 B</translation>
|
||||
@@ -1814,10 +1750,6 @@
|
||||
<source>&Unban</source>
|
||||
<translation>Desbandeja per</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>default wallet</source>
|
||||
<translation>moneder per defecte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Welcome to the %1 RPC console.</source>
|
||||
<translation>Benvingut a la consola RPC de %1.</translation>
|
||||
@@ -2150,14 +2082,6 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1
|
||||
<source>Hide</source>
|
||||
<translation>Amaga</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source>
|
||||
<translation>No hi ha cap problema en pagar només la comissió mínima sempre que hi hagi menys volum de transacció que espai en els blocs. Però tingueu present que això pot acabar en una transacció que mai es confirmi una vegada hi hagi més demanda de transaccions de bitcoins que la xarxa pugui processar.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(read the tooltip)</source>
|
||||
<translation>(llegiu l'indicador de funció)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Recommended:</source>
|
||||
<translation>Recomanada:</translation>
|
||||
@@ -2306,10 +2230,6 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1
|
||||
<source>Payment request expired.</source>
|
||||
<translation>La sol·licitud de pagament ha vençut.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pay only the required fee of %1</source>
|
||||
<translation>Paga només la comissió necessària de %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: Invalid Bitcoin address</source>
|
||||
<translation>Avís: adreça Bitcoin no vàlida</translation>
|
||||
@@ -3016,6 +2936,9 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1
|
||||
<translation>Unitat en què mostrar els imports. Feu clic per seleccionar una altra unitat.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletController</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
<message>
|
||||
@@ -3065,6 +2988,10 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1
|
||||
<source>Could not commit transaction</source>
|
||||
<translation>No s'ha pogut confirmar la transacció</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>default wallet</source>
|
||||
<translation>moneder per defecte</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletView</name>
|
||||
@@ -3315,18 +3242,6 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1
|
||||
<source>Unable to bind to %s on this computer. %s is probably already running.</source>
|
||||
<translation>No es pot enllaçar a %s en aquest ordinador. %s probablement ja s'estigui executant.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unsupported argument -benchmark ignored, use -debug=bench.</source>
|
||||
<translation>S'ha ignorat l'argument no admès -benchmark , feu servir -debug=bench.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unsupported argument -debugnet ignored, use -debug=net.</source>
|
||||
<translation>S'ha ignorat l'argument no admès -debugnet, feu servir -debug=net.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unsupported argument -tor found, use -onion.</source>
|
||||
<translation>S'ha trobat un argument -tor no acceptat. Feu servir -onion.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unsupported logging category %s=%s.</source>
|
||||
<translation>Categoria de registre no admesa %s=%s.</translation>
|
||||
@@ -3363,10 +3278,6 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1
|
||||
<source>You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain</source>
|
||||
<translation>Cal que torneu a construir la base de dades fent servir -reindex per tornar al mode no podat. Això tornarà a baixar la cadena de blocs sencera</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error loading %s: You can't disable HD on an already existing HD wallet</source>
|
||||
<translation>S'ha produït un error en carregar %s: no es pot desactivar HD en un moneder HD ja existent</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error reading from database, shutting down.</source>
|
||||
<translation>Error en llegir la base de dades, tancant.</translation>
|
||||
@@ -3451,10 +3362,6 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1
|
||||
<source>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</source>
|
||||
<translation>-maxtxfee especificat molt alt! Comissions tan grans podrien pagar-se en una única transacció.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error loading %s: You can't enable HD on an already existing non-HD wallet</source>
|
||||
<translation>S'ha produït un error en carregar %s: no es pot activar HD en un moneder existent que no sigui HD</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This is the transaction fee you may pay when fee estimates are not available.</source>
|
||||
<translation>Aquesta és la tarifa de transacció que podeu pagar quan les estimacions de tarifes no estan disponibles.</translation>
|
||||
@@ -3467,18 +3374,6 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1
|
||||
<source>Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</source>
|
||||
<translation>La longitud total de la cadena de la versió de xarxa (%i) supera la longitud màxima (%i). Redueix el nombre o la mida de uacomments.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported.</source>
|
||||
<translation>S'ha trobat l'argument -socks no compatible. L'establiment de la versió SOCKS ja no és possible, només es permeten els servidors proxy SOCKS5.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unsupported argument -whitelistalwaysrelay ignored, use -whitelistrelay and/or -whitelistforcerelay.</source>
|
||||
<translation>S'ha ignorat l'argument no acceptat -whitelistalways, utilitza -whitelistrelay i/o -whitelistforcerelay.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: Unknown block versions being mined! It's possible unknown rules are in effect</source>
|
||||
<translation>Advertència: s'està minant versions de blocs desconegudes. És possible que s'estiguin aplicant regles desconegudes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: Wallet file corrupt, data salvaged! Original %s saved as %s in %s; if your balance or transactions are incorrect you should restore from a backup.</source>
|
||||
<translation>Advertència: el moender està malmès, les dades es recuperen! Original %s guardat com a %s en %s; si el vostre saldo o transaccions són incorrectes, haureu de restaurar des d'una còpia de seguretat.</translation>
|
||||
|
||||
@@ -237,10 +237,6 @@
|
||||
<source>&Overview</source>
|
||||
<translation>&Panorama general</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Node</source>
|
||||
<translation>Node</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show general overview of wallet</source>
|
||||
<translation>Mostra el panorama general del moneder</translation>
|
||||
@@ -285,14 +281,6 @@
|
||||
<source>&Change Passphrase...</source>
|
||||
<translation>&Canvia la contrasenya...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Sending addresses...</source>
|
||||
<translation>Adreces d'e&nviament...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Receiving addresses...</source>
|
||||
<translation>Adreces de &recepció</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open &URI...</source>
|
||||
<translation>Obri un &URI...</translation>
|
||||
@@ -329,10 +317,6 @@
|
||||
<source>Bitcoin</source>
|
||||
<translation>Bitcoin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet</source>
|
||||
<translation>Moneder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Send</source>
|
||||
<translation>&Envia</translation>
|
||||
@@ -425,6 +409,10 @@
|
||||
<source>Up to date</source>
|
||||
<translation>Al dia</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Window</source>
|
||||
<translation>&Finestra</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Catching up...</source>
|
||||
<translation>S'està posant al dia ...</translation>
|
||||
@@ -791,10 +779,6 @@
|
||||
<source>Size of &database cache</source>
|
||||
<translation>Mida de la memòria cau de la base de &dades</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MB</source>
|
||||
<translation>MB</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Number of script &verification threads</source>
|
||||
<translation>Nombre de fils de &verificació d'scripts</translation>
|
||||
@@ -811,10 +795,6 @@
|
||||
<source>Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source>
|
||||
<translation>URL de terceres parts (p. ex. explorador de blocs) que apareix en la pestanya de transaccions com elements del menú contextual. %s en l'URL es reemplaçat pel resum de la transacció. Diferents URL estan separades per una barra vertical |.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Active command-line options that override above options:</source>
|
||||
<translation>Opcions de línies d'orde active que sobreescriuen les opcions de dalt:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reset all client options to default.</source>
|
||||
<translation>Reestableix totes les opcions del client.</translation>
|
||||
@@ -1632,14 +1612,6 @@
|
||||
<source>Hide</source>
|
||||
<translation>Amaga</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source>
|
||||
<translation>No hi ha cap problema en pagar només la comissió mínima sempre que hi haja menys volum de transacció que espai en els blocs. Però tingueu present que això pot acabar en una transacció que mai es confirme una vegada hi haja més demanda de transaccions de bitcoins que la xarxa puga processar.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(read the tooltip)</source>
|
||||
<translation>(llegiu l'indicador de funció)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Recommended:</source>
|
||||
<translation>Recomanada:</translation>
|
||||
@@ -2406,6 +2378,9 @@
|
||||
<translation>Unitat en què mostrar els imports. Feu clic per seleccionar una altra unitat.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletController</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
<message>
|
||||
|
||||
@@ -183,10 +183,6 @@
|
||||
<source>Wallet encrypted</source>
|
||||
<translation>Moneder encriptat</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>Ara es tancarà el %1 per finalitzar el procés d'encriptació. Recordeu que encriptar el vostre moneder no garanteix que les vostres bitcoins no puguin ser robades per programari maliciós que infecti l'ordinador.</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>IMPORTANT: Tota copia de seguretat que hàgiu realitzat hauria de ser reemplaçada pel, recentment generat, fitxer encriptat del moneder. Per motius de seguretat, les còpies de seguretat anteriors del fitxer de moneder no encriptat esdevindran inusables tan aviat com començar a utilitzar el nou moneder encriptat.</translation>
|
||||
@@ -249,10 +245,6 @@
|
||||
<source>&Overview</source>
|
||||
<translation>&Panorama general</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Node</source>
|
||||
<translation>Node</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show general overview of wallet</source>
|
||||
<translation>Mostra el panorama general del moneder</translation>
|
||||
@@ -309,14 +301,6 @@
|
||||
<source>&Change Passphrase...</source>
|
||||
<translation>&Canvia la contrasenya...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Sending addresses...</source>
|
||||
<translation>Adreces d'e&nviament...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Receiving addresses...</source>
|
||||
<translation>Adreces de &recepció...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open &URI...</source>
|
||||
<translation>Obre un &URI...</translation>
|
||||
@@ -369,10 +353,6 @@
|
||||
<source>Bitcoin</source>
|
||||
<translation>Bitcoin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet</source>
|
||||
<translation>Moneder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Send</source>
|
||||
<translation>&Envia</translation>
|
||||
@@ -477,6 +457,14 @@
|
||||
<source>Show the %1 help message to get a list with possible Bitcoin command-line options</source>
|
||||
<translation>Mostra el missatge d'ajuda del %1 per obtenir una llista amb les possibles opcions de línia d'ordres de Bitcoin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Window</source>
|
||||
<translation>&Finestra</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Minimize</source>
|
||||
<translation>Minimitza</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 client</source>
|
||||
<translation>Client de %1</translation>
|
||||
@@ -861,11 +849,7 @@
|
||||
<source>Hide</source>
|
||||
<translation>Amaga</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown. Syncing Headers (%1)...</source>
|
||||
<translation>Desconegut. Sincronització de les capçaleres (%1)...</translation>
|
||||
</message>
|
||||
</context>
|
||||
</context>
|
||||
<context>
|
||||
<name>OpenURIDialog</name>
|
||||
<message>
|
||||
@@ -911,10 +895,6 @@
|
||||
<source>Size of &database cache</source>
|
||||
<translation>Mida de la memòria cau de la base de &dades</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MB</source>
|
||||
<translation>MB</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Number of script &verification threads</source>
|
||||
<translation>Nombre de fils de &verificació d'scripts</translation>
|
||||
@@ -931,10 +911,6 @@
|
||||
<source>Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source>
|
||||
<translation>URL de terceres parts (p. ex. explorador de blocs) que apareix en la pestanya de transaccions com elements del menú contextual. %s en l'URL es reemplaçat pel resum de la transacció. Diferents URL estan separades per una barra vertical |.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Active command-line options that override above options:</source>
|
||||
<translation>Opcions de línies d'ordre active que sobreescriuen les opcions de dalt:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open Configuration File</source>
|
||||
<translation>Obre el fitxer de configuració</translation>
|
||||
@@ -1864,14 +1840,6 @@
|
||||
<source>Hide</source>
|
||||
<translation>Amaga</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source>
|
||||
<translation>No hi ha cap problema en pagar només la comissió mínima sempre que hi hagi menys volum de transacció que espai en els blocs. Però tingueu present que això pot acabar en una transacció que mai es confirmi una vegada hi hagi més demanda de transaccions de bitcoins que la xarxa pugui processar.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(read the tooltip)</source>
|
||||
<translation>(llegiu l'indicador de funció)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Recommended:</source>
|
||||
<translation>Recomanada:</translation>
|
||||
@@ -2000,10 +1968,6 @@
|
||||
<source>Payment request expired.</source>
|
||||
<translation>La sol·licitud de pagament ha vençut.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pay only the required fee of %1</source>
|
||||
<translation>Paga només la comissió necessària de %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: Invalid Bitcoin address</source>
|
||||
<translation>Avís: adreça Bitcoin no vàlida</translation>
|
||||
@@ -2666,6 +2630,9 @@
|
||||
<translation>Unitat en què mostrar els imports. Feu clic per seleccionar una altra unitat.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletController</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
<message>
|
||||
|
||||
@@ -188,8 +188,8 @@
|
||||
<translation>Peněženka je zašifrována</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 se teď ukončí, aby dokončil zašifrování. Pamatuj však, že pouhé zašifrování peněženky nemůže zabránit krádeži tvých bitcoinů malwarem, kterým se může počítač nakazit.</translation>
|
||||
<source>Your wallet is now encrypted. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
|
||||
<translation>Vaše peněženka je nyní zašifrovaná. Pamatujte, že zašifrování peněženky nemůže plně ochránit vaše bitcoiny před krádeží, pokud by byl váš počítač napadem malwarem.</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>
|
||||
@@ -253,10 +253,6 @@
|
||||
<source>&Overview</source>
|
||||
<translation>&Přehled</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Node</source>
|
||||
<translation>Uzel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show general overview of wallet</source>
|
||||
<translation>Zobraz celkový přehled peněženky</translation>
|
||||
@@ -313,14 +309,6 @@
|
||||
<source>&Change Passphrase...</source>
|
||||
<translation>Změň &heslo...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Sending addresses...</source>
|
||||
<translation>Od&esílací adresy...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Receiving addresses...</source>
|
||||
<translation>Př&ijímací adresy...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open &URI...</source>
|
||||
<translation>Načíst &URI...</translation>
|
||||
@@ -329,10 +317,6 @@
|
||||
<source>Wallet:</source>
|
||||
<translation>Peněženka:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>default wallet</source>
|
||||
<translation>výchozí peněženka</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Click to disable network activity.</source>
|
||||
<translation>Kliknutím zařízneš spojení se sítí.</translation>
|
||||
@@ -385,10 +369,6 @@
|
||||
<source>Bitcoin</source>
|
||||
<translation>Bitcoin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet</source>
|
||||
<translation>Peněženka</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Send</source>
|
||||
<translation>P&ošli</translation>
|
||||
@@ -497,10 +477,66 @@
|
||||
<source>Up to date</source>
|
||||
<translation>Aktuální</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Sending addresses</source>
|
||||
<translation>Odesílací adresy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Receiving addresses</source>
|
||||
<translation>Přijímací adresy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open Wallet</source>
|
||||
<translation>Otevřít peněženku</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open a wallet</source>
|
||||
<translation>Otevřít peněženku</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Close Wallet...</source>
|
||||
<translation>Zavřít peněženku</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Close wallet</source>
|
||||
<translation>Zavřít peněženku</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show the %1 help message to get a list with possible Bitcoin command-line options</source>
|
||||
<translation>Seznam argumentů Bitcoinu pro příkazovou řádku získáš v nápovědě %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>default wallet</source>
|
||||
<translation>výchozí peněženka</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Opening Wallet <b>%1</b>...</source>
|
||||
<translation>Otevírám peněženku <b>%1</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open Wallet Failed</source>
|
||||
<translation>Otevírání peněženky selhalo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Window</source>
|
||||
<translation>O&kno</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Minimize</source>
|
||||
<translation>Skryj</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Zoom</source>
|
||||
<translation>Přiblížit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Restore</source>
|
||||
<translation>Obnovit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Main Window</source>
|
||||
<translation>Hlavní okno</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 client</source>
|
||||
<translation>%1 klient</translation>
|
||||
@@ -565,6 +601,10 @@
|
||||
<source>HD key generation is <b>disabled</b></source>
|
||||
<translation>HD generování klíčů je <b>vypnuté</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Private key <b>disabled</b></source>
|
||||
<translation>Privátní klíč <b>disabled</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet is <b>encrypted</b> and currently <b>unlocked</b></source>
|
||||
<translation>Peněženka je <b>zašifrovaná</b> a momentálně <b>odemčená</b></translation>
|
||||
@@ -842,7 +882,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched.</source>
|
||||
<translation>Jakmile stiskneš OK, %1 začne stahovat a zpracovávat celá %4ová bločenka (%2 GB), počínaje nejstaršími transakcemi z roku %3, kdy byl %4 spuštěn.</translation>
|
||||
<translation>Jakmile stiskneš OK, %1 začne stahovat a zpracovávat celý %4ový blockchain (%2 GB), počínaje nejstaršími transakcemi z roku %3, kdy byl %4 spuštěn.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</source>
|
||||
@@ -850,7 +890,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low.</source>
|
||||
<translation>Pokud jsi omezil úložný prostor pro bločenku (tj. povolil její prořezávání), tak se historická data sice stáhnou a zpracují, ale následně zase smažou, aby nezabírala na disku místo.</translation>
|
||||
<translation>Pokud jsi omezil úložný prostor pro blockchain (tj. povolil jeho prořezávání), tak se historická data sice stáhnou a zpracují, ale následně zase smažou, aby nezabírala na disku místo.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Use the default data directory</source>
|
||||
@@ -874,7 +914,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 will download and store a copy of the Bitcoin block chain.</source>
|
||||
<translation>%1 bude stahovat kopii bločenky.</translation>
|
||||
<translation>%1 bude stahovat kopii blockchainu.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The wallet will also be stored in this directory.</source>
|
||||
@@ -944,8 +984,8 @@
|
||||
<translation>Skryj</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown. Syncing Headers (%1)...</source>
|
||||
<translation>Neznámý. Synchronizuji záhlaví bloků (%1)…</translation>
|
||||
<source>Unknown. Syncing Headers (%1, %2%)...</source>
|
||||
<translation>Neznámé. Synchronizace hlaviček (%1, %2)...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -993,10 +1033,6 @@
|
||||
<source>Size of &database cache</source>
|
||||
<translation>Velikost &databázové cache</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MB</source>
|
||||
<translation>MB</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Number of script &verification threads</source>
|
||||
<translation>Počet vláken pro &verifikaci skriptů</translation>
|
||||
@@ -1029,10 +1065,6 @@
|
||||
<source>Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source>
|
||||
<translation>URL třetích stran (např. block exploreru), která se zobrazí v kontextovém menu v záložce Transakce. %s v URL se nahradí hashem transakce. Více URL odděl svislítkem |.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Active command-line options that override above options:</source>
|
||||
<translation>Aktivní argumenty z příkazové řádky, které přetloukly tato nastavení:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open the %1 configuration file from the working directory.</source>
|
||||
<translation>Otevře konfigurační soubor %1 z pracovního adresáře.</translation>
|
||||
@@ -1055,7 +1087,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Disables some advanced features but all blocks will still be fully validated. Reverting this setting requires re-downloading the entire blockchain. Actual disk usage may be somewhat higher.</source>
|
||||
<translation>Zakáže některé pokročilé funkce, ale všechny bloky budou stále plně otevřené. Obnovení tohoto nastavení vyžaduje opětovné převzetí celého blockchainu. Skutečné využít disku může být o něco vyšší.</translation>
|
||||
<translation>Zakáže některé pokročilé funkce, ale všechny bloky budou stále plně ověřené. Obnovení tohoto nastavení vyžaduje opětovné stažení celého blockchainu. Skutečné využítí disku může být o něco vyšší.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Prune &block storage to</source>
|
||||
@@ -1067,7 +1099,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Reverting this setting requires re-downloading the entire blockchain.</source>
|
||||
<translation>Obnovení tohoto nastavení vyžaduje opětovné převzetí celého blockchainu.</translation>
|
||||
<translation>Obnovení tohoto nastavení vyžaduje opětovné stažení celého blockchainu.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MiB</source>
|
||||
<translation>MiB</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(0 = auto, <0 = leave that many cores free)</source>
|
||||
@@ -1193,6 +1229,10 @@
|
||||
<source>&Third party transaction URLs</source>
|
||||
<translation>&URL třetích stran pro transakce</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Options set in this dialog are overridden by the command line or in the configuration file:</source>
|
||||
<translation>Nastavení v tomto dialogu jsou přepsány konzolí nebo konfiguračním souborem:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&OK</source>
|
||||
<translation>&Budiž</translation>
|
||||
@@ -1339,10 +1379,18 @@
|
||||
<source>'bitcoin://' is not a valid URI. Use 'bitcoin:' instead.</source>
|
||||
<translation>'bitcoin://' není platné URI. Místo toho použij 'bitcoin:'.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>You are using a BIP70 URL which will be unsupported in the future.</source>
|
||||
<translation>Používáte BIP70 URL, která nebude v budoucnosti podporovaná.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Payment request fetch URL is invalid: %1</source>
|
||||
<translation>Zdrojová URL platebního požadavku není platná: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cannot process payment request because BIP70 support was not compiled in.</source>
|
||||
<translation>Není možné zpracovat platební požadavek, protože podpora pro BIP70 platby nebyla přikompilována.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid payment address %1</source>
|
||||
<translation>Neplatná platební adresa %1</translation>
|
||||
@@ -1602,6 +1650,18 @@
|
||||
<source>Datadir</source>
|
||||
<translation>Adresář s daty</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>To specify a non-default location of the data directory use the '%1' option.</source>
|
||||
<translation>Pro specifikaci neklasické lokace pro data použij možnost '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Blocksdir</source>
|
||||
<translation>Blocksdir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>To specify a non-default location of the blocks directory use the '%1' option.</source>
|
||||
<translation>Pro specifikaci neklasické lokace pro data použij možnost '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Startup time</source>
|
||||
<translation>Čas spuštění</translation>
|
||||
@@ -1620,7 +1680,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Block chain</source>
|
||||
<translation>Bločenka</translation>
|
||||
<translation>Blockchain</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Current number of blocks</source>
|
||||
@@ -1814,10 +1874,6 @@
|
||||
<source>&Unban</source>
|
||||
<translation>&Odblokuj</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>default wallet</source>
|
||||
<translation>výchozí peněženka</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Welcome to the %1 RPC console.</source>
|
||||
<translation>Vítej v RPC konzoli %1.</translation>
|
||||
@@ -2124,7 +2180,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Using the fallbackfee can result in sending a transaction that will take several hours or days (or never) to confirm. Consider choosing your fee manually or wait until you have validated the complete chain.</source>
|
||||
<translation>Použití nouzového poplatku („fallbackfee“) může vyústit v transakci, které bude trvat hodiny nebo dny (případně věčnost), než bude potvrzena. Zvaž proto ruční nastavení poplatku, případně počkej, až se ti kompletně zvaliduje bločenka.</translation>
|
||||
<translation>Použití nouzového poplatku („fallbackfee“) může vyústit v transakci, které bude trvat hodiny nebo dny (případně věčnost), než bude potvrzena. Zvaž proto ruční nastavení poplatku, případně počkej, až se ti kompletně zvaliduje blockchain.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: Fee estimation is currently not possible.</source>
|
||||
@@ -2150,14 +2206,6 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa
|
||||
<source>Hide</source>
|
||||
<translation>Skryj</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source>
|
||||
<translation>Platit jen minimální poplatek je v pořádku, pokud je zrovna méně transakcí než místa v blocích. Ale počítej s tím, že to také může skončit transakcí, která nikdy nebude potvrzena, pokud je větší poptávka po bitcoinových transakcích, než síť zvládne zpracovat.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(read the tooltip)</source>
|
||||
<translation>(viz bublina)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Recommended:</source>
|
||||
<translation>Doporučený:</translation>
|
||||
@@ -2186,6 +2234,14 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa
|
||||
<source>Dust:</source>
|
||||
<translation>Prach:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source>
|
||||
<translation>Když je zde měně transakcí než místa na bloky, mineři stejně tak relay-e mohou nasadit minimální poplatky. Zaplacením pouze minimálního poplatku je v pohodě, ale mějte na paměti že toto může mít za následek nikdy neověřenou transakci pokud zde bude více bitcoinových transakcí než může síť zvládnout.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>A too low fee might result in a never confirming transaction (read the tooltip)</source>
|
||||
<translation>Příliš malý poplatek může způsobit, že transakce nebude nikdy potvrzena (přečtěte popis)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirmation time target:</source>
|
||||
<translation>Časové cílování potvrzení:</translation>
|
||||
@@ -2322,10 +2378,6 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa
|
||||
<source>Payment request expired.</source>
|
||||
<translation>Platební požadavek vypršel.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pay only the required fee of %1</source>
|
||||
<translation>Zaplatit pouze vyžadovaný poplatek %1</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>Estimated to begin confirmation within %n block(s).</source>
|
||||
<translation><numerusform>Potvrzování by podle odhadu mělo začít během %n bloku.</numerusform><numerusform>Potvrzování by podle odhadu mělo začít během %n bloků.</numerusform><numerusform>Potvrzování by podle odhadu mělo začít během %n bloků.</numerusform><numerusform>Potvrzování by podle odhadu mělo začít během %n bloků.</numerusform></translation>
|
||||
@@ -2749,7 +2801,7 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa
|
||||
</message>
|
||||
<message>
|
||||
<source>Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
|
||||
<translation>Vygenerované mince musí čekat %1 bloků, než mohou být utraceny. Když jsi vygeneroval tenhle blok, tak byl rozposlán do sítě, aby byl přidán do bločenky. Pokud se mu nepodaří dostat se do bločenky, změní se na „neakceptovaný“ a nepůjde utratit. To se občas může stát, pokud jiný uzel vygeneruje blok zhruba ve stejném okamžiku jako ty.</translation>
|
||||
<translation>Vygenerované mince musí čekat %1 bloků, než mohou být utraceny. Když jsi vygeneroval tenhle blok, tak byl rozposlán do sítě, aby byl přidán do blockchainu. Pokud se mu nepodaří dostat se do blockchainu, změní se na „neakceptovaný“ a nepůjde utratit. To se občas může stát, pokud jiný uzel vygeneruje blok zhruba ve stejném okamžiku jako ty.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Debug information</source>
|
||||
@@ -3060,6 +3112,21 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa
|
||||
<translation>Jednotka pro částky. Klikni pro výběr nějaké jiné.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletController</name>
|
||||
<message>
|
||||
<source>Close wallet</source>
|
||||
<translation>Zavřít peněženku</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Are you sure you wish to close wallet <i>%1</i>?</source>
|
||||
<translation>Ste si jist že chete zavřít peněženku <i>%1</i></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled.</source>
|
||||
<translation>Zavření peněženky na příliš dlouhou dobu může vyústit v potřebu resynchronizace celého blockchainu pokud je zapnuté prořezávání.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
<message>
|
||||
@@ -3109,6 +3176,10 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa
|
||||
<source>Could not commit transaction</source>
|
||||
<translation>Nemohl jsem uložit transakci do peněženky</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>default wallet</source>
|
||||
<translation>výchozí peněženka</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletView</name>
|
||||
@@ -3161,11 +3232,11 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa
|
||||
</message>
|
||||
<message>
|
||||
<source>Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node)</source>
|
||||
<translation>Prořezávání: poslední synchronizace peněženky proběhla před už prořezanými daty. Je třeba provést -reindex (tedy v případě prořezávacího režimu stáhnout znovu celou bločenku)</translation>
|
||||
<translation>Prořezávání: poslední synchronizace peněženky proběhla před už prořezanými daty. Je třeba provést -reindex (tedy v případě prořezávacího režimu stáhnout znovu celý blockchain)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Rescans are not possible in pruned mode. You will need to use -reindex which will download the whole blockchain again.</source>
|
||||
<translation>V prořezávacím režimu není možné bločenku přeskenovávat. Musíš provést -reindex, což ji znovu celou stáhne.</translation>
|
||||
<translation>V prořezávacím režimu není možné blockchain přeskenovávat. Musíš provést -reindex, což jej znovu celý stáhne.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error: A fatal internal error occurred, see debug.log for details</source>
|
||||
@@ -3187,6 +3258,10 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa
|
||||
<source>The %s developers</source>
|
||||
<translation>Vývojáři %s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Can't generate a change-address key. No keys in the internal keypool and can't generate any keys.</source>
|
||||
<translation>Nelze vygenerovat klíč pro změnu adresy. Nejsou žádní klíče v key-poolu a tedy nemůžeme žádné klíče vygenerovat.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cannot obtain a lock on data directory %s. %s is probably already running.</source>
|
||||
<translation>Nedaří se mi získat zámek na datový adresář %s. %s pravděpodobně už jednou běží.</translation>
|
||||
@@ -3199,10 +3274,6 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa
|
||||
<source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source>
|
||||
<translation>Nastala chyba při čtení souboru %s! Všechny klíče se přečetly správně, ale data o transakcích nebo záznamy v adresáři mohou chybět či být nesprávné.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Group outputs by address, selecting all or none, instead of selecting on a per-output basis. Privacy is improved as an address is only used once (unless someone sends to it after spending from it), but may result in slightly higher fees as suboptimal coin selection may result due to the added limitation (default: %u)</source>
|
||||
<translation>Seskupení výstupů podle adresy, při výběru všech nebo žádných, namísto výběru báze za výstup. Zvýšena ochrana soukromí, protože je adresa použita pouze jednou (pokud nikdo na tuto adresu již nic po minutě nepošle). Může být spojeno s vyššími poplatky, jelikož neoptimalizovaný výběr mincí může vyústit v přidané omezení (předvolené: %u)</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>Zkontroluj, že máš v počítači správně nastavený datum a čas! Pokud jsou nastaveny špatně, %s nebude fungovat správně.</translation>
|
||||
@@ -3229,7 +3300,7 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa
|
||||
</message>
|
||||
<message>
|
||||
<source>Unable to rewind the database to a pre-fork state. You will need to redownload the blockchain</source>
|
||||
<translation>Nedaří se mi vrátit databázi do stavu před štěpem. Budeš muset znovu stáhnout celou bločenku</translation>
|
||||
<translation>Nedaří se mi vrátit databázi do stavu před štěpem. Budeš muset znovu stáhnout celý blockchain</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues.</source>
|
||||
@@ -3259,6 +3330,10 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa
|
||||
<source>Change index out of range</source>
|
||||
<translation>Index drobných je mimo platný rozsah</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Config setting for %s only applied on %s network when in [%s] section.</source>
|
||||
<translation>Nastavení pro %s je nastaveno pouze na síťi %s pokud jste v sekci [%s]</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copyright (C) %i-%i</source>
|
||||
<translation>Copyright (C) %i–%i</translation>
|
||||
@@ -3271,10 +3346,6 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa
|
||||
<source>Do you want to rebuild the block database now?</source>
|
||||
<translation>Chceš přestavět databázi bloků hned teď?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error creating %s: You can't create non-HD wallets with this version.</source>
|
||||
<translation>Chyba při vytváření %s: v této verzi nemůžeš vytvářeš ne-HD peněženky.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error initializing block database</source>
|
||||
<translation>Chyba při zakládání databáze bloků</translation>
|
||||
@@ -3347,6 +3418,10 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa
|
||||
<source>Specified blocks directory "%s" does not exist.</source>
|
||||
<translation>Zadaný adresář bloků "%s" neexistuje.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unable to create the PID file '%s': %s</source>
|
||||
<translation>Nebylo možné vytvořit soubor PID '%s': %s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Upgrading txindex database</source>
|
||||
<translation>Aktualizuje se txindex databáze</translation>
|
||||
@@ -3395,18 +3470,6 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa
|
||||
<source>Unable to generate keys</source>
|
||||
<translation>Nepodařilo se vygenerovat klíče</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unsupported argument -benchmark ignored, use -debug=bench.</source>
|
||||
<translation>Nepodporovaný argument -benchmark se ignoruje, použij -debug=bench.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unsupported argument -debugnet ignored, use -debug=net.</source>
|
||||
<translation>Nepodporovaný argument -debugnet se ignoruje, použij -debug=net.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unsupported argument -tor found, use -onion.</source>
|
||||
<translation>Argument -tor již není podporovaný, použij -onion.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unsupported logging category %s=%s.</source>
|
||||
<translation>Nepodporovaná logovací kategorie %s=%s.</translation>
|
||||
@@ -3441,11 +3504,7 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa
|
||||
</message>
|
||||
<message>
|
||||
<source>You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain</source>
|
||||
<translation>K návratu k neprořezávacímu režimu je potřeba přestavět databázi použitím -reindex. Také se znovu stáhne celá bločenka</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error loading %s: You can't disable HD on an already existing HD wallet</source>
|
||||
<translation>Chyba při načítání %s: nemůžeš vypnout HD u existující HD peněženky</translation>
|
||||
<translation>K návratu k neprořezávacímu režimu je potřeba přestavět databázi použitím -reindex. Také se znovu stáhne celý blockchain</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error reading from database, shutting down.</source>
|
||||
@@ -3453,7 +3512,11 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa
|
||||
</message>
|
||||
<message>
|
||||
<source>Error upgrading chainstate database</source>
|
||||
<translation>Chyba při aktualizaci stavové databáze bločenky</translation>
|
||||
<translation>Chyba při aktualizaci stavové databáze blockchainu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error: Disk space is low for %s</source>
|
||||
<translation>Chyba: Málo místa na disku pro %s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Information</source>
|
||||
@@ -3483,6 +3546,10 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa
|
||||
<source>Reducing -maxconnections from %d to %d, because of system limitations.</source>
|
||||
<translation>Omezuji -maxconnections z %d na %d kvůli systémovým omezením.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Section [%s] is not recognized.</source>
|
||||
<translation>Sekce [%s] nebyla rozpoznána.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Signing transaction failed</source>
|
||||
<translation>Nepodařilo se podepsat transakci</translation>
|
||||
@@ -3499,6 +3566,12 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa
|
||||
<source>Specified -walletdir "%s" is not a directory</source>
|
||||
<translation>Uvedená -walletdir "%s" není složkou</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The specified config file %s does not exist
|
||||
</source>
|
||||
<translation>Uvedený konfigurační soubor %s neexistuje
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The transaction amount is too small to pay the fee</source>
|
||||
<translation>Částka v transakci je příliš malá na pokrytí poplatku</translation>
|
||||
@@ -3551,10 +3624,6 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa
|
||||
<source>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</source>
|
||||
<translation>-maxtxfee je nastaveno velmi vysoko! Takto vysoký poplatek může být zaplacen v jednotlivé transakci.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error loading %s: You can't enable HD on an already existing non-HD wallet</source>
|
||||
<translation>Chyba při načítání %s: nemůžeš zapnout HD u existující ne-HD peněženky</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This is the transaction fee you may pay when fee estimates are not available.</source>
|
||||
<translation>Toto je transakční poplatek, který se platí, pokud náhodou není k dispozici odhad poplatků.</translation>
|
||||
@@ -3567,18 +3636,6 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa
|
||||
<source>Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</source>
|
||||
<translation>Celková délka síťového identifikačního řetězce (%i) překročila svůj horní limit (%i). Omez počet nebo velikost voleb uacomment.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported.</source>
|
||||
<translation>Byl použit nepodporovaný argument -socks. Nastavení verze SOCKS už není možné, podporovány jsou pouze SOCKS5 proxy.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unsupported argument -whitelistalwaysrelay ignored, use -whitelistrelay and/or -whitelistforcerelay.</source>
|
||||
<translation>Nepodporovaný argument -whitelistalwaysrelay se ignoruje, použij -whitelistrelay a/nebo -whitelistforcerelay.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: Unknown block versions being mined! It's possible unknown rules are in effect</source>
|
||||
<translation>Upozornění: Síť těží neznámé verze bloků! Je možné, že jsou v platnosti neznámá pravidla</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: Wallet file corrupt, data salvaged! Original %s saved as %s in %s; if your balance or transactions are incorrect you should restore from a backup.</source>
|
||||
<translation>Upozornění: soubor s peněženkou je poškozený, data jsou však zachráněna! Původní soubor %s je uložený jako %s v %s. Pokud nejsou stav tvého účtu nebo transakce v pořádku, zřejmě bys měl obnovit zálohu.</translation>
|
||||
@@ -3631,10 +3688,6 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa
|
||||
<source>Insufficient funds</source>
|
||||
<translation>Nedostatek prostředků</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Can't generate a change-address key. Private keys are disabled for this wallet.</source>
|
||||
<translation>Není možné vygenerovat klíč na změnu adresy. Soukromé klíče jsou pro tuto peněženku zakázané.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cannot upgrade a non HD split wallet without upgrading to support pre split keypool. Please use -upgradewallet=169900 or -upgradewallet with no version specified.</source>
|
||||
<translation>Není možné vylepšit peněženku bez HD bez aktualizace, která podporuje dělení keypoolu. Použijte prosím -upgradewallet=169900 nebo -upgradewallet bez specifikované verze.</translation>
|
||||
|
||||
686
src/qt/locale/bitcoin_cs_CZ.ts
Normal file
686
src/qt/locale/bitcoin_cs_CZ.ts
Normal file
@@ -0,0 +1,686 @@
|
||||
<TS language="cs_CZ" version="2.1">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
<source>Right-click to edit address or label</source>
|
||||
<translation>Pravým klikem editujte adresu nebo popisek</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Create a new address</source>
|
||||
<translation>Vytvořit novou adresu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&New</source>
|
||||
<translation>&Nový</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy the currently selected address to the system clipboard</source>
|
||||
<translation>Kopírovat aktuálně vybrané adresy do schránky</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy</source>
|
||||
<translation>&Kopírovat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>C&lose</source>
|
||||
<translation>Z&avřít</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete the currently selected address from the list</source>
|
||||
<translation>Odstraní aktuálně vybrané adresy ze seznamu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export the data in the current tab to a file</source>
|
||||
<translation>Exportovat aktuální pohled do souboru</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Export</source>
|
||||
<translation>&Exportovat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Delete</source>
|
||||
<translation>&Odstranit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>C&hoose</source>
|
||||
<translation>V&ybrat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy Address</source>
|
||||
<translation>&Kopírovat adresu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Edit</source>
|
||||
<translation>&Upravit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Comma separated file (*.csv)</source>
|
||||
<translation>Textový soubor oddělený středníkem (*.csv)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AddressTableModel</name>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Popis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>Adresa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(bez popisu)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AskPassphraseDialog</name>
|
||||
<message>
|
||||
<source>Enter passphrase</source>
|
||||
<translation>Zadej heslo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New passphrase</source>
|
||||
<translation>Nové heslo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Repeat new passphrase</source>
|
||||
<translation>Zopakujte nové heslo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show password</source>
|
||||
<translation>Zobrazit heslo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Encrypt wallet</source>
|
||||
<translation>Zašifrovat peněženku</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This operation needs your wallet passphrase to unlock the wallet.</source>
|
||||
<translation>Tato operace vyžaduje heslo k odemknutí peněženky.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unlock wallet</source>
|
||||
<translation>Odemknout peněženku</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This operation needs your wallet passphrase to decrypt the wallet.</source>
|
||||
<translation>Tato operace vyžaduje heslo k dešifrování peněženky.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Decrypt wallet</source>
|
||||
<translation>Dešifrovat peněženku</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Change passphrase</source>
|
||||
<translation>Změnit heslo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirm wallet encryption</source>
|
||||
<translation>Potvrďte zašifrování peněženky</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet encrypted</source>
|
||||
<translation>Peněženka zašifrována</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet encryption failed</source>
|
||||
<translation>Zašifrování peněženky selhalo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
|
||||
<translation>Šifrování peněženky selhalo vinou vnitřní chyby. Vaše peněženka nebyla zašifrována.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The supplied passphrases do not match.</source>
|
||||
<translation>Zadaná hesla nejsou shodná.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet unlock failed</source>
|
||||
<translation>Odemčení peněženky selhalo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The passphrase entered for the wallet decryption was incorrect.</source>
|
||||
<translation>Heslo zadané k dešifrování peněženky nebylo správné</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet decryption failed</source>
|
||||
<translation>Deěifrování peněženky selhalo</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BanTableModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>BitcoinGUI</name>
|
||||
<message>
|
||||
<source>Synchronizing with network...</source>
|
||||
<translation>Synchronizuji se sítí...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Overview</source>
|
||||
<translation>&Přehled</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show general overview of wallet</source>
|
||||
<translation>Zobrazit základní přehled o peněžence</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Transactions</source>
|
||||
<translation>&Transakce</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Browse transaction history</source>
|
||||
<translation>Procházení historií transakcí</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Quit application</source>
|
||||
<translation>Ukončit aplikaci</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Options...</source>
|
||||
<translation>&Možnosti...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Change the passphrase used for wallet encryption</source>
|
||||
<translation>Změnit heslo k šifrování peněženky</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bitcoin</source>
|
||||
<translation>Bitcoin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&File</source>
|
||||
<translation>&Soubor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Settings</source>
|
||||
<translation>&Nastavení</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Help</source>
|
||||
<translation>Nápo&věda</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tabs toolbar</source>
|
||||
<translation>Panely</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Up to date</source>
|
||||
<translation>Aktuální</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Catching up...</source>
|
||||
<translation>Zachytávám...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sent transaction</source>
|
||||
<translation>Odeslané transakce</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Incoming transaction</source>
|
||||
<translation>Příchozí transakce</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet is <b>encrypted</b> and currently <b>unlocked</b></source>
|
||||
<translation>Peněženka je <b>zašifrována</b> a momentálně <b>odemčená</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet is <b>encrypted</b> and currently <b>locked</b></source>
|
||||
<translation>Peněženka je <b>zašifrována</b> a momentálně <b>uzamčená</b></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CoinControlDialog</name>
|
||||
<message>
|
||||
<source>Amount:</source>
|
||||
<translation>Množství:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Amount</source>
|
||||
<translation>Množství</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Datum</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirmed</source>
|
||||
<translation>Potvrzeno</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy address</source>
|
||||
<translation>Kopírovat sdresu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy label</source>
|
||||
<translation>Kopírovat popis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(bez popisu)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditAddressDialog</name>
|
||||
<message>
|
||||
<source>Edit Address</source>
|
||||
<translation>Upravit adresu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Label</source>
|
||||
<translation>&Popisek</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Address</source>
|
||||
<translation>&Adresa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New sending address</source>
|
||||
<translation>Nová adresa k odeslání</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Edit receiving address</source>
|
||||
<translation>Upravit adresu pro příjem</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Edit sending address</source>
|
||||
<translation>Upravit adresu k odeslání</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Could not unlock wallet.</source>
|
||||
<translation>Nemohu odemknout peněženku</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New key generation failed.</source>
|
||||
<translation>Generování nového klíče selhalo.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>FreespaceChecker</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>HelpMessageDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>Intro</name>
|
||||
<message>
|
||||
<source>Bitcoin</source>
|
||||
<translation>Bitcoin</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ModalOverlay</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OpenURIDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>OptionsDialog</name>
|
||||
<message>
|
||||
<source>Options</source>
|
||||
<translation>Možnosti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Map port using &UPnP</source>
|
||||
<translation>Mapovat port pomocí &UPnP</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Minimize to the tray instead of the taskbar</source>
|
||||
<translation>&Minimalizovat do systémové lišty (tray) namísto do hlavního panelu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>M&inimize on close</source>
|
||||
<translation>M&inimalizovat při zavření</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>Množství</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject::QObject</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>QRImageWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>RPCConsole</name>
|
||||
<message>
|
||||
<source>Name</source>
|
||||
<translation>Jméno</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveCoinsDialog</name>
|
||||
<message>
|
||||
<source>&Label:</source>
|
||||
<translation>&Popisek:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Message:</source>
|
||||
<translation>Zpráva:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy label</source>
|
||||
<translation>Kopírovat popis</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveRequestDialog</name>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>Adresa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Amount</source>
|
||||
<translation>Množství</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Popis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Message</source>
|
||||
<translation>Zpráva</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet</source>
|
||||
<translation>Peněženka</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RecentRequestsTableModel</name>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Datum</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Popis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Message</source>
|
||||
<translation>Zpráva</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(bez popisu)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsDialog</name>
|
||||
<message>
|
||||
<source>Amount:</source>
|
||||
<translation>Množství:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Balance:</source>
|
||||
<translation>Zůstatek:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The amount to pay must be larger than 0.</source>
|
||||
<translation>Částka k zaplacení musí být větší než 0.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(bez popisu)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendCoinsEntry</name>
|
||||
<message>
|
||||
<source>&Label:</source>
|
||||
<translation>&Popisek:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Message:</source>
|
||||
<translation>Zpráva:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SendConfirmationDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShutdownWindow</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SignVerifyMessageDialog</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>SplashScreen</name>
|
||||
<message>
|
||||
<source>[testnet]</source>
|
||||
<translation>[testnet]</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TrafficGraphWidget</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDesc</name>
|
||||
<message>
|
||||
<source>%1/unconfirmed</source>
|
||||
<translation>%1 potvrzeno</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 confirmations</source>
|
||||
<translation>%1 potvrzení</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Status</source>
|
||||
<translation>Stav</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Datum</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Message</source>
|
||||
<translation>Zpráva</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transaction</source>
|
||||
<translation>Transakce</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Amount</source>
|
||||
<translation>Množství</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDescDialog</name>
|
||||
<message>
|
||||
<source>This pane shows a detailed description of the transaction</source>
|
||||
<translation>Toto podokno zobrazuje detailní popis transakce</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionTableModel</name>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Datum</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Type</source>
|
||||
<translation>Typ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Popis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirmed (%1 confirmations)</source>
|
||||
<translation>Potvrzeno (%1 potvrzení)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Received with</source>
|
||||
<translation>Přijato s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sent to</source>
|
||||
<translation>Odesláno na</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Payment to yourself</source>
|
||||
<translation>Platba sobě samému</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mined</source>
|
||||
<translation>Vytěženo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(no label)</source>
|
||||
<translation>(bez popisu)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Type of transaction.</source>
|
||||
<translation>Typ transakce.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionView</name>
|
||||
<message>
|
||||
<source>All</source>
|
||||
<translation>Vše</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Today</source>
|
||||
<translation>Dnes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This week</source>
|
||||
<translation>Tento týden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This month</source>
|
||||
<translation>Tento měsíc</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Last month</source>
|
||||
<translation>Minulý měsíc</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This year</source>
|
||||
<translation>Tento rok</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Range...</source>
|
||||
<translation>Rozsah...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Received with</source>
|
||||
<translation>Přijato s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sent to</source>
|
||||
<translation>Odesláno na</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>To yourself</source>
|
||||
<translation>Sobě samému</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mined</source>
|
||||
<translation>Vytěženo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Other</source>
|
||||
<translation>Ostatní</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Min amount</source>
|
||||
<translation>Min. množství</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy address</source>
|
||||
<translation>Kopírovat sdresu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy label</source>
|
||||
<translation>Kopírovat popis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Edit label</source>
|
||||
<translation>Upravit popis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Comma separated file (*.csv)</source>
|
||||
<translation>Textový soubor oddělený středníkem (*.csv)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirmed</source>
|
||||
<translation>Potvrzeno</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Datum</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Type</source>
|
||||
<translation>Typ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation>Popis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Address</source>
|
||||
<translation>Adresa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>ID</source>
|
||||
<translation>ID</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Range:</source>
|
||||
<translation>Rozsah:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletController</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletModel</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletView</name>
|
||||
<message>
|
||||
<source>&Export</source>
|
||||
<translation>&Exportovat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export the data in the current tab to a file</source>
|
||||
<translation>Exportovat aktuální pohled do souboru</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>bitcoin-core</name>
|
||||
<message>
|
||||
<source>Loading wallet...</source>
|
||||
<translation>Načítání peněženky...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Done loading</source>
|
||||
<translation>Načítání dokončeno</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
@@ -175,10 +175,6 @@
|
||||
<source>Wallet encrypted</source>
|
||||
<translation>Waled Wedi Amgryptio</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>Bydd %1 nawr yn gorffen y broses amgryptio. Cofiwch nad ydy amgryptio eich waled yn llawn amddiffyn eich bitcoins rhag cael eu dwyn gan afiechyd yn heintio eich cyfrifiadur.</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>PWYSIG: Mi ddylai unrhyw back ups blaenorol rydych wedi ei wneud o ffeil eich waled gael ei ddiweddaru efo'r ffeil amgryptiedig newydd ei chreu. Am resymau diogelwch, bydd back ups blaenorol o ffeil y walet heb amgryptio yn ddiwerth mor fuan ac yr ydych yn dechrau defnyddio'r waled amgryptiedig newydd.</translation>
|
||||
@@ -241,10 +237,6 @@
|
||||
<source>&Overview</source>
|
||||
<translation>&Trosolwg</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Node</source>
|
||||
<translation>Nod</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show general overview of wallet</source>
|
||||
<translation>Dangos trosolwg cyffredinol y waled</translation>
|
||||
@@ -301,14 +293,6 @@
|
||||
<source>&Change Passphrase...</source>
|
||||
<translation>&Newid cyfrinymadrodd...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Sending addresses...</source>
|
||||
<translation>&Cyfeiriadau anfon...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Receiving addresses...</source>
|
||||
<translation>&Cyfeiriadau derbyn...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open &URI...</source>
|
||||
<translation>Agor &URI...</translation>
|
||||
@@ -357,10 +341,6 @@
|
||||
<source>Bitcoin</source>
|
||||
<translation>Bitcoin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet</source>
|
||||
<translation>Waled</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Send</source>
|
||||
<translation>&Anfon</translation>
|
||||
@@ -461,6 +441,10 @@
|
||||
<source>Up to date</source>
|
||||
<translation>Cyfamserol</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Window</source>
|
||||
<translation>&Ffenestr</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Connecting to peers...</source>
|
||||
<translation>Cysylltu efo cyfoedion...</translation>
|
||||
@@ -1006,6 +990,9 @@
|
||||
<context>
|
||||
<name>UnitDisplayStatusBarControl</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletController</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
</context>
|
||||
|
||||
@@ -188,8 +188,8 @@
|
||||
<translation>Tegnebog krypteret</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 nu lukke for at færdiggøre krypteringsprocessen. Husk at kryptering af din tegnebog kan ikke beskytte dine bitcoin fuldt ud mod at blive stjålet af eventuel malware, der måtte have inficeret din computer.</translation>
|
||||
<source>Your wallet is now encrypted. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
|
||||
<translation>Din tegnebog er nu krypteret. Husk at kryptering af din tegnebog ikke kan fuldt ud beskytte dine bitcoins imod tyveri fra malware der inficerer din computer.</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>
|
||||
@@ -253,10 +253,6 @@
|
||||
<source>&Overview</source>
|
||||
<translation>&Oversigt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Node</source>
|
||||
<translation>Knude</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show general overview of wallet</source>
|
||||
<translation>Vis generel oversigt over tegnebog</translation>
|
||||
@@ -313,14 +309,6 @@
|
||||
<source>&Change Passphrase...</source>
|
||||
<translation>&Skift adgangskode…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Sending addresses...</source>
|
||||
<translation>&Afsendelsesadresser…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Receiving addresses...</source>
|
||||
<translation>&Modtagelsesadresser…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open &URI...</source>
|
||||
<translation>&Åbn URI…</translation>
|
||||
@@ -329,10 +317,6 @@
|
||||
<source>Wallet:</source>
|
||||
<translation>Tegnebog:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>default wallet</source>
|
||||
<translation>Standard tegnebog</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Click to disable network activity.</source>
|
||||
<translation>Klik for at deaktivere netværksaktivitet.</translation>
|
||||
@@ -385,10 +369,6 @@
|
||||
<source>Bitcoin</source>
|
||||
<translation>Bitcoin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet</source>
|
||||
<translation>Tegnebog</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Send</source>
|
||||
<translation>&Send</translation>
|
||||
@@ -497,10 +477,66 @@
|
||||
<source>Up to date</source>
|
||||
<translation>Opdateret</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Sending addresses</source>
|
||||
<translation>&Afsenderadresser</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Receiving addresses</source>
|
||||
<translation>&Modtageradresser</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open Wallet</source>
|
||||
<translation>Åben Tegnebog</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open a wallet</source>
|
||||
<translation>Åben en tegnebog</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Close Wallet...</source>
|
||||
<translation>Luk Tegnebog...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Close wallet</source>
|
||||
<translation>Luk tegnebog</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show the %1 help message to get a list with possible Bitcoin command-line options</source>
|
||||
<translation>Vis %1 hjælpebesked for at få en liste over mulige tilvalg for Bitcoin kommandolinje</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>default wallet</source>
|
||||
<translation>Standard tegnebog</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Opening Wallet <b>%1</b>...</source>
|
||||
<translation>Åbner Tegnebog <b>%1</b>...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open Wallet Failed</source>
|
||||
<translation>Åben Tegnebog Fejlede</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Window</source>
|
||||
<translation>&Vindue</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Minimize</source>
|
||||
<translation>Minimér</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Zoom</source>
|
||||
<translation>Zoom</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Restore</source>
|
||||
<translation>Gendan</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Main Window</source>
|
||||
<translation>Hoved Vindue</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 client</source>
|
||||
<translation>%1-klient</translation>
|
||||
@@ -565,6 +601,10 @@
|
||||
<source>HD key generation is <b>disabled</b></source>
|
||||
<translation>Generering af HD-nøgler er <b>deaktiveret</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Private key <b>disabled</b></source>
|
||||
<translation>Private nøgle <b>deaktiveret</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet is <b>encrypted</b> and currently <b>unlocked</b></source>
|
||||
<translation>Tegnebog er <b>krypteret</b> og i øjeblikket <b>ulåst</b></translation>
|
||||
@@ -944,8 +984,8 @@
|
||||
<translation>Skjul</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown. Syncing Headers (%1)...</source>
|
||||
<translation>Ukendt. Synkroniserer hoveder (%1)…</translation>
|
||||
<source>Unknown. Syncing Headers (%1, %2%)...</source>
|
||||
<translation>Ukendt. Synkroniserer Hoveder (%1, %2%)...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -993,10 +1033,6 @@
|
||||
<source>Size of &database cache</source>
|
||||
<translation>Størrelsen på &databasens cache</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MB</source>
|
||||
<translation>MB</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Number of script &verification threads</source>
|
||||
<translation>Antallet af script&verificeringstråde</translation>
|
||||
@@ -1029,10 +1065,6 @@
|
||||
<source>Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source>
|
||||
<translation>Tredjeparts-URL'er (fx et blokhåndteringsværktøj), der vises i transaktionsfanen som genvejsmenupunkter. %s i URL'en erstattes med transaktionens hash. Flere URL'er separeres med en lodret streg |.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Active command-line options that override above options:</source>
|
||||
<translation>Aktuelle tilvalg for kommandolinjen, der tilsidesætter ovenstående tilvalg:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open the %1 configuration file from the working directory.</source>
|
||||
<translation>Åbn konfigurationsfilen for %1 fra arbejdsmappen.</translation>
|
||||
@@ -1069,6 +1101,10 @@
|
||||
<source>Reverting this setting requires re-downloading the entire blockchain.</source>
|
||||
<translation>Tilbagevending af denne indstilling kræver afhentning af hele blokkæden igen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MiB</source>
|
||||
<translation>MiB</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(0 = auto, <0 = leave that many cores free)</source>
|
||||
<translation>(0 = auto, <0 = efterlad så mange kerner fri)</translation>
|
||||
@@ -1193,6 +1229,10 @@
|
||||
<source>&Third party transaction URLs</source>
|
||||
<translation>&Tredjeparts-transaktions-URL'er</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Options set in this dialog are overridden by the command line or in the configuration file:</source>
|
||||
<translation>Valgmuligheder sat i denne dialog er overskrevet af kommandolinjen eller i konfigurationsfilen:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&OK</source>
|
||||
<translation>&Ok</translation>
|
||||
@@ -1339,10 +1379,18 @@
|
||||
<source>'bitcoin://' is not a valid URI. Use 'bitcoin:' instead.</source>
|
||||
<translation>'bitcoin://' er ikke et gyldigt URI. Brug 'bitcoin:' istedet. </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>You are using a BIP70 URL which will be unsupported in the future.</source>
|
||||
<translation>Du anvender et BIP70 URL hvilket ikke vil være understøttet i fremtiden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Payment request fetch URL is invalid: %1</source>
|
||||
<translation>Hentnings-URL for betalingsanmodning er ugyldig: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cannot process payment request because BIP70 support was not compiled in.</source>
|
||||
<translation>Kan ikke behandle betalingsanmodningen, da BIP70-understøttelse ikke er medtaget under programkodeoversættelsen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid payment address %1</source>
|
||||
<translation>Ugyldig betalingsadresse %1</translation>
|
||||
@@ -1602,6 +1650,18 @@
|
||||
<source>Datadir</source>
|
||||
<translation>Datamappe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>To specify a non-default location of the data directory use the '%1' option.</source>
|
||||
<translation>For at angive en alternativ placering af mappen med data, skal du bruge tilvalget ‘%1’.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Blocksdir</source>
|
||||
<translation>Blokmappe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>To specify a non-default location of the blocks directory use the '%1' option.</source>
|
||||
<translation>For at angive en alternativ placering af mappen med blokke, skal du bruge tilvalget ‘%1’.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Startup time</source>
|
||||
<translation>Opstartstidspunkt</translation>
|
||||
@@ -1814,10 +1874,6 @@
|
||||
<source>&Unban</source>
|
||||
<translation>&Fjern bandlysning</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>default wallet</source>
|
||||
<translation>Standard tegnebog</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Welcome to the %1 RPC console.</source>
|
||||
<translation>Velkommen til %1s RPC-konsol.</translation>
|
||||
@@ -2150,14 +2206,6 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos
|
||||
<source>Hide</source>
|
||||
<translation>Skjul</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source>
|
||||
<translation>Det er helt fint kun at betale det minimale gebyr, så længe den totale transaktionsvolumen er mindre end den plads, der er tilgængelig i blokkene. Men vær opmærksom på, at dette kan ende ud i transaktioner, der aldrig bliver bekræftet, når der bliver større forespørgsel efter bitcoin-transaktioner, end hvad netværket kan bearbejde.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(read the tooltip)</source>
|
||||
<translation>(læs værktøjstippet)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Recommended:</source>
|
||||
<translation>Anbefalet:</translation>
|
||||
@@ -2186,6 +2234,14 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos
|
||||
<source>Dust:</source>
|
||||
<translation>Støv:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source>
|
||||
<translation>På tidspunkter, hvor der er færre transaktioner, end der er plads til i nye blokke, kan minere og videresendende knuder gennemtvinge et minimumsgebyr. Du kan vælge kun at betale dette minimumsgebyr, men vær opmærksom på, at det kan resultere i en transaktion, der aldrig bliver bekræftet, hvis mængden af nye bitcoin-transaktioner stiger til mere, end hvad netværket kan behandle ad gangen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>A too low fee might result in a never confirming transaction (read the tooltip)</source>
|
||||
<translation>Et for lavt gebyr kan resultere i en transaktion, der aldrig bekræftes (læs værktøjstippet)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirmation time target:</source>
|
||||
<translation>Mål for bekræftelsestid:</translation>
|
||||
@@ -2322,10 +2378,6 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos
|
||||
<source>Payment request expired.</source>
|
||||
<translation>Betalingsanmodning er udløbet.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pay only the required fee of %1</source>
|
||||
<translation>Betal kun det påkrævede gebyr på %1</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>Estimated to begin confirmation within %n block(s).</source>
|
||||
<translation><numerusform>Bekræftelse estimeret til at begynde om %n blok.</numerusform><numerusform>Bekræftelse estimeret til at begynde om %n blokke.</numerusform></translation>
|
||||
@@ -3060,6 +3112,21 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos
|
||||
<translation>Enhed, som beløb vises i. Klik for at vælge en anden enhed.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletController</name>
|
||||
<message>
|
||||
<source>Close wallet</source>
|
||||
<translation>Luk tegnebog</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Are you sure you wish to close wallet <i>%1</i>?</source>
|
||||
<translation>Er du sikker på, at du ønsker at lukke tegnebog <i>%1</i>?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled.</source>
|
||||
<translation>Lukning af tegnebog i for lang tid kan resultere i at synkronisere hele kæden forfra, hvis beskæring er aktiveret.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletFrame</name>
|
||||
<message>
|
||||
@@ -3109,6 +3176,10 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos
|
||||
<source>Could not commit transaction</source>
|
||||
<translation>Kunne ikke gennemføre transaktionen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>default wallet</source>
|
||||
<translation>Standard tegnebog</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletView</name>
|
||||
@@ -3187,6 +3258,10 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos
|
||||
<source>The %s developers</source>
|
||||
<translation>Udviklerne af %s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Can't generate a change-address key. No keys in the internal keypool and can't generate any keys.</source>
|
||||
<translation>Kan ikke generere en bytte-adresse nøgle. Ingen nøgler i den interne nøglepulje og kan ikke generere nogle nøgler. </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cannot obtain a lock on data directory %s. %s is probably already running.</source>
|
||||
<translation>Kan ikke opnå en lås på datamappe %s. %s kører sansynligvis allerede.</translation>
|
||||
@@ -3199,10 +3274,6 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos
|
||||
<source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source>
|
||||
<translation>Fejl under læsning af %s! Alle nøgler blev læst korrekt, men transaktionsdata eller indgange i adressebogen kan mangle eller være ukorrekte.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Group outputs by address, selecting all or none, instead of selecting on a per-output basis. Privacy is improved as an address is only used once (unless someone sends to it after spending from it), but may result in slightly higher fees as suboptimal coin selection may result due to the added limitation (default: %u)</source>
|
||||
<translation>Gruppér output efter adresse og vælg alle eller ingen, i stedet for at vælge på per-output-basis. Højere sikring af privatliv, da en adresse kun bruges én gang (med mindre nogen sender til en adresse efter den er brugt), men kan resultere i en anelse højere gebyrer, da ikke-optimal valg af output-adresser kan forekomme på grund af den tilføjede begrænsning (standard: %u)</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>Undersøg venligst at din computers dato og klokkeslet er korrekt indstillet! Hvis der er fejl i disse, vil %s ikke fungere korrekt.</translation>
|
||||
@@ -3259,6 +3330,10 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos
|
||||
<source>Change index out of range</source>
|
||||
<translation>Ændr indeks uden for interval</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Config setting for %s only applied on %s network when in [%s] section.</source>
|
||||
<translation>Opsætningen af %s bliver kun udført på %s-netværk under [%s]-sektionen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copyright (C) %i-%i</source>
|
||||
<translation>Ophavsret © %i-%i</translation>
|
||||
@@ -3271,10 +3346,6 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos
|
||||
<source>Do you want to rebuild the block database now?</source>
|
||||
<translation>Ønsker du at genopbygge blokdatabasen nu?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error creating %s: You can't create non-HD wallets with this version.</source>
|
||||
<translation>Fejl under oprettelse af %s: Du kan ikke oprette ikke-HD-tegnebøger med denne version.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error initializing block database</source>
|
||||
<translation>Klargøring af blokdatabase mislykkedes</translation>
|
||||
@@ -3347,6 +3418,10 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos
|
||||
<source>Specified blocks directory "%s" does not exist.</source>
|
||||
<translation>Angivet blokmappe “%s” eksisterer ikke.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unable to create the PID file '%s': %s</source>
|
||||
<translation>Ikke i stand til at oprette PID fil '%s': %s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Upgrading txindex database</source>
|
||||
<translation>Opgraderer txindex database</translation>
|
||||
@@ -3395,18 +3470,6 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos
|
||||
<source>Unable to generate keys</source>
|
||||
<translation>U-istand til at generere nøgler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unsupported argument -benchmark ignored, use -debug=bench.</source>
|
||||
<translation>Argument -benchmark understøttes ikke og ignoreres; brug -debug=bench.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unsupported argument -debugnet ignored, use -debug=net.</source>
|
||||
<translation>Argument -debugnet understøttes ikke og ignoreres; brug -debug=net.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unsupported argument -tor found, use -onion.</source>
|
||||
<translation>Argument -tor understøttes ikke; brug -onion.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unsupported logging category %s=%s.</source>
|
||||
<translation>Ikke understøttet logningskategori %s=%s.</translation>
|
||||
@@ -3443,10 +3506,6 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos
|
||||
<source>You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain</source>
|
||||
<translation>Du er nødt til at genopbygge databasen ved hjælp af -reindex for at gå tilbage til ikke-beskåret tilstand. Dette vil downloade hele blokkæden igen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error loading %s: You can't disable HD on an already existing HD wallet</source>
|
||||
<translation>Fejl under indlæsning af %s: Du kan ikke slå HD fra på en allerede eksisterende HD-tegnebog</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error reading from database, shutting down.</source>
|
||||
<translation>Fejl under læsning fra database; lukker ned.</translation>
|
||||
@@ -3455,6 +3514,10 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos
|
||||
<source>Error upgrading chainstate database</source>
|
||||
<translation>Fejl under opgradering af kædetilstandsdatabase</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error: Disk space is low for %s</source>
|
||||
<translation>Fejl: Disk plads er lavt for %s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Information</source>
|
||||
<translation>Information</translation>
|
||||
@@ -3483,10 +3546,20 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos
|
||||
<source>Reducing -maxconnections from %d to %d, because of system limitations.</source>
|
||||
<translation>Reducerer -maxconnections fra %d til %d på grund af systembegrænsninger.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Section [%s] is not recognized.</source>
|
||||
<translation>Sektion [%s] er ikke genkendt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Signing transaction failed</source>
|
||||
<translation>Signering af transaktion mislykkedes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The specified config file %s does not exist
|
||||
</source>
|
||||
<translation>Den specificerede konfigurationsfil %s eksisterer ikke.
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The transaction amount is too small to pay the fee</source>
|
||||
<translation>Transaktionsbeløbet er for lille til at betale gebyret</translation>
|
||||
@@ -3539,10 +3612,6 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos
|
||||
<source>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</source>
|
||||
<translation>-maxtxfee er sat meget højt! Gebyrer så store risikeres betalt på en enkelt transaktion.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error loading %s: You can't enable HD on an already existing non-HD wallet</source>
|
||||
<translation>Fejl under indlæsning af %s: Du kan ikke aktivere HD på en allerede eksisterende ikke-HD-tegnebog</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This is the transaction fee you may pay when fee estimates are not available.</source>
|
||||
<translation>Dette er transaktionsgebyret, du kan betale, når gebyrestimeringer ikke er tilgængelige.</translation>
|
||||
@@ -3555,18 +3624,6 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos
|
||||
<source>Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</source>
|
||||
<translation>Den totale længde på netværksversionsstrengen (%i) overstiger maksimallængden (%i). Reducér antaller af eller størrelsen på uacomments.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported.</source>
|
||||
<translation>Argument -socks understøttes ikke. Det er ikke længere muligt at sætte SOCKS-version; kun SOCKS5-proxier understøttes.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unsupported argument -whitelistalwaysrelay ignored, use -whitelistrelay and/or -whitelistforcerelay.</source>
|
||||
<translation>Argument -whitelistalwaysrelay understøttes ikke og ignoreres; brug -whitelistrelay og/eller -whitelistforcerelay.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: Unknown block versions being mined! It's possible unknown rules are in effect</source>
|
||||
<translation>Advarsel: Ukendte blokversioner bliver minet! Det er muligt, at ukendte regler er i brug</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: Wallet file corrupt, data salvaged! Original %s saved as %s in %s; if your balance or transactions are incorrect you should restore from a backup.</source>
|
||||
<translation>Advarsel: Tegnebogsfil ødelagt, data reddet! Oprindelig %s gemt som %s i %s; hvis din saldo eller dine transaktioner er forkert, bør du genskabe fra en sikkerhedskopi.</translation>
|
||||
@@ -3619,10 +3676,6 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos
|
||||
<source>Insufficient funds</source>
|
||||
<translation>Manglende dækning</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Can't generate a change-address key. Private keys are disabled for this wallet.</source>
|
||||
<translation>Kan ikke generere en bytte-adresse nøgle. Private nøgler er deaktiveret for denne tegnebog.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cannot upgrade a non HD split wallet without upgrading to support pre split keypool. Please use -upgradewallet=169900 or -upgradewallet with no version specified.</source>
|
||||
<translation>Kan ikke opgradere en ikke HD dele tegnebog uden opgradering til at støtte før split nøglepool. Venligst brug -upgradewallet=169900 eller -upgradewallet med ingen version specificeret.</translation>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user