Compare commits

...

44 Commits

Author SHA1 Message Date
laanwj
e181e94e86 doc: Update manual pages for 23.0rc3
Tree-SHA512: 5350255e4260b85b7f294e980f9c47fb0aa8370965711411e37c16702cd3eee010ea83c2135b1e4fe6241402b9b1b478bc7f6a181f3e6da2c261a024b45aa8ae
2022-03-31 16:13:45 +02:00
laanwj
752c9d82a6 qt: 23.0rc3 translations update
Tree-SHA512: 110fab39faae351f10a9bb3a8a852d29f1e8e4bae27b790a52198fc39c5e1a2261c0fe8f0289f4c626e3d39f237c9410ae80f311bdcf446f778c680bc0fdc367
2022-03-31 16:13:38 +02:00
laanwj
2a1d3a48c4 build: Bump rc to 23.0rc3
Tree-SHA512: 558379b8b0e9e12a84b563d673377712950b425fd5862f68dddcecde14090e9566917e30720a82ddf8cb1132f02e21bab1ab93594f507e9ca34d039408ca15b4
2022-03-31 16:13:25 +02:00
fanquake
c243e08351 Merge bitcoin/bitcoin#24512: 23.x backports
174af33d5d util: Add inotify_rm_watch to syscall sandbox (AllowFileSystem) (Hennadii Stepanov)
ded10fe3ea build: Fix Boost.Process test for Boost 1.78 (Hennadii Stepanov)
26c2f23f36 build: Fix Boost.Process detection on macOS arm64 (Hennadii Stepanov)
85f85c7e5f util: add linkat to syscall sandbox (AllowFileSystem) (fanquake)
eaa04194b9 contrib: fix signet miner (sighash mismatch) (Sebastian Falbesoner)
235b042594 rpc: Exclude descriptor when address is excluded (MarcoFalke)
b05a59b69f ci: Temporarily use clang-13 to work around clang-14 TSan bug (MarcoFalke)
65b966743c doc, init: add links to doc/cjdns.md (Jon Atack)
7a553d4e65 doc: update i2p.md with cjdns, improve local addresses section (Jon Atack)
4148396229 doc: update tor.md with cjdns and getnodeaddresses, fix tor grep, (Jon Atack)
4690e8af13 doc: create initial doc/cjdns.md for cjdns how-to documentation (Jon Atack)
5d24f612d1 Clarify in -maxtimeadjustment that only outbound peers influence time data (Jon Atack)
b1646f1bb5 test: set segwit height back to 0 on regtest (Martin Zumsande)
ef6a37b7c4 rpc: rename getdeploymentinfo status-next to status_next (Jon Atack)
2a6fcf9c13 init, doc: improve -onlynet help and tor/i2p documentation (Jon Atack)

Pull request description:

  Backport the following to 23.x:

  - #24468
  - #24528
  - #24527
  - #24609
  - #24555
  - #24663
  - #24572
  - #24636
  - #24553
  - #24659
  - #24521
  - #24523
  - #24690
  - #24710

  Possibly also:
  - #24579
  - #24691

ACKs for top commit:
  laanwj:
    List-of-commits ACK 174af33d5d, I think we should merge this and move forward with rc3..
  hebasto:
    ACK 174af33d5d

Tree-SHA512: 5a493e1652b780b527767d6ca9e67012abd2fa5573496e85e0d8aa4bed3eb332bfcd72610b8dfb954ff274d42450623233c96c479de2085b9c8344ba5abf1935
2022-03-31 12:19:22 +01:00
Hennadii Stepanov
174af33d5d util: Add inotify_rm_watch to syscall sandbox (AllowFileSystem)
Github-Pull: bitcoin#24690
Rebased-From: f05a4cd
2022-03-31 10:38:11 +02:00
Hennadii Stepanov
ded10fe3ea build: Fix Boost.Process test for Boost 1.78
Github-Pull: bitcoin#24523
Rebased-From: 532c64a
2022-03-31 10:38:09 +02:00
Hennadii Stepanov
26c2f23f36 build: Fix Boost.Process detection on macOS arm64
Could be tested as follows:
```
% brew install boost@1.76
% ./autogen.sh
% ./configure --with-boost='/opt/homebrew/opt/boost@1.76'
```

Github-Pull: bitcoin#24521
Rebased-From: 1d4157a
2022-03-31 10:37:15 +02:00
fanquake
85f85c7e5f util: add linkat to syscall sandbox (AllowFileSystem)
Github-Pull: bitcoin#24659
Rebased-From: 9809db3
2022-03-31 10:30:14 +02:00
Sebastian Falbesoner
eaa04194b9 contrib: fix signet miner (sighash mismatch)
PSBT signing was changed to use SIGHASH_DEFAULT by default in #22514.
The signet miner script sets the sighash type of the created PSBT to
SIGHASH_ALL, hence this leads to a sighash mismatch when the
`walletprocesspsbt` RPC is called. Fix this by explicitly passing the
correct sighash type.

Note that the same change was needed in one of our functional tests,
see commit d3992669df.

Reported by gruve-p.

Github-Pull: bitcoin#24553
Rebased-From: 12cc020
2022-03-31 10:30:12 +02:00
MarcoFalke
235b042594 rpc: Exclude descriptor when address is excluded
Github-Pull: bitcoin#24636
Rebased-From: faf37c2
2022-03-31 10:30:10 +02:00
MarcoFalke
b05a59b69f ci: Temporarily use clang-13 to work around clang-14 TSan bug
Github-Pull: bitcoin#24572
Rebased-From: fa43933
2022-03-31 10:30:07 +02:00
Jon Atack
65b966743c doc, init: add links to doc/cjdns.md
Github-Pull: bitcoin#24663
Rebased-From: daae288
2022-03-31 10:30:05 +02:00
Jon Atack
7a553d4e65 doc: update i2p.md with cjdns, improve local addresses section
Github-Pull: bitcoin#24555
Rebased-From: f44efc3
2022-03-31 10:30:02 +02:00
Jon Atack
4148396229 doc: update tor.md with cjdns and getnodeaddresses, fix tor grep,
and improve local addresses section

Github-Pull: bitcoin#24555
Rebased-From: 3bf6f0c
2022-03-31 10:29:25 +02:00
Jon Atack
4690e8af13 doc: create initial doc/cjdns.md for cjdns how-to documentation
Adapted in part from the CJDNS description in #23077 by Vasil Dimov
and from CJDNS documentation and feedback by Caleb James DeLisle.

Co-authored-by: Vasil Dimov <vd@FreeBSD.org>

Github-Pull: bitcoin#24555
Rebased-From: ed15848
2022-03-31 10:28:29 +02:00
Jon Atack
5d24f612d1 Clarify in -maxtimeadjustment that only outbound peers influence time data
Github-Pull: bitcoin#24609
Rebased-From: 1bba72d
2022-03-28 12:49:51 +02:00
MarcoFalke
7d03cf632d Merge bitcoin/bitcoin#24596: [23.x] GUI backports
70f2c579b9 options: flip listenonion to false if not listening (Vasil Dimov)
642f2726de gui: restore Send for external signer (Sjors Provoost)
940694664d refactor: helper function signWithExternalSigner() (Sjors Provoost)
fc421d4c8c move-only: helper function to present PSBT (Sjors Provoost)

Pull request description:

  Backports from the GUI repo:
  - bitcoin-core/gui#555
  - bitcoin-core/gui#568

ACKs for top commit:
  Sjors:
    utACK 70f2c579b9
  gruve-p:
    ACK 70f2c579b9

Tree-SHA512: 883c442f8b789a9d11c949179e4382843cbb979a89a625bef3f481c7070421681d9db2af0e5b2449abca362c8ba05cf61db5893aeb6a9237b02088c2fb71e93e
2022-03-24 08:12:11 +01:00
Vasil Dimov
70f2c579b9 options: flip listenonion to false if not listening
If the user has unchecked "Allow incoming connections" in
`Settings->Options...->Network` then `fListen=false` is saved in
`~/.config/Bitcoin/Bitcoin-Qt.conf`. This flips `-listen` to `false`
during startup, but leaves `-listenonion` to `true`.

This flipping of `-listen` is done in `OptionsModel::Init()` after
`InitParameterInteraction()` has been executed which would have flipped
`-listenonion`, should it have seen `-listen` being `false`
(this is a difference between `bitcoind` and `bitcoin-qt`).

Fixes: https://github.com/bitcoin-core/gui/issues/567

Github-Pull: bitcoin-core/gui#568
Rebased-From: 7f90dc26c8
2022-03-23 17:26:19 +01:00
laanwj
55a60b9718 Merge bitcoin/bitcoin#24593: [23.x] macOS / build backports
61c021605f doc, guix: Include arm64-apple-darwin into codesigned archs (Hennadii Stepanov)
f541a252f6 doc: Drop a note about Intel-based Macs (Hennadii Stepanov)
dd2c7f71fd guix: Use "win64" for Windows artifacts consistently (Hennadii Stepanov)
2e7cde8f68 guix: Drop "-signed" suffix for signed macOS .dmg files (Hennadii Stepanov)
7f6420c833 guix: Use $HOST instead of generic osx{64} for macOS artifacts (Hennadii Stepanov)
de528793b6 Update signapple for platform identifier fix (Andrew Chow)

Pull request description:

  Backports:
  * #24549
  * #24573
  * #24588
  * #24597

ACKs for top commit:
  laanwj:
    Code review ACK 61c021605f

Tree-SHA512: 023bfe6f1a31cec66f0255fb8e9c186f44a50a900a9f22c65b2da672b413fec7570f0f11626317344b6f91e74610006ffe0e35243af510de1eb8a3ceb8e8d37f
2022-03-17 09:47:42 +01:00
Hennadii Stepanov
61c021605f doc, guix: Include arm64-apple-darwin into codesigned archs
Github-Pull: #24597
Rebased-From: 1f4801b6b1
2022-03-17 08:38:58 +00:00
Sjors Provoost
642f2726de gui: restore Send for external signer
Before this change the send confirmation dialog would keep the Send option disabled. The Create Unsigned choice would actually send. This is potentially confusing.

With this change the Create Unsigned button will not attempt to sign and always produce a PSBT. The Send button will attempt to sign, and only return a PSBT if more signatures are needed.

When using an external signer, the Create Unsigned option only appears when PSBT controls are enabled in the wallet settings.

This commit maintains the pre-existing behavior of filling the PSBT (without signing) even when not using an external signer.

Closes #551

Co-authored-by: Jon Atack <jon@atack.com>

Github-Pull: bitcoin-core/gui#555
Rebased-From: 2efdfb88aa
2022-03-17 07:28:50 +01:00
Sjors Provoost
940694664d refactor: helper function signWithExternalSigner()
Does not change behavior.

Review hint:
git show --color-moved --color-moved-ws=allow-indentation-change

Github-Pull: bitcoin-core/gui#555
Rebased-From: 4b5a6cd149
2022-03-17 07:28:50 +01:00
Sjors Provoost
fc421d4c8c move-only: helper function to present PSBT
This commit does not change behavior.

Review hint:
git show --color-moved --color-moved-ws=allow-indentation-change

Github-Pull: bitcoin-core/gui#555
Rebased-From: 026b5b4523
2022-03-17 07:28:50 +01:00
Hennadii Stepanov
f541a252f6 doc: Drop a note about Intel-based Macs
Github-Pull: #24588
Rebased-From: e359ba6b35
2022-03-16 20:51:32 +00:00
Hennadii Stepanov
dd2c7f71fd guix: Use "win64" for Windows artifacts consistently
Github-Pull: #24549
Rebased-From: 53dd6165b8
2022-03-16 20:50:30 +00:00
Hennadii Stepanov
2e7cde8f68 guix: Drop "-signed" suffix for signed macOS .dmg files
This change makes naming of the signed artifacts consistent across
different OSes, including Windows.

Github-Pull: #24549
Rebased-From: 4b4b04a66d
2022-03-16 20:49:47 +00:00
Hennadii Stepanov
7f6420c833 guix: Use $HOST instead of generic osx{64} for macOS artifacts
Github-Pull: #24549
Rebased-From: 933a43018f
2022-03-16 20:49:19 +00:00
Andrew Chow
de528793b6 Update signapple for platform identifier fix
Github-Pull: #24573
Rebased-From: 3c74f775ac
2022-03-16 20:47:58 +00:00
Martin Zumsande
b1646f1bb5 test: set segwit height back to 0 on regtest
This was changed in #22818 from 0 to 1. Since it changes
BLOCK_OPT_WIT of the genesis block, older versions of bitcoin
core would not read regtest directories created with newer versions
without a reindex.

Github-Pull: bitcoin#24527
Rebased-From: 5ce3057
2022-03-13 17:43:36 +01:00
Jon Atack
ef6a37b7c4 rpc: rename getdeploymentinfo status-next to status_next
Github-Pull: bitcoin#24528
Rebased-From: 5d7c69b
2022-03-13 17:41:05 +01:00
Jon Atack
2a6fcf9c13 init, doc: improve -onlynet help and tor/i2p documentation
and harmonize them as follows

- s/outgoing/automatic outbound/
- s/Incoming/Inbound and manual/ (are not affected by this option.)
- s/only through network/only to network/
- s/this option. This option/this option. It/
- s/network types/networks/

and also pick up a few nits in doc/p2p-bad-ports.md

Github-Pull: bitcoin#24468
Rebased-From: a1db99a
2022-03-13 17:35:56 +01:00
laanwj
71866d8566 doc: Update manual pages for rc2
Tree-SHA512: c0ded71cf1dc0b0727f7b87ad353b149fd0c53fdcccf6c058bbcaf3d4bdbf70290b3296f3a93af6f442cbcb1a007f4f8784941fdfd930e389dc5a229c6ee632a
2022-03-10 11:55:00 +01:00
laanwj
60ca24a506 build: Bump to 23.0rc2
Tree-SHA512: 6432a93c0f7cca96e548b1a12958b5812621b74c05de581b94fe6a2b2f5958c42bdbc6c1bbe0ab34829d3942784fc811d270fb95b6f64b8228d4b3ec4ccc163f
2022-03-10 11:51:12 +01:00
fanquake
2bd5fdbced Merge bitcoin/bitcoin#24514: [23.x] Second round signapple backports (M1)
1fd91da454 build, mac: Include arch in codesignature tarball (Andrew Chow)
eba46583ed guix: use latest signapple (Andrew Chow)

Pull request description:

  This backports additional signapple and macOS codesigning changes from #24506 for 23.x (skipping #24503, which is an interim signapple update, and the certvalidator change, which is not strictly necessary), and should complete the changes required to perform M1 codesigning for the 23.x release.

ACKs for top commit:
  hebasto:
    ACK 1fd91da454, I have reviewed the code and it looks OK, I agree it can be merged.

Tree-SHA512: 55b7e0680058203744dc491da060ef56a880270a01c10e475b7a171457902410806895dbe7332a323ce47c2a776337fa29eb811d2511fce84ede13aeacbe2a02
2022-03-10 09:46:49 +00:00
fanquake
430808ab13 Merge bitcoin/bitcoin#24511: [23.x] qt: Avoid crash on startup if int specified in settings.json
7e1b968f61 qt: Avoid crash on startup if int specified in settings.json (Ryan Ofsky)
4607f700d0 test: Add tests for GetArg methods / settings.json type coercion (Ryan Ofsky)

Pull request description:

  Backport of #24498

ACKs for top commit:
  jonatack:
    ACK 7e1b968f61

Tree-SHA512: efe6ec4361858e50fd524db64141ad3622ecef321b99567da9650575558a9a9bdec0fc43113967cae2f23a1375132eed2d6ebf64d4aa91ac1c5f2f591a26ba74
2022-03-10 09:44:50 +00:00
Andrew Chow
1fd91da454 build, mac: Include arch in codesignature tarball
Github-Pull: #24506
Rebased-From: 0189df1d31
2022-03-09 18:06:18 +00:00
Andrew Chow
eba46583ed guix: use latest signapple
Github-Pull: #24506
Rebased-From: 6e9308c6d4
2022-03-09 18:06:14 +00:00
Ryan Ofsky
7e1b968f61 qt: Avoid crash on startup if int specified in settings.json
Fix GUI startup crash reported by Rspigler in
https://github.com/bitcoin/bitcoin/issues/24457 that happens if
settings.json contains an integer value for any of the configuration
options which GUI settings can currently clash with (-dbcache, -par,
-spendzeroconfchange, -signer, -upnp, -natpmp, -listen, -server, -proxy,
-proxy, -onion, -onion, -lang, and -prune).

Fix is a one-line change in ArgsManager::GetArg.

Github-Pull: bitcoin/bitcoin#24498
Rebased-From: 5b1aae12ca
2022-03-09 11:03:05 -05:00
Ryan Ofsky
4607f700d0 test: Add tests for GetArg methods / settings.json type coercion
Just add tests. No changes to application behavior. Tests will be
updated in the next commit changing & improving current behavior.

Include a Qt test for GUI startup crash reported by Rspigler in
https://github.com/bitcoin/bitcoin/issues/24457 caused by GetArg
behavior that happens if settings.json contains an integer value for any
of the configuration options which GUI settings can currently clash with
(-dbcache, -par, -spendzeroconfchange, -signer, -upnp, -natpmp, -listen,
-server, -proxy, -proxy, -onion, -onion, -lang, and -prune).

Github-Pull: bitcoin/bitcoin#24498
Rebased-From: 84b0973e35
2022-03-09 11:03:00 -05:00
fanquake
cbdfb46b55 Merge bitcoin/bitcoin#24485: [23.x] guix: use same commit for codesigning time-machine
0dcbd2ee93 guix: use same commit for codesigning time-machine (fanquake)

Pull request description:

  The time machines should be updated in lockstep. Backports #24484.

  Github-Pull: #24484
  Rebased-From: 29862bdd40

ACKs for top commit:
  hebasto:
    ACK 0dcbd2ee93

Tree-SHA512: 831f2d1a0bd92bc6acbe20b0c2e2557f9cc8056034c6975ec6be2cae2eafe584d618b83519623caa81adc434121174e4c56a2df3cc8912352146ac610901bd0f
2022-03-07 09:37:20 +00:00
fanquake
0dcbd2ee93 guix: use same commit for codesigning time-machine
The time machines should be updated in lockstep.

Github-Pull: #24484
Rebased-From: 29862bdd40
2022-03-06 18:55:44 +00:00
laanwj
440fbe6dba qt: Pull translations for 0.23rc1
Tree-SHA512: 8366ebbb3603f3f021285f62df75996883458273b24db4e84ff56a3cb56b54cef474f640ea1f48ebc29dbde0593bd78256b9830555a288ba7e4a0a88e07f729e
2022-03-03 19:38:39 +01:00
laanwj
5d2b11c7c9 doc: Generate manual pages for 23.0rc1
Tree-SHA512: f0d7b08a621194176f49faad17fcdb144ca4c2d67ea9c2b51855c3adc506461020b091acd710acdfbcfe4b515d01929538a1ae64dc40a6edb6f069ef29a6d90d
2022-03-03 19:33:35 +01:00
laanwj
0970d151d7 build: Bump version to 23.0rc1
Tree-SHA512: f60e9a8379e299fb54ceb4ba2604913532fa69f882d4cb88577102e259c09318e7edec856bfa8959df5c16584f2d78ed29e0c54a80ad82e60846fac6d432620a
2022-03-03 18:57:13 +01:00
66 changed files with 7227 additions and 3260 deletions

View File

@@ -12,6 +12,7 @@
<ClCompile Include="..\..\src\test\util\setup_common.cpp" />
<ClCompile Include="..\..\src\qt\test\addressbooktests.cpp" />
<ClCompile Include="..\..\src\qt\test\apptests.cpp" />
<ClCompile Include="..\..\src\qt\test\optiontests.cpp" />
<ClCompile Include="..\..\src\qt\test\rpcnestedtests.cpp" />
<ClCompile Include="..\..\src\qt\test\test_main.cpp" />
<ClCompile Include="..\..\src\qt\test\uritests.cpp" />
@@ -20,6 +21,7 @@
<ClCompile Include="..\..\src\wallet\test\wallet_test_fixture.cpp" />
<ClCompile Include="$(GeneratedFilesOutDir)\moc\moc_addressbooktests.cpp" />
<ClCompile Include="$(GeneratedFilesOutDir)\moc\moc_apptests.cpp" />
<ClCompile Include="$(GeneratedFilesOutDir)\moc\moc_optiontests.cpp" />
<ClCompile Include="$(GeneratedFilesOutDir)\moc\moc_rpcnestedtests.cpp" />
<ClCompile Include="$(GeneratedFilesOutDir)\moc\moc_uritests.cpp" />
<ClCompile Include="$(GeneratedFilesOutDir)\moc\moc_wallettests.cpp" />
@@ -88,6 +90,7 @@
<ItemGroup>
<MocTestFiles Include="..\..\src\qt\test\addressbooktests.h" />
<MocTestFiles Include="..\..\src\qt\test\apptests.h" />
<MocTestFiles Include="..\..\src\qt\test\optiontests.h" />
<MocTestFiles Include="..\..\src\qt\test\rpcnestedtests.h" />
<MocTestFiles Include="..\..\src\qt\test\uritests.h" />
<MocTestFiles Include="..\..\src\qt\test\wallettests.h" />

View File

@@ -8,7 +8,7 @@ export LC_ALL=C.UTF-8
export CONTAINER_NAME=ci_native_tsan
export DOCKER_NAME_TAG=ubuntu:22.04
export PACKAGES="clang llvm libc++abi-dev libc++-dev python3-zmq"
export DEP_OPTS="CC=clang CXX='clang++ -stdlib=libc++'"
export PACKAGES="clang-13 llvm-13 libc++abi-13-dev libc++-13-dev python3-zmq"
export DEP_OPTS="CC=clang-13 CXX='clang++-13 -stdlib=libc++'"
export GOAL="install"
export BITCOIN_CONFIG="--enable-zmq CPPFLAGS='-DARENA_DEBUG -DDEBUG_LOCKORDER' CXXFLAGS='-g' --with-sanitizers=thread CC=clang CXX='clang++ -stdlib=libc++'"
export BITCOIN_CONFIG="--enable-zmq CPPFLAGS='-DARENA_DEBUG -DDEBUG_LOCKORDER' CXXFLAGS='-g' --with-sanitizers=thread CC=clang-13 CXX='clang++-13 -stdlib=libc++'"

View File

@@ -1,9 +1,9 @@
AC_PREREQ([2.69])
define(_CLIENT_VERSION_MAJOR, 22)
define(_CLIENT_VERSION_MINOR, 99)
define(_CLIENT_VERSION_MAJOR, 23)
define(_CLIENT_VERSION_MINOR, 0)
define(_CLIENT_VERSION_BUILD, 0)
define(_CLIENT_VERSION_RC, 0)
define(_CLIENT_VERSION_IS_RELEASE, false)
define(_CLIENT_VERSION_RC, 3)
define(_CLIENT_VERSION_IS_RELEASE, true)
define(_COPYRIGHT_YEAR, 2022)
define(_COPYRIGHT_HOLDERS,[The %s developers])
define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Bitcoin Core]])
@@ -1438,6 +1438,12 @@ if test "$use_external_signer" != "no"; then
;;
*)
AC_MSG_CHECKING([whether Boost.Process can be used])
TEMP_CXXFLAGS="$CXXFLAGS"
dnl Boost 1.78 requires the following workaround.
dnl See: https://github.com/boostorg/process/issues/235
CXXFLAGS="$CXXFLAGS -Wno-error=narrowing"
TEMP_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
TEMP_LDFLAGS="$LDFLAGS"
dnl Boost 1.73 and older require the following workaround.
LDFLAGS="$LDFLAGS $PTHREAD_CFLAGS"
@@ -1445,6 +1451,8 @@ if test "$use_external_signer" != "no"; then
[have_boost_process="yes"],
[have_boost_process="no"])
LDFLAGS="$TEMP_LDFLAGS"
CPPFLAGS="$TEMP_CPPFLAGS"
CXXFLAGS="$TEMP_CXXFLAGS"
AC_MSG_RESULT([$have_boost_process])
if test "$have_boost_process" = "yes"; then
use_external_signer="yes"

View File

@@ -75,7 +75,7 @@ crucial differences:
1. Since only Windows and macOS build outputs require codesigning, the `HOSTS`
environment variable will have a sane default value of `x86_64-w64-mingw32
x86_64-apple-darwin` instead of all the platforms.
x86_64-apple-darwin arm64-apple-darwin` instead of all the platforms.
2. The `guix-codesign` command ***requires*** a `DETACHED_SIGS_REPO` flag.
* _**DETACHED_SIGS_REPO**_

View File

@@ -155,7 +155,7 @@ unsigned_tarball_for_host() {
echo "$(outdir_for_host "$1")/${DISTNAME}-win-unsigned.tar.gz"
;;
*darwin*)
echo "$(outdir_for_host "$1")/${DISTNAME}-osx-unsigned.tar.gz"
echo "$(outdir_for_host "$1")/${DISTNAME}-${1}-unsigned.tar.gz"
;;
*)
exit 1
@@ -227,7 +227,7 @@ SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH:-$(git -c log.showSignature=false log --f
time-machine() {
# shellcheck disable=SC2086
guix time-machine --url=https://git.savannah.gnu.org/git/guix.git \
--commit=aa34d4d28dfe25ba47d5800d05000fb7221788c0 \
--commit=ae03f401381e956c4c41b4cf495cbde964fa43d0 \
--cores="$JOBS" \
--keep-failed \
--fallback \

View File

@@ -348,10 +348,10 @@ mkdir -p "$DISTSRC"
find . -print0 \
| sort --zero-terminated \
| tar --create --no-recursion --mode='u+rw,go+r-w,a+X' --null --files-from=- \
| gzip -9n > "${OUTDIR}/${DISTNAME}-osx-unsigned.tar.gz" \
|| ( rm -f "${OUTDIR}/${DISTNAME}-osx-unsigned.tar.gz" && exit 1 )
| gzip -9n > "${OUTDIR}/${DISTNAME}-${HOST}-unsigned.tar.gz" \
|| ( rm -f "${OUTDIR}/${DISTNAME}-${HOST}-unsigned.tar.gz" && exit 1 )
)
make deploy ${V:+V=1} OSX_DMG="${OUTDIR}/${DISTNAME}-osx-unsigned.dmg"
make deploy ${V:+V=1} OSX_DMG="${OUTDIR}/${DISTNAME}-${HOST}-unsigned.dmg"
;;
esac
(
@@ -423,8 +423,8 @@ mkdir -p "$DISTSRC"
find "${DISTNAME}" -print0 \
| sort --zero-terminated \
| tar --create --no-recursion --mode='u+rw,go+r-w,a+X' --null --files-from=- \
| gzip -9n > "${OUTDIR}/${DISTNAME}-${HOST//x86_64-apple-darwin/osx64}.tar.gz" \
|| ( rm -f "${OUTDIR}/${DISTNAME}-${HOST//x86_64-apple-darwin/osx64}.tar.gz" && exit 1 )
| gzip -9n > "${OUTDIR}/${DISTNAME}-${HOST}.tar.gz" \
|| ( rm -f "${OUTDIR}/${DISTNAME}-${HOST}.tar.gz" && exit 1 )
;;
esac
) # $DISTSRC/installed
@@ -439,8 +439,8 @@ mkdir -p "$DISTSRC"
find . -print0 \
| sort --zero-terminated \
| tar --create --no-recursion --mode='u+rw,go+r-w,a+X' --null --files-from=- \
| gzip -9n > "${OUTDIR}/${DISTNAME}-win-unsigned.tar.gz" \
|| ( rm -f "${OUTDIR}/${DISTNAME}-win-unsigned.tar.gz" && exit 1 )
| gzip -9n > "${OUTDIR}/${DISTNAME}-win64-unsigned.tar.gz" \
|| ( rm -f "${OUTDIR}/${DISTNAME}-win64-unsigned.tar.gz" && exit 1 )
)
;;
esac

View File

@@ -91,7 +91,7 @@ mkdir -p "$DISTSRC"
-- -volume_date all_file_dates ="$SOURCE_DATE_EPOCH"
# Compress uncompressed.dmg and output to OUTDIR
./dmg dmg uncompressed.dmg "${OUTDIR}/${DISTNAME}-osx-signed.dmg"
./dmg dmg uncompressed.dmg "${OUTDIR}/${DISTNAME}-${HOST}.dmg"
;;
*)
exit 1

View File

@@ -490,7 +490,7 @@ and endian independent.")
(license license:expat)))
(define-public python-signapple
(let ((commit "b084cbbf44d5330448ffce0c7d118f75781b64bd"))
(let ((commit "8a945a2e7583be2665cf3a6a89d665b70ecd1ab6"))
(package
(name "python-signapple")
(version (git-version "0.1" "1" commit))
@@ -503,7 +503,7 @@ and endian independent.")
(file-name (git-file-name name commit))
(sha256
(base32
"0k7inccl2mzac3wq4asbr0kl8s4cghm8982z54kfascqg45shv01"))))
"0fr1hangvfyiwflca6jg5g8zvg3jc9qr7vd2c12ff89pznf38dlg"))))
(build-system python-build-system)
(propagated-inputs
`(("python-asn1crypto" ,python-asn1crypto)

View File

@@ -8,9 +8,11 @@ set -e
ROOTDIR=dist
BUNDLE="${ROOTDIR}/Bitcoin-Qt.app"
BINARY="${BUNDLE}/Contents/MacOS/Bitcoin-Qt"
SIGNAPPLE=signapple
TEMPDIR=sign.temp
OUT=signature-osx.tar.gz
ARCH=$(${SIGNAPPLE} info ${BINARY} | head -n 1 | cut -d " " -f 1)
OUT="signature-osx-${ARCH}.tar.gz"
OUTROOT=osx/dist
if [ -z "$1" ]; then

View File

@@ -8,7 +8,7 @@ import base64
import json
import logging
import math
import os.path
import os
import re
import struct
import sys
@@ -493,10 +493,11 @@ def do_generate(args):
logging.debug("Mining block delta=%s start=%s mine=%s", seconds_to_hms(mine_time-bestheader["time"]), mine_time, is_mine)
mined_blocks += 1
psbt = generate_psbt(tmpl, reward_spk, blocktime=mine_time)
psbt_signed = json.loads(args.bcli("-stdin", "walletprocesspsbt", input=psbt.encode('utf8')))
input_stream = os.linesep.join([psbt, "true", "ALL"]).encode('utf8')
psbt_signed = json.loads(args.bcli("-stdin", "walletprocesspsbt", input=input_stream))
if not psbt_signed.get("complete",False):
logging.debug("Generated PSBT: %s" % (psbt,))
sys.stderr.write("PSBT signing failed")
sys.stderr.write("PSBT signing failed\n")
return 1
block, signet_solution = do_decode_psbt(psbt_signed["psbt"])
block = finish_block(block, signet_solution, args.grind_cmd)

View File

@@ -73,6 +73,7 @@ The Bitcoin repo's [root README](/README.md) contains relevant information on th
- [Assets Attribution](assets-attribution.md)
- [Assumeutxo design](assumeutxo.md)
- [bitcoin.conf Configuration File](bitcoin-conf.md)
- [CJDNS Support](cjdns.md)
- [Files](files.md)
- [Fuzz-testing](fuzzing.md)
- [I2P Support](i2p.md)

View File

@@ -4,8 +4,6 @@
This guide describes how to build bitcoind, command-line utilities, and GUI on macOS
**Note:** The following is for Intel Macs only!
## Dependencies
The following dependencies are **required**:

95
doc/cjdns.md Normal file
View File

@@ -0,0 +1,95 @@
# CJDNS support in Bitcoin Core
It is possible to run Bitcoin Core over CJDNS, an encrypted IPv6 network that
uses public-key cryptography for address allocation and a distributed hash table
for routing.
## What is CJDNS?
CJDNS is like a distributed, shared VPN with multiple entry points where every
participant can reach any other participant. All participants use addresses from
the `fc00::/8` network (reserved IPv6 range). Installation and configuration is
done outside of Bitcoin Core, similarly to a VPN (either in the host/OS or on
the network router).
Compared to IPv4/IPv6, CJDNS provides end-to-end encryption and protects nodes
from traffic analysis and filtering.
Used with Tor and I2P, CJDNS is a complementary option that can enhance network
redundancy and robustness for both the Bitcoin network and individual nodes.
Each network has different characteristics. For instance, Tor is widely used but
somewhat centralized. I2P connections have a source address and I2P is slow.
CJDNS is fast but does not hide the sender and the recipient from intermediate
routers.
## Installing CJDNS and connecting to the network
To install and set up CJDNS, follow the instructions at
https://github.com/cjdelisle/cjdns#cjdns.
Don't skip steps
["2. Find a friend"](https://github.com/cjdelisle/cjdns#2-find-a-friend) and
["3. Connect your node to your friend's
node"](https://github.com/cjdelisle/cjdns#3-connect-your-node-to-your-friends-node).
You need to be connected to the CJDNS network before it will work with your
Bitcoin Core node.
Typically, CJDNS might be launched from its directory with
`sudo ./cjdroute < cjdroute.conf` and it sheds permissions after setting up the
[TUN](https://en.wikipedia.org/wiki/TUN/TAP) interface. You may also [launch it as an
unprivileged user](https://github.com/cjdelisle/cjdns/blob/master/doc/non-root-user.md)
with some additional setup.
The network connection can be checked by running `./tools/peerStats` from the
CJDNS directory.
## Run Bitcoin Core with CJDNS
Once you are connected to the CJDNS network, the following Bitcoin Core
configuration option makes CJDNS peers automatically reachable:
```
-cjdnsreachable
```
When enabled, this option tells Bitcoin Core that it is running in an
environment where a connection to an `fc00::/8` address will be to the CJDNS
network instead of to an [RFC4193](https://datatracker.ietf.org/doc/html/rfc4193)
IPv6 local network. This helps Bitcoin Core perform better address management:
- Your node can consider incoming `fc00::/8` connections to be from the CJDNS
network rather than from an IPv6 private one.
- If one of your node's local addresses is `fc00::/8`, then it can choose to
gossip that address to peers.
## Additional configuration options related to CJDNS
```
-onlynet=cjdns
```
Make automatic outbound connections only to CJDNS addresses. Inbound and manual
connections are not affected by this option. It can be specified multiple times
to allow multiple networks, e.g. onlynet=cjdns, onlynet=i2p, onlynet=onion.
CJDNS support was added to Bitcoin Core in version 23.0 and there may be fewer
CJDNS peers than Tor or IP ones. You can use `bitcoin-cli -addrinfo` to see the
number of CJDNS addresses known to your node.
In general, a node can be run with both an onion service and CJDNS (or any/all
of IPv4/IPv6/onion/I2P/CJDNS), which can provide a potential fallback if one of
the networks has issues. There are a number of ways to configure this; see
[doc/tor.md](https://github.com/bitcoin/bitcoin/blob/master/doc/tor.md) for
details.
## CJDNS-related information in Bitcoin Core
There are several ways to see your CJDNS address in Bitcoin Core:
- in the "Local addresses" output of CLI `-netinfo`
- in the "localaddresses" output of RPC `getnetworkinfo`
To see which CJDNS peers your node is connected to, use `bitcoin-cli -netinfo 4`
or the `getpeerinfo` RPC (i.e. `bitcoin-cli getpeerinfo`).
To see which CJDNS addresses your node knows, use the `getnodeaddresses 0 cjdns`
RPC.

View File

@@ -65,9 +65,9 @@ logging` for more information.
-onlynet=i2p
```
Make outgoing connections only to I2P addresses. Incoming connections are not
affected by this option. It can be specified multiple times to allow multiple
network types, e.g. onlynet=onion, onlynet=i2p.
Make automatic outbound connections only to I2P addresses. Inbound and manual
connections are not affected by this option. It can be specified multiple times
to allow multiple networks, e.g. onlynet=onion, onlynet=i2p.
I2P support was added to Bitcoin Core in version 22.0 and there may be fewer I2P
peers than Tor or IP ones. Therefore, using I2P alone without other networks may
@@ -80,15 +80,15 @@ phase when syncing up a new node can be very slow. This phase can be sped up by
using other networks, for instance `onlynet=onion`, at the same time.
In general, a node can be run with both onion and I2P hidden services (or
any/all of IPv4/IPv6/onion/I2P), which can provide a potential fallback if one
of the networks has issues.
any/all of IPv4/IPv6/onion/I2P/CJDNS), which can provide a potential fallback if
one of the networks has issues.
## I2P-related information in Bitcoin Core
There are several ways to see your I2P address in Bitcoin Core:
- in the debug log (grep for `AddLocal`, the I2P address ends in `.b32.i2p`)
- in the output of the `getnetworkinfo` RPC in the "localaddresses" section
- in the output of `bitcoin-cli -netinfo` peer connections dashboard
- in the "Local addresses" output of CLI `-netinfo`
- in the "localaddresses" output of RPC `getnetworkinfo`
- in the debug log (grep for `AddLocal`; the I2P address ends in `.b32.i2p`)
To see which I2P peers your node is connected to, use `bitcoin-cli -netinfo 4`
or the `getpeerinfo` RPC (e.g. `bitcoin-cli getpeerinfo`).

View File

@@ -1,5 +1,181 @@
.TH BITCOIN-CLI "1"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
.TH BITCOIN-CLI "1" "March 2022" "bitcoin-cli v23.0.0rc3" "User Commands"
.SH NAME
bitcoin-cli \- manual page for bitcoin-cli
bitcoin-cli \- manual page for bitcoin-cli v23.0.0rc3
.SH SYNOPSIS
.B bitcoin-cli
[\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR] \fI\,Send command to Bitcoin Core\/\fR
.br
.B bitcoin-cli
[\fI\,options\/\fR] \fI\,-named <command> \/\fR[\fI\,name=value\/\fR]... \fI\,Send command to Bitcoin Core (with named arguments)\/\fR
.br
.B bitcoin-cli
[\fI\,options\/\fR] \fI\,help List commands\/\fR
.br
.B bitcoin-cli
[\fI\,options\/\fR] \fI\,help <command> Get help for a command\/\fR
.SH DESCRIPTION
Bitcoin Core RPC client version v23.0.0rc3
.SH OPTIONS
.HP
\-?
.IP
Print this help message and exit
.HP
\fB\-addrinfo\fR
.IP
Get the number of addresses known to the node, per network and total,
after filtering for quality and recency. The total number of
addresses known to the node may be higher.
.HP
\fB\-color=\fR<when>
.IP
Color setting for CLI output (default: auto). Valid values: always, auto
(add color codes when standard output is connected to a terminal
and OS is not WIN32), never.
.HP
\fB\-conf=\fR<file>
.IP
Specify configuration file. Relative paths will be prefixed by datadir
location. (default: bitcoin.conf)
.HP
\fB\-datadir=\fR<dir>
.IP
Specify data directory
.HP
\fB\-generate\fR
.IP
Generate blocks, equivalent to RPC getnewaddress followed by RPC
generatetoaddress. Optional positional integer arguments are
number of blocks to generate (default: 1) and maximum iterations
to try (default: 1000000), equivalent to RPC generatetoaddress
nblocks and maxtries arguments. Example: bitcoin\-cli \fB\-generate\fR 4
1000
.HP
\fB\-getinfo\fR
.IP
Get general information from the remote server. Note that unlike
server\-side RPC calls, the results of \fB\-getinfo\fR is the result of
multiple non\-atomic requests. Some entries in the result may
represent results from different states (e.g. wallet balance may
be as of a different block from the chain state reported)
.HP
\fB\-named\fR
.IP
Pass named instead of positional arguments (default: false)
.HP
\fB\-netinfo\fR
.IP
Get network peer connection information from the remote server. An
optional integer argument from 0 to 4 can be passed for different
peers listings (default: 0). Pass "help" for detailed help
documentation.
.HP
\fB\-rpcclienttimeout=\fR<n>
.IP
Timeout in seconds during HTTP requests, or 0 for no timeout. (default:
900)
.HP
\fB\-rpcconnect=\fR<ip>
.IP
Send commands to node running on <ip> (default: 127.0.0.1)
.HP
\fB\-rpccookiefile=\fR<loc>
.IP
Location of the auth cookie. Relative paths will be prefixed by a
net\-specific datadir location. (default: data dir)
.HP
\fB\-rpcpassword=\fR<pw>
.IP
Password for JSON\-RPC connections
.HP
\fB\-rpcport=\fR<port>
.IP
Connect to JSON\-RPC on <port> (default: 8332, testnet: 18332, signet:
38332, regtest: 18443)
.HP
\fB\-rpcuser=\fR<user>
.IP
Username for JSON\-RPC connections
.HP
\fB\-rpcwait\fR
.IP
Wait for RPC server to start
.HP
\fB\-rpcwaittimeout=\fR<n>
.IP
Timeout in seconds to wait for the RPC server to start, or 0 for no
timeout. (default: 0)
.HP
\fB\-rpcwallet=\fR<walletname>
.IP
Send RPC for non\-default wallet on RPC server (needs to exactly match
corresponding \fB\-wallet\fR option passed to bitcoind). This changes
the RPC endpoint used, e.g.
http://127.0.0.1:8332/wallet/<walletname>
.HP
\fB\-stdin\fR
.IP
Read extra arguments from standard input, one per line until EOF/Ctrl\-D
(recommended for sensitive information such as passphrases). When
combined with \fB\-stdinrpcpass\fR, the first line from standard input
is used for the RPC password.
.HP
\fB\-stdinrpcpass\fR
.IP
Read RPC password from standard input as a single line. When combined
with \fB\-stdin\fR, the first line from standard input is used for the
RPC password. When combined with \fB\-stdinwalletpassphrase\fR,
\fB\-stdinrpcpass\fR consumes the first line, and \fB\-stdinwalletpassphrase\fR
consumes the second.
.HP
\fB\-stdinwalletpassphrase\fR
.IP
Read wallet passphrase from standard input as a single line. When
combined with \fB\-stdin\fR, the first line from standard input is used
for the wallet passphrase.
.HP
\fB\-version\fR
.IP
Print version and exit
.PP
Debugging/Testing options:
.PP
Chain selection options:
.HP
\fB\-chain=\fR<chain>
.IP
Use the chain <chain> (default: main). Allowed values: main, test,
signet, regtest
.HP
\fB\-signet\fR
.IP
Use the signet chain. Equivalent to \fB\-chain\fR=\fI\,signet\/\fR. Note that the network
is defined by the \fB\-signetchallenge\fR parameter
.HP
\fB\-signetchallenge\fR
.IP
Blocks must satisfy the given script to be considered valid (only for
signet networks; defaults to the global default signet test
network challenge)
.HP
\fB\-signetseednode\fR
.IP
Specify a seed node for the signet network, in the hostname[:port]
format, e.g. sig.net:1234 (may be used multiple times to specify
multiple seed nodes; defaults to the global default signet test
network seed node(s))
.HP
\fB\-testnet\fR
.IP
Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR.
.SH COPYRIGHT
Copyright (C) 2009-2022 The Bitcoin Core developers
This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release.
Please contribute if you find Bitcoin Core useful. Visit
<https://bitcoincore.org/> for further information about the software.
The source code is available from <https://github.com/bitcoin/bitcoin>.
This is experimental software.
Distributed under the MIT software license, see the accompanying file COPYING
or <https://opensource.org/licenses/MIT>

View File

@@ -1,5 +1,811 @@
.TH BITCOIN-QT "1"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
.TH BITCOIN-QT "1" "March 2022" "bitcoin-qt v23.0.0rc3" "User Commands"
.SH NAME
bitcoin-qt \- manual page for bitcoin-qt
bitcoin-qt \- manual page for bitcoin-qt v23.0.0rc3
.SH SYNOPSIS
.B bitcoin-qt
[\fI\,command-line options\/\fR]
.SH DESCRIPTION
Bitcoin Core version v23.0.0rc3
.SH OPTIONS
.HP
\-?
.IP
Print this help message and exit
.HP
\fB\-alertnotify=\fR<cmd>
.IP
Execute command when an alert is raised (%s in cmd is replaced by
message)
.HP
\fB\-assumevalid=\fR<hex>
.IP
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:
000000000000000000052d314a259755ca65944e68df6b12a067ea8f1f5a7091,
testnet:
00000000000163cfb1f97c4e4098a3692c8053ad9cab5ad9c86b338b5c00b8b7,
signet:
00000112852484b5fe3451572368f93cfd2723279af3464e478aee35115256ef)
.HP
\fB\-blockfilterindex=\fR<type>
.IP
Maintain an index of compact filters by block (default: 0, values:
basic). If <type> is not supplied or if <type> = 1, indexes for
all known types are enabled.
.HP
\fB\-blocknotify=\fR<cmd>
.IP
Execute command when the best block changes (%s in cmd is replaced by
block hash)
.HP
\fB\-blockreconstructionextratxn=\fR<n>
.IP
Extra transactions to keep in memory for compact block reconstructions
(default: 100)
.HP
\fB\-blocksdir=\fR<dir>
.IP
Specify directory to hold blocks subdirectory for *.dat files (default:
<datadir>)
.HP
\fB\-blocksonly\fR
.IP
Whether to reject transactions from network peers. Automatic broadcast
and rebroadcast of any transactions from inbound peers is
disabled, unless the peer has the 'forcerelay' permission. RPC
transactions are not affected. (default: 0)
.HP
\fB\-coinstatsindex\fR
.IP
Maintain coinstats index used by the gettxoutsetinfo RPC (default: 0)
.HP
\fB\-conf=\fR<file>
.IP
Specify path to read\-only configuration file. Relative paths will be
prefixed by datadir location. (default: bitcoin.conf)
.HP
\fB\-daemon\fR
.IP
Run in the background as a daemon and accept commands (default: 0)
.HP
\fB\-daemonwait\fR
.IP
Wait for initialization to be finished before exiting. This implies
\fB\-daemon\fR (default: 0)
.HP
\fB\-datadir=\fR<dir>
.IP
Specify data directory
.HP
\fB\-dbcache=\fR<n>
.IP
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
Specify location of debug log file. Relative paths will be prefixed by a
net\-specific datadir location. (\fB\-nodebuglogfile\fR to disable;
default: debug.log)
.HP
\fB\-includeconf=\fR<file>
.IP
Specify additional configuration file, relative to the \fB\-datadir\fR path
(only useable from configuration file, not command line)
.HP
\fB\-loadblock=\fR<file>
.IP
Imports blocks from external file on startup
.HP
\fB\-maxmempool=\fR<n>
.IP
Keep the transaction memory pool below <n> megabytes (default: 300)
.HP
\fB\-maxorphantx=\fR<n>
.IP
Keep at most <n> unconnectable transactions in memory (default: 100)
.HP
\fB\-mempoolexpiry=\fR<n>
.IP
Do not keep transactions in the mempool longer than <n> hours (default:
336)
.HP
\fB\-par=\fR<n>
.IP
Set the number of script verification threads (\fB\-6\fR to 15, 0 = auto, <0 =
leave that many cores free, default: 0)
.HP
\fB\-persistmempool\fR
.IP
Whether to save the mempool on shutdown and load on restart (default: 1)
.HP
\fB\-pid=\fR<file>
.IP
Specify pid file. Relative paths will be prefixed by a net\-specific
datadir location. (default: bitcoind.pid)
.HP
\fB\-prune=\fR<n>
.IP
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 \fB\-txindex\fR and \fB\-coinstatsindex\fR. Warning:
Reverting this setting requires re\-downloading the entire
blockchain. (default: 0 = disable pruning blocks, 1 = allow
manual pruning via RPC, >=550 = automatically prune block files
to stay under the specified target size in MiB)
.HP
\fB\-reindex\fR
.IP
Rebuild chain state and block index from the blk*.dat files on disk
.HP
\fB\-reindex\-chainstate\fR
.IP
Rebuild chain state from the currently indexed blocks. When in pruning
mode or if blocks on disk might be corrupted, use full \fB\-reindex\fR
instead.
.HP
\fB\-sandbox=\fR<mode>
.IP
Use the experimental syscall sandbox in the specified mode
(\fB\-sandbox\fR=\fI\,log\-and\-abort\/\fR or \fB\-sandbox\fR=\fI\,abort\/\fR). Allow only expected
syscalls to be used by bitcoind. Note that this is an
experimental new feature that may cause bitcoind to exit or crash
unexpectedly: use with caution. In the "log\-and\-abort" mode the
invocation of an unexpected syscall results in a debug handler
being invoked which will log the incident and terminate the
program (without executing the unexpected syscall). In the
"abort" mode the invocation of an unexpected syscall results in
the entire process being killed immediately by the kernel without
executing the unexpected syscall.
.HP
\fB\-settings=\fR<file>
.IP
Specify path to dynamic settings data file. Can be disabled with
\fB\-nosettings\fR. File is written at runtime and not meant to be
edited by users (use bitcoin.conf instead for custom settings).
Relative paths will be prefixed by datadir location. (default:
settings.json)
.HP
\fB\-startupnotify=\fR<cmd>
.IP
Execute command on startup.
.HP
\fB\-sysperms\fR
.IP
Create new files with system default permissions, instead of umask 077
(only effective with disabled wallet functionality)
.HP
\fB\-txindex\fR
.IP
Maintain a full transaction index, used by the getrawtransaction rpc
call (default: 0)
.HP
\fB\-version\fR
.IP
Print version and exit
.PP
Connection options:
.HP
\fB\-addnode=\fR<ip>
.IP
Add a node to connect to and attempt to keep the connection open (see
the addnode RPC help for more info). This option can be specified
multiple times to add multiple nodes; connections are limited to
8 at a time and are counted separately from the \fB\-maxconnections\fR
limit.
.HP
\fB\-asmap=\fR<file>
.IP
Specify asn mapping used for bucketing of the peers (default:
ip_asn.map). Relative paths will be prefixed by the net\-specific
datadir location.
.HP
\fB\-bantime=\fR<n>
.IP
Default duration (in seconds) of manually configured bans (default:
86400)
.HP
\fB\-bind=\fR<addr>[:<port>][=onion]
.IP
Bind to given address and always listen on it (default: 0.0.0.0). Use
[host]:port notation for IPv6. Append =onion to tag any incoming
connections to that address and port as incoming Tor connections
(default: 127.0.0.1:8334=onion, testnet: 127.0.0.1:18334=onion,
signet: 127.0.0.1:38334=onion, regtest: 127.0.0.1:18445=onion)
.HP
\fB\-cjdnsreachable\fR
.IP
If set, then this host is configured for CJDNS (connecting to fc00::/8
addresses would lead us to the CJDNS network, see doc/cjdns.md)
(default: 0)
.HP
\fB\-connect=\fR<ip>
.IP
Connect only to the specified node; \fB\-noconnect\fR disables automatic
connections (the rules for this peer are the same as for
\fB\-addnode\fR). This option can be specified multiple times to connect
to multiple nodes.
.HP
\fB\-discover\fR
.IP
Discover own IP addresses (default: 1 when listening and no \fB\-externalip\fR
or \fB\-proxy\fR)
.HP
\fB\-dns\fR
.IP
Allow DNS lookups for \fB\-addnode\fR, \fB\-seednode\fR and \fB\-connect\fR (default: 1)
.HP
\fB\-dnsseed\fR
.IP
Query for peer addresses via DNS lookup, if low on addresses (default: 1
unless \fB\-connect\fR used)
.HP
\fB\-externalip=\fR<ip>
.IP
Specify your own public address
.HP
\fB\-fixedseeds\fR
.IP
Allow fixed seeds if DNS seeds don't provide peers (default: 1)
.HP
\fB\-forcednsseed\fR
.IP
Always query for peer addresses via DNS lookup (default: 0)
.HP
\fB\-i2pacceptincoming\fR
.IP
If set and \fB\-i2psam\fR is also set then incoming I2P connections are
accepted via the SAM proxy. If this is not set but \fB\-i2psam\fR is set
then only outgoing connections will be made to the I2P network.
Ignored if \fB\-i2psam\fR is not set. Listening for incoming I2P
connections is done through the SAM proxy, not by binding to a
local address and port (default: 1)
.HP
\fB\-i2psam=\fR<ip:port>
.IP
I2P SAM proxy to reach I2P peers and accept I2P connections (default:
none)
.HP
\fB\-listen\fR
.IP
Accept connections from outside (default: 1 if no \fB\-proxy\fR or \fB\-connect\fR)
.HP
\fB\-listenonion\fR
.IP
Automatically create Tor onion service (default: 1)
.HP
\fB\-maxconnections=\fR<n>
.IP
Maintain at most <n> connections to peers (default: 125). This limit
does not apply to connections manually added via \fB\-addnode\fR or the
addnode RPC, which have a separate limit of 8.
.HP
\fB\-maxreceivebuffer=\fR<n>
.IP
Maximum per\-connection receive buffer, <n>*1000 bytes (default: 5000)
.HP
\fB\-maxsendbuffer=\fR<n>
.IP
Maximum per\-connection send buffer, <n>*1000 bytes (default: 1000)
.HP
\fB\-maxtimeadjustment\fR
.IP
Maximum allowed median peer time offset adjustment. Local perspective of
time may be influenced by outbound peers forward or backward by
this amount (default: 4200 seconds).
.HP
\fB\-maxuploadtarget=\fR<n>
.IP
Tries to keep outbound traffic under the given target per 24h. Limit
does not apply to peers with 'download' permission or blocks
created within past week. 0 = no limit (default: 0M). Optional
suffix units [k|K|m|M|g|G|t|T] (default: M). Lowercase is 1000
base while uppercase is 1024 base
.HP
\fB\-natpmp\fR
.IP
Use NAT\-PMP to map the listening port (default: 0)
.HP
\fB\-networkactive\fR
.IP
Enable all P2P network activity (default: 1). Can be changed by the
setnetworkactive RPC command
.HP
\fB\-onion=\fR<ip:port>
.IP
Use separate SOCKS5 proxy to reach peers via Tor onion services, set
\fB\-noonion\fR to disable (default: \fB\-proxy\fR)
.HP
\fB\-onlynet=\fR<net>
.IP
Make automatic outbound connections only to network <net> (ipv4, ipv6,
onion, i2p, cjdns). Inbound and manual connections are not
affected by this option. It can be specified multiple times to
allow multiple networks.
.HP
\fB\-peerblockfilters\fR
.IP
Serve compact block filters to peers per BIP 157 (default: 0)
.HP
\fB\-peerbloomfilters\fR
.IP
Support filtering of blocks and transaction with bloom filters (default:
0)
.HP
\fB\-permitbaremultisig\fR
.IP
Relay non\-P2SH multisig (default: 1)
.HP
\fB\-port=\fR<port>
.IP
Listen for connections on <port>. Nodes not using the default ports
(default: 8333, testnet: 18333, signet: 38333, regtest: 18444)
are unlikely to get incoming connections. Not relevant for I2P
(see doc/i2p.md).
.HP
\fB\-proxy=\fR<ip:port>
.IP
Connect through SOCKS5 proxy, set \fB\-noproxy\fR to disable (default:
disabled)
.HP
\fB\-proxyrandomize\fR
.IP
Randomize credentials for every proxy connection. This enables Tor
stream isolation (default: 1)
.HP
\fB\-seednode=\fR<ip>
.IP
Connect to a node to retrieve peer addresses, and disconnect. This
option can be specified multiple times to connect to multiple
nodes.
.HP
\fB\-timeout=\fR<n>
.IP
Specify socket connection timeout in milliseconds. If an initial attempt
to connect is unsuccessful after this amount of time, drop it
(minimum: 1, default: 5000)
.HP
\fB\-torcontrol=\fR<ip>:<port>
.IP
Tor control port to use if onion listening enabled (default:
127.0.0.1:9051)
.HP
\fB\-torpassword=\fR<pass>
.IP
Tor control port password (default: empty)
.HP
\fB\-upnp\fR
.IP
Use UPnP to map the listening port (default: 0)
.HP
\fB\-whitebind=\fR<[permissions@]addr>
.IP
Bind to the given address and add permission flags to the peers
connecting to it. Use [host]:port notation for IPv6. Allowed
permissions: bloomfilter (allow requesting BIP37 filtered blocks
and transactions), noban (do not ban for misbehavior; implies
download), forcerelay (relay transactions that are already in the
mempool; implies relay), relay (relay even in \fB\-blocksonly\fR mode,
and unlimited transaction announcements), mempool (allow
requesting BIP35 mempool contents), download (allow getheaders
during IBD, no disconnect after maxuploadtarget limit), addr
(responses to GETADDR avoid hitting the cache and contain random
records with the most up\-to\-date info). Specify multiple
permissions separated by commas (default:
download,noban,mempool,relay). Can be specified multiple times.
.HP
\fB\-whitelist=\fR<[permissions@]IP address or network>
.IP
Add permission flags to the peers connecting from the given IP address
(e.g. 1.2.3.4) or CIDR\-notated network (e.g. 1.2.3.0/24). Uses
the same permissions as \fB\-whitebind\fR. Can be specified multiple
times.
.PP
Wallet options:
.HP
\fB\-addresstype\fR
.IP
What type of addresses to use ("legacy", "p2sh\-segwit", "bech32", or
"bech32m", default: "bech32")
.HP
\fB\-avoidpartialspends\fR
.IP
Group outputs by address, selecting many (possibly all) or none, instead
of selecting on a per\-output basis. Privacy is improved as
addresses are mostly swept with fewer transactions and outputs
are aggregated in clean change addresses. It may result in higher
fees due to less optimal coin selection caused by this added
limitation and possibly a larger\-than\-necessary number of inputs
being used. Always enabled for wallets with "avoid_reuse"
enabled, otherwise default: 0.
.HP
\fB\-changetype\fR
.IP
What type of change to use ("legacy", "p2sh\-segwit", "bech32", or
"bech32m"). Default is "legacy" when \fB\-addresstype\fR=\fI\,legacy\/\fR, else it
is an implementation detail.
.HP
\fB\-consolidatefeerate=\fR<amt>
.IP
The maximum feerate (in BTC/kvB) at which transaction building may use
more inputs than strictly necessary so that the wallet's UTXO
pool can be reduced (default: 0.0001).
.HP
\fB\-disablewallet\fR
.IP
Do not load the wallet and disable wallet RPC calls
.HP
\fB\-discardfee=\fR<amt>
.IP
The fee rate (in BTC/kvB) that indicates your tolerance for discarding
change by adding it to the fee (default: 0.0001). Note: An output
is discarded if it is dust at this rate, but we will always
discard up to the dust relay fee and a discard fee above that is
limited by the fee estimate for the longest target
.HP
\fB\-fallbackfee=\fR<amt>
.IP
A fee rate (in BTC/kvB) that will be used when fee estimation has
insufficient data. 0 to entirely disable the fallbackfee feature.
(default: 0.00)
.HP
\fB\-keypool=\fR<n>
.IP
Set key pool size to <n> (default: 1000). Warning: Smaller sizes may
increase the risk of losing funds when restoring from an old
backup, if none of the addresses in the original keypool have
been used.
.HP
\fB\-maxapsfee=\fR<n>
.IP
Spend up to this amount in additional (absolute) fees (in BTC) if it
allows the use of partial spend avoidance (default: 0.00)
.HP
\fB\-mintxfee=\fR<amt>
.IP
Fee rates (in BTC/kvB) smaller than this are considered zero fee for
transaction creation (default: 0.00001)
.HP
\fB\-paytxfee=\fR<amt>
.IP
Fee rate (in BTC/kvB) to add to transactions you send (default: 0.00)
.HP
\fB\-signer=\fR<cmd>
.IP
External signing tool, see doc/external\-signer.md
.HP
\fB\-spendzeroconfchange\fR
.IP
Spend unconfirmed change when sending transactions (default: 1)
.HP
\fB\-txconfirmtarget=\fR<n>
.IP
If paytxfee is not set, include enough fee so transactions begin
confirmation on average within n blocks (default: 6)
.HP
\fB\-wallet=\fR<path>
.IP
Specify wallet path to load at startup. Can be used multiple times to
load multiple wallets. Path is to a directory containing wallet
data and log files. If the path is not absolute, it is
interpreted relative to <walletdir>. This only loads existing
wallets and does not create new ones. For backwards compatibility
this also accepts names of existing top\-level data files in
<walletdir>.
.HP
\fB\-walletbroadcast\fR
.IP
Make the wallet broadcast transactions (default: 1)
.HP
\fB\-walletdir=\fR<dir>
.IP
Specify directory to hold wallets (default: <datadir>/wallets if it
exists, otherwise <datadir>)
.HP
\fB\-walletnotify=\fR<cmd>
.IP
Execute command when a wallet transaction changes. %s in cmd is replaced
by TxID, %w is replaced by wallet name, %b is replaced by the
hash of the block including the transaction (set to 'unconfirmed'
if the transaction is not included) and %h is replaced by the
block height (\fB\-1\fR if not included). %w is not currently
implemented on windows. On systems where %w is supported, it
should NOT be quoted because this would break shell escaping used
to invoke the command.
.HP
\fB\-walletrbf\fR
.IP
Send transactions with full\-RBF opt\-in enabled (RPC only, default: 0)
.PP
ZeroMQ notification options:
.HP
\fB\-zmqpubhashblock=\fR<address>
.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)
.HP
\fB\-zmqpubsequence=\fR<address>
.IP
Enable publish hash block and tx sequence in <address>
.HP
\fB\-zmqpubsequencehwm=\fR<n>
.IP
Set publish hash sequence message high water mark (default: 1000)
.PP
Debugging/Testing options:
.HP
\fB\-debug=\fR<category>
.IP
Output debugging information (default: \fB\-nodebug\fR, supplying <category> is
optional). If <category> is not supplied or if <category> = 1,
output all debugging information. <category> can be: addrman,
bench, blockstorage, cmpctblock, coindb, estimatefee, http, i2p,
ipc, leveldb, libevent, lock, mempool, mempoolrej, net, proxy,
prune, qt, rand, reindex, rpc, selectcoins, tor, util,
validation, walletdb, zmq. This option can be specified multiple
times to output multiple categories.
.HP
\fB\-debugexclude=\fR<category>
.IP
Exclude debugging information for a category. Can be used in conjunction
with \fB\-debug\fR=\fI\,1\/\fR to output debug logs for all categories except the
specified category. This option can be specified multiple times
to exclude multiple categories.
.HP
\fB\-help\-debug\fR
.IP
Print help message with debugging options and exit
.HP
\fB\-logips\fR
.IP
Include IP addresses in debug output (default: 0)
.HP
\fB\-logsourcelocations\fR
.IP
Prepend debug output with name of the originating source location
(source file, line number and function name) (default: 0)
.HP
\fB\-logthreadnames\fR
.IP
Prepend debug output with name of the originating thread (only available
on platforms supporting thread_local) (default: 0)
.HP
\fB\-logtimestamps\fR
.IP
Prepend debug output with timestamp (default: 1)
.HP
\fB\-maxtxfee=\fR<amt>
.IP
Maximum total fees (in BTC) to use in a single wallet transaction;
setting this too low may abort large transactions (default: 0.10)
.HP
\fB\-printtoconsole\fR
.IP
Send trace/debug info to console (default: 1 when no \fB\-daemon\fR. To disable
logging to file, set \fB\-nodebuglogfile\fR)
.HP
\fB\-shrinkdebugfile\fR
.IP
Shrink debug.log file on client startup (default: 1 when no \fB\-debug\fR)
.HP
\fB\-uacomment=\fR<cmt>
.IP
Append comment to the user agent string
.PP
Chain selection options:
.HP
\fB\-chain=\fR<chain>
.IP
Use the chain <chain> (default: main). Allowed values: main, test,
signet, regtest
.HP
\fB\-signet\fR
.IP
Use the signet chain. Equivalent to \fB\-chain\fR=\fI\,signet\/\fR. Note that the network
is defined by the \fB\-signetchallenge\fR parameter
.HP
\fB\-signetchallenge\fR
.IP
Blocks must satisfy the given script to be considered valid (only for
signet networks; defaults to the global default signet test
network challenge)
.HP
\fB\-signetseednode\fR
.IP
Specify a seed node for the signet network, in the hostname[:port]
format, e.g. sig.net:1234 (may be used multiple times to specify
multiple seed nodes; defaults to the global default signet test
network seed node(s))
.HP
\fB\-testnet\fR
.IP
Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR.
.PP
Node relay options:
.HP
\fB\-bytespersigop\fR
.IP
Equivalent bytes per sigop in transactions for relay and mining
(default: 20)
.HP
\fB\-datacarrier\fR
.IP
Relay and mine data carrier transactions (default: 1)
.HP
\fB\-datacarriersize\fR
.IP
Maximum size of data in data carrier transactions we relay and mine
(default: 83)
.HP
\fB\-minrelaytxfee=\fR<amt>
.IP
Fees (in BTC/kvB) smaller than this are considered zero fee for
relaying, mining and transaction creation (default: 0.00001)
.HP
\fB\-whitelistforcerelay\fR
.IP
Add 'forcerelay' permission to whitelisted inbound peers with default
permissions. This will relay transactions even if the
transactions were already in the mempool. (default: 0)
.HP
\fB\-whitelistrelay\fR
.IP
Add 'relay' permission to whitelisted inbound peers with default
permissions. This will accept relayed transactions even when not
relaying transactions (default: 1)
.PP
Block creation options:
.HP
\fB\-blockmaxweight=\fR<n>
.IP
Set maximum BIP141 block weight (default: 3996000)
.HP
\fB\-blockmintxfee=\fR<amt>
.IP
Set lowest fee rate (in BTC/kvB) for transactions to be included in
block creation. (default: 0.00001)
.PP
RPC server options:
.HP
\fB\-rest\fR
.IP
Accept public REST requests (default: 0)
.HP
\fB\-rpcallowip=\fR<ip>
.IP
Allow JSON\-RPC connections from specified source. Valid for <ip> are a
single IP (e.g. 1.2.3.4), a network/netmask (e.g.
1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This
option can be specified multiple times
.HP
\fB\-rpcauth=\fR<userpw>
.IP
Username and HMAC\-SHA\-256 hashed password for JSON\-RPC connections. The
field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A
canonical python script is included in share/rpcauth. The client
then connects normally using the
rpcuser=<USERNAME>/rpcpassword=<PASSWORD> pair of arguments. This
option can be specified multiple times
.HP
\fB\-rpcbind=\fR<addr>[:port]
.IP
Bind to given address to listen for JSON\-RPC connections. Do not expose
the RPC server to untrusted networks such as the public internet!
This option is ignored unless \fB\-rpcallowip\fR is also passed. Port is
optional and overrides \fB\-rpcport\fR. Use [host]:port notation for
IPv6. This option can be specified multiple times (default:
127.0.0.1 and ::1 i.e., localhost)
.HP
\fB\-rpccookiefile=\fR<loc>
.IP
Location of the auth cookie. Relative paths will be prefixed by a
net\-specific datadir location. (default: data dir)
.HP
\fB\-rpcpassword=\fR<pw>
.IP
Password for JSON\-RPC connections
.HP
\fB\-rpcport=\fR<port>
.IP
Listen for JSON\-RPC connections on <port> (default: 8332, testnet:
18332, signet: 38332, regtest: 18443)
.HP
\fB\-rpcserialversion\fR
.IP
Sets the serialization of raw transaction or block hex returned in
non\-verbose mode, non\-segwit(0) or segwit(1) (default: 1)
.HP
\fB\-rpcthreads=\fR<n>
.IP
Set the number of threads to service RPC calls (default: 4)
.HP
\fB\-rpcuser=\fR<user>
.IP
Username for JSON\-RPC connections
.HP
\fB\-rpcwhitelist=\fR<whitelist>
.IP
Set a whitelist to filter incoming RPC calls for a specific user. The
field <whitelist> comes in the format: <USERNAME>:<rpc 1>,<rpc
2>,...,<rpc n>. If multiple whitelists are set for a given user,
they are set\-intersected. See \fB\-rpcwhitelistdefault\fR documentation
for information on default whitelist behavior.
.HP
\fB\-rpcwhitelistdefault\fR
.IP
Sets default behavior for rpc whitelisting. Unless rpcwhitelistdefault
is set to 0, if any \fB\-rpcwhitelist\fR is set, the rpc server acts as
if all rpc users are subject to empty\-unless\-otherwise\-specified
whitelists. If rpcwhitelistdefault is set to 1 and no
\fB\-rpcwhitelist\fR is set, rpc server acts as if all rpc users are
subject to empty whitelists.
.HP
\fB\-server\fR
.IP
Accept command line and JSON\-RPC commands
.PP
UI Options:
.HP
\fB\-choosedatadir\fR
.IP
Choose data directory on startup (default: 0)
.HP
\fB\-lang=\fR<lang>
.IP
Set language, for example "de_DE" (default: system locale)
.HP
\fB\-min\fR
.IP
Start minimized
.HP
\fB\-resetguisettings\fR
.IP
Reset all settings changed in the GUI
.HP
\fB\-splash\fR
.IP
Show splash screen on startup (default: 1)
.SH COPYRIGHT
Copyright (C) 2009-2022 The Bitcoin Core developers
This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release.
Please contribute if you find Bitcoin Core useful. Visit
<https://bitcoincore.org/> for further information about the software.
The source code is available from <https://github.com/bitcoin/bitcoin>.
This is experimental software.
Distributed under the MIT software license, see the accompanying file COPYING
or <https://opensource.org/licenses/MIT>

View File

@@ -1,5 +1,145 @@
.TH BITCOIN-TX "1"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
.TH BITCOIN-TX "1" "March 2022" "bitcoin-tx v23.0.0rc3" "User Commands"
.SH NAME
bitcoin-tx \- manual page for bitcoin-tx
bitcoin-tx \- manual page for bitcoin-tx v23.0.0rc3
.SH SYNOPSIS
.B bitcoin-tx
[\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR] \fI\,Update hex-encoded bitcoin transaction\/\fR
.br
.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 v23.0.0rc3
.SH OPTIONS
.HP
\-?
.IP
Print this help message and exit
.HP
\fB\-create\fR
.IP
Create new, empty TX.
.HP
\fB\-json\fR
.IP
Select JSON output
.HP
\fB\-txid\fR
.IP
Output only the hex\-encoded transaction id of the resultant transaction.
.HP
\fB\-version\fR
.IP
Print version and exit
.PP
Debugging/Testing options:
.PP
Chain selection options:
.HP
\fB\-chain=\fR<chain>
.IP
Use the chain <chain> (default: main). Allowed values: main, test,
signet, regtest
.HP
\fB\-signet\fR
.IP
Use the signet chain. Equivalent to \fB\-chain\fR=\fI\,signet\/\fR. Note that the network
is defined by the \fB\-signetchallenge\fR parameter
.HP
\fB\-signetchallenge\fR
.IP
Blocks must satisfy the given script to be considered valid (only for
signet networks; defaults to the global default signet test
network challenge)
.HP
\fB\-signetseednode\fR
.IP
Specify a seed node for the signet network, in the hostname[:port]
format, e.g. sig.net:1234 (may be used multiple times to specify
multiple seed nodes; defaults to the global default signet test
network seed node(s))
.HP
\fB\-testnet\fR
.IP
Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR.
.PP
Commands:
.IP
delin=N
.IP
Delete input N from TX
.IP
delout=N
.IP
Delete output N from TX
.IP
in=TXID:VOUT(:SEQUENCE_NUMBER)
.IP
Add input to TX
.IP
locktime=N
.IP
Set TX lock time to N
.IP
nversion=N
.IP
Set TX version to N
.IP
outaddr=VALUE:ADDRESS
.IP
Add address\-based output to TX
.IP
outdata=[VALUE:]DATA
.IP
Add data\-based output to TX
.IP
outmultisig=VALUE:REQUIRED:PUBKEYS:PUBKEY1:PUBKEY2:....[:FLAGS]
.IP
Add Pay To n\-of\-m Multi\-sig output to TX. n = REQUIRED, m = PUBKEYS.
Optionally add the "W" flag to produce a
pay\-to\-witness\-script\-hash output. Optionally add the "S" flag to
wrap the output in a pay\-to\-script\-hash.
.IP
outpubkey=VALUE:PUBKEY[:FLAGS]
.IP
Add pay\-to\-pubkey output to TX. Optionally add the "W" flag to produce a
pay\-to\-witness\-pubkey\-hash output. Optionally add the "S" flag to
wrap the output in a pay\-to\-script\-hash.
.IP
outscript=VALUE:SCRIPT[:FLAGS]
.IP
Add raw script output to TX. Optionally add the "W" flag to produce a
pay\-to\-witness\-script\-hash output. Optionally add the "S" flag to
wrap the output in a pay\-to\-script\-hash.
.IP
replaceable(=N)
.IP
Set RBF opt\-in sequence number for input N (if not provided, opt\-in all
available inputs)
.IP
sign=SIGHASH\-FLAGS
.IP
Add zero or more signatures to transaction. This command requires JSON
registers:prevtxs=JSON object, privatekeys=JSON object. See
signrawtransactionwithkey docs for format of sighash flags, JSON
objects.
.PP
Register Commands:
.IP
load=NAME:FILENAME
.IP
Load JSON file FILENAME into register NAME
.IP
set=NAME:JSON\-STRING
.IP
Set register NAME to given JSON\-STRING
.SH COPYRIGHT
Copyright (C) 2009-2022 The Bitcoin Core developers
This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release.
Please contribute if you find Bitcoin Core useful. Visit
<https://bitcoincore.org/> for further information about the software.
The source code is available from <https://github.com/bitcoin/bitcoin>.
This is experimental software.
Distributed under the MIT software license, see the accompanying file COPYING
or <https://opensource.org/licenses/MIT>

View File

@@ -1,5 +1,65 @@
.TH BITCOIN-UTIL "1"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
.TH BITCOIN-UTIL "1" "March 2022" "bitcoin-util v23.0.0rc3" "User Commands"
.SH NAME
bitcoin-util \- manual page for bitcoin-util
bitcoin-util \- manual page for bitcoin-util v23.0.0rc3
.SH SYNOPSIS
.B bitcoin-util
[\fI\,options\/\fR] [\fI\,commands\/\fR] \fI\,Do stuff\/\fR
.SH DESCRIPTION
Bitcoin Core bitcoin\-util utility version v23.0.0rc3
.SH OPTIONS
.HP
\-?
.IP
Print this help message and exit
.HP
\fB\-version\fR
.IP
Print version and exit
.PP
Debugging/Testing options:
.PP
Chain selection options:
.HP
\fB\-chain=\fR<chain>
.IP
Use the chain <chain> (default: main). Allowed values: main, test,
signet, regtest
.HP
\fB\-signet\fR
.IP
Use the signet chain. Equivalent to \fB\-chain\fR=\fI\,signet\/\fR. Note that the network
is defined by the \fB\-signetchallenge\fR parameter
.HP
\fB\-signetchallenge\fR
.IP
Blocks must satisfy the given script to be considered valid (only for
signet networks; defaults to the global default signet test
network challenge)
.HP
\fB\-signetseednode\fR
.IP
Specify a seed node for the signet network, in the hostname[:port]
format, e.g. sig.net:1234 (may be used multiple times to specify
multiple seed nodes; defaults to the global default signet test
network seed node(s))
.HP
\fB\-testnet\fR
.IP
Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR.
.PP
Commands:
.IP
grind
.IP
Perform proof of work on hex header string
.SH COPYRIGHT
Copyright (C) 2009-2022 The Bitcoin Core developers
This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release.
Please contribute if you find Bitcoin Core useful. Visit
<https://bitcoincore.org/> for further information about the software.
The source code is available from <https://github.com/bitcoin/bitcoin>.
This is experimental software.
Distributed under the MIT software license, see the accompanying file COPYING
or <https://opensource.org/licenses/MIT>

View File

@@ -1,5 +1,121 @@
.TH BITCOIN-WALLET "1"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
.TH BITCOIN-WALLET "1" "March 2022" "bitcoin-wallet v23.0.0rc3" "User Commands"
.SH NAME
bitcoin-wallet \- manual page for bitcoin-wallet
bitcoin-wallet \- manual page for bitcoin-wallet v23.0.0rc3
.SH DESCRIPTION
Bitcoin Core bitcoin\-wallet version v23.0.0rc3
.PP
bitcoin\-wallet is an offline tool for creating and interacting with Bitcoin Core wallet files.
By default bitcoin\-wallet will act on wallets in the default mainnet wallet directory in the datadir.
To change the target wallet, use the \fB\-datadir\fR, \fB\-wallet\fR and \fB\-regtest\fR/\-signet/\-testnet arguments.
.SS "Usage:"
.IP
bitcoin\-wallet [options] <command>
.SH OPTIONS
.HP
\-?
.IP
Print this help message and exit
.HP
\fB\-datadir=\fR<dir>
.IP
Specify data directory
.HP
\fB\-descriptors\fR
.IP
Create descriptors wallet. Only for 'create'
.HP
\fB\-dumpfile=\fR<file name>
.IP
When used with 'dump', writes out the records to this file. When used
with 'createfromdump', loads the records into a new wallet.
.HP
\fB\-format=\fR<format>
.IP
The format of the wallet file to create. Either "bdb" or "sqlite". Only
used with 'createfromdump'
.HP
\fB\-legacy\fR
.IP
Create legacy wallet. Only for 'create'
.HP
\fB\-version\fR
.IP
Print version and exit
.HP
\fB\-wallet=\fR<wallet\-name>
.IP
Specify wallet name
.PP
Debugging/Testing options:
.HP
\fB\-debug=\fR<category>
.IP
Output debugging information (default: 0).
.HP
\fB\-printtoconsole\fR
.IP
Send trace/debug info to console (default: 1 when no \fB\-debug\fR is true, 0
otherwise).
.PP
Chain selection options:
.HP
\fB\-chain=\fR<chain>
.IP
Use the chain <chain> (default: main). Allowed values: main, test,
signet, regtest
.HP
\fB\-signet\fR
.IP
Use the signet chain. Equivalent to \fB\-chain\fR=\fI\,signet\/\fR. Note that the network
is defined by the \fB\-signetchallenge\fR parameter
.HP
\fB\-signetchallenge\fR
.IP
Blocks must satisfy the given script to be considered valid (only for
signet networks; defaults to the global default signet test
network challenge)
.HP
\fB\-signetseednode\fR
.IP
Specify a seed node for the signet network, in the hostname[:port]
format, e.g. sig.net:1234 (may be used multiple times to specify
multiple seed nodes; defaults to the global default signet test
network seed node(s))
.HP
\fB\-testnet\fR
.IP
Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR.
.PP
Commands:
.IP
create
.IP
Create new wallet file
.IP
createfromdump
.IP
Create new wallet file from dumped records
.IP
dump
.IP
Print out all of the wallet key\-value records
.IP
info
.IP
Get wallet info
.IP
salvage
.IP
Attempt to recover private keys from a corrupt wallet. Warning:
\&'salvage' is experimental.
.SH COPYRIGHT
Copyright (C) 2009-2022 The Bitcoin Core developers
This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release.
Please contribute if you find Bitcoin Core useful. Visit
<https://bitcoincore.org/> for further information about the software.
The source code is available from <https://github.com/bitcoin/bitcoin>.
This is experimental software.
Distributed under the MIT software license, see the accompanying file COPYING
or <https://opensource.org/licenses/MIT>

View File

@@ -1,5 +1,789 @@
.TH BITCOIND "1"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
.TH BITCOIND "1" "March 2022" "bitcoind v23.0.0rc3" "User Commands"
.SH NAME
bitcoind \- manual page for bitcoind
bitcoind \- manual page for bitcoind v23.0.0rc3
.SH SYNOPSIS
.B bitcoind
[\fI\,options\/\fR] \fI\,Start Bitcoin Core\/\fR
.SH DESCRIPTION
Bitcoin Core version v23.0.0rc3
.SH OPTIONS
.HP
\-?
.IP
Print this help message and exit
.HP
\fB\-alertnotify=\fR<cmd>
.IP
Execute command when an alert is raised (%s in cmd is replaced by
message)
.HP
\fB\-assumevalid=\fR<hex>
.IP
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:
000000000000000000052d314a259755ca65944e68df6b12a067ea8f1f5a7091,
testnet:
00000000000163cfb1f97c4e4098a3692c8053ad9cab5ad9c86b338b5c00b8b7,
signet:
00000112852484b5fe3451572368f93cfd2723279af3464e478aee35115256ef)
.HP
\fB\-blockfilterindex=\fR<type>
.IP
Maintain an index of compact filters by block (default: 0, values:
basic). If <type> is not supplied or if <type> = 1, indexes for
all known types are enabled.
.HP
\fB\-blocknotify=\fR<cmd>
.IP
Execute command when the best block changes (%s in cmd is replaced by
block hash)
.HP
\fB\-blockreconstructionextratxn=\fR<n>
.IP
Extra transactions to keep in memory for compact block reconstructions
(default: 100)
.HP
\fB\-blocksdir=\fR<dir>
.IP
Specify directory to hold blocks subdirectory for *.dat files (default:
<datadir>)
.HP
\fB\-blocksonly\fR
.IP
Whether to reject transactions from network peers. Automatic broadcast
and rebroadcast of any transactions from inbound peers is
disabled, unless the peer has the 'forcerelay' permission. RPC
transactions are not affected. (default: 0)
.HP
\fB\-coinstatsindex\fR
.IP
Maintain coinstats index used by the gettxoutsetinfo RPC (default: 0)
.HP
\fB\-conf=\fR<file>
.IP
Specify path to read\-only configuration file. Relative paths will be
prefixed by datadir location. (default: bitcoin.conf)
.HP
\fB\-daemon\fR
.IP
Run in the background as a daemon and accept commands (default: 0)
.HP
\fB\-daemonwait\fR
.IP
Wait for initialization to be finished before exiting. This implies
\fB\-daemon\fR (default: 0)
.HP
\fB\-datadir=\fR<dir>
.IP
Specify data directory
.HP
\fB\-dbcache=\fR<n>
.IP
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
Specify location of debug log file. Relative paths will be prefixed by a
net\-specific datadir location. (\fB\-nodebuglogfile\fR to disable;
default: debug.log)
.HP
\fB\-includeconf=\fR<file>
.IP
Specify additional configuration file, relative to the \fB\-datadir\fR path
(only useable from configuration file, not command line)
.HP
\fB\-loadblock=\fR<file>
.IP
Imports blocks from external file on startup
.HP
\fB\-maxmempool=\fR<n>
.IP
Keep the transaction memory pool below <n> megabytes (default: 300)
.HP
\fB\-maxorphantx=\fR<n>
.IP
Keep at most <n> unconnectable transactions in memory (default: 100)
.HP
\fB\-mempoolexpiry=\fR<n>
.IP
Do not keep transactions in the mempool longer than <n> hours (default:
336)
.HP
\fB\-par=\fR<n>
.IP
Set the number of script verification threads (\fB\-6\fR to 15, 0 = auto, <0 =
leave that many cores free, default: 0)
.HP
\fB\-persistmempool\fR
.IP
Whether to save the mempool on shutdown and load on restart (default: 1)
.HP
\fB\-pid=\fR<file>
.IP
Specify pid file. Relative paths will be prefixed by a net\-specific
datadir location. (default: bitcoind.pid)
.HP
\fB\-prune=\fR<n>
.IP
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 \fB\-txindex\fR and \fB\-coinstatsindex\fR. Warning:
Reverting this setting requires re\-downloading the entire
blockchain. (default: 0 = disable pruning blocks, 1 = allow
manual pruning via RPC, >=550 = automatically prune block files
to stay under the specified target size in MiB)
.HP
\fB\-reindex\fR
.IP
Rebuild chain state and block index from the blk*.dat files on disk
.HP
\fB\-reindex\-chainstate\fR
.IP
Rebuild chain state from the currently indexed blocks. When in pruning
mode or if blocks on disk might be corrupted, use full \fB\-reindex\fR
instead.
.HP
\fB\-sandbox=\fR<mode>
.IP
Use the experimental syscall sandbox in the specified mode
(\fB\-sandbox\fR=\fI\,log\-and\-abort\/\fR or \fB\-sandbox\fR=\fI\,abort\/\fR). Allow only expected
syscalls to be used by bitcoind. Note that this is an
experimental new feature that may cause bitcoind to exit or crash
unexpectedly: use with caution. In the "log\-and\-abort" mode the
invocation of an unexpected syscall results in a debug handler
being invoked which will log the incident and terminate the
program (without executing the unexpected syscall). In the
"abort" mode the invocation of an unexpected syscall results in
the entire process being killed immediately by the kernel without
executing the unexpected syscall.
.HP
\fB\-settings=\fR<file>
.IP
Specify path to dynamic settings data file. Can be disabled with
\fB\-nosettings\fR. File is written at runtime and not meant to be
edited by users (use bitcoin.conf instead for custom settings).
Relative paths will be prefixed by datadir location. (default:
settings.json)
.HP
\fB\-startupnotify=\fR<cmd>
.IP
Execute command on startup.
.HP
\fB\-sysperms\fR
.IP
Create new files with system default permissions, instead of umask 077
(only effective with disabled wallet functionality)
.HP
\fB\-txindex\fR
.IP
Maintain a full transaction index, used by the getrawtransaction rpc
call (default: 0)
.HP
\fB\-version\fR
.IP
Print version and exit
.PP
Connection options:
.HP
\fB\-addnode=\fR<ip>
.IP
Add a node to connect to and attempt to keep the connection open (see
the addnode RPC help for more info). This option can be specified
multiple times to add multiple nodes; connections are limited to
8 at a time and are counted separately from the \fB\-maxconnections\fR
limit.
.HP
\fB\-asmap=\fR<file>
.IP
Specify asn mapping used for bucketing of the peers (default:
ip_asn.map). Relative paths will be prefixed by the net\-specific
datadir location.
.HP
\fB\-bantime=\fR<n>
.IP
Default duration (in seconds) of manually configured bans (default:
86400)
.HP
\fB\-bind=\fR<addr>[:<port>][=onion]
.IP
Bind to given address and always listen on it (default: 0.0.0.0). Use
[host]:port notation for IPv6. Append =onion to tag any incoming
connections to that address and port as incoming Tor connections
(default: 127.0.0.1:8334=onion, testnet: 127.0.0.1:18334=onion,
signet: 127.0.0.1:38334=onion, regtest: 127.0.0.1:18445=onion)
.HP
\fB\-cjdnsreachable\fR
.IP
If set, then this host is configured for CJDNS (connecting to fc00::/8
addresses would lead us to the CJDNS network, see doc/cjdns.md)
(default: 0)
.HP
\fB\-connect=\fR<ip>
.IP
Connect only to the specified node; \fB\-noconnect\fR disables automatic
connections (the rules for this peer are the same as for
\fB\-addnode\fR). This option can be specified multiple times to connect
to multiple nodes.
.HP
\fB\-discover\fR
.IP
Discover own IP addresses (default: 1 when listening and no \fB\-externalip\fR
or \fB\-proxy\fR)
.HP
\fB\-dns\fR
.IP
Allow DNS lookups for \fB\-addnode\fR, \fB\-seednode\fR and \fB\-connect\fR (default: 1)
.HP
\fB\-dnsseed\fR
.IP
Query for peer addresses via DNS lookup, if low on addresses (default: 1
unless \fB\-connect\fR used)
.HP
\fB\-externalip=\fR<ip>
.IP
Specify your own public address
.HP
\fB\-fixedseeds\fR
.IP
Allow fixed seeds if DNS seeds don't provide peers (default: 1)
.HP
\fB\-forcednsseed\fR
.IP
Always query for peer addresses via DNS lookup (default: 0)
.HP
\fB\-i2pacceptincoming\fR
.IP
If set and \fB\-i2psam\fR is also set then incoming I2P connections are
accepted via the SAM proxy. If this is not set but \fB\-i2psam\fR is set
then only outgoing connections will be made to the I2P network.
Ignored if \fB\-i2psam\fR is not set. Listening for incoming I2P
connections is done through the SAM proxy, not by binding to a
local address and port (default: 1)
.HP
\fB\-i2psam=\fR<ip:port>
.IP
I2P SAM proxy to reach I2P peers and accept I2P connections (default:
none)
.HP
\fB\-listen\fR
.IP
Accept connections from outside (default: 1 if no \fB\-proxy\fR or \fB\-connect\fR)
.HP
\fB\-listenonion\fR
.IP
Automatically create Tor onion service (default: 1)
.HP
\fB\-maxconnections=\fR<n>
.IP
Maintain at most <n> connections to peers (default: 125). This limit
does not apply to connections manually added via \fB\-addnode\fR or the
addnode RPC, which have a separate limit of 8.
.HP
\fB\-maxreceivebuffer=\fR<n>
.IP
Maximum per\-connection receive buffer, <n>*1000 bytes (default: 5000)
.HP
\fB\-maxsendbuffer=\fR<n>
.IP
Maximum per\-connection send buffer, <n>*1000 bytes (default: 1000)
.HP
\fB\-maxtimeadjustment\fR
.IP
Maximum allowed median peer time offset adjustment. Local perspective of
time may be influenced by outbound peers forward or backward by
this amount (default: 4200 seconds).
.HP
\fB\-maxuploadtarget=\fR<n>
.IP
Tries to keep outbound traffic under the given target per 24h. Limit
does not apply to peers with 'download' permission or blocks
created within past week. 0 = no limit (default: 0M). Optional
suffix units [k|K|m|M|g|G|t|T] (default: M). Lowercase is 1000
base while uppercase is 1024 base
.HP
\fB\-natpmp\fR
.IP
Use NAT\-PMP to map the listening port (default: 0)
.HP
\fB\-networkactive\fR
.IP
Enable all P2P network activity (default: 1). Can be changed by the
setnetworkactive RPC command
.HP
\fB\-onion=\fR<ip:port>
.IP
Use separate SOCKS5 proxy to reach peers via Tor onion services, set
\fB\-noonion\fR to disable (default: \fB\-proxy\fR)
.HP
\fB\-onlynet=\fR<net>
.IP
Make automatic outbound connections only to network <net> (ipv4, ipv6,
onion, i2p, cjdns). Inbound and manual connections are not
affected by this option. It can be specified multiple times to
allow multiple networks.
.HP
\fB\-peerblockfilters\fR
.IP
Serve compact block filters to peers per BIP 157 (default: 0)
.HP
\fB\-peerbloomfilters\fR
.IP
Support filtering of blocks and transaction with bloom filters (default:
0)
.HP
\fB\-permitbaremultisig\fR
.IP
Relay non\-P2SH multisig (default: 1)
.HP
\fB\-port=\fR<port>
.IP
Listen for connections on <port>. Nodes not using the default ports
(default: 8333, testnet: 18333, signet: 38333, regtest: 18444)
are unlikely to get incoming connections. Not relevant for I2P
(see doc/i2p.md).
.HP
\fB\-proxy=\fR<ip:port>
.IP
Connect through SOCKS5 proxy, set \fB\-noproxy\fR to disable (default:
disabled)
.HP
\fB\-proxyrandomize\fR
.IP
Randomize credentials for every proxy connection. This enables Tor
stream isolation (default: 1)
.HP
\fB\-seednode=\fR<ip>
.IP
Connect to a node to retrieve peer addresses, and disconnect. This
option can be specified multiple times to connect to multiple
nodes.
.HP
\fB\-timeout=\fR<n>
.IP
Specify socket connection timeout in milliseconds. If an initial attempt
to connect is unsuccessful after this amount of time, drop it
(minimum: 1, default: 5000)
.HP
\fB\-torcontrol=\fR<ip>:<port>
.IP
Tor control port to use if onion listening enabled (default:
127.0.0.1:9051)
.HP
\fB\-torpassword=\fR<pass>
.IP
Tor control port password (default: empty)
.HP
\fB\-upnp\fR
.IP
Use UPnP to map the listening port (default: 0)
.HP
\fB\-whitebind=\fR<[permissions@]addr>
.IP
Bind to the given address and add permission flags to the peers
connecting to it. Use [host]:port notation for IPv6. Allowed
permissions: bloomfilter (allow requesting BIP37 filtered blocks
and transactions), noban (do not ban for misbehavior; implies
download), forcerelay (relay transactions that are already in the
mempool; implies relay), relay (relay even in \fB\-blocksonly\fR mode,
and unlimited transaction announcements), mempool (allow
requesting BIP35 mempool contents), download (allow getheaders
during IBD, no disconnect after maxuploadtarget limit), addr
(responses to GETADDR avoid hitting the cache and contain random
records with the most up\-to\-date info). Specify multiple
permissions separated by commas (default:
download,noban,mempool,relay). Can be specified multiple times.
.HP
\fB\-whitelist=\fR<[permissions@]IP address or network>
.IP
Add permission flags to the peers connecting from the given IP address
(e.g. 1.2.3.4) or CIDR\-notated network (e.g. 1.2.3.0/24). Uses
the same permissions as \fB\-whitebind\fR. Can be specified multiple
times.
.PP
Wallet options:
.HP
\fB\-addresstype\fR
.IP
What type of addresses to use ("legacy", "p2sh\-segwit", "bech32", or
"bech32m", default: "bech32")
.HP
\fB\-avoidpartialspends\fR
.IP
Group outputs by address, selecting many (possibly all) or none, instead
of selecting on a per\-output basis. Privacy is improved as
addresses are mostly swept with fewer transactions and outputs
are aggregated in clean change addresses. It may result in higher
fees due to less optimal coin selection caused by this added
limitation and possibly a larger\-than\-necessary number of inputs
being used. Always enabled for wallets with "avoid_reuse"
enabled, otherwise default: 0.
.HP
\fB\-changetype\fR
.IP
What type of change to use ("legacy", "p2sh\-segwit", "bech32", or
"bech32m"). Default is "legacy" when \fB\-addresstype\fR=\fI\,legacy\/\fR, else it
is an implementation detail.
.HP
\fB\-consolidatefeerate=\fR<amt>
.IP
The maximum feerate (in BTC/kvB) at which transaction building may use
more inputs than strictly necessary so that the wallet's UTXO
pool can be reduced (default: 0.0001).
.HP
\fB\-disablewallet\fR
.IP
Do not load the wallet and disable wallet RPC calls
.HP
\fB\-discardfee=\fR<amt>
.IP
The fee rate (in BTC/kvB) that indicates your tolerance for discarding
change by adding it to the fee (default: 0.0001). Note: An output
is discarded if it is dust at this rate, but we will always
discard up to the dust relay fee and a discard fee above that is
limited by the fee estimate for the longest target
.HP
\fB\-fallbackfee=\fR<amt>
.IP
A fee rate (in BTC/kvB) that will be used when fee estimation has
insufficient data. 0 to entirely disable the fallbackfee feature.
(default: 0.00)
.HP
\fB\-keypool=\fR<n>
.IP
Set key pool size to <n> (default: 1000). Warning: Smaller sizes may
increase the risk of losing funds when restoring from an old
backup, if none of the addresses in the original keypool have
been used.
.HP
\fB\-maxapsfee=\fR<n>
.IP
Spend up to this amount in additional (absolute) fees (in BTC) if it
allows the use of partial spend avoidance (default: 0.00)
.HP
\fB\-mintxfee=\fR<amt>
.IP
Fee rates (in BTC/kvB) smaller than this are considered zero fee for
transaction creation (default: 0.00001)
.HP
\fB\-paytxfee=\fR<amt>
.IP
Fee rate (in BTC/kvB) to add to transactions you send (default: 0.00)
.HP
\fB\-signer=\fR<cmd>
.IP
External signing tool, see doc/external\-signer.md
.HP
\fB\-spendzeroconfchange\fR
.IP
Spend unconfirmed change when sending transactions (default: 1)
.HP
\fB\-txconfirmtarget=\fR<n>
.IP
If paytxfee is not set, include enough fee so transactions begin
confirmation on average within n blocks (default: 6)
.HP
\fB\-wallet=\fR<path>
.IP
Specify wallet path to load at startup. Can be used multiple times to
load multiple wallets. Path is to a directory containing wallet
data and log files. If the path is not absolute, it is
interpreted relative to <walletdir>. This only loads existing
wallets and does not create new ones. For backwards compatibility
this also accepts names of existing top\-level data files in
<walletdir>.
.HP
\fB\-walletbroadcast\fR
.IP
Make the wallet broadcast transactions (default: 1)
.HP
\fB\-walletdir=\fR<dir>
.IP
Specify directory to hold wallets (default: <datadir>/wallets if it
exists, otherwise <datadir>)
.HP
\fB\-walletnotify=\fR<cmd>
.IP
Execute command when a wallet transaction changes. %s in cmd is replaced
by TxID, %w is replaced by wallet name, %b is replaced by the
hash of the block including the transaction (set to 'unconfirmed'
if the transaction is not included) and %h is replaced by the
block height (\fB\-1\fR if not included). %w is not currently
implemented on windows. On systems where %w is supported, it
should NOT be quoted because this would break shell escaping used
to invoke the command.
.HP
\fB\-walletrbf\fR
.IP
Send transactions with full\-RBF opt\-in enabled (RPC only, default: 0)
.PP
ZeroMQ notification options:
.HP
\fB\-zmqpubhashblock=\fR<address>
.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)
.HP
\fB\-zmqpubsequence=\fR<address>
.IP
Enable publish hash block and tx sequence in <address>
.HP
\fB\-zmqpubsequencehwm=\fR<n>
.IP
Set publish hash sequence message high water mark (default: 1000)
.PP
Debugging/Testing options:
.HP
\fB\-debug=\fR<category>
.IP
Output debugging information (default: \fB\-nodebug\fR, supplying <category> is
optional). If <category> is not supplied or if <category> = 1,
output all debugging information. <category> can be: addrman,
bench, blockstorage, cmpctblock, coindb, estimatefee, http, i2p,
ipc, leveldb, libevent, lock, mempool, mempoolrej, net, proxy,
prune, qt, rand, reindex, rpc, selectcoins, tor, util,
validation, walletdb, zmq. This option can be specified multiple
times to output multiple categories.
.HP
\fB\-debugexclude=\fR<category>
.IP
Exclude debugging information for a category. Can be used in conjunction
with \fB\-debug\fR=\fI\,1\/\fR to output debug logs for all categories except the
specified category. This option can be specified multiple times
to exclude multiple categories.
.HP
\fB\-help\-debug\fR
.IP
Print help message with debugging options and exit
.HP
\fB\-logips\fR
.IP
Include IP addresses in debug output (default: 0)
.HP
\fB\-logsourcelocations\fR
.IP
Prepend debug output with name of the originating source location
(source file, line number and function name) (default: 0)
.HP
\fB\-logthreadnames\fR
.IP
Prepend debug output with name of the originating thread (only available
on platforms supporting thread_local) (default: 0)
.HP
\fB\-logtimestamps\fR
.IP
Prepend debug output with timestamp (default: 1)
.HP
\fB\-maxtxfee=\fR<amt>
.IP
Maximum total fees (in BTC) to use in a single wallet transaction;
setting this too low may abort large transactions (default: 0.10)
.HP
\fB\-printtoconsole\fR
.IP
Send trace/debug info to console (default: 1 when no \fB\-daemon\fR. To disable
logging to file, set \fB\-nodebuglogfile\fR)
.HP
\fB\-shrinkdebugfile\fR
.IP
Shrink debug.log file on client startup (default: 1 when no \fB\-debug\fR)
.HP
\fB\-uacomment=\fR<cmt>
.IP
Append comment to the user agent string
.PP
Chain selection options:
.HP
\fB\-chain=\fR<chain>
.IP
Use the chain <chain> (default: main). Allowed values: main, test,
signet, regtest
.HP
\fB\-signet\fR
.IP
Use the signet chain. Equivalent to \fB\-chain\fR=\fI\,signet\/\fR. Note that the network
is defined by the \fB\-signetchallenge\fR parameter
.HP
\fB\-signetchallenge\fR
.IP
Blocks must satisfy the given script to be considered valid (only for
signet networks; defaults to the global default signet test
network challenge)
.HP
\fB\-signetseednode\fR
.IP
Specify a seed node for the signet network, in the hostname[:port]
format, e.g. sig.net:1234 (may be used multiple times to specify
multiple seed nodes; defaults to the global default signet test
network seed node(s))
.HP
\fB\-testnet\fR
.IP
Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR.
.PP
Node relay options:
.HP
\fB\-bytespersigop\fR
.IP
Equivalent bytes per sigop in transactions for relay and mining
(default: 20)
.HP
\fB\-datacarrier\fR
.IP
Relay and mine data carrier transactions (default: 1)
.HP
\fB\-datacarriersize\fR
.IP
Maximum size of data in data carrier transactions we relay and mine
(default: 83)
.HP
\fB\-minrelaytxfee=\fR<amt>
.IP
Fees (in BTC/kvB) smaller than this are considered zero fee for
relaying, mining and transaction creation (default: 0.00001)
.HP
\fB\-whitelistforcerelay\fR
.IP
Add 'forcerelay' permission to whitelisted inbound peers with default
permissions. This will relay transactions even if the
transactions were already in the mempool. (default: 0)
.HP
\fB\-whitelistrelay\fR
.IP
Add 'relay' permission to whitelisted inbound peers with default
permissions. This will accept relayed transactions even when not
relaying transactions (default: 1)
.PP
Block creation options:
.HP
\fB\-blockmaxweight=\fR<n>
.IP
Set maximum BIP141 block weight (default: 3996000)
.HP
\fB\-blockmintxfee=\fR<amt>
.IP
Set lowest fee rate (in BTC/kvB) for transactions to be included in
block creation. (default: 0.00001)
.PP
RPC server options:
.HP
\fB\-rest\fR
.IP
Accept public REST requests (default: 0)
.HP
\fB\-rpcallowip=\fR<ip>
.IP
Allow JSON\-RPC connections from specified source. Valid for <ip> are a
single IP (e.g. 1.2.3.4), a network/netmask (e.g.
1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This
option can be specified multiple times
.HP
\fB\-rpcauth=\fR<userpw>
.IP
Username and HMAC\-SHA\-256 hashed password for JSON\-RPC connections. The
field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A
canonical python script is included in share/rpcauth. The client
then connects normally using the
rpcuser=<USERNAME>/rpcpassword=<PASSWORD> pair of arguments. This
option can be specified multiple times
.HP
\fB\-rpcbind=\fR<addr>[:port]
.IP
Bind to given address to listen for JSON\-RPC connections. Do not expose
the RPC server to untrusted networks such as the public internet!
This option is ignored unless \fB\-rpcallowip\fR is also passed. Port is
optional and overrides \fB\-rpcport\fR. Use [host]:port notation for
IPv6. This option can be specified multiple times (default:
127.0.0.1 and ::1 i.e., localhost)
.HP
\fB\-rpccookiefile=\fR<loc>
.IP
Location of the auth cookie. Relative paths will be prefixed by a
net\-specific datadir location. (default: data dir)
.HP
\fB\-rpcpassword=\fR<pw>
.IP
Password for JSON\-RPC connections
.HP
\fB\-rpcport=\fR<port>
.IP
Listen for JSON\-RPC connections on <port> (default: 8332, testnet:
18332, signet: 38332, regtest: 18443)
.HP
\fB\-rpcserialversion\fR
.IP
Sets the serialization of raw transaction or block hex returned in
non\-verbose mode, non\-segwit(0) or segwit(1) (default: 1)
.HP
\fB\-rpcthreads=\fR<n>
.IP
Set the number of threads to service RPC calls (default: 4)
.HP
\fB\-rpcuser=\fR<user>
.IP
Username for JSON\-RPC connections
.HP
\fB\-rpcwhitelist=\fR<whitelist>
.IP
Set a whitelist to filter incoming RPC calls for a specific user. The
field <whitelist> comes in the format: <USERNAME>:<rpc 1>,<rpc
2>,...,<rpc n>. If multiple whitelists are set for a given user,
they are set\-intersected. See \fB\-rpcwhitelistdefault\fR documentation
for information on default whitelist behavior.
.HP
\fB\-rpcwhitelistdefault\fR
.IP
Sets default behavior for rpc whitelisting. Unless rpcwhitelistdefault
is set to 0, if any \fB\-rpcwhitelist\fR is set, the rpc server acts as
if all rpc users are subject to empty\-unless\-otherwise\-specified
whitelists. If rpcwhitelistdefault is set to 1 and no
\fB\-rpcwhitelist\fR is set, rpc server acts as if all rpc users are
subject to empty whitelists.
.HP
\fB\-server\fR
.IP
Accept command line and JSON\-RPC commands
.SH COPYRIGHT
Copyright (C) 2009-2022 The Bitcoin Core developers
This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release.
Please contribute if you find Bitcoin Core useful. Visit
<https://bitcoincore.org/> for further information about the software.
The source code is available from <https://github.com/bitcoin/bitcoin>.
This is experimental software.
Distributed under the MIT software license, see the accompanying file COPYING
or <https://opensource.org/licenses/MIT>

View File

@@ -1,6 +1,6 @@
When Bitcoin Core automatically opens outgoing P2P connections it chooses
When Bitcoin Core automatically opens outgoing P2P connections, it chooses
a peer (address and port) from its list of potential peers. This list is
populated with unchecked data, gossiped over the P2P network by other peers.
populated with unchecked data gossiped over the P2P network by other peers.
A malicious actor may gossip an address:port where no Bitcoin node is listening,
or one where a service is listening that is not related to the Bitcoin network.
@@ -17,7 +17,7 @@ authentication are unlikely to be considered a malicious action,
e.g. port 80 (http).
Below is a list of "bad" ports which Bitcoin Core avoids when choosing a peer to
connect to. If a node is listening on such a port, it will likely receive less
connect to. If a node is listening on such a port, it will likely receive fewer
incoming connections.
1: tcpmux

View File

@@ -16,9 +16,9 @@ configure Tor.
## How to see information about your Tor configuration via Bitcoin Core
There are several ways to see your local onion address in Bitcoin Core:
- in the debug log (grep for "tor:" or "AddLocal")
- in the output of RPC `getnetworkinfo` in the "localaddresses" section
- in the output of the CLI `-netinfo` peer connections dashboard
- in the "Local addresses" output of CLI `-netinfo`
- in the "localaddresses" output of RPC `getnetworkinfo`
- in the debug log (grep for "AddLocal"; the Tor address ends in `.onion`)
You may set the `-debug=tor` config logging option to have additional
information in the debug log about your Tor configuration.
@@ -27,6 +27,9 @@ CLI `-addrinfo` returns the number of addresses known to your node per
network. This can be useful to see how many onion peers your node knows,
e.g. for `-onlynet=onion`.
To fetch a number of onion addresses that your node knows, for example seven
addresses, use the `getnodeaddresses 7 onion` RPC.
## 1. Run Bitcoin Core behind a Tor proxy
The first step is running Bitcoin Core behind a Tor proxy. This will already anonymize all
@@ -55,10 +58,10 @@ 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.
onlynet=onion, onlynet=i2p.
-onlynet=onion Make automatic outbound connections only to .onion addresses.
Inbound and manual connections are not affected by this option.
It can be specified multiple times to allow multiple networks,
e.g. onlynet=onion, onlynet=i2p, onlynet=cjdns.
In a typical situation, this suffices to run behind a Tor proxy:

View File

@@ -18,7 +18,6 @@ QT_TS = \
qt/locale/bitcoin_es_CL.ts \
qt/locale/bitcoin_es_CO.ts \
qt/locale/bitcoin_es_DO.ts \
qt/locale/bitcoin_es_MX.ts \
qt/locale/bitcoin_es_VE.ts \
qt/locale/bitcoin_et.ts \
qt/locale/bitcoin_eu.ts \
@@ -32,6 +31,7 @@ QT_TS = \
qt/locale/bitcoin_gl_ES.ts \
qt/locale/bitcoin_gu.ts \
qt/locale/bitcoin_he.ts \
qt/locale/bitcoin_hi.ts \
qt/locale/bitcoin_hr.ts \
qt/locale/bitcoin_hu.ts \
qt/locale/bitcoin_id.ts \
@@ -78,6 +78,7 @@ QT_TS = \
qt/locale/bitcoin_ta.ts \
qt/locale/bitcoin_te.ts \
qt/locale/bitcoin_th.ts \
qt/locale/bitcoin_tk.ts \
qt/locale/bitcoin_tr.ts \
qt/locale/bitcoin_ug.ts \
qt/locale/bitcoin_uk.ts \

View File

@@ -7,6 +7,7 @@ TESTS += qt/test/test_bitcoin-qt
TEST_QT_MOC_CPP = \
qt/test/moc_apptests.cpp \
qt/test/moc_optiontests.cpp \
qt/test/moc_rpcnestedtests.cpp \
qt/test/moc_uritests.cpp
@@ -19,6 +20,7 @@ endif # ENABLE_WALLET
TEST_QT_H = \
qt/test/addressbooktests.h \
qt/test/apptests.h \
qt/test/optiontests.h \
qt/test/rpcnestedtests.h \
qt/test/uritests.h \
qt/test/util.h \
@@ -30,6 +32,7 @@ qt_test_test_bitcoin_qt_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_
qt_test_test_bitcoin_qt_SOURCES = \
init/bitcoin-qt.cpp \
qt/test/apptests.cpp \
qt/test/optiontests.cpp \
qt/test/rpcnestedtests.cpp \
qt/test/test_main.cpp \
qt/test/uritests.cpp \

View File

@@ -397,7 +397,7 @@ public:
consensus.BIP65Height = 1; // Always active unless overridden
consensus.BIP66Height = 1; // Always active unless overridden
consensus.CSVHeight = 1; // Always active unless overridden
consensus.SegwitHeight = 1; // Always active unless overridden
consensus.SegwitHeight = 0; // Always active unless overridden
consensus.MinBIP9WarningHeight = 0;
consensus.powLimit = uint256S("7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // two weeks

View File

@@ -153,7 +153,9 @@ void ScriptPubKeyToUniv(const CScript& scriptPubKey, UniValue& out, bool include
CTxDestination address;
out.pushKV("asm", ScriptToAsmStr(scriptPubKey));
out.pushKV("desc", InferDescriptor(scriptPubKey, DUMMY_SIGNING_PROVIDER)->ToString());
if (include_address) {
out.pushKV("desc", InferDescriptor(scriptPubKey, DUMMY_SIGNING_PROVIDER)->ToString());
}
if (include_hex) out.pushKV("hex", HexStr(scriptPubKey));
std::vector<std::vector<unsigned char>> solns;

View File

@@ -444,7 +444,7 @@ void SetupServerArgs(ArgsManager& argsman)
argsman.AddArg("-asmap=<file>", strprintf("Specify asn mapping used for bucketing of the peers (default: %s). Relative paths will be prefixed by the net-specific datadir location.", DEFAULT_ASMAP_FILENAME), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
argsman.AddArg("-bantime=<n>", strprintf("Default duration (in seconds) of manually configured bans (default: %u)", DEFAULT_MISBEHAVING_BANTIME), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
argsman.AddArg("-bind=<addr>[:<port>][=onion]", strprintf("Bind to given address and always listen on it (default: 0.0.0.0). Use [host]:port notation for IPv6. Append =onion to tag any incoming connections to that address and port as incoming Tor connections (default: 127.0.0.1:%u=onion, testnet: 127.0.0.1:%u=onion, signet: 127.0.0.1:%u=onion, regtest: 127.0.0.1:%u=onion)", defaultBaseParams->OnionServiceTargetPort(), testnetBaseParams->OnionServiceTargetPort(), signetBaseParams->OnionServiceTargetPort(), regtestBaseParams->OnionServiceTargetPort()), ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::CONNECTION);
argsman.AddArg("-cjdnsreachable", "If set then this host is configured for CJDNS (connecting to fc00::/8 addresses would lead us to the CJDNS network) (default: 0)", ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
argsman.AddArg("-cjdnsreachable", "If set, then this host is configured for CJDNS (connecting to fc00::/8 addresses would lead us to the CJDNS network, see doc/cjdns.md) (default: 0)", ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
argsman.AddArg("-connect=<ip>", "Connect only to the specified node; -noconnect disables automatic connections (the rules for this peer are the same as for -addnode). This option can be specified multiple times to connect to multiple nodes.", ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::CONNECTION);
argsman.AddArg("-discover", "Discover own IP addresses (default: 1 when listening and no -externalip or -proxy)", ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
argsman.AddArg("-dns", strprintf("Allow DNS lookups for -addnode, -seednode and -connect (default: %u)", DEFAULT_NAME_LOOKUP), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
@@ -457,12 +457,12 @@ void SetupServerArgs(ArgsManager& argsman)
argsman.AddArg("-maxconnections=<n>", strprintf("Maintain at most <n> connections to peers (default: %u). This limit does not apply to connections manually added via -addnode or the addnode RPC, which have a separate limit of %u.", DEFAULT_MAX_PEER_CONNECTIONS, MAX_ADDNODE_CONNECTIONS), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
argsman.AddArg("-maxreceivebuffer=<n>", strprintf("Maximum per-connection receive buffer, <n>*1000 bytes (default: %u)", DEFAULT_MAXRECEIVEBUFFER), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
argsman.AddArg("-maxsendbuffer=<n>", strprintf("Maximum per-connection send buffer, <n>*1000 bytes (default: %u)", DEFAULT_MAXSENDBUFFER), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
argsman.AddArg("-maxtimeadjustment", strprintf("Maximum allowed median peer time offset adjustment. Local perspective of time may be influenced by peers forward or backward by this amount. (default: %u seconds)", DEFAULT_MAX_TIME_ADJUSTMENT), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
argsman.AddArg("-maxtimeadjustment", strprintf("Maximum allowed median peer time offset adjustment. Local perspective of time may be influenced by outbound peers forward or backward by this amount (default: %u seconds).", DEFAULT_MAX_TIME_ADJUSTMENT), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
argsman.AddArg("-maxuploadtarget=<n>", strprintf("Tries to keep outbound traffic under the given target per 24h. Limit does not apply to peers with 'download' permission or blocks created within past week. 0 = no limit (default: %s). Optional suffix units [k|K|m|M|g|G|t|T] (default: M). Lowercase is 1000 base while uppercase is 1024 base", DEFAULT_MAX_UPLOAD_TARGET), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
argsman.AddArg("-onion=<ip:port>", "Use separate SOCKS5 proxy to reach peers via Tor onion services, set -noonion to disable (default: -proxy)", ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
argsman.AddArg("-i2psam=<ip:port>", "I2P SAM proxy to reach I2P peers and accept I2P connections (default: none)", ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
argsman.AddArg("-i2pacceptincoming", "If set and -i2psam is also set then incoming I2P connections are accepted via the SAM proxy. If this is not set but -i2psam is set then only outgoing connections will be made to the I2P network. Ignored if -i2psam is not set. Listening for incoming I2P connections is done through the SAM proxy, not by binding to a local address and port (default: 1)", ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
argsman.AddArg("-onlynet=<net>", "Make automatic outgoing connections only through network <net> (" + Join(GetNetworkNames(), ", ") + "). Incoming connections are not affected by this option. This option can be specified multiple times to allow multiple networks.", ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
argsman.AddArg("-onlynet=<net>", "Make automatic outbound connections only to network <net> (" + Join(GetNetworkNames(), ", ") + "). Inbound and manual connections are not affected by this option. It can be specified multiple times to allow multiple networks.", ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
argsman.AddArg("-peerbloomfilters", strprintf("Support filtering of blocks and transaction with bloom filters (default: %u)", DEFAULT_PEERBLOOMFILTERS), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
argsman.AddArg("-peerblockfilters", strprintf("Serve compact block filters to peers per BIP 157 (default: %u)", DEFAULT_PEERBLOCKFILTERS), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
argsman.AddArg("-permitbaremultisig", strprintf("Relay non-P2SH multisig (default: %u)", DEFAULT_PERMIT_BAREMULTISIG), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);

View File

@@ -19,7 +19,6 @@
<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_MX">locale/bitcoin_es_MX.qm</file>
<file alias="es_VE">locale/bitcoin_es_VE.qm</file>
<file alias="et">locale/bitcoin_et.qm</file>
<file alias="eu">locale/bitcoin_eu.qm</file>
@@ -33,6 +32,7 @@
<file alias="gl_ES">locale/bitcoin_gl_ES.qm</file>
<file alias="gu">locale/bitcoin_gu.qm</file>
<file alias="he">locale/bitcoin_he.qm</file>
<file alias="hi">locale/bitcoin_hi.qm</file>
<file alias="hr">locale/bitcoin_hr.qm</file>
<file alias="hu">locale/bitcoin_hu.qm</file>
<file alias="id">locale/bitcoin_id.qm</file>
@@ -79,6 +79,7 @@
<file alias="ta">locale/bitcoin_ta.qm</file>
<file alias="te">locale/bitcoin_te.qm</file>
<file alias="th">locale/bitcoin_th.qm</file>
<file alias="tk">locale/bitcoin_tk.qm</file>
<file alias="tr">locale/bitcoin_tr.qm</file>
<file alias="ug">locale/bitcoin_ug.qm</file>
<file alias="uk">locale/bitcoin_uk.qm</file>

View File

@@ -14,6 +14,10 @@ QT_TRANSLATE_NOOP("bitcoin-core", ""
"%s corrupt. Try using the wallet tool bitcoin-wallet to salvage or restoring "
"a backup."),
QT_TRANSLATE_NOOP("bitcoin-core", ""
"%s request to listen on port %u. This port is considered \"bad\" and thus it "
"is unlikely that any Bitcoin Core peers connect to it. See doc/p2p-bad-ports."
"md for details and a full list."),
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", ""
@@ -53,6 +57,9 @@ QT_TRANSLATE_NOOP("bitcoin-core", ""
QT_TRANSLATE_NOOP("bitcoin-core", ""
"Error: Listening for incoming connections failed (listen returned error %s)"),
QT_TRANSLATE_NOOP("bitcoin-core", ""
"Failed to rename invalid peers.dat file. Please move or delete it and try "
"again."),
QT_TRANSLATE_NOOP("bitcoin-core", ""
"Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -"
"fallbackfee."),
QT_TRANSLATE_NOOP("bitcoin-core", ""
@@ -77,6 +84,10 @@ QT_TRANSLATE_NOOP("bitcoin-core", ""
"No wallet file format provided. To use createfromdump, -format=<format> must "
"be provided."),
QT_TRANSLATE_NOOP("bitcoin-core", ""
"Outbound connections restricted to Tor (-onlynet=onion) but the proxy for "
"reaching the Tor network is not provided (no -proxy= and no -onion= given) "
"or it is explicitly forbidden (-onion=0)"),
QT_TRANSLATE_NOOP("bitcoin-core", ""
"Please check that your computer's date and time are correct! If your clock "
"is wrong, %s will not work properly."),
QT_TRANSLATE_NOOP("bitcoin-core", ""

View File

@@ -3,7 +3,7 @@
<name>AddressBookPage</name>
<message>
<source>Right-click to edit address or label</source>
<translation type="unfinished">أنقر بزر الماوس الأيمن لتحرير العنوان أو التصنيف</translation>
<translation type="unfinished">عنوانعنوانأنقر بزر الماوس الأيمن لتحرير العنوان أو التصنيف</translation>
</message>
<message>
<source>Create a new address</source>
@@ -353,56 +353,56 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<message numerus="yes">
<source>%n second(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform>%n second(s)</numerusform>
<numerusform>%n second(s)</numerusform>
<numerusform>%n second(s)</numerusform>
<numerusform>%n second(s)</numerusform>
<numerusform>%n second(s)</numerusform>
<numerusform>%n second(s)</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n minute(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform>%n minute(s)</numerusform>
<numerusform>%n minute(s)</numerusform>
<numerusform>%n minute(s)</numerusform>
<numerusform>%n minute(s)</numerusform>
<numerusform>%n minute(s)</numerusform>
<numerusform>%n minute(s)</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n hour(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform>%n hour(s)</numerusform>
<numerusform>%n hour(s)</numerusform>
<numerusform>%n hour(s)</numerusform>
<numerusform>%n hour(s)</numerusform>
<numerusform>%n hour(s)</numerusform>
<numerusform>%n hour(s)</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n day(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform>%n day(s)</numerusform>
<numerusform>%n day(s)</numerusform>
<numerusform>%n day(s)</numerusform>
<numerusform>%n day(s)</numerusform>
<numerusform>%n day(s)</numerusform>
<numerusform>%n day(s)</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n week(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform>%n week(s)</numerusform>
<numerusform>%n week(s)</numerusform>
<numerusform>%n week(s)</numerusform>
<numerusform>%n week(s)</numerusform>
<numerusform>%n week(s)</numerusform>
<numerusform>%n week(s)</numerusform>
</translation>
</message>
<message>
@@ -412,12 +412,12 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<message numerus="yes">
<source>%n year(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform>%n year(s)</numerusform>
<numerusform>%n year(s)</numerusform>
<numerusform>%n year(s)</numerusform>
<numerusform>%n year(s)</numerusform>
<numerusform>%n year(s)</numerusform>
<numerusform>%n year(s)</numerusform>
</translation>
</message>
<message>
@@ -1024,12 +1024,12 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<message numerus="yes">
<source>Processed %n block(s) of transaction history.</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform>Processed %n block(s) of transaction history.</numerusform>
<numerusform>Processed %n block(s) of transaction history.</numerusform>
<numerusform>Processed %n block(s) of transaction history.</numerusform>
<numerusform>Processed %n block(s) of transaction history.</numerusform>
<numerusform>Processed %n block(s) of transaction history.</numerusform>
<numerusform>Processed %n block(s) of transaction history.</numerusform>
</translation>
</message>
<message>
@@ -1148,12 +1148,12 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>%n active connection(s) to Bitcoin network.</source>
<extracomment>A substring of the tooltip.</extracomment>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform>%n active connection(s) to Bitcoin network.</numerusform>
<numerusform>%n active connection(s) to Bitcoin network.</numerusform>
<numerusform>%n active connection(s) to Bitcoin network.</numerusform>
<numerusform>%n active connection(s) to Bitcoin network.</numerusform>
<numerusform>%n active connection(s) to Bitcoin network.</numerusform>
<numerusform>%n active connection(s) to Bitcoin network.</numerusform>
</translation>
</message>
<message>
@@ -1657,12 +1657,12 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>(sufficient to restore backups %n day(s) old)</source>
<extracomment>Explanatory text on the capability of the current prune target.</extracomment>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
<numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
<numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
<numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
<numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
<numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
</translation>
</message>
<message>
@@ -3295,12 +3295,12 @@ If you are receiving this error you should request the merchant provide a BIP21
<message numerus="yes">
<source>Estimated to begin confirmation within %n block(s).</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
<numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
<numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
<numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
<numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
<numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
</translation>
</message>
<message>
@@ -3633,12 +3633,12 @@ If you are receiving this error you should request the merchant provide a BIP21
<message numerus="yes">
<source>matures in %n more block(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform />
<numerusform>matures in %n more block(s)</numerusform>
<numerusform>matures in %n more block(s)</numerusform>
<numerusform>matures in %n more block(s)</numerusform>
<numerusform>matures in %n more block(s)</numerusform>
<numerusform>matures in %n more block(s)</numerusform>
<numerusform>matures in %n more block(s)</numerusform>
</translation>
</message>
<message>

File diff suppressed because it is too large Load Diff

View File

@@ -264,6 +264,16 @@ Das Signieren ist nur mit Adressen vom Typ 'Legacy' möglich.</translation>
</context>
<context>
<name>QObject</name>
<message>
<source>Do you want to reset settings to default values, or to abort without making changes?</source>
<extracomment>Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting.</extracomment>
<translation type="unfinished">Möchten Sie die Einstellungen auf die Standardwerte zurücksetzen oder den Vorgang abbrechen, ohne Änderungen vorzunehmen?</translation>
</message>
<message>
<source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
<extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
<translation type="unfinished">Ein schwerwiegender Fehler ist aufgetreten. Prüfen Sie, ob die Einstellungsdatei beschreibbar ist, oder versuchen Sie, das Programm mit "-nosettings" auszuführen.</translation>
</message>
<message>
<source>Error: Specified data directory "%1" does not exist.</source>
<translation type="unfinished">Fehler: Angegebenes Datenverzeichnis "%1" existiert nicht.</translation>
@@ -585,6 +595,10 @@ Bitte nutzen Sie entweder "bdb" oder "sqlite".</translation>
<source>Cannot resolve -%s address: '%s'</source>
<translation type="unfinished">Kann Adresse in -%s nicht auflösen: '%s'</translation>
</message>
<message>
<source>Cannot set -forcednsseed to true when setting -dnsseed to false.</source>
<translation type="unfinished">Kann -forcednsseed nicht auf true setzen, wenn -dnsseed auf false gesetzt ist.</translation>
</message>
<message>
<source>Cannot set -peerblockfilters without -blockfilterindex.</source>
<translation type="unfinished">Kann -peerblockfilters nicht ohne -blockfilterindex setzen.</translation>
@@ -593,6 +607,14 @@ Bitte nutzen Sie entweder "bdb" oder "sqlite".</translation>
<source>Cannot write to data directory '%s'; check permissions.</source>
<translation type="unfinished">Es konnte nicht in das Datenverzeichnis '%s' geschrieben werden; Überprüfen Sie die Berechtigungen.</translation>
</message>
<message>
<source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
<translation type="unfinished">Das von einer früheren Version gestartete -txindex-Upgrade kann nicht abgeschlossen werden. Starten Sie mit der vorherigen Version neu oder führen Sie ein vollständiges -reindex aus.</translation>
</message>
<message>
<source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
<translation type="unfinished">Es ist nicht möglich, bestimmte Verbindungen anzubieten und gleichzeitig addrman ausgehende Verbindungen finden zu lassen.</translation>
</message>
<message>
<source>Config setting for %s only applied on %s network when in [%s] section.</source>
<translation type="unfinished">Konfigurationseinstellungen für %s sind nur auf %s network gültig, wenn in Sektion [%s]</translation>
@@ -811,6 +833,10 @@ Berechnet: %s, erwartet: %s</translation>
<source>Missing amount</source>
<translation type="unfinished">Fehlender Betrag</translation>
</message>
<message>
<source>Missing solving data for estimating transaction size</source>
<translation type="unfinished">Fehlende Auflösungsdaten zur Schätzung der Transaktionsgröße</translation>
</message>
<message>
<source>Need to specify a port with -whitebind: '%s'</source>
<translation type="unfinished">Angabe eines Ports benötigt für -whitebind: '%s'</translation>
@@ -936,6 +962,10 @@ Verifikations-Error: %s</translation>
<source>Transaction amounts must not be negative</source>
<translation type="unfinished">Transaktionsbeträge dürfen nicht negativ sein.</translation>
</message>
<message>
<source>Transaction change output index out of range</source>
<translation type="unfinished">Ausgangsindex der Transaktionsänderung außerhalb des Bereichs</translation>
</message>
<message>
<source>Transaction has too long of a mempool chain</source>
<translation type="unfinished">Die Speicherpoolkette der Transaktion ist zu lang.</translation>
@@ -944,6 +974,10 @@ Verifikations-Error: %s</translation>
<source>Transaction must have at least one recipient</source>
<translation type="unfinished">Die Transaktion muss mindestens einen Empfänger enthalten.</translation>
</message>
<message>
<source>Transaction needs a change address, but we can't generate it.</source>
<translation type="unfinished">Für die Transaktion wird eine neue Adresse benötigt, aber wir können sie nicht generieren.</translation>
</message>
<message>
<source>Transaction too large</source>
<translation type="unfinished">Transaktion zu groß</translation>
@@ -1537,6 +1571,10 @@ Verifikations-Error: %s</translation>
<source>Copy &amp;amount</source>
<translation type="unfinished">Betrag kopieren</translation>
</message>
<message>
<source>Copy transaction &amp;ID and output index</source>
<translation type="unfinished">Transaktion &amp;ID und Ausgabeindex kopieren</translation>
</message>
<message>
<source>L&amp;ock unspent</source>
<translation type="unfinished">Nicht ausgegebenen Betrag sperren</translation>
@@ -2088,10 +2126,25 @@ Verifikations-Error: %s</translation>
<source>Reverting this setting requires re-downloading the entire blockchain.</source>
<translation type="unfinished">Wenn diese Einstellung rückgängig gemacht wird, muss die komplette Blockchain erneut heruntergeladen werden.</translation>
</message>
<message>
<source>Maximum database cache size. A larger cache can contribute to faster sync, after which the benefit is less pronounced for most use cases. Lowering the cache size will reduce memory usage. Unused mempool memory is shared for this cache.</source>
<extracomment>Tooltip text for Options window setting that sets the size of the database cache. Explains the corresponding effects of increasing/decreasing this value.</extracomment>
<translation type="unfinished">Maximale Größe des Datenbank-Caches. Ein größerer Cache kann zu einer schnelleren Synchronisierung beitragen, danach ist der Vorteil für die meisten Anwendungsfälle weniger ausgeprägt. Eine Verringerung der Cache-Größe reduziert den Speicherverbrauch. Ungenutzter Mempool-Speicher wird für diesen Cache gemeinsam genutzt.</translation>
</message>
<message>
<source>Set the number of script verification threads. Negative values correspond to the number of cores you want to leave free to the system.</source>
<extracomment>Tooltip text for Options window setting that sets the number of script verification threads. Explains that negative values mean to leave these many cores free to the system.</extracomment>
<translation type="unfinished">Legen Sie die Anzahl der Skriptüberprüfungs-Threads fest. Negative Werte entsprechen der Anzahl der Kerne, die Sie für das System frei lassen möchten.</translation>
</message>
<message>
<source>(0 = auto, &lt;0 = leave that many cores free)</source>
<translation type="unfinished">(0 = automatisch, &lt;0 = so viele Kerne frei lassen)</translation>
</message>
<message>
<source>This allows you or a third party tool to communicate with the node through command-line and JSON-RPC commands.</source>
<extracomment>Tooltip text for Options window setting that enables the RPC server.</extracomment>
<translation type="unfinished">Dies ermöglicht Ihnen oder einem Drittanbieter-Tool die Kommunikation mit dem Knoten über Befehlszeilen- und JSON-RPC-Befehle.</translation>
</message>
<message>
<source>Enable R&amp;PC server</source>
<extracomment>An Options window setting to enable the RPC server.</extracomment>
@@ -2418,6 +2471,10 @@ Verifikations-Error: %s</translation>
<source>Failed to sign transaction: %1</source>
<translation type="unfinished">Signieren der Transaktion fehlgeschlagen: %1</translation>
</message>
<message>
<source>Cannot sign inputs while wallet is locked.</source>
<translation type="unfinished">Eingaben können nicht unterzeichnet werden, wenn die Brieftasche gesperrt ist.</translation>
</message>
<message>
<source>Could not sign any more inputs.</source>
<translation type="unfinished">Konnte keinerlei weitere Eingaben signieren.</translation>
@@ -3817,7 +3874,11 @@ Hinweis: Da die Gebühr auf Basis der Bytes berechnet wird, führt eine Gebühre
<source>(press q to shutdown and continue later)</source>
<translation type="unfinished">(drücke q, um herunterzufahren und später fortzuführen)</translation>
</message>
</context>
<message>
<source>press q to shutdown</source>
<translation type="unfinished">q zum Herunterfahren drücken</translation>
</message>
</context>
<context>
<name>TransactionDesc</name>
<message>

View File

@@ -3470,7 +3470,7 @@ For more information on using this console, type %6.
<name>SendCoinsDialog</name>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="+14"/>
<location filename="../sendcoinsdialog.cpp" line="+752"/>
<location filename="../sendcoinsdialog.cpp" line="+771"/>
<source>Send Coins</source>
<translation>Send Coins</translation>
</message>
@@ -3657,7 +3657,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of &quot;100
<translation>S&amp;end</translation>
</message>
<message>
<location filename="../sendcoinsdialog.cpp" line="-653"/>
<location filename="../sendcoinsdialog.cpp" line="-672"/>
<source>Copy quantity</source>
<translation type="unfinished"></translation>
</message>
@@ -3744,24 +3744,24 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of &quot;100
<translation type="unfinished"></translation>
</message>
<message>
<location line="+44"/>
<location line="+60"/>
<source>Sign failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+6"/>
<location line="+5"/>
<source>External signer not found</source>
<extracomment>&quot;External signer&quot; means using devices such as hardware wallets.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+6"/>
<location line="+5"/>
<source>External signer failure</source>
<extracomment>&quot;External signer&quot; means using devices such as hardware wallets.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+58"/>
<location line="-34"/>
<source>Save Transaction Data</source>
<translation type="unfinished"></translation>
</message>
@@ -3777,12 +3777,12 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of &quot;100
<translation type="unfinished"></translation>
</message>
<message>
<location line="+176"/>
<location line="+273"/>
<source>External balance:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-303"/>
<location line="-322"/>
<source>or</source>
<translation type="unfinished"></translation>
</message>
@@ -3831,12 +3831,12 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of &quot;100
<translation type="unfinished"></translation>
</message>
<message>
<location line="+25"/>
<location line="+99"/>
<source>Confirm send coins</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+284"/>
<location line="+229"/>
<source>Watch-only balance:</source>
<translation type="unfinished"></translation>
</message>
@@ -4027,7 +4027,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of &quot;100
<context>
<name>SendConfirmationDialog</name>
<message>
<location filename="../sendcoinsdialog.h" line="+131"/>
<location filename="../sendcoinsdialog.h" line="+144"/>
<source>Send</source>
<translation type="unfinished"></translation>
</message>
@@ -5060,7 +5060,7 @@ Go to File &gt; Open Wallet to load a wallet.
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<location line="+7"/>
<source>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</source>
<translation type="unfinished"></translation>
</message>
@@ -5120,7 +5120,7 @@ Go to File &gt; Open Wallet to load a wallet.
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<location line="+5"/>
<source>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee.</source>
<translation type="unfinished"></translation>
</message>
@@ -5160,7 +5160,7 @@ Go to File &gt; Open Wallet to load a wallet.
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<location line="+7"/>
<source>Please check that your computer&apos;s date and time are correct! If your clock is wrong, %s will not work properly.</source>
<translation type="unfinished"></translation>
</message>
@@ -5305,7 +5305,12 @@ Go to File &gt; Open Wallet to load a wallet.
<translation type="unfinished"></translation>
</message>
<message>
<location line="-69"/>
<location line="-88"/>
<source>%s request to listen on port %u. This port is considered &quot;bad&quot; and thus it is unlikely that any Bitcoin Core peers connect to it. See doc/p2p-bad-ports.md for details and a full list.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+12"/>
<source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
<translation type="unfinished"></translation>
</message>
@@ -5315,7 +5320,17 @@ Go to File &gt; Open Wallet to load a wallet.
<translation type="unfinished"></translation>
</message>
<message>
<location line="+118"/>
<location line="+21"/>
<source>Failed to rename invalid peers.dat file. Please move or delete it and try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+27"/>
<source>Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided (no -proxy= and no -onion= given) or it is explicitly forbidden (-onion=0)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+77"/>
<source>Config setting for %s only applied on %s network when in [%s] section.</source>
<translation type="unfinished"></translation>
</message>

File diff suppressed because it is too large Load Diff

View File

@@ -328,8 +328,8 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
<message numerus="yes">
<source>%n second(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>%n segundo(s)</numerusform>
<numerusform>%n segundo(s)</numerusform>
</translation>
</message>
<message numerus="yes">
@@ -806,8 +806,8 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
<message numerus="yes">
<source>Processed %n block(s) of transaction history.</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>Procesado(s) %n bloque(s) del historial de transacciones.</numerusform>
<numerusform>Procesado(s) %n bloque(s) del historial de transacciones.</numerusform>
</translation>
</message>
<message>

File diff suppressed because it is too large Load Diff

View File

@@ -391,6 +391,10 @@
<source>Verify messages to ensure they were signed with specified Bitcoin addresses</source>
<translation type="unfinished">Egiaztatu mesua Bitcoin helbide espezifikoarekin erregistratu direla ziurtatzeko</translation>
</message>
<message>
<source>Close All Wallets</source>
<translation type="unfinished">Diru-zorro guztiak itxi...</translation>
</message>
<message>
<source>&amp;File</source>
<translation type="unfinished">&amp;Artxiboa</translation>

View File

@@ -456,7 +456,7 @@ Il nest possible de signer quavec les adresses de type « legacy ».</tr
</message>
<message>
<source>Cannot upgrade a non HD split wallet from version %i to version %i without upgrading to support pre-split keypool. Please use version %i or no version specified.</source>
<translation type="unfinished">Impossible de mettre à niveau un porte-monnaie divisé non-HD de la version %i vers la version %i sans mettre à niveau pour prendre en charge la réserve de clés antérieure à la division. Veuillez utiliser la version %i ou ne pas indiquer de version.</translation>
<translation type="unfinished">Impossible de mettre à niveau un porte-monnaie divisé non-HD de la version %i vers la version %i sans mise à niveau pour prendre en charge la réserve de clés antérieure à la division. Veuillez utiliser la version %i ou ne pas indiquer de version.</translation>
</message>
<message>
<source>Distributed under the MIT software license, see the accompanying file %s or %s</source>
@@ -468,12 +468,16 @@ Il nest possible de signer quavec les adresses de type « legacy ».</tr
</message>
<message>
<source>Error reading %s! Transaction data may be missing or incorrect. Rescanning wallet.</source>
<translation type="unfinished">Erreur de lecture de %s : soit les données de la transaction manquent soit elles sont incorrectes. Réanalysez le porte-monnaie.</translation>
<translation type="unfinished">Erreur de lecture de %s : soit les données de la transaction manquent soit elles sont incorrectes. Réanalyse du porte-monnaie.</translation>
</message>
<message>
<source>Error: Dumpfile format record is incorrect. Got "%s", expected "format".</source>
<translation type="unfinished">Erreur : Lenregistrement du format du fichier de vidage est incorrect. Est « %s », mais « format » est attendu. </translation>
</message>
<message>
<source>Error: Dumpfile identifier record is incorrect. Got "%s", expected "%s".</source>
<translation type="unfinished">Erreur : Lenregistrement de lidentificateur du fichier de vidage est incorrect. Est « %s », mais « %s » est attendu. </translation>
</message>
<message>
<source>Error: Dumpfile version is not supported. This version of bitcoin-wallet only supports version 1 dumpfiles. Got dumpfile with version %s</source>
<translation type="unfinished">Erreur : La version du fichier de vidage nest pas prise en charge. Cette version de bitcoin-wallet ne prend en charge que les fichiers de vidage version 1. Le fichier de vidage obtenu est de la version %s.</translation>
@@ -532,7 +536,7 @@ Il nest possible de signer quavec les adresses de type « legacy ».</tr
</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 type="unfinished">Élagage : la dernière synchronisation de porte-monnaie va par-delà les données élaguées. Vous devez -reindex (réindexer, télécharger de nouveau toute la chaîne de blocs en cas de nœud élagué)</translation>
<translation type="unfinished">Élagage : la dernière synchronisation de porte-monnaie va par-delà les données élaguées. Vous devez -reindex (réindexer, télécharger de nouveau toute la chaîne de blocs en cas de nœud élagué)</translation>
</message>
<message>
<source>SQLiteDatabase: Unknown sqlite wallet schema version %d. Only version %d is supported</source>
@@ -544,19 +548,19 @@ Il nest possible de signer quavec les adresses de type « legacy ».</tr
</message>
<message>
<source>The block index db contains a legacy 'txindex'. To clear the occupied disk space, run a full -reindex, otherwise ignore this error. This error message will not be displayed again.</source>
<translation type="unfinished">La base de données dindexation des blocs comprend un « txindex » hérité. Pour libérer lespace disque occupé, exécuter un -reindex complet ou ignorez cette erreur. Ce message derreur ne sera pas affiché de nouveau.</translation>
<translation type="unfinished">La base de données dindexation des blocs comprend un « txindex » hérité. Pour libérer lespace disque occupé, exécutez un -reindex complet ou ignorez cette erreur. Ce message derreur ne sera pas affiché de nouveau.</translation>
</message>
<message>
<source>The transaction amount is too small to send after the fee has been deducted</source>
<translation type="unfinished">Le montant transactionnel est trop bas pour être envoyé une fois que les frais ont é déduits</translation>
<translation type="unfinished">Le montant de la transaction est trop bas pour être envoyé une fois que les frais ont é déduits</translation>
</message>
<message>
<source>This error could occur if this wallet was not shutdown cleanly and was last loaded using a build with a newer version of Berkeley DB. If so, please use the software that last loaded this wallet</source>
<translation type="unfinished">Cette erreur pourrait survenir si ce porte-monnaie navait pas é fermé proprement et sil avait é chargé en dernier avec une nouvelle version de Berkeley DB. Si cest le cas, veuillez utiliser le logiciel qui a chargé ce porte-monnaie en dernier.</translation>
<translation type="unfinished">Cette erreur pourrait survenir si ce porte-monnaie na pas é fermé proprement et sil a é chargé en dernier avec une nouvelle version de Berkeley DB. Si cest le cas, veuillez utiliser le logiciel qui a chargé ce porte-monnaie en dernier.</translation>
</message>
<message>
<source>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</source>
<translation type="unfinished">Ceci est une préversion de test - son utilisation est entièrement à vos risques - ne pas lutiliser pour miner ou pour des applications marchandes</translation>
<translation type="unfinished">Ceci est une préversion de test son utilisation est entièrement à vos risques ne lutilisez pour miner ou pour des applications marchandes</translation>
</message>
<message>
<source>This is the maximum transaction fee you pay (in addition to the normal fee) to prioritize partial spend avoidance over regular coin selection.</source>
@@ -578,13 +582,17 @@ Il nest possible de signer quavec les adresses de type « legacy ».</tr
<source>Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate.</source>
<translation type="unfinished">Impossible de relire les blocs. Vous devrez reconstruire la base de données avec -reindex-chainstate.</translation>
</message>
<message>
<source>Unknown wallet file format "%s" provided. Please provide one of "bdb" or "sqlite".</source>
<translation type="unfinished">Le format de fichier porte-monnaie « %s » indiqué est inconnu. Veuillez soit indiquer « bdb » soit « sqlite ».</translation>
</message>
<message>
<source>Warning: Dumpfile wallet format "%s" does not match command line specified format "%s".</source>
<translation type="unfinished">Avertissement : Le format du fichier de vidage de porte-monnaie « %s » ne correspond pas au format « %s » indiqué dans la ligne de commande.</translation>
</message>
<message>
<source>Warning: Private keys detected in wallet {%s} with disabled private keys</source>
<translation type="unfinished">Avertissement : Des clés privées ont é détectées dans le porte-monnaie {%s}, dont les clés privées sont désactivées</translation>
<translation type="unfinished">Avertissement : Des clés privées ont é détectées dans le porte-monnaie {%s} avec des clés privées désactivées</translation>
</message>
<message>
<source>Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade.</source>
@@ -644,7 +652,7 @@ Il nest possible de signer quavec les adresses de type « legacy ».</tr
</message>
<message>
<source>Copyright (C) %i-%i</source>
<translation type="unfinished">Tous droits réservés (C) %i-%i</translation>
<translation type="unfinished">Tous droits réservés (C) %i à %i</translation>
</message>
<message>
<source>Corrupted block database detected</source>
@@ -790,6 +798,10 @@ Il nest possible de signer quavec les adresses de type « legacy ».</tr
<source>Incorrect or no genesis block found. Wrong datadir for network?</source>
<translation type="unfinished">Bloc de genèse incorrect ou introuvable. Mauvais datadir pour le réseau?</translation>
</message>
<message>
<source>Initialization sanity check failed. %s is shutting down.</source>
<translation type="unfinished">Linitialisation du test de cohérence a échoué. %s est en cours de fermeture.</translation>
</message>
<message>
<source>Input not found or already spent</source>
<translation type="unfinished">Lentrée est introuvable ou a déjà é dépensée</translation>
@@ -800,7 +812,7 @@ Il nest possible de signer quavec les adresses de type « legacy ».</tr
</message>
<message>
<source>Invalid -i2psam address or hostname: '%s'</source>
<translation type="unfinished">Ladresse ou le nom dhôte -i2psam est invalide :« %s »</translation>
<translation type="unfinished">Ladresse ou le nom dhôte -i2psam est invalide : « %s »</translation>
</message>
<message>
<source>Invalid -onion address or hostname: '%s'</source>
@@ -1004,7 +1016,7 @@ Il nest possible de signer quavec les adresses de type « legacy ».</tr
</message>
<message>
<source>Unable to bind to %s on this computer (bind returned error %s)</source>
<translation type="unfinished">Impossible de se lier à %s sur cet ordinateur (bind a retourné lerreur %s)</translation>
<translation type="unfinished">Impossible de se lier à %s sur cet ordinateur (la liaison a retourné lerreur %s)</translation>
</message>
<message>
<source>Unable to bind to %s on this computer. %s is probably already running.</source>
@@ -1076,7 +1088,7 @@ Il nest possible de signer quavec les adresses de type « legacy ».</tr
</message>
<message>
<source>Wallet needed to be rewritten: restart %s to complete</source>
<translation type="unfinished">Le porte-monnaie devait être réécrit : redémarrer %s pour terminer lopération.</translation>
<translation type="unfinished">Le porte-monnaie devait être réécrit : redémarrez %s pour terminer lopération.</translation>
</message>
</context>
<context>
@@ -1172,7 +1184,7 @@ Il nest possible de signer quavec les adresses de type « legacy ».</tr
</message>
<message>
<source>&amp;Backup Wallet…</source>
<translation type="unfinished">&amp;auvegarder le porte-monnaie…</translation>
<translation type="unfinished">&amp;Sauvegarder le porte-monnaie…</translation>
</message>
<message>
<source>&amp;Change Passphrase…</source>
@@ -1184,7 +1196,7 @@ Il nest possible de signer quavec les adresses de type « legacy ».</tr
</message>
<message>
<source>Sign messages with your Bitcoin addresses to prove you own them</source>
<translation type="unfinished">Signer les messages avec vos adresses Bitcoin pour prouver que vous les détenez</translation>
<translation type="unfinished">Signer les messages avec vos adresses Bitcoin pour prouver que vous les détenez</translation>
</message>
<message>
<source>&amp;Verify message…</source>
@@ -1204,15 +1216,15 @@ Il nest possible de signer quavec les adresses de type « legacy ».</tr
</message>
<message>
<source>Close Wallet…</source>
<translation type="unfinished">Fermer le portefeuille...</translation>
<translation type="unfinished">Fermer le porte-monnaie...</translation>
</message>
<message>
<source>Create Wallet…</source>
<translation type="unfinished">Créer le portefeuille...</translation>
<translation type="unfinished">Créer un porte-monnaie...</translation>
</message>
<message>
<source>Close All Wallets…</source>
<translation type="unfinished">Fermer tous les portefeuilles...</translation>
<translation type="unfinished">Fermer tous les porte-monnaie...</translation>
</message>
<message>
<source>&amp;File</source>
@@ -1232,7 +1244,7 @@ Il nest possible de signer quavec les adresses de type « legacy ».</tr
</message>
<message>
<source>Syncing Headers (%1%)…</source>
<translation type="unfinished">Synchronisation des en-têtes (%1)…</translation>
<translation type="unfinished">Synchronisation des en-têtes (%1%)…</translation>
</message>
<message>
<source>Synchronizing with network…</source>
@@ -1283,7 +1295,7 @@ Il nest possible de signer quavec les adresses de type « legacy ».</tr
</message>
<message>
<source>Catching up…</source>
<translation type="unfinished">Rattrapage en cours…</translation>
<translation type="unfinished">Rattrapage…</translation>
</message>
<message>
<source>Last received block was generated %1 ago.</source>
@@ -1327,7 +1339,7 @@ Il nest possible de signer quavec les adresses de type « legacy ».</tr
</message>
<message>
<source>Open node debugging and diagnostic console</source>
<translation type="unfinished">Ouvrir une console de débogage de nœuds et de diagnostic</translation>
<translation type="unfinished">Ouvrir une console de débogage des nœuds et de diagnostic</translation>
</message>
<message>
<source>&amp;Sending addresses</source>
@@ -1343,7 +1355,7 @@ Il nest possible de signer quavec les adresses de type « legacy ».</tr
</message>
<message>
<source>Open Wallet</source>
<translation type="unfinished">Ouvrir le porte-monnaie</translation>
<translation type="unfinished">Ouvrir un porte-monnaie</translation>
</message>
<message>
<source>Open a wallet</source>
@@ -1359,7 +1371,7 @@ Il nest possible de signer quavec les adresses de type « legacy ».</tr
</message>
<message>
<source>Show the %1 help message to get a list with possible Bitcoin command-line options</source>
<translation type="unfinished">Afficher le message daide de %1 pour obtenir la liste des options possibles de ligne de commande Bitcoin</translation>
<translation type="unfinished">Afficher le message daide de %1 pour obtenir la liste des options possibles en ligne de commande Bitcoin</translation>
</message>
<message>
<source>&amp;Mask values</source>
@@ -2932,7 +2944,7 @@ If you are receiving this error you should request the merchant provide a BIP21
</message>
<message>
<source>Wants Tx Relay</source>
<translation type="unfinished">Veut Tx relai</translation>
<translation type="unfinished">Veut Relais Tx {Souhaite relayer la transaction}</translation>
</message>
<message>
<source>High bandwidth BIP152 compact block relay: %1</source>

178
src/qt/locale/bitcoin_hi.ts Normal file
View File

@@ -0,0 +1,178 @@
<TS version="2.1" language="hi">
<context>
<name>AddressBookPage</name>
<message>
<source>Right-click to edit address or label</source>
<translation type="unfinished"> ि ि -ि
 </translation>
</message>
<message>
<source>Create a new address</source>
<translation type="unfinished"> </translation>
</message>
<message>
<source>&amp;New</source>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Copy the currently selected address to the system clipboard</source>
<translation type="unfinished"> ि ि </translation>
</message>
<message>
<source>&amp;Copy</source>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Delete the currently selected address from the list</source>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Enter address or label to search</source>
<translation type="unfinished"> ि </translation>
</message>
<message>
<source>Export the data in the current tab to a file</source>
<translation type="unfinished"> ि </translation>
</message>
<message>
<source>Choose the address to send coins to</source>
<translation type="unfinished"> ि ि </translation>
</message>
<message>
<source>Choose the address to receive coins with</source>
<translation type="unfinished"> ि ि </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 type="unfinished"> ि ि ि ि </translation>
</message>
<message>
<source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.
Signing is only possible with addresses of the type 'legacy'.</source>
<translation type="unfinished"> ि ि ि 'नया प्राप्तकर्ता पता बनाएं' 'विरासत' </translation>
</message>
<message>
<source>Copy &amp;Label</source>
<translation type="unfinished"> 
</translation>
</message>
</context>
<context>
<name>AskPassphraseDialog</name>
<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 type="unfinished">महत्वपूर्ण: आपके ि ि , ि ि ि , , ि , ि ि </translation>
</message>
<message>
<source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
<translation type="unfinished"> 
ि ि ि ि ि ि </translation>
</message>
</context>
<context>
<name>QObject</name>
<message numerus="yes">
<source>%n second(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n minute(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n hour(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n day(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n week(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n year(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
</context>
<context>
<name>BitcoinGUI</name>
<message>
<source>Close Wallet</source>
<translation type="unfinished"> ...</translation>
</message>
<message>
<source>Create Wallet</source>
<translation type="unfinished"> ...</translation>
</message>
<message>
<source>Close All Wallets</source>
<translation type="unfinished"> ...</translation>
</message>
<message numerus="yes">
<source>Processed %n block(s) of transaction history.</source>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n active connection(s) to Bitcoin network.</source>
<extracomment>A substring of the tooltip.</extracomment>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
</context>
<context>
<name>Intro</name>
<message numerus="yes">
<source>(sufficient to restore backups %n day(s) old)</source>
<extracomment>Explanatory text on the capability of the current prune target.</extracomment>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
</context>
<context>
<name>SendCoinsDialog</name>
<message numerus="yes">
<source>Estimated to begin confirmation within %n block(s).</source>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
</context>
<context>
<name>TransactionDesc</name>
<message numerus="yes">
<source>matures in %n more block(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
</context>
</TS>

View File

@@ -3,7 +3,7 @@
<name>AddressBookPage</name>
<message>
<source>Right-click to edit address or label</source>
<translation type="unfinished">A cím vagy címke szerkeszteséhez kattintson a jobb gombbal</translation>
<translation type="unfinished">A cím vagy címke szerkesztéséhez kattintson a jobb gombbal</translation>
</message>
<message>
<source>Create a new address</source>
@@ -47,11 +47,11 @@
</message>
<message>
<source>Choose the address to send coins to</source>
<translation type="unfinished">Kedvezményezett címének kiválasztása</translation>
<translation type="unfinished">Válassza ki a küldési címet kimenő utalásokhoz</translation>
</message>
<message>
<source>Choose the address to receive coins with</source>
<translation type="unfinished">Jóváírási cím kiválasztása</translation>
<translation type="unfinished">Válassza ki a fogadó címet beérkező utalásokhoz</translation>
</message>
<message>
<source>C&amp;hoose</source>
@@ -76,11 +76,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
</message>
<message>
<source>&amp;Copy Address</source>
<translation type="unfinished">&amp;Cím másolása</translation>
<translation type="unfinished">Cím &amp;másolása</translation>
</message>
<message>
<source>Copy &amp;Label</source>
<translation type="unfinished">Másolás és Címkézés</translation>
<translation type="unfinished">Másolás és &amp;címkézés</translation>
</message>
<message>
<source>&amp;Edit</source>
@@ -98,7 +98,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<message>
<source>There was an error trying to save the address list to %1. Please try again.</source>
<extracomment>An error message. %1 is a stand-in argument for the name of the file we attempted to save to.</extracomment>
<translation type="unfinished">Hiba történt a címlista %1 mentésekor. Kérem próbálja újra.</translation>
<translation type="unfinished">Hiba történt a címlista %1 mentésekor. Kérem próbálja újra.</translation>
</message>
<message>
<source>Exporting Failed</source>
@@ -176,7 +176,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
</message>
<message>
<source>Enter the new passphrase for the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;ten or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
<translation type="unfinished">Írja be a tárca új jelszavát. &lt;br/&gt;A jelszó összetétele a következő: &lt;b&gt;tíz vagy annál több véletlenszerű karakter&lt;/b&gt;, vagy &lt;b&gt;nyolc vagy annál több szó&lt;/b&gt;. </translation>
<translation type="unfinished">Írja be a tárca új jelszavát. &lt;br/&gt;Használjon &lt;b&gt;legalább tíz véletlenszerű karakterből&lt;/b&gt;, vagy &lt;b&gt;legalább nyolc szóból&lt;/b&gt; álló jelszót.</translation>
</message>
<message>
<source>Enter the old passphrase and new passphrase for the wallet.</source>
@@ -367,31 +367,31 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<message numerus="yes">
<source>%n second(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform>%n másodperc</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n minute(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform>%n perc</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n hour(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform>%n óra</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n day(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform>%n nap</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n week(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform>%n hét</numerusform>
</translation>
</message>
<message>
@@ -401,7 +401,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<message numerus="yes">
<source>%n year(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform>%n év</numerusform>
</translation>
</message>
</context>
@@ -615,6 +615,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Cannot write to data directory '%s'; check permissions.</source>
<translation type="unfinished">Nem lehet írni a '%s' könyvtárba; ellenőrizze a jogosultságokat.</translation>
</message>
<message>
<source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
<translation type="unfinished">A -txindex frissítése nem fejezhető be mivel egy korábbi verzió kezdte el. Indítsa újra az előző verziót vagy futtassa a teljes -reindex parancsot.</translation>
</message>
<message>
<source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
<translation type="unfinished">Nem lehetséges a megadott kapcsolatok és az addrman által felderített kapcsolatok egyidejű használata.</translation>
</message>
<message>
<source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
<translation type="unfinished">Hiba %s betöltése közben: Külső aláíró tárca betöltése külső aláírók támogatása nélkül</translation>
</message>
<message>
<source>Config setting for %s only applied on %s network when in [%s] section.</source>
<translation type="unfinished">A konfigurációs beálltás %s kizárólag az %s hálózatra vonatkozik amikor a [%s] szekcióban van.</translation>
@@ -657,11 +669,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
</message>
<message>
<source>Error initializing block database</source>
<translation type="unfinished">A blokkadatbázis inicializálása nem sikerült</translation>
<translation type="unfinished">A blokkadatbázis előkészítése nem sikerült</translation>
</message>
<message>
<source>Error initializing wallet database environment %s!</source>
<translation type="unfinished">A tárca-adatbázis inicializálása nem sikerült: %s!</translation>
<translation type="unfinished">A tárca-adatbázis előkészítése nem sikerült: %s!</translation>
</message>
<message>
<source>Error loading %s</source>
@@ -721,7 +733,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
</message>
<message>
<source>Error: Keypool ran out, please call keypoolrefill first</source>
<translation type="unfinished">A címraktár kiürült, kérjük előbb adja ki a keypoolrefill parancsot.</translation>
<translation type="unfinished">A címraktár kiürült, előbb adja ki a keypoolrefill parancsot.</translation>
</message>
<message>
<source>Error: Missing checksum</source>
@@ -757,7 +769,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
</message>
<message>
<source>Ignoring duplicate -wallet %s.</source>
<translation type="unfinished">A duplikált -wallet %s figyelmen kívül hagyva.</translation>
<translation type="unfinished">Az ismétlődő -wallet %s figyelmen kívül hagyva.</translation>
</message>
<message>
<source>Importing…</source>
@@ -963,6 +975,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Transaction amounts must not be negative</source>
<translation type="unfinished">Tranzakció összege nem lehet negatív</translation>
</message>
<message>
<source>Transaction change output index out of range</source>
<translation type="unfinished">Tartományon kivüli tranzakció visszajáró index</translation>
</message>
<message>
<source>Transaction has too long of a mempool chain</source>
<translation type="unfinished">A tranzakcóihoz tartozó mempool elődlánc túl hosszú</translation>
@@ -1100,7 +1116,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
</message>
<message>
<source>Modify configuration options for %1</source>
<translation type="unfinished">%1 beállítások módosítása</translation>
<translation type="unfinished">%1 beállításainak módosítása</translation>
</message>
<message>
<source>Create a new wallet</source>
@@ -1145,7 +1161,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
</message>
<message>
<source>&amp;Options</source>
<translation type="unfinished">&amp;Opciók</translation>
<translation type="unfinished">&amp;Beállítások</translation>
</message>
<message>
<source>&amp;Encrypt Wallet</source>
@@ -1169,7 +1185,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
</message>
<message>
<source>Sign messages with your Bitcoin addresses to prove you own them</source>
<translation type="unfinished">Üzenetek aláírása a Bitcoin-címeivel, amivel bizonyíthatja hogy a cím az Ö</translation>
<translation type="unfinished">Üzenetek aláírása a Bitcoin-címeivel, amivel bizonyíthatja, hogy az Ö</translation>
</message>
<message>
<source>&amp;Verify message</source>
@@ -1258,7 +1274,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<message numerus="yes">
<source>Processed %n block(s) of transaction history.</source>
<translation type="unfinished">
<numerusform />
<numerusform>A tranzakció történetből %n blokk feldolgozva.</numerusform>
</translation>
</message>
<message>
@@ -1377,11 +1393,19 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>%1 client</source>
<translation type="unfinished">%1 kliens</translation>
</message>
<message>
<source>&amp;Hide</source>
<translation type="unfinished">&amp;Elrejt</translation>
</message>
<message>
<source>S&amp;how</source>
<translation type="unfinished">&amp;Mutat</translation>
</message>
<message numerus="yes">
<source>%n active connection(s) to Bitcoin network.</source>
<extracomment>A substring of the tooltip.</extracomment>
<translation type="unfinished">
<numerusform />
<numerusform>%n aktív kapcsolat a Bitcoin hálózathoz.</numerusform>
</translation>
</message>
<message>
@@ -1462,15 +1486,15 @@ Signing is only possible with addresses of the type 'legacy'.</source>
</message>
<message>
<source>HD key generation is &lt;b&gt;disabled&lt;/b&gt;</source>
<translation type="unfinished">HD kulcs generálás &lt;b&gt;tiltva&lt;/b&gt;</translation>
<translation type="unfinished">HD kulcs generálás &lt;b&gt;letiltva&lt;/b&gt;</translation>
</message>
<message>
<source>Private key &lt;b&gt;disabled&lt;/b&gt;</source>
<translation type="unfinished">Privát kulcs &lt;b&gt;inaktív&lt;/b&gt;</translation>
<translation type="unfinished">Privát kulcs &lt;b&gt;letiltva&lt;/b&gt;</translation>
</message>
<message>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
<translation type="unfinished">A tárca &lt;b&gt;titkosítva&lt;/b&gt; és jelenleg &lt;b&gt;nyitva&lt;/b&gt;.</translation>
<translation type="unfinished">A tárca &lt;b&gt;titkosítva&lt;/b&gt; és jelenleg &lt;b&gt;feloldva&lt;/b&gt;.</translation>
</message>
<message>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
@@ -1485,7 +1509,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<name>UnitDisplayStatusBarControl</name>
<message>
<source>Unit to show amounts in. Click to select another unit.</source>
<translation type="unfinished">Egység, amelyben az összegek meg lesznek jelenítve. Kattintson ide, ha másik egységet szeretne kiválasztani.</translation>
<translation type="unfinished">Egység, amelyben az összegek lesznek megjelenítve. Kattintson ide másik egység kiválasztásához.</translation>
</message>
</context>
<context>
@@ -1765,7 +1789,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
</message>
<message>
<source>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</source>
<translation type="unfinished">Üres tárca készítése. Az üres tárcák kezdetben nem tartalmaznak privát kulcsokat vagy szkripteket. Később lehetséges a privát kulcsok vagy címek importálása avagy egy HD mag beállítása.</translation>
<translation type="unfinished">Üres tárca készítése. Az üres tárcák kezdetben nem tartalmaznak privát kulcsokat vagy szkripteket. Később lehetséges a privát kulcsok vagy címek importálása illetve egy HD mag beállítása.</translation>
</message>
<message>
<source>Make Blank Wallet</source>
@@ -1849,7 +1873,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
</message>
<message>
<source>Could not unlock wallet.</source>
<translation type="unfinished">Nem sikerült a tárca felnyitása</translation>
<translation type="unfinished">Nem sikerült a tárca feloldása</translation>
</message>
<message>
<source>New key generation failed.</source>
@@ -1864,7 +1888,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
</message>
<message>
<source>name</source>
<translation type="unfinished">Név</translation>
<translation type="unfinished">név</translation>
</message>
<message>
<source>Directory already exists. Add %1 if you intend to create a new directory here.</source>
@@ -1881,6 +1905,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
</context>
<context>
<name>Intro</name>
<message>
<source>%1 GB of space available</source>
<translation type="unfinished">%1 GB szabad hely áll rendelkezésre</translation>
</message>
<message>
<source>(of %1 GB needed)</source>
<translation type="unfinished">(a szükséges %1 GB-ból)</translation>
@@ -1901,7 +1929,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>(sufficient to restore backups %n day(s) old)</source>
<extracomment>Explanatory text on the capability of the current prune target.</extracomment>
<translation type="unfinished">
<numerusform />
<numerusform>(elegendő %n nappal ezelőtti biztonsági mentések visszaállításához)</numerusform>
</translation>
</message>
<message>
@@ -1910,7 +1938,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
</message>
<message>
<source>The wallet will also be stored in this directory.</source>
<translation type="unfinished">A tárcát is ebben a könyvtárban tároljuk.</translation>
<translation type="unfinished">A tárca is ebben a könyvtárban tárolódik.</translation>
</message>
<message>
<source>Error: Specified data directory "%1" cannot be created.</source>
@@ -2262,7 +2290,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
</message>
<message>
<source>Show only a tray icon after minimizing the window.</source>
<translation type="unfinished">Kicsinyítés után csak eszköztár-ikont mutass</translation>
<translation type="unfinished">Kicsinyítés után csak az eszköztár-ikont mutassa.</translation>
</message>
<message>
<source>&amp;Minimize to the tray instead of the taskbar</source>
@@ -2270,7 +2298,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
</message>
<message>
<source>M&amp;inimize on close</source>
<translation type="unfinished">K&amp;icsinyítés záráskor</translation>
<translation type="unfinished">K&amp;icsinyítés bezáráskor</translation>
</message>
<message>
<source>&amp;Display</source>
@@ -2912,7 +2940,7 @@ If you are receiving this error you should request the merchant provide a BIP21
</message>
<message>
<source>The network protocol this peer is connected through: IPv4, IPv6, Onion, I2P, or CJDNS.</source>
<translation type="unfinished">A hálózati protokoll amin keresztül ez a csomópont kapcsolódik: IPv4, IPv6, Onion, I2P vagy CJDNS.</translation>
<translation type="unfinished">A hálózati protokoll amin keresztül ez a partner kapcsolódik: IPv4, IPv6, Onion, I2P vagy CJDNS.</translation>
</message>
<message>
<source>Services</source>
@@ -2940,7 +2968,7 @@ If you are receiving this error you should request the merchant provide a BIP21
</message>
<message>
<source>Elapsed time since a novel block passing initial validity checks was received from this peer.</source>
<translation type="unfinished">A csomóponttól érkező új blokkokra vonatkozó érvényességet igazoló ellenőrzések óta eltelt idő.</translation>
<translation type="unfinished">A partnertől érkező új blokkokra vonatkozó érvényességet igazoló ellenőrzések óta eltelt idő.</translation>
</message>
<message>
<source>Last Block</source>
@@ -2949,7 +2977,7 @@ If you are receiving this error you should request the merchant provide a BIP21
<message>
<source>Elapsed time since a novel transaction accepted into our mempool was received from this peer.</source>
<extracomment>Tooltip text for the Last Transaction field in the peer details area.</extracomment>
<translation type="unfinished">Az eltelt idő, amióta egy új, a mempoolunkba elfogadott tranzakció érkezett ettől a társtulajdonostól.</translation>
<translation type="unfinished">Az eltelt idő, amióta egy új, a saját memóriahalomba elfogadott tranzakció érkezett ettől a partnertől.</translation>
</message>
<message>
<source>Last Send</source>
@@ -3668,7 +3696,7 @@ Megjegyzés: Mivel a díj bájtonként van kiszámítva, egy "100 satoshi kvB-nk
<message numerus="yes">
<source>Estimated to begin confirmation within %n block(s).</source>
<translation type="unfinished">
<numerusform />
<numerusform>A megerősítésnek becsült kezdete %n blokkon belül várható.</numerusform>
</translation>
</message>
<message>
@@ -3786,7 +3814,7 @@ Megjegyzés: Mivel a díj bájtonként van kiszámítva, egy "100 satoshi kvB-nk
</message>
<message>
<source>&amp;Sign Message</source>
<translation type="unfinished">Üzenet aláírása...</translation>
<translation type="unfinished">Üzenet &amp;Aláírása</translation>
</message>
<message>
<source>You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</source>
@@ -3818,11 +3846,11 @@ Megjegyzés: Mivel a díj bájtonként van kiszámítva, egy "100 satoshi kvB-nk
</message>
<message>
<source>Sign the message to prove you own this Bitcoin address</source>
<translation type="unfinished">Üzenet</translation>
<translation type="unfinished">Üzenet aláírása, ezzel bizonyítva, hogy Öné ez a Bitcoin cím</translation>
</message>
<message>
<source>Sign &amp;Message</source>
<translation type="unfinished">Üzenet &amp;aláírása</translation>
<translation type="unfinished">Üzenet &amp;Aláírása</translation>
</message>
<message>
<source>Reset all sign message fields</source>
@@ -3846,7 +3874,7 @@ Megjegyzés: Mivel a díj bájtonként van kiszámítva, egy "100 satoshi kvB-nk
</message>
<message>
<source>The signed message to verify</source>
<translation type="unfinished">Az aláírt üzenet ellenőrzésre</translation>
<translation type="unfinished">Az ellenőrizni kívánt aláírt üzenet</translation>
</message>
<message>
<source>The signature given when the message was signed</source>
@@ -3858,7 +3886,7 @@ Megjegyzés: Mivel a díj bájtonként van kiszámítva, egy "100 satoshi kvB-nk
</message>
<message>
<source>Verify &amp;Message</source>
<translation type="unfinished">Üzenet ellenőrzése</translation>
<translation type="unfinished">Üzenet &amp;Ellenőrzése</translation>
</message>
<message>
<source>Reset all verify message fields</source>
@@ -3874,7 +3902,7 @@ Megjegyzés: Mivel a díj bájtonként van kiszámítva, egy "100 satoshi kvB-nk
</message>
<message>
<source>Please check the address and try again.</source>
<translation type="unfinished">Kérem ellenőrizze a címet és próbálja meg újra.</translation>
<translation type="unfinished">Ellenőrizze a címet és próbálja meg újra.</translation>
</message>
<message>
<source>The entered address does not refer to a key.</source>
@@ -3906,7 +3934,7 @@ Megjegyzés: Mivel a díj bájtonként van kiszámítva, egy "100 satoshi kvB-nk
</message>
<message>
<source>Please check the signature and try again.</source>
<translation type="unfinished">Kérem ellenőrizze az aláírást és próbálja újra.</translation>
<translation type="unfinished">Ellenőrizze az aláírást és próbálja újra.</translation>
</message>
<message>
<source>The signature did not match the message digest.</source>
@@ -4009,7 +4037,7 @@ Megjegyzés: Mivel a díj bájtonként van kiszámítva, egy "100 satoshi kvB-nk
<message numerus="yes">
<source>matures in %n more block(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform>Beérik %n blokk múlva</numerusform>
</translation>
</message>
<message>
@@ -4140,7 +4168,7 @@ Megjegyzés: Mivel a díj bájtonként van kiszámítva, egy "100 satoshi kvB-nk
</message>
<message>
<source>Conflicted</source>
<translation type="unfinished">Konfliktusos</translation>
<translation type="unfinished">Ellentmondásos</translation>
</message>
<message>
<source>Immature (%1 confirmations, will be available after %2)</source>
@@ -4369,7 +4397,7 @@ Megjegyzés: Mivel a díj bájtonként van kiszámítva, egy "100 satoshi kvB-nk
</message>
<message>
<source>to</source>
<translation type="unfinished">meddig</translation>
<translation type="unfinished">-</translation>
</message>
</context>
<context>

View File

@@ -347,31 +347,31 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<message numerus="yes">
<source>%n second(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform>%ndetik</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n minute(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform>%n menit</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n hour(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform>%njam</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n day(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform>%n hari</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n week(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform>%nminggu</numerusform>
</translation>
</message>
<message>
@@ -381,7 +381,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<message numerus="yes">
<source>%n year(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform>%n tahun</numerusform>
</translation>
</message>
</context>
@@ -423,6 +423,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source>
<translation type="unfinished">Kesalahan membaca %s! Semua kunci dibaca dengan benar, tetapi data transaksi atau entri buku alamat mungkin hilang atau salah.</translation>
</message>
<message>
<source>Error reading %s! Transaction data may be missing or incorrect. Rescanning wallet.</source>
<translation type="unfinished">Kesalahan membaca %s! Data transaksi mungkin hilang atau salah. Memindai ulang dompet.</translation>
</message>
<message>
<source>Error: Dumpfile format record is incorrect. Got "%s", expected "format".</source>
<translation type="unfinished">Kesalahan: Rekaman pengenal dumpfile salah. Mendapat "%s", diharapkan "format". </translation>
@@ -779,6 +783,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Need to specify a port with -whitebind: '%s'</source>
<translation type="unfinished">Perlu menentukan port dengan -whitebind: '%s'</translation>
</message>
<message>
<source>No addresses available</source>
<translation type="unfinished">Tidak ada alamat tersedia</translation>
</message>
<message>
<source>No proxy server specified. Use -proxy=&lt;ip&gt; or -proxy=&lt;ip:port&gt;.</source>
<translation type="unfinished">Tidak ada server proxy yang ditentukan. Gunakan -proxy=&lt;ip&gt; atau -proxy=&lt;ip:port&gt;.</translation>
@@ -1178,7 +1186,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<message numerus="yes">
<source>Processed %n block(s) of transaction history.</source>
<translation type="unfinished">
<numerusform />
<numerusform>%n blok riwayat transaksi diproses.</numerusform>
</translation>
</message>
<message>
@@ -1293,11 +1301,19 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>%1 client</source>
<translation type="unfinished">%1 klien</translation>
</message>
<message>
<source>&amp;Hide</source>
<translation type="unfinished">Sembunyi</translation>
</message>
<message>
<source>S&amp;how</source>
<translation type="unfinished">Tampilkan</translation>
</message>
<message numerus="yes">
<source>%n active connection(s) to Bitcoin network.</source>
<extracomment>A substring of the tooltip.</extracomment>
<translation type="unfinished">
<numerusform />
<numerusform>%n koneksi yang aktif ke jaringan Bitcoin</numerusform>
</translation>
</message>
<message>
@@ -1769,6 +1785,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
</context>
<context>
<name>Intro</name>
<message>
<source>%1 GB of space available</source>
<translation type="unfinished">%1 GB ruang tersedia</translation>
</message>
<message>
<source>(of %1 GB needed)</source>
<translation type="unfinished">(dari %1 GB yang dibutuhkan)</translation>
@@ -1789,7 +1809,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>(sufficient to restore backups %n day(s) old)</source>
<extracomment>Explanatory text on the capability of the current prune target.</extracomment>
<translation type="unfinished">
<numerusform />
<numerusform>(cukup untuk memulihkan cadangan %n hari)</numerusform>
</translation>
</message>
<message>
@@ -2026,10 +2046,30 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<extracomment>Tooltip text for Options window setting that sets the number of script verification threads. Explains that negative values mean to leave these many cores free to the system.</extracomment>
<translation type="unfinished">Set nomor thread script verifikasi. Nilai negatif sesuai dengan core yang tidak ingin digunakan di dalam system.</translation>
</message>
<message>
<source>This allows you or a third party tool to communicate with the node through command-line and JSON-RPC commands.</source>
<extracomment>Tooltip text for Options window setting that enables the RPC server.</extracomment>
<translation type="unfinished">Ini memungkinkan Anda atau alat pihak ketiga untuk berkomunikasi dengan node melalui perintah baris perintah dan JSON-RPC.</translation>
</message>
<message>
<source>Enable R&amp;PC server</source>
<extracomment>An Options window setting to enable the RPC server.</extracomment>
<translation type="unfinished">Aktifkan server R&amp;PC</translation>
</message>
<message>
<source>W&amp;allet</source>
<translation type="unfinished">D&amp;ompet</translation>
</message>
<message>
<source>Whether to set subtract fee from amount as default or not.</source>
<extracomment>Tooltip text for Options window setting that sets subtracting the fee from a sending amount as default.</extracomment>
<translation type="unfinished">Apakah akan menetapkan biaya pengurangan dari jumlah sebagai default atau tidak.</translation>
</message>
<message>
<source>Subtract &amp;fee from amount by default</source>
<extracomment>An Options window setting to set subtracting the fee from a sending amount as default.</extracomment>
<translation type="unfinished">Kurangi biaya dari jumlah secara default</translation>
</message>
<message>
<source>Expert</source>
<translation type="unfinished">Ahli</translation>
@@ -2046,6 +2086,16 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>&amp;Spend unconfirmed change</source>
<translation type="unfinished">&amp;Perubahan saldo untuk transaksi yang belum dikonfirmasi</translation>
</message>
<message>
<source>Enable &amp;PSBT controls</source>
<extracomment>An options window setting to enable PSBT controls.</extracomment>
<translation type="unfinished">Aktifkan kontrol &amp;PSBT</translation>
</message>
<message>
<source>Whether to show PSBT controls.</source>
<extracomment>Tooltip text for options window setting that enables PSBT controls.</extracomment>
<translation type="unfinished">Apakah akan menampilkan kontrol PSBT.</translation>
</message>
<message>
<source>External Signer (e.g. hardware wallet)</source>
<translation type="unfinished">Penandatangan eksternal (seperti dompet perangkat keras)</translation>
@@ -2146,6 +2196,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Choose the default subdivision unit to show in the interface and when sending coins.</source>
<translation type="unfinished">Pilihan standar unit yang ingin ditampilkan pada layar aplikasi dan saat mengirim koin.</translation>
</message>
<message>
<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 type="unfinished">URL pihak ketika (misalnya sebuah block explorer) yang mumcul dalam tab transaksi sebagai konteks menu. %s dalam URL diganti dengan kode transaksi. URL dipisahkan dengan tanda vertikal |.</translation>
</message>
<message>
<source>&amp;Third-party transaction URLs</source>
<translation type="unfinished">&amp;URL transaksi Pihak Ketiga</translation>
</message>
<message>
<source>Whether to show coin control features or not.</source>
<translation type="unfinished">Ingin menunjukkan cara pengaturan koin atau tidak.</translation>
@@ -2209,6 +2267,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<extracomment>Explanatory text about the priority order of instructions considered by client. The order from high to low being: command-line, configuration file, GUI settings.</extracomment>
<translation type="unfinished">File konfigurasi digunakan untuk menspesifikkan pilihan khusus pengguna yang akan menimpa pengaturan GUI. Sebagai tambahan, pengaturan command-line apapun akan menimpa file konfigurasi itu.</translation>
</message>
<message>
<source>Continue</source>
<translation type="unfinished">Lanjutkan</translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished">Batal</translation>
@@ -2335,6 +2397,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Failed to sign transaction: %1</source>
<translation type="unfinished">Gagal untuk menandatangani transaksi: %1</translation>
</message>
<message>
<source>Cannot sign inputs while wallet is locked.</source>
<translation type="unfinished">Tidak dapat menandatangani input saat dompet terkunci.</translation>
</message>
<message>
<source>Could not sign any more inputs.</source>
<translation type="unfinished">Tidak bisa menandatangani lagi input apapun.</translation>
@@ -2404,6 +2470,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Transaction still needs signature(s).</source>
<translation type="unfinished">Transaksi masih membutuhkan tanda tangan(s).</translation>
</message>
<message>
<source>(But no wallet is loaded.)</source>
<translation type="unfinished">(Tapi tidak ada dompet yang dimuat.)</translation>
</message>
<message>
<source>(But this wallet cannot sign transactions.)</source>
<translation type="unfinished">(Tetapi dompet ini tidak dapat menandatangani transaksi.)</translation>
@@ -2648,6 +2718,33 @@ Jika Anda menerima kesalahan ini, Anda harus meminta pedagang untuk memberikan U
<source>Mapped AS</source>
<translation type="unfinished">AS yang Dipetakan</translation>
</message>
<message>
<source>Whether we relay addresses to this peer.</source>
<extracomment>Tooltip text for the Address Relay field in the peer details area.</extracomment>
<translation type="unfinished">Apakah kita menyampaikan alamat ke rekan ini.</translation>
</message>
<message>
<source>Address Relay</source>
<translation type="unfinished">Alamat Relay</translation>
</message>
<message>
<source>Total number of addresses processed, excluding those dropped due to rate-limiting.</source>
<extracomment>Tooltip text for the Addresses Processed field in the peer details area.</extracomment>
<translation type="unfinished">Jumlah total alamat yang diproses, tidak termasuk yang dibatalkan karena pembatasan tarif.</translation>
</message>
<message>
<source>Addresses Processed</source>
<translation type="unfinished">Alamat Diproses</translation>
</message>
<message>
<source>Total number of addresses dropped due to rate-limiting.</source>
<extracomment>Tooltip text for the Addresses Rate-Limited field in the peer details area.</extracomment>
<translation type="unfinished">Jumlah total alamat turun karena pembatasan tarif.</translation>
</message>
<message>
<source>Addresses Rate-Limited</source>
<translation type="unfinished">Tarif Alamat Terbatas</translation>
</message>
<message>
<source>User Agent</source>
<translation type="unfinished">Agen Pengguna
@@ -2854,6 +2951,11 @@ Jika Anda menerima kesalahan ini, Anda harus meminta pedagang untuk memberikan U
<source>1 &amp;year</source>
<translation type="unfinished">1 &amp;tahun</translation>
</message>
<message>
<source>&amp;Copy IP/Netmask</source>
<extracomment>Context menu action to copy the IP/Netmask of a banned peer. IP/Netmask is the combination of a peer's IP address and its Netmask. For IP address, see: https://en.wikipedia.org/wiki/IP_address.</extracomment>
<translation type="unfinished">&amp;Salin IP/Netmask</translation>
</message>
<message>
<source>&amp;Unban</source>
<translation type="unfinished">&amp;Lepas ban</translation>
@@ -3337,6 +3439,16 @@ Catatan: Karena biaya dihitung berdasarkan per byte, tarif biaya "100 satoshi pe
<source>You can increase the fee later (signals Replace-By-Fee, BIP-125).</source>
<translation type="unfinished">Anda dapat menambah biaya kemudian (sinyal Replace-By-Fee, BIP-125).</translation>
</message>
<message>
<source>Do you want to create this transaction?</source>
<extracomment>Message displayed when attempting to create a transaction. Cautionary text to prompt the user to verify that the displayed transaction details represent the transaction the user intends to create.</extracomment>
<translation type="unfinished">Apakah Anda ingin membuat transaksi ini?</translation>
</message>
<message>
<source>Please, review your transaction. You can create and send this transaction or create a Partially Signed Bitcoin Transaction (PSBT), which you can save or copy and then sign with, e.g., an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
<extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can send their transaction or create a PSBT. This string is displayed when both private keys and PSBT controls are enabled.</extracomment>
<translation type="unfinished">Harap untuk analisi proposal transaksi anda kembali. Anda dapat membuat dan mengirim transaksi ini atau membuat transaksi bitcoin yang ditandai tangani sebagaian (PSBT) yang bisa anda simpan atau salin dan tanda tangan dengan contoh dompet offline %1, atau dompet yang kompatibel dengan PSBT</translation>
</message>
<message>
<source>Please, review your transaction.</source>
<extracomment>Text to prompt a user to review the details of the transaction they are attempting to send.</extracomment>
@@ -3393,7 +3505,7 @@ Catatan: Karena biaya dihitung berdasarkan per byte, tarif biaya "100 satoshi pe
<message numerus="yes">
<source>Estimated to begin confirmation within %n block(s).</source>
<translation type="unfinished">
<numerusform />
<numerusform>Diperkirakan akan memulai konfirmasi dalam %n blok.</numerusform>
</translation>
</message>
<message>
@@ -3650,6 +3762,17 @@ Catatan: Karena biaya dihitung berdasarkan per byte, tarif biaya "100 satoshi pe
<translation type="unfinished">Pesan diverifikasi.</translation>
</message>
</context>
<context>
<name>SplashScreen</name>
<message>
<source>(press q to shutdown and continue later)</source>
<translation type="unfinished">(tekan q untuk mematikan dan melanjutkan nanti)</translation>
</message>
<message>
<source>press q to shutdown</source>
<translation type="unfinished">tekan q untuk mematikan</translation>
</message>
</context>
<context>
<name>TransactionDesc</name>
<message>
@@ -3719,7 +3842,7 @@ Catatan: Karena biaya dihitung berdasarkan per byte, tarif biaya "100 satoshi pe
<message numerus="yes">
<source>matures in %n more block(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform>matang dalam %n blok lagi</numerusform>
</translation>
</message>
<message>
@@ -3991,6 +4114,11 @@ Catatan: Karena biaya dihitung berdasarkan per byte, tarif biaya "100 satoshi pe
<source>&amp;Edit address label</source>
<translation type="unfinished">&amp;Ubah label alamat</translation>
</message>
<message>
<source>Show in %1</source>
<extracomment>Transactions table context menu action to show the selected transaction in a third-party block explorer. %1 is a stand-in argument for the URL of the explorer.</extracomment>
<translation type="unfinished">Menunjukkan %1</translation>
</message>
<message>
<source>Export Transaction History</source>
<translation type="unfinished">Ekspor Riwayat Transaksi</translation>

View File

@@ -1348,6 +1348,10 @@ E' possibile firmare solo con indirizzi di tipo "legacy".</translation>
<source>Main Window</source>
<translation type="unfinished">Finestra principale</translation>
</message>
<message>
<source>&amp;Hide</source>
<translation type="unfinished">&amp;Nascondi</translation>
</message>
<message numerus="yes">
<source>%n active connection(s) to Bitcoin network.</source>
<extracomment>A substring of the tooltip.</extracomment>
@@ -1849,6 +1853,10 @@ E' possibile firmare solo con indirizzi di tipo "legacy".</translation>
</context>
<context>
<name>Intro</name>
<message>
<source>%1 GB of space available</source>
<translation type="unfinished">%1 GB di spazio libero disponibile</translation>
</message>
<message>
<source>(of %1 GB needed)</source>
<translation type="unfinished">(di %1 GB necessari)</translation>

View File

@@ -629,6 +629,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
<translation type="unfinished"> -txindex -reindex </translation>
</message>
<message>
<source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
<translation type="unfinished">%s </translation>
</message>
<message>
<source>Config setting for %s only applied on %s network when in [%s] section.</source>
<translation type="unfinished">%s [%s] %s </translation>

View File

@@ -665,6 +665,10 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
<source>Need to specify a port with -whitebind: '%s'</source>
<translation type="unfinished">Necessário informar uma porta com -whitebind: '%s'</translation>
</message>
<message>
<source>No addresses available</source>
<translation type="unfinished">Nenhum endereço disponível</translation>
</message>
<message>
<source>No proxy server specified. Use -proxy=&lt;ip&gt; or -proxy=&lt;ip:port&gt;.</source>
<translation type="unfinished">Nenhum servidor proxy especificado. Use -proxy=&lt;ip&gt; ou proxy=&lt;ip:port&gt;.</translation>
@@ -785,6 +789,10 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
<source>Transaction must have at least one recipient</source>
<translation type="unfinished">A transação deve ter ao menos um destinatário</translation>
</message>
<message>
<source>Transaction needs a change address, but we can't generate it.</source>
<translation type="unfinished">Transação necessita de um endereço de troco, mas não conseguimos gera-lo. </translation>
</message>
<message>
<source>Transaction too large</source>
<translation type="unfinished">Transação muito grande</translation>
@@ -1896,10 +1904,25 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
<source>Reverting this setting requires re-downloading the entire blockchain.</source>
<translation type="unfinished">Reverter esta configuração requer baixar de novo a blockchain inteira.</translation>
</message>
<message>
<source>Maximum database cache size. A larger cache can contribute to faster sync, after which the benefit is less pronounced for most use cases. Lowering the cache size will reduce memory usage. Unused mempool memory is shared for this cache.</source>
<extracomment>Tooltip text for Options window setting that sets the size of the database cache. Explains the corresponding effects of increasing/decreasing this value.</extracomment>
<translation type="unfinished">Tamanho máximo do cache do banco de dados. Um cache maior pode contribuir para uma sincronização mais rápida, após a qual o benefício é menos pronunciado para a maioria dos casos de uso. Reduzir o tamanho do cache reduzirá o uso de memória. A memória do mempool não utilizada é compartilhada para este cache.</translation>
</message>
<message>
<source>Set the number of script verification threads. Negative values correspond to the number of cores you want to leave free to the system.</source>
<extracomment>Tooltip text for Options window setting that sets the number of script verification threads. Explains that negative values mean to leave these many cores free to the system.</extracomment>
<translation type="unfinished">Define o número de threads para script de verificação. Valores negativos correspondem ao número de núcleos que você quer deixar livre para o sistema.</translation>
</message>
<message>
<source>(0 = auto, &lt;0 = leave that many cores free)</source>
<translation type="unfinished">(0 = automático, &lt;0 = número de núcleos deixados livres)</translation>
</message>
<message>
<source>This allows you or a third party tool to communicate with the node through command-line and JSON-RPC commands.</source>
<extracomment>Tooltip text for Options window setting that enables the RPC server.</extracomment>
<translation type="unfinished">Isso permite que você ou ferramentas de terceiros comunique-se com o node através de linha de comando e comandos JSON-RPC.</translation>
</message>
<message>
<source>Enable R&amp;PC server</source>
<extracomment>An Options window setting to enable the RPC server.</extracomment>
@@ -1909,6 +1932,11 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
<source>W&amp;allet</source>
<translation type="unfinished">C&amp;arteira</translation>
</message>
<message>
<source>Whether to set subtract fee from amount as default or not.</source>
<extracomment>Tooltip text for Options window setting that sets subtracting the fee from a sending amount as default.</extracomment>
<translation type="unfinished">Se deve definir subtrair a taxa do montante como padrão ou não.</translation>
</message>
<message>
<source>Subtract &amp;fee from amount by default</source>
<extracomment>An Options window setting to set subtracting the fee from a sending amount as default.</extracomment>
@@ -1935,6 +1963,11 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
<extracomment>An options window setting to enable PSBT controls.</extracomment>
<translation type="unfinished">Ative controles &amp;PSBT</translation>
</message>
<message>
<source>Whether to show PSBT controls.</source>
<extracomment>Tooltip text for options window setting that enables PSBT controls.</extracomment>
<translation type="unfinished">Se os controles PSBT devem ser exibidos.</translation>
</message>
<message>
<source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
<translation type="unfinished">Abrir automaticamente no roteador as portas do cliente Bitcoin. Isto funcionará se seu roteador suportar UPnP e esta função estiver habilitada.</translation>

View File

@@ -5,6 +5,10 @@
<source>Right-click to edit address or label</source>
<translation type="unfinished">Нажмите правой кнопкой мыши, чтобы изменить адрес или метку</translation>
</message>
<message>
<source>Create a new address</source>
<translation type="unfinished">Создать новый адрес</translation>
</message>
<message>
<source>&amp;New</source>
<translation type="unfinished">&amp;Новый</translation>
@@ -41,6 +45,10 @@
<source>&amp;Delete</source>
<translation type="unfinished">&amp;Удалить</translation>
</message>
<message>
<source>Choose the address to send coins to</source>
<translation type="unfinished">Выберите адрес чтобы отправить монеты</translation>
</message>
<message>
<source>Choose the address to receive coins with</source>
<translation type="unfinished">Выберите адрес для получения монет</translation>
@@ -252,6 +260,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
</context>
<context>
<name>QObject</name>
<message>
<source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
<extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
<translation type="unfinished">Произошла фатальная ошибка. Проверьте, доступна ли запись в файл настроек, или повторите запуск с параметром -nosettings.</translation>
</message>
<message>
<source>Error: Specified data directory "%1" does not exist.</source>
<translation type="unfinished">Ошибка: указанный каталог данных "%1" не существует.</translation>
@@ -354,25 +367,25 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<message numerus="yes">
<source>%n second(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform />
<numerusform>%nсекунду</numerusform>
<numerusform>%nсекунд</numerusform>
<numerusform>%nсекунд</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n minute(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform />
<numerusform>%nминуту</numerusform>
<numerusform>%nминут</numerusform>
<numerusform>%nминут</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n hour(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform />
<numerusform>%nчас</numerusform>
<numerusform>%nчасов</numerusform>
<numerusform>%nчасов</numerusform>
</translation>
</message>
<message numerus="yes">
@@ -422,6 +435,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
</context>
<context>
<name>bitcoin-core</name>
<message>
<source>Settings file could not be read</source>
<translation type="unfinished">Файл настроек не может быть прочитан</translation>
</message>
<message>
<source>Settings file could not be written</source>
<translation type="unfinished">Файл настроек не может быть записан</translation>
</message>
<message>
<source>The %s developers</source>
<translation type="unfinished">Разработчики %s</translation>
@@ -1057,6 +1078,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Create a new wallet</source>
<translation type="unfinished">Создать новый кошелёк</translation>
</message>
<message>
<source>&amp;Minimize</source>
<translation type="unfinished">&amp;Уменьшить</translation>
</message>
<message>
<source>Wallet:</source>
<translation type="unfinished">Кошелёк:</translation>
@@ -1205,9 +1230,9 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<message numerus="yes">
<source>Processed %n block(s) of transaction history.</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform />
<numerusform>Обработан %n блок истории транзакций.</numerusform>
<numerusform>Обработано %n блока истории транзакций.</numerusform>
<numerusform>Обработано %n блоков истории транзакций.</numerusform>
</translation>
</message>
<message>
@@ -1246,6 +1271,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Load Partially Signed Bitcoin Transaction</source>
<translation type="unfinished">Загрузить частично подписанную биткоин-транзакцию (PSBT)</translation>
</message>
<message>
<source>Load PSBT from &amp;clipboard…</source>
<translation type="unfinished">Загрузить PSBT из &amp;буфера обмена...</translation>
</message>
<message>
<source>Load Partially Signed Bitcoin Transaction from clipboard</source>
<translation type="unfinished">Загрузить частично подписанную биткоин-транзакцию из буфера обмена</translation>
@@ -1322,6 +1351,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>%1 client</source>
<translation type="unfinished">%1 клиент</translation>
</message>
<message>
<source>&amp;Hide</source>
<translation type="unfinished">&amp;Скрыть</translation>
</message>
<message numerus="yes">
<source>%n active connection(s) to Bitcoin network.</source>
<extracomment>A substring of the tooltip.</extracomment>
@@ -1509,6 +1542,30 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Copy amount</source>
<translation type="unfinished">Копировать сумму</translation>
</message>
<message>
<source>&amp;Copy address</source>
<translation type="unfinished">&amp;Копировать адрес</translation>
</message>
<message>
<source>Copy &amp;label</source>
<translation type="unfinished">Копировать &amp;метку</translation>
</message>
<message>
<source>Copy &amp;amount</source>
<translation type="unfinished">Копировать &amp;сумму</translation>
</message>
<message>
<source>Copy transaction &amp;ID and output index</source>
<translation type="unfinished">Скопировать &amp;ID транзакции и индекс вывода</translation>
</message>
<message>
<source>L&amp;ock unspent</source>
<translation type="unfinished">З&amp;аблокировать неизрасходованный остаток</translation>
</message>
<message>
<source>&amp;Unlock unspent</source>
<translation type="unfinished">&amp;Разблокировать неизрасходованный остаток</translation>
</message>
<message>
<source>Copy quantity</source>
<translation type="unfinished">Копировать количество</translation>
@@ -1586,7 +1643,24 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Create wallet warning</source>
<translation type="unfinished">Кошелёк создан</translation>
</message>
</context>
<message>
<source>Can't list signers</source>
<translation type="unfinished">Невозможно отобразить подписантов</translation>
</message>
</context>
<context>
<name>LoadWalletsActivity</name>
<message>
<source>Load Wallets</source>
<extracomment>Title of progress window which is displayed when wallets are being loaded.</extracomment>
<translation type="unfinished">Загрузка кошельков</translation>
</message>
<message>
<source>Loading wallets</source>
<extracomment>Descriptive text of the load wallets progress window which indicates to the user that wallets are currently being loaded.</extracomment>
<translation type="unfinished">Загрузка кошельков...</translation>
</message>
</context>
<context>
<name>OpenWalletActivity</name>
<message>
@@ -1685,6 +1759,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Descriptor Wallet</source>
<translation type="unfinished">Дескрипторный кошелёк</translation>
</message>
<message>
<source>Use an external signing device such as a hardware wallet. Configure the external signer script in wallet preferences first.</source>
<translation type="unfinished">Используйте внешнее устройство для подписи, например аппаратный кошелек. Сначала настройте сценарий внешней подписи в настройках кошелька.</translation>
</message>
<message>
<source>External signer</source>
<translation type="unfinished">Внешняя подписывающая сторона</translation>
</message>
<message>
<source>Create</source>
<translation type="unfinished">Создать</translation>
@@ -1693,7 +1775,12 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Compiled without sqlite support (required for descriptor wallets)</source>
<translation type="unfinished">Скомпилирован без поддержки sqlite (необходимо для дескрипторных кошельков)</translation>
</message>
</context>
<message>
<source>Compiled without external signing support (required for external signing)</source>
<extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
<translation type="unfinished">Скомпилировано без поддержки внешней подписи (требуется для внешней подписи)</translation>
</message>
</context>
<context>
<name>EditAddressDialog</name>
<message>
@@ -1778,6 +1865,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Bitcoin</source>
<translation type="unfinished">биткоин</translation>
</message>
<message>
<source>%1 GB of space available</source>
<translation type="unfinished">Доступно %1 Гб пространства</translation>
</message>
<message>
<source>(of %1 GB needed)</source>
<translation type="unfinished">(из необходимых %1 ГБ)</translation>
@@ -2035,6 +2126,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Reverting this setting requires re-downloading the entire blockchain.</source>
<translation type="unfinished">Возврат этой настройки в прежнее значение потребует повторного скачивания всей цепочки блоков.</translation>
</message>
<message>
<source>Maximum database cache size. A larger cache can contribute to faster sync, after which the benefit is less pronounced for most use cases. Lowering the cache size will reduce memory usage. Unused mempool memory is shared for this cache.</source>
<extracomment>Tooltip text for Options window setting that sets the size of the database cache. Explains the corresponding effects of increasing/decreasing this value.</extracomment>
<translation type="unfinished">Максимальный размер кэша базы данных. Больший размер кэша может способствовать более быстрой синхронизации, после чего это преимущество становится менее выраженным для большинства случаев использования. Уменьшение размера кэша уменьшит использование памяти. Неиспользуемая память mempool используется совместно для этого кэша.</translation>
</message>
<message>
<source>MiB</source>
<translation type="unfinished">МиБ</translation>
@@ -2073,6 +2169,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>&amp;Spend unconfirmed change</source>
<translation type="unfinished">&amp;Тратить неподтверждённую сдачу</translation>
</message>
<message>
<source>External Signer (e.g. hardware wallet)</source>
<translation type="unfinished">Внешний подписант(например, аппаратный кошелёк)</translation>
</message>
<message>
<source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
<translation type="unfinished">Автоматически открыть порт биткоин-клиента на маршрутизаторе. Работает, если ваш маршрутизатор поддерживает UPnP, и данная функция на нём включена.</translation>
@@ -2201,6 +2301,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>&amp;Cancel</source>
<translation type="unfinished">О&amp;тмена</translation>
</message>
<message>
<source>Compiled without external signing support (required for external signing)</source>
<extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
<translation type="unfinished">Скомпилировано без поддержки внешней подписи (требуется для внешней подписи)</translation>
</message>
<message>
<source>default</source>
<translation type="unfinished">по умолчанию</translation>
@@ -2702,6 +2807,10 @@ If you are receiving this error you should request the merchant provide a BIP21
<source>Synced Blocks</source>
<translation type="unfinished">Синхронизировано блоков</translation>
</message>
<message>
<source>Last Transaction</source>
<translation type="unfinished">Последняя транзакция</translation>
</message>
<message>
<source>The mapped Autonomous System used for diversifying peer selection.</source>
<translation type="unfinished">Подключённая автономная система, используемая для диверсификации узлов, к которым производится подключение.</translation>
@@ -2893,6 +3002,11 @@ If you are receiving this error you should request the merchant provide a BIP21
<source>no high bandwidth relay selected</source>
<translation type="unfinished">широкополосный передатчик не выбран</translation>
</message>
<message>
<source>&amp;Copy address</source>
<extracomment>Context menu action to copy the address of a peer.</extracomment>
<translation type="unfinished">&amp;Копировать адрес</translation>
</message>
<message>
<source>&amp;Disconnect</source>
<translation type="unfinished">О&amp;тключиться</translation>
@@ -3058,6 +3172,18 @@ For more information on using this console, type %6.
<source>Copy &amp;URI</source>
<translation type="unfinished">Копировать &amp;URI</translation>
</message>
<message>
<source>&amp;Copy address</source>
<translation type="unfinished">&amp;Копировать адрес</translation>
</message>
<message>
<source>Copy &amp;label</source>
<translation type="unfinished">Копировать &amp;метку</translation>
</message>
<message>
<source>Copy &amp;amount</source>
<translation type="unfinished">Копировать &amp;сумму</translation>
</message>
<message>
<source>Could not unlock wallet.</source>
<translation type="unfinished">Невозможно разблокировать кошелёк.</translation>
@@ -3331,6 +3457,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
<source>%1 (%2 blocks)</source>
<translation type="unfinished">%1 (%2 блоков)</translation>
</message>
<message>
<source>Connect your hardware wallet first.</source>
<translation type="unfinished">Сначала подключите ваш аппаратный кошелёк.</translation>
</message>
<message>
<source>Cr&amp;eate Unsigned</source>
<translation type="unfinished">Создать &amp;без подписи</translation>
@@ -3385,6 +3515,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
<extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can only create a PSBT. This string is displayed when private keys are disabled and an external signer is not available.</extracomment>
<translation type="unfinished">Пожалуйста, ещё раз просмотрите черновик вашей транзакции. Будет создана частично подписанная биткоин-транзакция (PSBT), которую можно сохранить или скопировать, после чего подписать, например, офлайновым кошельком %1 или PSBT-совместимым аппаратным кошельком.</translation>
</message>
<message>
<source>Do you want to create this transaction?</source>
<extracomment>Message displayed when attempting to create a transaction. Cautionary text to prompt the user to verify that the displayed transaction details represent the transaction the user intends to create.</extracomment>
<translation type="unfinished">Вы хотите создать эту транзакцию?</translation>
</message>
<message>
<source>Please, review your transaction.</source>
<extracomment>Text to prompt a user to review the details of the transaction they are attempting to send.</extracomment>
@@ -3706,7 +3841,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
<source>(press q to shutdown and continue later)</source>
<translation type="unfinished">(нажмите q, чтобы завершить работу и продолжить позже)</translation>
</message>
</context>
<message>
<source>press q to shutdown</source>
<translation type="unfinished">нажмите q для выключения</translation>
</message>
</context>
<context>
<name>TrafficGraphWidget</name>
<message>
@@ -4049,6 +4188,22 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
<source>Range</source>
<translation type="unfinished">Диапазон...</translation>
</message>
<message>
<source>&amp;Copy address</source>
<translation type="unfinished">&amp;Копировать адрес</translation>
</message>
<message>
<source>Copy &amp;label</source>
<translation type="unfinished">Копировать &amp;метку</translation>
</message>
<message>
<source>Copy &amp;amount</source>
<translation type="unfinished">Копировать &amp;сумму</translation>
</message>
<message>
<source>Copy transaction &amp;ID</source>
<translation type="unfinished">Копировать транзакцию и &amp;ID</translation>
</message>
<message>
<source>Export Transaction History</source>
<translation type="unfinished">Экспортировать историю транзакций</translation>

File diff suppressed because it is too large Load Diff

1559
src/qt/locale/bitcoin_tk.ts Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1522,6 +1522,10 @@ Cüzdan kilidini aç.</translation>
</context>
<context>
<name>Intro</name>
<message>
<source>%1 GB of space available</source>
<translation type="unfinished">%1 GB boş alan mevcut.</translation>
</message>
<message>
<source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source>
<translation type="unfinished">Bu dizinde en az %1 GB veri depolanacak ve zamanla büyüyecek.</translation>

View File

@@ -656,6 +656,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
<translation type="unfinished">Оновлення -txindex, що було почате попередньою версією, не вдалося завершити. Перезапустить попередню версію або виконайте повний -reindex.</translation>
</message>
<message>
<source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
<translation type="unfinished">Не вдалося встановити визначені з'єднання і одночасно використовувати addrman для встановлення вихідних з'єднань.</translation>
</message>
<message>
<source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
<translation type="unfinished">Помилка завантаження %s: Завантаження гаманця зі зовнішнім підписувачем, але скомпільовано без підтримки зовнішнього підписування</translation>
</message>
<message>
<source>Config setting for %s only applied on %s network when in [%s] section.</source>
<translation type="unfinished">Налаштування конфігурації %s застосовується лише для мережі %s у розділі [%s].</translation>
@@ -850,7 +858,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
</message>
<message>
<source>Invalid amount for -paytxfee=&lt;amount&gt;: '%s' (must be at least %s)</source>
<translation type="unfinished">Вказано некоректну суму для параметру -paytxfee: «%s» (повинно бути щонайменше %s)</translation>
<translation type="unfinished">Вказано некоректну суму для параметра -paytxfee=&lt;amount&gt;: '%s' (повинно бути щонайменше %s)</translation>
</message>
<message>
<source>Invalid netmask specified in -whitelist: '%s'</source>
@@ -1842,12 +1850,12 @@ Signing is only possible with addresses of the type 'legacy'.</source>
</message>
<message>
<source>Compiled without sqlite support (required for descriptor wallets)</source>
<translation type="unfinished">Зкомпільовано без підтримки sqlite (потрібно для гаманців дескрипторів)</translation>
<translation type="unfinished">Скомпільовано без підтримки sqlite (потрібно для гаманців дескрипторів)</translation>
</message>
<message>
<source>Compiled without external signing support (required for external signing)</source>
<extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
<translation type="unfinished">Скомпільовано без підтримки зовнішнього підписування</translation>
<translation type="unfinished">Скомпільовано без підтримки зовнішнього підписування (потрібно для зовнішнього підписування)</translation>
</message>
</context>
<context>
@@ -2402,7 +2410,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<message>
<source>Compiled without external signing support (required for external signing)</source>
<extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
<translation type="unfinished">Скомпільовано без підтримки зовнішнього підписування</translation>
<translation type="unfinished">Скомпільовано без підтримки зовнішнього підписування (потрібно для зовнішнього підписування)</translation>
</message>
<message>
<source>default</source>

View File

@@ -69,6 +69,12 @@
<source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
<translation type="unfinished">Улар тўловларни жўнатиш учун сизнинг Bitcoin манзилларингиз. Доимо тангаларни жўнатишдан олдин сумма ва қабул қилувчи манзилни текшириб кўринг. </translation>
</message>
<message>
<source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.
Signing is only possible with addresses of the type 'legacy'.</source>
<translation type="unfinished">Улар тўловларни қабул қилиш учун сизнинг Bitcoin манзилларингиз. Янги манзилларни яратиш учун қабул қилиш варағидаги "Янги қабул қилиш манзилини яратиш" устига босинг.
Фақат 'legacy' туридаги манзиллар билан ҳисобга кириш мумкин.</translation>
</message>
<message>
<source>&amp;Copy Address</source>
<translation type="unfinished">Манзилдан &amp;нусха олиш</translation>
@@ -85,6 +91,11 @@
<source>Export Address List</source>
<translation type="unfinished">Манзил рўйхатини экспорт қилиш</translation>
</message>
<message>
<source>Comma separated file</source>
<extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
<translation type="unfinished">Вергул билан ажратилган файл</translation>
</message>
<message>
<source>There was an error trying to save the address list to %1. Please try again.</source>
<extracomment>An error message. %1 is a stand-in argument for the name of the file we attempted to save to.</extracomment>
@@ -128,6 +139,10 @@
<source>Repeat new passphrase</source>
<translation type="unfinished">Янги махфий сузни такрорланг</translation>
</message>
<message>
<source>Show passphrase</source>
<translation type="unfinished">Махфий сўзни кўрсатиш</translation>
</message>
<message>
<source>Encrypt wallet</source>
<translation type="unfinished">Ҳамённи қодлаш</translation>
@@ -160,6 +175,18 @@
<source>Wallet encrypted</source>
<translation type="unfinished">Ҳамёни кодланган</translation>
</message>
<message>
<source>Wallet to be encrypted</source>
<translation type="unfinished">Шифрланадиган ҳамён</translation>
</message>
<message>
<source>Your wallet is about to be encrypted. </source>
<translation type="unfinished">Ҳамёнингиз шифрланиш арафасида.</translation>
</message>
<message>
<source>Your wallet is now encrypted. </source>
<translation type="unfinished">Ҳамёнингиз энди шифрланади.</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 type="unfinished">МУҲИМ: Сиз қилган олдинги ҳамён файли заҳиралари янги яратилган, кодланган ҳамён файли билан алмаштирилиши керак. Хавфсизлик сабабларига кўра олдинги кодланган ҳамён файли заҳираси янги кодланган ҳамёндан фойдаланишингиз билан яроқсиз ҳолга келади.</translation>
@@ -1637,6 +1664,11 @@
<source>Export Transaction History</source>
<translation type="unfinished">Ўтказмалар тарихини экспорт қилиш</translation>
</message>
<message>
<source>Comma separated file</source>
<extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
<translation type="unfinished">Вергул билан ажратилган файл</translation>
</message>
<message>
<source>Confirmed</source>
<translation type="unfinished">Тасдиқланди</translation>

View File

@@ -150,10 +150,6 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Change passphrase</source>
<translation type="unfinished">Đi cụm mật khẩu</translation>
</message>
<message>
<source>Confirm wallet encryption</source>
<translation type="unfinished">Xác nhận hóa </translation>
</message>
<message>
<source>Warning: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!</source>
<translation type="unfinished">Cảnh báo: Nếu bạn hóa mất cụm mật khẩu, bạn sẽ &lt;b&gt;MẤT TẤT CẢ BITCOIN&lt;/b&gt;!</translation>

View File

@@ -264,6 +264,16 @@ Signing is only possible with addresses of the type 'legacy'.</source>
</context>
<context>
<name>QObject</name>
<message>
<source>Do you want to reset settings to default values, or to abort without making changes?</source>
<extracomment>Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
<extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
<translation type="unfinished"> -nosettings </translation>
</message>
<message>
<source>Error: Specified data directory "%1" does not exist.</source>
<translation type="unfinished">错误:指定的数据目录%1</translation>
@@ -366,31 +376,31 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<message numerus="yes">
<source>%n second(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform>%n秒</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n minute(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform>%n分钟</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n hour(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform>%n小时</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n day(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform>%n天</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n week(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform>%n周</numerusform>
</translation>
</message>
<message>
@@ -400,7 +410,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<message numerus="yes">
<source>%n year(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform>%n年</numerusform>
</translation>
</message>
<message>
@@ -410,6 +420,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
</context>
<context>
<name>bitcoin-core</name>
<message>
<source>Settings file could not be read</source>
<translation type="unfinished">无法读取设置文件</translation>
</message>
<message>
<source>Settings file could not be written</source>
<translation type="unfinished">无法写入设置文件</translation>
</message>
<message>
<source>The %s developers</source>
<translation type="unfinished">%s 开发者</translation>
@@ -442,6 +460,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source>
<translation type="unfinished">读取 %s 时发生错误!所有的密钥都可以正确读取,但是交易记录或地址簿数据可能已经丢失或出错。</translation>
</message>
<message>
<source>Error reading %s! Transaction data may be missing or incorrect. Rescanning wallet.</source>
<translation type="unfinished">读取%s出错交易数据可能丢失或有误。重新扫描钱包中。</translation>
</message>
<message>
<source>Error: Dumpfile format record is incorrect. Got "%s", expected "format".</source>
<translation type="unfinished">错误: 转储文件格式不正确。得到是"%s",而预期本应得到的是 "format"。</translation>
@@ -474,9 +496,13 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Invalid amount for -maxtxfee=&lt;amount&gt;: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source>
<translation type="unfinished">参数 -maxtxfee=&lt;amount&gt;: '%s' 指定了非法的金额 (手续费必须至少达到最小转发费率(minrelay fee) %s 以避免交易卡着发不出去)</translation>
</message>
<message>
<source>Invalid or corrupt peers.dat (%s). If you believe this is a bug, please report it to %s. As a workaround, you can move the file (%s) out of the way (rename, move, or delete) to have a new one created on the next start.</source>
<translation type="unfinished">无效或损坏的peers.dat (%s)。如果你确信这是一个bug请反馈到%s。作为变通办法你可以把现有文件 (%s) 移开(重命名、移动或删除),这样就可以在下次启动时创建一个新文件了。</translation>
</message>
<message>
<source>More than one onion bind address is provided. Using %s for the automatically created Tor onion service.</source>
<translation type="unfinished">提供多个洋葱路由绑定地址。对自动创建的洋葱服务用%s</translation>
<translation type="unfinished">提供多个 onion (洋葱路由)绑定地址。对自动创建的Tor onion服务使用%s</translation>
</message>
<message>
<source>No dump file provided. To use createfromdump, -dumpfile=&lt;filename&gt; must be provided.</source>
@@ -514,6 +540,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The block index db contains a legacy 'txindex'. To clear the occupied disk space, run a full -reindex, otherwise ignore this error. This error message will not be displayed again.</source>
<translation type="unfinished"> 'txindex' -reindex </translation>
</message>
<message>
<source>The transaction amount is too small to send after the fee has been deducted</source>
<translation type="unfinished"></translation>
@@ -524,7 +554,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
</message>
<message>
<source>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</source>
<translation type="unfinished"> - 使 - 使</translation>
<translation type="unfinished"> - 使 - 使</translation>
</message>
<message>
<source>This is the maximum transaction fee you pay (in addition to the normal fee) to prioritize partial spend avoidance over regular coin selection.</source>
@@ -586,6 +616,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Cannot resolve -%s address: '%s'</source>
<translation type="unfinished"> - %s : '%s'</translation>
</message>
<message>
<source>Cannot set -forcednsseed to true when setting -dnsseed to false.</source>
<translation type="unfinished"> -dnsseed false -forcednsseed true </translation>
</message>
<message>
<source>Cannot set -peerblockfilters without -blockfilterindex.</source>
<translation type="unfinished">-blockfilterindex-peerblockfilters</translation>
@@ -594,6 +628,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Cannot write to data directory '%s'; check permissions.</source>
<translation type="unfinished">'%s'</translation>
</message>
<message>
<source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
<translation type="unfinished"> -txindex -reindex </translation>
</message>
<message>
<source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
<translation type="unfinished">使(addrman)</translation>
</message>
<message>
<source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
<translation type="unfinished">%s时出错: 编译时未启用外部签名器支持</translation>
</message>
<message>
<source>Config setting for %s only applied on %s network when in [%s] section.</source>
<translation type="unfinished"> %s %s [%s] </translation>
@@ -750,6 +796,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Initialization sanity check failed. %s is shutting down.</source>
<translation type="unfinished">初始化完整性检查失败。%s 即将关闭。</translation>
</message>
<message>
<source>Input not found or already spent</source>
<translation type="unfinished">找不到交易输入项,可能已经被花掉了</translation>
</message>
<message>
<source>Insufficient funds</source>
<translation type="unfinished">金额不足</translation>
@@ -806,10 +856,22 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Loading wallet…</source>
<translation type="unfinished">加载钱包...</translation>
</message>
<message>
<source>Missing amount</source>
<translation type="unfinished">找不到金额</translation>
</message>
<message>
<source>Missing solving data for estimating transaction size</source>
<translation type="unfinished">找不到用于估计交易大小的解答数据</translation>
</message>
<message>
<source>Need to specify a port with -whitebind: '%s'</source>
<translation type="unfinished">-whitebind: '%s' 需要指定一个端口</translation>
</message>
<message>
<source>No addresses available</source>
<translation type="unfinished">没有可用的地址</translation>
</message>
<message>
<source>No proxy server specified. Use -proxy=&lt;ip&gt; or -proxy=&lt;ip:port&gt;.</source>
<translation type="unfinished">未指定代理服务器。请使用 -proxy=&lt;ip&gt; 或 -proxy=&lt;ip:port&gt; 。</translation>
@@ -926,6 +988,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Transaction amounts must not be negative</source>
<translation type="unfinished">交易金额不不可为负数</translation>
</message>
<message>
<source>Transaction change output index out of range</source>
<translation type="unfinished">交易找零输出项编号超出范围</translation>
</message>
<message>
<source>Transaction has too long of a mempool chain</source>
<translation type="unfinished">此交易在内存池中的存在过长的链条</translation>
@@ -934,6 +1000,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Transaction must have at least one recipient</source>
<translation type="unfinished">交易必须包含至少一个收款人</translation>
</message>
<message>
<source>Transaction needs a change address, but we can't generate it.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Transaction too large</source>
<translation type="unfinished"></translation>
@@ -962,6 +1032,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Unable to open %s for writing</source>
<translation type="unfinished">%s用于写入</translation>
</message>
<message>
<source>Unable to parse -maxuploadtarget: '%s'</source>
<translation type="unfinished"> -maxuploadtarget: '%s'</translation>
</message>
<message>
<source>Unable to start HTTP server. See debug log for details.</source>
<translation type="unfinished">HTTP服务</translation>
@@ -1061,6 +1135,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Create a new wallet</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Minimize</source>
<translation type="unfinished">(&amp;M)</translation>
</message>
<message>
<source>Wallet:</source>
<translation type="unfinished">:</translation>
@@ -1209,7 +1287,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<message numerus="yes">
<source>Processed %n block(s) of transaction history.</source>
<translation type="unfinished">
<numerusform />
<numerusform>%n个区块的交易历史</numerusform>
</translation>
</message>
<message>
@@ -1248,6 +1326,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Load Partially Signed Bitcoin Transaction</source>
<translation type="unfinished">PSBT</translation>
</message>
<message>
<source>Load PSBT from &amp;clipboard</source>
<translation type="unfinished">PSBT(&amp;C)...</translation>
</message>
<message>
<source>Load Partially Signed Bitcoin Transaction from clipboard</source>
<translation type="unfinished">PSBT</translation>
@@ -1324,11 +1406,19 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>%1 client</source>
<translation type="unfinished">%1 </translation>
</message>
<message>
<source>&amp;Hide</source>
<translation type="unfinished">(&amp;H)</translation>
</message>
<message>
<source>S&amp;how</source>
<translation type="unfinished">(&amp;H)</translation>
</message>
<message numerus="yes">
<source>%n active connection(s) to Bitcoin network.</source>
<extracomment>A substring of the tooltip.</extracomment>
<translation type="unfinished">
<numerusform />
<numerusform>%n </numerusform>
</translation>
</message>
<message>
@@ -1521,6 +1611,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Copy &amp;amount</source>
<translation type="unfinished">(&amp;A)</translation>
</message>
<message>
<source>Copy transaction &amp;ID and output index</source>
<translation type="unfinished">&amp;ID和输出序号</translation>
</message>
<message>
<source>L&amp;ock unspent</source>
<translation type="unfinished">(&amp;O)</translation>
@@ -1611,6 +1705,19 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<translation type="unfinished">无法列出签名器</translation>
</message>
</context>
<context>
<name>LoadWalletsActivity</name>
<message>
<source>Load Wallets</source>
<extracomment>Title of progress window which is displayed when wallets are being loaded.</extracomment>
<translation type="unfinished">加载钱包</translation>
</message>
<message>
<source>Loading wallets…</source>
<extracomment>Descriptive text of the load wallets progress window which indicates to the user that wallets are currently being loaded.</extracomment>
<translation type="unfinished">加载钱包...</translation>
</message>
</context>
<context>
<name>OpenWalletActivity</name>
<message>
@@ -1815,6 +1922,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Bitcoin</source>
<translation type="unfinished">比特币</translation>
</message>
<message>
<source>%1 GB of space available</source>
<translation type="unfinished">可用空间 %1 GB</translation>
</message>
<message>
<source>(of %1 GB needed)</source>
<translation type="unfinished">(需要 %1 GB)</translation>
@@ -1835,7 +1946,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>(sufficient to restore backups %n day(s) old)</source>
<extracomment>Explanatory text on the capability of the current prune target.</extracomment>
<translation type="unfinished">
<numerusform />
<numerusform>(足以恢复 %n 天之内的备份)</numerusform>
</translation>
</message>
<message>
@@ -2058,14 +2169,44 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Reverting this setting requires re-downloading the entire blockchain.</source>
<translation type="unfinished">警告:还原此设置需要重新下载整个区块链</translation>
</message>
<message>
<source>Maximum database cache size. A larger cache can contribute to faster sync, after which the benefit is less pronounced for most use cases. Lowering the cache size will reduce memory usage. Unused mempool memory is shared for this cache.</source>
<extracomment>Tooltip text for Options window setting that sets the size of the database cache. Explains the corresponding effects of increasing/decreasing this value.</extracomment>
<translation type="unfinished">使使使</translation>
</message>
<message>
<source>Set the number of script verification threads. Negative values correspond to the number of cores you want to leave free to the system.</source>
<extracomment>Tooltip text for Options window setting that sets the number of script verification threads. Explains that negative values mean to leave these many cores free to the system.</extracomment>
<translation type="unfinished">线</translation>
</message>
<message>
<source>(0 = auto, &lt;0 = leave that many cores free)</source>
<translation type="unfinished">(0 = , &lt;0 = CPU核心空闲)</translation>
</message>
<message>
<source>This allows you or a third party tool to communicate with the node through command-line and JSON-RPC commands.</source>
<extracomment>Tooltip text for Options window setting that enables the RPC server.</extracomment>
<translation type="unfinished">JSON-RPC命令行与节点通信</translation>
</message>
<message>
<source>Enable R&amp;PC server</source>
<extracomment>An Options window setting to enable the RPC server.</extracomment>
<translation type="unfinished">R&amp;PC服务器</translation>
</message>
<message>
<source>W&amp;allet</source>
<translation type="unfinished">(&amp;A)</translation>
</message>
<message>
<source>Whether to set subtract fee from amount as default or not.</source>
<extracomment>Tooltip text for Options window setting that sets subtracting the fee from a sending amount as default.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Subtract &amp;fee from amount by default</source>
<extracomment>An Options window setting to set subtracting the fee from a sending amount as default.</extracomment>
<translation type="unfinished">(&amp;F)</translation>
</message>
<message>
<source>Expert</source>
<translation type="unfinished"></translation>
@@ -2082,6 +2223,16 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>&amp;Spend unconfirmed change</source>
<translation type="unfinished">(&amp;S)</translation>
</message>
<message>
<source>Enable &amp;PSBT controls</source>
<extracomment>An options window setting to enable PSBT controls.</extracomment>
<translation type="unfinished">&amp;PSBT控件</translation>
</message>
<message>
<source>Whether to show PSBT controls.</source>
<extracomment>Tooltip text for options window setting that enables PSBT controls.</extracomment>
<translation type="unfinished">PSBT控件</translation>
</message>
<message>
<source>External Signer (e.g. hardware wallet)</source>
<translation type="unfinished">()</translation>
@@ -2186,6 +2337,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Choose the default subdivision unit to show in the interface and when sending coins.</source>
<translation type="unfinished">使</translation>
</message>
<message>
<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 type="unfinished"> %s代表交易哈希线 | </translation>
</message>
<message>
<source>&amp;Third-party transaction URLs</source>
<translation type="unfinished">(&amp;T)</translation>
</message>
<message>
<source>Whether to show coin control features or not.</source>
<translation type="unfinished"></translation>
@@ -2257,6 +2416,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<extracomment>Explanatory text about the priority order of instructions considered by client. The order from high to low being: command-line, configuration file, GUI settings.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Continue</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
@@ -2391,6 +2554,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Failed to sign transaction: %1</source>
<translation type="unfinished">: %1</translation>
</message>
<message>
<source>Cannot sign inputs while wallet is locked.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Could not sign any more inputs.</source>
<translation type="unfinished"></translation>
@@ -2464,6 +2631,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Transaction still needs signature(s).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>(But no wallet is loaded.)</source>
<translation type="unfinished">()</translation>
</message>
<message>
<source>(But this wallet cannot sign transactions.)</source>
<translation type="unfinished">()</translation>
@@ -2715,6 +2886,10 @@ If you are receiving this error you should request the merchant provide a BIP21
<source>Synced Blocks</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Last Transaction</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The mapped Autonomous System used for diversifying peer selection.</source>
<translation type="unfinished"></translation>
@@ -2723,6 +2898,33 @@ If you are receiving this error you should request the merchant provide a BIP21
<source>Mapped AS</source>
<translation type="unfinished">AS</translation>
</message>
<message>
<source>Whether we relay addresses to this peer.</source>
<extracomment>Tooltip text for the Address Relay field in the peer details area.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Address Relay</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Total number of addresses processed, excluding those dropped due to rate-limiting.</source>
<extracomment>Tooltip text for the Addresses Processed field in the peer details area.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Addresses Processed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Total number of addresses dropped due to rate-limiting.</source>
<extracomment>Tooltip text for the Addresses Rate-Limited field in the peer details area.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Addresses Rate-Limited</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>User Agent</source>
<translation type="unfinished"></translation>
@@ -2931,6 +3133,11 @@ If you are receiving this error you should request the merchant provide a BIP21
<source>1 &amp;year</source>
<translation type="unfinished">1 (&amp;Y)</translation>
</message>
<message>
<source>&amp;Copy IP/Netmask</source>
<extracomment>Context menu action to copy the IP/Netmask of a banned peer. IP/Netmask is the combination of a peer's IP address and its Netmask. For IP address, see: https://en.wikipedia.org/wiki/IP_address.</extracomment>
<translation type="unfinished">复制IP/网络掩码(&amp;C)</translation>
</message>
<message>
<source>&amp;Unban</source>
<translation type="unfinished">解封(&amp;U)</translation>
@@ -3459,6 +3666,16 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
<extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can only create a PSBT. This string is displayed when private keys are disabled and an external signer is not available.</extracomment>
<translation type="unfinished">请务必仔细检查您的交易请求。这会产生一个部分签名比特币交易(PSBT),可以把保存下来或复制出去,然后就可以对它进行签名,比如用离线%1钱包或是用兼容PSBT的硬件钱包。</translation>
</message>
<message>
<source>Do you want to create this transaction?</source>
<extracomment>Message displayed when attempting to create a transaction. Cautionary text to prompt the user to verify that the displayed transaction details represent the transaction the user intends to create.</extracomment>
<translation type="unfinished">要创建这笔交易吗?</translation>
</message>
<message>
<source>Please, review your transaction. You can create and send this transaction or create a Partially Signed Bitcoin Transaction (PSBT), which you can save or copy and then sign with, e.g., an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
<extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can send their transaction or create a PSBT. This string is displayed when both private keys and PSBT controls are enabled.</extracomment>
<translation type="unfinished">请务必仔细检查您的交易。你可以创建并发送这笔交易;也可以创建一个“部分签名比特币交易(PSBT)”,它可以被保存下来或被复制出去,然后就可以对它进行签名,比如用离线%1钱包或是用兼容PSBT的硬件钱包。</translation>
</message>
<message>
<source>Please, review your transaction.</source>
<extracomment>Text to prompt a user to review the details of the transaction they are attempting to send.</extracomment>
@@ -3519,7 +3736,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
<message numerus="yes">
<source>Estimated to begin confirmation within %n block(s).</source>
<translation type="unfinished">
<numerusform />
<numerusform>预计可在%n个区块内开始确认。</numerusform>
</translation>
</message>
<message>
@@ -3778,7 +3995,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
<source>(press q to shutdown and continue later)</source>
<translation type="unfinished">(q退出并在以后继续)</translation>
</message>
</context>
<message>
<source>press q to shutdown</source>
<translation type="unfinished">q键关闭并退出</translation>
</message>
</context>
<context>
<name>TransactionDesc</name>
<message>
@@ -3856,7 +4077,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
<message numerus="yes">
<source>matures in %n more block(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform> %n </numerusform>
</translation>
</message>
<message>
@@ -4152,6 +4373,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
<source>&amp;Edit address label</source>
<translation type="unfinished">编辑地址标签(&amp;E)</translation>
</message>
<message>
<source>Show in %1</source>
<extracomment>Transactions table context menu action to show the selected transaction in a third-party block explorer. %1 is a stand-in argument for the URL of the explorer.</extracomment>
<translation type="unfinished">在%1中显示</translation>
</message>
<message>
<source>Export Transaction History</source>
<translation type="unfinished">导出交易历史</translation>

View File

@@ -267,6 +267,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Enter a Bitcoin address (e.g. %1)</source>
<translation type="unfinished"> ( %1)</translation>
</message>
<message>
<source>Unroutable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Inbound</source>
<extracomment>An inbound connection from a peer. An inbound connection is a connection initiated by a peer.</extracomment>
@@ -832,6 +836,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Encrypt the private keys that belong to your wallet</source>
<translation type="unfinished">將錢包中之密鑰加密</translation>
</message>
<message>
<source>&amp;Backup Wallet…</source>
<translation type="unfinished">&amp;备用钱包...</translation>
</message>
<message>
<source>Sign messages with your Bitcoin addresses to prove you own them</source>
<translation type="unfinished">用比特幣地址簽名訊息來證明位址是你的</translation>
@@ -840,6 +848,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Verify messages to ensure they were signed with specified Bitcoin addresses</source>
<translation type="unfinished">驗證訊息是用來確定訊息是用指定的比特幣地址簽名的</translation>
</message>
<message>
<source>Close Wallet…</source>
<translation type="unfinished">关钱包...</translation>
</message>
<message>
<source>Create Wallet…</source>
<translation type="unfinished">创建钱包...</translation>
</message>
<message>
<source>Close All Wallets…</source>
<translation type="unfinished">关所有钱包...</translation>
</message>
<message>
<source>&amp;File</source>
<translation type="unfinished">&amp;檔案</translation>
@@ -856,6 +876,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Tabs toolbar</source>
<translation type="unfinished">分頁工具列</translation>
</message>
<message>
<source>Connecting to peers…</source>
<translation type="unfinished">连到同行...</translation>
</message>
<message>
<source>Request payments (generates QR codes and bitcoin: URIs)</source>
<translation type="unfinished">要求付款(產生 QR Code 和 bitcoin 付款協議的資源識別碼: URI)</translation>
@@ -882,6 +906,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>%1 behind</source>
<translation type="unfinished">落後 %1</translation>
</message>
<message>
<source>Catching up…</source>
<translation type="unfinished">赶上...</translation>
</message>
<message>
<source>Last received block was generated %1 ago.</source>
<translation type="unfinished">最近收到的區塊是在 %1 以前生出來的。</translation>
@@ -986,6 +1014,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>%1 client</source>
<translation type="unfinished">%1 客戶端</translation>
</message>
<message>
<source>&amp;Hide</source>
<translation type="unfinished">&amp;躲</translation>
</message>
<message numerus="yes">
<source>%n active connection(s) to Bitcoin network.</source>
<extracomment>A substring of the tooltip.</extracomment>
@@ -1151,6 +1183,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Copy amount</source>
<translation type="unfinished">複製金額</translation>
</message>
<message>
<source>&amp;Copy address</source>
<translation type="unfinished">&amp;复制地址</translation>
</message>
<message>
<source>Copy &amp;label</source>
<translation type="unfinished">复制和标签</translation>
</message>
<message>
<source>Copy &amp;amount</source>
<translation type="unfinished">复制和数量</translation>
</message>
<message>
<source>Copy quantity</source>
<translation type="unfinished">複製數目</translation>
@@ -1502,6 +1546,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Number of blocks left</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unknown</source>
<translation type="unfinished">...</translation>
</message>
<message>
<source>calculating</source>
<translation type="unfinished">...</translation>
</message>
<message>
<source>Last block time</source>
<translation type="unfinished"></translation>
@@ -1763,6 +1815,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<extracomment>Explanatory text about the priority order of instructions considered by client. The order from high to low being: command-line, configuration file, GUI settings.</extracomment>
<translation type="unfinished">使</translation>
</message>
<message>
<source>Continue</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
@@ -1881,6 +1937,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Copy to Clipboard</source>
<translation type="unfinished">簿</translation>
</message>
<message>
<source>Save</source>
<translation type="unfinished">...</translation>
</message>
<message>
<source>Close</source>
<translation type="unfinished"></translation>
@@ -1989,6 +2049,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<extracomment>Title of Peers Table column which indicates the current latency of the connection with the peer.</extracomment>
<translation type="unfinished">Ping 時間</translation>
</message>
<message>
<source>Peer</source>
<extracomment>Title of Peers Table column which contains a unique number used to identify a connection.</extracomment>
<translation type="unfinished">同行</translation>
</message>
<message>
<source>Direction</source>
<extracomment>Title of Peers Table column which indicates the direction the peer connection was initiated from.</extracomment>
@@ -2275,6 +2340,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Out:</source>
<translation type="unfinished">去:</translation>
</message>
<message>
<source>&amp;Copy address</source>
<extracomment>Context menu action to copy the address of a peer.</extracomment>
<translation type="unfinished">&amp;复制地址</translation>
</message>
<message>
<source>&amp;Disconnect</source>
<translation type="unfinished">斷線(&amp;D)</translation>
@@ -2410,6 +2480,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Copy &amp;URI</source>
<translation type="unfinished">複製 &amp;URI</translation>
</message>
<message>
<source>&amp;Copy address</source>
<translation type="unfinished">&amp;复制地址</translation>
</message>
<message>
<source>Copy &amp;label</source>
<translation type="unfinished">复制和标签</translation>
</message>
<message>
<source>Copy &amp;amount</source>
<translation type="unfinished">复制和数量</translation>
</message>
<message>
<source>Could not unlock wallet.</source>
<translation type="unfinished">沒辦法把錢包解鎖。</translation>
@@ -3336,6 +3418,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Min amount</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Copy address</source>
<translation type="unfinished">&amp;</translation>
</message>
<message>
<source>Copy &amp;label</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy &amp;amount</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export Transaction History</source>
<translation type="unfinished"></translation>

View File

@@ -151,8 +151,11 @@ void OptionsModel::Init(bool resetSettings)
if (!settings.contains("fListen"))
settings.setValue("fListen", DEFAULT_LISTEN);
if (!gArgs.SoftSetBoolArg("-listen", settings.value("fListen").toBool()))
if (!gArgs.SoftSetBoolArg("-listen", settings.value("fListen").toBool())) {
addOverriddenOption("-listen");
} else if (!settings.value("fListen").toBool()) {
gArgs.SoftSetBoolArg("-listenonion", false);
}
if (!settings.contains("server")) {
settings.setValue("server", false);

View File

@@ -401,6 +401,80 @@ bool SendCoinsDialog::PrepareSendText(QString& question_string, QString& informa
return true;
}
void SendCoinsDialog::presentPSBT(PartiallySignedTransaction& psbtx)
{
// Serialize the PSBT
CDataStream ssTx(SER_NETWORK, PROTOCOL_VERSION);
ssTx << psbtx;
GUIUtil::setClipboard(EncodeBase64(ssTx.str()).c_str());
QMessageBox msgBox;
msgBox.setText("Unsigned Transaction");
msgBox.setInformativeText("The PSBT has been copied to the clipboard. You can also save it.");
msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard);
msgBox.setDefaultButton(QMessageBox::Discard);
switch (msgBox.exec()) {
case QMessageBox::Save: {
QString selectedFilter;
QString fileNameSuggestion = "";
bool first = true;
for (const SendCoinsRecipient &rcp : m_current_transaction->getRecipients()) {
if (!first) {
fileNameSuggestion.append(" - ");
}
QString labelOrAddress = rcp.label.isEmpty() ? rcp.address : rcp.label;
QString amount = BitcoinUnits::formatWithUnit(model->getOptionsModel()->getDisplayUnit(), rcp.amount);
fileNameSuggestion.append(labelOrAddress + "-" + amount);
first = false;
}
fileNameSuggestion.append(".psbt");
QString filename = GUIUtil::getSaveFileName(this,
tr("Save Transaction Data"), fileNameSuggestion,
//: Expanded name of the binary PSBT file format. See: BIP 174.
tr("Partially Signed Transaction (Binary)") + QLatin1String(" (*.psbt)"), &selectedFilter);
if (filename.isEmpty()) {
return;
}
std::ofstream out{filename.toLocal8Bit().data(), std::ofstream::out | std::ofstream::binary};
out << ssTx.str();
out.close();
Q_EMIT message(tr("PSBT saved"), "PSBT saved to disk", CClientUIInterface::MSG_INFORMATION);
break;
}
case QMessageBox::Discard:
break;
default:
assert(false);
} // msgBox.exec()
}
bool SendCoinsDialog::signWithExternalSigner(PartiallySignedTransaction& psbtx, CMutableTransaction& mtx, bool& complete) {
TransactionError err;
try {
err = model->wallet().fillPSBT(SIGHASH_ALL, /*sign=*/true, /*bip32derivs=*/true, /*n_signed=*/nullptr, psbtx, complete);
} catch (const std::runtime_error& e) {
QMessageBox::critical(nullptr, tr("Sign failed"), e.what());
return false;
}
if (err == TransactionError::EXTERNAL_SIGNER_NOT_FOUND) {
//: "External signer" means using devices such as hardware wallets.
QMessageBox::critical(nullptr, tr("External signer not found"), "External signer not found");
return false;
}
if (err == TransactionError::EXTERNAL_SIGNER_FAILED) {
//: "External signer" means using devices such as hardware wallets.
QMessageBox::critical(nullptr, tr("External signer failure"), "External signer failure");
return false;
}
if (err != TransactionError::OK) {
tfm::format(std::cerr, "Failed to sign PSBT");
processSendCoinsReturn(WalletModel::TransactionCreationFailed);
return false;
}
// fillPSBT does not always properly finalize
complete = FinalizeAndExtractPSBT(psbtx, mtx);
return true;
}
void SendCoinsDialog::sendButtonClicked([[maybe_unused]] bool checked)
{
if(!model || !model->getOptionsModel())
@@ -411,7 +485,9 @@ void SendCoinsDialog::sendButtonClicked([[maybe_unused]] bool checked)
assert(m_current_transaction);
const QString confirmation = tr("Confirm send coins");
auto confirmationDialog = new SendConfirmationDialog(confirmation, question_string, informative_text, detailed_text, SEND_CONFIRM_DELAY, !model->wallet().privateKeysDisabled(), model->getOptionsModel()->getEnablePSBTControls(), this);
const bool enable_send{!model->wallet().privateKeysDisabled() || model->wallet().hasExternalSigner()};
const bool always_show_unsigned{model->getOptionsModel()->getEnablePSBTControls()};
auto confirmationDialog = new SendConfirmationDialog(confirmation, question_string, informative_text, detailed_text, SEND_CONFIRM_DELAY, enable_send, always_show_unsigned, this);
confirmationDialog->setAttribute(Qt::WA_DeleteOnClose);
// TODO: Replace QDialog::exec() with safer QDialog::show().
const auto retval = static_cast<QMessageBox::StandardButton>(confirmationDialog->exec());
@@ -424,49 +500,50 @@ void SendCoinsDialog::sendButtonClicked([[maybe_unused]] bool checked)
bool send_failure = false;
if (retval == QMessageBox::Save) {
// "Create Unsigned" clicked
CMutableTransaction mtx = CMutableTransaction{*(m_current_transaction->getWtx())};
PartiallySignedTransaction psbtx(mtx);
bool complete = false;
// Always fill without signing first. This prevents an external signer
// from being called prematurely and is not expensive.
TransactionError err = model->wallet().fillPSBT(SIGHASH_ALL, false /* sign */, true /* bip32derivs */, nullptr, psbtx, complete);
// Fill without signing
TransactionError err = model->wallet().fillPSBT(SIGHASH_ALL, /*sign=*/false, /*bip32derivs=*/true, /*n_signed=*/nullptr, psbtx, complete);
assert(!complete);
assert(err == TransactionError::OK);
// Copy PSBT to clipboard and offer to save
presentPSBT(psbtx);
} else {
// "Send" clicked
assert(!model->wallet().privateKeysDisabled() || model->wallet().hasExternalSigner());
bool broadcast = true;
if (model->wallet().hasExternalSigner()) {
try {
err = model->wallet().fillPSBT(SIGHASH_ALL, true /* sign */, true /* bip32derivs */, nullptr, psbtx, complete);
} catch (const std::runtime_error& e) {
QMessageBox::critical(nullptr, tr("Sign failed"), e.what());
send_failure = true;
return;
CMutableTransaction mtx = CMutableTransaction{*(m_current_transaction->getWtx())};
PartiallySignedTransaction psbtx(mtx);
bool complete = false;
// Always fill without signing first. This prevents an external signer
// from being called prematurely and is not expensive.
TransactionError err = model->wallet().fillPSBT(SIGHASH_ALL, /*sign=*/false, /*bip32derivs=*/true, /*n_signed=*/nullptr, psbtx, complete);
assert(!complete);
assert(err == TransactionError::OK);
send_failure = !signWithExternalSigner(psbtx, mtx, complete);
// Don't broadcast when user rejects it on the device or there's a failure:
broadcast = complete && !send_failure;
if (!send_failure) {
// A transaction signed with an external signer is not always complete,
// e.g. in a multisig wallet.
if (complete) {
// Prepare transaction for broadcast transaction if complete
const CTransactionRef tx = MakeTransactionRef(mtx);
m_current_transaction->setWtx(tx);
} else {
presentPSBT(psbtx);
}
}
if (err == TransactionError::EXTERNAL_SIGNER_NOT_FOUND) {
//: "External signer" means using devices such as hardware wallets.
QMessageBox::critical(nullptr, tr("External signer not found"), "External signer not found");
send_failure = true;
return;
}
if (err == TransactionError::EXTERNAL_SIGNER_FAILED) {
//: "External signer" means using devices such as hardware wallets.
QMessageBox::critical(nullptr, tr("External signer failure"), "External signer failure");
send_failure = true;
return;
}
if (err != TransactionError::OK) {
tfm::format(std::cerr, "Failed to sign PSBT");
processSendCoinsReturn(WalletModel::TransactionCreationFailed);
send_failure = true;
return;
}
// fillPSBT does not always properly finalize
complete = FinalizeAndExtractPSBT(psbtx, mtx);
}
// Broadcast transaction if complete (even with an external signer this
// is not always the case, e.g. in a multisig wallet).
if (complete) {
const CTransactionRef tx = MakeTransactionRef(mtx);
m_current_transaction->setWtx(tx);
// Broadcast the transaction, unless an external signer was used and it
// failed, or more signatures are needed.
if (broadcast) {
// now send the prepared transaction
WalletModel::SendCoinsReturn sendStatus = model->sendCoins(*m_current_transaction);
// process sendStatus and on error generate message shown to user
processSendCoinsReturn(sendStatus);
@@ -476,64 +553,6 @@ void SendCoinsDialog::sendButtonClicked([[maybe_unused]] bool checked)
} else {
send_failure = true;
}
return;
}
// Copy PSBT to clipboard and offer to save
assert(!complete);
// Serialize the PSBT
CDataStream ssTx(SER_NETWORK, PROTOCOL_VERSION);
ssTx << psbtx;
GUIUtil::setClipboard(EncodeBase64(ssTx.str()).c_str());
QMessageBox msgBox;
msgBox.setText("Unsigned Transaction");
msgBox.setInformativeText("The PSBT has been copied to the clipboard. You can also save it.");
msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard);
msgBox.setDefaultButton(QMessageBox::Discard);
switch (msgBox.exec()) {
case QMessageBox::Save: {
QString selectedFilter;
QString fileNameSuggestion = "";
bool first = true;
for (const SendCoinsRecipient &rcp : m_current_transaction->getRecipients()) {
if (!first) {
fileNameSuggestion.append(" - ");
}
QString labelOrAddress = rcp.label.isEmpty() ? rcp.address : rcp.label;
QString amount = BitcoinUnits::formatWithUnit(model->getOptionsModel()->getDisplayUnit(), rcp.amount);
fileNameSuggestion.append(labelOrAddress + "-" + amount);
first = false;
}
fileNameSuggestion.append(".psbt");
QString filename = GUIUtil::getSaveFileName(this,
tr("Save Transaction Data"), fileNameSuggestion,
//: Expanded name of the binary PSBT file format. See: BIP 174.
tr("Partially Signed Transaction (Binary)") + QLatin1String(" (*.psbt)"), &selectedFilter);
if (filename.isEmpty()) {
return;
}
std::ofstream out{filename.toLocal8Bit().data(), std::ofstream::out | std::ofstream::binary};
out << ssTx.str();
out.close();
Q_EMIT message(tr("PSBT saved"), "PSBT saved to disk", CClientUIInterface::MSG_INFORMATION);
break;
}
case QMessageBox::Discard:
break;
default:
assert(false);
} // msgBox.exec()
} else {
assert(!model->wallet().privateKeysDisabled());
// now send the prepared transaction
WalletModel::SendCoinsReturn sendStatus = model->sendCoins(*m_current_transaction);
// process sendStatus and on error generate message shown to user
processSendCoinsReturn(sendStatus);
if (sendStatus.status == WalletModel::OK) {
Q_EMIT coinsSent(m_current_transaction->getWtx()->GetHash());
} else {
send_failure = true;
}
}
if (!send_failure) {

View File

@@ -70,6 +70,8 @@ private:
bool fFeeMinimized;
const PlatformStyle *platformStyle;
// Copy PSBT to clipboard and offer to save it.
void presentPSBT(PartiallySignedTransaction& psbt);
// Process WalletModel::SendCoinsReturn and generate a pair consisting
// of a message and message flags for use in Q_EMIT message().
// Additional parameter msgArg can be used via .arg(msgArg).
@@ -77,6 +79,15 @@ private:
void minimizeFeeSection(bool fMinimize);
// Format confirmation message
bool PrepareSendText(QString& question_string, QString& informative_text, QString& detailed_text);
/* Sign PSBT using external signer.
*
* @param[in,out] psbtx the PSBT to sign
* @param[in,out] mtx needed to attempt to finalize
* @param[in,out] complete whether the PSBT is complete (a successfully signed multisig transaction may not be complete)
*
* @returns false if any failure occurred, which may include the user rejection of a transaction on the device.
*/
bool signWithExternalSigner(PartiallySignedTransaction& psbt, CMutableTransaction& mtx, bool& complete);
void updateFeeMinimizedLabel();
void updateCoinControlState();
@@ -117,6 +128,8 @@ class SendConfirmationDialog : public QMessageBox
public:
SendConfirmationDialog(const QString& title, const QString& text, const QString& informative_text = "", const QString& detailed_text = "", int secDelay = SEND_CONFIRM_DELAY, bool enable_send = true, bool always_show_unsigned = true, QWidget* parent = nullptr);
/* Returns QMessageBox::Cancel, QMessageBox::Yes when "Send" is
clicked and QMessageBox::Save when "Create Unsigned" is clicked. */
int exec() override;
private Q_SLOTS:

View File

@@ -0,0 +1,31 @@
// Copyright (c) 2018 The Bitcoin Core developers
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include <qt/bitcoin.h>
#include <qt/test/optiontests.h>
#include <test/util/setup_common.h>
#include <util/system.h>
#include <QSettings>
#include <QTest>
#include <univalue.h>
//! Entry point for BitcoinApplication tests.
void OptionTests::optionTests()
{
// Test regression https://github.com/bitcoin/bitcoin/issues/24457. Ensure
// that setting integer prune value doesn't cause an exception to be thrown
// in the OptionsModel constructor
gArgs.LockSettings([&](util::Settings& settings) {
settings.forced_settings.erase("prune");
settings.rw_settings["prune"] = 3814;
});
gArgs.WriteSettingsFile();
OptionsModel{};
gArgs.LockSettings([&](util::Settings& settings) {
settings.rw_settings.erase("prune");
});
gArgs.WriteSettingsFile();
}

25
src/qt/test/optiontests.h Normal file
View File

@@ -0,0 +1,25 @@
// Copyright (c) 2019 The Bitcoin Core developers
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_QT_TEST_OPTIONTESTS_H
#define BITCOIN_QT_TEST_OPTIONTESTS_H
#include <qt/optionsmodel.h>
#include <QObject>
class OptionTests : public QObject
{
Q_OBJECT
public:
explicit OptionTests(interfaces::Node& node) : m_node(node) {}
private Q_SLOTS:
void optionTests();
private:
interfaces::Node& m_node;
};
#endif // BITCOIN_QT_TEST_OPTIONTESTS_H

View File

@@ -10,6 +10,7 @@
#include <interfaces/node.h>
#include <qt/bitcoin.h>
#include <qt/test/apptests.h>
#include <qt/test/optiontests.h>
#include <qt/test/rpcnestedtests.h>
#include <qt/test/uritests.h>
#include <test/util/setup_common.h>
@@ -89,6 +90,10 @@ int main(int argc, char* argv[])
if (QTest::qExec(&app_tests) != 0) {
fInvalid = true;
}
OptionTests options_tests(app.node());
if (QTest::qExec(&options_tests) != 0) {
fInvalid = true;
}
URITests test1;
if (QTest::qExec(&test1) != 0) {
fInvalid = true;

View File

@@ -1481,7 +1481,7 @@ static void SoftForkDescPushBack(const CBlockIndex* blockindex, UniValue& softfo
// BIP9 status
bip9.pushKV("status", get_state_name(current_state));
bip9.pushKV("since", g_versionbitscache.StateSinceHeight(blockindex->pprev, consensusParams, id));
bip9.pushKV("status-next", get_state_name(next_state));
bip9.pushKV("status_next", get_state_name(next_state));
// BIP9 signalling status, if applicable
if (has_signal) {
@@ -1623,7 +1623,7 @@ const std::vector<RPCResult> RPCHelpForDeployment{
{RPCResult::Type::NUM, "min_activation_height", "minimum height of blocks for which the rules may be enforced"},
{RPCResult::Type::STR, "status", "status of deployment at specified block (one of \"defined\", \"started\", \"locked_in\", \"active\", \"failed\")"},
{RPCResult::Type::NUM, "since", "height of the first block to which the status applies"},
{RPCResult::Type::STR, "status-next", "status of deployment at the next block"},
{RPCResult::Type::STR, "status_next", "status of deployment at the next block"},
{RPCResult::Type::OBJ, "statistics", /*optional=*/true, "numeric statistics about signalling for a softfork (only for \"started\" and \"locked_in\" status)",
{
{RPCResult::Type::NUM, "period", "the length in blocks of the signalling period"},

View File

@@ -1121,6 +1121,7 @@ static RPCHelpMan decodepsbt()
{RPCResult::Type::OBJ, "scriptPubKey", "",
{
{RPCResult::Type::STR, "asm", "The asm"},
{RPCResult::Type::STR, "desc", "Inferred descriptor for the output"},
{RPCResult::Type::STR_HEX, "hex", "The hex"},
{RPCResult::Type::STR, "type", "The type, eg 'pubkeyhash'"},
{RPCResult::Type::STR, "address", /*optional=*/true, "The Bitcoin address (only if a well-defined address exists)"},

View File

@@ -3,6 +3,8 @@
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include <test/util/setup_common.h>
#include <univalue.h>
#include <util/settings.h>
#include <util/strencodings.h>
#include <util/system.h>
@@ -41,6 +43,116 @@ void SetupArgs(ArgsManager& local_args, const std::vector<std::pair<std::string,
}
}
// Test behavior of GetArg functions when string, integer, and boolean types
// are specified in the settings.json file. GetArg functions are convenience
// functions. The GetSetting method can always be used instead of GetArg
// methods to retrieve original values, and there's not always an objective
// answer to what GetArg behavior is best in every case. This test makes sure
// there's test coverage for whatever the current behavior is, so it's not
// broken or changed unintentionally.
BOOST_AUTO_TEST_CASE(setting_args)
{
ArgsManager args;
SetupArgs(args, {{"-foo", ArgsManager::ALLOW_ANY}});
auto set_foo = [&](const util::SettingsValue& value) {
args.LockSettings([&](util::Settings& settings) {
settings.rw_settings["foo"] = value;
});
};
set_foo("str");
BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "\"str\"");
BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "str");
BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 0);
BOOST_CHECK_EQUAL(args.GetBoolArg("foo", true), false);
BOOST_CHECK_EQUAL(args.GetBoolArg("foo", false), false);
set_foo("99");
BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "\"99\"");
BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "99");
BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 99);
BOOST_CHECK_EQUAL(args.GetBoolArg("foo", true), true);
BOOST_CHECK_EQUAL(args.GetBoolArg("foo", false), true);
set_foo("3.25");
BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "\"3.25\"");
BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "3.25");
BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 3);
BOOST_CHECK_EQUAL(args.GetBoolArg("foo", true), true);
BOOST_CHECK_EQUAL(args.GetBoolArg("foo", false), true);
set_foo("0");
BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "\"0\"");
BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "0");
BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 0);
BOOST_CHECK_EQUAL(args.GetBoolArg("foo", true), false);
BOOST_CHECK_EQUAL(args.GetBoolArg("foo", false), false);
set_foo("");
BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "\"\"");
BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "");
BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 0);
BOOST_CHECK_EQUAL(args.GetBoolArg("foo", true), true);
BOOST_CHECK_EQUAL(args.GetBoolArg("foo", false), true);
set_foo(99);
BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "99");
BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "99");
BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 99);
BOOST_CHECK_THROW(args.GetBoolArg("foo", true), std::runtime_error);
BOOST_CHECK_THROW(args.GetBoolArg("foo", false), std::runtime_error);
set_foo(3.25);
BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "3.25");
BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "3.25");
BOOST_CHECK_THROW(args.GetIntArg("foo", 100), std::runtime_error);
BOOST_CHECK_THROW(args.GetBoolArg("foo", true), std::runtime_error);
BOOST_CHECK_THROW(args.GetBoolArg("foo", false), std::runtime_error);
set_foo(0);
BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "0");
BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "0");
BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 0);
BOOST_CHECK_THROW(args.GetBoolArg("foo", true), std::runtime_error);
BOOST_CHECK_THROW(args.GetBoolArg("foo", false), std::runtime_error);
set_foo(true);
BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "true");
BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "1");
BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 1);
BOOST_CHECK_EQUAL(args.GetBoolArg("foo", true), true);
BOOST_CHECK_EQUAL(args.GetBoolArg("foo", false), true);
set_foo(false);
BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "false");
BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "0");
BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 0);
BOOST_CHECK_EQUAL(args.GetBoolArg("foo", true), false);
BOOST_CHECK_EQUAL(args.GetBoolArg("foo", false), false);
set_foo(UniValue::VOBJ);
BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "{}");
BOOST_CHECK_THROW(args.GetArg("foo", "default"), std::runtime_error);
BOOST_CHECK_THROW(args.GetIntArg("foo", 100), std::runtime_error);
BOOST_CHECK_THROW(args.GetBoolArg("foo", true), std::runtime_error);
BOOST_CHECK_THROW(args.GetBoolArg("foo", false), std::runtime_error);
set_foo(UniValue::VARR);
BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "[]");
BOOST_CHECK_THROW(args.GetArg("foo", "default"), std::runtime_error);
BOOST_CHECK_THROW(args.GetIntArg("foo", 100), std::runtime_error);
BOOST_CHECK_THROW(args.GetBoolArg("foo", true), std::runtime_error);
BOOST_CHECK_THROW(args.GetBoolArg("foo", false), std::runtime_error);
set_foo(UniValue::VNULL);
BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "null");
BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "default");
BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 100);
BOOST_CHECK_EQUAL(args.GetBoolArg("foo", true), true);
BOOST_CHECK_EQUAL(args.GetBoolArg("foo", false), false);
}
BOOST_AUTO_TEST_CASE(boolarg)
{
ArgsManager local_args;

View File

@@ -12,7 +12,16 @@
// For details see https://github.com/bitcoin/bitcoin/pull/22348.
#define __kernel_entry
#endif
#if defined(__GNUC__)
// Boost 1.78 requires the following workaround.
// See: https://github.com/boostorg/process/issues/235
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wnarrowing"
#endif
#include <boost/process.hpp>
#if defined(__GNUC__)
#pragma GCC diagnostic pop
#endif
#endif // ENABLE_EXTERNAL_SIGNER
#include <boost/test/unit_test.hpp>

View File

@@ -592,6 +592,8 @@ public:
allowed_syscalls.insert(__NR_getcwd); // get current working directory
allowed_syscalls.insert(__NR_getdents); // get directory entries
allowed_syscalls.insert(__NR_getdents64); // get directory entries
allowed_syscalls.insert(__NR_inotify_rm_watch);// remove an existing watch from an inotify instance
allowed_syscalls.insert(__NR_linkat); // create relative to a directory file descriptor
allowed_syscalls.insert(__NR_lstat); // get file status
allowed_syscalls.insert(__NR_mkdir); // create a directory
allowed_syscalls.insert(__NR_newfstatat); // get file status

View File

@@ -6,7 +6,16 @@
#include <util/system.h>
#ifdef ENABLE_EXTERNAL_SIGNER
#if defined(__GNUC__)
// Boost 1.78 requires the following workaround.
// See: https://github.com/boostorg/process/issues/235
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wnarrowing"
#endif
#include <boost/process.hpp>
#if defined(__GNUC__)
#pragma GCC diagnostic pop
#endif
#endif // ENABLE_EXTERNAL_SIGNER
#include <chainparamsbase.h>
@@ -588,7 +597,7 @@ bool ArgsManager::IsArgNegated(const std::string& strArg) const
std::string ArgsManager::GetArg(const std::string& strArg, const std::string& strDefault) const
{
const util::SettingsValue value = GetSetting(strArg);
return value.isNull() ? strDefault : value.isFalse() ? "0" : value.isTrue() ? "1" : value.get_str();
return value.isNull() ? strDefault : value.isFalse() ? "0" : value.isTrue() ? "1" : value.isNum() ? value.getValStr() : value.get_str();
}
int64_t ArgsManager::GetIntArg(const std::string& strArg, int64_t nDefault) const

View File

@@ -200,7 +200,7 @@ class BlockchainTest(BitcoinTestFramework):
'timeout': 0x7fffffffffffffff, # testdummy does not have a timeout so is set to the max int64 value
'min_activation_height': 0,
'status': 'started',
'status-next': status_next,
'status_next': status_next,
'since': 144,
'statistics': {
'period': 144,
@@ -220,7 +220,7 @@ class BlockchainTest(BitcoinTestFramework):
'timeout': 9223372036854775807,
'min_activation_height': 0,
'status': 'active',
'status-next': 'active',
'status_next': 'active',
'since': 0,
},
'height': 0,