Compare commits

...

67 Commits
master ... 27.x

Author SHA1 Message Date
merge-script 0cbdc6b380
Merge bitcoin/bitcoin#30467: [27.x] More backports
4f23c86364 [WIP] doc: update release notes for 27.x (fanquake)
54bb9b0541 test: add test for modififed walletprocesspsbt calls (willcl-ark)
f22b9ca70c wallet: fix FillPSBT errantly showing as complete (willcl-ark)
05192ba84c init: change shutdown order of load block thread and scheduler (Martin Zumsande)
ab42206652 Reapply "test: p2p: check that connecting to ourself leads to disconnect" (Sebastian Falbesoner)
064f214673 net: prevent sending messages in `NetEventsInterface::InitializeNode` (Sebastian Falbesoner)
0933cf53b4 net: fix race condition in self-connect detection (Sebastian Falbesoner)
fa90989503 psbt: Check non witness utxo outpoint early (Ava Chow)

Pull request description:

  Backports:
  * https://github.com/bitcoin/bitcoin/pull/29855
  * https://github.com/bitcoin/bitcoin/pull/30357
  * https://github.com/bitcoin/bitcoin/pull/30394 (modified test commit)
  * https://github.com/bitcoin/bitcoin/pull/30435

ACKs for top commit:
  stickies-v:
    ACK 4f23c86364
  willcl-ark:
    ACK 4f23c86364

Tree-SHA512: 5c26445f0855f9d14890369ce19873b0686804eeb659e7d6da36a6f404f64d019436e1e6471579eaa60a96ebf8f64311883b4aef9d0ed528a95bd610c101c079
2024-07-24 10:31:55 +01:00
fanquake 4f23c86364
[WIP] doc: update release notes for 27.x 2024-07-23 15:47:06 +01:00
willcl-ark 54bb9b0541
test: add test for modififed walletprocesspsbt calls
This test checks that we can successfully process PSBTs and opt out of
finalization.

Previously trying to call `walletprocesspsbt` would attempt to
auto-finalize (as a convenience), and would not permit opt-out of
finalization, instead aborting via `CHECK_NONFATAL`.

Github-Pull: #30357
Rebased-From: 7e36dca657
2024-07-17 11:27:03 +01:00
willcl-ark f22b9ca70c
wallet: fix FillPSBT errantly showing as complete
Fix cases of calls to `FillPSBT` returning `complete=true` when it's not
the case.

This can happen when some inputs have been signed but the transaction is
subsequently modified, e.g. in the context of PayJoins.

Also fixes a related bug where a finalized hex string is attempted to be
added during `walletprocesspsbt` but a CHECK_NONFATAL causes an abort.

Reported in #30077.

Github-Pull: #30357
Rebased-From: 39cea21ec5
2024-07-17 11:27:03 +01:00
Martin Zumsande 05192ba84c
init: change shutdown order of load block thread and scheduler
This avoids situations during a reindex in which shutdown
doesn't finish since SyncWithValidationInterfaceQueue is
called by the load block thread when the scheduler is already stopped.

Github-Pull: #30435
Rebased-From: 5fd4836019
2024-07-17 11:27:03 +01:00
Sebastian Falbesoner ab42206652
Reapply "test: p2p: check that connecting to ourself leads to disconnect"
This reverts commit 9ec2c53701 with
a tiny change included (identation of the wait_until call).

Github-Pull: #30394
Rebased-From: 16bd283b3a
2024-07-17 11:27:03 +01:00
Sebastian Falbesoner 064f214673
net: prevent sending messages in `NetEventsInterface::InitializeNode`
Now that the queueing of the VERSION messages has been moved out of
`InitializeNode`, there is no need to pass a mutable `CNode` reference any
more. With a const reference, trying to send messages in this method would
lead to a compile-time error, e.g.:

----------------------------------------------------------------------------------------------------------------------------------
...
net_processing.cpp: In member function ‘virtual void {anonymous}::PeerManagerImpl::InitializeNode(const CNode&, ServiceFlags)’:
net_processing.cpp:1683:21: error: binding reference of type ‘CNode&’ to ‘const CNode’ discards qualifiers
 1683 |     PushNodeVersion(node, *peer);
...
----------------------------------------------------------------------------------------------------------------------------------

Github-Pull: #30394
Rebased-From: 0dbcd4c148
2024-07-17 11:27:03 +01:00
Sebastian Falbesoner 0933cf53b4
net: fix race condition in self-connect detection
Initiating an outbound network connection currently involves the
following steps after the socket connection is established (see
 `CConnman::OpenNetworkConnection` method):
    1. set up node state
    2. queue VERSION message
    3. add new node to vector `m_nodes`

If we connect to ourself, it can happen that the sent VERSION message
(step 2) is received and processed locally *before* the node object
is added to the connection manager's `m_nodes` vector (step 3). In this
case, the self-connect remains undiscovered, as the detection doesn't
find the outbound peer in `m_nodes` yet (see `CConnman::CheckIncomingNonce`).

Fix this by swapping the order of 2. and 3., by taking the `PushNodeVersion`
call out of `InitializeNode` and doing that in the `SendMessages` method
instead, which is only called for `CNode` instances in `m_nodes`.

Thanks go to vasild, mzumsande, dergoegge and sipa for suggestions on
how to fix this.

Github-Pull: #30394
Rebased-From: 66673f1c13
2024-07-17 11:27:03 +01:00
Ava Chow fa90989503
psbt: Check non witness utxo outpoint early
A common issue that our fuzzers keep finding is that outpoints don't
exist in the non witness utxos. Instead of trying to track this down and
checking in various individual places, do the check early during
deserialization.

Github-Pull: #29855
Rebased-From: 9e13ccc50e
2024-07-17 11:27:03 +01:00
merge-script b6440f20f2
Merge bitcoin/bitcoin#30305: [27.x] More backports
b3093eb755 doc: Update rel notes for 27.x (fanquake)
6338f92260 upnp: add compatibility for miniupnpc 2.2.8 (Cory Fields)
f34e44616d ci: remove unused bcc variable from workflow (Max Edwards)
0d524b1484 ci: move Asan / LSan / USDT job to Github Actions (Max Edwards)
43c40dd808 ci: add IPV6 network to ci container (Max Edwards)

Pull request description:

  Backports:
  * https://github.com/bitcoin/bitcoin/pull/30193
  * https://github.com/bitcoin/bitcoin/pull/30283
  * https://github.com/bitcoin/bitcoin/pull/30299

ACKs for top commit:
  willcl-ark:
    ACK b3093eb755
  stickies-v:
    ACK b3093eb755

Tree-SHA512: 325149f2b388072276e10fae2ebb7d8f3f5138d75f237c0182a09c631334fc2af9c2fe500db31bf41e94d4f154771e3cd386f8eb0d09d7a1ad656f637b71e735
2024-06-24 13:36:07 +01:00
fanquake b3093eb755
doc: Update rel notes for 27.x 2024-06-24 11:38:32 +01:00
Cory Fields 6338f92260
upnp: add compatibility for miniupnpc 2.2.8
See: c0a50ce33e

The return value of 2 now indicates:
"A valid connected IGD has been found but its IP address is reserved (non routable)"

We continue to ignore any return value other than 1.

Github-Pull: #30283
Rebased-From: 8acdf66540
2024-06-19 12:49:04 +01:00
Max Edwards f34e44616d
ci: remove unused bcc variable from workflow
Github-Pull: #30299
Rebased-From: 518b06c4b8
2024-06-19 12:49:04 +01:00
Max Edwards 0d524b1484
ci: move Asan / LSan / USDT job to Github Actions
Moving it from Cirrus CI so it can be easier to maintain and used by forks

Github-Pull: #30193
Rebased-From: 9eea51d905
2024-06-19 12:48:57 +01:00
Max Edwards 43c40dd808
ci: add IPV6 network to ci container
Allows IPV6 functional tests to run inside the container

Github-Pull: #30193
Rebased-From: 4b527fa93b
2024-06-19 12:48:51 +01:00
merge-script 1088a98f5a
Merge bitcoin/bitcoin#30222: [27.1] Finalize
d756a384d2 doc: update manual pages for 27.1 (fanquake)
93bb18f1c8 build: bump version to v27.1 final (fanquake)
fcf1241971 doc: update release notes for v27.1 final (fanquake)
f2e05cd2a9 depends: Update Boost download link (Hennadii Stepanov)
ba35920542 build: Fix building `fuzz` binary on on SunOS / illumos (Hennadii Stepanov)

Pull request description:

  Backports:
  * https://github.com/bitcoin/bitcoin/pull/30216
  * https://github.com/bitcoin/bitcoin/pull/30217

  I don't think either of these changes warrants an `rc2` cycle.

ACKs for top commit:
  stickies-v:
    ACK d756a384d2
  willcl-ark:
    ACK d756a384d2

Tree-SHA512: b5662143283a49156403d865dee25f3b6c22741345a4c8ff10f16845ea7a1a6d9d1319a70a44d07f31263bf1a6d85701146e9cc697b82a5a58922c48504a552c
2024-06-11 14:18:57 +01:00
fanquake d756a384d2
doc: update manual pages for 27.1 2024-06-10 13:03:33 +01:00
fanquake 93bb18f1c8
build: bump version to v27.1 final 2024-06-10 13:03:33 +01:00
fanquake fcf1241971
doc: update release notes for v27.1 final 2024-06-10 13:03:30 +01:00
Hennadii Stepanov f2e05cd2a9
depends: Update Boost download link
See: https://github.com/boostorg/boost-tasks/pull/3

Github-Pull: #30217
Rebased-From: ffbc173ca1
2024-06-04 11:17:16 +01:00
Hennadii Stepanov ba35920542
build: Fix building `fuzz` binary on on SunOS / illumos
Github-Pull: #30216
Rebased-From: 3299abce94
2024-06-04 11:17:16 +01:00
merge-script fccd32efe6
Merge bitcoin/bitcoin#30092: [27.x] Backports and rc1
22701a4346 doc: update manual pages for 27.1rc1 (fanquake)
9e919072bd build: bump version to 27.1rc1 (fanquake)
9b4640c4be doc: update release-notes.md for 27.1 (fanquake)
80032d6917 qt: 27.1rc1 translations update (Hennadii Stepanov)
423bd6dc68 windeploy: Renew certificate (Ava Chow)
77b2321ca0 depends: Fetch miniupnpc sources from an alternative website (Hennadii Stepanov)
31adcfa171 test: add GetAddedNodeInfo() CJDNS regression unit test (Jon Atack)
9cdb9edfb8 p2p, bugfix: detect addnode cjdns peers in GetAddedNodeInfo() (Jon Atack)
3c26058da2 crypto: disable asan for sha256_sse4 with clang and -O0 (Cory Fields)
0ba11cf908 rpc: move UniValue in blockToJSON (willcl-ark)
dedf319b08 gui: don't permit port in proxy IP option (willcl-ark)
d1289a1300 gui: fix create unsigned transaction fee bump (furszy)

Pull request description:

  Backports:
  * https://github.com/bitcoin-core/gui/pull/812
  * https://github.com/bitcoin-core/gui/pull/813
  * https://github.com/bitcoin/bitcoin/pull/30085
  * https://github.com/bitcoin/bitcoin/pull/30094
  * https://github.com/bitcoin/bitcoin/pull/30097
  * https://github.com/bitcoin/bitcoin/pull/30149
  * https://github.com/bitcoin/bitcoin/pull/30151

  Bump to 27.1rc1.

ACKs for top commit:
  stickies-v:
    re-ACK 22701a4346
  willcl-ark:
    reACK 22701a4346
  hebasto:
    re-ACK 22701a4346.

Tree-SHA512: 6eca44ba7e6664eb4677646597dfdaf56a241c8c3e95e0ab8929ee2fc3671303fc6c2634d359b4523dbd452ac5e54fd1f4c7c2bf7e9c5209395f8cb3b4753fb3
2024-05-29 09:16:55 +01:00
fanquake 22701a4346
doc: update manual pages for 27.1rc1 2024-05-28 12:28:11 +01:00
fanquake 9e919072bd
build: bump version to 27.1rc1 2024-05-28 12:28:11 +01:00
fanquake 9b4640c4be
doc: update release-notes.md for 27.1 2024-05-28 12:28:06 +01:00
Hennadii Stepanov 80032d6917
qt: 27.1rc1 translations update 2024-05-28 10:18:55 +01:00
Ava Chow 423bd6dc68
windeploy: Renew certificate
Github-Pull: #30149
Rebased-From: 9f4ff1e965
2024-05-23 13:28:44 +01:00
Hennadii Stepanov 77b2321ca0
depends: Fetch miniupnpc sources from an alternative website
The https://miniupnp.tuxfamily.org website is unavailable now.

Github-Pull: #30151
Rebased-From: 21b8a14d37
2024-05-23 09:44:19 +01:00
Jon Atack 31adcfa171
test: add GetAddedNodeInfo() CJDNS regression unit test
Github-Pull: #30085
Rebased-From: d0b047494c
2024-05-23 09:44:19 +01:00
Jon Atack 9cdb9edfb8
p2p, bugfix: detect addnode cjdns peers in GetAddedNodeInfo()
Addnode (manual) peers connected to us via the cjdns network are currently not
detected by CConnman::GetAddedNodeInfo(), i.e. fConnected is always false.

This causes the following issues:

- RPC `getaddednodeinfo` incorrectly shows them as not connected

- CConnman::ThreadOpenAddedConnections() continually retries to connect them

Github-Pull: #30085
Rebased-From: 684da97070
2024-05-22 09:49:00 +01:00
Cory Fields 3c26058da2
crypto: disable asan for sha256_sse4 with clang and -O0
Clang is unable to compile the Transform function for that combination of
options.

Github-Pull: #30097
Rebased-From: 141df0a288
2024-05-16 08:41:52 +08:00
willcl-ark 0ba11cf908
rpc: move UniValue in blockToJSON
Without explicitly declaring the move, these UniValues get copied,
causing increased memory usage. Fix this by explicitly moving the
UniValue objects.

Used by `rest_block` and `getblock` RPC.

Github-Pull: #30094
Rebased-From: b77bad309e
2024-05-14 08:14:33 +08:00
willcl-ark dedf319b08
gui: don't permit port in proxy IP option
Fixes: #809

Previously it was possible through the GUI to enter an IP address:port
into the "Proxy IP" configuration box. After the node was restarted the
errant setting would prevent the node starting back up until manually
removed from settings.json.

Github-Pull: https://github.com/bitcoin-core/gui/pull/813
Rebased-From: 10c5275ba4
2024-05-13 11:58:00 +08:00
furszy d1289a1300
gui: fix create unsigned transaction fee bump
Github-Pull: https://github.com/bitcoin-core/gui/pull/812
Rebased-From: 671b7a3251
2024-05-13 11:57:12 +08:00
merge-script c7885ecd77
Merge bitcoin/bitcoin#29888: [27.x] Backports
bd5860bc7a [WIP] doc: release notes for 27.x (fanquake)
475aac41fb doc: add LLVM instruction for macOS < 13 (Sjors Provoost)
a995902d60 depends: Fix build of Qt for 32-bit platforms (laanwj)
0fcceefe22 Fix #29767, set m_synced = true after Commit() (nanlour)
ae9a2ed40a sign: don't assume we are parsing a sane Miniscript (Antoine Poinsot)
a6a59cfebc rpc: Reword SighashFromStr error message (MarcoFalke)
364bf01ff2 build: Fix false positive `CHECK_ATOMIC` test for clang-15 (Hennadii Stepanov)
9277793b4e test: Fix failing univalue float test (MarcoFalke)
5c097910e0 doc: archive 27.0 release notes (fanquake)
897e5af58a [rpc, bugfix] Enforce maximum value for setmocktime (dergoegge)
602cfd580a ci: Bump s390x to ubuntu:24.04 (MarcoFalke)
20e6e8dc80 Change Luke Dashjr seed to dashjr-list-of-p2p-nodes.us (Luke Dashjr)
a6862c50c5 depends: fix mingw-w64 Qt DEBUG=1 build (fanquake)

Pull request description:

  Backports:
  * https://github.com/bitcoin/bitcoin/pull/29691
  * https://github.com/bitcoin/bitcoin/pull/29747
  * https://github.com/bitcoin/bitcoin/pull/29776
  * https://github.com/bitcoin/bitcoin/pull/29853
  * https://github.com/bitcoin/bitcoin/pull/29856
  * https://github.com/bitcoin/bitcoin/pull/29859
  * https://github.com/bitcoin/bitcoin/pull/29869
  * https://github.com/bitcoin/bitcoin/pull/29870
  * https://github.com/bitcoin/bitcoin/pull/29886
  * https://github.com/bitcoin/bitcoin/pull/29892
  * https://github.com/bitcoin/bitcoin/pull/29934
  * https://github.com/bitcoin/bitcoin/pull/29985

ACKs for top commit:
  willcl-ark:
    reACK bd5860bc7a
  stickies-v:
    re-ACK bd5860bc7a
  TheCharlatan:
    ACK bd5860bc7a

Tree-SHA512: a1a40de70cf52b5fc01d9dcc772421751a18c6a48a726c4c05c0371c585a53a27902e17daed9e0d721ab7763c94bb32de05c146bd6bc73fd558edd08b31e8547
2024-05-13 11:53:26 +08:00
fanquake bd5860bc7a
[WIP] doc: release notes for 27.x 2024-05-10 11:27:07 +08:00
Sjors Provoost 475aac41fb
doc: add LLVM instruction for macOS < 13
Github-Pull: #29934
Rebased-From: 22574046c9
2024-05-02 15:28:51 +08:00
laanwj a995902d60
depends: Fix build of Qt for 32-bit platforms
The 32 to 64-bit time_t transition causes a build failure in the built-in
zlib about conflicting _TIME_BITS and _FILE_OFFSET_BITS.

Note that zlib doesn't use time_t at all, so it is a false alarm.

Take the following patch from upstream zlib:
a566e156b3.patch

Closes #29980.

Github-Pull: #29985
Rebased-From: 2e266f33b5
2024-04-30 14:20:55 +08:00
nanlour 0fcceefe22
Fix #29767, set m_synced = true after Commit()
Github-Pull: #29776
Rebased-From: bbe82c116e
2024-04-26 21:05:02 +08:00
Antoine Poinsot ae9a2ed40a
sign: don't assume we are parsing a sane Miniscript
The script provided for signature might be externally provided, for
instance by way of 'finalizepsbt'. Therefore the script might be
ill-crafted, so don't assume pubkeys are always 32 bytes.

Thanks to Niklas for finding this.

Github-Pull: #29853
Rebased-From: 4d8d21320e
2024-04-24 21:16:47 +08:00
MarcoFalke a6a59cfebc
rpc: Reword SighashFromStr error message
Github-Pull: #29870
Rebased-From: fa6ab0d020
2024-04-24 20:57:09 +08:00
Hennadii Stepanov 364bf01ff2
build: Fix false positive `CHECK_ATOMIC` test for clang-15
Github-Pull: #29859
Rebased-From: dd3e0fa125
2024-04-17 14:05:09 +01:00
MarcoFalke 9277793b4e
test: Fix failing univalue float test
Github-Pull: #29892
Rebased-From: fa4c69669e
2024-04-17 14:05:00 +01:00
fanquake 5c097910e0
doc: archive 27.0 release notes
Github-Pull: #29886
Rebased-From: c08754971d
2024-04-17 14:04:34 +01:00
dergoegge 897e5af58a
[rpc, bugfix] Enforce maximum value for setmocktime
Github-Pull: #29869
Rebased-From: c2e0489b71
2024-04-16 09:28:23 +01:00
MarcoFalke 602cfd580a
ci: Bump s390x to ubuntu:24.04
Re-enable feature_init

Github-Pull: #29856
Rebased-From: fadf7e90dc
2024-04-16 09:28:22 +01:00
Luke Dashjr 20e6e8dc80
Change Luke Dashjr seed to dashjr-list-of-p2p-nodes.us
To avoid issues with DNS blacklisting, I've setup a separate domain for my DNS seed.

Github-Pull: #29691
Rebased-From: 4f273ab436
2024-04-16 09:28:22 +01:00
fanquake a6862c50c5
depends: fix mingw-w64 Qt DEBUG=1 build
The issue is that compilation is done with `x86_64-w64-mingw32-g++-posix`,
but then linking is done with `x86_64-w64-mingw32-g++`.

I'm guessing this has been broken since #24131
(01d1845a80), but have not checked.

Fixes #29734.
Unblocks #29527 (now DEBUG=1 builds can be tested).

Github-Pull: #29747
Rebased-From: b7e7e727ab
2024-04-16 09:12:39 +01:00
merge-script d82283950f
Merge bitcoin/bitcoin#29780: [27.x] More backports and finalize
910e3e8728 doc: update manual pages for v27.0 (fanquake)
2d2a0a369e build: bump version to v27.0 final (fanquake)
9442ea82da doc: import release notes from devwiki (fanquake)
fe51aceeca Update the developer mailing list address. (Edil Medeiros)
bde54b7627 ci: Print tsan errors to stderr (MarcoFalke)
753c68dc0f ci: Pull in qtbase5-dev instead of seperate low-level libraries (laanwj)
c4da61b323 doc: Suggest installing dev packages for debian/ubuntu qt5 build (laanwj)

Pull request description:

  Currently backports:
  * https://github.com/bitcoin/bitcoin/pull/29740
  * https://github.com/bitcoin/bitcoin/pull/29764
  * https://github.com/bitcoin/bitcoin/pull/29782

  Pulls release notes:  https://github.com/bitcoin-core/bitcoin-devwiki/wiki/27.0-Release-Notes-Draft.
  Finalizes `v27.0`.

ACKs for top commit:
  achow101:
    ACK 910e3e8728
  stickies-v:
    ACK 910e3e8728 - no changes except addressing nits

Tree-SHA512: 5dd8c6adaab154699f8ad9a5bda26de54901d3d1d09034a5a6775a37f12b44274d2d5ce6e1a527a6c211b56a75fe154f3ccb37bcbc39882be8299a4f127bfe30
2024-04-15 17:28:32 +01:00
fanquake 910e3e8728
doc: update manual pages for v27.0 2024-04-15 09:49:20 +01:00
fanquake 2d2a0a369e
build: bump version to v27.0 final 2024-04-15 09:49:19 +01:00
fanquake 9442ea82da
doc: import release notes from devwiki
https://github.com/bitcoin-core/bitcoin-devwiki/wiki/27.0-Release-Notes-Draft.
2024-04-15 09:49:14 +01:00
Edil Medeiros fe51aceeca
Update the developer mailing list address.
The developer mailing list was migrated to Google Groups in February 2024
as announced in https://groups.google.com/g/bitcoindev/c/aewBuV6k-LI.

The archives maintained by the Linux Foundation stopped updating in December
2024. Thus, we point to the new archive maintained by gnusha.org.

The codebase refers to old discussions linked to the Linux Foundation archives.
Since all links are still active to this date, we keep them as they are.

See #29782.

Github-Pull: #29782
Rebased-From: 0ead466a0c
2024-04-04 14:39:42 +01:00
MarcoFalke bde54b7627
ci: Print tsan errors to stderr
Github-Pull: #29740
Rebased-From: fa22a438fa
2024-04-03 09:57:11 +01:00
laanwj 753c68dc0f
ci: Pull in qtbase5-dev instead of seperate low-level libraries
Fix CI build for t64 migration.

Github-Pull: #29764
Rebased-From: 6c2990416e
2024-04-01 16:03:26 +02:00
laanwj c4da61b323
doc: Suggest installing dev packages for debian/ubuntu qt5 build
Pretty much all library packages were renamed in the 64-bit time_t
migration to add `t64` (even on 64-bit platforms).

Instead of complicating the doc with conditional package names, suggest
installing the `-dev` packages which still have the same name, and
besides that, are the right way to go about it as they contain the
"user facing" C++ headers needed to build against Qt5.

For Fedora, devel packages are already suggested.

This affects Ubuntu 24.04 and Debian Testing.

Github-Pull: #29764
Rebased-From: a3c6a13cb2
2024-04-01 16:02:23 +02:00
fanquake b3cd952495
Merge bitcoin/bitcoin#29693: [27.x] Further Backports
a7116c8feb ci: Bump msan to llvm-18 (MarcoFalke)
05f69b36d1 ci, macos: Use `--break-system-packages` with Homebrew's python (Hennadii Stepanov)
603f0368a5 ci: Add workaround for Homebrew's python link error (Hennadii Stepanov)
5d381cfb6f serfloat: improve/simplify tests (Pieter Wuille)
f4be4d7447 serfloat: do not test encode(bits)=bits anymore (Pieter Wuille)

Pull request description:

  Currently:
  * https://github.com/bitcoin/bitcoin/pull/29192
  * https://github.com/bitcoin/bitcoin/pull/29610
  * https://github.com/bitcoin/bitcoin/pull/29676

ACKs for top commit:
  stickies-v:
    ACK a7116c8feb - all clean test backports

Tree-SHA512: f3508a2c20d336c8647ba16886859d6a070584c4739fc8b5cfce2041a0662794775fb0ce89c9bf848a29e70089bae05ad1c921bbe45afe3fd5cac2a5c6b76baf
2024-03-26 09:59:43 +00:00
MarcoFalke a7116c8feb
ci: Bump msan to llvm-18
Github-Pull: #29676
Rebased-From: faecf3a7e6
2024-03-21 17:19:44 +00:00
Hennadii Stepanov 05f69b36d1
ci, macos: Use `--break-system-packages` with Homebrew's python
Homebrew's python@3.12 is marked as externally managed (PEP 668),
necessitating different approaches for installing Python packages.

For more details, please refer to https://github.com/orgs/Homebrew/discussions/3404.

Github-Pull: #29610
Rebased-From: acc06bc91f
2024-03-21 17:19:44 +00:00
Hennadii Stepanov 603f0368a5
ci: Add workaround for Homebrew's python link error
Promoting Homebrew's python@3.12 to the default python3 breaks symbolic
links on macOS x86_64.

This change adds a workaround for that issue.

Also see: https://github.com/actions/runner-images/issues/9471 etc.

Github-Pull: #29610
Rebased-From: acc06bc91f
2024-03-21 17:19:40 +00:00
Pieter Wuille 5d381cfb6f
serfloat: improve/simplify tests
Github-Pull: #29192
Rebased-From: 6e873df347
2024-03-21 16:42:41 +00:00
Pieter Wuille f4be4d7447
serfloat: do not test encode(bits)=bits anymore
Github-Pull: #29192
Rebased-From: b45f1f5658
2024-03-21 16:42:15 +00:00
fanquake c255fcb825
Merge bitcoin/bitcoin#29580: [27.x] Bump version to v27.0rc1
b6ff9c530d doc: point release-notes.md to the dev wiki (fanquake)
8f1b7e5cf9 doc: generate example bitcoin.conf for v27.0rc1 (fanquake)
b4fd211d2c doc: generate manual pages for v27.0rc1 (fanquake)
7589ce3997 build: bump version to v27.0rc1 (fanquake)

Pull request description:

  Bump the version number.
  Generate the man pages.
  Generate example bitcoin.conf.
  Point release-notes.md to the wiki: https://github.com/bitcoin-core/bitcoin-devwiki/wiki/27.0-Release-Notes-Draft.

ACKs for top commit:
  achow101:
    ACK b6ff9c530d
  willcl-ark:
    ACK b6ff9c530d

Tree-SHA512: 914d95f18cb6393db17ed590f62e47f06d5baad0672f8674d6e71b38b9e54c8f9d9aec4631c66c9050e9da9c2a98d3120b6d7fb155ade7d4e5eb4a17fa7ef847
2024-03-06 17:16:36 +00:00
fanquake b6ff9c530d
doc: point release-notes.md to the dev wiki
See
https://github.com/bitcoin-core/bitcoin-devwiki/wiki/27.0-Release-Notes-Draft.
2024-03-06 14:55:17 +00:00
fanquake 8f1b7e5cf9
doc: generate example bitcoin.conf for v27.0rc1 2024-03-06 14:53:06 +00:00
fanquake b4fd211d2c
doc: generate manual pages for v27.0rc1 2024-03-06 14:52:41 +00:00
fanquake 7589ce3997
build: bump version to v27.0rc1 2024-03-06 14:50:10 +00:00
103 changed files with 12291 additions and 2575 deletions

View File

@ -43,7 +43,6 @@ env: # Global defaults
# The following specific types should exist, with the following requirements:
# - small: For an x86_64 machine, recommended to have 2 CPUs and 8 GB of memory.
# - medium: For an x86_64 machine, recommended to have 4 CPUs and 16 GB of memory.
# - noble: For a machine running the Linux kernel shipped with exaclty Ubuntu Noble 24.04. The machine is recommended to have 4 CPUs and 16 GB of memory.
# - arm64: For an aarch64 machine, recommended to have 2 CPUs and 8 GB of memory.
# https://cirrus-ci.org/guide/tips-and-tricks/#sharing-configuration-between-tasks
@ -160,19 +159,6 @@ task:
FILE_ENV: "./ci/test/00_setup_env_native_msan.sh"
task:
name: 'ASan + LSan + UBSan + integer, no depends, USDT'
enable_bpfcc_script:
# In the image build step, no external environment variables are available,
# so any settings will need to be written to the settings env file:
- sed -i "s|\${CIRRUS_CI}|true|g" ./ci/test/00_setup_env_native_asan.sh
<< : *GLOBAL_TASK_TEMPLATE
persistent_worker:
labels:
type: noble # Must use this specific worker (needed for USDT functional tests)
env:
FILE_ENV: "./ci/test/00_setup_env_native_asan.sh"
task:
name: 'fuzzer,address,undefined,integer, no depends'
<< : *GLOBAL_TASK_TEMPLATE
persistent_worker:

View File

@ -18,7 +18,6 @@ concurrency:
cancel-in-progress: true
env:
DANGER_RUN_CI_ON_HOST: 1
CI_FAILFAST_TEST_LEAVE_DANGLING: 1 # GHA does not care about dangling processes and setting this variable avoids killing the CI script itself on error
MAKEJOBS: '-j10'
@ -62,7 +61,7 @@ jobs:
echo "TEST_BASE=$(git rev-list -n$((${{ env.MAX_COUNT }} + 1)) --reverse HEAD ^$(git rev-list -n1 --merges HEAD)^@ | head -1)" >> "$GITHUB_ENV"
- run: |
sudo apt-get update
sudo apt-get install clang-15 ccache build-essential libtool autotools-dev automake pkg-config bsdmainutils python3-zmq libevent-dev libboost-dev libsqlite3-dev libdb++-dev systemtap-sdt-dev libminiupnpc-dev libnatpmp-dev libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools qtwayland5 libqrencode-dev -y
sudo apt-get install clang-15 ccache build-essential libtool autotools-dev automake pkg-config bsdmainutils python3-zmq libevent-dev libboost-dev libsqlite3-dev libdb++-dev systemtap-sdt-dev libminiupnpc-dev libnatpmp-dev qtbase5-dev qttools5-dev qttools5-dev-tools qtwayland5 libqrencode-dev -y
- name: Compile and run tests
run: |
# Run tests on commits after the last merge commit and before the PR head commit
@ -81,6 +80,7 @@ jobs:
timeout-minutes: 120
env:
DANGER_RUN_CI_ON_HOST: 1
FILE_ENV: './ci/test/00_setup_env_mac_native.sh'
BASE_ROOT_DIR: ${{ github.workspace }}
@ -96,7 +96,10 @@ jobs:
- name: Install Homebrew packages
env:
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
run: brew install automake libtool pkg-config gnu-getopt ccache boost libevent miniupnpc libnatpmp zeromq qt@5 qrencode
run: |
# A workaround for "The `brew link` step did not complete successfully" error.
brew install python@3 || brew link --overwrite python@3
brew install automake libtool pkg-config gnu-getopt ccache boost libevent miniupnpc libnatpmp zeromq qt@5 qrencode
- name: Set Ccache directory
run: echo "CCACHE_DIR=${RUNNER_TEMP}/ccache_dir" >> "$GITHUB_ENV"
@ -291,3 +294,42 @@ jobs:
TEST_RUNNER_EXTRA: ${{ github.event_name != 'pull_request' && '--extended' || '' }}
shell: cmd
run: py -3 test\functional\test_runner.py --jobs %NUMBER_OF_PROCESSORS% --ci --quiet --tmpdirprefix=%RUNNER_TEMP% --combinedlogslen=99999999 --timeout-factor=%TEST_RUNNER_TIMEOUT_FACTOR% %TEST_RUNNER_EXTRA%
asan-lsan-ubsan-integer-no-depends-usdt:
name: 'ASan + LSan + UBSan + integer, no depends, USDT'
runs-on: ubuntu-24.04 # has to match container in ci/test/00_setup_env_native_asan.sh for tracing tools
# No need to run on the read-only mirror, unless it is a PR.
if: github.repository != 'bitcoin-core/gui' || github.event_name == 'pull_request'
timeout-minutes: 120
env:
FILE_ENV: "./ci/test/00_setup_env_native_asan.sh"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set Ccache directory
run: echo "CCACHE_DIR=${RUNNER_TEMP}/ccache_dir" >> "$GITHUB_ENV"
- name: Restore Ccache cache
id: ccache-cache
uses: actions/cache/restore@v4
with:
path: ${{ env.CCACHE_DIR }}
key: ${{ github.job }}-ccache-${{ github.run_id }}
restore-keys: ${{ github.job }}-ccache-
- name: Enable bpfcc script
# In the image build step, no external environment variables are available,
# so any settings will need to be written to the settings env file:
run: sed -i "s|\${INSTALL_BCC_TRACING_TOOLS}|true|g" ./ci/test/00_setup_env_native_asan.sh
- name: CI script
run: ./ci/test_run_all.sh
- name: Save Ccache cache
uses: actions/cache/save@v4
if: github.event_name != 'pull_request' && steps.ccache-cache.outputs.cache-hit != 'true'
with:
path: ${{ env.CCACHE_DIR }}
# https://github.com/actions/cache/blob/main/tips-and-workarounds.md#update-a-cache
key: ${{ github.job }}-ccache-${{ github.run_id }}

View File

@ -66,9 +66,10 @@ Discussion about codebase improvements happens in GitHub issues and pull
requests.
The developer
[mailing list](https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev)
[mailing list](https://groups.google.com/g/bitcoindev)
should be used to discuss complicated or controversial consensus or P2P protocol changes before working on
a patch set.
Archives can be found on [https://gnusha.org/pi/bitcoindev/](https://gnusha.org/pi/bitcoindev/).
Contributor Workflow

View File

@ -7,7 +7,7 @@ dnl warranty.
# Clang, when building for 32-bit,
# and linking against libstdc++, requires linking with
# -latomic if using the C++ atomic library.
# Can be tested with: clang++ test.cpp -m32
# Can be tested with: clang++ -std=c++20 test.cpp -m32
#
# Sourced from http://bugs.debian.org/797228
@ -27,8 +27,11 @@ m4_define([_CHECK_ATOMIC_testbody], [[
auto t1 = t.load();
t.compare_exchange_strong(t1, 3s);
std::atomic<int64_t> a{};
std::atomic<double> d{};
d.store(3.14);
auto d1 = d.load();
std::atomic<int64_t> a{};
int64_t v = 5;
int64_t r = a.fetch_add(v);
return static_cast<int>(r);

View File

@ -7,7 +7,9 @@
export LC_ALL=C.UTF-8
export HOST=x86_64-apple-darwin
export PIP_PACKAGES="zmq"
# Homebrew's python@3.12 is marked as externally managed (PEP 668).
# Therefore, `--break-system-packages` is needed.
export PIP_PACKAGES="--break-system-packages zmq"
export GOAL="install"
export BITCOIN_CONFIG="--with-gui --with-miniupnpc --with-natpmp --enable-reduce-exports"
export CI_OS_NAME="macos"

View File

@ -7,8 +7,10 @@
export LC_ALL=C.UTF-8
export CI_IMAGE_NAME_TAG="docker.io/ubuntu:24.04"
# Only install BCC tracing packages in Cirrus CI.
if [[ "${CIRRUS_CI}" == "true" ]]; then
# Only install BCC tracing packages in CI. Container has to match the host for BCC to work.
if [[ "${INSTALL_BCC_TRACING_TOOLS}" == "true" ]]; then
# Required for USDT functional tests to run
BPFCC_PACKAGE="bpfcc-tools linux-headers-$(uname --kernel-release)"
export CI_CONTAINER_CAP="--privileged -v /sys/kernel:/sys/kernel:rw"
else

View File

@ -6,7 +6,7 @@
export LC_ALL=C.UTF-8
export CI_IMAGE_NAME_TAG="docker.io/ubuntu:22.04"
export CI_IMAGE_NAME_TAG="docker.io/ubuntu:24.04"
LIBCXX_DIR="/msan/cxx_build/"
export MSAN_FLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer -g -O1 -fno-optimize-sibling-calls"
LIBCXX_FLAGS="-nostdinc++ -nostdlib++ -isystem ${LIBCXX_DIR}include/c++/v1 -L${LIBCXX_DIR}lib -Wl,-rpath,${LIBCXX_DIR}lib -lc++ -lc++abi -lpthread -Wno-unused-command-line-argument"

View File

@ -6,7 +6,7 @@
export LC_ALL=C.UTF-8
export CI_IMAGE_NAME_TAG="docker.io/ubuntu:22.04"
export CI_IMAGE_NAME_TAG="docker.io/ubuntu:24.04"
LIBCXX_DIR="/msan/cxx_build/"
export MSAN_FLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer -g -O1 -fno-optimize-sibling-calls"
LIBCXX_FLAGS="-nostdinc++ -nostdlib++ -isystem ${LIBCXX_DIR}include/c++/v1 -L${LIBCXX_DIR}lib -Wl,-rpath,${LIBCXX_DIR}lib -lc++ -lc++abi -lpthread -Wno-unused-command-line-argument"

View File

@ -9,7 +9,7 @@ export LC_ALL=C.UTF-8
export CI_IMAGE_NAME_TAG="docker.io/ubuntu:24.04"
export CONTAINER_NAME=ci_native_tidy
export TIDY_LLVM_V="17"
export PACKAGES="clang-${TIDY_LLVM_V} libclang-${TIDY_LLVM_V}-dev llvm-${TIDY_LLVM_V}-dev libomp-${TIDY_LLVM_V}-dev clang-tidy-${TIDY_LLVM_V} jq bear libevent-dev libboost-dev libminiupnpc-dev libnatpmp-dev libzmq3-dev systemtap-sdt-dev libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libqrencode-dev libsqlite3-dev libdb++-dev"
export PACKAGES="clang-${TIDY_LLVM_V} libclang-${TIDY_LLVM_V}-dev llvm-${TIDY_LLVM_V}-dev libomp-${TIDY_LLVM_V}-dev clang-tidy-${TIDY_LLVM_V} jq bear libevent-dev libboost-dev libminiupnpc-dev libnatpmp-dev libzmq3-dev systemtap-sdt-dev qtbase5-dev qttools5-dev qttools5-dev-tools libqrencode-dev libsqlite3-dev libdb++-dev"
export NO_DEPENDS=1
export RUN_UNIT_TESTS=false
export RUN_FUNCTIONAL_TESTS=false

View File

@ -9,8 +9,8 @@ export LC_ALL=C.UTF-8
export HOST=s390x-linux-gnu
export PACKAGES="python3-zmq"
export CONTAINER_NAME=ci_s390x
export CI_IMAGE_NAME_TAG="docker.io/s390x/debian:bookworm"
export TEST_RUNNER_EXTRA="--exclude feature_init,rpc_bind,feature_bind_extra" # Excluded for now, see https://github.com/bitcoin/bitcoin/issues/17765#issuecomment-602068547
export CI_IMAGE_NAME_TAG="docker.io/s390x/ubuntu:24.04"
export TEST_RUNNER_EXTRA="--exclude rpc_bind,feature_bind_extra" # Excluded for now, see https://github.com/bitcoin/bitcoin/issues/17765#issuecomment-602068547
export RUN_FUNCTIONAL_TESTS=true
export GOAL="install"
export BITCOIN_CONFIG="--enable-reduce-exports"

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
#
# Copyright (c) 2018-2022 The Bitcoin Core developers
# Copyright (c) 2018-present The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
@ -36,7 +36,7 @@ if [ -n "$PIP_PACKAGES" ]; then
fi
if [[ ${USE_MEMORY_SANITIZER} == "true" ]]; then
${CI_RETRY_EXE} git clone --depth=1 https://github.com/llvm/llvm-project -b llvmorg-17.0.6 /msan/llvm-project
${CI_RETRY_EXE} git clone --depth=1 https://github.com/llvm/llvm-project -b "llvmorg-18.1.1" /msan/llvm-project
cmake -G Ninja -B /msan/clang_build/ \
-DLLVM_ENABLE_PROJECTS="clang" \
@ -53,13 +53,14 @@ if [[ ${USE_MEMORY_SANITIZER} == "true" ]]; then
update-alternatives --install /usr/bin/llvm-symbolizer llvm-symbolizer /msan/clang_build/bin/llvm-symbolizer 100
cmake -G Ninja -B /msan/cxx_build/ \
-DLLVM_ENABLE_RUNTIMES='libcxx;libcxxabi' \
-DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind" \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_USE_SANITIZER=MemoryWithOrigins \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DLLVM_TARGETS_TO_BUILD=Native \
-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF \
-DLIBCXXABI_USE_LLVM_UNWINDER=OFF \
-DLIBCXX_HARDENING_MODE=debug \
-S /msan/llvm-project/runtimes

View File

@ -16,6 +16,7 @@ if [ -z "$DANGER_RUN_CI_ON_HOST" ]; then
# System-dependent env vars must be kept as is. So read them from the container.
docker run --rm "${CI_IMAGE_NAME_TAG}" bash -c "env | grep --extended-regexp '^(HOME|PATH|USER)='" | tee --append "/tmp/env-$USER-$CONTAINER_NAME"
echo "Creating $CI_IMAGE_NAME_TAG container to run in"
DOCKER_BUILDKIT=1 docker build \
--file "${BASE_READ_ONLY_DIR}/ci/test_imagefile" \
--build-arg "CI_IMAGE_NAME_TAG=${CI_IMAGE_NAME_TAG}" \
@ -23,12 +24,15 @@ if [ -z "$DANGER_RUN_CI_ON_HOST" ]; then
--label="${CI_IMAGE_LABEL}" \
--tag="${CONTAINER_NAME}" \
"${BASE_READ_ONLY_DIR}"
docker volume create "${CONTAINER_NAME}_ccache" || true
docker volume create "${CONTAINER_NAME}_depends" || true
docker volume create "${CONTAINER_NAME}_depends_sources" || true
docker volume create "${CONTAINER_NAME}_depends_SDKs_android" || true
docker volume create "${CONTAINER_NAME}_previous_releases" || true
docker network create --ipv6 --subnet 1111:1111::/112 ci-ip6net || true
if [ -n "${RESTART_CI_DOCKER_BEFORE_RUN}" ] ; then
echo "Restart docker before run to stop and clear all containers started with --rm"
podman container rm --force --all # Similar to "systemctl restart docker"
@ -56,6 +60,7 @@ if [ -z "$DANGER_RUN_CI_ON_HOST" ]; then
--mount "type=volume,src=${CONTAINER_NAME}_previous_releases,dst=$PREVIOUS_RELEASES_DIR" \
--env-file /tmp/env-$USER-$CONTAINER_NAME \
--name "$CONTAINER_NAME" \
--network ci-ip6net \
"$CONTAINER_NAME")
export CI_CONTAINER_ID
export CI_EXEC_CMD_PREFIX="docker exec ${CI_CONTAINER_ID}"

View File

@ -10,7 +10,7 @@ set -ex
export ASAN_OPTIONS="detect_stack_use_after_return=1:check_initialization_order=1:strict_init_order=1"
export LSAN_OPTIONS="suppressions=${BASE_ROOT_DIR}/test/sanitizer_suppressions/lsan"
export TSAN_OPTIONS="suppressions=${BASE_ROOT_DIR}/test/sanitizer_suppressions/tsan:halt_on_error=1:log_path=${BASE_SCRATCH_DIR}/sanitizer-output/tsan"
export TSAN_OPTIONS="suppressions=${BASE_ROOT_DIR}/test/sanitizer_suppressions/tsan:halt_on_error=1"
export UBSAN_OPTIONS="suppressions=${BASE_ROOT_DIR}/test/sanitizer_suppressions/ubsan:print_stacktrace=1:halt_on_error=1:report_error_type=1"
if [ "$CI_OS_NAME" == "macos" ]; then
@ -71,8 +71,6 @@ elif [ "$RUN_UNIT_TESTS" = "true" ] || [ "$RUN_UNIT_TESTS_SEQUENTIAL" = "true" ]
fi
fi
mkdir -p "${BASE_SCRATCH_DIR}/sanitizer-output/"
if [ "$USE_BUSY_BOX" = "true" ]; then
echo "Setup to use BusyBox utils"
# tar excluded for now because it requires passing in the exact archive type in ./depends (fixed in later BusyBox version)

View File

@ -1,9 +1,9 @@
AC_PREREQ([2.69])
define(_CLIENT_VERSION_MAJOR, 26)
define(_CLIENT_VERSION_MINOR, 99)
define(_CLIENT_VERSION_MAJOR, 27)
define(_CLIENT_VERSION_MINOR, 1)
define(_CLIENT_VERSION_BUILD, 0)
define(_CLIENT_VERSION_RC, 0)
define(_CLIENT_VERSION_IS_RELEASE, false)
define(_CLIENT_VERSION_IS_RELEASE, true)
define(_COPYRIGHT_YEAR, 2024)
define(_COPYRIGHT_HOLDERS,[The %s developers])
define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Bitcoin Core]])

View File

@ -1,8 +1,8 @@
-----BEGIN CERTIFICATE-----
MIIHfDCCBWSgAwIBAgIQCmVvdQal72U2QxbUTT3SRTANBgkqhkiG9w0BAQsFADBp
MIIHeTCCBWGgAwIBAgIQBzR46J2yq3g++NbQS/BBVDANBgkqhkiG9w0BAQsFADBp
MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMT
OERpZ2lDZXJ0IFRydXN0ZWQgRzQgQ29kZSBTaWduaW5nIFJTQTQwOTYgU0hBMzg0
IDIwMjEgQ0ExMB4XDTIyMDUyNDAwMDAwMFoXDTI0MDUyOTIzNTk1OVowgYAxCzAJ
IDIwMjEgQ0ExMB4XDTI0MDUyMjAwMDAwMFoXDTI3MDUzMTIzNTk1OVowgYAxCzAJ
BgNVBAYTAlVTMREwDwYDVQQIEwhEZWxhd2FyZTEOMAwGA1UEBxMFTGV3ZXMxJjAk
BgNVBAoTHUJpdGNvaW4gQ29yZSBDb2RlIFNpZ25pbmcgTExDMSYwJAYDVQQDEx1C
aXRjb2luIENvcmUgQ29kZSBTaWduaW5nIExMQzCCAiIwDQYJKoZIhvcNAQEBBQAD
@ -17,28 +17,28 @@ CDvScIgnQXmk+cbKMBtg9kM0F+aLWsN2xVf0uAj3U7sdXLrfJeW0DZIktWtTBQzX
O/OE4Ka+1WFnDg0HJIih0cTjl9YYvfe53L4pCGy+qGt/XGBRqCMfXp3g+H9FGR5r
pensVVcsrv3GbTfYdlpdmp9OHH5G57GTAZueobCZg7r7RKK0zPU9EiTLJxzyXuai
v/Ksd8eIhHRjewMaQuAtQM1tO+oKAbLF0v2M7v7/aVT76X32JllYAizm3zjvAgMB
AAGjggIGMIICAjAfBgNVHSMEGDAWgBRoN+Drtjv4XxGG+/5hewiIZfROQjAdBgNV
HQ4EFgQUvCpU58PIuofv0kHJ3Ty0YDKEy3cwDgYDVR0PAQH/BAQDAgeAMBMGA1Ud
JQQMMAoGCCsGAQUFBwMDMIG1BgNVHR8Ega0wgaowU6BRoE+GTWh0dHA6Ly9jcmwz
LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNENvZGVTaWduaW5nUlNBNDA5
NlNIQTM4NDIwMjFDQTEuY3JsMFOgUaBPhk1odHRwOi8vY3JsNC5kaWdpY2VydC5j
b20vRGlnaUNlcnRUcnVzdGVkRzRDb2RlU2lnbmluZ1JTQTQwOTZTSEEzODQyMDIx
Q0ExLmNybDA+BgNVHSAENzA1MDMGBmeBDAEEATApMCcGCCsGAQUFBwIBFhtodHRw
Oi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwgZQGCCsGAQUFBwEBBIGHMIGEMCQGCCsG
AAGjggIDMIIB/zAfBgNVHSMEGDAWgBRoN+Drtjv4XxGG+/5hewiIZfROQjAdBgNV
HQ4EFgQUvCpU58PIuofv0kHJ3Ty0YDKEy3cwPgYDVR0gBDcwNTAzBgZngQwBBAEw
KTAnBggrBgEFBQcCARYbaHR0cDovL3d3dy5kaWdpY2VydC5jb20vQ1BTMA4GA1Ud
DwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzCBtQYDVR0fBIGtMIGqMFOg
UaBPhk1odHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRD
b2RlU2lnbmluZ1JTQTQwOTZTSEEzODQyMDIxQ0ExLmNybDBToFGgT4ZNaHR0cDov
L2NybDQuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZEc0Q29kZVNpZ25pbmdS
U0E0MDk2U0hBMzg0MjAyMUNBMS5jcmwwgZQGCCsGAQUFBwEBBIGHMIGEMCQGCCsG
AQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wXAYIKwYBBQUHMAKGUGh0
dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNENvZGVT
aWduaW5nUlNBNDA5NlNIQTM4NDIwMjFDQTEuY3J0MAwGA1UdEwEB/wQCMAAwDQYJ
KoZIhvcNAQELBQADggIBABhpTZufRws1vrtI0xB1/UWrSEJxdPHivfpXE708dzum
Jh3TFzpsEUCQX5BJJet1l7x92sKNeAL7votA+8O8YvMD64Kim7VKA2BB8AOHKQbp
r1c2iZBwwofInviRYvsrvQta6KBy2KOe1L/l0KnpUazL9Tv4VKvuWAw/Qc0/eTQr
NZRsmADORxnZ1qW+SpF+/WbazIYjod/Oqb1U3on+PzyiGD3SjzNhsdFRptqzrIaY
UVV+2XHG4fN6A8wkyQL5NIVXGiK7rqS5VrRAv58Lf1ZZTghdAL+5SySE0OsR9t0K
W73ZB9pxbuZZ6Zfxjotjw+IilCEm3ADbc7Eb2ijI4x8mix0XWMUrhL34s7/jRyDi
P+30aSgjWp611tp/EYRW5kpIaFR8AesDdM0DSSCCRXOMwQG2Tq2+CnqItB5oLNPp
2XySwlIWvmjbzsREfIpE3yh3bxmHY+vFIc2R0nNkbWNIT6AGtaEQ7oWkgpK8YMkA
QCf4EUC4Qa7qHiH6YSmYJhjApBLC7UDwevgwxuDrwimWAj+tDkzdnENMcBp4SAy6
LwUuDi2IU6HRSXWdh2YEkDbc3FdwknnnEWaB4dlRL85YjHyLXN0KiE7SKTj1LfR4
dGeDqVUlDj9D5+X4a7F89wLP/um40/52HUQv5t5WcNr/47r9aVkx9DHs1b8oUnLg
aWduaW5nUlNBNDA5NlNIQTM4NDIwMjFDQTEuY3J0MAkGA1UdEwQCMAAwDQYJKoZI
hvcNAQELBQADggIBADdniG9IY9oOfw1e3+uc2lR4hoZqquJQRrCnbWJ1npnCTavI
CfcEEMuQ5ztg4TR7tQNj2KcaHWKuPYxEz2bg8HpSPG27lnXaz4pLgfqvjdZWNH2v
W6DGRUAwuMQHSV0qhuRcJPZuhwSFx/8y4r++jIcBxCbt/Jprt/bqc8vZZZzTDPfG
M6cGaKMDvF//OkUPVzh4s557kV7+LoaX8CigiACZky3Zj3tkQfJYkEvdQseNvX49
CMJ+cjN+fGweshbn/DszAT5oXW5l2PXeceyGrE+5Ex1ELXCPqNj8ZSn+S9IKZOag
zDFBA93RTVD438peXPz//xgusgnmSqSPS5tCp9KSvew81acu4v/+egg9EgSSx5Ho
9fkOX7JuygvN3r3UZqsddxdwf2dPvBDYlMdieF8qsR7H5DQPQoaTVrIhW4TFtJl/
UPjVlnDwu+yvMC70F+CaVgQs01uZ0VKuG3KNkkEj6+V/SM54NVVgcY/Q7llKIFA8
Qk8Ip8/83cVBptKW+OU+i2ZwoYskLbdfDE31X2knUIouNZgBBMhzc5WjJCEGXAPm
9xYZMn87cc+ejxCw6/WC4b6tDCziO8drq76Pl6LTNPOtRkEVqt12p8Uqi9PgznUB
bdHeoF5XHt1Ca2ySpSYuMz5djwIC2ws8kiMm44/AyTm6dwRcesiOTqnaRc+t
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGsDCCBJigAwIBAgIQCK1AsmDSnEyfXs2pvZOu2TANBgkqhkiG9w0BAQwFADBi

View File

@ -1,6 +1,6 @@
package=boost
$(package)_version=1.81.0
$(package)_download_path=https://boostorg.jfrog.io/artifactory/main/release/$($(package)_version)/source/
$(package)_download_path=https://archives.boost.io/release/$($(package)_version)/source/
$(package)_file_name=boost_$(subst .,_,$($(package)_version)).tar.bz2
$(package)_sha256_hash=71feeed900fbccca04a3b4f2f84a7c217186f28a940ed8b7ed4725986baf99fa
$(package)_patches=process_macos_sdk.patch

View File

@ -1,6 +1,6 @@
package=miniupnpc
$(package)_version=2.2.2
$(package)_download_path=https://miniupnp.tuxfamily.org/files/
$(package)_download_path=http://miniupnp.free.fr/files/
$(package)_file_name=$(package)-$($(package)_version).tar.gz
$(package)_sha256_hash=888fb0976ba61518276fe1eda988589c700a3f2a69d71089260d75562afd3687
$(package)_patches=dont_leak_info.patch respect_mingw_cflags.patch no_libtool.patch

View File

@ -24,6 +24,7 @@ $(package)_patches += fix-macos-linker.patch
$(package)_patches += memory_resource.patch
$(package)_patches += utc_from_string_no_optimize.patch
$(package)_patches += windows_lto.patch
$(package)_patches += zlib-timebits64.patch
$(package)_qttranslations_file_name=qttranslations-$($(package)_suffix)
$(package)_qttranslations_sha256_hash=a31785948c640b7c66d9fe2db4993728ca07f64e41c560b3625ad191b276ff20
@ -178,6 +179,7 @@ $(package)_config_opts_mingw32 += -xplatform win32-g++
$(package)_config_opts_mingw32 += "QMAKE_CFLAGS = '$($(package)_cflags) $($(package)_cppflags)'"
$(package)_config_opts_mingw32 += "QMAKE_CXX = '$($(package)_cxx)'"
$(package)_config_opts_mingw32 += "QMAKE_CXXFLAGS = '$($(package)_cxxflags) $($(package)_cppflags)'"
$(package)_config_opts_mingw32 += "QMAKE_LINK = '$($(package)_cxx)'"
$(package)_config_opts_mingw32 += "QMAKE_LFLAGS = '$($(package)_ldflags)'"
$(package)_config_opts_mingw32 += "QMAKE_LIB = '$($(package)_ar) rc'"
$(package)_config_opts_mingw32 += -device-option CROSS_COMPILE="$(host)-"
@ -254,6 +256,7 @@ define $(package)_preprocess_cmds
patch -p1 -i $($(package)_patch_dir)/fast_fixed_dtoa_no_optimize.patch && \
patch -p1 -i $($(package)_patch_dir)/guix_cross_lib_path.patch && \
patch -p1 -i $($(package)_patch_dir)/windows_lto.patch && \
patch -p1 -i $($(package)_patch_dir)/zlib-timebits64.patch && \
mkdir -p qtbase/mkspecs/macx-clang-linux &&\
cp -f qtbase/mkspecs/macx-clang/qplatformdefs.h qtbase/mkspecs/macx-clang-linux/ &&\
cp -f $($(package)_patch_dir)/mac-qmake.conf qtbase/mkspecs/macx-clang-linux/qmake.conf && \

View File

@ -0,0 +1,31 @@
From a566e156b3fa07b566ddbf6801b517a9dba04fa3 Mon Sep 17 00:00:00 2001
From: Mark Adler <madler@alumni.caltech.edu>
Date: Sat, 29 Jul 2023 22:13:09 -0700
Subject: [PATCH] Avoid compiler complaints if _TIME_BITS defined when building
zlib.
zlib does not use time_t, so _TIME_BITS is irrelevant. However it
may be defined anyway as part of a sledgehammer indiscriminately
applied to all builds.
From https://github.com/madler/zlib/commit/a566e156b3fa07b566ddbf6801b517a9dba04fa3.patch
---
qtbase/src/3rdparty/zlib/src/gzguts.h | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/qtbase/src/3rdparty/zlib/src/gzguts.h b/qtbase/src/3rdparty/zlib/src/gzguts.h
index e23f831f5..f9375047e 100644
--- a/qtbase/src/3rdparty/zlib/src/gzguts.h
+++ b/qtbase/src/3rdparty/zlib/src/gzguts.h
@@ -26,9 +26,8 @@
# ifndef _LARGEFILE_SOURCE
# define _LARGEFILE_SOURCE 1
# endif
-# ifdef _FILE_OFFSET_BITS
-# undef _FILE_OFFSET_BITS
-# endif
+# undef _FILE_OFFSET_BITS
+# undef _TIME_BITS
#endif
#ifdef HAVE_HIDDEN

View File

@ -51,6 +51,20 @@ To install, run the following from your terminal:
brew install automake libtool boost pkg-config libevent
```
For macOS 11 (Big Sur) and 12 (Monterey) you need to install a more recent version of llvm.
``` bash
brew install llvm
```
And append the following to the configure commands below:
``` bash
CC=$(brew --prefix llvm)/bin/clang CXX=$(brew --prefix llvm)/bin/clang++
```
Try `llvm@17` if compilation fails with the default version of llvm.
### 4. Clone Bitcoin repository
`git` should already be installed by default on your system.

View File

@ -81,7 +81,7 @@ To build without GUI pass `--without-gui`.
To build with Qt 5 you need the following:
sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools
sudo apt-get install qtbase5-dev qttools5-dev qttools5-dev-tools
Additionally, to support Wayland protocol for modern desktop environments:

View File

@ -44,7 +44,7 @@ related to the DNS seed operation.
If these expectations cannot be satisfied the operator should
discontinue providing services and contact the active Bitcoin
Core development team as well as posting on
[bitcoin-dev](https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev).
[bitcoin-dev](https://groups.google.com/g/bitcoindev).
Behavior outside of these expectations may be reasonable in some
situations but should be discussed in public in advance.

View File

@ -1,5 +1,181 @@
.TH BITCOIN-CLI "1"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
.TH BITCOIN-CLI "1" "June 2024" "bitcoin-cli v27.1.0" "User Commands"
.SH NAME
bitcoin-cli \- manual page for bitcoin-cli
bitcoin-cli \- manual page for bitcoin-cli v27.1.0
.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 v27.1.0
.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 output of \fB\-getinfo\fR is the result of
multiple non\-atomic requests. Some entries in the output 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-2024 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,829 @@
.TH BITCOIN-QT "1"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
.TH BITCOIN-QT "1" "June 2024" "bitcoin-qt v27.1.0" "User Commands"
.SH NAME
bitcoin-qt \- manual page for bitcoin-qt
bitcoin-qt \- manual page for bitcoin-qt v27.1.0
.SH SYNOPSIS
.B bitcoin-qt
[\fI\,command-line options\/\fR] [\fI\,URI\/\fR]
.SH DESCRIPTION
Bitcoin Core version v27.1.0
.PP
Optional URI is a Bitcoin address in BIP21 URI format.
.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\-allowignoredconf\fR
.IP
For backwards compatibility, treat an unused bitcoin.conf file in the
datadir as a warning, not an error.
.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:
000000000000000000026811d149d4d261995ec5b3f64f439a0a10e1a464af9a,
testnet:
000000000001323071f38f21ea5aae529ece491eadaccce506a59bcc2d968917,
signet:
0000000870f15246ba23c16e370a7ffb1fc8a3dcf8cb4492882ed4b0e3d4cd26)
.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 (only useable from command line, not
configuration file) (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 (default: debug.log). Relative paths
will be prefixed by a net\-specific datadir location. Pass
\fB\-nodebuglogfile\fR to disable writing the log to a file.
.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 (0 = auto, up to 15, <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\-persistmempoolv1\fR
.IP
Whether a mempool.dat file created by \fB\-persistmempool\fR or the savemempool
RPC will be written in the legacy format (version 1) or the
current format (version 2). This temporary option will be removed
in the future. (default: 0)
.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. 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
If enabled, wipe chain state and block index, and rebuild them from
blk*.dat files on disk. Also wipe and rebuild other optional
indexes that are active. If an assumeutxo snapshot was loaded,
its chainstate will be wiped as well. The snapshot can then be
reloaded via RPC.
.HP
\fB\-reindex\-chainstate\fR
.IP
If enabled, wipe chain state, and rebuild it from blk*.dat files on
disk. If an assumeutxo snapshot was loaded, its chainstate will
be wiped as well. The snapshot can then be reloaded via RPC.
.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\-shutdownnotify=\fR<cmd>
.IP
Execute command immediately before beginning shutdown. The need for
shutdown may be urgent, so be careful not to delay it long (if
the command doesn't require interaction with the server, consider
having it fork into the background).
.HP
\fB\-startupnotify=\fR<cmd>
.IP
Execute command on startup.
.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 or \fB\-maxconnections\fR=\fI\,0\/\fR)
.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
Whether to accept inbound I2P connections (default: 1). Ignored if
\fB\-i2psam\fR is not set. Listening for inbound I2P connections is done
through the SAM proxy, not by binding to a local address and
port.
.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, \fB\-connect\fR or
\fB\-maxconnections\fR=\fI\,0\/\fR)
.HP
\fB\-listenonion\fR
.IP
Automatically create Tor onion service (default: 1)
.HP
\fB\-maxconnections=\fR<n>
.IP
Maintain at most <n> automatic 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 memory usage for the 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\-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 host and port to use if onion listening enabled (default:
127.0.0.1:9051). If no port is specified, the default port of
9051 will be used.
.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: 1 when listening and no
\fB\-proxy\fR)
.HP
\fB\-v2transport\fR
.IP
Support v2 transport (default: 1)
.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: 1)
.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 debug and trace logging (default: \fB\-nodebug\fR, supplying <category>
is optional). If <category> is not supplied or if <category> = 1,
output all debug and trace logging. <category> can be: addrman,
bench, blockstorage, cmpctblock, coindb, estimatefee, http, i2p,
ipc, leveldb, libevent, mempool, mempoolrej, net, proxy, prune,
qt, rand, reindex, rpc, scan, selectcoins, tor, txpackages,
txreconciliation, util, validation, walletdb, zmq. This option
can be specified multiple times to output multiple categories.
.HP
\fB\-debugexclude=\fR<category>
.IP
Exclude debug and trace logging for a category. Can be used in
conjunction with \fB\-debug\fR=\fI\,1\/\fR to output debug and trace logging 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\-loglevelalways\fR
.IP
Always prepend a category and level (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
Relay and mine transactions whose data\-carrying raw scriptPubKey is of
this size or less (default: 83)
.HP
\fB\-mempoolfullrbf\fR
.IP
Accept transaction replace\-by\-fee without requiring replaceability
signaling (default: 0)
.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\-permitbaremultisig\fR
.IP
Relay non\-P2SH multisig (default: 1)
.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 values 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), a network/CIDR (e.g. 1.2.3.4/24), all
ipv4 (0.0.0.0/0), or all ipv6 (::/0). 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\-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-2024 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,147 @@
.TH BITCOIN-TX "1"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
.TH BITCOIN-TX "1" "June 2024" "bitcoin-tx v27.1.0" "User Commands"
.SH NAME
bitcoin-tx \- manual page for bitcoin-tx
bitcoin-tx \- manual page for bitcoin-tx v27.1.0
.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 v27.1.0
.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
Sets Replace\-By\-Fee (RBF) opt\-in sequence number for input N. If N is
not provided, the command attempts to opt\-in all available inputs
for RBF. If the transaction has no inputs, this option is
ignored.
.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-2024 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.3.
.TH BITCOIN-UTIL "1" "June 2024" "bitcoin-util v27.1.0" "User Commands"
.SH NAME
bitcoin-util \- manual page for bitcoin-util
bitcoin-util \- manual page for bitcoin-util v27.1.0
.SH SYNOPSIS
.B bitcoin-util
[\fI\,options\/\fR] [\fI\,commands\/\fR] \fI\,Do stuff\/\fR
.SH DESCRIPTION
Bitcoin Core bitcoin\-util utility version v27.1.0
.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-2024 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.3.
.TH BITCOIN-WALLET "1" "June 2024" "bitcoin-wallet v27.1.0" "User Commands"
.SH NAME
bitcoin-wallet \- manual page for bitcoin-wallet
bitcoin-wallet \- manual page for bitcoin-wallet v27.1.0
.SH DESCRIPTION
Bitcoin Core bitcoin\-wallet version v27.1.0
.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-2024 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,805 @@
.TH BITCOIND "1"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
.TH BITCOIND "1" "June 2024" "bitcoind v27.1.0" "User Commands"
.SH NAME
bitcoind \- manual page for bitcoind
bitcoind \- manual page for bitcoind v27.1.0
.SH SYNOPSIS
.B bitcoind
[\fI\,options\/\fR] \fI\,Start Bitcoin Core\/\fR
.SH DESCRIPTION
Bitcoin Core version v27.1.0
.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\-allowignoredconf\fR
.IP
For backwards compatibility, treat an unused bitcoin.conf file in the
datadir as a warning, not an error.
.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:
000000000000000000026811d149d4d261995ec5b3f64f439a0a10e1a464af9a,
testnet:
000000000001323071f38f21ea5aae529ece491eadaccce506a59bcc2d968917,
signet:
0000000870f15246ba23c16e370a7ffb1fc8a3dcf8cb4492882ed4b0e3d4cd26)
.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 (only useable from command line, not
configuration file) (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 (default: debug.log). Relative paths
will be prefixed by a net\-specific datadir location. Pass
\fB\-nodebuglogfile\fR to disable writing the log to a file.
.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 (0 = auto, up to 15, <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\-persistmempoolv1\fR
.IP
Whether a mempool.dat file created by \fB\-persistmempool\fR or the savemempool
RPC will be written in the legacy format (version 1) or the
current format (version 2). This temporary option will be removed
in the future. (default: 0)
.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. 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
If enabled, wipe chain state and block index, and rebuild them from
blk*.dat files on disk. Also wipe and rebuild other optional
indexes that are active. If an assumeutxo snapshot was loaded,
its chainstate will be wiped as well. The snapshot can then be
reloaded via RPC.
.HP
\fB\-reindex\-chainstate\fR
.IP
If enabled, wipe chain state, and rebuild it from blk*.dat files on
disk. If an assumeutxo snapshot was loaded, its chainstate will
be wiped as well. The snapshot can then be reloaded via RPC.
.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\-shutdownnotify=\fR<cmd>
.IP
Execute command immediately before beginning shutdown. The need for
shutdown may be urgent, so be careful not to delay it long (if
the command doesn't require interaction with the server, consider
having it fork into the background).
.HP
\fB\-startupnotify=\fR<cmd>
.IP
Execute command on startup.
.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 or \fB\-maxconnections\fR=\fI\,0\/\fR)
.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
Whether to accept inbound I2P connections (default: 1). Ignored if
\fB\-i2psam\fR is not set. Listening for inbound I2P connections is done
through the SAM proxy, not by binding to a local address and
port.
.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, \fB\-connect\fR or
\fB\-maxconnections\fR=\fI\,0\/\fR)
.HP
\fB\-listenonion\fR
.IP
Automatically create Tor onion service (default: 1)
.HP
\fB\-maxconnections=\fR<n>
.IP
Maintain at most <n> automatic 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 memory usage for the 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\-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 host and port to use if onion listening enabled (default:
127.0.0.1:9051). If no port is specified, the default port of
9051 will be used.
.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: 1 when listening and no
\fB\-proxy\fR)
.HP
\fB\-v2transport\fR
.IP
Support v2 transport (default: 1)
.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: 1)
.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 debug and trace logging (default: \fB\-nodebug\fR, supplying <category>
is optional). If <category> is not supplied or if <category> = 1,
output all debug and trace logging. <category> can be: addrman,
bench, blockstorage, cmpctblock, coindb, estimatefee, http, i2p,
ipc, leveldb, libevent, mempool, mempoolrej, net, proxy, prune,
qt, rand, reindex, rpc, scan, selectcoins, tor, txpackages,
txreconciliation, util, validation, walletdb, zmq. This option
can be specified multiple times to output multiple categories.
.HP
\fB\-debugexclude=\fR<category>
.IP
Exclude debug and trace logging for a category. Can be used in
conjunction with \fB\-debug\fR=\fI\,1\/\fR to output debug and trace logging 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\-loglevelalways\fR
.IP
Always prepend a category and level (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
Relay and mine transactions whose data\-carrying raw scriptPubKey is of
this size or less (default: 83)
.HP
\fB\-mempoolfullrbf\fR
.IP
Accept transaction replace\-by\-fee without requiring replaceability
signaling (default: 0)
.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\-permitbaremultisig\fR
.IP
Relay non\-P2SH multisig (default: 1)
.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 values 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), a network/CIDR (e.g. 1.2.3.4/24), all
ipv4 (0.0.0.0/0), or all ipv6 (::/0). 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\-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-2024 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,15 +1,11 @@
*The release notes draft is a temporary file that can be added to by anyone. See
[/doc/developer-notes.md#release-notes](/doc/developer-notes.md#release-notes)
for the process.*
27.x Release Notes
=====================
*version* Release Notes Draft
===============================
Bitcoin Core version 27.x is now available from:
Bitcoin Core version *version* is now available from:
<https://bitcoincore.org/bin/bitcoin-core-27.x/>
<https://bitcoincore.org/bin/bitcoin-core-*version*/>
This release includes new features, various bug fixes and performance
This release includes various bug fixes and performance
improvements, as well as updated translations.
Please report bugs using the issue tracker at GitHub:
@ -44,56 +40,42 @@ unsupported systems.
Notable changes
===============
P2P and network changes
-----------------------
### P2P
Updated RPCs
------------
- #30394 net: fix race condition in self-connect detection
### Init
Changes to wallet related RPCs can be found in the Wallet section below.
- #30435 init: change shutdown order of load block thread and scheduler
New RPCs
--------
### RPC
Build System
------------
- #30357 Fix cases of calls to FillPSBT errantly returning complete=true
Updated settings
----------------
### PSBT
- #29855 psbt: Check non witness utxo outpoint early
Changes to GUI or wallet related settings can be found in the GUI or Wallet section below.
### Build
New settings
------------
- #30283 upnp: fix build with miniupnpc 2.2.8
Tools and Utilities
-------------------
### CI
Wallet
------
GUI changes
-----------
Low-level changes
=================
RPC
---
Tests
-----
*version* change log
====================
- #30193 ci: move ASan job to GitHub Actions from Cirrus CI
- #30299 ci: remove unused bcc variable from workflow
Credits
=======
Thanks to everyone who directly contributed to this release:
- Ava Chow
- Cory Fields
- Martin Zumsande
- Max Edwards
- Sebastian Falbesoner
- willcl-ark
As well as to everyone that helped with translations on
[Transifex](https://www.transifex.com/bitcoin/bitcoin/).

View File

@ -0,0 +1,217 @@
Bitcoin Core version 27.0 is now available from:
<https://bitcoincore.org/bin/bitcoin-core-27.0/>
This release includes new features, various bug fixes and performance
improvements, as well as updated translations.
Please report bugs using the issue tracker at GitHub:
<https://github.com/bitcoin/bitcoin/issues>
To receive security and update notifications, please subscribe to:
<https://bitcoincore.org/en/list/announcements/join/>
How to Upgrade
==============
If you are running an older version, shut it down. Wait until it has completely
shut down (which might take a few minutes in some cases), then run the
installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on macOS)
or `bitcoind`/`bitcoin-qt` (on Linux).
Upgrading directly from a version of Bitcoin Core that has reached its EOL is
possible, but it might take some time if the data directory needs to be migrated. Old
wallet versions of Bitcoin Core are generally supported.
Compatibility
==============
Bitcoin Core is supported and extensively tested on operating systems
using the Linux Kernel 3.17+, macOS 11.0+, and Windows 7 and newer. Bitcoin
Core should also work on most other Unix-like systems but is not as
frequently tested on them. It is not recommended to use Bitcoin Core on
unsupported systems.
Notable changes
===============
libbitcoinconsensus
-------------------
- libbitcoinconsensus is deprecated and will be removed for v28. This library has
existed for nearly 10 years with very little known uptake or impact. It has
become a maintenance burden.
The underlying functionality does not change between versions, so any users of
the library can continue to use the final release indefinitely, with the
understanding that Taproot is its final consensus update.
In the future, libbitcoinkernel will provide a much more useful API that is
aware of the UTXO set, and therefore be able to fully validate transactions and
blocks. (#29189)
mempool.dat compatibility
-------------------------
- The `mempool.dat` file created by -persistmempool or the savemempool RPC will
be written in a new format. This new format includes the XOR'ing of transaction
contents to mitigate issues where external programs (such as anti-virus) attempt
to interpret and potentially modify the file.
This new format can not be read by previous software releases. To allow for a
downgrade, a temporary setting `-persistmempoolv1` has been added to fall back
to the legacy format. (#28207)
P2P and network changes
-----------------------
- BIP324 v2 transport is now enabled by default. It remains possible to disable v2
by running with `-v2transport=0`. (#29347)
- Manual connection options (`-connect`, `-addnode` and `-seednode`) will
now follow `-v2transport` to connect with v2 by default. They will retry with
v1 on failure. (#29058)
- Network-adjusted time has been removed from consensus code. It is replaced
with (unadjusted) system time. The warning for a large median time offset
(70 minutes or more) is kept. This removes the implicit security assumption of
requiring an honest majority of outbound peers, and increases the importance
of the node operator ensuring their system time is (and stays) correct to not
fall out of consensus with the network. (#28956)
Mempool Policy Changes
----------------------
- Opt-in Topologically Restricted Until Confirmation (TRUC) Transactions policy
(aka v3 transaction policy) is available for use on test networks when
`-acceptnonstdtxn=1` is set. By setting the transaction version number to 3, TRUC transactions
request the application of limits on spending of their unconfirmed outputs. These
restrictions simplify the assessment of incentive compatibility of accepting or
replacing TRUC transactions, thus ensuring any replacements are more profitable for
the node and making fee-bumping more reliable. TRUC transactions are currently
nonstandard and can only be used on test networks where the standardness rules are
relaxed or disabled (e.g. with `-acceptnonstdtxn=1`). (#28948)
External Signing
----------------
- Support for external signing on Windows has been disabled. It will be re-enabled
once the underlying dependency (Boost Process), has been replaced with a different
library. (#28967)
Updated RPCs
------------
- The addnode RPC now follows the `-v2transport` option (now on by default, see above) for making connections.
It remains possible to specify the transport type manually with the v2transport argument of addnode. (#29239)
Build System
------------
- A C++20 capable compiler is now required to build Bitcoin Core. (#28349)
- MacOS releases are configured to use the hardened runtime libraries (#29127)
Wallet
------
- The CoinGrinder coin selection algorithm has been introduced to mitigate unnecessary
large input sets and lower transaction costs at high feerates. CoinGrinder
searches for the input set with minimal weight. Solutions found by
CoinGrinder will produce a change output. CoinGrinder is only active at
elevated feerates (default: 30+sat/vB, based on `-consolidatefeerate`×3). (#27877)
- The Branch And Bound coin selection algorithm will be disabled when the subtract fee
from outputs feature is used. (#28994)
- If the birth time of a descriptor is detected to be later than the first transaction
involving that descriptor, the birth time will be reset to the earlier time. (#28920)
Low-level changes
=================
Pruning
-------
- When pruning during initial block download, more blocks will be pruned at each
flush in order to speed up the syncing of such nodes. (#20827)
Init
----
- Various fixes to prevent issues where subsequent instances of Bitcoin Core would
result in deletion of files in use by an existing instance. (#28784, #28946)
- Improved handling of empty `settings.json` files. (#29144)
Credits
=======
Thanks to everyone who directly contributed to this release:
- 22388o⚡
- Aaron Clauson
- Amiti Uttarwar
- Andrew Toth
- Anthony Towns
- Antoine Poinsot
- Ava Chow
- Brandon Odiwuor
- brunoerg
- Chris Stewart
- Cory Fields
- dergoegge
- djschnei21
- Fabian Jahr
- fanquake
- furszy
- Gloria Zhao
- Greg Sanders
- Hennadii Stepanov
- Hernan Marino
- iamcarlos94
- ismaelsadeeq
- Jameson Lopp
- Jesse Barton
- John Moffett
- Jon Atack
- josibake
- jrakibi
- Justin Dhillon
- Kashif Smith
- kevkevin
- Kristaps Kaupe
- L0la L33tz
- Luke Dashjr
- Lőrinc
- marco
- MarcoFalke
- Mark Friedenbach
- Marnix
- Martin Leitner-Ankerl
- Martin Zumsande
- Max Edwards
- Murch
- muxator
- naiyoma
- Nikodemas Tuckus
- ns-xvrn
- pablomartin4btc
- Peter Todd
- Pieter Wuille
- Richard Myers
- Roman Zeyde
- Russell Yanofsky
- Ryan Ofsky
- Sebastian Falbesoner
- Sergi Delgado Segura
- Sjors Provoost
- stickies-v
- stratospher
- Supachai Kheawjuy
- TheCharlatan
- UdjinM6
- Vasil Dimov
- w0xlt
- willcl-ark
As well as to everyone that helped with translations on
[Transifex](https://www.transifex.com/bitcoin/bitcoin/).

View File

@ -1 +1,692 @@
# This is a placeholder file. Please follow the instructions in `contrib/devtools/README.md` to generate a bitcoin.conf file.
##
## bitcoin.conf configuration file.
## Generated by contrib/devtools/gen-bitcoin-conf.sh.
##
## Lines beginning with # are comments.
## All possible configuration options are provided. To use, copy this file
## to your data directory (default or specified by -datadir), uncomment
## options you would like to change, and save the file.
##
### Options
# Execute command when an alert is raised (%s in cmd is replaced by
# message)
#alertnotify=<cmd>
# For backwards compatibility, treat an unused bitcoin.conf file in the
# datadir as a warning, not an error.
#allowignoredconf=1
# 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:
# 000000000000000000026811d149d4d261995ec5b3f64f439a0a10e1a464af9a,
# testnet:
# 000000000001323071f38f21ea5aae529ece491eadaccce506a59bcc2d968917,
# signet:
# 0000000870f15246ba23c16e370a7ffb1fc8a3dcf8cb4492882ed4b0e3d4cd26)
#assumevalid=<hex>
# 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.
#blockfilterindex=<type>
# Execute command when the best block changes (%s in cmd is replaced by
# block hash)
#blocknotify=<cmd>
# Extra transactions to keep in memory for compact block reconstructions
# (default: 100)
#blockreconstructionextratxn=<n>
# Specify directory to hold blocks subdirectory for *.dat files (default:
# <datadir>)
#blocksdir=<dir>
# 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)
#blocksonly=1
# Maintain coinstats index used by the gettxoutsetinfo RPC (default: 0)
#coinstatsindex=1
# Specify path to read-only configuration file. Relative paths will be
# prefixed by datadir location (only useable from command line, not
# configuration file) (default: bitcoin.conf)
#conf=<file>
# Run in the background as a daemon and accept commands (default: 0)
#daemon=1
# Wait for initialization to be finished before exiting. This implies
# -daemon (default: 0)
#daemonwait=1
# Specify data directory
#datadir=<dir>
# Maximum database cache size <n> MiB (4 to 16384, default: 450). In
# addition, unused mempool memory is shared for this cache (see
# -maxmempool).
#dbcache=<n>
# Specify location of debug log file (default: debug.log). Relative paths
# will be prefixed by a net-specific datadir location. Pass
# -nodebuglogfile to disable writing the log to a file.
#debuglogfile=<file>
# Specify additional configuration file, relative to the -datadir path
# (only useable from configuration file, not command line)
#includeconf=<file>
# Imports blocks from external file on startup
#loadblock=<file>
# Keep the transaction memory pool below <n> megabytes (default: 300)
#maxmempool=<n>
# Keep at most <n> unconnectable transactions in memory (default: 100)
#maxorphantx=<n>
# Do not keep transactions in the mempool longer than <n> hours (default:
# 336)
#mempoolexpiry=<n>
# Set the number of script verification threads (0 = auto, up to 15, <0 =
# leave that many cores free, default: 0)
#par=<n>
# Whether to save the mempool on shutdown and load on restart (default: 1)
#persistmempool=1
# Whether a mempool.dat file created by -persistmempool or the savemempool
# RPC will be written in the legacy format (version 1) or the
# current format (version 2). This temporary option will be removed
# in the future. (default: 0)
#persistmempoolv1=1
# Specify pid file. Relative paths will be prefixed by a net-specific
# datadir location. (default: bitcoind.pid)
#pid=<file>
# Reduce storage requirements by enabling pruning (deleting) of old
# blocks. This allows the pruneblockchain RPC to be called to
# delete specific blocks and enables automatic pruning of old
# blocks if a target size in MiB is provided. This mode is
# incompatible with -txindex. 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)
#prune=<n>
# If enabled, wipe chain state and block index, and rebuild them from
# blk*.dat files on disk. Also wipe and rebuild other optional
# indexes that are active. If an assumeutxo snapshot was loaded,
# its chainstate will be wiped as well. The snapshot can then be
# reloaded via RPC.
#reindex=1
# If enabled, wipe chain state, and rebuild it from blk*.dat files on
# disk. If an assumeutxo snapshot was loaded, its chainstate will
# be wiped as well. The snapshot can then be reloaded via RPC.
#reindex-chainstate=1
# Specify path to dynamic settings data file. Can be disabled with
# -nosettings. 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)
#settings=<file>
# Execute command immediately before beginning shutdown. The need for
# shutdown may be urgent, so be careful not to delay it long (if
# the command doesn't require interaction with the server, consider
# having it fork into the background).
#shutdownnotify=<cmd>
# Execute command on startup.
#startupnotify=<cmd>
# Maintain a full transaction index, used by the getrawtransaction rpc
# call (default: 0)
#txindex=1
# Print version and exit
#version=1
### Connection options
# 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 -maxconnections
# limit.
#addnode=<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.
#asmap=<file>
# Default duration (in seconds) of manually configured bans (default:
# 86400)
#bantime=<n>
# 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)
#bind=<addr>[:<port>][=onion]
# 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)
#cjdnsreachable=1
# 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.
#connect=<ip>
# Discover own IP addresses (default: 1 when listening and no -externalip
# or -proxy)
#discover=1
# Allow DNS lookups for -addnode, -seednode and -connect (default: 1)
#dns=1
# Query for peer addresses via DNS lookup, if low on addresses (default: 1
# unless -connect used or -maxconnections=0)
#dnsseed=1
# Specify your own public address
#externalip=<ip>
# Allow fixed seeds if DNS seeds don't provide peers (default: 1)
#fixedseeds=1
# Always query for peer addresses via DNS lookup (default: 0)
#forcednsseed=1
# Whether to accept inbound I2P connections (default: 1). Ignored if
# -i2psam is not set. Listening for inbound I2P connections is done
# through the SAM proxy, not by binding to a local address and
# port.
#i2pacceptincoming=1
# I2P SAM proxy to reach I2P peers and accept I2P connections (default:
# none)
#i2psam=<ip:port>
# Accept connections from outside (default: 1 if no -proxy, -connect or
# -maxconnections=0)
#listen=1
# Automatically create Tor onion service (default: 1)
#listenonion=1
# Maintain at most <n> automatic connections to peers (default: 125). This
# limit does not apply to connections manually added via -addnode
# or the addnode RPC, which have a separate limit of 8.
#maxconnections=<n>
# Maximum per-connection receive buffer, <n>*1000 bytes (default: 5000)
#maxreceivebuffer=<n>
# Maximum per-connection memory usage for the send buffer, <n>*1000 bytes
# (default: 1000)
#maxsendbuffer=<n>
# 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).
#maxtimeadjustment=1
# 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
#maxuploadtarget=<n>
# Use NAT-PMP to map the listening port (default: 0)
#natpmp=1
# Enable all P2P network activity (default: 1). Can be changed by the
# setnetworkactive RPC command
#networkactive=1
# Use separate SOCKS5 proxy to reach peers via Tor onion services, set
# -noonion to disable (default: -proxy)
#onion=<ip:port>
# 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.
#onlynet=<net>
# Serve compact block filters to peers per BIP 157 (default: 0)
#peerblockfilters=1
# Support filtering of blocks and transaction with bloom filters (default:
# 0)
#peerbloomfilters=1
# 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).
#port=<port>
# Connect through SOCKS5 proxy, set -noproxy to disable (default:
# disabled)
#proxy=<ip:port>
# Randomize credentials for every proxy connection. This enables Tor
# stream isolation (default: 1)
#proxyrandomize=1
# Connect to a node to retrieve peer addresses, and disconnect. This
# option can be specified multiple times to connect to multiple
# nodes.
#seednode=<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)
#timeout=<n>
# Tor control host and port to use if onion listening enabled (default:
# 127.0.0.1:9051). If no port is specified, the default port of
# 9051 will be used.
#torcontrol=<ip>:<port>
# Tor control port password (default: empty)
#torpassword=<pass>
# Use UPnP to map the listening port (default: 1 when listening and no
# -proxy)
#upnp=1
# Support v2 transport (default: 1)
#v2transport=1
# 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 -blocksonly 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.
#whitebind=<[permissions@]addr>
# 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 -whitebind. Can be specified multiple
# times.
#whitelist=<[permissions@]IP address or network>
### Wallet options
# What type of addresses to use ("legacy", "p2sh-segwit", "bech32", or
# "bech32m", default: "bech32")
#addresstype=1
# 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.
#avoidpartialspends=1
# What type of change to use ("legacy", "p2sh-segwit", "bech32", or
# "bech32m"). Default is "legacy" when -addresstype=legacy, else it
# is an implementation detail.
#changetype=1
# 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).
#consolidatefeerate=<amt>
# Do not load the wallet and disable wallet RPC calls
#disablewallet=1
# 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
#discardfee=<amt>
# 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)
#fallbackfee=<amt>
# 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.
#keypool=<n>
# Spend up to this amount in additional (absolute) fees (in BTC) if it
# allows the use of partial spend avoidance (default: 0.00)
#maxapsfee=<n>
# Fee rates (in BTC/kvB) smaller than this are considered zero fee for
# transaction creation (default: 0.00001)
#mintxfee=<amt>
# Fee rate (in BTC/kvB) to add to transactions you send (default: 0.00)
#paytxfee=<amt>
# External signing tool, see doc/external-signer.md
#signer=<cmd>
# Spend unconfirmed change when sending transactions (default: 1)
#spendzeroconfchange=1
# If paytxfee is not set, include enough fee so transactions begin
# confirmation on average within n blocks (default: 6)
#txconfirmtarget=<n>
# 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>.
#wallet=<path>
# Make the wallet broadcast transactions (default: 1)
#walletbroadcast=1
# Specify directory to hold wallets (default: <datadir>/wallets if it
# exists, otherwise <datadir>)
#walletdir=<dir>
# 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 (-1 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.
#walletnotify=<cmd>
# Send transactions with full-RBF opt-in enabled (RPC only, default: 1)
#walletrbf=1
### ZeroMQ notification options
# Enable publish hash block in <address>
#zmqpubhashblock=<address>
# Set publish hash block outbound message high water mark (default: 1000)
#zmqpubhashblockhwm=<n>
# Enable publish hash transaction in <address>
#zmqpubhashtx=<address>
# Set publish hash transaction outbound message high water mark (default:
# 1000)
#zmqpubhashtxhwm=<n>
# Enable publish raw block in <address>
#zmqpubrawblock=<address>
# Set publish raw block outbound message high water mark (default: 1000)
#zmqpubrawblockhwm=<n>
# Enable publish raw transaction in <address>
#zmqpubrawtx=<address>
# Set publish raw transaction outbound message high water mark (default:
# 1000)
#zmqpubrawtxhwm=<n>
# Enable publish hash block and tx sequence in <address>
#zmqpubsequence=<address>
# Set publish hash sequence message high water mark (default: 1000)
#zmqpubsequencehwm=<n>
### Debugging/Testing options
# Output debug and trace logging (default: -nodebug, supplying <category>
# is optional). If <category> is not supplied or if <category> = 1,
# output all debug and trace logging. <category> can be: addrman,
# bench, blockstorage, cmpctblock, coindb, estimatefee, http, i2p,
# ipc, leveldb, libevent, mempool, mempoolrej, net, proxy, prune,
# qt, rand, reindex, rpc, scan, selectcoins, tor, txpackages,
# txreconciliation, util, validation, walletdb, zmq. This option
# can be specified multiple times to output multiple categories.
#debug=<category>
# Exclude debug and trace logging for a category. Can be used in
# conjunction with -debug=1 to output debug and trace logging for
# all categories except the specified category. This option can be
# specified multiple times to exclude multiple categories.
#debugexclude=<category>
# Print help message with debugging options and exit
#help-debug=1
# Include IP addresses in debug output (default: 0)
#logips=1
# Always prepend a category and level (default: 0)
#loglevelalways=1
# Prepend debug output with name of the originating source location
# (source file, line number and function name) (default: 0)
#logsourcelocations=1
# Prepend debug output with name of the originating thread (only available
# on platforms supporting thread_local) (default: 0)
#logthreadnames=1
# Prepend debug output with timestamp (default: 1)
#logtimestamps=1
# Maximum total fees (in BTC) to use in a single wallet transaction;
# setting this too low may abort large transactions (default: 0.10)
#maxtxfee=<amt>
# Send trace/debug info to console (default: 1 when no -daemon. To disable
# logging to file, set -nodebuglogfile)
#printtoconsole=1
# Shrink debug.log file on client startup (default: 1 when no -debug)
#shrinkdebugfile=1
# Append comment to the user agent string
#uacomment=<cmt>
### Chain selection options
# Use the chain <chain> (default: main). Allowed values: main, test,
# signet, regtest
#chain=<chain>
# Use the signet chain. Equivalent to -chain=signet. Note that the network
# is defined by the -signetchallenge parameter
#signet=1
# Blocks must satisfy the given script to be considered valid (only for
# signet networks; defaults to the global default signet test
# network challenge)
#signetchallenge=1
# 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))
#signetseednode=1
# Use the test chain. Equivalent to -chain=test.
#testnet=1
### Node relay options
# Equivalent bytes per sigop in transactions for relay and mining
# (default: 20)
#bytespersigop=1
# Relay and mine data carrier transactions (default: 1)
#datacarrier=1
# Relay and mine transactions whose data-carrying raw scriptPubKey is of
# this size or less (default: 83)
#datacarriersize=1
# Accept transaction replace-by-fee without requiring replaceability
# signaling (default: 0)
#mempoolfullrbf=1
# Fees (in BTC/kvB) smaller than this are considered zero fee for
# relaying, mining and transaction creation (default: 0.00001)
#minrelaytxfee=<amt>
# Relay non-P2SH multisig (default: 1)
#permitbaremultisig=1
# 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)
#whitelistforcerelay=1
# Add 'relay' permission to whitelisted inbound peers with default
# permissions. This will accept relayed transactions even when not
# relaying transactions (default: 1)
#whitelistrelay=1
### Block creation options
# Set maximum BIP141 block weight (default: 3996000)
#blockmaxweight=<n>
# Set lowest fee rate (in BTC/kvB) for transactions to be included in
# block creation. (default: 0.00001)
#blockmintxfee=<amt>
### RPC server options
# Accept public REST requests (default: 0)
#rest=1
# Allow JSON-RPC connections from specified source. Valid values 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), a network/CIDR (e.g. 1.2.3.4/24), all
# ipv4 (0.0.0.0/0), or all ipv6 (::/0). This option can be
# specified multiple times
#rpcallowip=<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
#rpcauth=<userpw>
# 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 -rpcallowip is also passed. Port is
# optional and overrides -rpcport. Use [host]:port notation for
# IPv6. This option can be specified multiple times (default:
# 127.0.0.1 and ::1 i.e., localhost)
#rpcbind=<addr>[:port]
# Location of the auth cookie. Relative paths will be prefixed by a
# net-specific datadir location. (default: data dir)
#rpccookiefile=<loc>
# Password for JSON-RPC connections
#rpcpassword=<pw>
# Listen for JSON-RPC connections on <port> (default: 8332, testnet:
# 18332, signet: 38332, regtest: 18443)
#rpcport=<port>
# Set the number of threads to service RPC calls (default: 4)
#rpcthreads=<n>
# Username for JSON-RPC connections
#rpcuser=<user>
# 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 -rpcwhitelistdefault documentation
# for information on default whitelist behavior.
#rpcwhitelist=<whitelist>
# Sets default behavior for rpc whitelisting. Unless rpcwhitelistdefault
# is set to 0, if any -rpcwhitelist 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
# -rpcwhitelist is set, rpc server acts as if all rpc users are
# subject to empty whitelists.
#rpcwhitelistdefault=1
# Accept command line and JSON-RPC commands
#server=1
# [Sections]
# Most options will apply to all networks. To confine an option to a specific
# network, add it under the relevant section below.
#
# Note: If not specified under a network section, the options addnode, connect,
# port, bind, rpcport, rpcbind, and wallet will only apply to mainnet.
# Options for mainnet
[main]
# Options for testnet
[test]
# Options for signet
[signet]
# Options for regtest
[regtest]

View File

@ -274,7 +274,7 @@ FUZZ_SUITE_LD_COMMON += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS)
endif
if ENABLE_FUZZ_BINARY
test_fuzz_fuzz_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS)
test_fuzz_fuzz_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS) $(EVENT_CFLAGS)
test_fuzz_fuzz_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_fuzz_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_fuzz_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)

View File

@ -256,6 +256,6 @@ util::Result<int> SighashFromStr(const std::string& sighash)
if (it != map_sighash_values.end()) {
return it->second;
} else {
return util::Error{Untranslated(sighash + " is not a valid sighash parameter.")};
return util::Error{Untranslated("'" + sighash + "' is not a valid sighash parameter.")};
}
}

View File

@ -13,6 +13,13 @@
namespace sha256_sse4
{
void Transform(uint32_t* s, const unsigned char* chunk, size_t blocks)
#if defined(__clang__) && !defined(__OPTIMIZE__)
/*
clang is unable to compile this with -O0 and -fsanitize=address.
See upstream bug: https://github.com/llvm/llvm-project/issues/92182
*/
__attribute__((no_sanitize("address")))
#endif
{
static const uint32_t K256 alignas(16) [] = {
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,

View File

@ -164,9 +164,9 @@ void BaseIndex::ThreadSync()
const CBlockIndex* pindex_next = NextSyncBlock(pindex, m_chainstate->m_chain);
if (!pindex_next) {
SetBestBlockIndex(pindex);
m_synced = true;
// No need to handle errors in Commit. See rationale above.
Commit();
m_synced = true;
break;
}
if (pindex_next->pprev != pindex && !Rewind(pindex, pindex_next->pprev)) {

View File

@ -296,10 +296,11 @@ void Shutdown(NodeContext& node)
StopTorControl();
// After everything has been shut down, but before things get flushed, stop the
// scheduler and load block thread.
if (node.scheduler) node.scheduler->stop();
if (node.chainman && node.chainman->m_thread_load.joinable()) node.chainman->m_thread_load.join();
// After everything has been shut down, but before things get flushed, stop the
// the scheduler. After this point, SyncWithValidationInterfaceQueue() should not be called anymore
// as this would prevent the shutdown from completing.
if (node.scheduler) node.scheduler->stop();
// After the threads that potentially access these pointers have been stopped,
// destruct and reset all to nullptr.

View File

@ -133,7 +133,7 @@ public:
// release ASAP to avoid it where possible.
vSeeds.emplace_back("seed.bitcoin.sipa.be."); // Pieter Wuille, only supports x1, x5, x9, and xd
vSeeds.emplace_back("dnsseed.bluematt.me."); // Matt Corallo, only supports x9
vSeeds.emplace_back("dnsseed.bitcoin.dashjr.org."); // Luke Dashjr
vSeeds.emplace_back("dnsseed.bitcoin.dashjr-list-of-p2p-nodes.us."); // Luke Dashjr
vSeeds.emplace_back("seed.bitcoinstats.com."); // Christian Decker, supports x1 - xf
vSeeds.emplace_back("seed.bitcoin.jonasschnelli.ch."); // Jonas Schnelli, only supports x1, x5, x9, and xd
vSeeds.emplace_back("seed.btc.petertodd.net."); // Peter Todd, only supports x1, x5, x9, and xd

View File

@ -163,8 +163,11 @@ static bool ProcessUpnp()
struct UPNPUrls urls;
struct IGDdatas data;
int r;
#if MINIUPNPC_API_VERSION <= 17
r = UPNP_GetValidIGD(devlist, &urls, &data, lanaddr, sizeof(lanaddr));
#else
r = UPNP_GetValidIGD(devlist, &urls, &data, lanaddr, sizeof(lanaddr), nullptr, 0);
#endif
if (r == 1)
{
if (fDiscover) {

View File

@ -2795,7 +2795,7 @@ std::vector<AddedNodeInfo> CConnman::GetAddedNodeInfo(bool include_connected) co
}
for (const auto& addr : lAddresses) {
CService service(LookupNumeric(addr.m_added_node, GetDefaultPort(addr.m_added_node)));
CService service{MaybeFlipIPv6toCJDNS(LookupNumeric(addr.m_added_node, GetDefaultPort(addr.m_added_node)))};
AddedNodeInfo addedNode{addr, CService(), false, false};
if (service.IsValid()) {
// strAddNode is an IP:port

View File

@ -999,8 +999,8 @@ public:
/** Mutex for anything that is only accessed via the msg processing thread */
static Mutex g_msgproc_mutex;
/** Initialize a peer (setup state, queue any initial messages) */
virtual void InitializeNode(CNode& node, ServiceFlags our_services) = 0;
/** Initialize a peer (setup state) */
virtual void InitializeNode(const CNode& node, ServiceFlags our_services) = 0;
/** Handle removal of a peer (clear state) */
virtual void FinalizeNode(const CNode& node) = 0;

View File

@ -245,6 +245,9 @@ struct Peer {
* Most peers use headers-first syncing, which doesn't use this mechanism */
uint256 m_continuation_block GUARDED_BY(m_block_inv_mutex) {};
/** Set to true once initial VERSION message was sent (only relevant for outbound peers). */
bool m_outbound_version_message_sent GUARDED_BY(NetEventsInterface::g_msgproc_mutex){false};
/** This peer's reported block height when we connected */
std::atomic<int> m_starting_height{-1};
@ -499,7 +502,7 @@ public:
EXCLUSIVE_LOCKS_REQUIRED(!m_most_recent_block_mutex);
/** Implement NetEventsInterface */
void InitializeNode(CNode& node, ServiceFlags our_services) override EXCLUSIVE_LOCKS_REQUIRED(!m_peer_mutex);
void InitializeNode(const CNode& node, ServiceFlags our_services) override EXCLUSIVE_LOCKS_REQUIRED(!m_peer_mutex);
void FinalizeNode(const CNode& node) override EXCLUSIVE_LOCKS_REQUIRED(!m_peer_mutex, !m_headers_presync_mutex);
bool HasAllDesirableServiceFlags(ServiceFlags services) const override;
bool ProcessMessages(CNode* pfrom, std::atomic<bool>& interrupt) override
@ -1563,7 +1566,7 @@ void PeerManagerImpl::UpdateLastBlockAnnounceTime(NodeId node, int64_t time_in_s
if (state) state->m_last_block_announcement = time_in_seconds;
}
void PeerManagerImpl::InitializeNode(CNode& node, ServiceFlags our_services)
void PeerManagerImpl::InitializeNode(const CNode& node, ServiceFlags our_services)
{
NodeId nodeid = node.GetId();
{
@ -1576,9 +1579,6 @@ void PeerManagerImpl::InitializeNode(CNode& node, ServiceFlags our_services)
LOCK(m_peer_mutex);
m_peer_map.emplace_hint(m_peer_map.end(), nodeid, peer);
}
if (!node.IsInboundConn()) {
PushNodeVersion(node, *peer);
}
}
void PeerManagerImpl::ReattemptInitialBroadcast(CScheduler& scheduler)
@ -5060,6 +5060,10 @@ bool PeerManagerImpl::ProcessMessages(CNode* pfrom, std::atomic<bool>& interrupt
PeerRef peer = GetPeerRef(pfrom->GetId());
if (peer == nullptr) return false;
// For outbound connections, ensure that the initial VERSION message
// has been sent first before processing any incoming messages
if (!pfrom->IsInboundConn() && !peer->m_outbound_version_message_sent) return false;
{
LOCK(peer->m_getdata_requests_mutex);
if (!peer->m_getdata_requests.empty()) {
@ -5548,6 +5552,12 @@ bool PeerManagerImpl::SendMessages(CNode* pto)
// disconnect misbehaving peers even before the version handshake is complete.
if (MaybeDiscourageAndDisconnect(*pto, *peer)) return true;
// Initiate version handshake for outbound connections
if (!pto->IsInboundConn() && !peer->m_outbound_version_message_sent) {
PushNodeVersion(*pto, *peer);
peer->m_outbound_version_message_sent = true;
}
// Don't send anything until the version handshake is complete
if (!pto->fSuccessfullyConnected || pto->fDisconnect)
return true;

View File

@ -1173,8 +1173,13 @@ struct PartiallySignedTransaction
inputs.push_back(input);
// Make sure the non-witness utxo matches the outpoint
if (input.non_witness_utxo && input.non_witness_utxo->GetHash() != tx->vin[i].prevout.hash) {
throw std::ios_base::failure("Non-witness UTXO does not match outpoint hash");
if (input.non_witness_utxo) {
if (input.non_witness_utxo->GetHash() != tx->vin[i].prevout.hash) {
throw std::ios_base::failure("Non-witness UTXO does not match outpoint hash");
}
if (tx->vin[i].prevout.n >= input.non_witness_utxo->vout.size()) {
throw std::ios_base::failure("Input specifies output index that does not exist");
}
}
++i;
}

View File

@ -2,34 +2,6 @@
<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">&amp;جديد</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">&amp;نسخ</translation>
</message>
<message>
<source>C&amp;lose</source>
<translation type="unfinished">ا&amp;غلاق</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>
@ -42,62 +14,10 @@
<translation type="unfinished">&amp;تصدير</translation>
</message>
<message>
<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>
</message>
<message>
<source>C&amp;hoose</source>
<translation type="unfinished">ا&amp;ختر</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">هذه عناوين البتكوين الخاصة بك لاستلام المدفوعات. قم بالنقر على زر انشاء عنوان استلام جديد لإنشاء عناوين جديدة.
التوقيع ممكن باستخدام العناوين القديمة "Legacy" فقط.</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>&amp;Edit</source>
<translation type="unfinished">&amp;تحرير</translation>
</message>
<message>
<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>
<translation type="unfinished">حدث خطأ أثناء محاولة حفظ قائمة العناوين في %1. يرجى معاودة المحاولة. </translation>
</message>
<message>
<source>Exporting Failed</source>
<translation type="unfinished">فشل التصدير</translation>
</message>
</context>
</context>
<context>
<name>AddressTableModel</name>
<message>
@ -1639,11 +1559,6 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<translation type="unfinished">تفعيل التحكم ب &amp;المعاملات الموقعة جزئيا</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">خيار عرض التحكم بالمعاملات الموقعة جزئيا.</translation>
</message>
<message>
<source>External Signer (e.g. hardware wallet)</source>
<translation type="unfinished">جهاز التوقيع الخارجي (مثل المحفظة الخارجية)</translation>
</message>

View File

@ -281,43 +281,43 @@ Daxil olma, yalnız 'qanuni' tipli ünvanlar ilə mümkündür.</translation>
<message numerus="yes">
<source>%n second(s)</source>
<translation type="unfinished">
<numerusform />
<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>%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>%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>%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>%n week(s)</numerusform>
<numerusform>%n week(s)</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n year(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>%n year(s)</numerusform>
<numerusform>%n year(s)</numerusform>
</translation>
</message>
</context>
@ -1136,30 +1136,30 @@ Daxil olma, yalnız 'qanuni' tipli ünvanlar ilə mümkündür.</translation>
<message numerus="yes">
<source>%n GB of space available</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>%n GB of space available</numerusform>
<numerusform>%n GB of space available</numerusform>
</translation>
</message>
<message numerus="yes">
<source>(of %n GB needed)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>(of %n GB needed)</numerusform>
<numerusform>(of %n GB needed)</numerusform>
</translation>
</message>
<message numerus="yes">
<source>(%n GB needed for full chain)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>(%n GB needed for full chain)</numerusform>
<numerusform>(%n GB needed for full chain)</numerusform>
</translation>
</message>
<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 />
<numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
<numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
</translation>
</message>
<message>
@ -1457,8 +1457,8 @@ Daxil olma, yalnız 'qanuni' tipli ünvanlar ilə mümkündür.</translation>
<message numerus="yes">
<source>Estimated to begin confirmation within %n block(s).</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
<numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
</translation>
</message>
<message>
@ -1479,8 +1479,8 @@ Daxil olma, yalnız 'qanuni' tipli ünvanlar ilə mümkündür.</translation>
<message numerus="yes">
<source>matures in %n more block(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>matures in %n more block(s)</numerusform>
<numerusform>matures in %n more block(s)</numerusform>
</translation>
</message>
<message>

View File

@ -285,43 +285,43 @@ Daxil olma, yalnız 'qanuni' tipli ünvanlar ilə mümkündür.</translation>
<message numerus="yes">
<source>%n second(s)</source>
<translation type="unfinished">
<numerusform />
<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>%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>%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>%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>%n week(s)</numerusform>
<numerusform>%n week(s)</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n year(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>%n year(s)</numerusform>
<numerusform>%n year(s)</numerusform>
</translation>
</message>
</context>
@ -1140,30 +1140,30 @@ Daxil olma, yalnız 'qanuni' tipli ünvanlar ilə mümkündür.</translation>
<message numerus="yes">
<source>%n GB of space available</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>%n GB of space available</numerusform>
<numerusform>%n GB of space available</numerusform>
</translation>
</message>
<message numerus="yes">
<source>(of %n GB needed)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>(of %n GB needed)</numerusform>
<numerusform>(of %n GB needed)</numerusform>
</translation>
</message>
<message numerus="yes">
<source>(%n GB needed for full chain)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>(%n GB needed for full chain)</numerusform>
<numerusform>(%n GB needed for full chain)</numerusform>
</translation>
</message>
<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 />
<numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
<numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
</translation>
</message>
<message>
@ -1461,8 +1461,8 @@ Daxil olma, yalnız 'qanuni' tipli ünvanlar ilə mümkündür.</translation>
<message numerus="yes">
<source>Estimated to begin confirmation within %n block(s).</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
<numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
</translation>
</message>
<message>
@ -1483,8 +1483,8 @@ Daxil olma, yalnız 'qanuni' tipli ünvanlar ilə mümkündür.</translation>
<message numerus="yes">
<source>matures in %n more block(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>matures in %n more block(s)</numerusform>
<numerusform>matures in %n more block(s)</numerusform>
</translation>
</message>
<message>

View File

@ -83,6 +83,14 @@
<translation type="unfinished">Адбылася памылка падчас спробы захаваць адрас у %1. Паспрабуйце зноў.</translation>
</message>
<message>
<source>Sending addresses - %1</source>
<translation type="unfinished">Адрасы адпраўкі - %1</translation>
</message>
<message>
<source>Receiving addresses - %1</source>
<translation type="unfinished">Адрасы прымання - %1</translation>
</message>
<message>
<source>Exporting Failed</source>
<translation type="unfinished">Экспартаванне няўдалае</translation>
</message>
@ -157,6 +165,10 @@
<translation type="unfinished">Гаманец зашыфраваны</translation>
</message>
<message>
<source>Wallet to be 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>
</message>

View File

@ -1500,7 +1500,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<source>Unknown. Syncing Headers (%1, %2%)</source>
<translation type="unfinished">Неизвестно. Синхронизиране на Глави (%1, %2%)...</translation>
</message>
</context>
<message>
<source>Unknown. Pre-syncing Headers (%1, %2%)</source>
<translation type="unfinished">Неизвестно. Предварителна синхронизация на хедъри (%1, %2%)</translation>
</message>
</context>
<context>
<name>OpenURIDialog</name>
<message>

View File

@ -311,6 +311,12 @@ Només és possible firmar amb adreces del tipus "legacy".</translation>
<translation type="unfinished">No encaminable</translation>
</message>
<message>
<source>Onion</source>
<comment>network name</comment>
<extracomment>Name of Tor network in peer info</extracomment>
<translation type="unfinished">Ceba</translation>
</message>
<message>
<source>Inbound</source>
<extracomment>An inbound connection from a peer. An inbound connection is a connection initiated by a peer.</extracomment>
<translation type="unfinished">Entrant</translation>
@ -347,36 +353,36 @@ Només és possible firmar amb adreces del tipus "legacy".</translation>
<message numerus="yes">
<source>%n second(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>%n segons</numerusform>
<numerusform>%n segon(s)</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n minute(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>%n minuts</numerusform>
<numerusform>%n minuts</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n hour(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>%n hores</numerusform>
<numerusform>%n hores</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n day(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>%n dies</numerusform>
<numerusform>%n dies</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n week(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>%n setmanes</numerusform>
<numerusform>%n setmanes</numerusform>
</translation>
</message>
<message>
@ -386,8 +392,8 @@ Només és possible firmar amb adreces del tipus "legacy".</translation>
<message numerus="yes">
<source>%n year(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>%n any</numerusform>
<numerusform>%n anys</numerusform>
</translation>
</message>
</context>
@ -1136,7 +1142,22 @@ El procés de migració crearà una còpia de seguretat de la cartera abans de m
<extracomment>Descriptive text of the restore wallets progress window which indicates to the user that wallets are currently being restored.</extracomment>
<translation type="unfinished">Restaurant cartera &lt;b&gt;%1&lt;/b&gt;...</translation>
</message>
</context>
<message>
<source>Restore wallet failed</source>
<extracomment>Title of message box which is displayed when the wallet could not be restored.</extracomment>
<translation type="unfinished">Reestablir cartera ha fallat</translation>
</message>
<message>
<source>Restore wallet warning</source>
<extracomment>Title of message box which is displayed when the wallet is restored with some warning.</extracomment>
<translation type="unfinished">Avís al restaurar la cartera</translation>
</message>
<message>
<source>Restore wallet message</source>
<extracomment>Title of message box which is displayed when the wallet is successfully restored.</extracomment>
<translation type="unfinished">Missatge al restaurar la cartera</translation>
</message>
</context>
<context>
<name>WalletController</name>
<message>
@ -1167,6 +1188,14 @@ El procés de migració crearà una còpia de seguretat de la cartera abans de m
<translation type="unfinished">Crear cartera</translation>
</message>
<message>
<source>You are one step away from creating your new wallet!</source>
<translation type="unfinished">Només et queda un pas per a crear la teva nova cartera</translation>
</message>
<message>
<source>Please provide a name and, if desired, enable any advanced options</source>
<translation type="unfinished">Si us plau, proporciona un nom i, si vols, activa qualsevol opció avançada</translation>
</message>
<message>
<source>Wallet Name</source>
<translation type="unfinished">Nom de la cartera</translation>
</message>
@ -1304,8 +1333,8 @@ Això és ideal per a carteres de mode només lectura.</translation>
<message numerus="yes">
<source>%n GB of space available</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>%n GB d'espai lliure disponible</numerusform>
<numerusform>%n GB d'espai lliure disponibles</numerusform>
</translation>
</message>
<message numerus="yes">
@ -1379,6 +1408,10 @@ Això és ideal per a carteres de mode només lectura.</translation>
<translation type="unfinished">Aquesta sincronització inicial és molt exigent i pot exposar problemes de maquinari amb l'equip que anteriorment havien passat desapercebuts. Cada vegada que executeu %1, continuarà descarregant des del punt on es va deixar.</translation>
</message>
<message>
<source>When you click OK, %1 will begin to download and process the full %4 block chain (%2 GB) starting with the earliest transactions in %3 when %4 initially launched.</source>
<translation type="unfinished">Quan feu clic a D'acord, %1 començarà a descarregar i processar la cadena de blocs %4 completa (%2 GB) començant per les primeres transaccions de %3, any de llençament inicial de %4.</translation>
</message>
<message>
<source>If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low.</source>
<translation type="unfinished">Si heu decidit limitar l'emmagatzematge de la cadena de blocs (podar), les dades històriques encara s'hauran de baixar i processar, però se suprimiran més endavant per a mantenir baix l'ús del disc.</translation>
</message>
@ -1471,7 +1504,11 @@ Això és ideal per a carteres de mode només lectura.</translation>
<source>Unknown. Syncing Headers (%1, %2%)</source>
<translation type="unfinished">Desconegut. Sincronització de les capçaleres (%1, %2%)...</translation>
</message>
</context>
<message>
<source>Unknown. Pre-syncing Headers (%1, %2%)</source>
<translation type="unfinished">Desconegut. Sincronització de les capçaleres (%1, %2%)...</translation>
</message>
</context>
<context>
<name>OpenURIDialog</name>
<message>
@ -1527,6 +1564,10 @@ Això és ideal per a carteres de mode només lectura.</translation>
<translation type="unfinished">Minimitza en comptes de sortir de l'aplicació quan la finestra es tanca. Quan s'habilita aquesta opció l'aplicació es tancarà només quan se selecciona Surt del menú. </translation>
</message>
<message>
<source>Options set in this dialog are overridden by the command line:</source>
<translation type="unfinished">Les opcions configurades en aquest diàleg són sobreescrites per la línia de comandes:</translation>
</message>
<message>
<source>Open the %1 configuration file from the working directory.</source>
<translation type="unfinished">Obriu el fitxer de configuració %1 des del directori de treball.</translation>
</message>
@ -1559,6 +1600,11 @@ Això és ideal per a carteres de mode només lectura.</translation>
<translation type="unfinished">(0 = auto, &lt;0 = deixa tants nuclis lliures)</translation>
</message>
<message>
<source>Enable R&amp;PC server</source>
<extracomment>An Options window setting to enable the RPC server.</extracomment>
<translation type="unfinished">Activa el servidor R&amp;PC</translation>
</message>
<message>
<source>W&amp;allet</source>
<translation type="unfinished">&amp;Moneder</translation>
</message>
@ -1575,6 +1621,11 @@ Això és ideal per a carteres de mode només lectura.</translation>
<translation type="unfinished">&amp;Gasta el canvi sense confirmar</translation>
</message>
<message>
<source>Enable &amp;PSBT controls</source>
<extracomment>An options window setting to enable PSBT controls.</extracomment>
<translation type="unfinished">Activa els controls &amp;PSBT</translation>
</message>
<message>
<source>External Signer (e.g. hardware wallet)</source>
<translation type="unfinished">Signador extern (per exemple, cartera de maquinari)</translation>
</message>
@ -1671,6 +1722,14 @@ Això és ideal per a carteres de mode només lectura.</translation>
<translation type="unfinished">Selecciona la unitat de subdivisió per defecte per a mostrar en la interfície quan s'envien monedes.</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 de terceres parts (p. ex. explorador de blocs) que apareix en la pestanya de transaccions com elements del menú contextual. %s en l'URL es reemplaçat pel resum de la transacció. Diferents URL estan separades per una barra vertical |.</translation>
</message>
<message>
<source>&amp;Third-party transaction URLs</source>
<translation type="unfinished">URL de transaccions de tercers</translation>
</message>
<message>
<source>Whether to show coin control features or not.</source>
<translation type="unfinished">Si voleu mostrar les funcions de control de monedes o no.</translation>
</message>
@ -1729,6 +1788,10 @@ Això és ideal per a carteres de mode només lectura.</translation>
<translation type="unfinished">El fitxer de configuració s'utilitza per a especificar les opcions d'usuari avançades que substitueixen la configuració de la interfície gràfica d'usuari. A més, qualsevol opció de la línia d'ordres substituirà aquest fitxer de configuració.</translation>
</message>
<message>
<source>Continue</source>
<translation type="unfinished">Continua</translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished">Cancel·la</translation>
</message>
@ -1819,6 +1882,10 @@ Això és ideal per a carteres de mode només lectura.</translation>
<context>
<name>PSBTOperationsDialog</name>
<message>
<source>PSBT Operations</source>
<translation type="unfinished">Operacions PSBT</translation>
</message>
<message>
<source>Sign Tx</source>
<translation type="unfinished">Signa Tx</translation>
</message>
@ -1916,6 +1983,10 @@ Això és ideal per a carteres de mode només lectura.</translation>
<translation type="unfinished">La transacció encara necessita una o vàries firmes.</translation>
</message>
<message>
<source>(But no wallet is loaded.)</source>
<translation type="unfinished">(Cap cartera ha estat carregada.)</translation>
</message>
<message>
<source>(But this wallet cannot sign transactions.)</source>
<translation type="unfinished">(Però aquesta cartera no pot firmar transaccions.)</translation>
</message>
@ -1980,6 +2051,11 @@ Si rebeu aquest error, haureu de sol·licitar al comerciant que proporcioni un U
<translation type="unfinished">Igual</translation>
</message>
<message>
<source>Age</source>
<extracomment>Title of Peers Table column which indicates the duration (length of time) since the peer connection started.</extracomment>
<translation type="unfinished">Edat</translation>
</message>
<message>
<source>Direction</source>
<extracomment>Title of Peers Table column which indicates the direction the peer connection was initiated from.</extracomment>
<translation type="unfinished">Direcció</translation>
@ -2864,6 +2940,11 @@ Nota: atès que la tarifa es calcula per byte, una tarifa de "100 satoshis per k
<translation type="unfinished">Si us plau, revisa la teva proposta de transacció. Es produirà una transacció de Bitcoin amb firma parcial (PSBT) que podeu guardar o copiar i després firmar, per exemple, amb una cartera %1, o amb una cartera física compatible amb 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">Voleu crear aquesta transacció?</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>
<translation type="unfinished">Reviseu la transacció</translation>
@ -3247,8 +3328,10 @@ Nota: atès que la tarifa es calcula per byte, una tarifa de "100 satoshis per k
<message numerus="yes">
<source>matures in %n more block(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>madura en %n bloc més
</numerusform>
<numerusform>madura en %n blocs més
</numerusform>
</translation>
</message>
<message>
@ -3897,6 +3980,23 @@ Ves a Arxiu &gt; Obrir Cartera per a carregar cartera.
<translation type="unfinished">No es pot escriure en el directori de dades "%s". Reviseu-ne els permisos.</translation>
</message>
<message>
<source>%s is set very high! Fees this large could be paid on a single transaction.</source>
<translation type="unfinished">%s especificat molt alt! Tarifes tan grans podrien pagar-se en una única transacció.
</translation>
</message>
<message>
<source>Error reading %s! All keys read correctly, but transaction data or address metadata may be missing or incorrect.</source>
<translation type="unfinished">S'ha produït un error en llegir %s. Totes les claus es llegeixen correctament, però les dades de la transacció o les entra des de la llibreta d'adreces podrien faltar o ser incorrectes.</translation>
</message>
<message>
<source>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable %s.</source>
<translation type="unfinished">L'estimació de la quota ha fallat. Fallbackfee està desactivat. Espereu uns quants blocs o activeu %s.</translation>
</message>
<message>
<source>Invalid amount for %s=&lt;amount&gt;: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source>
<translation type="unfinished">Import no vàlid per a %s=&lt;amount&gt;: '%s' (cal que sigui com a mínim la comissió de minrelay de %s per evitar que les comissions s'encallin)</translation>
</message>
<message>
<source>Config setting for %s only applied on %s network when in [%s] section.</source>
<translation type="unfinished">Configuració per a %s únicament aplicada a %s de la xarxa quan es troba a la secció [%s].</translation>
</message>
@ -4070,6 +4170,14 @@ Ves a Arxiu &gt; Obrir Cartera per a carregar cartera.
<translation type="unfinished">Permís P2P no vàlid: '%s'</translation>
</message>
<message>
<source>Invalid amount for %s=&lt;amount&gt;: '%s' (must be at least %s)</source>
<translation type="unfinished">Import no vàlid per a %s=&lt;amount&gt;: «%s» (ha de ser com a mínim %s)</translation>
</message>
<message>
<source>Invalid amount for %s=&lt;amount&gt;: '%s'</source>
<translation type="unfinished">Import invàlid per a %s=&lt;amount&gt;: '%s'</translation>
</message>
<message>
<source>Invalid amount for -%s=&lt;amount&gt;: '%s'</source>
<translation type="unfinished">Import invàlid per a -%s=&lt;amount&gt;: '%s'</translation>
</message>
@ -4078,6 +4186,10 @@ Ves a Arxiu &gt; Obrir Cartera per a carregar cartera.
<translation type="unfinished">S'ha especificat una màscara de xarxa no vàlida a -whitelist: «%s»</translation>
</message>
<message>
<source>Listening for incoming connections failed (listen returned error %s)</source>
<translation type="unfinished">ha fallat escoltar les connexions entrants (l'escoltament ha retornat l'error %s)</translation>
</message>
<message>
<source>Loading P2P addresses</source>
<translation type="unfinished">S'estan carregant les adreces P2P...</translation>
</message>
@ -4166,6 +4278,10 @@ Ves a Arxiu &gt; Obrir Cartera per a carregar cartera.
<translation type="unfinished">El directori de blocs especificat "%s" no existeix.</translation>
</message>
<message>
<source>Specified data directory "%s" does not exist.</source>
<translation type="unfinished">El directori de dades especificat «%s» no existeix.</translation>
</message>
<message>
<source>Starting network threads</source>
<translation type="unfinished">S'estan iniciant fils de xarxa...</translation>
</message>

View File

@ -4148,6 +4148,12 @@ Ověřuji peněženku.</translation>
<translation type="unfinished">Chyba při načtení %s: Externí podepisovací peněženka se načítá bez zkompilované podpory externího podpisovatele.</translation>
</message>
<message>
<source>Error reading %s! All keys read correctly, but transaction data or address metadata may be missing or incorrect.</source>
<translation type="unfinished">Nastala chyba při čtení souboru %s! Všechny klíče se přečetly správně, ale data o transakcích nebo záznamy v adresáři moho
u chybět či být nesprávné.
</translation>
</message>
<message>
<source>Error: Address book data in wallet cannot be identified to belong to migrated wallets</source>
<translation type="unfinished">Chyba: Data adres v peněžence není možné identifikovat jako data patřící k migrovaným peněženkám.</translation>
</message>
@ -4730,6 +4736,10 @@ Nelze obnovit zálohu peněženky.</translation>
<translation type="unfinished">Nepodporovaná logovací kategorie %s=%s.</translation>
</message>
<message>
<source>Error: Could not add watchonly tx %s to watchonly wallet</source>
<translation type="unfinished">Chyba: Nelze přidat pouze-sledovací tx %s do peněženky pro čtení</translation>
</message>
<message>
<source>User Agent comment (%s) contains unsafe characters.</source>
<translation type="unfinished">Komentář u typu klienta (%s) obsahuje riskantní znaky.</translation>
</message>

View File

@ -1187,8 +1187,8 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<message numerus="yes">
<source>%n GB of space available</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>%n GB fri plads tilgængelig</numerusform>
<numerusform>%n GB fri plads tilgængelig</numerusform>
</translation>
</message>
<message numerus="yes">
@ -1266,6 +1266,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<translation type="unfinished">Denne indledningsvise synkronisering er meget krævende, og den kan potentielt afsløre hardwareproblemer med din computer, som du ellers ikke har lagt mærke til. Hver gang, du kører %1, vil den fortsætte med at downloade, hvor den sidst slap.</translation>
</message>
<message>
<source>When you click OK, %1 will begin to download and process the full %4 block chain (%2 GB) starting with the earliest transactions in %3 when %4 initially launched.</source>
<translation type="unfinished">Når du klikker OK, vil %1 begynde at downloade og bearbejde den fulde %4-blokkæde (%2 GB), startende med de tidligste transaktioner i %3, da %4 først startede.</translation>
</message>
<message>
<source>If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low.</source>
<translation type="unfinished">Hvis du har valgt at begrænse opbevaringen af blokkæden (beskæring/pruning), vil al historisk data stadig skulle downloades og bearbejdes men vil blive slettet efterfølgende for at holde dit diskforbrug lavt.</translation>
</message>
@ -1398,6 +1402,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<translation type="unfinished">Antallet af script&amp;verificeringstråde</translation>
</message>
<message>
<source>Full path to a %1 compatible script (e.g. C:\Downloads\hwi.exe or /Users/you/Downloads/hwi.py). Beware: malware can steal your coins!</source>
<translation type="unfinished">Fuld sti til et %1-kompatibelt script (f.eks. C:\Downloads\hwi.exe eller /Users/you/Downloads/hwi.py). Pas : malware kan stjæle dine mønter!</translation>
</message>
<message>
<source>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</source>
<translation type="unfinished">IP-adresse for proxyen (fx IPv4: 127.0.0.1 / IPv6: ::1)</translation>
</message>
@ -3888,6 +3896,10 @@ Gå til Fil &gt; Åbn Pung for, at indlæse en pung.
<translation type="unfinished">Kan ikke skrive til datamappe '%s'; tjek tilladelser.</translation>
</message>
<message>
<source>%s is set very high! Fees this large could be paid on a single transaction.</source>
<translation type="unfinished">%s er sat meget højt! Gebyrer store risikeres betalt en enkelt transaktion.</translation>
</message>
<message>
<source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
<translation type="unfinished">Kan ikke levere specifikke forbindelser og adrman til at finde udgående forbindelser samme tid.</translation>
</message>
@ -3896,10 +3908,22 @@ Gå til Fil &gt; Åbn Pung for, at indlæse en pung.
<translation type="unfinished">Fejlindlæsning %s: Ekstern underskriver-tegnebog indlæses uden ekstern underskriverunderstøttelse kompileret</translation>
</message>
<message>
<source>Error reading %s! All keys read correctly, but transaction data or address metadata may be missing or incorrect.</source>
<translation type="unfinished">Fejl under læsning af %s! Alle nøgler blev læst korrekt, men transaktionsdata eller indgange i adressebogen kan mangle eller være ukorrekte.</translation>
</message>
<message>
<source>Failed to rename invalid peers.dat file. Please move or delete it and try again.</source>
<translation type="unfinished">Kunne ikke omdøbe ugyldig peers.dat fil. Flyt eller slet den venligst og prøv igen.</translation>
</message>
<message>
<source>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable %s.</source>
<translation type="unfinished">Estimering af gebyr mislykkedes. Tilbagefaldsgebyr er deaktiveret. Vent et par blokke eller aktiver %s.</translation>
</message>
<message>
<source>Invalid amount for %s=&lt;amount&gt;: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source>
<translation type="unfinished">Ugyldigt beløb for %s=&lt;beløb&gt;: %s (skal være mindst minrelay-gebyret %s for at undgå hængende transaktioner)</translation>
</message>
<message>
<source>Config setting for %s only applied on %s network when in [%s] section.</source>
<translation type="unfinished">Opsætningen af %s bliver kun udført %s-netværk under [%s]-sektionen.</translation>
</message>
@ -4076,6 +4100,14 @@ Gå til Fil &gt; Åbn Pung for, at indlæse en pung.
<translation type="unfinished">Invalid P2P tilladelse: '%s'</translation>
</message>
<message>
<source>Invalid amount for %s=&lt;amount&gt;: '%s' (must be at least %s)</source>
<translation type="unfinished">Ugyldigt beløb for %s=&lt;beløb&gt;: %s (skal være mindst %s)</translation>
</message>
<message>
<source>Invalid amount for %s=&lt;amount&gt;: '%s'</source>
<translation type="unfinished">Ugyldigt beløb for %s=&lt;beløb&gt;: %s</translation>
</message>
<message>
<source>Invalid amount for -%s=&lt;amount&gt;: '%s'</source>
<translation type="unfinished">Ugyldigt beløb for -%s=&lt;beløb&gt;: %s</translation>
</message>
@ -4084,6 +4116,11 @@ Gå til Fil &gt; Åbn Pung for, at indlæse en pung.
<translation type="unfinished">Ugyldig netmaske angivet i -whitelist: %s</translation>
</message>
<message>
<source>Listening for incoming connections failed (listen returned error %s)</source>
<translation type="unfinished">Lytning efter indkommende forbindelser mislykkedes (lytning resultarede i fejl %s)
</translation>
</message>
<message>
<source>Loading P2P addresses</source>
<translation type="unfinished">Indlæser P2P-adresser...</translation>
</message>
@ -4184,6 +4221,10 @@ Gå til Fil &gt; Åbn Pung for, at indlæse en pung.
<translation type="unfinished">Angivet blokmappe %s eksisterer ikke.</translation>
</message>
<message>
<source>Specified data directory "%s" does not exist.</source>
<translation type="unfinished">Angivet datamappe %s eksisterer ikke.</translation>
</message>
<message>
<source>Starting network threads</source>
<translation type="unfinished">Starter netværkstråde...</translation>
</message>

View File

@ -366,10 +366,6 @@ Das Signieren ist nur mit Adressen vom Typ 'Legacy' möglich.</translation>
<translation type="unfinished">%1 T</translation>
</message>
<message>
<source>%1 h</source>
<translation type="unfinished">%1 S</translation>
</message>
<message>
<source>%1 m</source>
<translation type="unfinished">%1 min</translation>
</message>
@ -1226,7 +1222,7 @@ Während des Migrationsprozesses wird vor der Migration ein Backup der Wallet er
</message>
<message>
<source>You are one step away from creating your new wallet!</source>
<translation type="unfinished">Nur noch einen Schritt entfernt, das neue Wallet zu erstellen!</translation>
<translation type="unfinished">Nur noch einen Schritt entfernt um das neue Wallet zu erstellen!</translation>
</message>
<message>
<source>Please provide a name and, if desired, enable any advanced options</source>
@ -2169,7 +2165,7 @@ Wenn Sie diese Fehlermeldung erhalten, sollten Sie den Händler bitten, einen BI
<message>
<source>Sent</source>
<extracomment>Title of Peers Table column which indicates the total amount of network information we have sent to the peer.</extracomment>
<translation type="unfinished">Übertragen</translation>
<translation type="unfinished">Gesendet</translation>
</message>
<message>
<source>Received</source>
@ -2310,7 +2306,7 @@ Wenn Sie diese Fehlermeldung erhalten, sollten Sie den Händler bitten, einen BI
</message>
<message>
<source>Sent</source>
<translation type="unfinished">Übertragen</translation>
<translation type="unfinished">Gesendet</translation>
</message>
<message>
<source>&amp;Peers</source>
@ -2685,7 +2681,7 @@ Benutze %3 und %4, um die Fontgröße zu vergrößern bzw. verkleinern.
Tippe %5 für einen Überblick über verfügbare Befehle.
Für weitere Informationen über diese Konsole, tippe %6.
%7 ACHTUNG: Es sind Betrüger zu Gange, die Benutzer anweisen, hier Kommandos einzugeben, wodurch sie den Inhalt der Wallet stehlen können. Benutze diese Konsole nicht, ohne die Implikationen eines Kommandos vollständig zu verstehen.%8</translation>
%7ACHTUNG: Es sind Betrüger zu Gange, die Benutzer anweisen, hier Kommandos einzugeben, wodurch sie den Inhalt der Wallet stehlen können. Benutze diese Konsole nicht, ohne die Implikationen eines Kommandos vollständig zu verstehen.%8</translation>
</message>
<message>
<source>Executing</source>
@ -3042,7 +3038,7 @@ Hinweis: Da die Gebühr auf Basis der Bytes berechnet wird, führt eine Gebühre
</message>
<message>
<source>A too low fee might result in a never confirming transaction (read the tooltip)</source>
<translation type="unfinished">Eine niedrige Gebühr kann dazu führen das eine Transaktion niemals bestätigt wird (Lesen sie die Anmerkung).</translation>
<translation type="unfinished">Eine niedrige Gebühr kann dazu führen das eine Transaktion niemals bestätigt wird (Lesen Sie die Anmerkung).</translation>
</message>
<message>
<source>(Smart fee not initialized yet. This usually takes a few blocks)</source>
@ -3124,7 +3120,7 @@ Hinweis: Da die Gebühr auf Basis der Bytes berechnet wird, führt eine Gebühre
</message>
<message>
<source>Creates a Partially Signed Bitcoin Transaction (PSBT) for use with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
<translation type="unfinished">Erzeugt eine teilsignierte Bitcoin Transaktion (PSBT) zur Benutzung mit z.B. einem Offline %1 Wallet, oder einem kompatiblen Hardware Wallet.</translation>
<translation type="unfinished">Erzeugt eine teilsignierte Bitcoin Transaktion (PSBT) zur Benutzung mit z.B. einem Offline %1 Wallet oder einem kompatiblen Hardware Wallet.</translation>
</message>
<message>
<source>%1 to '%2'</source>

View File

@ -23,7 +23,7 @@
</message>
<message>
<source>C&amp;lose</source>
<translation type="unfinished">&amp;Schließen</translation>
<translation type="unfinished">&amp;Schliessen</translation>
</message>
<message>
<source>Delete the currently selected address from the list</source>
@ -447,6 +447,18 @@ Das Signieren ist nur mit Adressen vom Typ 'Legacy' möglich.</translation>
<translation type="unfinished">Neues Wallet erstellen</translation>
</message>
<message>
<source>&amp;Minimize</source>
<translation type="unfinished">&amp;Minimieren</translation>
</message>
<message>
<source>&amp;Send</source>
<translation type="unfinished">&amp;Senden</translation>
</message>
<message>
<source>&amp;Receive</source>
<translation type="unfinished">&amp;Empfangen</translation>
</message>
<message>
<source>&amp;Options</source>
<translation type="unfinished">weitere Möglichkeiten/Einstellungen </translation>
</message>

View File

@ -2319,10 +2319,22 @@ If you are receiving this error you should request the merchant provide a BIP21
<translation type="unfinished">Η συμβολοσειρά αναγνωριστικού περιόδου σύνδεσης BIP324 σε δεκαεξαδική μορφή, εάν υπάρχει.</translation>
</message>
<message>
<source>Session ID</source>
<translation type="unfinished">Αναγνωριστικό περιόδου σύνδεσης</translation>
</message>
<message>
<source>Version</source>
<translation type="unfinished">Έκδοση</translation>
</message>
<message>
<source>Whether we relay transactions to this peer.</source>
<translation type="unfinished">Είτε αναμεταδίδουμε συναλλαγές σε αυτόν τον ομότιμο.</translation>
</message>
<message>
<source>Transaction Relay</source>
<translation type="unfinished">Αναμετάδοση Συναλλαγής</translation>
</message>
<message>
<source>Starting Block</source>
<translation type="unfinished">Αρχικό Μπλοκ</translation>
</message>
@ -2347,6 +2359,36 @@ If you are receiving this error you should request the merchant provide a BIP21
<translation type="unfinished">Χαρτογραφημένο ως</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, which displays whether we relay addresses to this peer (Yes/No).</extracomment>
<translation type="unfinished">Είτε αναμεταδίδουμε διευθύνσεις σε αυτόν τον ομότιμο.</translation>
</message>
<message>
<source>Address Relay</source>
<extracomment>Text title for the Address Relay field in the peer details area, which displays whether we relay addresses to this peer (Yes/No).</extracomment>
<translation type="unfinished">Αναμετάδοση Διεύθυνσης</translation>
</message>
<message>
<source>The total number of addresses received from this peer that were processed (excludes addresses that were dropped due to rate-limiting).</source>
<extracomment>Tooltip text for the Addresses Processed field in the peer details area, which displays the total number of addresses received from this peer that were processed (excludes addresses that were dropped due to rate-limiting).</extracomment>
<translation type="unfinished">Ο συνολικός αριθμός των διευθύνσεων που ελήφθησαν από αυτόν τον ομότιμο και υποβλήθηκαν σε επεξεργασία (εξαιρούνται οι διευθύνσεις που απορρίφθηκαν λόγω περιορισμού ποσοστού).</translation>
</message>
<message>
<source>The total number of addresses received from this peer that were dropped (not processed) due to rate-limiting.</source>
<extracomment>Tooltip text for the Addresses Rate-Limited field in the peer details area, which displays the total number of addresses received from this peer that were dropped (not processed) due to rate-limiting.</extracomment>
<translation type="unfinished">Ο συνολικός αριθμός των διευθύνσεων που ελήφθησαν από αυτόν τον ομότιμο και απορρίφθηκαν (δεν υποβλήθηκαν σε επεξεργασία) λόγω περιορισμού ποσοστού.</translation>
</message>
<message>
<source>Addresses Processed</source>
<extracomment>Text title for the Addresses Processed field in the peer details area, which displays the total number of addresses received from this peer that were processed (excludes addresses that were dropped due to rate-limiting).</extracomment>
<translation type="unfinished">Επεξεργασμένες Διευθύνσεις </translation>
</message>
<message>
<source>Addresses Rate-Limited</source>
<extracomment>Text title for the Addresses Rate-Limited field in the peer details area, which displays the total number of addresses received from this peer that were dropped (not processed) due to rate-limiting.</extracomment>
<translation type="unfinished">Περιορισμένου Ποσοστού Διευθύνσεις </translation>
</message>
<message>
<source>User Agent</source>
<translation type="unfinished">Agent χρήστη</translation>
</message>
@ -2379,10 +2421,18 @@ If you are receiving this error you should request the merchant provide a BIP21
<translation type="unfinished">Κατεύθυνση/Τύπος</translation>
</message>
<message>
<source>The network protocol this peer is connected through: IPv4, IPv6, Onion, I2P, or CJDNS.</source>
<translation type="unfinished">Το πρωτόκολλο δικτύου αυτού του ομότιμου συνδέεται μέσω: IPv4, IPv6, Onion, I2P ή CJDNS.</translation>
</message>
<message>
<source>Services</source>
<translation type="unfinished">Υπηρεσίες</translation>
</message>
<message>
<source>High bandwidth BIP152 compact block relay: %1</source>
<translation type="unfinished">Αναμετάδοση υψηλού εύρους ζώνης BIP152 συμπαγούς μπλοκ: %1</translation>
</message>
<message>
<source>High Bandwidth</source>
<translation type="unfinished">Υψηλό εύρος ζώνης</translation>
</message>
@ -2391,10 +2441,19 @@ If you are receiving this error you should request the merchant provide a BIP21
<translation type="unfinished">Χρόνος σύνδεσης</translation>
</message>
<message>
<source>Elapsed time since a novel block passing initial validity checks was received from this peer.</source>
<translation type="unfinished">Ο χρόνος που έχει παρέλθει από τη λήψη ενός νέου μπλοκ που περνούσε τους αρχικούς ελέγχους εγκυρότητας ελήφθη από αυτόν τον ομότιμο.</translation>
</message>
<message>
<source>Last Block</source>
<translation type="unfinished">Τελευταίο Block</translation>
</message>
<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">Ο χρόνος που έχει παρέλθει από τη λήψη μιας νέας συναλλαγής που έγινε αποδεκτή στο υπόμνημά μας από αυτόν τον ομότιμο.</translation>
</message>
<message>
<source>Last Send</source>
<translation type="unfinished">Τελευταία αποστολή</translation>
</message>
@ -2464,10 +2523,58 @@ If you are receiving this error you should request the merchant provide a BIP21
<translation type="unfinished">Εισερχόμενo: Ξεκίνησε από peer</translation>
</message>
<message>
<source>Outbound Full Relay: default</source>
<extracomment>Explanatory text for an outbound peer connection that relays all network information. This is the default behavior for outbound connections.</extracomment>
<translation type="unfinished">Πλήρες Εξερχόμενη Αναμετάδοση: προεπιλογή</translation>
</message>
<message>
<source>Outbound Block Relay: does not relay transactions or addresses</source>
<extracomment>Explanatory text for an outbound peer connection that relays network information about blocks and not transactions or addresses.</extracomment>
<translation type="unfinished">Μπλοκ Εξερχόμενης Αναμετάδοσης: δεν αναμεταδίδει συναλλαγές ή διευθύνσεις</translation>
</message>
<message>
<source>Outbound Manual: added using RPC %1 or %2/%3 configuration options</source>
<extracomment>Explanatory text for an outbound peer connection that was established manually through one of several methods. The numbered arguments are stand-ins for the methods available to establish manual connections.</extracomment>
<translation type="unfinished">Εγχειρίδιο Εξερχόμενων: προστέθηκε χρησιμοποιώντας RPC %1ή %2/%3επιλογές διαμόρφωσης</translation>
</message>
<message>
<source>Outbound Feeler: short-lived, for testing addresses</source>
<extracomment>Explanatory text for a short-lived outbound peer connection that is used to test the aliveness of known addresses.</extracomment>
<translation type="unfinished">Εξερχόμενων Ελλείψεων: βραχύβια, για δοκιμή διευθύνσεων</translation>
</message>
<message>
<source>Outbound Address Fetch: short-lived, for soliciting addresses</source>
<extracomment>Explanatory text for a short-lived outbound peer connection that is used to request addresses from a peer.</extracomment>
<translation type="unfinished">Ανάκτηση Εξερχόμενης Διεύθυνσης: βραχύβια, για την αναζήτηση διευθύνσεων</translation>
</message>
<message>
<source>detecting: peer could be v1 or v2</source>
<extracomment>Explanatory text for "detecting" transport type.</extracomment>
<translation type="unfinished">ανίχνευση: ο ομότιμος μπορεί να είναι v1 ή v2</translation>
</message>
<message>
<source>v1: unencrypted, plaintext transport protocol</source>
<extracomment>Explanatory text for v1 transport type.</extracomment>
<translation type="unfinished">v1: πρωτόκολλο μεταφοράς μη κρυπτογραφημένου απλού κειμένου</translation>
</message>
<message>
<source>v2: BIP324 encrypted transport protocol</source>
<extracomment>Explanatory text for v2 transport type.</extracomment>
<translation type="unfinished">v2: Κρυπτογραφημένο πρωτόκολλο μεταφοράς BIP324</translation>
</message>
<message>
<source>we selected the peer for high bandwidth relay</source>
<translation type="unfinished">επιλέξαμε τον ομότιμο για αναμετάδοση υψηλού εύρους ζώνης</translation>
</message>
<message>
<source>the peer selected us for high bandwidth relay</source>
<translation type="unfinished">ο ομότιμος μας επέλεξε για υψηλής ταχύτητας αναμετάδοση </translation>
</message>
<message>
<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>
@ -2515,6 +2622,23 @@ If you are receiving this error you should request the merchant provide a BIP21
Εκτελέστε εντολή χρησιμοποιώντας το πορτοφόλι "%1"</translation>
</message>
<message>
<source>Welcome to the %1 RPC console.
Use up and down arrows to navigate history, and %2 to clear screen.
Use %3 and %4 to increase or decrease the font size.
Type %5 for an overview of available commands.
For more information on using this console, type %6.
%7WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command.%8</source>
<extracomment>RPC console welcome message. Placeholders %7 and %8 are style tags for the warning content, and they are not space separated from the rest of the text intentionally.</extracomment>
<translation type="unfinished">Καλώς ήρθατε στην%1κονσόλα RPC.
Χρησιμοποιήστε τα πάνω και τα κάτω βέλη για πλοήγηση στο ιστορικό και%2εκκαθάριση της οθόνης.
Χρησιμοποιήστε%3και%4για να αυξήσετε ή να μειώσετε το μέγεθος της γραμματοσειράς.
Πληκτρολογήστε%5για επισκόπηση των διαθέσιμων εντολών.
Για περισσότερες πληροφορίες σχετικά με τη χρήση αυτής της κονσόλας, πληκτρολογήστε%6.
%ΡΟΕΙΔΟΠΟΙΗΣΗ: Οι σκάμερς είναι ενεργοί, λέγοντας στους χρήστες να πληκτρολογούν εντολές εδώ, κλέβοντας το περιεχόμενο του πορτοφολιού τους. Μην χρησιμοποιείτε αυτήν την κονσόλα χωρίς να κατανοήσετε πλήρως τις συνέπειες μιας εντολής.%8</translation>
</message>
<message>
<source>Executing</source>
<extracomment>A console message indicating an entered command is currently being executed.</extracomment>
<translation type="unfinished">Εκτέλεση...</translation>
@ -2647,6 +2771,26 @@ If you are receiving this error you should request the merchant provide a BIP21
<translation type="unfinished">Αντιγραφή &amp;ποσού</translation>
</message>
<message>
<source>Base58 (Legacy)</source>
<translation type="unfinished">Base58 (Παλαιού τύπου)</translation>
</message>
<message>
<source>Not recommended due to higher fees and less protection against typos.</source>
<translation type="unfinished">Δεν συνιστάται λόγω υψηλότερων χρεώσεων και μικρότερης προστασίας έναντι τυπογραφικών σφαλμάτων.</translation>
</message>
<message>
<source>Generates an address compatible with older wallets.</source>
<translation type="unfinished">Παράγει μια διεύθυνση συμβατή με παλαιότερα πορτοφόλια.</translation>
</message>
<message>
<source>Generates a native segwit address (BIP-173). Some old wallets don't support it.</source>
<translation type="unfinished">Δημιουργεί μια εγγενή διεύθυνση segwit (BIP-173). Ορισμένα παλιά πορτοφόλια δεν το υποστηρίζουν.</translation>
</message>
<message>
<source>Bech32m (BIP-350) is an upgrade to Bech32, wallet support is still limited.</source>
<translation type="unfinished">Το Bech32m (BIP-350) είναι μια αναβάθμιση στο Bech32, η υποστήριξη πορτοφολιού εξακολουθεί να είναι περιορισμένη.</translation>
</message>
<message>
<source>Could not unlock wallet.</source>
<translation type="unfinished">Δεν είναι δυνατό το ξεκλείδωμα του πορτοφολιού.</translation>
</message>
@ -2926,6 +3070,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
<translation type="unfinished">Συνδέστε πρώτα τη συσκευή πορτοφολιού σας.</translation>
</message>
<message>
<source>Set external signer script path in Options -&gt; Wallet</source>
<extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
<translation type="unfinished">Ορίστε τη διαδρομή σεναρίου εξωτερικού υπογράφοντος στις Επιλογές -&gt; Πορτοφόλι</translation>
</message>
<message>
<source>Cr&amp;eate Unsigned</source>
<translation type="unfinished">Δη&amp;μιουργία Ανυπόγραφου</translation>
</message>
@ -2951,6 +3100,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
<translation type="unfinished">Δεν βρέθηκε ο εξωτερικός υπογράφων</translation>
</message>
<message>
<source>External signer failure</source>
<extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
<translation type="unfinished">Αποτυχία εξωτερικού υπογράφοντος</translation>
</message>
<message>
<source>Save Transaction Data</source>
<translation type="unfinished">Αποθήκευση Δεδομένων Συναλλαγής</translation>
</message>
@ -2987,6 +3141,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
<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">Παρακαλώ, ελέγξτε τη συναλλαγή σας. Μπορείτε να δημιουργήσετε και να στείλετε αυτήν τη συναλλαγή ή να δημιουργήσετε μια μερικώς υπογεγραμμένη συναλλαγή Bitcoin (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>
<translation type="unfinished">Παρακαλούμε, ελέγξτε τη συναλλαγή σας.</translation>
@ -3005,6 +3164,20 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
<translation type="unfinished">Συνολικό ποσό</translation>
</message>
<message>
<source>Unsigned Transaction</source>
<comment>PSBT copied</comment>
<extracomment>Caption of "PSBT has been copied" messagebox</extracomment>
<translation type="unfinished">Ανυπόγραφη Συναλλαγή</translation>
</message>
<message>
<source>The PSBT has been copied to the clipboard. You can also save it.</source>
<translation type="unfinished">Το PSBT αντιγράφηκε στο πρόχειρο. Μπορείτε, επίσης, να το αποθηκεύσετε.</translation>
</message>
<message>
<source>PSBT saved to disk</source>
<translation type="unfinished">Το PSBT αποθηκεύτηκε στον δίσκο</translation>
</message>
<message>
<source>Confirm send coins</source>
<translation type="unfinished"> Επιβεβαιώστε την αποστολή νομισμάτων</translation>
</message>
@ -3043,8 +3216,8 @@ 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 />
<numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
<numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
</translation>
</message>
<message>
@ -3357,8 +3530,8 @@ 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 />
<numerusform>ωριμάζει σε %n περισσότερα μπλοκ</numerusform>
<numerusform>ωριμάζει σε %n περισσότερα κομμάτια</numerusform>
</translation>
</message>
<message>
@ -3962,6 +4135,18 @@ Go to File &gt; Open Wallet to load a wallet.
<translation type="unfinished">Αδύνατη η εγγραφή στον κατάλογο δεδομένων '%s'. Ελέγξτε τα δικαιώματα.</translation>
</message>
<message>
<source>%s is set very high! Fees this large could be paid on a single transaction.</source>
<translation type="unfinished">%s είναι καταχωρημένο πολύ υψηλά! Έξοδα τόσο υψηλά μπορούν να πληρωθούν σε μια ενιαία συναλλαγή.</translation>
</message>
<message>
<source>Error reading %s! All keys read correctly, but transaction data or address metadata may be missing or incorrect.</source>
<translation type="unfinished">Σφάλμα κατά την ανάγνωση %s! Όλα τα κλειδιά διαβάζονται σωστά, αλλά τα δεδομένα των συναλλαγών ή οι καταχωρίσεις του βιβλίου διευθύνσεων ενδέχεται να λείπουν ή να είναι εσφαλμένα.</translation>
</message>
<message>
<source>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable %s.</source>
<translation type="unfinished">Η αποτίμηση του τέλους απέτυχε. Το Fallbackfee είναι απενεργοποιημένο. Περιμένετε λίγα τετράγωνα ή ενεργοποιήστε το %s.</translation>
</message>
<message>
<source>Config setting for %s only applied on %s network when in [%s] section.</source>
<translation type="unfinished">Η ρύθμιση Config για το %s εφαρμόστηκε μόνο στο δίκτυο %s όταν βρίσκεται στην ενότητα [%s].</translation>
</message>
@ -4110,6 +4295,10 @@ Go to File &gt; Open Wallet to load a wallet.
<translation type="unfinished">Μη έγκυρη μάσκα δικτύου που καθορίζεται στο -whitelist: '%s'</translation>
</message>
<message>
<source>Listening for incoming connections failed (listen returned error %s)</source>
<translation type="unfinished">Η ακρόαση για εισερχόμενες συνδέσεις απέτυχε (ακούστε επιστραμμένο σφάλμα %s)</translation>
</message>
<message>
<source>Loading P2P addresses</source>
<translation type="unfinished">Φόρτωση διευθύνσεων P2P...</translation>
</message>
@ -4190,6 +4379,10 @@ Go to File &gt; Open Wallet to load a wallet.
<translation type="unfinished">Δεν υπάρχει κατάλογος καθορισμένων μπλοκ "%s".</translation>
</message>
<message>
<source>Specified data directory "%s" does not exist.</source>
<translation type="unfinished">Ο ορισμένος κατάλογος δεδομένων "%s" δεν υπάρχει.</translation>
</message>
<message>
<source>Starting network threads</source>
<translation type="unfinished">Εκκίνηση των threads δικτύου...</translation>
</message>

View File

@ -258,36 +258,36 @@ 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>%n sekundo</numerusform>
<numerusform>%n sekundoj</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n minute(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>%n minuto</numerusform>
<numerusform>%n minutoj</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n hour(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>%n horo</numerusform>
<numerusform>%n horoj</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n day(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>%n tago</numerusform>
<numerusform>%n tagoj</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n week(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>%n semajno</numerusform>
<numerusform>%n semajnoj</numerusform>
</translation>
</message>
<message>
@ -297,8 +297,8 @@ 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>%n jaro</numerusform>
<numerusform>%n jaroj</numerusform>
</translation>
</message>
</context>
@ -834,8 +834,8 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<message numerus="yes">
<source>%n GB of space available</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>%n gigabajto de libera loko disponeble</numerusform>
<numerusform>%n gigabajtoj de libera loko disponebla.</numerusform>
</translation>
</message>
<message numerus="yes">
@ -2144,6 +2144,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<translation type="unfinished">Subskriba transakcio fiaskis</translation>
</message>
<message>
<source>Specified data directory "%s" does not exist.</source>
<translation type="unfinished">la elektita dosierujo por datumoj "%s" ne ekzistas.</translation>
</message>
<message>
<source>This is experimental software.</source>
<translation type="unfinished">ĝi estas eksperimenta programo</translation>
</message>

View File

@ -520,7 +520,7 @@ Solo es posible firmar con direcciones de tipo "legacy".</translation>
</message>
<message>
<source>Sign messages with your Bitcoin addresses to prove you own them</source>
<translation type="unfinished">Firmar mensajes con tus direcciones Bitcoin para probar la propiedad</translation>
<translation type="unfinished">Firmar mensajes con tus direcciones de Bitcoin para probar la propiedad</translation>
</message>
<message>
<source>&amp;Verify message</source>
@ -1252,7 +1252,7 @@ El proceso de migración creará una copia de seguridad del monedero antes de mi
<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">Compilado sin soporte de firma externa (necesario para la firma externa)</translation>
<translation type="unfinished">Compilado sin compatibilidad con firma externa (se requiere para la firma externa)</translation>
</message>
</context>
<context>
@ -1562,7 +1562,7 @@ El proceso de migración creará una copia de seguridad del monedero antes de mi
</message>
<message>
<source>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</source>
<translation type="unfinished">Dirección IP del proxy (por ejemplo, IPv4: 127.0.0.1 / IPv6: ::1)</translation>
<translation type="unfinished">Dirección IP del proxy (p. ej., IPv4: 127.0.0.1 / IPv6: ::1)</translation>
</message>
<message>
<source>Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type.</source>
@ -1570,7 +1570,7 @@ El proceso de migración creará una copia de seguridad del monedero antes de mi
</message>
<message>
<source>Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu.</source>
<translation type="unfinished">Minimizar en vez de salir de la aplicación cuando la ventana está cerrada. Cuando se activa esta opción, la aplicación sólo se cerrará después de seleccionar "Salir" en el menú.</translation>
<translation type="unfinished">Minimizar en vez de salir de la aplicación cuando la ventana esté cerrada. Cuando se activa esta opción, la aplicación solo se cerrará después de seleccionar "Salir" en el menú.</translation>
</message>
<message>
<source>Font in the Overview tab: </source>
@ -1611,7 +1611,7 @@ El proceso de migración creará una copia de seguridad del monedero antes de mi
<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">Tamaño máximo de la caché de la base de datos. Una caché más grande puede contribuir a una sincronización más rápida, después de lo cual el beneficio es menos pronunciado para la mayoría de los casos de uso. Disminuir el tamaño de la caché reducirá el uso de la memoria. La memoria mempool no utilizada se comparte para esta caché.</translation>
<translation type="unfinished">Tamaño máximo de la caché de la base de datos. Una caché más grande puede contribuir a una sincronización más rápida, después de lo cual el beneficio es menos pronunciado para la mayoría de los casos de uso. Disminuir el tamaño de la caché reducirá el uso de la memoria. La memoria del mempool no utilizada se comparte para esta caché.</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>
@ -1665,12 +1665,12 @@ El proceso de migración creará una copia de seguridad del monedero antes de mi
<message>
<source>Enable &amp;PSBT controls</source>
<extracomment>An options window setting to enable PSBT controls.</extracomment>
<translation type="unfinished">Activar controles &amp;TBPF</translation>
<translation type="unfinished">Activar controles de &amp;TBPF</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">Establecer si se muestran los controles TBPF</translation>
<translation type="unfinished">Establecer si se muestran los controles de TBPF</translation>
</message>
<message>
<source>External Signer (e.g. hardware wallet)</source>
@ -1774,7 +1774,7 @@ El proceso de migración creará una copia de seguridad del monedero antes de mi
</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 de terceros (por ejemplo, un explorador de bloques) que aparecen en la pestaña de transacciones como elementos del menú contextual. %s en la URL se sustituye por el hash de la transacción. Las URL múltiples se separan con una barra vertical |.</translation>
<translation type="unfinished">URL de terceros (por ejemplo, un explorador de bloques) que aparecen en la pestaña de transacciones como elementos del menú contextual. %s en la URL se sustituye por el hash de la transacción. Las URL múltiples se separan con una barra vertical (|).</translation>
</message>
<message>
<source>&amp;Third-party transaction URLs</source>
@ -1803,7 +1803,7 @@ El proceso de migración creará una copia de seguridad del monedero antes de mi
<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">Compilado sin soporte de firma externa (requerido para la firma externa)</translation>
<translation type="unfinished">Compilado sin compatibilidad con firma externa (se requiere para la firma externa)</translation>
</message>
<message>
<source>default</source>
@ -1903,7 +1903,7 @@ El proceso de migración creará una copia de seguridad del monedero antes de mi
</message>
<message>
<source>Immature:</source>
<translation type="unfinished">Inmadura:</translation>
<translation type="unfinished">Inmaduro:</translation>
</message>
<message>
<source>Mined balance that has not yet matured</source>
@ -1950,7 +1950,7 @@ El proceso de migración creará una copia de seguridad del monedero antes de mi
<name>PSBTOperationsDialog</name>
<message>
<source>PSBT Operations</source>
<translation type="unfinished">Operaciones TBPF</translation>
<translation type="unfinished">Operaciones de TBPF</translation>
</message>
<message>
<source>Sign Tx</source>
@ -2063,7 +2063,7 @@ El proceso de migración creará una copia de seguridad del monedero antes de mi
</message>
<message>
<source>(But no wallet is loaded.)</source>
<translation type="unfinished">(No existe ningún monedero cargado).</translation>
<translation type="unfinished">(No hay ningún monedero cargado).</translation>
</message>
<message>
<source>(But this wallet cannot sign transactions.)</source>
@ -2114,7 +2114,7 @@ Si recibes este error, debes solicitar al comerciante que te proporcione un URI
</message>
<message>
<source>Payment request file handling</source>
<translation type="unfinished">Gestión del archivo de solicitud de pago</translation>
<translation type="unfinished">Gestión de archivos de solicitud de pago</translation>
</message>
</context>
<context>

View File

@ -299,6 +299,10 @@ Solo es posible firmar con direcciones de tipo legacy.</translation>
<translation type="unfinished">desconocido</translation>
</message>
<message>
<source>Embedded "%1"</source>
<translation type="unfinished">"%1" integrado</translation>
</message>
<message>
<source>Default system font "%1"</source>
<translation type="unfinished">Fuente predeterminada del sistema "%1"</translation>
</message>
@ -704,7 +708,7 @@ Solo es posible firmar con direcciones de tipo legacy.</translation>
</message>
<message>
<source>Mask the values in the Overview tab</source>
<translation type="unfinished">Ocultar los valores en la pestaña de vista general</translation>
<translation type="unfinished">Ocultar los valores en la pestaña "Vista general"</translation>
</message>
<message>
<source>default wallet</source>
@ -1087,11 +1091,11 @@ El proceso de migración creará una copia de seguridad de la billetera antes de
</message>
<message>
<source>Watchonly scripts have been migrated to a new wallet named '%1'.</source>
<translation type="unfinished">Guiones vigilantes han sido migrados a un monedero con el nombre '%1'.</translation>
<translation type="unfinished">Los scripts solo de observación se migraron a una nueva billetera llamada "%1".</translation>
</message>
<message>
<source>Solvable but not watched scripts have been migrated to a new wallet named '%1'.</source>
<translation type="unfinished">Solucionable pero ninguno de los guiones vigilados han sido migrados a un monedero llamados '%1'.</translation>
<translation type="unfinished">Los scripts solucionables pero no de observación se migraron a una nueva billetera llamada "%1".</translation>
</message>
<message>
<source>Migration failed</source>
@ -1565,7 +1569,7 @@ El proceso de migración creará una copia de seguridad de la billetera antes de
</message>
<message>
<source>Font in the Overview tab: </source>
<translation type="unfinished">Fuente en la pestaña Resumen:</translation>
<translation type="unfinished">Fuente en la pestaña "Vista general":</translation>
</message>
<message>
<source>Options set in this dialog are overridden by the command line:</source>
@ -2646,7 +2650,7 @@ Para obtener más información sobre cómo usar esta consola, escribe %6.
</message>
<message>
<source>To</source>
<translation type="unfinished">Para</translation>
<translation type="unfinished">A</translation>
</message>
<message>
<source>From</source>
@ -3121,7 +3125,7 @@ Nota: Dado que la comisión se calcula por byte, una tasa de "100 satoshis por k
</message>
<message>
<source>%1 from wallet '%2'</source>
<translation type="unfinished">%1 desde monedero "%2"</translation>
<translation type="unfinished">%1 desde billetera "%2"</translation>
</message>
<message>
<source>Do you want to create this transaction?</source>
@ -3194,7 +3198,7 @@ Nota: Dado que la comisión se calcula por byte, una tasa de "100 satoshis por k
</message>
<message>
<source>Transaction creation failed!</source>
<translation type="unfinished">¡Fallo al crear la transacción!</translation>
<translation type="unfinished">Fallo al crear la transacción</translation>
</message>
<message>
<source>A fee higher than %1 is considered an absurdly high fee.</source>
@ -3510,7 +3514,7 @@ Nota: Dado que la comisión se calcula por byte, una tasa de "100 satoshis por k
</message>
<message>
<source>To</source>
<translation type="unfinished">Para</translation>
<translation type="unfinished">A</translation>
</message>
<message>
<source>own address</source>
@ -4342,7 +4346,7 @@ Ir a "Archivo &gt; Abrir billetera" para cargar una.
The wallet might have been tampered with or created with malicious intent.
</source>
<translation type="unfinished">Se encontró una entrada heredada inesperada en la billetera basada en descriptores. Cargando billetera%s
<translation type="unfinished">Se encontró una entrada inesperada tipo "legacy" en la billetera basada en descriptores. Cargando billetera%s
Es posible que la billetera haya sido manipulada o creada con malas intenciones.
</translation>
@ -4533,7 +4537,7 @@ No se puede restaurar la copia de seguridad de la billetera.</translation>
</message>
<message>
<source>Error: Unable to read wallet's best block locator record</source>
<translation type="unfinished">Error: no es capaz de leer el mejor registro del localizador del bloque del monedero</translation>
<translation type="unfinished">Error: No se pudo leer el registro del mejor localizador de bloques de la billetera.</translation>
</message>
<message>
<source>Error: Unable to remove watchonly address book data</source>
@ -4545,16 +4549,15 @@ No se puede restaurar la copia de seguridad de la billetera.</translation>
</message>
<message>
<source>Error: Unable to write solvable wallet best block locator record</source>
<translation type="unfinished">Error: no es capaz de escribir el mejor registro del localizador del bloque del monedero</translation>
<translation type="unfinished">Error: No se pudo escribir el registro del mejor localizador de bloques de la billetera solucionable.</translation>
</message>
<message>
<source>Error: Unable to write watchonly wallet best block locator record</source>
<translation type="unfinished">Error: no es capaz de escribir el mejor monedero vigilado del bloque del registro localizador</translation>
<translation type="unfinished">Error: No se pudo escribir el registro del mejor localizador de bloques de la billetera solo de observación.</translation>
</message>
<message>
<source>Error: address book copy failed for wallet %s</source>
<translation type="unfinished">Error: falló copia de la libreta de direcciones para la billetera 1%s
 </translation>
<translation type="unfinished">Error: falló copia de la libreta de direcciones para la billetera %s</translation>
</message>
<message>
<source>Error: database transaction cannot be executed for wallet %s</source>
@ -4578,7 +4581,7 @@ No se puede restaurar la copia de seguridad de la billetera.</translation>
</message>
<message>
<source>Failure removing transaction: %s</source>
<translation type="unfinished">Error al eliminar la transacción: 1%s</translation>
<translation type="unfinished">Error al eliminar la transacción: %s</translation>
</message>
<message>
<source>Fee rate (%s) is lower than the minimum fee rate setting (%s)</source>
@ -4898,7 +4901,7 @@ No se puede restaurar la copia de seguridad de la billetera.</translation>
</message>
<message>
<source>Wallet file creation failed: %s</source>
<translation type="unfinished">Creación errónea del fichero monedero: %s</translation>
<translation type="unfinished">Error al crear el archivo de la billetera: %s</translation>
</message>
<message>
<source>acceptstalefeeestimates is not supported on %s chain.</source>
@ -4910,11 +4913,11 @@ No se puede restaurar la copia de seguridad de la billetera.</translation>
</message>
<message>
<source>Error: Could not add watchonly tx %s to watchonly wallet</source>
<translation type="unfinished">Error: no pudo agregar tx de solo vigía %s para monedero de solo vigía</translation>
<translation type="unfinished">Error: No se pudo agregar la transacción %s a la billetera solo de observación.</translation>
</message>
<message>
<source>Error: Could not delete watchonly transactions. </source>
<translation type="unfinished">Error: no se pudieron eliminar las transacciones de watchonly.</translation>
<translation type="unfinished">Error: No se pudieron eliminar las transacciones solo de observación</translation>
</message>
<message>
<source>User Agent comment (%s) contains unsafe characters.</source>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -2,6 +2,10 @@
<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>
@ -9,6 +13,10 @@
<source>Copy the currently selected address to the system clipboard</source>
<translation type="unfinished">کپی آدرسی که اکنون انتخاب کردید در کلیپ بورد سیستم</translation>
</message>
<message>
<source>Receiving addresses - %1</source>
<translation type="unfinished">آدرسهای گیرنده - %1</translation>
</message>
</context>
<context>
<name>AskPassphraseDialog</name>
@ -519,6 +527,14 @@
<translation type="unfinished">همهی کیف پولها را ببند</translation>
</message>
<message>
<source>Migrate Wallet</source>
<translation type="unfinished">انتقال کیف پول</translation>
</message>
<message>
<source>Migrate a wallet</source>
<translation type="unfinished">انتقال یک کیف پول</translation>
</message>
<message>
<source>default wallet</source>
<translation type="unfinished">کیف پول پیش فرض
 </translation>
@ -599,6 +615,14 @@
<translation type="unfinished">پیشهمگامسازی سرصفحهها (%1%)</translation>
</message>
<message>
<source>Error creating wallet</source>
<translation type="unfinished">خطا در ایجاد کیف پول</translation>
</message>
<message>
<source>Cannot create new wallet, the software was compiled without sqlite support (required for descriptor wallets)</source>
<translation type="unfinished">نمیتوان کیف پول جدیدی ایجاد کرد، نرمافزار بدون پشتیبانی sqlite کامپایل شده است (برای کیف پولهای توصیفگر این ویژگی لازم است)</translation>
</message>
<message>
<source>Error: %1</source>
<translation type="unfinished">خطا: %1</translation>
</message>
@ -815,6 +839,37 @@
</message>
</context>
<context>
<name>MigrateWalletActivity</name>
<message>
<source>Migrate wallet</source>
<translation type="unfinished">انتقال کیف پول</translation>
</message>
<message>
<source>Are you sure you wish to migrate the wallet &lt;i&gt;%1&lt;/i&gt;?</source>
<translation type="unfinished">آیا برای انتقال کیف پول مطمئن هستید &lt;i&gt;%1&lt;/i&gt;؟</translation>
</message>
<message>
<source>Migrate Wallet</source>
<translation type="unfinished">انتقال کیف پول</translation>
</message>
<message>
<source>Migrating Wallet &lt;b&gt;%1&lt;/b&gt;</source>
<translation type="unfinished">در حال انتقال کیف پول &lt;b&gt;%1&lt;/b&gt;... </translation>
</message>
<message>
<source>The wallet '%1' was migrated successfully.</source>
<translation type="unfinished">کیف پول '%1' با موفقیت منتقل گردید.</translation>
</message>
<message>
<source>Migration failed</source>
<translation type="unfinished">انتقال موفق نبود</translation>
</message>
<message>
<source>Migration Successful</source>
<translation type="unfinished">انتقال موفق بود</translation>
</message>
</context>
<context>
<name>OpenWalletActivity</name>
<message>
<source>Open wallet failed</source>
@ -892,6 +947,10 @@
 </translation>
</message>
<message>
<source>You are one step away from creating your new wallet!</source>
<translation type="unfinished">تنها یک قدم با ایجاد کیف پول جدیدتان فاصله دارید!</translation>
</message>
<message>
<source>Wallet Name</source>
<translation type="unfinished">نام کیف پول</translation>
</message>
@ -1844,6 +1903,10 @@ If you are receiving this error you should request the merchant provide a BIP21
<translation type="unfinished">انتخاب همتا یا جفت برای جزییات اطلاعات</translation>
</message>
<message>
<source>Transport</source>
<translation type="unfinished">جابهجایی</translation>
</message>
<message>
<source>Version</source>
<translation type="unfinished">نسخه</translation>
</message>
@ -3431,6 +3494,10 @@ The wallet might have been tampered with or created with malicious intent.
</translation>
</message>
<message>
<source>Block verification was interrupted</source>
<translation type="unfinished">تايید بلوک دچار قطعی شد</translation>
</message>
<message>
<source>Copyright (C) %i-%i</source>
<translation type="unfinished">کپی رایت (C) %i-%i</translation>
</message>
@ -3471,6 +3538,10 @@ The wallet might have been tampered with or created with malicious intent.
<translation type="unfinished">خطا در بازکردن پایگاه داده بلاک block</translation>
</message>
<message>
<source>Error reading configuration file: %s</source>
<translation type="unfinished">خطا در خواندن فایل تنظیمات: %s</translation>
</message>
<message>
<source>Error reading from database, shutting down.</source>
<translation type="unfinished">خواندن از پایگاه داده با خطا مواجه شد,در حال خاموش شدن.</translation>
</message>

View File

@ -90,6 +90,14 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
<translation type="unfinished">Virhe tallentaessa osoitelistaa kohteeseen %1. Yritä uudelleen.</translation>
</message>
<message>
<source>Sending addresses - %1</source>
<translation type="unfinished">Osoitteiden lähettäminen - %1</translation>
</message>
<message>
<source>Receiving addresses - %1</source>
<translation type="unfinished">Vastaanottava osoite - %1</translation>
</message>
<message>
<source>Exporting Failed</source>
<translation type="unfinished">Vienti epäonnistui</translation>
</message>
@ -291,6 +299,18 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
<translation type="unfinished">tuntematon</translation>
</message>
<message>
<source>Embedded "%1"</source>
<translation type="unfinished">upotettu "%1"</translation>
</message>
<message>
<source>Default system font "%1"</source>
<translation type="unfinished">Järjestelmän oletuskirjasin "%1"</translation>
</message>
<message>
<source>Custom</source>
<translation type="unfinished">Mukautettu</translation>
</message>
<message>
<source>Amount</source>
<translation type="unfinished">Määrä</translation>
</message>
@ -303,6 +323,12 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
<translation type="unfinished">Reitittämätön</translation>
</message>
<message>
<source>Onion</source>
<comment>network name</comment>
<extracomment>Name of Tor network in peer info</extracomment>
<translation type="unfinished">Sipuli</translation>
</message>
<message>
<source>Inbound</source>
<extracomment>An inbound connection from a peer. An inbound connection is a connection initiated by a peer.</extracomment>
<translation type="unfinished">Sisääntuleva</translation>
@ -313,11 +339,26 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
<translation type="unfinished">Ulosmenevä</translation>
</message>
<message>
<source>Full Relay</source>
<extracomment>Peer connection type that relays all network information.</extracomment>
<translation type="unfinished">Täysi Rele</translation>
</message>
<message>
<source>Block Relay</source>
<extracomment>Peer connection type that relays network information about blocks and not transactions or addresses.</extracomment>
<translation type="unfinished">Lohko Rele</translation>
</message>
<message>
<source>Manual</source>
<extracomment>Peer connection type established manually through one of several methods.</extracomment>
<translation type="unfinished">Manuaali</translation>
</message>
<message>
<source>Feeler</source>
<extracomment>Short-lived peer connection type that tests the aliveness of known addresses.</extracomment>
<translation type="unfinished">Tunturi</translation>
</message>
<message>
<source>Address Fetch</source>
<extracomment>Short-lived peer connection type that solicits known addresses from a peer.</extracomment>
<translation type="unfinished">Osoitteen haku</translation>
@ -616,6 +657,10 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
<translation type="unfinished">Lataa osittain allekirjoitettu bitcoin-siirtotapahtuma</translation>
</message>
<message>
<source>Load PSBT from &amp;clipboard</source>
<translation type="unfinished">Lataa PSBT &amp;leikepöydältä</translation>
</message>
<message>
<source>Load Partially Signed Bitcoin Transaction from clipboard</source>
<translation type="unfinished">Lataa osittain allekirjoitettu bitcoin-siirtotapahtuma leikepöydältä</translation>
</message>
@ -666,6 +711,14 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
<translation type="unfinished">Sulje kaikki lompakot</translation>
</message>
<message>
<source>Migrate Wallet</source>
<translation type="unfinished">Siirrä lompakko</translation>
</message>
<message>
<source>Migrate a wallet</source>
<translation type="unfinished">Siirrä lompakko</translation>
</message>
<message>
<source>Show the %1 help message to get a list with possible Bitcoin command-line options</source>
<translation type="unfinished">Näytä %1 ohjeet saadaksesi listan mahdollisista Bitcoinin komentorivivalinnoista</translation>
</message>
@ -725,6 +778,10 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
<source>&amp;Hide</source>
<translation type="unfinished">&amp;Piilota</translation>
</message>
<message>
<source>S&amp;how</source>
<translation type="unfinished">N&amp;äytä</translation>
</message>
<message numerus="yes">
<source>%n active connection(s) to Bitcoin network.</source>
<extracomment>A substring of the tooltip.</extracomment>
@ -754,6 +811,18 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
<translation type="unfinished">Ota verkkotoiminta käyttöön</translation>
</message>
<message>
<source>Pre-syncing Headers (%1%)</source>
<translation type="unfinished">Esi synkronoidaan otsikot (%1%)</translation>
</message>
<message>
<source>Error creating wallet</source>
<translation type="unfinished">Virhe luodessa lompakkoa</translation>
</message>
<message>
<source>Cannot create new wallet, the software was compiled without sqlite support (required for descriptor wallets)</source>
<translation type="unfinished">Uutta lompakkoa ei voi luoda, ohjelmisto on käännetty ilman sqlite-tukea (tarvitaan kuvauslompakoissa)</translation>
</message>
<message>
<source>Error: %1</source>
<translation type="unfinished">Virhe: %1</translation>
</message>
@ -920,6 +989,14 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
<translation type="unfinished">Kopioi &amp;määrä</translation>
</message>
<message>
<source>Copy transaction &amp;ID and output index</source>
<translation type="unfinished">Kopioi tapahtumatunnus &amp;ID ja tulosindeksi</translation>
</message>
<message>
<source>L&amp;ock unspent</source>
<translation type="unfinished">L&amp;kitse käyttämättömät</translation>
</message>
<message>
<source>&amp;Unlock unspent</source>
<translation type="unfinished">&amp;Avaa käyttämättömien lukitus</translation>
</message>
@ -1007,6 +1084,37 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
</message>
</context>
<context>
<name>MigrateWalletActivity</name>
<message>
<source>Migrate wallet</source>
<translation type="unfinished">Siirrä lompakko</translation>
</message>
<message>
<source>Are you sure you wish to migrate the wallet &lt;i&gt;%1&lt;/i&gt;?</source>
<translation type="unfinished">Oletko varma, että haluat siirtää lompakon &lt;i&gt;%1&lt;/i&gt;?</translation>
</message>
<message>
<source>Migrate Wallet</source>
<translation type="unfinished">Siirrä lompakko</translation>
</message>
<message>
<source>Migrating Wallet &lt;b&gt;%1&lt;/b&gt;</source>
<translation type="unfinished">Siirretään lompakkoa &lt;b&gt;%1&lt;/b&gt;...</translation>
</message>
<message>
<source>The wallet '%1' was migrated successfully.</source>
<translation type="unfinished">Lompakko '%1' siirrettiin onnistuneesti.</translation>
</message>
<message>
<source>Migration failed</source>
<translation type="unfinished">Siirto epäonnistui</translation>
</message>
<message>
<source>Migration Successful</source>
<translation type="unfinished">Siirto onnistui</translation>
</message>
</context>
<context>
<name>OpenWalletActivity</name>
<message>
<source>Open wallet failed</source>
@ -1048,7 +1156,17 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
<extracomment>Title of message box which is displayed when the wallet could not be restored.</extracomment>
<translation type="unfinished">Lompakon palauttaminen epäonnistui</translation>
</message>
</context>
<message>
<source>Restore wallet warning</source>
<extracomment>Title of message box which is displayed when the wallet is restored with some warning.</extracomment>
<translation type="unfinished">Palauta lompakkovaroitus</translation>
</message>
<message>
<source>Restore wallet message</source>
<extracomment>Title of message box which is displayed when the wallet is successfully restored.</extracomment>
<translation type="unfinished">Palauta lompakkoviesti</translation>
</message>
</context>
<context>
<name>WalletController</name>
<message>
@ -1075,6 +1193,14 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
<translation type="unfinished">Luo lompakko</translation>
</message>
<message>
<source>You are one step away from creating your new wallet!</source>
<translation type="unfinished">Olet yhden askeleen päässä uuden lompakon luomisesta!</translation>
</message>
<message>
<source>Please provide a name and, if desired, enable any advanced options</source>
<translation type="unfinished">Anna nimi ja ota halutessasi käyttöön lisäasetukset</translation>
</message>
<message>
<source>Wallet Name</source>
<translation type="unfinished">Lompakon nimi</translation>
</message>
@ -1211,8 +1337,8 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
<message numerus="yes">
<source>%n GB of space available</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>%n GB vapaata tilaa</numerusform>
<numerusform>%n GB vapaata tilaa</numerusform>
</translation>
</message>
<message numerus="yes">
@ -1294,6 +1420,10 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
<translation type="unfinished">Tämä alustava synkronointi on erittäin vaativa ja saattaa tuoda esiin laiteongelmia, joita ei aikaisemmin ole havaittu. Aina kun ajat %1:n, jatketaan siitä kohdasta, mihin viimeksi jäätiin.</translation>
</message>
<message>
<source>When you click OK, %1 will begin to download and process the full %4 block chain (%2 GB) starting with the earliest transactions in %3 when %4 initially launched.</source>
<translation type="unfinished">Kun napsautat OK, %1 alkaa ladata ja käsitellä koko %4 lohkoketjun (%2 GB) alkaen ensimmäisistä tapahtumista %3 kun %4 alun perin käynnistetty.</translation>
</message>
<message>
<source>If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low.</source>
<translation type="unfinished">Vaikka olisitkin valinnut rajoittaa lohkoketjun tallennustilaa (karsinnalla), täytyy historiatiedot silti ladata ja käsitellä, mutta ne poistetaan jälkikäteen levytilan säästämiseksi.</translation>
</message>
@ -1390,7 +1520,11 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
<source>Unknown. Syncing Headers (%1, %2%)</source>
<translation type="unfinished">Tuntematon. Synkronoidaan järjestysnumeroita (%1,%2%)...</translation>
</message>
</context>
<message>
<source>Unknown. Pre-syncing Headers (%1, %2%)</source>
<translation type="unfinished">Tuntematon. Esi synkronointi otsikot (%1, %2%)...</translation>
</message>
</context>
<context>
<name>OpenURIDialog</name>
<message>
@ -1434,6 +1568,10 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
<translation type="unfinished">Säikeiden määrä skriptien &amp;varmistuksessa</translation>
</message>
<message>
<source>Full path to a %1 compatible script (e.g. C:\Downloads\hwi.exe or /Users/you/Downloads/hwi.py). Beware: malware can steal your coins!</source>
<translation type="unfinished">Täysi polku %1 yhteensopivaan komentosarjaan (esim. C:\Downloads\hwi.exe tai /Users/you/Downloads/hwi.py). Varo: haittaohjelmat voivat varastaa kolikkosi!</translation>
</message>
<message>
<source>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</source>
<translation type="unfinished">IP osoite proxille (esim. IPv4: 127.0.0.1 / IPv6: ::1)</translation>
</message>
@ -1446,6 +1584,10 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
<translation type="unfinished">Minimoi ikkuna ohjelman sulkemisen sijasta kun ikkuna suljetaan. Kun tämä asetus on käytössä, ohjelma suljetaan vain valittaessa valikosta Poistu.</translation>
</message>
<message>
<source>Font in the Overview tab: </source>
<translation type="unfinished">Fontti Yleiskatsaus-välilehdellä:</translation>
</message>
<message>
<source>Options set in this dialog are overridden by the command line:</source>
<translation type="unfinished">Tässä valintaikkunassa asetetut asetukset ohitetaan komentorivillä:</translation>
</message>
@ -1487,6 +1629,11 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
<translation type="unfinished">Tietokannan välimuistin enimmäiskoko. Suurempi välimuisti voi nopeuttaa synkronointia, mutta sen jälkeen hyöty ei ole enää niin merkittävä useimmissa käyttötapauksissa. Välimuistin koon pienentäminen vähentää muistin käyttöä. Käyttämätön mempool-muisti jaetaan tätä välimuistia varten.</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">Aseta komentosarjan vahvistusketjujen määrä. Negatiiviset arvot vastaavat niiden ytimien määrää, jotka haluat jättää järjestelmälle vapaiksi.</translation>
</message>
<message>
<source>(0 = auto, &lt;0 = leave that many cores free)</source>
<translation type="unfinished">(0 = auto, &lt;0 = jätä näin monta ydintä vapaaksi)</translation>
</message>
@ -1505,6 +1652,16 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
<translation type="unfinished">&amp;Lompakko</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">Määritetäänkö summasta vähennysmaksu oletusarvoksi vai ei.</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">Vähennä &amp;maksu oletuksena summasta</translation>
</message>
<message>
<source>Expert</source>
<translation type="unfinished">Expertti</translation>
</message>
@ -1526,10 +1683,19 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
<translation type="unfinished">Aktivoi &amp;PSBT kontrollit</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">Näytetäänkö PSBT-ohjaimet.</translation>
</message>
<message>
<source>External Signer (e.g. hardware wallet)</source>
<translation type="unfinished">Ulkopuolinen allekirjoittaja (esim. laitelompakko)</translation>
</message>
<message>
<source>&amp;External signer script path</source>
<translation type="unfinished">&amp;Ulkoisen allekirjoittajan komentosarjapolku</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">Avaa Bitcoin-asiakasohjelman portti reitittimellä automaattisesti. Tämä toimii vain, jos reitittimesi tukee UPnP: ja se on käytössä.</translation>
</message>
@ -1622,6 +1788,10 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
<translation type="unfinished">Valitse mitä yksikköä käytetään ensisijaisesti bitcoin-määrien näyttämiseen.</translation>
</message>
<message>
<source>&amp;Third-party transaction URLs</source>
<translation type="unfinished">&amp;Kolmannen osapuolen tapahtuma-URL-osoitteet</translation>
</message>
<message>
<source>Whether to show coin control features or not.</source>
<translation type="unfinished">Näytetäänkö kolikkokontrollin ominaisuuksia vai ei</translation>
</message>
@ -1701,6 +1871,13 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
</message>
</context>
<context>
<name>OptionsModel</name>
<message>
<source>Could not read setting "%1", %2.</source>
<translation type="unfinished">Ei voinut luke asetusta "%1", %2.</translation>
</message>
</context>
<context>
<name>OverviewPage</name>
<message>
<source>Form</source>
@ -1782,6 +1959,10 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
<context>
<name>PSBTOperationsDialog</name>
<message>
<source>PSBT Operations</source>
<translation type="unfinished">PSBT-toiminnot</translation>
</message>
<message>
<source>Sign Tx</source>
<translation type="unfinished">Allekirjoita Tx</translation>
</message>
@ -1855,6 +2036,10 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
<translation type="unfinished">PSBT (osittain tallennettu bitcoin-siirto) tallennettiin levylle.</translation>
</message>
<message>
<source>Sends %1 to %2</source>
<translation type="unfinished">Lähettää %1 kohteelle %2</translation>
</message>
<message>
<source>own address</source>
<translation type="unfinished">oma osoite</translation>
</message>
@ -1960,6 +2145,11 @@ Jos saat tämän virheen, pyydä kauppiasta antamaan BIP21-yhteensopiva URI.</tr
<translation type="unfinished">Vertainen</translation>
</message>
<message>
<source>Age</source>
<extracomment>Title of Peers Table column which indicates the duration (length of time) since the peer connection started.</extracomment>
<translation type="unfinished">Ikä</translation>
</message>
<message>
<source>Direction</source>
<extracomment>Title of Peers Table column which indicates the direction the peer connection was initiated from.</extracomment>
<translation type="unfinished">Suunta</translation>
@ -2127,10 +2317,34 @@ Jos saat tämän virheen, pyydä kauppiasta antamaan BIP21-yhteensopiva URI.</tr
<translation type="unfinished">Valitse vertainen eriteltyjä tietoja varten.</translation>
</message>
<message>
<source>The transport layer version: %1</source>
<translation type="unfinished">Kuljetuskerroksen versio: %1</translation>
</message>
<message>
<source>Transport</source>
<translation type="unfinished">Kuljetus</translation>
</message>
<message>
<source>The BIP324 session ID string in hex, if any.</source>
<translation type="unfinished">BIP324-istunnon tunnusmerkkijono heksadesimaalimuodossa, jos sellainen on.</translation>
</message>
<message>
<source>Session ID</source>
<translation type="unfinished">Istunnon tunniste</translation>
</message>
<message>
<source>Version</source>
<translation type="unfinished">Versio</translation>
</message>
<message>
<source>Whether we relay transactions to this peer.</source>
<translation type="unfinished">Välitämmekö tapahtumat tälle vertaiselle.</translation>
</message>
<message>
<source>Transaction Relay</source>
<translation type="unfinished">Siirtokulu</translation>
</message>
<message>
<source>Starting Block</source>
<translation type="unfinished">Alkaen lohkosta</translation>
</message>
@ -2155,11 +2369,36 @@ Jos saat tämän virheen, pyydä kauppiasta antamaan BIP21-yhteensopiva URI.</tr
<translation type="unfinished">Kartoitettu 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, which displays whether we relay addresses to this peer (Yes/No).</extracomment>
<translation type="unfinished">Välitämmekö osoitteet tälle vertaiselle.</translation>
</message>
<message>
<source>Address Relay</source>
<extracomment>Text title for the Address Relay field in the peer details area, which displays whether we relay addresses to this peer (Yes/No).</extracomment>
<translation type="unfinished">Osoitevälitys</translation>
</message>
<message>
<source>The total number of addresses received from this peer that were processed (excludes addresses that were dropped due to rate-limiting).</source>
<extracomment>Tooltip text for the Addresses Processed field in the peer details area, which displays the total number of addresses received from this peer that were processed (excludes addresses that were dropped due to rate-limiting).</extracomment>
<translation type="unfinished">Tältä vertaiselta käsiteltyjen osoitteiden kokonaismäärä (ei sisällä osoitteita, jotka hylättiin nopeusrajoituksen vuoksi).</translation>
</message>
<message>
<source>The total number of addresses received from this peer that were dropped (not processed) due to rate-limiting.</source>
<extracomment>Tooltip text for the Addresses Rate-Limited field in the peer details area, which displays the total number of addresses received from this peer that were dropped (not processed) due to rate-limiting.</extracomment>
<translation type="unfinished">Tältä vertaiselta saatujen osoitteiden kokonaismäärä, jotka hylättiin (ei käsitelty) nopeusrajoituksen vuoksi.</translation>
</message>
<message>
<source>Addresses Processed</source>
<extracomment>Text title for the Addresses Processed field in the peer details area, which displays the total number of addresses received from this peer that were processed (excludes addresses that were dropped due to rate-limiting).</extracomment>
<translation type="unfinished">Käsitellyt osoitteet</translation>
</message>
<message>
<source>Addresses Rate-Limited</source>
<extracomment>Text title for the Addresses Rate-Limited field in the peer details area, which displays the total number of addresses received from this peer that were dropped (not processed) due to rate-limiting.</extracomment>
<translation type="unfinished">Osoitteiden määrärajoitus</translation>
</message>
<message>
<source>User Agent</source>
<translation type="unfinished">Käyttöliittymä</translation>
</message>
@ -2220,6 +2459,11 @@ Jos saat tämän virheen, pyydä kauppiasta antamaan BIP21-yhteensopiva URI.</tr
<translation type="unfinished">Viimeisin lohko</translation>
</message>
<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">Kulunut aika siitä, kun tältä vertaiskumppanilta vastaanotettiin muistiomme hyväksytty uusi tapahtuma.</translation>
</message>
<message>
<source>Last Send</source>
<translation type="unfinished">Viimeisin lähetetty</translation>
</message>
@ -2289,6 +2533,48 @@ Jos saat tämän virheen, pyydä kauppiasta antamaan BIP21-yhteensopiva URI.</tr
<translation type="unfinished">Saapuva: vertaisen aloittama</translation>
</message>
<message>
<source>Outbound Full Relay: default</source>
<extracomment>Explanatory text for an outbound peer connection that relays all network information. This is the default behavior for outbound connections.</extracomment>
<translation type="unfinished">Lähtevä täysi välitys: oletus</translation>
</message>
<message>
<source>Outbound Block Relay: does not relay transactions or addresses</source>
<extracomment>Explanatory text for an outbound peer connection that relays network information about blocks and not transactions or addresses.</extracomment>
<translation type="unfinished">Outbound Block Relay: ei välitä tapahtumia tai osoitteita</translation>
</message>
<message>
<source>Outbound Feeler: short-lived, for testing addresses</source>
<extracomment>Explanatory text for a short-lived outbound peer connection that is used to test the aliveness of known addresses.</extracomment>
<translation type="unfinished">Outbound Feeler: lyhytaikainen, osoitteiden testaamiseen</translation>
</message>
<message>
<source>detecting: peer could be v1 or v2</source>
<extracomment>Explanatory text for "detecting" transport type.</extracomment>
<translation type="unfinished">havaitseminen: vertaiskumppani voi olla v1 tai v2</translation>
</message>
<message>
<source>v1: unencrypted, plaintext transport protocol</source>
<extracomment>Explanatory text for v1 transport type.</extracomment>
<translation type="unfinished">v1: salaamaton, selväkielinen siirtoprotokolla</translation>
</message>
<message>
<source>v2: BIP324 encrypted transport protocol</source>
<extracomment>Explanatory text for v2 transport type.</extracomment>
<translation type="unfinished">v2: BIP324-salattu siirtoprotokolla</translation>
</message>
<message>
<source>we selected the peer for high bandwidth relay</source>
<translation type="unfinished">valitsimme korkean kaistanleveyden releen vertaislaitteen</translation>
</message>
<message>
<source>the peer selected us for high bandwidth relay</source>
<translation type="unfinished">vertaiskumppani valitsi meidät suuren kaistanleveyden välitykseen</translation>
</message>
<message>
<source>no high bandwidth relay selected</source>
<translation type="unfinished">suuren kaistanleveyden relettä ei ole valittu</translation>
</message>
<message>
<source>Ctrl+=</source>
<extracomment>Secondary shortcut to increase the RPC console font size.</extracomment>
<translation type="unfinished">Ctrl+-</translation>
@ -2307,6 +2593,10 @@ Jos saat tämän virheen, pyydä kauppiasta antamaan BIP21-yhteensopiva URI.</tr
<translation type="unfinished">1 &amp;tunti</translation>
</message>
<message>
<source>1 d&amp;ay</source>
<translation type="unfinished">1 p&amp;ivä</translation>
</message>
<message>
<source>1 &amp;week</source>
<translation type="unfinished">1 &amp;viikko</translation>
</message>
@ -2315,6 +2605,11 @@ Jos saat tämän virheen, pyydä kauppiasta antamaan BIP21-yhteensopiva URI.</tr
<translation type="unfinished">1 &amp;vuosi</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;Kopioi IP/verkkopeite</translation>
</message>
<message>
<source>&amp;Unban</source>
<translation type="unfinished">&amp;Poista esto</translation>
</message>
@ -2463,6 +2758,18 @@ Jos saat tämän virheen, pyydä kauppiasta antamaan BIP21-yhteensopiva URI.</tr
<translation type="unfinished">Kopioi &amp;määrä</translation>
</message>
<message>
<source>Base58 (Legacy)</source>
<translation type="unfinished">Base58 (Vanha)</translation>
</message>
<message>
<source>Not recommended due to higher fees and less protection against typos.</source>
<translation type="unfinished">Ei suositella korkeampien maksujen ja heikomman suojan kirjoitusvirheitä vastaan.</translation>
</message>
<message>
<source>Generates an address compatible with older wallets.</source>
<translation type="unfinished">Luo osoitteen, joka on yhteensopiva vanhempien lompakoiden kanssa.</translation>
</message>
<message>
<source>Could not unlock wallet.</source>
<translation type="unfinished">Lompakkoa ei voitu avata.</translation>
</message>
@ -2763,6 +3070,11 @@ Jos saat tämän virheen, pyydä kauppiasta antamaan BIP21-yhteensopiva URI.</tr
<translation type="unfinished">Ulkopuolista allekirjoittajaa ei löydy</translation>
</message>
<message>
<source>External signer failure</source>
<extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
<translation type="unfinished">Ulkoisen allekirjoittajan virhe</translation>
</message>
<message>
<source>Save Transaction Data</source>
<translation type="unfinished">Tallenna siirtotiedot</translation>
</message>
@ -2794,6 +3106,10 @@ Jos saat tämän virheen, pyydä kauppiasta antamaan BIP21-yhteensopiva URI.</tr
<translation type="unfinished">Ole hyvä ja tarkista siirtoehdotuksesi. Tämä luo osittain allekirjoitetun Bitcoin-siirron (PBST), jonka voit tallentaa tai kopioida ja sitten allekirjoittaa esim. verkosta irrannaisella %1-lompakolla tai PBST-yhteensopivalla laitteistolompakolla.</translation>
</message>
<message>
<source>%1 from wallet '%2'</source>
<translation type="unfinished">%1 lompakosta '%2'</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">Haluatko luoda tämän siirtotapahtuman?</translation>
@ -2816,6 +3132,16 @@ Jos saat tämän virheen, pyydä kauppiasta antamaan BIP21-yhteensopiva URI.</tr
<translation type="unfinished">Yhteensä</translation>
</message>
<message>
<source>Unsigned Transaction</source>
<comment>PSBT copied</comment>
<extracomment>Caption of "PSBT has been copied" messagebox</extracomment>
<translation type="unfinished">Allekirjoittamaton Siirto</translation>
</message>
<message>
<source>PSBT saved to disk</source>
<translation type="unfinished">PSBT tallennettu levylle</translation>
</message>
<message>
<source>Confirm send coins</source>
<translation type="unfinished">Vahvista kolikoiden lähetys</translation>
</message>
@ -3111,6 +3437,16 @@ Jos saat tämän virheen, pyydä kauppiasta antamaan BIP21-yhteensopiva URI.</tr
<translation type="unfinished">ristiriidassa maksutapahtumalle, jolla on %1 varmistusta</translation>
</message>
<message>
<source>0/unconfirmed, in memory pool</source>
<extracomment>Text explaining the current status of a transaction, shown in the status field of the details window for this transaction. This status represents an unconfirmed transaction that is in the memory pool.</extracomment>
<translation type="unfinished">0/vahvistamatonta, memory poolissa</translation>
</message>
<message>
<source>0/unconfirmed, not in memory pool</source>
<extracomment>Text explaining the current status of a transaction, shown in the status field of the details window for this transaction. This status represents an unconfirmed transaction that is not in the memory pool.</extracomment>
<translation type="unfinished">0/vahvistamatonta, ei memory poolissa</translation>
</message>
<message>
<source>abandoned</source>
<extracomment>Text explaining the current status of a transaction, shown in the status field of the details window for this transaction. This status represents an abandoned transaction.</extracomment>
<translation type="unfinished">hylätty</translation>
@ -3225,6 +3561,10 @@ Jos saat tämän virheen, pyydä kauppiasta antamaan BIP21-yhteensopiva URI.</tr
<translation type="unfinished">Ulostulon indeksi</translation>
</message>
<message>
<source>%1 (Certificate was not verified)</source>
<translation type="unfinished">%1 (Sertifikaattia ei ole todennettu)</translation>
</message>
<message>
<source>Merchant</source>
<translation type="unfinished">Kauppias</translation>
</message>
@ -3434,6 +3774,35 @@ Jos saat tämän virheen, pyydä kauppiasta antamaan BIP21-yhteensopiva URI.</tr
<translation type="unfinished">Kopio transaktio &amp;ID</translation>
</message>
<message>
<source>Copy &amp;raw transaction</source>
<translation type="unfinished">Kopioi &amp;raaka tapahtuma</translation>
</message>
<message>
<source>Copy full transaction &amp;details</source>
<translation type="unfinished">Kopioi koko tapahtuma &amp;tiedot</translation>
</message>
<message>
<source>&amp;Show transaction details</source>
<translation type="unfinished">&amp;Näytä tapahtuman tiedot</translation>
</message>
<message>
<source>Increase transaction &amp;fee</source>
<translation type="unfinished">Lisää tapahtuman &amp;kuluja</translation>
</message>
<message>
<source>A&amp;bandon transaction</source>
<translation type="unfinished">H&amp;ylkää tapahtuma</translation>
</message>
<message>
<source>&amp;Edit address label</source>
<translation type="unfinished">&amp;Muokkaa osoitekenttää</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">Näytä %1</translation>
</message>
<message>
<source>Export Transaction History</source>
<translation type="unfinished">Vie rahansiirtohistoria</translation>
</message>
@ -3574,6 +3943,11 @@ Siirry osioon Tiedosto &gt; Avaa lompakko ladataksesi lompakon.
<translation type="unfinished">PSBT kopioitu</translation>
</message>
<message>
<source>Copied to clipboard</source>
<comment>Fee-bump PSBT saved</comment>
<translation type="unfinished">Kopioi leikepöydälle</translation>
</message>
<message>
<source>Can't sign transaction.</source>
<translation type="unfinished">Siirtoa ei voida allekirjoittaa.</translation>
</message>
@ -3753,6 +4127,22 @@ Siirry osioon Tiedosto &gt; Avaa lompakko ladataksesi lompakon.
<translation type="unfinished">Hakemistoon '%s' ei voida kirjoittaa. Tarkista käyttöoikeudet.</translation>
</message>
<message>
<source>
Unable to cleanup failed migration</source>
<translation type="unfinished">
Epäonnistuneen migraation siivoaminen epäonnistui</translation>
</message>
<message>
<source>
Unable to restore backup of wallet.</source>
<translation type="unfinished">
Ei voinut palauttaa lompakon varmuuskopiota..</translation>
</message>
<message>
<source>Block verification was interrupted</source>
<translation type="unfinished">Lohkon vahvistus keskeytettiin</translation>
</message>
<message>
<source>Config setting for %s only applied on %s network when in [%s] section.</source>
<translation type="unfinished">Konfigurointiasetuksen %s käyttöön vain %s -verkossa, kun osassa [%s].</translation>
</message>
@ -3825,6 +4215,10 @@ Siirry osioon Tiedosto &gt; Avaa lompakko ladataksesi lompakon.
<translation type="unfinished">Virhe avattaessa lohkoindeksiä</translation>
</message>
<message>
<source>Error reading configuration file: %s</source>
<translation type="unfinished">Virhe luettaessa asetustiedostoa 1%s</translation>
</message>
<message>
<source>Error reading from database, shutting down.</source>
<translation type="unfinished">Virheitä tietokantaa luettaessa, ohjelma pysäytetään.</translation>
</message>
@ -3853,6 +4247,30 @@ Siirry osioon Tiedosto &gt; Avaa lompakko ladataksesi lompakon.
<translation type="unfinished">virhe: Puuttuva tarkistussumma</translation>
</message>
<message>
<source>Error: No %s addresses available.</source>
<translation type="unfinished">Virhe: Ei %s osoitteita saatavilla.</translation>
</message>
<message>
<source>Error: This wallet already uses SQLite</source>
<translation type="unfinished">Virhe: Tämä lompakko käyttää jo SQLite:ä</translation>
</message>
<message>
<source>Error: Unable to make a backup of your wallet</source>
<translation type="unfinished">Virhe: Lompakon varmuuskopion luominen epäonnistui</translation>
</message>
<message>
<source>Error: Unable to read all records in the database</source>
<translation type="unfinished">Virhe: Kaikkien tietueiden lukeminen tietokannasta ei onnistunut</translation>
</message>
<message>
<source>Error: Unable to write record to new wallet</source>
<translation type="unfinished">Virhe: Tiedon kirjoittaminen lompakkoon epäonnistui</translation>
</message>
<message>
<source>Error: address book copy failed for wallet %s</source>
<translation type="unfinished">Virhe: osoitekirjan kopiointi epäonnistui lompakolle %s</translation>
</message>
<message>
<source>Failed to listen on any port. Use -listen=0 if you want this.</source>
<translation type="unfinished">Ei onnistuttu kuuntelemaan missään portissa. Käytä -listen=0 jos haluat tätä.</translation>
</message>
@ -3861,10 +4279,18 @@ Siirry osioon Tiedosto &gt; Avaa lompakko ladataksesi lompakon.
<translation type="unfinished">Lompakkoa ei voitu tarkastaa alustuksen yhteydessä.</translation>
</message>
<message>
<source>Failed to start indexes, shutting down..</source>
<translation type="unfinished">Indeksien käynnistäminen epäonnistui, sammutetaan..</translation>
</message>
<message>
<source>Failed to verify database</source>
<translation type="unfinished">Tietokannan todennus epäonnistui</translation>
</message>
<message>
<source>Failure removing transaction: %s</source>
<translation type="unfinished">Siirron poistaminen epäonnistui: %s</translation>
</message>
<message>
<source>Fee rate (%s) is lower than the minimum fee rate setting (%s)</source>
<translation type="unfinished">Kulutaso (%s) on alempi, kuin minimikulutasoasetus (%s)</translation>
</message>
@ -3885,6 +4311,10 @@ Siirry osioon Tiedosto &gt; Avaa lompakko ladataksesi lompakon.
<translation type="unfinished">Alustava järkevyyden tarkistus epäonnistui. %s sulkeutuu.</translation>
</message>
<message>
<source>Insufficient dbcache for block verification</source>
<translation type="unfinished">Riittämätön dbcache lohkon vahvistukseen</translation>
</message>
<message>
<source>Insufficient funds</source>
<translation type="unfinished">Lompakon saldo ei riitä</translation>
</message>
@ -3905,6 +4335,10 @@ Siirry osioon Tiedosto &gt; Avaa lompakko ladataksesi lompakon.
<translation type="unfinished">Virheellinen P2P-lupa: '%s'</translation>
</message>
<message>
<source>Invalid amount for %s=&lt;amount&gt;: '%s'</source>
<translation type="unfinished">Virheellinen määrä %s=&lt;amount&gt;: '%s'</translation>
</message>
<message>
<source>Invalid amount for -%s=&lt;amount&gt;: '%s'</source>
<translation type="unfinished">Virheellinen määrä -%s=&lt;amount&gt;: '%s'</translation>
</message>
@ -3913,6 +4347,18 @@ Siirry osioon Tiedosto &gt; Avaa lompakko ladataksesi lompakon.
<translation type="unfinished">Kelvoton verkkopeite määritelty argumentissa -whitelist: '%s'</translation>
</message>
<message>
<source>Invalid port specified in %s: '%s'</source>
<translation type="unfinished">Virheellinen portti määritetty %s: '%s'</translation>
</message>
<message>
<source>Invalid pre-selected input %s</source>
<translation type="unfinished">Virheellinen esivalittu syöte %s</translation>
</message>
<message>
<source>Listening for incoming connections failed (listen returned error %s)</source>
<translation type="unfinished">Saapuvien yhteyksien kuuntelu epäonnistui (kuuntelu palasi virheen %s)</translation>
</message>
<message>
<source>Loading P2P addresses</source>
<translation type="unfinished">Ladataan P2P-osoitteita...</translation>
</message>
@ -3933,6 +4379,10 @@ Siirry osioon Tiedosto &gt; Avaa lompakko ladataksesi lompakon.
<translation type="unfinished">Puuttuva summa</translation>
</message>
<message>
<source>Missing solving data for estimating transaction size</source>
<translation type="unfinished">Ratkaisutiedot puuttuvat tapahtuman koon arvioimiseksi</translation>
</message>
<message>
<source>Need to specify a port with -whitebind: '%s'</source>
<translation type="unfinished">Pitää määritellä portti argumentilla -whitebind: '%s'</translation>
</message>
@ -3945,6 +4395,14 @@ Siirry osioon Tiedosto &gt; Avaa lompakko ladataksesi lompakon.
<translation type="unfinished">Ei tarpeeksi tiedostomerkintöjä vapaana.</translation>
</message>
<message>
<source>Not found pre-selected input %s</source>
<translation type="unfinished">Esivalittua tuloa ei löydy %s</translation>
</message>
<message>
<source>Not solvable pre-selected input %s</source>
<translation type="unfinished">Ei ratkaistavissa esivalittu tulo%s</translation>
</message>
<message>
<source>Prune cannot be configured with a negative value.</source>
<translation type="unfinished">Karsintaa ei voi toteuttaa negatiivisella arvolla.</translation>
</message>
@ -4009,6 +4467,14 @@ Siirry osioon Tiedosto &gt; Avaa lompakko ladataksesi lompakon.
<translation type="unfinished">Määrättyä lohkohakemistoa "%s" ei ole olemassa.</translation>
</message>
<message>
<source>Specified data directory "%s" does not exist.</source>
<translation type="unfinished">Määritettyä tietohakemistoa %s ei ole olemassa.</translation>
</message>
<message>
<source>Starting network threads</source>
<translation type="unfinished">Aloitetaan verkkosäikeitä</translation>
</message>
<message>
<source>The source code is available from %s.</source>
<translation type="unfinished">Lähdekoodi löytyy %s.</translation>
</message>
@ -4037,6 +4503,10 @@ Siirry osioon Tiedosto &gt; Avaa lompakko ladataksesi lompakon.
<translation type="unfinished">Tämä on se siirtomaksu, jonka maksat, mikäli lähetät siirron.</translation>
</message>
<message>
<source>Transaction %s does not belong to this wallet</source>
<translation type="unfinished">Tapahtuma %s ei kuulu tähän lompakkoon</translation>
</message>
<message>
<source>Transaction amount too small</source>
<translation type="unfinished">Siirtosumma liian pieni</translation>
</message>
@ -4045,14 +4515,26 @@ Siirry osioon Tiedosto &gt; Avaa lompakko ladataksesi lompakon.
<translation type="unfinished">Lähetyksen siirtosumman tulee olla positiivinen</translation>
</message>
<message>
<source>Transaction change output index out of range</source>
<translation type="unfinished">Tapahtuman muutoksen tulosindeksi on alueen ulkopuolella</translation>
</message>
<message>
<source>Transaction must have at least one recipient</source>
<translation type="unfinished">Lähetyksessä tulee olla ainakin yksi vastaanottaja</translation>
</message>
<message>
<source>Transaction needs a change address, but we can't generate it.</source>
<translation type="unfinished">Tapahtuma vaatii osoitteenmuutoksen, mutta emme voi luoda sitä.</translation>
</message>
<message>
<source>Transaction too large</source>
<translation type="unfinished">Siirtosumma liian iso</translation>
</message>
<message>
<source>Unable to allocate memory for -maxsigcachesize: '%s' MiB</source>
<translation type="unfinished">Ei voida varata muistia kohteelle %sMiB</translation>
</message>
<message>
<source>Unable to bind to %s on this computer (bind returned error %s)</source>
<translation type="unfinished">Kytkeytyminen kohteeseen %s ei onnistunut tällä tietokonella (kytkeytyminen palautti virheen %s)</translation>
</message>
@ -4065,6 +4547,10 @@ Siirry osioon Tiedosto &gt; Avaa lompakko ladataksesi lompakon.
<translation type="unfinished">PID-tiedostoa '%s' ei voitu luoda: %s</translation>
</message>
<message>
<source>Unable to find UTXO for external input</source>
<translation type="unfinished">Ulkoisen tulon UTXO ei löydy</translation>
</message>
<message>
<source>Unable to generate initial keys</source>
<translation type="unfinished">Alkuavaimia ei voi luoda</translation>
</message>
@ -4077,10 +4563,18 @@ Siirry osioon Tiedosto &gt; Avaa lompakko ladataksesi lompakon.
<translation type="unfinished">Ei pystytä avaamaan %s kirjoittamista varten</translation>
</message>
<message>
<source>Unable to parse -maxuploadtarget: '%s'</source>
<translation type="unfinished">Ei voi lukea -maxuploadtarget: '%s'</translation>
</message>
<message>
<source>Unable to start HTTP server. See debug log for details.</source>
<translation type="unfinished">HTTP-palvelinta ei voitu käynnistää. Katso debug-lokista lisätietoja.</translation>
</message>
<message>
<source>Unable to unload the wallet before migrating</source>
<translation type="unfinished">Lompakon lataus epäonnistui ennen siirtoa</translation>
</message>
<message>
<source>Unknown -blockfilterindex value %s.</source>
<translation type="unfinished">Tuntematon -lohkosuodatusindeksiarvo %s.</translation>
</message>
@ -4101,6 +4595,14 @@ Siirry osioon Tiedosto &gt; Avaa lompakko ladataksesi lompakon.
<translation type="unfinished">Tuntemattomia uusia sääntöjä aktivoitu (versiobitti %i)</translation>
</message>
<message>
<source>Wallet file creation failed: %s</source>
<translation type="unfinished">Lompakon luominen epäonnistui: %s</translation>
</message>
<message>
<source>acceptstalefeeestimates is not supported on %s chain.</source>
<translation type="unfinished">hyväksyttyjä ilmaisia arvioita ei tueta %s ketju.</translation>
</message>
<message>
<source>Unsupported logging category %s=%s.</source>
<translation type="unfinished">Lokikategoriaa %s=%s ei tueta.</translation>
</message>

View File

@ -181,6 +181,10 @@
<translation type="unfinished">Net-virksemi óvirkijað.</translation>
</message>
<message>
<source>&amp;Receive</source>
<translation type="unfinished">&amp;Móttak</translation>
</message>
<message>
<source>Sign &amp;message</source>
<translation type="unfinished">&amp;Undirrita boð</translation>
</message>

View File

@ -1137,7 +1137,7 @@ Le processus de migration créera une sauvegarde du porte-monnaie avant migratio
</message>
<message>
<source>Migration Successful</source>
<translation type="unfinished">Migration réussie</translation>
<translation type="unfinished">La migration est terminée</translation>
</message>
</context>
<context>
@ -1223,7 +1223,7 @@ Le processus de migration créera une sauvegarde du porte-monnaie avant migratio
</message>
<message>
<source>Please provide a name and, if desired, enable any advanced options</source>
<translation type="unfinished">Veuillez fournir un nom et, si désiré, activer toutes les options avancées.</translation>
<translation type="unfinished">Indiquez un nom et, si désiré, activez les options avancées.</translation>
</message>
<message>
<source>Wallet Name</source>
@ -1382,7 +1382,7 @@ Le processus de migration créera une sauvegarde du porte-monnaie avant migratio
</message>
<message>
<source>Choose data directory</source>
<translation type="unfinished">Choisissez un répertoire de donnée</translation>
<translation type="unfinished">Choisissez le répertoire des données</translation>
</message>
<message>
<source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source>
@ -1446,7 +1446,7 @@ Le processus de migration créera une sauvegarde du porte-monnaie avant migratio
</message>
<message>
<source>When you click OK, %1 will begin to download and process the full %4 block chain (%2 GB) starting with the earliest transactions in %3 when %4 initially launched.</source>
<translation type="unfinished">Quand vous cliquerez sur Valider, %1 commencera à télécharger et à traiter lintégralité de la chaîne de blocs %4 (%2 Go) en débutant avec les transactions les plus anciennes de %3, quand %4 a é lancé initialement.</translation>
<translation type="unfinished">Quand vous cliquerez sur Valider, %1 commencera à télécharger et à traiter lintégralité de la chaîne de blocs %4 (%2 Go) en débutant avec les transactions les plus anciennes de %3, lors du lancement de %4 a é lancé initialement.</translation>
</message>
<message>
<source>If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low.</source>
@ -1543,7 +1543,7 @@ Le processus de migration créera une sauvegarde du porte-monnaie avant migratio
</message>
<message>
<source>Unknown. Pre-syncing Headers (%1, %2%)</source>
<translation type="unfinished">Inconnu. En-têtes de présynchronisation (%1, %2%)...</translation>
<translation type="unfinished">Inconnu. En-têtes de présynchronisation (%1, %2%)</translation>
</message>
</context>
<context>
@ -1590,7 +1590,7 @@ Le processus de migration créera une sauvegarde du porte-monnaie avant migratio
</message>
<message>
<source>Full path to a %1 compatible script (e.g. C:\Downloads\hwi.exe or /Users/you/Downloads/hwi.py). Beware: malware can steal your coins!</source>
<translation type="unfinished">Chemin complet vers un %1 script compatible (par exemple, C:\Downloads\hwi.exe ou /Users/you/Downloads/hwi.py). Attention : les malwares peuvent voler vos pièces !</translation>
<translation type="unfinished">Chemin complet vers un script compatible avec %1 (p. ex. C:\Téléchargements\hwi.exe ou /Utilisateurs/vous/Téléchargements/hwi.py). Attention : des programmes malveillants peuvent voler vos pièces!</translation>
</message>
<message>
<source>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</source>
@ -1610,7 +1610,7 @@ Le processus de migration créera une sauvegarde du porte-monnaie avant migratio
</message>
<message>
<source>Options set in this dialog are overridden by the command line:</source>
<translation type="unfinished">Les options définies dans cette boîte de dialogue sont remplacées par la ligne de commande :</translation>
<translation type="unfinished">Les options définies dans cette boîte de dialogue sont remplacées par la ligne de commande :</translation>
</message>
<message>
<source>Open the %1 configuration file from the working directory.</source>
@ -1862,7 +1862,7 @@ Le processus de migration créera une sauvegarde du porte-monnaie avant migratio
<message>
<source>Current settings will be backed up at "%1".</source>
<extracomment>Text explaining to the user that the client's current settings will be backed up at a specific location. %1 is a stand-in argument for the backup location's path.</extracomment>
<translation type="unfinished">Les paramètres actuels vont être restaurés à "%1".</translation>
<translation type="unfinished">Les paramètres actuels seront sauvegardés à « %1 ».</translation>
</message>
<message>
<source>Client will be shut down. Do you want to proceed?</source>
@ -1908,7 +1908,7 @@ Le processus de migration créera une sauvegarde du porte-monnaie avant migratio
<name>OptionsModel</name>
<message>
<source>Could not read setting "%1", %2.</source>
<translation type="unfinished">Impossible de lire le paramètre "%1", %2.</translation>
<translation type="unfinished">Impossible de lire le paramètre « %1 », %2.</translation>
</message>
</context>
<context>
@ -1994,7 +1994,7 @@ Le processus de migration créera une sauvegarde du porte-monnaie avant migratio
<name>PSBTOperationsDialog</name>
<message>
<source>PSBT Operations</source>
<translation type="unfinished">Opération PSBT</translation>
<translation type="unfinished">Opération TBSP</translation>
</message>
<message>
<source>Sign Tx</source>
@ -2172,6 +2172,11 @@ If you are receiving this error you should request the merchant provide a BIP21
<translation type="unfinished">Pair</translation>
</message>
<message>
<source>Age</source>
<extracomment>Title of Peers Table column which indicates the duration (length of time) since the peer connection started.</extracomment>
<translation type="unfinished">Âge</translation>
</message>
<message>
<source>Sent</source>
<extracomment>Title of Peers Table column which indicates the total amount of network information we have sent to the peer.</extracomment>
<translation type="unfinished">Envoyé</translation>
@ -2334,19 +2339,19 @@ If you are receiving this error you should request the merchant provide a BIP21
</message>
<message>
<source>The transport layer version: %1</source>
<translation type="unfinished">La version de la couche de transport : %1</translation>
<translation type="unfinished">Version de la couche de transport : %1</translation>
</message>
<message>
<source>The BIP324 session ID string in hex, if any.</source>
<translation type="unfinished">La chaîne d'ID de session BIP324 en hexadécimal, le cas échéant.</translation>
<translation type="unfinished">ID hexadécimale de la session BIP324, le cas échéant.</translation>
</message>
<message>
<source>Session ID</source>
<translation type="unfinished">ID de session</translation>
<translation type="unfinished">ID de la session</translation>
</message>
<message>
<source>Whether we relay transactions to this peer.</source>
<translation type="unfinished">Si nous relayons des transactions à ce pair.</translation>
<translation type="unfinished">Relayer ou non des transactions à ce pair.</translation>
</message>
<message>
<source>Transaction Relay</source>
@ -2389,12 +2394,12 @@ If you are receiving this error you should request the merchant provide a BIP21
<message>
<source>The total number of addresses received from this peer that were processed (excludes addresses that were dropped due to rate-limiting).</source>
<extracomment>Tooltip text for the Addresses Processed field in the peer details area, which displays the total number of addresses received from this peer that were processed (excludes addresses that were dropped due to rate-limiting).</extracomment>
<translation type="unfinished">Nombre total d'adresses reçues de ce pair qui ont été traitées (à l'exclusion des adresses qui ont é abandonnées en raison de la limitation du débit).</translation>
<translation type="unfinished">Nombre total dadresses reçues de ce pair qui ont é traitées (les adresses abandonnées en raison de la limite du débit sont exclues).</translation>
</message>
<message>
<source>The total number of addresses received from this peer that were dropped (not processed) due to rate-limiting.</source>
<extracomment>Tooltip text for the Addresses Rate-Limited field in the peer details area, which displays the total number of addresses received from this peer that were dropped (not processed) due to rate-limiting.</extracomment>
<translation type="unfinished">Nombre total d'adresses reçues de ce pair qui ont é abandonnées (non traitées) en raison de la limitation du débit.</translation>
<translation type="unfinished">Nombre total dadresses reçues de ce pair qui ont é abandonnées (non traitées) en raison de la limite du débit.</translation>
</message>
<message>
<source>Addresses Processed</source>
@ -2439,6 +2444,10 @@ If you are receiving this error you should request the merchant provide a BIP21
<translation type="unfinished">La direction et le type de la connexion au pair : %1</translation>
</message>
<message>
<source>Direction/Type</source>
<translation type="unfinished">Direction ou type</translation>
</message>
<message>
<source>The network protocol this peer is connected through: IPv4, IPv6, Onion, I2P, or CJDNS.</source>
<translation type="unfinished">Le protocole réseau par lequel ce pair est connecté : IPv4, IPv6, Oignon, I2P ou CJDNS.</translation>
</message>
@ -2560,17 +2569,17 @@ If you are receiving this error you should request the merchant provide a BIP21
<message>
<source>detecting: peer could be v1 or v2</source>
<extracomment>Explanatory text for "detecting" transport type.</extracomment>
<translation type="unfinished">détection : paires pourrait être v1 ou v2</translation>
<translation type="unfinished">détection : les paires pourraient être v1 ou v2</translation>
</message>
<message>
<source>v1: unencrypted, plaintext transport protocol</source>
<extracomment>Explanatory text for v1 transport type.</extracomment>
<translation type="unfinished">v1: protocole de transport non chiffré en texte clair</translation>
<translation type="unfinished">v1 : protocole de transport non chiffré en texte clair</translation>
</message>
<message>
<source>v2: BIP324 encrypted transport protocol</source>
<extracomment>Explanatory text for v2 transport type.</extracomment>
<translation type="unfinished">v2: Protocole de transport chiffré BIP324</translation>
<translation type="unfinished">v2 : protocole de transport chiffré BIP324</translation>
</message>
<message>
<source>we selected the peer for high bandwidth relay</source>
@ -2783,8 +2792,12 @@ Pour plus de précisions sur cette console, tapez %6.
<translation type="unfinished">Copier le mont&amp;ant</translation>
</message>
<message>
<source>Base58 (Legacy)</source>
<translation type="unfinished">Base58 (ancien)</translation>
</message>
<message>
<source>Not recommended due to higher fees and less protection against typos.</source>
<translation type="unfinished">Non recommandé en raison de frais élevés et d'une faible protection contre les fautes de frappe.</translation>
<translation type="unfinished">Non recommandé en raison de frais élevés et dune protection moindre contre les fautes de frappe.</translation>
</message>
<message>
<source>Generates an address compatible with older wallets.</source>
@ -2843,7 +2856,7 @@ Pour plus de précisions sur cette console, tapez %6.
</message>
<message>
<source>&amp;Verify</source>
<translation type="unfinished">&amp;Vérifier</translation>
<translation type="unfinished">&amp;Confirmer</translation>
</message>
<message>
<source>Verify this address on e.g. a hardware wallet screen</source>
@ -3162,6 +3175,12 @@ Note : Les frais étant calculés par octet, un taux de frais de « 100 satoshi
<translation type="unfinished">Frais de transaction</translation>
</message>
<message>
<source>%1 kvB</source>
<comment>PSBT transaction creation</comment>
<extracomment>When reviewing a newly created PSBT (via Send flow), the transaction fee is shown, with "virtual size" of the transaction displayed for context</extracomment>
<translation type="unfinished">%1 kvB</translation>
</message>
<message>
<source>Not signalling Replace-By-Fee, BIP-125.</source>
<translation type="unfinished">Ne signale pas Remplacer-par-des-frais, BIP-125.</translation>
</message>
@ -3177,11 +3196,11 @@ Note : Les frais étant calculés par octet, un taux de frais de « 100 satoshi
</message>
<message>
<source>The PSBT has been copied to the clipboard. You can also save it.</source>
<translation type="unfinished">Le PSBT a é copié dans le presse-papiers. Vous pouvez également le sauvegarder.</translation>
<translation type="unfinished">La TBSP a é copiée dans le presse-papiers. Vous pouvez aussi lenregistrer.</translation>
</message>
<message>
<source>PSBT saved to disk</source>
<translation type="unfinished">PSBT sauvegardé sur le disque</translation>
<translation type="unfinished">La TBSP a é enregistrée sur le disque</translation>
</message>
<message>
<source>Confirm send coins</source>
@ -3477,12 +3496,12 @@ Note : Les frais étant calculés par octet, un taux de frais de « 100 satoshi
<message>
<source>0/unconfirmed, in memory pool</source>
<extracomment>Text explaining the current status of a transaction, shown in the status field of the details window for this transaction. This status represents an unconfirmed transaction that is in the memory pool.</extracomment>
<translation type="unfinished">0/non confirmé, dans la pool de mémoire</translation>
<translation type="unfinished">0/non confirmée, dans la réserve de mémoire</translation>
</message>
<message>
<source>0/unconfirmed, not in memory pool</source>
<extracomment>Text explaining the current status of a transaction, shown in the status field of the details window for this transaction. This status represents an unconfirmed transaction that is not in the memory pool.</extracomment>
<translation type="unfinished">0/non confirmé, pas dans la pool de mémoire</translation>
<translation type="unfinished">0/non confirmée, absente de la réserve de mémoire</translation>
</message>
<message>
<source>abandoned</source>
@ -3912,7 +3931,7 @@ Accédez à Fichier &gt; Ouvrir un porte-monnaie pour en charger un.
</message>
<message>
<source>Fee bump error</source>
<translation type="unfinished">Erreur daugmentation des frais</translation>
<translation type="unfinished">Erreur de majoration des frais</translation>
</message>
<message>
<source>Increasing transaction fee failed</source>
@ -3941,7 +3960,7 @@ Accédez à Fichier &gt; Ouvrir un porte-monnaie pour en charger un.
</message>
<message>
<source>Confirm fee bump</source>
<translation type="unfinished">Confirmer laugmentation des frais</translation>
<translation type="unfinished">Confirmer la majoration des frais</translation>
</message>
<message>
<source>Can't draft transaction.</source>
@ -4025,11 +4044,11 @@ Accédez à Fichier &gt; Ouvrir un porte-monnaie pour en charger un.
</message>
<message>
<source>%s failed to validate the -assumeutxo snapshot state. This indicates a hardware problem, or a bug in the software, or a bad software modification that allowed an invalid snapshot to be loaded. As a result of this, the node will shut down and stop using any state that was built on the snapshot, resetting the chain height from %d to %d. On the next restart, the node will resume syncing from %d without using any snapshot data. Please report this incident to %s, including how you obtained the snapshot. The invalid snapshot chainstate will be left on disk in case it is helpful in diagnosing the issue that caused this error.</source>
<translation type="unfinished">%s a échoué à valider l'état instantané -assumeutxo. Cela indique un problème matériel, ou un bug dans le logiciel, ou une mauvaise modification du logiciel qui a permis de charger un instantané invalide. En conséquence, le nœud s'arrêtera et cessera d'utiliser tout état qui a été construit sur l'instantané, réinitialisant la hauteur de la chaîne de %d à %d. Au prochain redémarrage, le nœud reprendra la synchronisation à partir de %d sans utiliser de données d'instantané. Veuillez signaler cet incident à %s, en précisant comment vous avez obtenu l'instantané. L'état de chaîne d'instantané invalide sera conservé sur le disque au cas il serait utile pour diagnostiquer le problème qui a causé cette erreur.</translation>
<translation type="unfinished">%s na pas réussi à valider létat de linstantané -assumeutxo. Cela indique un problème matériel, un bogue logiciel ou une mauvaise modification logicielle qui a permis le chargement dun instantané invalide. Par conséquent, le nœud sarrêtera et cessera dutiliser tout état fondé sur cet instantané, ce qui réinitialisera à le niveau de la chaîne de %d à %d. Lors du prochain démarrage, la synchronisation reprendra de %d, sans utiliser les données dun instantané. Signalez cet incident à %s en indiquant comment vous avez obtenu linstantané. Létat de chaîne de linstantané invalide sera laissé sur le disque au cas afin daider éventuellement à diagnostiquer le problème à lorigine de cette erreur.</translation>
</message>
<message>
<source>%s request to listen on port %u. This port is considered "bad" and thus it is unlikely that any peer will connect to it. See doc/p2p-bad-ports.md for details and a full list.</source>
<translation type="unfinished">%s demande d'écouter sur le port %u. Ce port est considéré comme "mauvais" et il est donc peu probable qu'un pair s'y connecte. Voir doc/p2p-bad-ports.md pour plus de détails et une liste complète.</translation>
<translation type="unfinished">%s demande découter sur le port %u. Ce port est considéré comme « mauvais » et il est donc peu probable quun pair sy connecte. Voir doc/p2p-bad-ports.md pour plus de précisions et une liste complète.</translation>
</message>
<message>
<source>Cannot downgrade wallet from version %i to version %i. Wallet version unchanged.</source>
@ -4045,7 +4064,7 @@ Accédez à Fichier &gt; Ouvrir un porte-monnaie pour en charger un.
</message>
<message>
<source>Disk space for %s may not accommodate the block files. Approximately %u GB of data will be stored in this directory.</source>
<translation type="unfinished">L'espace disque %s peut ne pas être suffisant pour les fichiers en bloc. Environ %u Go de données seront stockés dans ce répertoire.</translation>
<translation type="unfinished">Lespace disque pourrait être insuffisant sur %s pour accueillir les fichiers de bloc. Environ %u Go de données seront stockés dans ce répertoire.</translation>
</message>
<message>
<source>Distributed under the MIT software license, see the accompanying file %s or %s</source>
@ -4117,7 +4136,7 @@ Accédez à Fichier &gt; Ouvrir un porte-monnaie pour en charger un.
</message>
<message>
<source>Prune mode is incompatible with -reindex-chainstate. Use full -reindex instead.</source>
<translation type="unfinished">Le mode Prune est incompatible avec -reindex-chainstate. Utilisez plutôt -reindex complet.</translation>
<translation type="unfinished">Le mode délagage est incompatible avec -reindex-chainstate. Utilisez plutôt -reindex complet.</translation>
</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>
@ -4125,7 +4144,7 @@ Accédez à Fichier &gt; Ouvrir un porte-monnaie pour en charger un.
</message>
<message>
<source>Rename of '%s' -&gt; '%s' failed. You should resolve this by manually moving or deleting the invalid snapshot directory %s, otherwise you will encounter the same error again on the next startup.</source>
<translation type="unfinished">La modification de '%s' -&gt; '%s' a échoué. Vous devriez résoudre cela en déplaçant ou en supprimant manuellement le répertoire de snapshot invalide %s, sinon vous rencontrerez la même erreur à nouveau au prochain démarrage.</translation>
<translation type="unfinished">Le renommage de '%s' en '%s' a échoué. Vous devriez résoudre cela en déplaçant ou en supprimant manuellement le répertoire de linstantané invalide %s, sinon la même erreur surviendra de nouveau lors du prochain démarrage.</translation>
</message>
<message>
<source>SQLiteDatabase: Unknown sqlite wallet schema version %d. Only version %d is supported</source>
@ -4173,11 +4192,11 @@ Accédez à Fichier &gt; Ouvrir un porte-monnaie pour en charger un.
</message>
<message>
<source>Unsupported category-specific logging level %1$s=%2$s. Expected %1$s=&lt;category&gt;:&lt;loglevel&gt;. Valid categories: %3$s. Valid loglevels: %4$s.</source>
<translation type="unfinished">Niveau de journalisation spécifique à la catégorie non pris en charge %1$s=%2$s. Attendu %1$s=&lt;catégorie&gt;:&lt;niveaudejournal&gt;. Catégories valides : %3$s. Niveaux de journalisation valides : %4$s.</translation>
<translation type="unfinished">Le niveau de journalisation propre à la catégorie nest pas pris en charge %1$s=%2$s. Attendu %1$s=&lt;category&gt;:&lt;loglevel&gt;. Catégories valides : %3$s. Niveaux de journalisation valides : %4$s.</translation>
</message>
<message>
<source>Unsupported chainstate database format found. Please restart with -reindex-chainstate. This will rebuild the chainstate database.</source>
<translation type="unfinished">Le format de la base de données chainstate n'est pas supporté. Veuillez redémarrer avec -reindex-chainstate. Cela reconstruira la base de données chainstate.</translation>
<translation type="unfinished">Un format non pris en charge de la base de données détat de la chaîne a é trouvé. Redémarrez avec -reindex-chainstate. La base de données détat de la chaîne sera reconstruite.</translation>
</message>
<message>
<source>Wallet created successfully. The legacy wallet type is being deprecated and support for creating and opening legacy wallets will be removed in the future.</source>
@ -4237,7 +4256,7 @@ Accédez à Fichier &gt; Ouvrir un porte-monnaie pour en charger un.
</message>
<message>
<source>%s is set very high! Fees this large could be paid on a single transaction.</source>
<translation type="unfinished">%s est très élevé ! Des frais aussi importants pourraient être payés sur une seule transaction.</translation>
<translation type="unfinished">%s est un montant très élevé. Des frais aussi élevés pourraient être payés en une seule transaction.</translation>
</message>
<message>
<source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
@ -4249,7 +4268,7 @@ Accédez à Fichier &gt; Ouvrir un porte-monnaie pour en charger un.
</message>
<message>
<source>Error reading %s! All keys read correctly, but transaction data or address metadata may be missing or incorrect.</source>
<translation type="unfinished">Erreur de lecture de %s! Toutes les clés ont é lues correctement, mais les données de transaction ou les métadonnées d'adresse peuvent être manquantes ou incorrectes.</translation>
<translation type="unfinished">Erreur de lecture de %s. Toutes les clés ont é lues correctement, mais les données de la transaction ou les métadonnées de ladresse sont peut-être manquantes ou incorrectes.</translation>
</message>
<message>
<source>Error: Address book data in wallet cannot be identified to belong to migrated wallets</source>
@ -4265,7 +4284,7 @@ Accédez à Fichier &gt; Ouvrir un porte-monnaie pour en charger un.
</message>
<message>
<source>Failed to calculate bump fees, because unconfirmed UTXOs depend on enormous cluster of unconfirmed transactions.</source>
<translation type="unfinished">Échec du calcul des frais de majoration, car les UTXO non confirmés dépendent d'un énorme groupe de transactions non confirmées.</translation>
<translation type="unfinished">Échec de calcul de la majoration des frais, car les UTXO non confirmés dépendent dun groupe énorme de transactions non confirmées.</translation>
</message>
<message>
<source>Failed to rename invalid peers.dat file. Please move or delete it and try again.</source>

View File

@ -381,6 +381,10 @@ Ní féidir síniú ach le seoltaí 'oidhreachta'.</translation>
<translation type="unfinished">Cruthaigh sparán nua</translation>
</message>
<message>
<source>&amp;Minimize</source>
<translation type="unfinished">&amp;Íoslaghdaigh</translation>
</message>
<message>
<source>Wallet:</source>
<translation type="unfinished">Sparán:</translation>
</message>
@ -1597,6 +1601,11 @@ Ní féidir síniú ach le seoltaí 'oidhreachta'.</translation>
<translation type="unfinished">Gníomhaire Úsáideora</translation>
</message>
<message>
<source>Age</source>
<extracomment>Title of Peers Table column which indicates the duration (length of time) since the peer connection started.</extracomment>
<translation type="unfinished">Aois</translation>
</message>
<message>
<source>Direction</source>
<extracomment>Title of Peers Table column which indicates the direction the peer connection was initiated from.</extracomment>
<translation type="unfinished">Treo</translation>

View File

@ -381,6 +381,10 @@ Ní féidir síniú ach le seoltaí 'oidhreachta'.</translation>
<translation type="unfinished">Cruthaigh sparán nua</translation>
</message>
<message>
<source>&amp;Minimize</source>
<translation type="unfinished">&amp;Íoslaghdaigh</translation>
</message>
<message>
<source>Wallet:</source>
<translation type="unfinished">Sparán:</translation>
</message>
@ -1597,6 +1601,11 @@ Ní féidir síniú ach le seoltaí 'oidhreachta'.</translation>
<translation type="unfinished">Gníomhaire Úsáideora</translation>
</message>
<message>
<source>Age</source>
<extracomment>Title of Peers Table column which indicates the duration (length of time) since the peer connection started.</extracomment>
<translation type="unfinished">Aois</translation>
</message>
<message>
<source>Direction</source>
<extracomment>Title of Peers Table column which indicates the direction the peer connection was initiated from.</extracomment>
<translation type="unfinished">Treo</translation>

View File

@ -84,11 +84,24 @@ Firmar é posible unicamente con enderezos de tipo 'legacy'.</translation>
<translation type="unfinished">Exportar Lista de Enderezos</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">Ficheiro separado por comas</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>
<translation type="unfinished">Houbo un erro tentando gardar a lista de enderezos en %1. Por favor proba de novo.</translation>
</message>
<message>
<source>Sending addresses - %1</source>
<translation type="unfinished">Enviando enderezos - %1</translation>
</message>
<message>
<source>Receiving addresses - %1</source>
<translation type="unfinished">Recibindo enderezos - %1</translation>
</message>
<message>
<source>Exporting Failed</source>
<translation type="unfinished">Exportación falida</translation>
</message>
@ -211,10 +224,22 @@ Firmar é posible unicamente con enderezos de tipo 'legacy'.</translation>
<translation type="unfinished">O contrasinal introducido para a desencriptación do moedeiro foi incorrecto.</translation>
</message>
<message>
<source>The passphrase entered for the wallet decryption is incorrect. It contains a null character (ie - a zero byte). If the passphrase was set with a version of this software prior to 25.0, please try again with only the characters up to but not including the first null character. If this is successful, please set a new passphrase to avoid this issue in the future.</source>
<translation type="unfinished">A frase de acceso introducida para o descifrado da carteira é incorrecta. Contén un carácter nulo (é dicir, un byte cero). Se a frase de paso se estableceu cunha versión deste software anterior á 25.0, téntao de novo con os caracteres ata, pero sen incluír, o primeiro carácter nulo. Se se realiza correctamente, establece unha nova frase de acceso para evitar este problema no futuro.</translation>
</message>
<message>
<source>Wallet passphrase was successfully changed.</source>
<translation type="unfinished">Cambiouse con éxito o contrasinal do moedeiro.</translation>
</message>
<message>
<source>Passphrase change failed</source>
<translation type="unfinished">Produciuse un erro no cambio de frase de contrasinal</translation>
</message>
<message>
<source>The old passphrase entered for the wallet decryption is incorrect. It contains a null character (ie - a zero byte). If the passphrase was set with a version of this software prior to 25.0, please try again with only the characters up to but not including the first null character.</source>
<translation type="unfinished">A contrasinal antiga introducida para o descifrado da carteira é incorrecta. Contén un carácter nulo (é dicir, un byte cero). Se a frase de paso se estableceu cunha versión deste software anterior á 25.0, téntao de novo con os caracteres ata, pero sen incluír, o primeiro carácter nulo.</translation>
</message>
<message>
<source>Warning: The Caps Lock key is on!</source>
<translation type="unfinished">Aviso: O Bloqueo de Maiúsculas está activo!</translation>
</message>
@ -233,13 +258,33 @@ Firmar é posible unicamente con enderezos de tipo 'legacy'.</translation>
<context>
<name>BitcoinApplication</name>
<message>
<source>Settings file %1 might be corrupt or invalid.</source>
<translation type="unfinished">O ficheiro de configuración %1 pode estar danado ou non válido.</translation>
</message>
<message>
<source>Runaway exception</source>
<translation type="unfinished">Excepción de fuga</translation>
</message>
<message>
<source>A fatal error occurred. %1 can no longer continue safely and will quit.</source>
<translation type="unfinished">Produciuse un erro fatal. %1 xa non pode continuar con seguridade e sairá.</translation>
</message>
<message>
<source>Internal error</source>
<translation type="unfinished">Erro interno</translation>
</message>
</context>
<message>
<source>An internal error occurred. %1 will attempt to continue safely. This is an unexpected bug which can be reported as described below.</source>
<translation type="unfinished">Produciuse un erro interno. %1 tentará continuar con seguridade. Este é un erro inesperado que se pode informar como se describe a continuación.</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<source>%1 didn't yet exit safely</source>
<translation type="unfinished">%1 aínda non saíu con seguridade...</translation>
</message>
<message>
<source>unknown</source>
<translation type="unfinished">descoñecido</translation>
</message>
@ -382,10 +427,22 @@ Firmar é posible unicamente con enderezos de tipo 'legacy'.</translation>
<translation type="unfinished">&amp;Opcións...</translation>
</message>
<message>
<source>&amp;Encrypt Wallet</source>
<translation type="unfinished">&amp;Cifrar carteira...</translation>
</message>
<message>
<source>Encrypt the private keys that belong to your wallet</source>
<translation type="unfinished">Encriptar as claves privadas que pertencen ao teu moedeiro</translation>
</message>
<message>
<source>&amp;Backup Wallet</source>
<translation type="unfinished">&amp;Copia de seguranza da carteira...</translation>
</message>
<message>
<source>&amp;Change Passphrase</source>
<translation type="unfinished">&amp;Cambiar a frase de contrasinal...</translation>
</message>
<message>
<source>Sign messages with your Bitcoin addresses to prove you own them</source>
<translation type="unfinished">Asina mensaxes cos teus enderezos Bitcoin para probar que che pertencen</translation>
</message>
@ -1876,6 +1933,11 @@ Firmar é posible unicamente con enderezos de tipo 'legacy'.</translation>
<translation type="unfinished">Exportar Historial de Transaccións</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">Ficheiro separado por comas</translation>
</message>
<message>
<source>Confirmed</source>
<translation type="unfinished">Confirmado</translation>
</message>

View File

@ -84,6 +84,11 @@ Firmar é posible unicamente con enderezos de tipo 'legacy'.</translation>
<translation type="unfinished">Exporta a Lista de Enderezos</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">Ficheiro separado por comas</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>
<translation type="unfinished">Houbo un erro tentando gardar a lista de enderezos en %1. Por favor proba de novo.</translation>
@ -207,10 +212,22 @@ Firmar é posible unicamente con enderezos de tipo 'legacy'.</translation>
<translation type="unfinished">A frase contrasinal introducida para o desencriptamento da carteira é incorrecto.</translation>
</message>
<message>
<source>The passphrase entered for the wallet decryption is incorrect. It contains a null character (ie - a zero byte). If the passphrase was set with a version of this software prior to 25.0, please try again with only the characters up to but not including the first null character. If this is successful, please set a new passphrase to avoid this issue in the future.</source>
<translation type="unfinished">A frase de acceso introducida para o descifrado da carteira é incorrecta. Contén un carácter nulo (é dicir, un byte cero). Se a frase de paso se estableceu cunha versión deste software anterior á 25.0, téntao de novo con os caracteres ata, pero sen incluír, o primeiro carácter nulo. Se se realiza correctamente, establece unha nova frase de acceso para evitar este problema no futuro.</translation>
</message>
<message>
<source>Wallet passphrase was successfully changed.</source>
<translation type="unfinished">A frase contrasinal da carteira mudouse correctamente.</translation>
</message>
<message>
<source>Passphrase change failed</source>
<translation type="unfinished">Produciuse un erro no cambio de frase de contrasinal</translation>
</message>
<message>
<source>The old passphrase entered for the wallet decryption is incorrect. It contains a null character (ie - a zero byte). If the passphrase was set with a version of this software prior to 25.0, please try again with only the characters up to but not including the first null character.</source>
<translation type="unfinished">Produciuse un erro non cambio de frase de contrasinal</translation>
</message>
<message>
<source>Warning: The Caps Lock key is on!</source>
<translation type="unfinished">Aviso: ¡A tecla Bloq. Mayús está activada!</translation>
</message>
@ -229,10 +246,22 @@ Firmar é posible unicamente con enderezos de tipo 'legacy'.</translation>
<context>
<name>BitcoinApplication</name>
<message>
<source>Runaway exception</source>
<translation type="unfinished">Excepción de fuga</translation>
</message>
<message>
<source>A fatal error occurred. %1 can no longer continue safely and will quit.</source>
<translation type="unfinished">Produciuse un erro fatal. %1 xa non pode continuar con seguridade e sairá.</translation>
</message>
<message>
<source>Internal error</source>
<translation type="unfinished">Erro interno</translation>
</message>
</context>
<message>
<source>An internal error occurred. %1 will attempt to continue safely. This is an unexpected bug which can be reported as described below.</source>
<translation type="unfinished">Produciuse un erro interno. %1 tentará continuar con seguridade. Este é un erro inesperado que se pode informar como se describe a continuación.</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
@ -374,10 +403,22 @@ Firmar é posible unicamente con enderezos de tipo 'legacy'.</translation>
<translation type="unfinished">&amp;Opcións...</translation>
</message>
<message>
<source>&amp;Encrypt Wallet</source>
<translation type="unfinished">&amp;Cifrar carteira...</translation>
</message>
<message>
<source>Encrypt the private keys that belong to your wallet</source>
<translation type="unfinished">Encripta as claves privadas que pertencen á túa carteira</translation>
</message>
<message>
<source>&amp;Backup Wallet</source>
<translation type="unfinished">&amp;Copia de seguranza da carteira...</translation>
</message>
<message>
<source>&amp;Change Passphrase</source>
<translation type="unfinished">&amp;Cambiar a frase de contrasinal...</translation>
</message>
<message>
<source>Sign messages with your Bitcoin addresses to prove you own them</source>
<translation type="unfinished">Asina mensaxes cos teus enderezos de Bitcoin para probar que che pertencen</translation>
</message>
@ -1061,6 +1102,11 @@ Firmar é posible unicamente con enderezos de tipo 'legacy'.</translation>
<translation type="unfinished">&amp;Copiar enderezo</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">Ficheiro separado por comas</translation>
</message>
<message>
<source>Confirmed</source>
<translation type="unfinished">Confirmada</translation>
</message>

File diff suppressed because it is too large Load Diff

View File

@ -303,6 +303,14 @@ Aláírni csak régi típusú, egyessel kezdődő címekkel lehet.</translation>
<translation type="unfinished">ismeretlen</translation>
</message>
<message>
<source>Embedded "%1"</source>
<translation type="unfinished">Beágyazva "%1"</translation>
</message>
<message>
<source>Default system font "%1"</source>
<translation type="unfinished">Alapértelmezett betűtípus "%1"</translation>
</message>
<message>
<source>Amount</source>
<translation type="unfinished">Összeg</translation>
</message>

View File

@ -259,6 +259,18 @@ Tanda tangan hanya bisa digunakan dengan tipe alamat 'warisan'</translation>
<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">Error yang fatal telah terjadi. Periksa bahwa file pengaturan dapat ditulis atau coba jalankan dengan -nosettings</translation>
</message>
<message>
<source>Embedded "%1"</source>
<translation type="unfinished">Di embed "%1"</translation>
</message>
<message>
<source>Default system font "%1"</source>
<translation type="unfinished">Font bawaan sistem "%1"</translation>
</message>
<message>
<source>Custom</source>
<translation type="unfinished">Pilihan...</translation>
</message>
<message numerus="yes">
<source>%n second(s)</source>
<translation type="unfinished">
@ -553,6 +565,10 @@ Proses migrasi akan mencadangkan dompet sebelum melakukan pemindahan. Fail cadan
<translation type="unfinished">Skrip hanya lihat telah dimigrasikan ke dompet yang baru '%1'.</translation>
</message>
<message>
<source>Solvable but not watched scripts have been migrated to a new wallet named '%1'.</source>
<translation type="unfinished">Skrip hanya lihat telah diimigrasikan ke dompet baru yang bernama '%1'.</translation>
</message>
<message>
<source>Migration failed</source>
<translation type="unfinished">Migrasi gagal</translation>
</message>
@ -974,6 +990,10 @@ Proses migrasi akan mencadangkan dompet sebelum melakukan pemindahan. Fail cadan
<translation type="unfinished">Minimalisasi aplikasi ketika jendela ditutup. Ketika pilihan ini dipilih, aplikasi akan menutup seluruhnya jika anda memilih Keluar di menu yang tersedia.</translation>
</message>
<message>
<source>Font in the Overview tab: </source>
<translation type="unfinished">Font pada tab Overview:</translation>
</message>
<message>
<source>Options set in this dialog are overridden by the command line:</source>
<translation type="unfinished">Set opsi pengaturan pada jendela dialog ini tertutup oleh baris perintah:</translation>
</message>
@ -1112,6 +1132,10 @@ Proses migrasi akan mencadangkan dompet sebelum melakukan pemindahan. Fail cadan
<source>PSBT Operations</source>
<translation type="unfinished">Operasi PBST</translation>
</message>
<message>
<source>Sends %1 to %2</source>
<translation type="unfinished">Mengirim %1 ke %2</translation>
</message>
</context>
<context>
<name>PeerTableModel</name>
@ -1244,6 +1268,10 @@ Proses migrasi akan mencadangkan dompet sebelum melakukan pemindahan. Fail cadan
<translation type="unfinished">Salin Perubahan</translation>
</message>
<message>
<source>%1 from wallet '%2'</source>
<translation type="unfinished">%1 dari dompet '%2'</translation>
</message>
<message>
<source>Unsigned Transaction</source>
<comment>PSBT copied</comment>
<extracomment>Caption of "PSBT has been copied" messagebox</extracomment>
@ -1286,6 +1314,10 @@ Proses migrasi akan mencadangkan dompet sebelum melakukan pemindahan. Fail cadan
<numerusform>matures in %n more block(s)</numerusform>
</translation>
</message>
<message>
<source>%1 (Certificate was not verified)</source>
<translation type="unfinished">%1 (Sertifikat tidak terverifikasi)</translation>
</message>
</context>
<context>
<name>TransactionTableModel</name>
@ -1507,10 +1539,18 @@ Tidak dapat memulihkan cadangan dompet..</translation>
<translation type="unfinished">Verifikasi Blok terganggu</translation>
</message>
<message>
<source>Error committing db txn for wallet transactions removal</source>
<translation type="unfinished">Kesalahan dalam melakukan db txn untuk penghapusan transaksi dompet</translation>
</message>
<message>
<source>Error reading configuration file: %s</source>
<translation type="unfinished">Kesalahan membaca file konfigurasi: %s</translation>
</message>
<message>
<source>Error starting db txn for wallet transactions removal</source>
<translation type="unfinished">Kesalahan memulai db txn untuk penghapusan transaksi dompet</translation>
</message>
<message>
<source>Error: Cannot extract destination from the generated scriptpubkey</source>
<translation type="unfinished">Eror: Tidak dapat mengekstrak destinasi dari scriptpubkey yang dibuat</translation>
</message>
@ -1539,14 +1579,38 @@ Tidak dapat memulihkan cadangan dompet..</translation>
<translation type="unfinished">Kesalahan: Tidak dapat membaca semua catatan dalam database</translation>
</message>
<message>
<source>Error: Unable to read wallet's best block locator record</source>
<translation type="unfinished">Kesalahan: Tidak dapat membaca catatan pencari blok terbaik dompet</translation>
</message>
<message>
<source>Error: Unable to remove watchonly address book data</source>
<translation type="unfinished">Kesalahan: Tidak dapat menghapus data buku alamat yang hanya dilihat</translation>
</message>
<message>
<source>Error: Unable to write solvable wallet best block locator record</source>
<translation type="unfinished">Kesalahan: Tidak dapat menulis catatan pencari blok terbaik dompet solvable</translation>
</message>
<message>
<source>Error: Unable to write watchonly wallet best block locator record</source>
<translation type="unfinished">Kesalahan: Tidak dapat menulis catatan pencari blok terbaik dompet watchonly</translation>
</message>
<message>
<source>Error: address book copy failed for wallet %s</source>
<translation type="unfinished">Kesalahan: penyalinan daftar kontak gagal untuk dompet %s</translation>
</message>
<message>
<source>Error: database transaction cannot be executed for wallet %s</source>
<translation type="unfinished">Kesalahan: database transaksi tidak dapat dilakukan untuk dompet %s</translation>
</message>
<message>
<source>Failed to start indexes, shutting down..</source>
<translation type="unfinished">Gagal memulai indeks, mematikan..</translation>
</message>
<message>
<source>Failure removing transaction: %s</source>
<translation type="unfinished">Gagal menghapus transaksi: %s</translation>
</message>
<message>
<source>Insufficient dbcache for block verification</source>
<translation type="unfinished">Kekurangan dbcache untuk verifikasi blok</translation>
</message>
@ -1583,6 +1647,10 @@ Tidak dapat memulihkan cadangan dompet..</translation>
<translation type="unfinished">Direktori data yang ditentukan "%s" tidak ada.</translation>
</message>
<message>
<source>Transaction %s does not belong to this wallet</source>
<translation type="unfinished">Transaksi %s tidak termasuk dompet ini</translation>
</message>
<message>
<source>Unable to allocate memory for -maxsigcachesize: '%s' MiB</source>
<translation type="unfinished">Tidak dapat mengalokasikan memori untuk -maxsigcachesize: '%s' MiB</translation>
</message>
@ -1599,8 +1667,20 @@ Tidak dapat memulihkan cadangan dompet..</translation>
<translation type="unfinished">Tingkat penebangan global yang tidak didukung %s = %s. Nilai yang valid: %s.</translation>
</message>
<message>
<source>Wallet file creation failed: %s</source>
<translation type="unfinished">Pembuatan berkas dompet gagal: %s</translation>
</message>
<message>
<source>acceptstalefeeestimates is not supported on %s chain.</source>
<translation type="unfinished">menerima estimasi biaya basi tidak didukung pada %s rantai.</translation>
</message>
<message>
<source>Error: Could not add watchonly tx %s to watchonly wallet</source>
<translation type="unfinished">Kesalahan: Tidak mampu menambahkan watchonly tx %s ke dompet watchonly</translation>
</message>
<message>
<source>Error: Could not delete watchonly transactions. </source>
<translation type="unfinished">Kesalahan: Tidak mampu menghapus transaksi watchonly.</translation>
</message>
</context>
</TS>

View File

@ -303,6 +303,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Embedded "%1"</source>
<translation type="unfinished"> "%1"</translation>
</message>
<message>
<source>Default system font "%1"</source>
<translation type="unfinished"> "%1"</translation>
</message>
<message>
<source>Custom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Amount</source>
<translation type="unfinished"></translation>
</message>
@ -1594,6 +1606,10 @@ The migration process will create a backup of the wallet before migrating. This
<translation type="unfinished"></translation>
</message>
<message>
<source>Font in the Overview tab: </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Options set in this dialog are overridden by the command line:</source>
<translation type="unfinished"> </translation>
</message>
@ -2637,6 +2653,10 @@ BIP70には広範なセキュリティー上の問題があるので、ウォレ
<translation type="unfinished">使</translation>
</message>
<message>
<source>Node window - [%1]</source>
<translation type="unfinished"> - [%1]</translation>
</message>
<message>
<source>Executing command using "%1" wallet</source>
<translation type="unfinished">"%1" 使</translation>
</message>
@ -4457,6 +4477,10 @@ Unable to restore backup of wallet.</source>
<translation type="unfinished"> %s </translation>
</message>
<message>
<source>Error committing db txn for wallet transactions removal</source>
<translation type="unfinished">db txnのコミット中にエラーが発生しました</translation>
</message>
<message>
<source>Error creating %s</source>
<translation type="unfinished">%sの作成エラー</translation>
</message>
@ -4505,6 +4529,10 @@ Unable to restore backup of wallet.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error starting db txn for wallet transactions removal</source>
<translation type="unfinished">db txnの開始でエラーが発生しました</translation>
</message>
<message>
<source>Error: Cannot extract destination from the generated scriptpubkey</source>
<translation type="unfinished">エラー: 生成されたscriptpubkeyから宛先を抽出できません</translation>
</message>
@ -4589,6 +4617,14 @@ Unable to restore backup of wallet.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error: address book copy failed for wallet %s</source>
<translation type="unfinished">エラー: ウォレット%sのアドレス帳のコピーに失敗しました</translation>
</message>
<message>
<source>Error: database transaction cannot be executed for wallet %s</source>
<translation type="unfinished">エラー: ウォレット%sに対してデータベーストランザクションを実行できません</translation>
</message>
<message>
<source>Failed to listen on any port. Use -listen=0 if you want this.</source>
<translation type="unfinished"> -listen=0 </translation>
</message>
@ -4605,6 +4641,10 @@ Unable to restore backup of wallet.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failure removing transaction: %s</source>
<translation type="unfinished">: %s</translation>
</message>
<message>
<source>Fee rate (%s) is lower than the minimum fee rate setting (%s)</source>
<translation type="unfinished">(%s)(%s)</translation>
</message>
@ -4825,6 +4865,10 @@ Unable to restore backup of wallet.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Transaction %s does not belong to this wallet</source>
<translation type="unfinished">%sはこのウォレットのものではありません</translation>
</message>
<message>
<source>Transaction amount too small</source>
<translation type="unfinished"></translation>
</message>
@ -4933,6 +4977,10 @@ Unable to restore backup of wallet.</source>
<translation type="unfinished">エラー: 監視対象取引%sを監視専用ウォレットに追加できませんでした</translation>
</message>
<message>
<source>Error: Could not delete watchonly transactions. </source>
<translation type="unfinished">エラー: 監視対象取引を削除できませんでした</translation>
</message>
<message>
<source>User Agent comment (%s) contains unsafe characters.</source>
<translation type="unfinished"> ( %s ) </translation>
</message>

View File

@ -188,43 +188,43 @@
<message numerus="yes">
<source>%n second(s)</source>
<translation type="unfinished">
<numerusform />
<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>%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>%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>%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>%n week(s)</numerusform>
<numerusform>%n week(s)</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%n year(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>%n year(s)</numerusform>
<numerusform>%n year(s)</numerusform>
</translation>
</message>
</context>
@ -325,8 +325,8 @@
<message numerus="yes">
<source>Processed %n block(s) of transaction history.</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>Processed %n block(s) of transaction history.</numerusform>
<numerusform>Processed %n block(s) of transaction history.</numerusform>
</translation>
</message>
<message>
@ -361,8 +361,8 @@
<source>%n active connection(s) to Bitcoin network.</source>
<extracomment>A substring of the tooltip.</extracomment>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>%n active connection(s) to Bitcoin network.</numerusform>
<numerusform>%n active connection(s) to Bitcoin network.</numerusform>
</translation>
</message>
<message>
@ -464,30 +464,30 @@
<message numerus="yes">
<source>%n GB of space available</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>%n GB of space available</numerusform>
<numerusform>%n GB of space available</numerusform>
</translation>
</message>
<message numerus="yes">
<source>(of %n GB needed)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>(of %n GB needed)</numerusform>
<numerusform>(of %n GB needed)</numerusform>
</translation>
</message>
<message numerus="yes">
<source>(%n GB needed for full chain)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>(%n GB needed for full chain)</numerusform>
<numerusform>(%n GB needed for full chain)</numerusform>
</translation>
</message>
<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 />
<numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
<numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
</translation>
</message>
</context>
@ -872,8 +872,8 @@
<message numerus="yes">
<source>Estimated to begin confirmation within %n block(s).</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
<numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
</translation>
</message>
<message>
@ -1066,8 +1066,8 @@
<message numerus="yes">
<source>matures in %n more block(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform>matures in %n more block(s)</numerusform>
<numerusform>matures in %n more block(s)</numerusform>
</translation>
</message>
<message>

View File

@ -81,6 +81,10 @@ Alihkan fail data ke dalam tab semasa</translation>
<translation type="unfinished">Terdapat ralat semasa cubaan menyimpan senarai alamat kepada %1. Sila cuba lagi.</translation>
</message>
<message>
<source>Receiving addresses - %1</source>
<translation type="unfinished">Alamat Terima - %1</translation>
</message>
<message>
<source>Exporting Failed</source>
<translation type="unfinished">Mengeksport Gagal</translation>
</message>

View File

@ -78,6 +78,37 @@
</message>
</context>
<context>
<name>AskPassphraseDialog</name>
<message>
<source>Passphrase Dialog</source>
<translation type="unfinished">ကက </translation>
</message>
<message>
<source>Enter passphrase</source>
<translation type="unfinished">ကက က</translation>
</message>
<message>
<source>New passphrase</source>
<translation type="unfinished">ကက </translation>
</message>
<message>
<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>
</message>
<message>
<source>This operation needs your wallet passphrase to unlock the wallet.</source>
<translation type="unfinished">က ကက က ကက </translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<source>Error: %1</source>

View File

@ -299,6 +299,18 @@ Ondertekenen is alleen mogelijk met adressen van het type 'legacy'.</translation
<translation type="unfinished">onbekend</translation>
</message>
<message>
<source>Embedded "%1"</source>
<translation type="unfinished">Ingebed "%1"</translation>
</message>
<message>
<source>Default system font "%1"</source>
<translation type="unfinished">Standaard systeemlettertype "%1"</translation>
</message>
<message>
<source>Custom</source>
<translation type="unfinished">Aangepast...</translation>
</message>
<message>
<source>Amount</source>
<translation type="unfinished">Bedrag</translation>
</message>
@ -1556,6 +1568,10 @@ Het migratieproces maakt voorafgaand aan het migreren een backup van de wallet.
<translation type="unfinished">Minimaliseren in plaats van de applicatie af te sluiten wanneer het venster is afgesloten. Als deze optie is ingeschakeld, zal de toepassing pas worden afgesloten na het selecteren van Exit in het menu.</translation>
</message>
<message>
<source>Font in the Overview tab: </source>
<translation type="unfinished">Lettertype in het Overzicht tab:</translation>
</message>
<message>
<source>Options set in this dialog are overridden by the command line:</source>
<translation type="unfinished">Gekozen opties in dit dialoogvenster worden overschreven door de command line:</translation>
</message>
@ -2543,6 +2559,10 @@ Als je deze fout ziet zou je de aanbieder moeten verzoeken om een BIP21-compatib
<translation type="unfinished">Uitvoeren van commando zonder gebruik van een wallet</translation>
</message>
<message>
<source>Node window - [%1]</source>
<translation type="unfinished">Nodevenster - [%1]</translation>
</message>
<message>
<source>Executing command using "%1" wallet</source>
<translation type="unfinished">Uitvoeren van commando met wallet "%1"</translation>
</message>
@ -4278,6 +4298,10 @@ Kan mislukte migratie niet opschonen</translation>
<translation type="unfinished">Dumpbestand %s bestaat niet.</translation>
</message>
<message>
<source>Error committing db txn for wallet transactions removal</source>
<translation type="unfinished">Fout bij db txn verwerking voor verwijderen wallet transacties</translation>
</message>
<message>
<source>Error creating %s</source>
<translation type="unfinished">Fout bij het maken van %s</translation>
</message>
@ -4326,6 +4350,10 @@ Kan mislukte migratie niet opschonen</translation>
<translation type="unfinished">Fout bij het lezen van het volgende record in de walletdatabase</translation>
</message>
<message>
<source>Error starting db txn for wallet transactions removal</source>
<translation type="unfinished">Fout bij starten db txn voor verwijderen wallet transacties</translation>
</message>
<message>
<source>Error: Cannot extract destination from the generated scriptpubkey</source>
<translation type="unfinished">Fout: Kan de bestemming niet extraheren uit de gegenereerde scriptpubkey</translation>
</message>
@ -4410,6 +4438,14 @@ Kan mislukte migratie niet opschonen</translation>
<translation type="unfinished">Fout: Kan beste block locatie aanduiding niet opslaan in alleen lezen wallet</translation>
</message>
<message>
<source>Error: address book copy failed for wallet %s</source>
<translation type="unfinished">Fout: Kopiëren adresboek mislukt voor wallet %s</translation>
</message>
<message>
<source>Error: database transaction cannot be executed for wallet %s</source>
<translation type="unfinished">Fout: Kan databasetransactie niet uitvoeren voor wallet %s</translation>
</message>
<message>
<source>Failed to listen on any port. Use -listen=0 if you want this.</source>
<translation type="unfinished">Mislukt om op welke poort dan ook te luisteren. Gebruik -listen=0 as u dit wilt.</translation>
</message>
@ -4426,6 +4462,10 @@ Kan mislukte migratie niet opschonen</translation>
<translation type="unfinished">Mislukt om de databank te controleren</translation>
</message>
<message>
<source>Failure removing transaction: %s</source>
<translation type="unfinished">Verwijderen transactie mislukt: %s</translation>
</message>
<message>
<source>Fee rate (%s) is lower than the minimum fee rate setting (%s)</source>
<translation type="unfinished">Tarief (%s) is lager dan het minimum tarief (%s)</translation>
</message>
@ -4646,6 +4686,10 @@ Kan mislukte migratie niet opschonen</translation>
<translation type="unfinished">Dit is de transactievergoeding dat je betaalt wanneer je een transactie verstuurt.</translation>
</message>
<message>
<source>Transaction %s does not belong to this wallet</source>
<translation type="unfinished">Transactie %s behoort niet tot deze wallet</translation>
</message>
<message>
<source>Transaction amount too small</source>
<translation type="unfinished">Transactiebedrag te klein</translation>
</message>
@ -4754,6 +4798,10 @@ Kan mislukte migratie niet opschonen</translation>
<translation type="unfinished">Fout: Kon alleen lezen tx %s niet toevoegen aan alleen lezen wallet</translation>
</message>
<message>
<source>Error: Could not delete watchonly transactions. </source>
<translation type="unfinished">Fout: Kon alleen-lezen transacties niet verwijderen</translation>
</message>
<message>
<source>User Agent comment (%s) contains unsafe characters.</source>
<translation type="unfinished">User Agentcommentaar (%s) bevat onveilige karakters.</translation>
</message>

View File

@ -257,6 +257,18 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
<translation type="unfinished">nieznane</translation>
</message>
<message>
<source>Embedded "%1"</source>
<translation type="unfinished">Osadzony "%1"</translation>
</message>
<message>
<source>Default system font "%1"</source>
<translation type="unfinished">Domyślna czcionka systemu "%1"</translation>
</message>
<message>
<source>Custom</source>
<translation type="unfinished">Własna:</translation>
</message>
<message>
<source>Amount</source>
<translation type="unfinished">Kwota</translation>
</message>
@ -1062,6 +1074,14 @@ Proces migracji utworzy kopię zapasową portfela przed migracją. Plik kopii za
<translation type="unfinished">Portfel '%1' został poprawnie przeniesiony.</translation>
</message>
<message>
<source>Watchonly scripts have been migrated to a new wallet named '%1'.</source>
<translation type="unfinished">Skrypty tylko do odczytu zostały przeniesione do nowego portfela '%1'</translation>
</message>
<message>
<source>Solvable but not watched scripts have been migrated to a new wallet named '%1'.</source>
<translation type="unfinished">Sprawne, ale nie oglądane skrypty tylko do odczytu zostały przeniesione do nowego portfela '%1'</translation>
</message>
<message>
<source>Migration failed</source>
<translation type="unfinished">Przeniesienie nie powiodło się</translation>
</message>
@ -1157,6 +1177,10 @@ Proces migracji utworzy kopię zapasową portfela przed migracją. Plik kopii za
<translation type="unfinished">Jesteś jeden krok od stworzenia swojego nowego portfela!</translation>
</message>
<message>
<source>Please provide a name and, if desired, enable any advanced options</source>
<translation type="unfinished">Proszę podać nazwę, i jeśli potrzeba, włącz zaawansowane ustawienia.</translation>
</message>
<message>
<source>Wallet Name</source>
<translation type="unfinished">Nazwa portfela</translation>
</message>
@ -1544,6 +1568,10 @@ Proces migracji utworzy kopię zapasową portfela przed migracją. Plik kopii za
<translation type="unfinished">Minimalizuje zamiast zakończyć działanie programu przy zamykaniu okna. Kiedy ta opcja jest włączona, program zakończy działanie po wybieraniu Zamknij w menu.</translation>
</message>
<message>
<source>Font in the Overview tab: </source>
<translation type="unfinished">Czcionka w zakładce Przegląd:</translation>
</message>
<message>
<source>Options set in this dialog are overridden by the command line:</source>
<translation type="unfinished">Opcje ustawione w tym oknie nadpisane przez linię komend:</translation>
</message>
@ -2265,6 +2293,18 @@ Jeśli pojawia się ten błąd, poproś sprzedawcę o podanie URI zgodnego z BIP
<translation type="unfinished">Wersja warstwy transportowej: %1</translation>
</message>
<message>
<source>Transport</source>
<translation type="unfinished">Transfer</translation>
</message>
<message>
<source>The BIP324 session ID string in hex, if any.</source>
<translation type="unfinished">ID sesji BIP324 jest szestnastkowym ciągiem znaków, jeśli istnieje.</translation>
</message>
<message>
<source>Session ID</source>
<translation type="unfinished">ID sesji</translation>
</message>
<message>
<source>Version</source>
<translation type="unfinished">Wersja</translation>
</message>
@ -2559,6 +2599,10 @@ Jeśli pojawia się ten błąd, poproś sprzedawcę o podanie URI zgodnego z BIP
<translation type="unfinished">Wykonuję komendę bez portfela</translation>
</message>
<message>
<source>Node window - [%1]</source>
<translation type="unfinished">Okno węzła - [%1]</translation>
</message>
<message>
<source>Executing command using "%1" wallet</source>
<translation type="unfinished">Wykonuję komendę używając portfela "%1"</translation>
</message>
@ -4012,6 +4056,10 @@ Przejdź do Plik &gt; Otwórz Portfel aby wgrać portfel.
<translation type="unfinished">Błąd: starsze portfele obsługują tylko typy adresów legacy, p2sh-segwit i bech32</translation>
</message>
<message>
<source>Error: Unable to produce descriptors for this legacy wallet. Make sure to provide the wallet's passphrase if it is encrypted.</source>
<translation type="unfinished">Błąd: Nie można wygenerować deskryptorów dla tego starego portfela. Upewnij się najpierw, że portfel jest odblokowany.</translation>
</message>
<message>
<source>File %s already exists. If you are sure this is what you want, move it out of the way first.</source>
<translation type="unfinished">Plik 1%s już istnieje. Jeśli jesteś pewien, że tego chcesz, najpierw usuń to z drogi.</translation>
</message>
@ -4096,6 +4144,10 @@ Przejdź do Plik &gt; Otwórz Portfel aby wgrać portfel.
<translation type="unfinished">Podano nieznany typ pliku portfela "%s". Proszę podać jeden z "bdb" lub "sqlite".</translation>
</message>
<message>
<source>Unsupported category-specific logging level %1$s=%2$s. Expected %1$s=&lt;category&gt;:&lt;loglevel&gt;. Valid categories: %3$s. Valid loglevels: %4$s.</source>
<translation type="unfinished">Nieobsługiwany poziom rejestrowania specyficzny dla kategorii %1$s=%2$s. Oczekiwano %1$s=&lt;category&gt;:&lt;loglevel&gt;. Poprawne kategorie %3$s. Poprawne poziomy logowania: %4 $s.</translation>
</message>
<message>
<source>Warning: Private keys detected in wallet {%s} with disabled private keys</source>
<translation type="unfinished">Uwaga: Wykryto klucze prywatne w portfelu [%s] który ma wyłączone klucze prywatne</translation>
</message>
@ -4124,6 +4176,10 @@ Przejdź do Plik &gt; Otwórz Portfel aby wgrać portfel.
<translation type="unfinished">Nie można rozpoznać -%s adresu: '%s'</translation>
</message>
<message>
<source>Cannot set -forcednsseed to true when setting -dnsseed to false.</source>
<translation type="unfinished">Nie można ustawić -forcednsseed na true gdy ustawienie -dnsseed wynosi false.</translation>
</message>
<message>
<source>Cannot set -peerblockfilters without -blockfilterindex.</source>
<translation type="unfinished">Nie można ustawić -peerblockfilters bez -blockfilterindex.</translation>
</message>
@ -4132,6 +4188,10 @@ Przejdź do Plik &gt; Otwórz Portfel aby wgrać portfel.
<translation type="unfinished">Nie mogę zapisać do katalogu danych '%s'; sprawdź uprawnienia.</translation>
</message>
<message>
<source>%s is set very high! Fees this large could be paid on a single transaction.</source>
<translation type="unfinished">%sto bardzo dużo! Tak duże opłaty można uiścić w ramach jednej transakcji.</translation>
</message>
<message>
<source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
<translation type="unfinished">Nie można jednocześnie określić konkretnych połączeń oraz pozwolić procesowi addrman na wyszukiwanie wychodzących połączeń.</translation>
</message>
@ -4152,6 +4212,26 @@ Przejdź do Plik &gt; Otwórz Portfel aby wgrać portfel.
<translation type="unfinished">Zmiana nazwy nieprawidłowego pliku peers.dat nie powiodła się. Przenieś go lub usuń i spróbuj ponownie.</translation>
</message>
<message>
<source>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable %s.</source>
<translation type="unfinished">Estymacja opłat nieudana. Domyślna opłata jest wyłączona. Poczekaj kilka bloków lub włącz -%s.</translation>
</message>
<message>
<source>
Unable to cleanup failed migration</source>
<translation type="unfinished">
Nie można wyczyścić nieudanej migracji</translation>
</message>
<message>
<source>
Unable to restore backup of wallet.</source>
<translation type="unfinished">
Nie można przywrócić kopii zapasowej portfela</translation>
</message>
<message>
<source>Block verification was interrupted</source>
<translation type="unfinished">Weryfikacja bloku została przerwana</translation>
</message>
<message>
<source>Config setting for %s only applied on %s network when in [%s] section.</source>
<translation type="unfinished">Ustawienie konfiguracyjne %s działa na sieć %s tylko, jeżeli jest w sekcji [%s].</translation>
</message>
@ -4184,6 +4264,10 @@ Przejdź do Plik &gt; Otwórz Portfel aby wgrać portfel.
<translation type="unfinished">Wczytywanie zakończone</translation>
</message>
<message>
<source>Dump file %s does not exist.</source>
<translation type="unfinished">Plik zrzutu aplikacji %s nie istnieje.</translation>
</message>
<message>
<source>Error creating %s</source>
<translation type="unfinished">Błąd podczas tworzenia %s</translation>
</message>
@ -4220,6 +4304,10 @@ Przejdź do Plik &gt; Otwórz Portfel aby wgrać portfel.
<translation type="unfinished">Błąd otwierania bazy bloków</translation>
</message>
<message>
<source>Error reading configuration file: %s</source>
<translation type="unfinished">Błąd: nie można odczytać pliku konfiguracyjnego: %s</translation>
</message>
<message>
<source>Error reading from database, shutting down.</source>
<translation type="unfinished">Błąd odczytu z bazy danych, wyłączam się.</translation>
</message>
@ -4236,6 +4324,18 @@ Przejdź do Plik &gt; Otwórz Portfel aby wgrać portfel.
<translation type="unfinished">Błąd: Plik zrzutu suma kontrolna nie pasuje. Obliczone %s, spodziewane %s</translation>
</message>
<message>
<source>Error: Failed to create new watchonly wallet</source>
<translation type="unfinished">Błąd: Utworzenie portfela tylko do odczytu nie powiodło się</translation>
</message>
<message>
<source>Error: Got key that was not hex: %s</source>
<translation type="unfinished">Błąd: Otrzymana wartość nie jest szestnastkowa%s</translation>
</message>
<message>
<source>Error: Got value that was not hex: %s</source>
<translation type="unfinished">Błąd: Otrzymana wartość nie jest szestnastkowa%s</translation>
</message>
<message>
<source>Error: Keypool ran out, please call keypoolrefill first</source>
<translation type="unfinished">Błąd: Pula kluczy jest pusta, odwołaj się do puli kluczy.</translation>
</message>
@ -4252,10 +4352,30 @@ Przejdź do Plik &gt; Otwórz Portfel aby wgrać portfel.
<translation type="unfinished">Błąd: Ten portfel już używa SQLite</translation>
</message>
<message>
<source>Error: Unable to begin reading all records in the database</source>
<translation type="unfinished">Błąd: Nie można odczytać wszystkich rekordów z bazy danych</translation>
</message>
<message>
<source>Error: Unable to make a backup of your wallet</source>
<translation type="unfinished">Błąd: Nie mogę zrobić kopii twojego portfela</translation>
</message>
<message>
<source>Error: Unable to parse version %u as a uint32_t</source>
<translation type="unfinished">Błąd: Nie można zapisać wersji %u jako uint32_t</translation>
</message>
<message>
<source>Error: Unable to read all records in the database</source>
<translation type="unfinished">Błąd: Nie można odczytać wszystkich rekordów z bazy danych</translation>
</message>
<message>
<source>Error: Unable to read wallet's best block locator record</source>
<translation type="unfinished">Błąd: Nie można odczytać najlepszego rekordu lokalizatora bloków portfela</translation>
</message>
<message>
<source>Error: Unable to remove watchonly address book data</source>
<translation type="unfinished">Błąd: Nie można usunąć danych książki adresowej tylko do odczytu</translation>
</message>
<message>
<source>Error: Unable to write record to new wallet</source>
<translation type="unfinished">Błąd: Wpisanie rekordu do nowego portfela jest niemożliwe</translation>
</message>
@ -4272,6 +4392,10 @@ Przejdź do Plik &gt; Otwórz Portfel aby wgrać portfel.
<translation type="unfinished">Nie udało się zweryfikować bazy danych</translation>
</message>
<message>
<source>Failure removing transaction: %s</source>
<translation type="unfinished">Nie udało się usunąć transakcji %s</translation>
</message>
<message>
<source>Fee rate (%s) is lower than the minimum fee rate setting (%s)</source>
<translation type="unfinished">Wartość opłaty (%s) jest mniejsza niż wartość minimalna w ustawieniach (%s)</translation>
</message>
@ -4316,6 +4440,14 @@ Przejdź do Plik &gt; Otwórz Portfel aby wgrać portfel.
<translation type="unfinished">Nieprawidłowe uprawnienia P2P: '%s'</translation>
</message>
<message>
<source>Invalid amount for %s=&lt;amount&gt;: '%s' (must be at least %s)</source>
<translation type="unfinished">Nieprawidłowa kwota dla %s=&lt;amount&gt;: '%s' (musi być co najmniej %s)</translation>
</message>
<message>
<source>Invalid amount for %s=&lt;amount&gt;: '%s'</source>
<translation type="unfinished">Nieprawidłowa kwota dla %s=&lt;amount&gt;: '%s'</translation>
</message>
<message>
<source>Invalid amount for -%s=&lt;amount&gt;: '%s'</source>
<translation type="unfinished">Nieprawidłowa kwota dla -%s=&lt;amount&gt;: '%s'</translation>
</message>
@ -4324,6 +4456,14 @@ Przejdź do Plik &gt; Otwórz Portfel aby wgrać portfel.
<translation type="unfinished">Nieprawidłowa maska sieci określona w -whitelist: '%s'</translation>
</message>
<message>
<source>Invalid port specified in %s: '%s'</source>
<translation type="unfinished">Nieprawidłowa maska sieci określona w %s: '%s'</translation>
</message>
<message>
<source>Invalid pre-selected input %s</source>
<translation type="unfinished">Niepoprawne wstępnie wybrane dane wejściowe %s</translation>
</message>
<message>
<source>Loading P2P addresses</source>
<translation type="unfinished">Ładowanie adresów P2P...</translation>
</message>
@ -4360,6 +4500,10 @@ Przejdź do Plik &gt; Otwórz Portfel aby wgrać portfel.
<translation type="unfinished">Brak wystarczającej liczby deskryptorów plików.</translation>
</message>
<message>
<source>Not found pre-selected input %s</source>
<translation type="unfinished">Nie znaleziono wstępnie wybranego wejścia %s</translation>
</message>
<message>
<source>Prune cannot be configured with a negative value.</source>
<translation type="unfinished">Przycinanie nie może być skonfigurowane z negatywną wartością.</translation>
</message>
@ -4425,6 +4569,10 @@ Przejdź do Plik &gt; Otwórz Portfel aby wgrać portfel.
</translation>
</message>
<message>
<source>Specified data directory "%s" does not exist.</source>
<translation type="unfinished">Określony katalog danych "%s" nie istnieje</translation>
</message>
<message>
<source>Starting network threads</source>
<translation type="unfinished">Startowanie wątków sieciowych...</translation>
</message>
@ -4433,6 +4581,10 @@ Przejdź do Plik &gt; Otwórz Portfel aby wgrać portfel.
<translation type="unfinished">Kod źródłowy dostępny jest z %s.</translation>
</message>
<message>
<source>The specified config file %s does not exist</source>
<translation type="unfinished">Podany plik konfiguracyjny %s nie istnieje</translation>
</message>
<message>
<source>The transaction amount is too small to pay the fee</source>
<translation type="unfinished">Zbyt niska kwota transakcji by zapłacić opłatę</translation>
</message>
@ -4453,6 +4605,10 @@ Przejdź do Plik &gt; Otwórz Portfel aby wgrać portfel.
<translation type="unfinished">To jest opłata transakcyjna którą zapłacisz jeśli wyślesz transakcję.</translation>
</message>
<message>
<source>Transaction %s does not belong to this wallet</source>
<translation type="unfinished">Transakcja %s nie należy do tego portfela</translation>
</message>
<message>
<source>Transaction amount too small</source>
<translation type="unfinished">Zbyt niska kwota transakcji</translation>
</message>
@ -4541,10 +4697,30 @@ Przejdź do Plik &gt; Otwórz Portfel aby wgrać portfel.
<translation type="unfinished">Aktywowano nieznane nowe reguły (versionbit %i)</translation>
</message>
<message>
<source>Unsupported global logging level %s=%s. Valid values: %s.</source>
<translation type="unfinished">Niewspierany globalny poziom logowania%s=%s. Poprawne wartości: %s.</translation>
</message>
<message>
<source>Wallet file creation failed: %s</source>
<translation type="unfinished">Utworzenie pliku portfela nie powiodło się: %s</translation>
</message>
<message>
<source>acceptstalefeeestimates is not supported on %s chain.</source>
<translation type="unfinished">akceptowalne nieaktualne szacunki opłat nie wspierane na łańcuchu %s</translation>
</message>
<message>
<source>Unsupported logging category %s=%s.</source>
<translation type="unfinished">Nieobsługiwana kategoria rejestrowania %s=%s.</translation>
</message>
<message>
<source>Error: Could not add watchonly tx %s to watchonly wallet</source>
<translation type="unfinished">Błąd: Nie można dodać tx %s tylko do odczytu do portfela tylko do odczytu</translation>
</message>
<message>
<source>Error: Could not delete watchonly transactions. </source>
<translation type="unfinished">Błąd: Nie można usunąć transakcji tylko do odczytu.</translation>
</message>
<message>
<source>User Agent comment (%s) contains unsafe characters.</source>
<translation type="unfinished">Komentarz User Agent (%s) zawiera niebezpieczne znaki.</translation>
</message>

File diff suppressed because it is too large Load Diff

View File

@ -95,11 +95,11 @@ Só é possível assinar com endereços do tipo 'legado'.</translation>
</message>
<message>
<source>Sending addresses - %1</source>
<translation type="unfinished">Enviando endereços - %1</translation>
<translation type="unfinished">Endereços de envio - %1</translation>
</message>
<message>
<source>Receiving addresses - %1</source>
<translation type="unfinished">Recebendo endereços - %1</translation>
<translation type="unfinished">Endereços de recebimento - %1</translation>
</message>
<message>
<source>Exporting Failed</source>
@ -2253,7 +2253,7 @@ O processo de migração criará um backup da carteira antes da migração. Este
</message>
<message>
<source>Mapped AS</source>
<translation type="unfinished">Mapeado como</translation>
<translation type="unfinished">S.A. de mapeamento</translation>
</message>
<message>
<source>Whether we relay addresses to this peer.</source>

View File

@ -225,6 +225,10 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<translation type="unfinished">Parola portofelului a fost schimbata.</translation>
</message>
<message>
<source>Passphrase change failed</source>
<translation type="unfinished">Schimbarea frazei de acces a esuat</translation>
</message>
<message>
<source>Warning: The Caps Lock key is on!</source>
<translation type="unfinished">Atenţie! Caps Lock este pornit!</translation>
</message>
@ -365,6 +369,10 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<numerusform />
</translation>
</message>
<message>
<source>%1 kB</source>
<translation type="unfinished">%1kB</translation>
</message>
</context>
<context>
<name>BitcoinGUI</name>
@ -417,6 +425,10 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<translation type="unfinished">Crează un portofel nou</translation>
</message>
<message>
<source>&amp;Minimize</source>
<translation type="unfinished">&amp;Reduce</translation>
</message>
<message>
<source>Wallet:</source>
<translation type="unfinished">Portofel:</translation>
</message>
@ -598,10 +610,18 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<translation type="unfinished">Actualizat</translation>
</message>
<message>
<source>Ctrl+Q</source>
<translation type="unfinished">Ctr+Q</translation>
</message>
<message>
<source>Load Partially Signed Bitcoin Transaction</source>
<translation type="unfinished">Încărcați Tranzacția Bitcoin Parțial Semnată</translation>
</message>
<message>
<source>Load PSBT from &amp;clipboard</source>
<translation type="unfinished">Incarca PSBT din &amp;notite</translation>
</message>
<message>
<source>Load Partially Signed Bitcoin Transaction from clipboard</source>
<translation type="unfinished">Încărcați Tranzacția Bitcoin Parțial Semnată din clipboard</translation>
</message>
@ -638,10 +658,28 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<translation type="unfinished">Inchide portofel</translation>
</message>
<message>
<source>Restore Wallet</source>
<extracomment>Name of the menu item that restores wallet from a backup file.</extracomment>
<translation type="unfinished">Recupereaza Portofelul...</translation>
</message>
<message>
<source>Restore a wallet from a backup file</source>
<extracomment>Status tip for Restore Wallet menu item</extracomment>
<translation type="unfinished">Recupereaza Portofelul din fisierele rezerva</translation>
</message>
<message>
<source>Close all wallets</source>
<translation type="unfinished">Închideți toate portofelele</translation>
</message>
<message>
<source>Migrate Wallet</source>
<translation type="unfinished">Transfera Portofelul</translation>
</message>
<message>
<source>Migrate a wallet</source>
<translation type="unfinished">Transfera un portofel</translation>
</message>
<message>
<source>Show the %1 help message to get a list with possible Bitcoin command-line options</source>
<translation type="unfinished">Arată mesajul de ajutor %1 pentru a obţine o listă cu opţiunile posibile de linii de comandă Bitcoin</translation>
</message>
@ -686,6 +724,10 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<translation type="unfinished">&amp;Fereastră</translation>
</message>
<message>
<source>Ctrl+M</source>
<translation type="unfinished">Ctr+M</translation>
</message>
<message>
<source>Main Window</source>
<translation type="unfinished">Fereastra principală</translation>
</message>
@ -693,6 +735,14 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<source>%1 client</source>
<translation type="unfinished">Client %1</translation>
</message>
<message>
<source>&amp;Hide</source>
<translation type="unfinished">&amp;Ascunde</translation>
</message>
<message>
<source>S&amp;how</source>
<translation type="unfinished">A&amp;rata</translation>
</message>
<message numerus="yes">
<source>%n active connection(s) to Bitcoin network.</source>
<extracomment>A substring of the tooltip.</extracomment>
@ -708,6 +758,10 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<translation type="unfinished">Pulsează pentru mai multe acțiuni.</translation>
</message>
<message>
<source>Error creating wallet</source>
<translation type="unfinished">Eroare creare portofel</translation>
</message>
<message>
<source>Error: %1</source>
<translation type="unfinished">Eroare: %1</translation>
</message>
@ -862,6 +916,22 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<translation type="unfinished">Copiază suma</translation>
</message>
<message>
<source>&amp;Copy address</source>
<translation type="unfinished">&amp;Copiaza adresa</translation>
</message>
<message>
<source>Copy &amp;label</source>
<translation type="unfinished">Copiaza si eticheteaza</translation>
</message>
<message>
<source>Copy &amp;amount</source>
<translation type="unfinished">copiaza &amp;valoarea</translation>
</message>
<message>
<source>Copy transaction &amp;ID and output index</source>
<translation type="unfinished">copiaza ID-ul de tranzactie si indexul de iesire</translation>
</message>
<message>
<source>Copy quantity</source>
<translation type="unfinished">Copiază cantitea</translation>
</message>
@ -910,6 +980,11 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<translation type="unfinished">Crează portofel</translation>
</message>
<message>
<source>Creating Wallet &lt;b&gt;%1&lt;/b&gt;</source>
<extracomment>Descriptive text of the create wallet progress window which indicates to the user which wallet is currently being created.</extracomment>
<translation type="unfinished">Creeaza Protofel&lt;b&gt;%1&lt;/b&gt;</translation>
</message>
<message>
<source>Create wallet failed</source>
<translation type="unfinished">Crearea portofelului a eşuat</translation>
</message>
@ -932,6 +1007,29 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
</message>
</context>
<context>
<name>MigrateWalletActivity</name>
<message>
<source>Migrate wallet</source>
<translation type="unfinished">Muta portofelul</translation>
</message>
<message>
<source>Are you sure you wish to migrate the wallet &lt;i&gt;%1&lt;/i&gt;?</source>
<translation type="unfinished">Esti sigur ca vrei sa muti portofelul &lt;i&gt;%1&lt;/i&gt;?</translation>
</message>
<message>
<source>Migrate Wallet</source>
<translation type="unfinished">Transfera Portofelul</translation>
</message>
<message>
<source>Migration failed</source>
<translation type="unfinished">Mutare esuata</translation>
</message>
<message>
<source>Migration Successful</source>
<translation type="unfinished">Mutarea s-a efectuat cu succes</translation>
</message>
</context>
<context>
<name>OpenWalletActivity</name>
<message>
<source>Open wallet failed</source>
@ -1004,6 +1102,10 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<translation type="unfinished">Crează portofel</translation>
</message>
<message>
<source>You are one step away from creating your new wallet!</source>
<translation type="unfinished">Esti la un pas distanta pentru a-ti crea noul tau portofel!</translation>
</message>
<message>
<source>Wallet Name</source>
<translation type="unfinished">Numele portofelului</translation>
</message>
@ -1248,6 +1350,10 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<context>
<name>ShutdownWindow</name>
<message>
<source>%1 is shutting down</source>
<translation type="unfinished">%1 se închide</translation>
</message>
<message>
<source>Do not shut down the computer until this window disappears.</source>
<translation type="unfinished">Nu închide calculatorul pînă ce această fereastră nu dispare.</translation>
</message>
@ -1554,6 +1660,13 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
</message>
</context>
<context>
<name>OptionsModel</name>
<message>
<source>Could not read setting "%1", %2.</source>
<translation type="unfinished">nu s-a putut citi setarea "%1", %2</translation>
</message>
</context>
<context>
<name>OverviewPage</name>
<message>
<source>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</source>
@ -1635,6 +1748,14 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<translation type="unfinished">Inchide</translation>
</message>
<message>
<source>Failed to load transaction: %1</source>
<translation type="unfinished">Nu s-a reusit incarcarea tranzactiei: %1</translation>
</message>
<message>
<source>Failed to sign transaction: %1</source>
<translation type="unfinished">Nu s-a reusit semnarea tranzactiei: %1</translation>
</message>
<message>
<source>Save Transaction Data</source>
<translation type="unfinished">Salvați datele tranzacției</translation>
</message>
@ -1643,6 +1764,14 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<translation type="unfinished">adresa proprie</translation>
</message>
<message>
<source>Unable to calculate transaction fee or total transaction amount.</source>
<translation type="unfinished">Nu s-a putut calcula comisionul de tranzactie sau suma totala al tranzactiei.</translation>
</message>
<message>
<source>Pays transaction fee: </source>
<translation type="unfinished">Plateste comisionul de tranzactie: </translation>
</message>
<message>
<source>Total Amount</source>
<translation type="unfinished">Suma totală</translation>
</message>
@ -1690,6 +1819,11 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<translation type="unfinished">Agent utilizator</translation>
</message>
<message>
<source>Age</source>
<extracomment>Title of Peers Table column which indicates the duration (length of time) since the peer connection started.</extracomment>
<translation type="unfinished">Ani</translation>
</message>
<message>
<source>Direction</source>
<extracomment>Title of Peers Table column which indicates the direction the peer connection was initiated from.</extracomment>
<translation type="unfinished">Direcţie</translation>
@ -1733,6 +1867,10 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<context>
<name>QRImageWidget</name>
<message>
<source>&amp;Save Image</source>
<translation type="unfinished">&amp;Salveaza Imaginea...</translation>
</message>
<message>
<source>&amp;Copy Image</source>
<translation type="unfinished">&amp;Copiaza Imaginea</translation>
</message>
@ -1752,7 +1890,12 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<source>Save QR Code</source>
<translation type="unfinished">Salvează codul QR</translation>
</message>
</context>
<message>
<source>PNG Image</source>
<extracomment>Expanded name of the PNG file format. See: https://en.wikipedia.org/wiki/Portable_Network_Graphics.</extracomment>
<translation type="unfinished">Imagine PNG</translation>
</message>
</context>
<context>
<name>RPCConsole</name>
<message>
@ -1836,6 +1979,10 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<translation type="unfinished">Selectaţi un partener pentru a vedea informaţiile detaliate.</translation>
</message>
<message>
<source>Session ID</source>
<translation type="unfinished">ID-ul Sesiunii</translation>
</message>
<message>
<source>Version</source>
<translation type="unfinished">Versiune</translation>
</message>
@ -1852,6 +1999,10 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<translation type="unfinished">Blocuri Sincronizate</translation>
</message>
<message>
<source>Last Transaction</source>
<translation type="unfinished">Ultima Tranzactie</translation>
</message>
<message>
<source>User Agent</source>
<translation type="unfinished">Agent utilizator</translation>
</message>
@ -1872,6 +2023,14 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<translation type="unfinished">Mareste fontul</translation>
</message>
<message>
<source>Permissions</source>
<translation type="unfinished">Permisiuni</translation>
</message>
<message>
<source>Direction/Type</source>
<translation type="unfinished">Directie/Tip</translation>
</message>
<message>
<source>Services</source>
<translation type="unfinished">Servicii</translation>
</message>
@ -1940,6 +2099,11 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<translation type="unfinished">Ieşire:</translation>
</message>
<message>
<source>&amp;Copy address</source>
<extracomment>Context menu action to copy the address of a peer.</extracomment>
<translation type="unfinished">&amp;Copiaza adresa</translation>
</message>
<message>
<source>&amp;Disconnect</source>
<translation type="unfinished">&amp;Deconectare</translation>
</message>
@ -1964,6 +2128,10 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<translation type="unfinished">Executarea comenzii fara nici un portofel.</translation>
</message>
<message>
<source>Ctrl+I</source>
<translation type="unfinished">Ctrl+l</translation>
</message>
<message>
<source>Executing command using "%1" wallet</source>
<translation type="unfinished">Executarea comenzii folosind portofelul "%1"</translation>
</message>
@ -1988,6 +2156,10 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<translation type="unfinished">Interzicere pentru</translation>
</message>
<message>
<source>Never</source>
<translation type="unfinished">Niciodata</translation>
</message>
<message>
<source>Unknown</source>
<translation type="unfinished">Necunoscut</translation>
</message>
@ -2055,6 +2227,18 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<translation type="unfinished">Copiază &amp;URl</translation>
</message>
<message>
<source>&amp;Copy address</source>
<translation type="unfinished">&amp;Copiaza adresa</translation>
</message>
<message>
<source>Copy &amp;label</source>
<translation type="unfinished">Copiaza si eticheteaza</translation>
</message>
<message>
<source>Copy &amp;amount</source>
<translation type="unfinished">copiaza &amp;valoarea</translation>
</message>
<message>
<source>Could not unlock wallet.</source>
<translation type="unfinished">Portofelul nu a putut fi deblocat.</translation>
</message>
@ -2086,6 +2270,14 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<translation type="unfinished">Copiază &amp;adresa</translation>
</message>
<message>
<source>&amp;Verify</source>
<translation type="unfinished">&amp;Verifica</translation>
</message>
<message>
<source>&amp;Save Image</source>
<translation type="unfinished">&amp;Salveaza Imaginea...</translation>
</message>
<message>
<source>Payment information</source>
<translation type="unfinished">Informaţiile plată</translation>
</message>
@ -2216,6 +2408,10 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<translation type="unfinished">Şterge toate câmpurile formularului.</translation>
</message>
<message>
<source>Choose</source>
<translation type="unfinished">Alege...</translation>
</message>
<message>
<source>Confirmation time target:</source>
<translation type="unfinished">Timp confirmare tinta:</translation>
</message>
@ -2276,6 +2472,10 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<translation type="unfinished">%1 la %2</translation>
</message>
<message>
<source>Sign failed</source>
<translation type="unfinished">Semnatura esuata</translation>
</message>
<message>
<source>Save Transaction Data</source>
<translation type="unfinished">Salvați datele tranzacției</translation>
</message>
@ -2858,6 +3058,31 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<translation type="unfinished">Suma minimă</translation>
</message>
<message>
<source>&amp;Copy address</source>
<translation type="unfinished">&amp;Copiaza adresa</translation>
</message>
<message>
<source>Copy &amp;label</source>
<translation type="unfinished">Copiaza si eticheteaza</translation>
</message>
<message>
<source>Copy &amp;amount</source>
<translation type="unfinished">copiaza &amp;valoarea</translation>
</message>
<message>
<source>Copy transaction &amp;ID</source>
<translation type="unfinished">Copiaza ID-ul de tranzactie</translation>
</message>
<message>
<source>Copy full transaction &amp;details</source>
<translation type="unfinished">Copiaza toate detaliile tranzacţiei</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">Arata in %1</translation>
</message>
<message>
<source>Export Transaction History</source>
<translation type="unfinished">Export istoric tranzacţii</translation>
</message>
@ -2918,6 +3143,14 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<context>
<name>WalletFrame</name>
<message>
<source>No wallet has been loaded.
Go to File &gt; Open Wallet to load a wallet.
- OR -</source>
<translation type="unfinished">Nu a fost incarcat nici un portofel.
Mergi la Fisiere&gt;Deschide Portofel ca sa incarci un portofel.
-SAU-</translation>
</message>
<message>
<source>Create a new wallet</source>
<translation type="unfinished">Crează un portofel nou</translation>
</message>
@ -2925,6 +3158,10 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<source>Error</source>
<translation type="unfinished">Eroare</translation>
</message>
<message>
<source>Load Transaction Data</source>
<translation type="unfinished">Incarca datele tranzactiei</translation>
</message>
</context>
<context>
<name>WalletModel</name>
@ -2962,6 +3199,11 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<translation type="unfinished">Confirma cresterea comisionului</translation>
</message>
<message>
<source>Copied to clipboard</source>
<comment>Fee-bump PSBT saved</comment>
<translation type="unfinished">Copiat in Notite</translation>
</message>
<message>
<source>Can't sign transaction.</source>
<translation type="unfinished">Nu s-a reuşit semnarea tranzacţiei</translation>
</message>
@ -2970,6 +3212,10 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
<translation type="unfinished">Tranzactia nu a putut fi consemnata.</translation>
</message>
<message>
<source>Can't display address</source>
<translation type="unfinished">Nu se poate afisa adresa</translation>
</message>
<message>
<source>default wallet</source>
<translation type="unfinished">portofel implicit</translation>
</message>

View File

@ -224,6 +224,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<translation type="unfinished">Лозинка коју сте унели за дешифровање новчаника је погрешна.</translation>
</message>
<message>
<source>The passphrase entered for the wallet decryption is incorrect. It contains a null character (ie - a zero byte). If the passphrase was set with a version of this software prior to 25.0, please try again with only the characters up to but not including the first null character. If this is successful, please set a new passphrase to avoid this issue in the future.</source>
<translation type="unfinished">Приступна фраза унета за дешифровање новчаника је нетачна. Садржи нулти карактер (тј. - нулти бајт). Ако је приступна фраза постављена са верзијом овог софтвера старијом од 25.0, покушајте поново само са знаковима до али не укључујући првог нултог знака. Ако је ово успешно, поставите нову приступну фразу да бисте избегли овај проблем у будућности.</translation>
</message>
<message>
<source>Wallet passphrase was successfully changed.</source>
<translation type="unfinished">Лозинка новчаника успешно је промењена.</translation>
</message>
@ -232,6 +236,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<translation type="unfinished">Promena lozinke nije uspela</translation>
</message>
<message>
<source>The old passphrase entered for the wallet decryption is incorrect. It contains a null character (ie - a zero byte). If the passphrase was set with a version of this software prior to 25.0, please try again with only the characters up to but not including the first null character.</source>
<translation type="unfinished">Стара приступна фраза унета за дешифровање новчаника је нетачна. Садржи нулти карактер (тј. - нулти бајт). Ако је приступна фраза постављена са верзијом овог софтвера старијом од 25.0, покушајте поново са само знаковима до али не укључујући првог нултог знака.</translation>
</message>
<message>
<source>Warning: The Caps Lock key is on!</source>
<translation type="unfinished">Упозорање Caps Lock дугме укључено!</translation>
</message>
@ -250,6 +258,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<context>
<name>BitcoinApplication</name>
<message>
<source>Settings file %1 might be corrupt or invalid.</source>
<translation type="unfinished">Датотека подешавања %1 је можда оштећена или неважећа.</translation>
</message>
<message>
<source>Runaway exception</source>
<translation type="unfinished">Изузетак покретања</translation>
</message>
@ -638,6 +650,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<translation type="unfinished">Учитај делимично потписану Bitcoin трансакцију</translation>
</message>
<message>
<source>Load PSBT from &amp;clipboard</source>
<translation type="unfinished">Учитај PSBT из привремене меморије</translation>
</message>
<message>
<source>Load Partially Signed Bitcoin Transaction from clipboard</source>
<translation type="unfinished">Учитај делимично потписану Bitcoin трансакцију из clipboard-a</translation>
</message>
@ -716,6 +732,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<translation type="unfinished">Подаци Новчаника</translation>
</message>
<message>
<source>Load Wallet Backup</source>
<extracomment>The title for Restore Wallet File Windows</extracomment>
<translation type="unfinished">Учитај резевну копију новчаника</translation>
</message>
<message>
<source>Restore Wallet</source>
<extracomment>Title of pop-up window shown when the user is attempting to restore a wallet.</extracomment>
<translation type="unfinished">Поврати Новчаник</translation>

View File

@ -224,6 +224,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<translation type="unfinished">Лозинка коју сте унели за дешифровање новчаника је погрешна.</translation>
</message>
<message>
<source>The passphrase entered for the wallet decryption is incorrect. It contains a null character (ie - a zero byte). If the passphrase was set with a version of this software prior to 25.0, please try again with only the characters up to but not including the first null character. If this is successful, please set a new passphrase to avoid this issue in the future.</source>
<translation type="unfinished">Приступна фраза унета за дешифровање новчаника је нетачна. Садржи нулти карактер (тј. - нулти бајт). Ако је приступна фраза постављена са верзијом овог софтвера старијом од 25.0, покушајте поново само са знаковима до али не укључујући првог нултог знака. Ако је ово успешно, поставите нову приступну фразу да бисте избегли овај проблем у будућности.</translation>
</message>
<message>
<source>Wallet passphrase was successfully changed.</source>
<translation type="unfinished">Pristupna fraza novčanika je uspešno promenjena.</translation>
</message>
@ -232,6 +236,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<translation type="unfinished">Promena lozinke nije uspela</translation>
</message>
<message>
<source>The old passphrase entered for the wallet decryption is incorrect. It contains a null character (ie - a zero byte). If the passphrase was set with a version of this software prior to 25.0, please try again with only the characters up to but not including the first null character.</source>
<translation type="unfinished">Стара приступна фраза унета за дешифровање новчаника је нетачна. Садржи нулти карактер (тј. - нулти бајт). Ако је приступна фраза постављена са верзијом овог софтвера старијом од 25.0, покушајте поново са само знаковима до али не укључујући првог нултог знака.</translation>
</message>
<message>
<source>Warning: The Caps Lock key is on!</source>
<translation type="unfinished">Upozorenje: Caps Lock je uključen!</translation>
</message>
@ -246,6 +254,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<context>
<name>BitcoinApplication</name>
<message>
<source>Settings file %1 might be corrupt or invalid.</source>
<translation type="unfinished">Датотека подешавања %1 је можда оштећена или неважећа.</translation>
</message>
<message>
<source>Runaway exception</source>
<translation type="unfinished">Изузетак покретања</translation>
</message>
@ -634,6 +646,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<translation type="unfinished">Учитај делимично потписану Bitcoin трансакцију</translation>
</message>
<message>
<source>Load PSBT from &amp;clipboard</source>
<translation type="unfinished">Учитај PSBT из привремене меморије</translation>
</message>
<message>
<source>Load Partially Signed Bitcoin Transaction from clipboard</source>
<translation type="unfinished">Учитај делимично потписану Bitcoin трансакцију из clipboard-a</translation>
</message>
@ -712,6 +728,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<translation type="unfinished">Подаци Новчаника</translation>
</message>
<message>
<source>Load Wallet Backup</source>
<extracomment>The title for Restore Wallet File Windows</extracomment>
<translation type="unfinished">Учитај резевну копију новчаника</translation>
</message>
<message>
<source>Restore Wallet</source>
<extracomment>Title of pop-up window shown when the user is attempting to restore a wallet.</extracomment>
<translation type="unfinished">Поврати Новчаник</translation>

View File

@ -224,6 +224,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<translation type="unfinished">Pristupna fraza za dekriptovanje novčanika nije tačna.</translation>
</message>
<message>
<source>The passphrase entered for the wallet decryption is incorrect. It contains a null character (ie - a zero byte). If the passphrase was set with a version of this software prior to 25.0, please try again with only the characters up to but not including the first null character. If this is successful, please set a new passphrase to avoid this issue in the future.</source>
<translation type="unfinished">Приступна фраза унета за дешифровање новчаника је нетачна. Садржи нулти карактер (тј. - нулти бајт). Ако је приступна фраза постављена са верзијом овог софтвера старијом од 25.0, покушајте поново само са знаковима до али не укључујући првог нултог знака. Ако је ово успешно, поставите нову приступну фразу да бисте избегли овај проблем у будућности.</translation>
</message>
<message>
<source>Wallet passphrase was successfully changed.</source>
<translation type="unfinished">Pristupna fraza novčanika je uspešno promenjena.</translation>
</message>
@ -232,6 +236,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<translation type="unfinished">Promena lozinke nije uspela</translation>
</message>
<message>
<source>The old passphrase entered for the wallet decryption is incorrect. It contains a null character (ie - a zero byte). If the passphrase was set with a version of this software prior to 25.0, please try again with only the characters up to but not including the first null character.</source>
<translation type="unfinished">Стара приступна фраза унета за дешифровање новчаника је нетачна. Садржи нулти карактер (тј. - нулти бајт). Ако је приступна фраза постављена са верзијом овог софтвера старијом од 25.0, покушајте поново са само знаковима до али не укључујући првог нултог знака.</translation>
</message>
<message>
<source>Warning: The Caps Lock key is on!</source>
<translation type="unfinished">Upozorenje: Caps Lock je uključen!</translation>
</message>
@ -246,6 +254,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<context>
<name>BitcoinApplication</name>
<message>
<source>Settings file %1 might be corrupt or invalid.</source>
<translation type="unfinished">Датотека подешавања %1 је можда оштећена или неважећа.</translation>
</message>
<message>
<source>Runaway exception</source>
<translation type="unfinished">Изузетак покретања</translation>
</message>
@ -634,6 +646,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<translation type="unfinished">Учитај делимично потписану Bitcoin трансакцију</translation>
</message>
<message>
<source>Load PSBT from &amp;clipboard</source>
<translation type="unfinished">Учитај PSBT из привремене меморије</translation>
</message>
<message>
<source>Load Partially Signed Bitcoin Transaction from clipboard</source>
<translation type="unfinished">Учитај делимично потписану Bitcoin трансакцију из clipboard-a</translation>
</message>
@ -712,6 +728,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
<translation type="unfinished">Подаци Новчаника</translation>
</message>
<message>
<source>Load Wallet Backup</source>
<extracomment>The title for Restore Wallet File Windows</extracomment>
<translation type="unfinished">Учитај резевну копију новчаника</translation>
</message>
<message>
<source>Restore Wallet</source>
<extracomment>Title of pop-up window shown when the user is attempting to restore a wallet.</extracomment>
<translation type="unfinished">Поврати Новчаник</translation>

View File

@ -1397,6 +1397,10 @@ Om den här plånboken innehåller lösbara</translation>
<translation type="unfinished">Denna första synkronisering är väldigt krävande, och kan påvisa hårdvaruproblem hos din dator som tidigare inte visat sig. Varje gång du kör %1, kommer nerladdningen att fortsätta där den avslutades.</translation>
</message>
<message>
<source>When you click OK, %1 will begin to download and process the full %4 block chain (%2 GB) starting with the earliest transactions in %3 when %4 initially launched.</source>
<translation type="unfinished">När du trycker OK kommer %1 att börja ladda ner och bearbeta den fullständiga %4-blockkedjan (%2 GB), med början vid de tidigaste transaktionerna %3 när %4 först startades.</translation>
</message>
<message>
<source>If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low.</source>
<translation type="unfinished">Om du valt att begränsa storleken blockkedjan (gallring), måste historiska data ändå laddas ner och behandlas, men kommer därefter att tas bort för att spara lagringsutrymme.</translation>
</message>
@ -1481,7 +1485,15 @@ Om den här plånboken innehåller lösbara</translation>
<source>%1 is currently syncing. It will download headers and blocks from peers and validate them until reaching the tip of the block chain.</source>
<translation type="unfinished">%1 synkroniserar. Den kommer att ladda ner metadata och block från noder och validera dem fram tills att toppen blockkedjan är nådd.</translation>
</message>
</context>
<message>
<source>Unknown. Syncing Headers (%1, %2%)</source>
<translation type="unfinished">Okänd. Synkar huvuden (%1, %2%)...</translation>
</message>
<message>
<source>Unknown. Pre-syncing Headers (%1, %2%)</source>
<translation type="unfinished">Okänd. För-synkar rubriker (%1, %2%)...</translation>
</message>
</context>
<context>
<name>OpenURIDialog</name>
<message>
@ -1513,6 +1525,10 @@ Om den här plånboken innehåller lösbara</translation>
<translation type="unfinished">&amp;Starta %1 vid systemlogin</translation>
</message>
<message>
<source>Enabling pruning significantly reduces the disk space required to store transactions. All blocks are still fully validated. Reverting this setting requires re-downloading the entire blockchain.</source>
<translation type="unfinished">Aktivering av ansning reducerar diskutrymmet som behövs för att lagra transaktioner. Alla block är fortfarande fullt validerade. Inaktivering av denna funktion betyder att hela blockkedjan måste laddas ner nytt.</translation>
</message>
<message>
<source>Size of &amp;database cache</source>
<translation type="unfinished">Storleken &amp;databascache</translation>
</message>
@ -1521,6 +1537,10 @@ Om den här plånboken innehåller lösbara</translation>
<translation type="unfinished">Antalet skript&amp;verifikationstrådar</translation>
</message>
<message>
<source>Full path to a %1 compatible script (e.g. C:\Downloads\hwi.exe or /Users/you/Downloads/hwi.py). Beware: malware can steal your coins!</source>
<translation type="unfinished">Hela sökvägen till ett %1 kompatibelt script (t,ex. C:\Downloads\hwi.exe eller /Users/du/Downloads/hwi.py). Varning: Skadlig programvara kan stjäla dina mynt!</translation>
</message>
<message>
<source>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</source>
<translation type="unfinished">Proxyns IP-adress (t.ex. IPv4: 127.0.0.1 / IPv6: ::1)</translation>
</message>
@ -1537,6 +1557,10 @@ Om den här plånboken innehåller lösbara</translation>
<translation type="unfinished">Typsnitt översiktsfliken:</translation>
</message>
<message>
<source>Options set in this dialog are overridden by the command line:</source>
<translation type="unfinished">Alternativ som anges i denna dialog åsidosätts av kommandoraden:</translation>
</message>
<message>
<source>Open the %1 configuration file from the working directory.</source>
<translation type="unfinished">Öppna konfigurationsfilen %1 från arbetskatalogen.</translation>
</message>

View File

@ -661,6 +661,14 @@ Cüzdan kilidini aç.</translation>
<translation type="unfinished">Tüm cüzdanları kapat</translation>
</message>
<message>
<source>Migrate Wallet</source>
<translation type="unfinished">Cüzdanı Taşı</translation>
</message>
<message>
<source>Migrate a wallet</source>
<translation type="unfinished">Bir Cüzdanı Taşı</translation>
</message>
<message>
<source>&amp;Mask values</source>
<translation type="unfinished">&amp; Değerleri maskele</translation>
</message>
@ -752,6 +760,10 @@ Cüzdan kilidini aç.</translation>
<translation type="unfinished">Üstbilgiler senkronize ediliyor (%1%)...</translation>
</message>
<message>
<source>Error creating wallet</source>
<translation type="unfinished">Cüzdan oluşturulurken hata meydana geldi</translation>
</message>
<message>
<source>Error: %1</source>
<translation type="unfinished">Hata: %1</translation>
</message>
@ -1001,6 +1013,37 @@ Cüzdan kilidini aç.</translation>
</message>
</context>
<context>
<name>MigrateWalletActivity</name>
<message>
<source>Migrate wallet</source>
<translation type="unfinished">Cüzdanı taşı</translation>
</message>
<message>
<source>Are you sure you wish to migrate the wallet &lt;i&gt;%1&lt;/i&gt;?</source>
<translation type="unfinished">Cüzdanı taşımak istediğine emin misin &lt;i&gt;%1&lt;/i&gt;?</translation>
</message>
<message>
<source>Migrate Wallet</source>
<translation type="unfinished">Cüzdanı Taşı</translation>
</message>
<message>
<source>Migrating Wallet &lt;b&gt;%1&lt;/b&gt;</source>
<translation type="unfinished">Cüzdan Taşınıyor &lt;b&gt;%1&lt;/b&gt;...</translation>
</message>
<message>
<source>The wallet '%1' was migrated successfully.</source>
<translation type="unfinished">Cüzdan '%1' başarıyla taşındı.</translation>
</message>
<message>
<source>Migration failed</source>
<translation type="unfinished">Taşıma başarısız oldu.</translation>
</message>
<message>
<source>Migration Successful</source>
<translation type="unfinished">Taşıma Başarılı</translation>
</message>
</context>
<context>
<name>OpenWalletActivity</name>
<message>
<source>Open wallet failed</source>
@ -1083,6 +1126,14 @@ Cüzdan kilidini aç.</translation>
<translation type="unfinished">Cüzdan Oluştur</translation>
</message>
<message>
<source>You are one step away from creating your new wallet!</source>
<translation type="unfinished">Yeni cüzdanını yaratmaktan bir adım uzaktasın!</translation>
</message>
<message>
<source>Please provide a name and, if desired, enable any advanced options</source>
<translation type="unfinished">Lütfen bir isim sağla ve, isteğe bağlı olarak, gelişmiş seçenekleri etkinleştir.</translation>
</message>
<message>
<source>Wallet Name</source>
<translation type="unfinished">Cüzdan İsmi</translation>
</message>
@ -2056,10 +2107,18 @@ Cüzdan kilidini aç.</translation>
<translation type="unfinished">Ayrıntılı bilgi görmek için bir seçin.</translation>
</message>
<message>
<source>The transport layer version: %1</source>
<translation type="unfinished">Taşıma katmanı versiyonu: %1</translation>
</message>
<message>
<source>Transport</source>
<translation type="unfinished">Aktar</translation>
</message>
<message>
<source>Session ID</source>
<translation type="unfinished">Oturum ID</translation>
</message>
<message>
<source>Version</source>
<translation type="unfinished">Sürüm</translation>
</message>
@ -2226,6 +2285,21 @@ Cüzdan kilidini aç.</translation>
<translation type="unfinished">Dışarı:</translation>
</message>
<message>
<source>detecting: peer could be v1 or v2</source>
<extracomment>Explanatory text for "detecting" transport type.</extracomment>
<translation type="unfinished">keşfediliyor: v1 veya v2 olabilir</translation>
</message>
<message>
<source>v1: unencrypted, plaintext transport protocol</source>
<extracomment>Explanatory text for v1 transport type.</extracomment>
<translation type="unfinished">v1: şifrelenmemiş, ık metin taşıma protokolü</translation>
</message>
<message>
<source>v2: BIP324 encrypted transport protocol</source>
<extracomment>Explanatory text for v2 transport type.</extracomment>
<translation type="unfinished">v2: BIP324 şifrelenmiş taşıma protokolü</translation>
</message>
<message>
<source>&amp;Copy address</source>
<extracomment>Context menu action to copy the address of a peer.</extracomment>
<translation type="unfinished">&amp;Adresi kopyala</translation>
@ -3635,6 +3709,10 @@ Cüzdan yedeği geri yüklenemiyor.</translation>
<translation type="unfinished">Başlatma sırasında cüzdanı yeniden tarama işlemi başarısız oldu</translation>
</message>
<message>
<source>Failed to start indexes, shutting down..</source>
<translation type="unfinished">Endekslerin başlatılması başarısız oldu, kapatılıyor..</translation>
</message>
<message>
<source>Failed to verify database</source>
<translation type="unfinished">Veritabanı doğrulanamadı</translation>
</message>

View File

@ -20,6 +20,7 @@
#include <node/chainstatemanager_args.h>
#include <netbase.h>
#include <txdb.h>
#include <util/strencodings.h>
#include <chrono>
@ -478,7 +479,10 @@ QValidator(parent)
QValidator::State ProxyAddressValidator::validate(QString &input, int &pos) const
{
Q_UNUSED(pos);
// Validate the proxy
uint16_t port{0};
std::string hostname;
if (!SplitHostPort(input.toStdString(), port, hostname) || port != 0) return QValidator::Invalid;
CService serv(LookupNumeric(input.toStdString(), DEFAULT_GUI_PROXY_PORT));
Proxy addrProxy = Proxy(serv, true);
if (addrProxy.IsValid())

View File

@ -529,12 +529,6 @@ bool WalletModel::bumpFee(uint256 hash, uint256& new_hash)
return false;
}
WalletModel::UnlockContext ctx(requestUnlock());
if(!ctx.isValid())
{
return false;
}
// Short-circuit if we are returning a bumped transaction PSBT to clipboard
if (retval == QMessageBox::Save) {
// "Create Unsigned" clicked
@ -549,10 +543,15 @@ bool WalletModel::bumpFee(uint256 hash, uint256& new_hash)
DataStream ssTx{};
ssTx << psbtx;
GUIUtil::setClipboard(EncodeBase64(ssTx.str()).c_str());
Q_EMIT message(tr("PSBT copied"), tr("Copied to clipboard", "Fee-bump PSBT saved"), CClientUIInterface::MSG_INFORMATION);
Q_EMIT message(tr("PSBT copied"), tr("Fee-bump PSBT copied to clipboard"), CClientUIInterface::MSG_INFORMATION | CClientUIInterface::MODAL);
return true;
}
WalletModel::UnlockContext ctx(requestUnlock());
if (!ctx.isValid()) {
return false;
}
assert(!m_wallet->privateKeysDisabled() || wallet().hasExternalSigner());
// sign bumped transaction

View File

@ -188,12 +188,12 @@ UniValue blockToJSON(BlockManager& blockman, const CBlock& block, const CBlockIn
const CTxUndo* txundo = (have_undo && i > 0) ? &blockUndo.vtxundo.at(i - 1) : nullptr;
UniValue objTx(UniValue::VOBJ);
TxToUniv(*tx, /*block_hash=*/uint256(), /*entry=*/objTx, /*include_hex=*/true, txundo, verbosity);
txs.push_back(objTx);
txs.push_back(std::move(objTx));
}
break;
}
result.pushKV("tx", txs);
result.pushKV("tx", std::move(txs));
return result;
}

View File

@ -26,6 +26,7 @@
#include <univalue.h>
#include <util/any.h>
#include <util/check.h>
#include <util/time.h>
#include <stdint.h>
#ifdef HAVE_MALLOC_INFO
@ -58,9 +59,11 @@ static RPCHelpMan setmocktime()
LOCK(cs_main);
const int64_t time{request.params[0].getInt<int64_t>()};
if (time < 0) {
throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("Mocktime cannot be negative: %s.", time));
constexpr int64_t max_time{Ticks<std::chrono::seconds>(std::chrono::nanoseconds::max())};
if (time < 0 || time > max_time) {
throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("Mocktime must be in the range [0, %s], not %s.", max_time, time));
}
SetMockTime(time);
const NodeContext& node_context{EnsureAnyNodeContext(request.context)};
for (const auto& chain_client : node_context.chain_clients) {

View File

@ -295,7 +295,7 @@ struct TapSatisfier: Satisfier<XOnlyPubKey> {
//! Conversion from a raw xonly public key.
template <typename I>
std::optional<XOnlyPubKey> FromPKBytes(I first, I last) const {
CHECK_NONFATAL(last - first == 32);
if (last - first != 32) return {};
XOnlyPubKey pubkey;
std::copy(first, last, pubkey.begin());
return pubkey;

View File

@ -108,6 +108,12 @@ BOOST_AUTO_TEST_CASE(test_addnode_getaddednodeinfo_and_connection_detection)
AddPeer(id, nodes, *peerman, *connman, ConnectionType::BLOCK_RELAY, /*onion_peer=*/true);
AddPeer(id, nodes, *peerman, *connman, ConnectionType::INBOUND);
// Add a CJDNS peer connection.
AddPeer(id, nodes, *peerman, *connman, ConnectionType::INBOUND, /*onion_peer=*/false,
/*address=*/"[fc00:3344:5566:7788:9900:aabb:ccdd:eeff]:1234");
BOOST_CHECK(nodes.back()->IsInboundConn());
BOOST_CHECK_EQUAL(nodes.back()->ConnectedThroughNetwork(), Network::NET_CJDNS);
BOOST_TEST_MESSAGE("Call AddNode() for all the peers");
for (auto node : connman->TestNodes()) {
BOOST_CHECK(connman->AddNode({/*m_added_node=*/node->addr.ToStringAddrPort(), /*m_use_v2transport=*/true}));

View File

@ -291,6 +291,7 @@ BOOST_AUTO_TEST_CASE(rpc_parse_monetary_values)
BOOST_CHECK_EQUAL(AmountFromValue(ValueFromString("1e-8")), COIN/100000000);
BOOST_CHECK_EQUAL(AmountFromValue(ValueFromString("0.1e-7")), COIN/100000000);
BOOST_CHECK_EQUAL(AmountFromValue(ValueFromString("0.01e-6")), COIN/100000000);
BOOST_CHECK_EQUAL(AmountFromValue(ValueFromString("0.00000000000000000000000000000000000001e+30")), 1);
BOOST_CHECK_EQUAL(AmountFromValue(ValueFromString("0.0000000000000000000000000000000000000000000000000000000000000000000000000001e+68")), COIN/100000000);
BOOST_CHECK_EQUAL(AmountFromValue(ValueFromString("10000000000000000000000000000000000000000000000000000000000000000e-64")), COIN);
BOOST_CHECK_EQUAL(AmountFromValue(ValueFromString("0.000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000e64")), COIN);

View File

@ -1277,6 +1277,30 @@ BOOST_AUTO_TEST_CASE(script_combineSigs)
BOOST_CHECK(combined.scriptSig == partial3c);
}
/**
* Reproduction of an exception incorrectly raised when parsing a public key inside a TapMiniscript.
*/
BOOST_AUTO_TEST_CASE(sign_invalid_miniscript)
{
FillableSigningProvider keystore;
SignatureData sig_data;
CMutableTransaction prev, curr;
// Create a Taproot output which contains a leaf in which a non-32 bytes push is used where a public key is expected
// by the Miniscript parser. This offending Script was found by the RPC fuzzer.
const auto invalid_pubkey{ParseHex("173d36c8c9c9c9ffffffffffff0200000000021e1e37373721361818181818181e1e1e1e19000000000000000000b19292929292926b006c9b9b9292")};
TaprootBuilder builder;
builder.Add(0, {invalid_pubkey}, 0xc0);
XOnlyPubKey nums{ParseHex("50929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0")};
builder.Finalize(nums);
prev.vout.emplace_back(0, GetScriptForDestination(builder.GetOutput()));
curr.vin.emplace_back(COutPoint{prev.GetHash(), 0});
sig_data.tr_spenddata = builder.GetSpendData();
// SignSignature can fail but it shouldn't raise an exception (nor crash).
BOOST_CHECK(!SignSignature(keystore, CTransaction(prev), curr, 0, SIGHASH_ALL, sig_data));
}
BOOST_AUTO_TEST_CASE(script_standard_push)
{
ScriptError err;

View File

@ -37,6 +37,7 @@ uint64_t TestDouble(double f) {
} // namespace
BOOST_AUTO_TEST_CASE(double_serfloat_tests) {
// Test specific values against their expected encoding.
BOOST_CHECK_EQUAL(TestDouble(0.0), 0U);
BOOST_CHECK_EQUAL(TestDouble(-0.0), 0x8000000000000000);
BOOST_CHECK_EQUAL(TestDouble(std::numeric_limits<double>::infinity()), 0x7ff0000000000000U);
@ -46,55 +47,76 @@ BOOST_AUTO_TEST_CASE(double_serfloat_tests) {
BOOST_CHECK_EQUAL(TestDouble(2.0), 0x4000000000000000ULL);
BOOST_CHECK_EQUAL(TestDouble(4.0), 0x4010000000000000ULL);
BOOST_CHECK_EQUAL(TestDouble(785.066650390625), 0x4088888880000000ULL);
BOOST_CHECK_EQUAL(TestDouble(3.7243058682384174), 0x400dcb60e0031440);
BOOST_CHECK_EQUAL(TestDouble(91.64070592566159), 0x4056e901536d447a);
BOOST_CHECK_EQUAL(TestDouble(-98.63087668642575), 0xc058a860489c007a);
BOOST_CHECK_EQUAL(TestDouble(4.908737756962054), 0x4013a28c268b2b70);
BOOST_CHECK_EQUAL(TestDouble(77.9247330021754), 0x40537b2ed3547804);
BOOST_CHECK_EQUAL(TestDouble(40.24732825357566), 0x40441fa873c43dfc);
BOOST_CHECK_EQUAL(TestDouble(71.39395607929222), 0x4051d936938f27b6);
BOOST_CHECK_EQUAL(TestDouble(58.80100710817612), 0x404d668766a2bd70);
BOOST_CHECK_EQUAL(TestDouble(-30.10665786964975), 0xc03e1b4dee1e01b8);
BOOST_CHECK_EQUAL(TestDouble(60.15231509068704), 0x404e137f0f969814);
BOOST_CHECK_EQUAL(TestDouble(-48.15848711335961), 0xc04814494e445bc6);
BOOST_CHECK_EQUAL(TestDouble(26.68450101125353), 0x403aaf3b755169b0);
BOOST_CHECK_EQUAL(TestDouble(-65.72071986604303), 0xc0506e2046378ede);
BOOST_CHECK_EQUAL(TestDouble(17.95575825512381), 0x4031f4ac92b0a388);
BOOST_CHECK_EQUAL(TestDouble(-35.27171863226279), 0xc041a2c7ad17a42a);
BOOST_CHECK_EQUAL(TestDouble(-8.58810329425124), 0xc0212d1bdffef538);
BOOST_CHECK_EQUAL(TestDouble(88.51393044338977), 0x405620e43c83b1c8);
BOOST_CHECK_EQUAL(TestDouble(48.07224932612732), 0x4048093f77466ffc);
BOOST_CHECK_EQUAL(TestDouble(9.867348871395659e+117), 0x586f4daeb2459b9f);
BOOST_CHECK_EQUAL(TestDouble(-1.5166424385129721e+206), 0xeabe3bbc484bd458);
BOOST_CHECK_EQUAL(TestDouble(-8.585156555624594e-275), 0x8707c76eee012429);
BOOST_CHECK_EQUAL(TestDouble(2.2794371091628822e+113), 0x5777b2184458f4ee);
BOOST_CHECK_EQUAL(TestDouble(-1.1290476594131867e+163), 0xe1c91893d3488bb0);
BOOST_CHECK_EQUAL(TestDouble(9.143848423979275e-246), 0x0d0ff76e5f2620a3);
BOOST_CHECK_EQUAL(TestDouble(-2.8366718125941117e+81), 0xd0d7ec7e754b394a);
BOOST_CHECK_EQUAL(TestDouble(-1.2754409481684012e+229), 0xef80d32f8ec55342);
BOOST_CHECK_EQUAL(TestDouble(6.000577060053642e-186), 0x197a1be7c8209b6a);
BOOST_CHECK_EQUAL(TestDouble(2.0839423284378986e-302), 0x014c94f8689cb0a5);
BOOST_CHECK_EQUAL(TestDouble(-1.422140051483753e+259), 0xf5bd99271d04bb35);
BOOST_CHECK_EQUAL(TestDouble(-1.0593973991188853e+46), 0xc97db0cdb72d1046);
BOOST_CHECK_EQUAL(TestDouble(2.62945125875249e+190), 0x67779b36366c993b);
BOOST_CHECK_EQUAL(TestDouble(-2.920377657275094e+115), 0xd7e7b7b45908e23b);
BOOST_CHECK_EQUAL(TestDouble(9.790289014855851e-118), 0x27a3c031cc428bcc);
BOOST_CHECK_EQUAL(TestDouble(-4.629317182034961e-114), 0xa866ccf0b753705a);
BOOST_CHECK_EQUAL(TestDouble(-1.7674605603846528e+279), 0xf9e8ed383ffc3e25);
BOOST_CHECK_EQUAL(TestDouble(2.5308171727712605e+120), 0x58ef5cd55f0ec997);
BOOST_CHECK_EQUAL(TestDouble(-1.05034156412799e+54), 0xcb25eea1b9350fa0);
// Roundtrip test on IEC559-compatible systems
if (std::numeric_limits<double>::is_iec559) {
BOOST_CHECK_EQUAL(sizeof(double), 8U);
BOOST_CHECK_EQUAL(sizeof(uint64_t), 8U);
// Test extreme values
TestDouble(std::numeric_limits<double>::min());
TestDouble(-std::numeric_limits<double>::min());
TestDouble(std::numeric_limits<double>::max());
TestDouble(-std::numeric_limits<double>::max());
TestDouble(std::numeric_limits<double>::lowest());
TestDouble(-std::numeric_limits<double>::lowest());
TestDouble(std::numeric_limits<double>::quiet_NaN());
TestDouble(-std::numeric_limits<double>::quiet_NaN());
TestDouble(std::numeric_limits<double>::signaling_NaN());
TestDouble(-std::numeric_limits<double>::signaling_NaN());
TestDouble(std::numeric_limits<double>::denorm_min());
TestDouble(-std::numeric_limits<double>::denorm_min());
// Test exact encoding: on currently supported platforms, EncodeDouble
// should produce exactly the same as the in-memory representation for non-NaN.
for (int j = 0; j < 1000; ++j) {
// Iterate over 9 specific bits exhaustively; the others are chosen randomly.
// These specific bits are the sign bit, and the 2 top and bottom bits of
// exponent and mantissa in the IEEE754 binary64 format.
for (int x = 0; x < 512; ++x) {
uint64_t v = InsecureRandBits(64);
v &= ~(uint64_t{1} << 0);
if (x & 1) v |= (uint64_t{1} << 0);
v &= ~(uint64_t{1} << 1);
if (x & 2) v |= (uint64_t{1} << 1);
v &= ~(uint64_t{1} << 50);
if (x & 4) v |= (uint64_t{1} << 50);
v &= ~(uint64_t{1} << 51);
if (x & 8) v |= (uint64_t{1} << 51);
v &= ~(uint64_t{1} << 52);
if (x & 16) v |= (uint64_t{1} << 52);
v &= ~(uint64_t{1} << 53);
if (x & 32) v |= (uint64_t{1} << 53);
v &= ~(uint64_t{1} << 61);
if (x & 64) v |= (uint64_t{1} << 61);
v &= ~(uint64_t{1} << 62);
if (x & 128) v |= (uint64_t{1} << 62);
v &= ~(uint64_t{1} << 63);
if (x & 256) v |= (uint64_t{1} << 63);
double f;
memcpy(&f, &v, 8);
uint64_t v2 = TestDouble(f);
if (!std::isnan(f)) BOOST_CHECK_EQUAL(v, v2);
// Test extreme values
BOOST_CHECK_EQUAL(TestDouble(std::numeric_limits<double>::min()), 0x10000000000000);
BOOST_CHECK_EQUAL(TestDouble(-std::numeric_limits<double>::min()), 0x8010000000000000);
BOOST_CHECK_EQUAL(TestDouble(std::numeric_limits<double>::max()), 0x7fefffffffffffff);
BOOST_CHECK_EQUAL(TestDouble(-std::numeric_limits<double>::max()), 0xffefffffffffffff);
BOOST_CHECK_EQUAL(TestDouble(std::numeric_limits<double>::lowest()), 0xffefffffffffffff);
BOOST_CHECK_EQUAL(TestDouble(-std::numeric_limits<double>::lowest()), 0x7fefffffffffffff);
BOOST_CHECK_EQUAL(TestDouble(std::numeric_limits<double>::denorm_min()), 0x1);
BOOST_CHECK_EQUAL(TestDouble(-std::numeric_limits<double>::denorm_min()), 0x8000000000000001);
// Note that all NaNs are encoded the same way.
BOOST_CHECK_EQUAL(TestDouble(std::numeric_limits<double>::quiet_NaN()), 0x7ff8000000000000);
BOOST_CHECK_EQUAL(TestDouble(-std::numeric_limits<double>::quiet_NaN()), 0x7ff8000000000000);
BOOST_CHECK_EQUAL(TestDouble(std::numeric_limits<double>::signaling_NaN()), 0x7ff8000000000000);
BOOST_CHECK_EQUAL(TestDouble(-std::numeric_limits<double>::signaling_NaN()), 0x7ff8000000000000);
// Construct doubles to test from the encoding.
static_assert(sizeof(double) == 8);
static_assert(sizeof(uint64_t) == 8);
for (int j = 0; j < 1000; ++j) {
// Iterate over 9 specific bits exhaustively; the others are chosen randomly.
// These specific bits are the sign bit, and the 2 top and bottom bits of
// exponent and mantissa in the IEEE754 binary64 format.
for (int x = 0; x < 512; ++x) {
uint64_t v = InsecureRandBits(64);
int x_pos = 0;
for (int v_pos : {0, 1, 50, 51, 52, 53, 61, 62, 63}) {
v &= ~(uint64_t{1} << v_pos);
if ((x >> (x_pos++)) & 1) v |= (uint64_t{1} << v_pos);
}
double f;
memcpy(&f, &v, 8);
TestDouble(f);
}
}
}

View File

@ -28,7 +28,8 @@ void ConnmanTestMsg::Handshake(CNode& node,
auto& connman{*this};
peerman.InitializeNode(node, local_services);
FlushSendBuffer(node); // Drop the version message added by InitializeNode.
peerman.SendMessages(&node);
FlushSendBuffer(node); // Drop the version message added by SendMessages.
CSerializedNetMsg msg_version{
NetMsg::Make(NetMsgType::VERSION,

View File

@ -421,7 +421,7 @@ void univalue_readwrite()
// Valid, with leading or trailing whitespace
BOOST_CHECK(v.read(" 1.0") && (v.get_real() == 1.0));
BOOST_CHECK(v.read("1.0 ") && (v.get_real() == 1.0));
BOOST_CHECK(v.read("0.00000000000000000000000000000000000001e+30 ") && v.get_real() == 1e-8);
BOOST_CHECK(v.read("0.00000000000000000000000000000000000001e+30 "));
BOOST_CHECK(!v.read(".19e-6")); //should fail, missing leading 0, therefore invalid JSON
// Invalid, initial garbage

View File

@ -2184,8 +2184,8 @@ TransactionError CWallet::FillPSBT(PartiallySignedTransaction& psbtx, bool& comp
// Complete if every input is now signed
complete = true;
for (const auto& input : psbtx.inputs) {
complete &= PSBTInputSigned(input);
for (size_t i = 0; i < psbtx.inputs.size(); ++i) {
complete &= PSBTInputSignedAndVerified(psbtx, i, &txdata);
}
return TransactionError::OK;

View File

@ -38,7 +38,9 @@
"cHNidP8BAF4CAAAAAZvUh2UjC/mnLmYgAflyVW5U8Mb5f+tWvLVgDYF/aZUmAQAAAAD/////AUjmBSoBAAAAIlEgAw2k/OT32yjCyylRYx4ANxOFZZf+ljiCy1AOaBEsymMAAAAAAAEBKwDyBSoBAAAAIlEgwiR++/2SrEf29AuNQtFpF1oZ+p+hDkol1/NetN2FtpJBFCyxOsaCSN6AaqajZZzzwD62gh0JyBFKToaP696GW7bSzZcOFfU/wMgvlQ/VYP+pGbdhcr4Bc2iomROvB09ACwlCiXVqo3OczGiewPzzo2C+MswLWbFuk6Hou0YFcmssp6P/cGxBdmSWMrLMaOH5ErileONxnOdxCIXHqWb0m81DywEBAAA=",
"cHNidP8BAF4CAAAAAZvUh2UjC/mnLmYgAflyVW5U8Mb5f+tWvLVgDYF/aZUmAQAAAAD/////AUjmBSoBAAAAIlEgAw2k/OT32yjCyylRYx4ANxOFZZf+ljiCy1AOaBEsymMAAAAAAAEBKwDyBSoBAAAAIlEgwiR++/2SrEf29AuNQtFpF1oZ+p+hDkol1/NetN2FtpJBFCyxOsaCSN6AaqajZZzzwD62gh0JyBFKToaP696GW7bSzZcOFfU/wMgvlQ/VYP+pGbdhcr4Bc2iomROvB09ACwk5iXVqo3OczGiewPzzo2C+MswLWbFuk6Hou0YFcmssp6P/cGxBdmSWMrLMaOH5ErileONxnOdxCIXHqWb0m81DywAA",
"cHNidP8BAF4CAAAAAZvUh2UjC/mnLmYgAflyVW5U8Mb5f+tWvLVgDYF/aZUmAQAAAAD/////AUjmBSoBAAAAIlEgAw2k/OT32yjCyylRYx4ANxOFZZf+ljiCy1AOaBEsymMAAAAAAAEBKwDyBSoBAAAAIlEgwiR++/2SrEf29AuNQtFpF1oZ+p+hDkol1/NetN2FtpJjFcFQkpt0waBJVLeLS2A16XpeB4paDyjsltVHv+6azoA6wG99YgWelJehpKJnVp2YdtpgEBr/OONSm5uTnOf5GulwEV8uSQr3zEXE94UR82BXzlxaXFYyWin7RN/CA/NW4fgAIyAssTrGgkjegGqmo2Wc88A+toIdCcgRSk6Gj+vehlu20qzAAAA=",
"cHNidP8BAF4CAAAAAZvUh2UjC/mnLmYgAflyVW5U8Mb5f+tWvLVgDYF/aZUmAQAAAAD/////AUjmBSoBAAAAIlEgAw2k/OT32yjCyylRYx4ANxOFZZf+ljiCy1AOaBEsymMAAAAAAAEBKwDyBSoBAAAAIlEgwiR++/2SrEf29AuNQtFpF1oZ+p+hDkol1/NetN2FtpJhFcFQkpt0waBJVLeLS2A16XpeB4paDyjsltVHv+6azoA6wG99YgWelJehpKJnVp2YdtpgEBr/OONSm5uTnOf5GulwEV8uSQr3zEXE94UR82BXzlxaXFYyWin7RN/CA/NW4SMgLLE6xoJI3oBqpqNlnPPAPraCHQnIEUpOho/r3oZbttKswAAA"
"cHNidP8BAF4CAAAAAZvUh2UjC/mnLmYgAflyVW5U8Mb5f+tWvLVgDYF/aZUmAQAAAAD/////AUjmBSoBAAAAIlEgAw2k/OT32yjCyylRYx4ANxOFZZf+ljiCy1AOaBEsymMAAAAAAAEBKwDyBSoBAAAAIlEgwiR++/2SrEf29AuNQtFpF1oZ+p+hDkol1/NetN2FtpJhFcFQkpt0waBJVLeLS2A16XpeB4paDyjsltVHv+6azoA6wG99YgWelJehpKJnVp2YdtpgEBr/OONSm5uTnOf5GulwEV8uSQr3zEXE94UR82BXzlxaXFYyWin7RN/CA/NW4SMgLLE6xoJI3oBqpqNlnPPAPraCHQnIEUpOho/r3oZbttKswAAA",
"cHNidP8BAHUCAAAAAQCBcTce3/KF6Tet7qSze3gADAVmy7OtZGQXE8pCFxv2AAAAAAD+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQD9pQEBAAAAAAECiaPHHqtNIOA3G7ukzGmPopXJRjr6Ljl/hTPMti+VZ+UBAAAAFxYAFL4Y0VKpsBIDna89p95PUzSe7LmF/////4b4qkOnHf8USIk6UwpyN+9rRgi7st0tAXHmOuxqSJC0AQAAABcWABT+Pp7xp0XpdNkCxDVZQ6vLNL1TU/////8CAMLrCwAAAAAZdqkUhc/xCX/Z4Ai7NK9wnGIZeziXikiIrHL++E4sAAAAF6kUM5cluiHv1irHU6m80GfWx6ajnQWHAkcwRAIgJxK+IuAnDzlPVoMR3HyppolwuAJf3TskAinwf4pfOiQCIAGLONfc0xTnNMkna9b7QPZzMlvEuqFEyADS8vAtsnZcASED0uFWdJQbrUqZY3LLh+GFbTZSYG2YVi/jnF6efkE/IQUCSDBFAiEA0SuFLYXc2WHS9fSrZgZU327tzHlMDDPOXMMJ/7X85Y0CIGczio4OFyXBl/saiK9Z9R5E5CVbIBZ8hoQDHAXR8lkqASECI7cr7vCWXRC+B3jv7NYfysb3mk6haTkzgHNEZPhPKrMAAAAAAAAA",
"cHNidP8BAHUCAAAAASaBcTce3/KF6Tet7qSze3gADAVmy7OtZGQXE8pCFxv2AAAAAgD+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQD9pQEBAAAAAAECiaPHHqtNIOA3G7ukzGmPopXJRjr6Ljl/hTPMti+VZ+UBAAAAFxYAFL4Y0VKpsBIDna89p95PUzSe7LmF/////4b4qkOnHf8USIk6UwpyN+9rRgi7st0tAXHmOuxqSJC0AQAAABcWABT+Pp7xp0XpdNkCxDVZQ6vLNL1TU/////8CAMLrCwAAAAAZdqkUhc/xCX/Z4Ai7NK9wnGIZeziXikiIrHL++E4sAAAAF6kUM5cluiHv1irHU6m80GfWx6ajnQWHAkcwRAIgJxK+IuAnDzlPVoMR3HyppolwuAJf3TskAinwf4pfOiQCIAGLONfc0xTnNMkna9b7QPZzMlvEuqFEyADS8vAtsnZcASED0uFWdJQbrUqZY3LLh+GFbTZSYG2YVi/jnF6efkE/IQUCSDBFAiEA0SuFLYXc2WHS9fSrZgZU327tzHlMDDPOXMMJ/7X85Y0CIGczio4OFyXBl/saiK9Z9R5E5CVbIBZ8hoQDHAXR8lkqASECI7cr7vCWXRC+B3jv7NYfysb3mk6haTkzgHNEZPhPKrMAAAAAAAAA"
],
"invalid_with_msg": [
[

View File

@ -0,0 +1,26 @@
#!/usr/bin/env python3
# Copyright (c) 2024 The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
"""
Test P2P behaviour during the handshake phase.
"""
from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import p2p_port
class P2PHandshakeTest(BitcoinTestFramework):
def set_test_params(self):
self.num_nodes = 1
def run_test(self):
node = self.nodes[0]
self.log.info("Check that connecting to ourself leads to immediate disconnect")
with node.assert_debug_log(["connected to self", "disconnecting"]):
node_listen_addr = f"127.0.0.1:{p2p_port(0)}"
node.addconnection(node_listen_addr, "outbound-full-relay", self.options.v2transport)
self.wait_until(lambda: len(node.getpeerinfo()) == 0)
if __name__ == '__main__':
P2PHandshakeTest().main()

View File

@ -69,6 +69,28 @@ class PSBTTest(BitcoinTestFramework):
def skip_test_if_missing_module(self):
self.skip_if_no_wallet()
def test_psbt_incomplete_after_invalid_modification(self):
self.log.info("Check that PSBT is correctly marked as incomplete after invalid modification")
node = self.nodes[2]
wallet = node.get_wallet_rpc(self.default_wallet_name)
address = wallet.getnewaddress()
wallet.sendtoaddress(address=address, amount=1.0)
self.generate(node, nblocks=1, sync_fun=lambda: self.sync_all(self.nodes[:2]))
utxos = wallet.listunspent(addresses=[address])
psbt = wallet.createpsbt([{"txid": utxos[0]["txid"], "vout": utxos[0]["vout"]}], [{wallet.getnewaddress(): 0.9999}])
signed_psbt = wallet.walletprocesspsbt(psbt)["psbt"]
# Modify the raw transaction by changing the output address, so the signature is no longer valid
signed_psbt_obj = PSBT.from_base64(signed_psbt)
substitute_addr = wallet.getnewaddress()
raw = wallet.createrawtransaction([{"txid": utxos[0]["txid"], "vout": utxos[0]["vout"]}], [{substitute_addr: 0.9999}])
signed_psbt_obj.g.map[PSBT_GLOBAL_UNSIGNED_TX] = bytes.fromhex(raw)
# Check that the walletprocesspsbt call succeeds but also recognizes that the transaction is not complete
signed_psbt_incomplete = wallet.walletprocesspsbt(signed_psbt_obj.to_base64(), finalize=False)
assert signed_psbt_incomplete["complete"] is False
def test_utxo_conversion(self):
self.log.info("Check that non-witness UTXOs are removed for segwit v1+ inputs")
mining_node = self.nodes[2]
@ -590,6 +612,7 @@ class PSBTTest(BitcoinTestFramework):
if self.options.descriptors:
self.test_utxo_conversion()
self.test_psbt_incomplete_after_invalid_modification()
self.test_input_confs_control()
@ -701,11 +724,9 @@ class PSBTTest(BitcoinTestFramework):
assert_equal(analysis['next'], 'creator')
assert_equal(analysis['error'], 'PSBT is not valid. Output amount invalid')
analysis = self.nodes[0].analyzepsbt('cHNidP8BAJoCAAAAAkvEW8NnDtdNtDpsmze+Ht2LH35IJcKv00jKAlUs21RrAwAAAAD/////S8Rbw2cO1020OmybN74e3Ysffkglwq/TSMoCVSzbVGsBAAAAAP7///8CwLYClQAAAAAWABSNJKzjaUb3uOxixsvh1GGE3fW7zQD5ApUAAAAAFgAUKNw0x8HRctAgmvoevm4u1SbN7XIAAAAAAAEAnQIAAAACczMa321tVHuN4GKWKRncycI22aX3uXgwSFUKM2orjRsBAAAAAP7///9zMxrfbW1Ue43gYpYpGdzJwjbZpfe5eDBIVQozaiuNGwAAAAAA/v///wIA+QKVAAAAABl2qRT9zXUVA8Ls5iVqynLHe5/vSe1XyYisQM0ClQAAAAAWABRmWQUcjSjghQ8/uH4Bn/zkakwLtAAAAAAAAQEfQM0ClQAAAAAWABRmWQUcjSjghQ8/uH4Bn/zkakwLtAAAAA==')
assert_equal(analysis['next'], 'creator')
assert_equal(analysis['error'], 'PSBT is not valid. Input 0 specifies invalid prevout')
assert_raises_rpc_error(-22, "TX decode failed", self.nodes[0].analyzepsbt, "cHNidP8BAJoCAAAAAkvEW8NnDtdNtDpsmze+Ht2LH35IJcKv00jKAlUs21RrAwAAAAD/////S8Rbw2cO1020OmybN74e3Ysffkglwq/TSMoCVSzbVGsBAAAAAP7///8CwLYClQAAAAAWABSNJKzjaUb3uOxixsvh1GGE3fW7zQD5ApUAAAAAFgAUKNw0x8HRctAgmvoevm4u1SbN7XIAAAAAAAEAnQIAAAACczMa321tVHuN4GKWKRncycI22aX3uXgwSFUKM2orjRsBAAAAAP7///9zMxrfbW1Ue43gYpYpGdzJwjbZpfe5eDBIVQozaiuNGwAAAAAA/v///wIA+QKVAAAAABl2qRT9zXUVA8Ls5iVqynLHe5/vSe1XyYisQM0ClQAAAAAWABRmWQUcjSjghQ8/uH4Bn/zkakwLtAAAAAAAAQEfQM0ClQAAAAAWABRmWQUcjSjghQ8/uH4Bn/zkakwLtAAAAA==")
assert_raises_rpc_error(-25, 'Inputs missing or spent', self.nodes[0].walletprocesspsbt, 'cHNidP8BAJoCAAAAAkvEW8NnDtdNtDpsmze+Ht2LH35IJcKv00jKAlUs21RrAwAAAAD/////S8Rbw2cO1020OmybN74e3Ysffkglwq/TSMoCVSzbVGsBAAAAAP7///8CwLYClQAAAAAWABSNJKzjaUb3uOxixsvh1GGE3fW7zQD5ApUAAAAAFgAUKNw0x8HRctAgmvoevm4u1SbN7XIAAAAAAAEAnQIAAAACczMa321tVHuN4GKWKRncycI22aX3uXgwSFUKM2orjRsBAAAAAP7///9zMxrfbW1Ue43gYpYpGdzJwjbZpfe5eDBIVQozaiuNGwAAAAAA/v///wIA+QKVAAAAABl2qRT9zXUVA8Ls5iVqynLHe5/vSe1XyYisQM0ClQAAAAAWABRmWQUcjSjghQ8/uH4Bn/zkakwLtAAAAAAAAQEfQM0ClQAAAAAWABRmWQUcjSjghQ8/uH4Bn/zkakwLtAAAAA==')
assert_raises_rpc_error(-22, "TX decode failed", self.nodes[0].walletprocesspsbt, "cHNidP8BAJoCAAAAAkvEW8NnDtdNtDpsmze+Ht2LH35IJcKv00jKAlUs21RrAwAAAAD/////S8Rbw2cO1020OmybN74e3Ysffkglwq/TSMoCVSzbVGsBAAAAAP7///8CwLYClQAAAAAWABSNJKzjaUb3uOxixsvh1GGE3fW7zQD5ApUAAAAAFgAUKNw0x8HRctAgmvoevm4u1SbN7XIAAAAAAAEAnQIAAAACczMa321tVHuN4GKWKRncycI22aX3uXgwSFUKM2orjRsBAAAAAP7///9zMxrfbW1Ue43gYpYpGdzJwjbZpfe5eDBIVQozaiuNGwAAAAAA/v///wIA+QKVAAAAABl2qRT9zXUVA8Ls5iVqynLHe5/vSe1XyYisQM0ClQAAAAAWABRmWQUcjSjghQ8/uH4Bn/zkakwLtAAAAAAAAQEfQM0ClQAAAAAWABRmWQUcjSjghQ8/uH4Bn/zkakwLtAAAAA==")
self.log.info("Test that we can fund psbts with external inputs specified")
@ -886,7 +907,7 @@ class PSBTTest(BitcoinTestFramework):
assert_equal(comb_psbt, psbt)
self.log.info("Test walletprocesspsbt raises if an invalid sighashtype is passed")
assert_raises_rpc_error(-8, "all is not a valid sighash parameter.", self.nodes[0].walletprocesspsbt, psbt, sighashtype="all")
assert_raises_rpc_error(-8, "'all' is not a valid sighash parameter.", self.nodes[0].walletprocesspsbt, psbt, sighashtype="all")
self.log.info("Test decoding PSBT with per-input preimage types")
# note that the decodepsbt RPC doesn't check whether preimages and hashes match
@ -992,7 +1013,7 @@ class PSBTTest(BitcoinTestFramework):
self.nodes[2].sendrawtransaction(processed_psbt['hex'])
self.log.info("Test descriptorprocesspsbt raises if an invalid sighashtype is passed")
assert_raises_rpc_error(-8, "all is not a valid sighash parameter.", self.nodes[2].descriptorprocesspsbt, psbt, [descriptor], sighashtype="all")
assert_raises_rpc_error(-8, "'all' is not a valid sighash parameter.", self.nodes[2].descriptorprocesspsbt, psbt, [descriptor], sighashtype="all")
if __name__ == '__main__':

View File

@ -124,7 +124,7 @@ class SignRawTransactionWithKeyTest(BitcoinTestFramework):
self.log.info("Test signing transaction with invalid sighashtype")
tx = self.nodes[0].createrawtransaction(INPUTS, OUTPUTS)
privkeys = [self.nodes[0].get_deterministic_priv_key().key]
assert_raises_rpc_error(-8, "all is not a valid sighash parameter.", self.nodes[0].signrawtransactionwithkey, tx, privkeys, sighashtype="all")
assert_raises_rpc_error(-8, "'all' is not a valid sighash parameter.", self.nodes[0].signrawtransactionwithkey, tx, privkeys, sighashtype="all")
def run_test(self):
self.successful_signing_test()

Some files were not shown because too many files have changed in this diff Show More