Compare commits

...

121 Commits

Author SHA1 Message Date
fanquake
a896f61290 Merge bitcoin/bitcoin#26927: [22.x] Backports
ea584a617c 23.x Add missing includes to fix gcc-13 compile error (fanquake)
c21e6a9ce2 Add missing includes to fix gcc-13 compile error (MarcoFalke)

Pull request description:

  Backports:
  * https://github.com/bitcoin/bitcoin/pull/26924

ACKs for top commit:
  instagibbs:
    ACK ea584a617c

Tree-SHA512: e231d2e3e17f884eb9eb63f2f31829cef3e64351c9d6b90abeef421c366cef228a0a87b9c3a07c840879bd514ebe33b554fb62947c13bd05806865e59323cae7
2023-02-16 15:42:48 +00:00
fanquake
ea584a617c 23.x Add missing includes to fix gcc-13 compile error
Additional include fixes are required to make the 23.x branch compile
using GCC 13.

Github-Pull: #26921
Rebased-From: af86266165
2023-01-20 12:19:25 +00:00
MarcoFalke
c21e6a9ce2 Add missing includes to fix gcc-13 compile error
Github-Pull: #26924
Rebased-From: fadeb6b103
2023-01-20 10:31:16 +00:00
fanquake
6fd35e2cb1 Merge bitcoin/bitcoin#26639: [22.x] bump version to v22.1
8cc07f7fff doc: update release notes for 22.1 (fanquake)
45355ec10b doc: update manual pages for 22.1 (fanquake)
99e0ccc742 build: bump version to 22.1 final (fanquake)

Pull request description:

  Bump version to v22.1.
  Regenerate manpages.
  Add the only change since rc2 (https://github.com/bitcoin/bitcoin/pull/26633) to the release notes. That change does not require another rc.

ACKs for top commit:
  hebasto:
    ACK 8cc07f7fff, I have reviewed the changes and they look OK.

Tree-SHA512: 1d75235e41ac64f80d3b209934460cec05af1f4ddcd426bf941316374de7dc7d909de2e3dffe9716559b9422262c39724ff330cdbb3774b856e4e6bb8a10248f
2022-12-05 15:26:10 +00:00
fanquake
8cc07f7fff doc: update release notes for 22.1 2022-12-05 09:53:20 +00:00
fanquake
45355ec10b doc: update manual pages for 22.1 2022-12-05 09:50:44 +00:00
fanquake
99e0ccc742 build: bump version to 22.1 final 2022-12-05 09:45:12 +00:00
fanquake
1b05169c32 Merge bitcoin/bitcoin#26633: depends: update qt 5.12 url to archive location
28fc72f781 depends: update qt 5.12 url to archive location (BlackcoinDev)

Pull request description:

  QT 5.12 cannot be downloaded from https://download.qt.io/official_releases/qt/ It can be access from https://download.qt.io/archive/qt/

ACKs for top commit:
  hebasto:
    ACK 28fc72f781, verified a new link.
  jarolrod:
    ACK 28fc72f781

Tree-SHA512: 8aeb34d0e0f2fc8713306ee81a4520da4149552c068102a36aaaf2575544322b43c977797aba169b57333013219fa683e651225e087696dec2d835270d4dc9b5
2022-12-05 09:32:16 +00:00
BlackcoinDev
28fc72f781 depends: update qt 5.12 url to archive location
QT 5.12 cannot be downloaded from https://download.qt.io/official_releases/qt/ It can be access from https://download.qt.io/archive/qt/
2022-12-04 13:57:03 +01:00
fanquake
9182b2fbae Merge bitcoin/bitcoin#26547: [22.x] Bump version to 22.1rc2 & add release notes
d9bd628ac9 doc: add release notes for 22.1rc2 (fanquake)
6523107698 doc: Update manual pages for 22.1rc2 (fanquake)
6af7af61c9 build: Bump version to 22.1rc2 (fanquake)

Pull request description:

  Bump the version to 22.1rc2.
  Regenerate the man pages.
  Add WIP 22.1 release notes.

  Changes since rc1:
  - https://github.com/bitcoin-core/gui/pull/631
  - https://github.com/bitcoin-core/gui/pull/680

ACKs for top commit:
  stickies-v:
    ACK [d9bd628](d9bd628ac9)
  jarolrod:
    ACK d9bd628ac9

Tree-SHA512: 70b1723fd5f77a93763ffc153b18c5d6c11c8294828406bd5e93daf9e8aac5e62306280ef6601508b4d22e1cce5136687afc826be6d159816071549849c40f91
2022-11-23 17:32:58 +00:00
fanquake
d9bd628ac9 doc: add release notes for 22.1rc2 2022-11-22 17:05:21 +00:00
fanquake
6523107698 doc: Update manual pages for 22.1rc2 2022-11-22 09:40:22 +00:00
fanquake
6af7af61c9 build: Bump version to 22.1rc2 2022-11-22 09:40:22 +00:00
fanquake
c192b86c0b Merge bitcoin/bitcoin#26521: [22.x] GUI backports
272fa25304 Fixes bitcoin#26490 by preventing notifications (John Moffett)
7b7bbc145a Disallow encryption of watchonly wallets (Andrew Chow)

Pull request description:

  Backports:
  - bitcoin-core/gui#631
  - bitcoin-core/gui#680

ACKs for top commit:
  jarolrod:
    ACK 272fa25304

Tree-SHA512: 4c285327464240ace3884d9653cc46d8e7b60b888f3b096ceb4fd5000d084ea8d97f1ef86ca1dea8dc7d3be8cdd2da19eece2b8c5b7351c5961b50b78fcd4c4d
2022-11-22 09:30:56 +00:00
John Moffett
272fa25304 Fixes bitcoin#26490 by preventing notifications
MacOS 13 sends a window focus change notification after the main
window has been destroyed but before the QTApplication has been
destroyed. This results in the menu bar receiving a notification
despite it no longer existing. The solution is to pass the main
window as context when subscribing to the notifications. Qt
automatically unsubscribes to notifications if the sender OR
context is destroyed.

Github-Pull: bitcoin-core/gui#680
Rebased-From: 8a5014cd8a
2022-11-21 10:31:31 +00:00
Andrew Chow
7b7bbc145a Disallow encryption of watchonly wallets
Watchonly wallets do not have any private keys to encrypt. It does not
make sense to encrypt such wallets, so disable the option to encrypt
them.

This avoids an assertion that can be hit when encrypting watchonly descriptor
wallets.

Github-Pull: bitcoin-core/gui#631
Rebased-From: 4c495413e1
2022-11-21 10:31:30 +00:00
MacroFake
a46e17832f Merge bitcoin/bitcoin#26430: [22.x] Bump version to 22.1.0rc1
3343ec5a4f doc: update version number in bips.md to v22.1 (fanquake)
54e89eed9e doc: Update manual pages for 22.1.0rc1 (fanquake)
b63309c58a build: Bump version to 22.1.0rc1 (fanquake)

Pull request description:

  Bump the version to 22.1rc1
  Generate the man pages.
  Update the version number in bips.md.

ACKs for top commit:
  MarcoFalke:
    Thanks, Concept ACK 3343ec5a4f

Tree-SHA512: fcfd7df493d316789072333396d6bceb77ae471e2a9ed06266d6128aa3746ac3184dcd9e9c20aecaf5c8906f82edee39a135fad9ae5c7f4c11b686e385aa3ed2
2022-11-02 08:04:55 +01:00
MacroFake
24e6b7e9e7 Merge bitcoin/bitcoin#26431: [22.x] qt: 22.1rc1 translations update
0bba3a70a1 qt: 22.1rc1 translations update (Hennadii Stepanov)

Pull request description:

  This PR pulls the recent translations from the [Transifex.com](https://www.transifex.com/bitcoin/bitcoin) using the [`bitcoin-maintainer-tools/update-translations.py`](https://github.com/bitcoin-core/bitcoin-maintainer-tools/blob/main/update-translations.py) tool.

  According to our [Release Process docs](https://github.com/bitcoin/bitcoin/blob/master/doc/release-process.md#before-every-release-candidate), it is supposed to be merged before `v22.1rc1` tagging.

  Will keep this PR updated regularly until merging.

  The `bitcoin_vi.ts` translation is damaged, therefore its changes were rejected manually.

ACKs for top commit:
  jarolrod:
    ACK 0bba3a70a1

Tree-SHA512: 85ec2eeb83d7d8dc6ea3ac5ea7da99ab127e930ab11023f69728c206483526b3b0e50058d1349bc569e23313670c67d4e66044b3577dd763d26c595756721a9b
2022-11-02 08:03:35 +01:00
Hennadii Stepanov
0bba3a70a1 qt: 22.1rc1 translations update 2022-11-01 09:18:21 +00:00
fanquake
3343ec5a4f doc: update version number in bips.md to v22.1 2022-11-01 08:54:58 +00:00
fanquake
54e89eed9e doc: Update manual pages for 22.1.0rc1 2022-11-01 08:48:19 +00:00
fanquake
b63309c58a build: Bump version to 22.1.0rc1 2022-11-01 08:48:14 +00:00
MacroFake
4ff9be5c33 Merge bitcoin/bitcoin#26413: [22.1] Backports
403de22119 rpc: add non-regression test about deriveaddresses crash when index is 2147483647 (muxator)
db20d278e2 rpc: fix crash in deriveaddresses when derivation index is 2147483647 (muxator)
d174db0f3d Adjust `.tx/config` for new Transifex CLI (Hennadii Stepanov)

Pull request description:

  Currently backports:
  * https://github.com/bitcoin/bitcoin/pull/26275
  * https://github.com/bitcoin/bitcoin/pull/26321

  Will leave open to collect backports for 22.1,

ACKs for top commit:
  MarcoFalke:
    cherry-pick ACK 403de22119  🏔

Tree-SHA512: f9095a5cad52ecb9580fcaf173a05148dce382ac773a6116e2aed47009402bdfa6cbce62e488fe96120f7a0a81a623eb3e0e4539fa88670adb8c14cf5e334fa5
2022-10-31 16:46:00 +01:00
muxator
403de22119 rpc: add non-regression test about deriveaddresses crash when index is 2147483647
This test would cause a crash in bitcoind (see #26274) if the fix given in the
previous commit was not applied.

Github-Pull: #26275
Rebased-From: 9153ff3e27
2022-10-28 11:50:52 +01:00
muxator
db20d278e2 rpc: fix crash in deriveaddresses when derivation index is 2147483647
2147483647 is the maximum positive value of a signed int32, and - currently -
the maximum value that the deriveaddresses bitcoin RPC call accepts as
derivation index due to its input validation routines.

Before this change, when the derivation index (and thus range_end) reached
std::numeric_limits<int_32_t>::max(), the "i" variable in the for cycle (which
is declared as int, and as such 32 bits in size on most platforms) would be
incremented at the end of the first iteration and then warp back to
-2147483648. This caused SIGABRT in bitcoind and a core dump.

This change assigns "i" an explicit size of 64 bits on every platform,
sidestepping the problem.

Fixes #26274.

Github-Pull: #26275
Rebased-From: addf9d6502
2022-10-28 11:49:22 +01:00
Hennadii Stepanov
d174db0f3d Adjust .tx/config for new Transifex CLI
The old Transifex Command-Line Tool is considered deprecated (as of
January 2022) and will sunset on Nov 30, 2022.

See: https://github.com/transifex/cli/blob/devel/README.md#migrating-from-older-versions-of-the-client

An accompanying PR: https://github.com/bitcoin-core/bitcoin-maintainer-tools/pull/142

Github-Pull: #26321
Rebased-From: d6adbb7ee1
2022-10-28 11:47:15 +01:00
MacroFake
6164618964 Merge bitcoin/bitcoin#26034: [22.x] Prevent data race for pathHandlers
2c6c628ab9 Prevent data race for `pathHandlers` (Hennadii Stepanov)

Pull request description:

  Backport of https://github.com/bitcoin/bitcoin/pull/25983 to the 22.x branch.

ACKs for top commit:
  dergoegge:
    ACK 2c6c628ab9

Tree-SHA512: 9b172f73407fdd5a79e67ed1b2b3b7c6e7989ea1de6757c839ee7040d62ebbd87d10770c6fcb39709a07d52345dc9b7b244ef2b490c9ad8a656ff8ad4d618a01
2022-10-24 11:46:15 +02:00
MacroFake
2d3161fdd5 Merge bitcoin/bitcoin#26350: [22.x] Revert "build: Use Homebrew's sqlite package if it is available"
63d2ee9a50 doc: remove brew install sqlite from macOS docs (fanquake)
bf42d7de56 Revert "build: Use Homebrew's sqlite package if it is available" (fanquake)

Pull request description:

  Backport of https://github.com/bitcoin/bitcoin/pull/25985 to the 22.x branch.

ACKs for top commit:
  hebasto:
    ACK 63d2ee9a50, I have reviewed the code and it looks OK, I agree it can be merged.
  stickies-v:
    re-ACK [63d2ee9](63d2ee9a50)

Tree-SHA512: 66738fc67df86db536a500fe253257976208b31773b891d6b6865b795ba4c933345febcc81773db159d3e1078810dbc8053fe63a7e9acad25b28d02dbf2687e8
2022-10-24 11:44:51 +02:00
fanquake
63d2ee9a50 doc: remove brew install sqlite from macOS docs 2022-10-24 09:35:07 +08:00
fanquake
bf42d7de56 Revert "build: Use Homebrew's sqlite package if it is available"
This reverts ee7b84e63c from #20527.
This change was made without any rationale, maybe other than a brew
installed version might be newer, and that's "better". However when
building from source on macOS, it just results in drastically worse
perofrmance, and results in issues / confusions like #25724.

Resolves the "build from source" portion of #25724. Building from
depends is still not ideal, however I have some other changes that might
help improve things in that case.

The difference in performance can be observed using the example from
https://github.com/bitcoin/bitcoin/issues/25724#issuecomment-1213554922,
but minified to only 10 descriptors. i.e:
```bash
time src/bitcoin-cli createwallet speedy true
time src/bitcoin-cli importdescriptors '[
  {"desc":"raw(00145846369f3d6ba366d6f5a903fb5cf4dca3763c0e)#k9wh6v62","timestamp":"now"},
  {"desc":"raw(001420800aabf13f3a4c4ce3ce4c66cecf1d17f21a6e)#6m0hlfh4","timestamp":"now"},
  {"desc":"raw(0014c6bf9715e06d73ebf9b3b02d5cc48d24d8bbabc1)#wyavh36r","timestamp":"now"},
  {"desc":"raw(00141ba7807b3f46af113beaea5c698428ce7138cd8a)#jctdsups","timestamp":"now"},
  {"desc":"raw(00140c1bd27f10fff01b36ddf3c1febaa1acff19b080)#9s6nc3pk","timestamp":"now"},
  {"desc":"raw(00141226e31987e4bc2e63c0ee12908f675e40464b20)#9pp7qm39","timestamp":"now"},
  {"desc":"raw(0014f73f149f7503960a5e849c6ee7a8a8c336f631cb)#qtkxv9fc","timestamp":"now"},
  {"desc":"raw(0014c8ccb4d81ffc769fc5fdd8d7eed69b0e0cae5749)#hn39qayv","timestamp":"now"},
  {"desc":"raw(001498565aead2d67a22a6021d55210f2a917fc22169)#6ar3vwsx","timestamp":"now"},
  {"desc":"raw(001403013248ac0cd9eabe176cad162cda2a19f771e1)#4m47mukd","timestamp":"now"}
]'
```

Running master, when building from souce and using brew installed
sqlite, this takes ~3.4s. With this PR, the same operation takes ~0.3s.

Github-Pull: #25985
Rebased-From: d216d714aa
2022-10-19 20:37:52 +08:00
Hennadii Stepanov
2c6c628ab9 Prevent data race for pathHandlers
Github-Pull: bitcoin/bitcoin#25983
Rebased-From: 4296dde287
2022-09-07 12:26:05 +02:00
laanwj
cfb0eea91e Merge bitcoin/bitcoin#25317: 22.x Backport new Windows code signing certificate
c4aacfbf65 windeploy: Renewed windows code signing certificate (Andrew Chow)

Pull request description:

  Backports:
  - https://github.com/bitcoin/bitcoin/pull/25201

ACKs for top commit:
  LarryRuane:
    utACK c4aacfbf65

Tree-SHA512: cce6c85cecf0014e0b123b42e454db2123becf02f4274b1c355f69d8e7b8f77cd12af86adc251da8146b7bd3a55e9f47e3c1ed12f70c5267b3ac3283634526ec
2022-06-10 13:25:48 +02:00
Andrew Chow
c4aacfbf65 windeploy: Renewed windows code signing certificate
Github-Pull: #25201
Rebased-From: 7e9fe6d800
2022-06-09 12:30:51 +01:00
MacroFake
d2e0c27e45 Merge bitcoin/bitcoin#25250: [22.x] test: replace hashlib.ripemd160 with an own implementation
ea3e028bcc Swap out hashlib.ripemd160 for own implementation (Pieter Wuille)
52036915fa Add pure Python RIPEMD-160 (Pieter Wuille)

Pull request description:

  Needed to unbreak the tsan CI task, which runs the test on Ubuntu Jammy, which has ripemd160 removed from openssl.

ACKs for top commit:
  fanquake:
    ACK ea3e028bcc - backport looks correct. tsan job has [timed out](https://github.com/bitcoin/bitcoin/pull/25250/checks?check_run_id=6657882409).

Tree-SHA512: 1117567c5de8287d6c4ada5cdc5990116808da9349f5aa3633c01b7aa12ea0ae6208418c7082e46dfde584b43807dce5ade5e8850cc392e1e0d42d9897a70017
2022-05-31 09:42:42 +02:00
laanwj
34cb63e895 Merge bitcoin/bitcoin#25242: [22.x] rpc: Capture potentially large UniValue by ref for rpcdoccheck
7fcac96597 rpc: Capture potentially large UniValue by ref for rpcdoccheck (Martin Zumsande)

Pull request description:

ACKs for top commit:
  fanquake:
    ACK 7fcac96597

Tree-SHA512: e1e321ce49f5696d1b08d4a9cf77bdc90bdeedbe776d19fe13443d898b966c046593d20758376db4edb5baf17cb925a2ff21201889af977456c18cc43094a683
2022-05-30 19:48:10 +02:00
Pieter Wuille
ea3e028bcc Swap out hashlib.ripemd160 for own implementation
Github-Pull: 23716
Rebased-From: 5b559dc7ec
2022-05-30 17:40:08 +02:00
Pieter Wuille
52036915fa Add pure Python RIPEMD-160
Github-Pull: 23716
Rebased-From: ad3e9e1f21
2022-05-30 17:40:07 +02:00
Martin Zumsande
7fcac96597 rpc: Capture potentially large UniValue by ref for rpcdoccheck
Github-Pull: 25237
Rebased-From: 20ff4991e5
2022-05-30 10:46:02 +02:00
laanwj
04fdd644b4 Merge bitcoin/bitcoin#25180: [22.x] qt: Avoid crash on startup if int specified in settings.json
344537cf04 qt: Avoid crash on startup if int specified in settings.json (Ryan Ofsky)

Pull request description:

  Backport of #24498 to 22.x branch

  This was already backported to the 23.x branch in #24511, but vasild discovered the issue can affect 22.x as well https://github.com/bitcoin/bitcoin/pull/15936#issuecomment-1115992866:

  > While testing this, 22.x crashes if `settings.json` contains `"prune": 1234` due to #24498 which was fixed in 23.0. So, if this PR is included in 24.x and a user upgrades to 24.x and then downgrades to 22.x his 22.x would crash at startup.

  It's not very important to backport this to 22.x because I can work around the issue other ways, but I do see 22.x is listed as an active branch https://github.com/bitcoin/bitcoin/branches, so if there is another 22.x release, it would be nice to have this fix and not have a wonky uncaught univalue exception waiting to be hit

ACKs for top commit:
  laanwj:
    ACK 344537cf04

Tree-SHA512: 479f7fb4b4b73ec85f28e97af9b21d54245b8ab4d246e50134b37f1726fe3c57cf388fe4973f8ccf1b9efa7663166d1fbeb631758b39d4490b5eab82d0c83d77
2022-05-25 12:48:17 +02:00
Ryan Ofsky
344537cf04 qt: Avoid crash on startup if int specified in settings.json
Fix GUI startup crash reported by Rspigler in
https://github.com/bitcoin/bitcoin/issues/24457 that happens if
settings.json contains an integer value for any of the configuration
options which GUI settings can currently clash with (-dbcache, -par,
-spendzeroconfchange, -signer, -upnp, -natpmp, -listen, -server, -proxy,
-proxy, -onion, -onion, -lang, and -prune).

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

Github-Pull: bitcoin/bitcoin#24498
Rebased-From: 5b1aae12ca
2022-05-20 13:24:56 -04:00
fanquake
cb13ba6d11 Merge bitcoin/bitcoin#24476: [22.x] fs: Make compatible with boost 1.78
021c3d892f fs: Make compatible with boost 1.78 (Andrew Chow)

Pull request description:

  Backports #24104 to the `22.x` branch to fix the build with Boost 1.78.0.

ACKs for top commit:
  achow101:
    ACK 021c3d892f
  gruve-p:
    ACK 021c3d892f
  hebasto:
    ACK 021c3d892f

Tree-SHA512: 439c463c36b15a8507d58c3d9c6a02f6dfb209bcc85a8ed39a9cc3fe023530f9f74cc3fd545710b0bb15b4ff6afae802471c6819db7cd851dddd537938e0eef5
2022-03-07 09:40:11 +00:00
Andrew Chow
021c3d892f fs: Make compatible with boost 1.78
Github-Pull: #24104
Rebased-From: dc5d6b0d47
2022-03-05 15:58:05 +00:00
fanquake
9b5f674abb Merge bitcoin/bitcoin#23276: [22.x] Backports for 22.x
269553fe73 test: Call ceildiv helper with integer (Martin Zumsande)
2f60fc6d8c ci: Replace soon EOL hirsute with jammy (MarcoFalke)
801b0f05aa build: patch qt to explicitly define previously implicit header include (Kittywhiskers Van Gogh)
c768bfa08a tests: Calculate fees more similarly to CFeeRate::GetFee (Andrew Chow)
f66bc42957 tests: Test for assertion when feerate is rounded down (Andrew Chow)
bd7e08e36b fees: Always round up fee calculated from a feerate (Andrew Chow)
227ae65254 wallet: fix segfault by avoiding invalid default-ctored `external_spk_managers` entry (Sebastian Falbesoner)
282863a7e9 refactor: include a missing <limits> header in fs.cpp (Joan Karadimov)
7febe4f3c7 consensus: don't call GetBlockPos in ReadBlockFromDisk without lock (Jon Atack)
c671c6f470 the result of CWallet::IsHDEnabled() was initialized with true. (Saibato)
a5a1538826 build, qt: Fix typo in QtInputSupport check (Hennadii Stepanov)
c95b188fc0 system: skip trying to set the locale on NetBSD (fanquake)
c1cdeddd90 guix: Fix powerpc64(le) dynamic linker name (Carl Dong)
92d44ff36c doc: Add 23061 release notes (MarcoFalke)
db76db7329 Fix (inverse) meaning of -persistmempool (MarcoFalke)
85c78e08ec build: Restrict check for CRC32C intrinsic to aarch64 (W. J. van der Laan)

Pull request description:

  Collecting backports for the 22.1 release. Currently:
  * https://github.com/bitcoin/bitcoin/pull/23045
  * https://github.com/bitcoin/bitcoin/pull/23061
  * https://github.com/bitcoin/bitcoin/pull/23148
  * https://github.com/bitcoin/bitcoin/pull/22390
  * https://github.com/bitcoin/bitcoin/pull/22820
  * https://github.com/bitcoin/bitcoin/pull/22781
  * https://github.com/bitcoin/bitcoin/pull/22895
  * https://github.com/bitcoin/bitcoin/pull/23335
  * https://github.com/bitcoin/bitcoin/pull/23333
  * https://github.com/bitcoin/bitcoin/pull/22949
  * https://github.com/bitcoin/bitcoin/pull/23580
  * https://github.com/bitcoin/bitcoin/pull/23504
  * https://github.com/bitcoin/bitcoin/pull/24239

ACKs for top commit:
  achow101:
    ACK 269553fe73

Tree-SHA512: b3a57ea241be7a83488eeb032276f4cf82a0987aada906a82f94a20c4acf9f2397708249dcecbe1c7575e70d09c60b835233d4718af4013c7bc58896c618274c
2022-03-01 13:40:11 +00:00
Martin Zumsande
269553fe73 test: Call ceildiv helper with integer
It returns an incorrect result when called with a Decimal,
for which the "//" operator works differently.
Also drop unnecessary call to satoshi_round.

Github-Pull: #24239
Rebased-From: d1fab9d5d2
2022-02-15 09:22:06 +00:00
MarcoFalke
2f60fc6d8c ci: Replace soon EOL hirsute with jammy
Github-Pull: #23504
Rebased-From: fafa66e424
2022-02-15 09:22:06 +00:00
Kittywhiskers Van Gogh
801b0f05aa build: patch qt to explicitly define previously implicit header include
macOS Monterey has refactored some includes such that implicitly defined headers were no longer exposed and that in turns breaks building Qt on macOS 12.

Additional Resources:
 - https://bugreports.qt.io/browse/QTBUG-97855
 - https://codereview.qt-project.org/c/qt/qtbase/+/378706
 - https://code.qt.io/cgit/qt/qtbase.git/commit/src/plugins/platforms/cocoa?id=dece6f5840463ae2ddf927d65eb1b3680e34a547

Github-Pull: #23580
Rebased-From: 8196b0a2bc
2022-02-15 09:22:06 +00:00
Andrew Chow
c768bfa08a tests: Calculate fees more similarly to CFeeRate::GetFee
Because of floating point precision issues, not all of the rounding done
is always correct. To fix this, the fee calculation for
assert_fee_amount is changed to better reflect how CFeeRate::GetFee does
it.

First the feerate is converted to an int representing sat/kvb. Then this
is multiplied by the transaction size, divivided by 1000, and rounded up
to the nearest sat. The result is then converted back to BTC (divided by
1e8) and then rounded down to the nearest sat to avoid precision errors.

Github-Pull: #22949
Rebased-From: 80dc829be7
2022-02-15 09:22:06 +00:00
Andrew Chow
f66bc42957 tests: Test for assertion when feerate is rounded down
When calculating a txs absolute fee, if the fee is rounded down to the
nearest satoshi, it is possible for the coin selection algorithms to
undercalculate the fee needed. This can lead to an assertion error in
some situations. One such scenario is added to
rpc_fundrawtransaction.py.

Github-Pull: #22949
Rebased-From: ce2cc44afd
2022-02-15 09:22:06 +00:00
Andrew Chow
bd7e08e36b fees: Always round up fee calculated from a feerate
When calculating the fee for a given tx size from a fee rate, we should
always round up to the next satoshi. Otherwise, if we round down (via
truncation), the calculated fee may result in a fee with a feerate
slightly less than targeted.

This is particularly important for coin selection as a slightly lower
feerate than expected can result in a variety of issues.

Github-Pull: #22949
Rebased-From: 0fbaef9676
2022-02-15 09:22:06 +00:00
Sebastian Falbesoner
227ae65254 wallet: fix segfault by avoiding invalid default-ctored external_spk_managers entry
In the method `CWallet::LoadActiveScriptPubKeyMan`, the map
`external_spk_managers` (or `internal_spk_managers`, if parameter
`internal` is false) is accessed via std::map::operator[], which means
that a default-ctored entry is created with a null-pointer as value, if
the key doesn't exist.  As soon as this value is dereferenced, a
segmentation fault occurs, e.g. in `CWallet::KeypoolCountExternalKeys`.

The bevaviour can be reproduced by the following steps (starting with empty regtest datadir):

$ ./src/bitcoind -regtest -daemon
$ ./src/bitcoin-cli -regtest -named createwallet_name=wallet descriptors=true blank=true
$ cat regtest-descriptors.txt
[
  {
    "desc": "tr([e4445899/49'/1'/0']tprv8ZgxMBicQKsPd8jCeBWsYLEoWxbVgzJDatJ7XkwQ6G3uF4FsHuaziHQ5JZAW4K515nj6kVVwPaNWZSMEcR7aFCwL4tQqTcaoprMKTTtm6Zg/1/*)#mr3llm7f",
    "timestamp": 1634652324,
    "active": true,
    "internal": true,
    "range": [
      0,
      999
    ],
    "next": 0
  }
]
$ ./src/bitcoin-cli -regtest importdescriptors "$(cat regtest-descriptors.txt)"
[
  {
    "success": true
  }
]
$ ./src/bitcoin-cli -regtest getwalletinfo
error: timeout on transient error: Could not connect to the server 127.0.0.1:18443 (error code 1 - "EOF reached")

Bug reported by Josef Vondrlik (josef-v).

Github-Pull: #23333
Rebased-From: 6911ab95f1
2022-02-15 09:22:05 +00:00
Joan Karadimov
282863a7e9 refactor: include a missing <limits> header in fs.cpp
... needed for std::numeric_limits<T>::max on WIN32

Github-Pull: #23335
Rebased-From: 077a875d94
2022-02-15 09:22:05 +00:00
Jon Atack
7febe4f3c7 consensus: don't call GetBlockPos in ReadBlockFromDisk without lock
Github-Pull: #22895
Rebased-From: 350e034e64
2022-02-15 09:22:05 +00:00
Saibato
c671c6f470 the result of CWallet::IsHDEnabled() was initialized with true.
But in case of no keys or a blank hd wallet the iterator would be skipped
and not set to false but true, since the loop would be not entered.

That had resulted in a wrong return and subsequent false HD and watch-only
icon display in gui when reloading a wallet after closing.

Update src/wallet/wallet.cpp

Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>

Github-Pull: #22781
Rebased-From: 8733a8e84c
2022-02-15 09:22:05 +00:00
Hennadii Stepanov
a5a1538826 build, qt: Fix typo in QtInputSupport check
Github-Pull: #22820
Rebased-From: e251726aff
2022-02-15 09:22:05 +00:00
fanquake
c95b188fc0 system: skip trying to set the locale on NetBSD
Just treat it the same as the other BSDs.

Fixes #17379.

Github-Pull: #22390
Rebased-From: fdd71448e7
2022-02-15 09:22:04 +00:00
Carl Dong
c1cdeddd90 guix: Fix powerpc64(le) dynamic linker name
I used Guix's values for the powerpc64(le) dynamic linkers, and the
/lib-prefix seems to be a Guix-ism rather than standard. The standard
path for the linker-loaders start with /lib64.

I've taken the new loader values from SYSDEP_KNOWN_INTERPRETER_NAMES in
glibc's sysdeps/unix/sysv/linux/powerpc/ldconfig.h file.

For future reference, loader path values can also be found on glibc's
website: https://sourceware.org/glibc/wiki/ABIList?action=recall&rev=16

Github-Pull: #23148
Rebased-From: b96adcbfae
2022-02-15 09:22:04 +00:00
MarcoFalke
92d44ff36c doc: Add 23061 release notes
Github-Pull: #23061
Rebased-From: faa9c19a4b
2022-02-15 09:22:04 +00:00
MarcoFalke
db76db7329 Fix (inverse) meaning of -persistmempool
Github-Pull: #23061
Rebased-From: faff17bbde
2022-02-15 09:22:04 +00:00
W. J. van der Laan
85c78e08ec build: Restrict check for CRC32C intrinsic to aarch64
`crc32c`'s hardware accelerated code doesn't handle ARM 32-bit at all.
Make the check in `configure.ac` check for this architecture explicitly.

For the release binaries, the current `configure.ac` check happens
to work: it enables it on aarch64 but disables it for armhf. However
some combination of compiler version and settings might ostensibly cause
this check to succeed on armhf (as reported on IRC). So make the 64-bit
platform requirement explicit.

Github-Pull: #23045
Rebased-From: f2747d1602
2022-02-15 09:22:04 +00:00
fanquake
eff9709723 Merge bitcoin/bitcoin#24256: [22.x] build: Bump depends packages (zmq, libXau)
d34691ce0c ci: Use dash when building depends in centos build (MarcoFalke)
b5d12edb08 ci: Bump CentOS 8 image (MarcoFalke)
685ac6ad2e build: fix depends zeromq dash compatibility (fanquake)
4b92a6b42c build: libXau 1.0.9 (fanquake)

Pull request description:

  Backports #24212 to the 22.x branch. Included a bump to libXau and an additional commit for zeromq to fix dash compatibility.

ACKs for top commit:
  hebasto:
    ACK d34691ce0c

Tree-SHA512: 862b819df6d74cfb0499d1f1040cfbf70dc4449108521466ff22db48b942949fec5c5e93d5f652109f228eac8e60413830f7c22b3879a0bd2441a60b87470972
2022-02-15 09:20:17 +00:00
MarcoFalke
d34691ce0c ci: Use dash when building depends in centos build
Github-Pull: #24212
Rebased-From: fafc55a489
2022-02-14 16:54:36 +00:00
MarcoFalke
b5d12edb08 ci: Bump CentOS 8 image
Github-Pull: #24212
Rebased-From: fa5457e64a
2022-02-14 16:54:36 +00:00
fanquake
685ac6ad2e build: fix depends zeromq dash compatibility
Picks upstream commit 9a397666d28ca5f3c0d8233be3d39b2206555f45 to fix
dash compatibility. This fixes building zeromq in our CentOS 8 CI. This
is my preferred fix over backporting a zeromq update (which would
contain this change).
2022-02-14 16:54:31 +00:00
fanquake
4b92a6b42c build: libXau 1.0.9
Github-Pull: #23489
Rebased-From: fc65127244
2022-02-09 09:57:27 +00:00
fanquake
a06915dece Merge bitcoin/bitcoin#24215: [22.x] guix: ignore additional failing certvalidator test
b7ecef1ddf guix: ignore additioanl failing certvalidator test (fanquake)

Pull request description:

  Backports 8588591965 from #24057 so that from-scratch Guix builds for the Darwin host aren't broken due to a (very recently) expired certificate causing one of the python-certvalidator tests to fail. Kept separate from #23276 because that hasn't gotten review attention, and I don't think we should leave `22.x` Darwin Guix builds broken for any longer than we have to.

  Fixes #24110.

  ```bash
  ======================================================================
  ERROR: test_revocation_mode_soft (tests.test_validate.ValidateTests)
  ----------------------------------------------------------------------
  Traceback (most recent call last):
    File "/tmp/guix-build-python-certvalidator-0.1-1.e5bdb4b.drv-0/source/tests/test_validate.py", line 85, in test_revocation_mode_soft
      validate_path(context, path)
    File "/tmp/guix-build-python-certvalidator-0.1-1.e5bdb4b.drv-0/source/tests/../certvalidator/validate.py", line 50, in validate_path
      return _validate_path(validation_context, path)
    File "/tmp/guix-build-python-certvalidator-0.1-1.e5bdb4b.drv-0/source/tests/../certvalidator/validate.py", line 358, in _validate_path
      raise PathValidationError(pretty_message(
  certvalidator.errors.PathValidationError: The path could not be validated because the end-entity certificate expired 2022-01-14 12:00:00Z
  ```

  Guix Build:
  ```bash
  bash-5.1# find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
  359755bffecc64b4c005c5cdee3824190f6b1759dbc6c20034476dcc06413959  guix-build-b7ecef1ddf0c/output/dist-archive/bitcoin-b7ecef1ddf0c.tar.gz
  0c6700270ec75991d70a97cad77e22cc00553f812edb56c1bac5ef6421f963e1  guix-build-b7ecef1ddf0c/output/x86_64-apple-darwin/SHA256SUMS.part
  87d4637a87959a304422550edf87feda3953d7305894154a6a2d413cc0dd2034  guix-build-b7ecef1ddf0c/output/x86_64-apple-darwin/bitcoin-b7ecef1ddf0c-osx-unsigned.dmg
  9cabae32689bd5f93e7faaaf341827f1c4069a63ab6f74276564e47819343b6c  guix-build-b7ecef1ddf0c/output/x86_64-apple-darwin/bitcoin-b7ecef1ddf0c-osx-unsigned.tar.gz
  bb5fb113bc022a305e49783d0ba48be90aca61e4a942beeb45206dbc5b91ca6e  guix-build-b7ecef1ddf0c/output/x86_64-apple-darwin/bitcoin-b7ecef1ddf0c-x86_64-apple-darwin.tar.gz
  ```

ACKs for top commit:
  MarcoFalke:
    Concept ACK b7ecef1ddf

Tree-SHA512: 8f761fece405b3b974b9f42ab4ebf8995d3284ce7bfb0556ff8459e1a7d30f8bd2f407cb5651e9fa1094c493148bba7a8918a251b54a83efe12acfaf3d39f350
2022-02-09 09:38:26 +00:00
fanquake
b7ecef1ddf guix: ignore additioanl failing certvalidator test
======================================================================
ERROR: test_revocation_mode_soft (tests.test_validate.ValidateTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/guix-build-python-certvalidator-0.1-1.e5bdb4b.drv-0/source/tests/test_validate.py", line 85, in test_revocation_mode_soft
    validate_path(context, path)
  File "/tmp/guix-build-python-certvalidator-0.1-1.e5bdb4b.drv-0/source/tests/../certvalidator/validate.py", line 50, in validate_path
    return _validate_path(validation_context, path)
  File "/tmp/guix-build-python-certvalidator-0.1-1.e5bdb4b.drv-0/source/tests/../certvalidator/validate.py", line 358, in _validate_path
    raise PathValidationError(pretty_message(
certvalidator.errors.PathValidationError: The path could not be validated because the end-entity certificate expired 2022-01-14 12:00:00Z

Github-Pull: #24057
Rebased-From: 8588591965
2022-01-31 16:32:59 +08:00
MarcoFalke
56156a1f08 Merge bitcoin/bitcoin#23315: [22.x] build: explicitly disable libsecp256k1 openssl based tests
e959b46aa9 build: explicitly disable libsecp256k1 openssl based tests (fanquake)

Pull request description:

  Backport of #23314

  These tests are failing when run against OpenSSL 3, and have been
  removed upstream, bitcoin-core/secp256k1#983, so
  disabled them for now to avoid `make check` failures.

  Note that this will also remove warning output from our build, due to
  the use of deprecated OpenSSL API functions. See #23048.

Top commit has no ACKs.

Tree-SHA512: ab3213dc82e7a64a005ce237710009bb447dee2702c4c02245e70df62063a00add73c4e80e9c619ce57345d4a2808fd4dc08e2e02a319b0f3d9285b8b0056599
2021-10-21 09:21:31 +02:00
fanquake
e959b46aa9 build: explicitly disable libsecp256k1 openssl based tests
These tests are failing when run against OpenSSL 3, and have been
removed upstream, https://github.com/bitcoin-core/secp256k1/pull/983, so
disabled them for now to avoid `make check` failures.

Note that this will also remove warning output from our build, due to
the use of deprecated OpenSSL API functions. See #23048.

Github-Pull: #23314
Rebased-From: d7524546ab
2021-10-21 07:50:24 +08:00
MarcoFalke
12b315484d Merge bitcoin/bitcoin#23275: [22.x] Add historical & clean out 22.0 rel notess
dff22619ff doc: clean out release-notes.md (fanquake)
405f58140d doc: Add historical release notes for 22.0 (W. J. van der Laan)

Pull request description:

  Cleans out `release-notes.md`, and adds release notes for 22.0.

ACKs for top commit:
  MarcoFalke:
    cr ACK dff22619ff

Tree-SHA512: bfcfb8a4f6c5d572d9c91380f141141a5dd88936fa4c282c3dc93568b06a5fbca178f7e4b0dd5c0a24d6c2ef56242fd2012896186d04e3ea7666112386341a1b
2021-10-14 15:47:40 +02:00
fanquake
dff22619ff doc: clean out release-notes.md 2021-10-14 10:38:26 +08:00
W. J. van der Laan
405f58140d doc: Add historical release notes for 22.0
Github-Pull: #22971
Rebased-From: c88f43f1ac
2021-10-14 10:34:09 +08:00
W. J. van der Laan
a0988140b7 Merge bitcoin/bitcoin#22921: Some small improvements to release notes
9f9ffe5bb0 Some small improvements to release notes (Pieter Wuille)

Pull request description:

  .

ACKs for top commit:
  laanwj:
    ACK 9f9ffe5bb0
  dongcarl:
    ACK 9f9ffe5bb0

Tree-SHA512: 63ff574eb1c5e7b5f2ac4fc99d3352d2de7fa05ccd0abbe58fcc0720b139ace05c855a6cf46ab7a5537b3f0792442d98dc155c3f3ee7bfd1127fe08f5fb01be5
2021-09-08 20:16:07 +02:00
Pieter Wuille
9f9ffe5bb0 Some small improvements to release notes 2021-09-08 13:49:11 -04:00
W. J. van der Laan
f75615ebdd doc: Manual pages update for 22.0 final
Tree-SHA512: 689698e7208782d9c7a6d926e9510b0e49223ee01f3fd878ae1b9b1d1f770e590982113e3c0f238046d65c5ddd7683ad357c7ebabc177bc8be9c7ec484c2944c
2021-09-08 17:21:09 +02:00
W. J. van der Laan
afbee409ba build: Bump version to 22.0 final
Tree-SHA512: c9280b1b19e6874ebdde89b6ab98933c56834cc0d74b98a420349cd93f96f526768e42b2e1e1d820c39f2f8b137bbeab72fc221d5ddb7f315c545675ee68e851
2021-09-08 17:20:58 +02:00
W. J. van der Laan
03f1422786 Merge bitcoin/bitcoin#22857: [22.x] Backports
303bc8a069 guix/prelude: Override VERSION with FORCE_VERSION (Carl Dong)
0640bf5c82 doc: mention bech32m/BIP350 in doc/descriptors.md (Pieter Wuille)

Pull request description:

  Backports:
  * #22847 - guix/prelude: Override VERSION with FORCE_VERSION
  * #22837 - doc: mention bech32m/BIP350 in doc/descriptors.md

  Theses are both minor enough that they would not require and rc4.

ACKs for top commit:
  laanwj:
    ACK 303bc8a069

Tree-SHA512: faac095f71abb537f1d2a338e4f79f8389be2362eec0841e3fb47aaee731ce242856db461f89351c2ca4e1129a3afdd49c3e918a7bf22af3e4d2f7deaff48ad8
2021-09-08 17:20:00 +02:00
W. J. van der Laan
fbf498d26b Merge bitcoin/bitcoin#22920: doc: Move 22.0 release notes from wiki
d447972417 doc: Move 22.0 release notes from wiki (W. J. van der Laan)

Pull request description:

  Reintroduce the release notes back into the branch for 22.0 final.

Top commit has no ACKs.

Tree-SHA512: ef2065a43db657a1351bcce18fe59a5eb5ee009da5739fdc077654696cd0e822546981df492924d61c74d2f2a276d7768c2cf0e57402befa8bd4d11c8e9b8fc5
2021-09-08 17:05:07 +02:00
W. J. van der Laan
d447972417 doc: Move 22.0 release notes from wiki
Co-authored-by: Andrew Chow <achow101-github@achow101.com>
Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Co-authored-by: Jon Atack <jon@atack.com>
Co-authored-by: MarcoFalke <falke.marco@gmail.com>
Co-authored-by: Michael Folkson <michaelfolkson@gmail.com>
Co-authored-by: Pieter Wuille <github-sipa@wuille.net>
Co-authored-by: Sjors Provoost <sjors@sprovoost.nl>
Co-authored-by: Vasil Dimov <vd@freebsd.org>
2021-09-08 16:49:54 +02:00
Carl Dong
303bc8a069 guix/prelude: Override VERSION with FORCE_VERSION
Previously, if the builder exported $VERSION in their environment (as
past Gitian-building docs told them to), but their HEAD does not
actually point to v$VERSION, their build outputs will differ from those
of other builders.

This is because the contrib/guix/guix-* scripts only ever act on the
current git worktree, and does not try to check out $VERSION if $VERSION
is set in the environment.

Setting $VERSION only makes the scripts pretend like the current
worktree is $VERSION.

This problem was seen in jonatack's attestation for all.SHA256SUMS,
where only his bitcoin-22.0rc3-osx-signed.dmg differed from everyone
else's.

Here is my deduced sequence of events:

1. Aug 27th: He guix-builds 22.0rc3 and uploads his attestations up to
   guix.sigs

2. Aug 30th, sometime after POSIX time 1630310848: he pulls the latest
   changes from master in the same worktree where he guix-built 22.0rc3
   and ends up at 7be143a960

3. Aug 30th, sometime before POSIX time 1630315907: With his worktree
   still on 7be143a960, he guix-codesigns. Normally, this would result
   in outputs going in guix-build-7be143a960e2, but he had
   VERSION=22.0rc3 in his environment, so the guix-* scripts pretended
   like he was building 22.0rc3, and used 22.0rc3's guix-build directory
   to locate un-codesigned outputs and dump codesigned ones.

   However, our SOURCE_DATE_EPOCH defaults to the POSIX time of HEAD
   (7be143a960), which made all timestamps in the resulting codesigned
   DMG 1630310848, 7be143a960e2's POSIX timestamp. This differs from the
   POSIX timestamp of 22.0rc3, which is 1630348517. Note that the
   windows codesigning procedure does not consider SOURCE_DATE_EPOCH.

We resolve this by only allowing VERSION overrides via the FORCE_VERSION
environment variable.

Github-Pull: #22847
Rebased-From: 96cc6bb04f
2021-09-02 09:37:40 +08:00
Pieter Wuille
0640bf5c82 doc: mention bech32m/BIP350 in doc/descriptors.md
Github-Pull: #22837
Rebased-From: d2a09c8355
2021-09-02 09:37:01 +08:00
W. J. van der Laan
86de56776a doc: Manual pages update for rc3
Tree-SHA512: b8e2fa79fc6e46e74ebfe725fcdf12432167de9547138721e1d545426c52935e8f58f15fb4f7bfda9f11b02b17f77633238b5d0e883fd3362dc62b0ef4197a3c
2021-08-26 14:56:12 +02:00
W. J. van der Laan
c1c79f4c81 doc: Stop nixing - in manual pages
The version replacement here is not working anyway, not just that but it
is actively harmful as it removes all `-` from the text. So remove that
line. See discussion in #22681.

Tree-SHA512: 909c6225a50bbda1253bae65c09700a658bd36b5c91c91cea28d1df0aad5dc4adb095e0695259eca377536da34d17741ce453a5c5c50041d1163d94bbbe5355d
2021-08-26 14:51:31 +02:00
Jon Atack
f95b655ba9 Improve doc/i2p.md regarding I2P router options/versions
Github-Pull: bitcoin/bitcoin#22648
Rebased-From: b87a9c4d13

Tree-SHA512: 3567e6dbfb7c3f410ea84d3f005c86be0283f92e1be1bc2a7ce93240a0b8460b985b3cec5873a19eade52dc1d78ca383c99e023d0bb4247048ae7e43b47522a5
2021-08-26 14:43:41 +02:00
W. J. van der Laan
59d4afc272 build: Bump version to 22.0rc3
Tree-SHA512: 7e8c32d7b784329236090e09bb6c5f8ee7a64f46cfc136dae97d4838239292e94b28cfd429f56eaaddc1a23ebf33218b1b4396e126fe6cf60938f1909aaaf66e
2021-08-26 14:31:29 +02:00
W. J. van der Laan
99cd080db1 Merge bitcoin/bitcoin#22667: [22.x] qt: Pre-rc3 translations update
aa254a01c1 qt: Pre-rc3 translations update (Hennadii Stepanov)

Pull request description:

  A regularly updated PR with new translations fetched from Transifex.com.

ACKs for top commit:
  laanwj:
    Sanity-check (did not review any specific translations) ACK aa254a01c1

Tree-SHA512: bb380b1afb8af7895ac2de5ccdf489b9a73b6d47334d5eb5608370034795c064b5978106814ada96aaa5abd45a04901e6fd749bddc23149fb4a11dd4e6efe846
2021-08-26 14:29:13 +02:00
W. J. van der Laan
4a25e39624 Merge bitcoin/bitcoin#22629: [22.x] rc3 backports
32e1424f84 Fix build with Boost 1.77.0 (Rafael Sadowski)
cb34a0aafe qt: Handle new added plurals in bitcoin_en.ts (Hennadii Stepanov)
068985c02e doc: Mention the flat directory structure for uploads (Andrew Chow)
27d43e5bd4 guix: Don't include directory name in SHA256SUMS (Andrew Chow)
88fb7e37ad test: fix bug in 22686 (S3RK)
63fec7e295 clientversion: No suffix #if CLIENT_VERSION_IS_RELEASE (Carl Dong)
dfaffbeb63 test: Test for ApproximateBestSubset edge case with too little fees (Andrew Chow)
e86b023606 wallet: Assert that enough was selected to cover the fees (Andrew Chow)
ffc81e2048 wallet: Use GetSelectionAmount for target value calculations (Andrew Chow)
ce77b45a1f release: Release with separate SHA256SUMS and sig files (Carl Dong)
cb491bd5a7 guix-verify: Non-zero exit code when anything fails (Carl Dong)
6a611d2e3c gui: ensure external signer option remains disabled without signers (Andrew Chow)
e9b4487684 qt: Fix regression in "Encrypt Wallet" menu item (Hennadii Stepanov)
57fce067a3 consensus/params: simplify ValidDeployment check to avoid gcc warning (Anthony Towns)
e9d30fbb3a ci: Run fuzzer task for the master branch only (Hennadii Stepanov)

Pull request description:

  Backported:

  1) #22730
  1) https://github.com/bitcoin-core/gui/pull/393
  1) #22597
  1) https://github.com/bitcoin-core/gui/pull/396
  1) #22643
  1) #22642
  1) #22685
  1) #22686
  1) #22654
  1) #22742
  1) https://github.com/bitcoin-core/gui/pull/406
  1) #22713

ACKs for top commit:
  laanwj:
    Code list-of-backported-PRs review ACK 32e1424f84

Tree-SHA512: f5e2dd1be6cdcd39368eeb5d297b3ff4418d0bf2e70c90e59ab4ba1dbf16f773045d877b4997511de58c3aca75a978dcf043e338bad23951557e2a27ccc845f6
2021-08-26 14:26:01 +02:00
Rafael Sadowski
32e1424f84 Fix build with Boost 1.77.0
BOOST_FILESYSTEM_C_STR changed to accept the path as an argument

Github-Pull: bitcoin/bitcoin#22713
Rebased-From: acb7aad27e
2021-08-26 14:49:42 +03:00
Hennadii Stepanov
cb34a0aafe qt: Handle new added plurals in bitcoin_en.ts
This step was missed. See translation_process.md

Github-Pull: bitcoin-core/gui#406
Rebased-From: 2b3d8f3dde
2021-08-23 22:43:21 +03:00
Hennadii Stepanov
aa254a01c1 qt: Pre-rc3 translations update 2021-08-23 19:23:41 +03:00
Andrew Chow
068985c02e doc: Mention the flat directory structure for uploads
The uploaded binaries need to match the same flat directory structure of
the SHA256SUMS file in order for torrent downloaders to be able to
verify the download without moving files. Mention this in the release
process doc.

Github-Pull: bitcoin/bitcoin#22654
Rebased-From: 132cae44f2
2021-08-20 10:36:49 +03:00
Andrew Chow
27d43e5bd4 guix: Don't include directory name in SHA256SUMS
The SHA256SUMS file can be used in a sha256sum -c command to verify
downloaded binaries. However users are likely to download just a single
file and not place this file in the correct directory relative to the
SHA256SUMS file for the simple verification command to work. By not
including the directory name in the SHA256SUMS file, it will be easier
for users to verify downloaded binaries.

Co-authored-by: Carl Dong <contact@carldong.me>

Github-Pull: bitcoin/bitcoin#22654
Rebased-From: fb17c99e35
2021-08-20 10:36:48 +03:00
S3RK
88fb7e37ad test: fix bug in 22686
Github-Pull: bitcoin/bitcoin#22742
Rebased-From: 8dcbbbea64
2021-08-20 10:36:47 +03:00
Carl Dong
63fec7e295 clientversion: No suffix #if CLIENT_VERSION_IS_RELEASE
Previously, building from a release source tarball would result in a
version string like v22.0.0-<commithash>, but we expect just v22.0.0.
This commit solves this problem.

Also use PACKAGE_VERSION instead of reconstructing it.

Github-Pull: bitcoin/bitcoin#22685
Rebased-From: 5100deee58
2021-08-20 10:36:47 +03:00
Andrew Chow
dfaffbeb63 test: Test for ApproximateBestSubset edge case with too little fees
ApproximateBestSubset had an edge case (due to not using
GetSelectionAmount) where it was possible for it to return success but
fail to select enough to cover transaction fees. A test is added that
could trigger this failure prior to the fix being implemented.

Github-Pull: bitcoin/bitcoin#22686
Rebased-From: 92885c4f69
2021-08-20 10:36:46 +03:00
Andrew Chow
e86b023606 wallet: Assert that enough was selected to cover the fees
When the fee is not subtracted from the outputs, the amount that has
been reserved for the fee (change_and_fee - change_amount) must be
enough to cover the fee that is needed. It would be a bug to not do so,
so use an assert to make this obvious if such a situation were to occur.

Github-Pull: bitcoin/bitcoin#22686
Rebased-From: d9262324e8
2021-08-20 10:36:45 +03:00
Andrew Chow
ffc81e2048 wallet: Use GetSelectionAmount for target value calculations
For target value calculations, GetSelectionAmount should be used, not
m_effective_value or m_value.

Specifically, ApproximateBestSubset mistakenly uses m_value when
calculating whether the target value has been met. This has been changed
to use GetSelectionAmount.

Github-Pull: bitcoin/bitcoin#22686
Rebased-From: 2de222c401
2021-08-20 10:36:44 +03:00
Carl Dong
ce77b45a1f release: Release with separate SHA256SUMS and sig files
This allows us to remove the rfc4880 EOL hacks and release with a
SHA256SUMS.asc file that's a combination of all signer signatures.

Github-Pull: bitcoin/bitcoin#22642
Rebased-From: 90b3e482e9
2021-08-20 10:36:44 +03:00
Carl Dong
cb491bd5a7 guix-verify: Non-zero exit code when anything fails
Previously, if verification fails, the correct message will be printed,
but the exit code would still be 0.

Github-Pull: bitcoin/bitcoin#22643
Rebased-From: d451b60d22
2021-08-20 10:36:43 +03:00
Andrew Chow
6a611d2e3c gui: ensure external signer option remains disabled without signers
When no external signers are available, the option to enable external
signers should always be disabled. However the encrypt wallet checkbox
can erroneously re-enable the external signer checkbox. To avoid this,
CreateWalletDialog now stores whether signers were available during
setSigners so that future calls to external_signer_checkbox->setEnabled
can account for whether signers are available.

Github-Pull: bitcoin-core/gui#396
Rebased-From: a9b9ca82da
2021-08-20 10:36:42 +03:00
Hennadii Stepanov
e9b4487684 qt: Fix regression in "Encrypt Wallet" menu item
Adding a new item to the m_wallet_selector must follow the establishment
of signal-slot connections.

Github-Pull: bitcoin-core/gui#393
Rebased-From: d54d949598
2021-08-20 10:36:42 +03:00
Anthony Towns
57fce067a3 consensus/params: simplify ValidDeployment check to avoid gcc warning
Github-Pull: bitcoin/bitcoin#22597
Rebased-From: 059171009b
2021-08-20 10:36:41 +03:00
Hennadii Stepanov
e9d30fbb3a ci: Run fuzzer task for the master branch only
Github-Pull: bitcoin/bitcoin#22730
Rebased-From: 5a9e255e5a
2021-08-20 10:35:41 +03:00
W. J. van der Laan
d3bd5410f6 doc: Manual pages update for 22.0rc2
Tree-SHA512: 361c6efdd21396ebf4358195e91bde81e7f7414e7022efc4d4a10da7cf3df7ce8cdadd277237921fdde9bae4b811d69d95fec56c010b823324ca69b40b966d41
2021-08-11 13:43:13 +02:00
W. J. van der Laan
873fbc745d build: Bump RC to rc2
Tree-SHA512: 2e9db22da514b0ef4456f46524762420730cdd3c160a4012ca9d736d18d01abd2403b0ce800743b1f92212937436fe849b1c1b07bed0e3ad9f61165be55b7958
2021-08-02 15:41:13 +02:00
W. J. van der Laan
04222235a4 Merge bitcoin/bitcoin#22534: [22.x] rc2 backports
739d19053b doc: add info to i2p.md about IBD time and multiple networks (Jon Atack)
cc8838ce98 contrib, p2p: update I2P hardcoded seeds (Jon Atack)
cd57bb1a66 guix: Ensure EPOCH_SOURCE_DATE does not include GPG information (Andrew Chow)
219900a123 guix: Remove extra \r from all.SHA256SUMS line ending (Andrew Chow)
38d18c01e2 guix, doc: Add a note that codesigners need to rebuild after tagging (Andrew Chow)
aa9b6aba03 guix: Allow changing the base manifest in guix-verify (Andrew Chow)
056e47d887 guix: Make all.SHA256SUMS rather than codesigned.SHA256SUMS (Andrew Chow)
8f1e3b31b2 script, doc: guix touchups (jonatack)
3bbfc1b8e0 Updated Readme, Corrected the codesign typo (h)
34f9f88bc9 guix/build: Remove vestigial SKIPATTEST.TAG (Carl Dong)
9e52a30ebd guix/INSTALL: Misc fixups (Carl Dong)
45e0f3d608 guix: Silence getent(1) invocation (Carl Dong)

Pull request description:

  Currently backports #22511. We can collect up further backports and merge prior to rc2.

ACKs for top commit:
  laanwj:
    ACK 739d19053b

Tree-SHA512: 8fc795ee56b7757ff405636a2811bd606ea33ba1160f3f1ea42e0e1478ce8211bb60bf7b16a673b932db40a24b76d47c54e703bf2775d3b9385d9b080183b433
2021-08-02 15:38:51 +02:00
W. J. van der Laan
d7a3c7082d Merge bitcoin/bitcoin#22536: [22.x] qt: Pre-rc2 translations update
2d3fcf5760 qt: Pre-rc2 translations update (Hennadii Stepanov)

Pull request description:

  Since 6312b8370c translations are still updating everyday.

  I'm going to keep this PR updated until the moment just before tagging rc2, when it is expected to be merged.

  Hope this will make life of both translators and release maintainers a bit easier :)

Top commit has no ACKs.

Tree-SHA512: d2c44f3900ee313cfce24edaed30a08dbe340e5ecc627301bc3cc7162ddebe6c0403351ce0bf056395ab14e55908de1609f5e6e8183d3405bed86416888cb32d
2021-08-02 15:30:55 +02:00
Jon Atack
739d19053b doc: add info to i2p.md about IBD time and multiple networks
Github-Pull: #22589
Rebased-From: d2dffd5be4
2021-08-02 19:59:23 +08:00
Jon Atack
cc8838ce98 contrib, p2p: update I2P hardcoded seeds
Github-Pull: #22589
Rebased-From: 2962640c49
2021-08-02 19:59:07 +08:00
Hennadii Stepanov
2d3fcf5760 qt: Pre-rc2 translations update 2021-07-31 12:57:21 +03:00
Andrew Chow
cd57bb1a66 guix: Ensure EPOCH_SOURCE_DATE does not include GPG information
If the user has set log.showSignature=true in their git config, then the
git log will always output GPG signature information. Since git log is
used to set EPOCH_SOURCE_DATE, this will mistakenly have GPG signature
information in it which causes issues for the build. To avoid this
issue, we override the config and force log.showSignature=false.

Github-Pull: #22531
Rebased-From: 9b313dfef1
2021-07-29 11:16:36 +08:00
Andrew Chow
219900a123 guix: Remove extra \r from all.SHA256SUMS line ending
guix-attest mistakenly added an extra \r to the line endings in
all.SHA256SUMS, causing guix-verify to erroneously fail.

Co-Authored-By: Carl Dong <contact@carldong.me>

Github-Pull: #22531
Rebased-From: 43225f0a2a
2021-07-29 11:16:05 +08:00
Andrew Chow
38d18c01e2 guix, doc: Add a note that codesigners need to rebuild after tagging
One of the issues observed during the 22.0rc1 release process was that a
codesigner's attestation mismatched non-codesigner attestations because
the guix-codesign step was performed prior to tagging the version in
bitcoin-detached-sigs.

Github-Pull: #22531
Rebased-From: d080c27066
2021-07-29 11:15:29 +08:00
Andrew Chow
aa9b6aba03 guix: Allow changing the base manifest in guix-verify
When verifying guix attestations, it is useful to set a particular
signer's manifest as the base to compare against.

Github-Pull: #22531
Rebased-From: 4a466388a0
2021-07-29 11:14:54 +08:00
Andrew Chow
056e47d887 guix: Make all.SHA256SUMS rather than codesigned.SHA256SUMS
Github-Pull: #22531
Rebased-From: 33455c7696
2021-07-29 11:14:20 +08:00
jonatack
8f1e3b31b2 script, doc: guix touchups
Github-Pull: #22538
Rebased-From: 198ceb82f9
2021-07-29 11:05:48 +08:00
h
3bbfc1b8e0 Updated Readme, Corrected the codesign typo
Github-Pull: #22538
Rebased-From: d7b7f610a5
2021-07-29 11:04:59 +08:00
Carl Dong
34f9f88bc9 guix/build: Remove vestigial SKIPATTEST.TAG
Github-Pull: #22533
Rebased-From: 9f01feda0a
2021-07-23 14:09:16 +08:00
Carl Dong
9e52a30ebd guix/INSTALL: Misc fixups
Github-Pull: #22511
Rebased-From: a884a1edcd
2021-07-23 09:11:54 +08:00
Carl Dong
45e0f3d608 guix: Silence getent(1) invocation
Github-Pull: #22511
Rebased-From: 3c4d2c418e
2021-07-23 09:11:35 +08:00
W. J. van der Laan
6312b8370c qt: Pre-rc2 translations update
We forgot this for rc1. Thanks to Hebasto for fixing the import script.

Tree-SHA512: 127d0989dabf95867f4542e7f3134ef5d5045418b1411582772d60759e16a5090e30c83bffbbc44b2a496ba830a66bdb0d8ba0d2def43f3462a4f15edf64953a
2021-07-21 14:09:23 +02:00
W. J. van der Laan
f277b1782c build: Bump version to 22.0.0rc1
Tree-SHA512: 1bc98f4a6d15d8f810fa6d2ee26c495a8da08dff3efd3d2ec6bbc6bd8091751a21436efc39f04fb68c5279312644ff9a63bcbc3c4df02e0bf89cd1cd8473bac5
2021-07-20 15:25:24 +02:00
182 changed files with 101753 additions and 96668 deletions

View File

@@ -105,7 +105,7 @@ task:
name: '32-bit + dash [gui] [CentOS 8]'
<< : *GLOBAL_TASK_TEMPLATE
container:
image: centos:8
image: quay.io/centos/centos:stream8
env:
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
PACKAGE_MANAGER_INSTALL: "yum install -y"
@@ -122,10 +122,10 @@ task:
FILE_ENV: "./ci/test/00_setup_env_native_qt5.sh"
task:
name: '[depends, sanitizers: thread (TSan), no gui] [hirsute]'
name: '[depends, sanitizers: thread (TSan), no gui] [jammy]'
<< : *GLOBAL_TASK_TEMPLATE
container:
image: ubuntu:hirsute
image: ubuntu:jammy
cpu: 6 # Increase CPU and Memory to avoid timeout
memory: 24G
env:
@@ -143,16 +143,17 @@ task:
FILE_ENV: "./ci/test/00_setup_env_native_msan.sh"
task:
name: '[no depends, sanitizers: address/leak (ASan + LSan) + undefined (UBSan) + integer] [hirsute]'
name: '[no depends, sanitizers: address/leak (ASan + LSan) + undefined (UBSan) + integer] [jammy]'
<< : *GLOBAL_TASK_TEMPLATE
container:
image: ubuntu:hirsute
image: ubuntu:jammy
env:
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
FILE_ENV: "./ci/test/00_setup_env_native_asan.sh"
task:
name: '[no depends, sanitizers: fuzzer,address,undefined,integer] [focal]'
only_if: $CIRRUS_BRANCH == $CIRRUS_DEFAULT_BRANCH || $CIRRUS_BASE_BRANCH == $CIRRUS_DEFAULT_BRANCH
<< : *GLOBAL_TASK_TEMPLATE
container:
image: ubuntu:focal

View File

@@ -1,7 +1,7 @@
[main]
host = https://www.transifex.com
[bitcoin.qt-translation-022x]
[o:bitcoin:p:bitcoin:r:qt-translation-022x]
file_filter = src/qt/locale/bitcoin_<lang>.xlf
source_file = src/qt/locale/bitcoin_en.xlf
source_lang = en

View File

@@ -350,7 +350,7 @@ AC_DEFUN([_BITCOIN_QT_CHECK_STATIC_LIBS], [
PKG_CHECK_MODULES([QT_FONTDATABASE], [${qt_lib_prefix}FontDatabaseSupport${qt_lib_suffix}], [QT_LIBS="$QT_FONTDATABASE_LIBS $QT_LIBS"])
PKG_CHECK_MODULES([QT_THEME], [${qt_lib_prefix}ThemeSupport${qt_lib_suffix}], [QT_LIBS="$QT_THEME_LIBS $QT_LIBS"])
if test "x$TARGET_OS" = xlinux; then
PKG_CHECK_MODULES([QT_INPUT], [${qt_lib_prefix}XcbQpa], [QT_LIBS="$QT_INPUT_LIBS $QT_LIBS"])
PKG_CHECK_MODULES([QT_INPUT], [${qt_lib_prefix}InputSupport], [QT_LIBS="$QT_INPUT_LIBS $QT_LIBS"])
PKG_CHECK_MODULES([QT_SERVICE], [${qt_lib_prefix}ServiceSupport], [QT_LIBS="$QT_SERVICE_LIBS $QT_LIBS"])
PKG_CHECK_MODULES([QT_XCBQPA], [${qt_lib_prefix}XcbQpa], [QT_LIBS="$QT_XCBQPA_LIBS $QT_LIBS"])
elif test "x$TARGET_OS" = xdarwin; then

View File

@@ -12,13 +12,13 @@
#define CLIENT_VERSION_BUILD 0
/* Version is release */
#define CLIENT_VERSION_IS_RELEASE false
#define CLIENT_VERSION_IS_RELEASE true
/* Major version */
#define CLIENT_VERSION_MAJOR 21
#define CLIENT_VERSION_MAJOR 22
/* Minor version */
#define CLIENT_VERSION_MINOR 99
#define CLIENT_VERSION_MINOR 0
/* Copyright holder(s) before %s replacement */
#define COPYRIGHT_HOLDERS "The %s developers"
@@ -30,7 +30,7 @@
#define COPYRIGHT_HOLDERS_SUBSTITUTION "Bitcoin Core"
/* Copyright year */
#define COPYRIGHT_YEAR 2019
#define COPYRIGHT_YEAR 2021
/* Define to 1 to enable wallet functions */
#define ENABLE_WALLET 1
@@ -254,7 +254,7 @@
#define PACKAGE_NAME "Bitcoin Core"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "Bitcoin Core 21.99.0"
#define PACKAGE_STRING "Bitcoin Core 22.0.0"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "bitcoin"
@@ -263,7 +263,7 @@
#define PACKAGE_URL "https://bitcoincore.org/"
/* Define to the version of this package. */
#define PACKAGE_VERSION "21.99.0"
#define PACKAGE_VERSION "22.0.0"
/* Define to necessary symbol if this constant uses a non-standard name on
your system. */

View File

@@ -7,9 +7,9 @@
export LC_ALL=C.UTF-8
export HOST=i686-pc-linux-gnu
export CONTAINER_NAME=ci_i686_centos_8
export DOCKER_NAME_TAG=centos:8
export DOCKER_PACKAGES="gcc-c++ glibc-devel.x86_64 libstdc++-devel.x86_64 glibc-devel.i686 libstdc++-devel.i686 ccache libtool make git python3 python3-zmq which patch lbzip2 dash rsync coreutils bison"
export CONTAINER_NAME=ci_i686_centos
export DOCKER_NAME_TAG=quay.io/centos/centos:stream8
export DOCKER_PACKAGES="gcc-c++ glibc-devel.x86_64 libstdc++-devel.x86_64 glibc-devel.i686 libstdc++-devel.i686 ccache libtool make git python3 python3-zmq which patch lbzip2 xz procps-ng dash rsync coreutils bison"
export GOAL="install"
export BITCOIN_CONFIG="--enable-zmq --with-gui=qt5 --enable-reduce-exports"
export CONFIG_SHELL="/bin/dash"

View File

@@ -8,7 +8,7 @@ export LC_ALL=C.UTF-8
export CONTAINER_NAME=ci_native_asan
export PACKAGES="clang llvm python3-zmq qtbase5-dev qttools5-dev-tools libevent-dev bsdmainutils libboost-dev libboost-system-dev libboost-filesystem-dev libboost-test-dev libdb5.3++-dev libminiupnpc-dev libnatpmp-dev libzmq3-dev libqrencode-dev libsqlite3-dev"
export DOCKER_NAME_TAG=ubuntu:hirsute
export DOCKER_NAME_TAG=ubuntu:22.04
export NO_DEPENDS=1
export GOAL="install"
export BITCOIN_CONFIG="--enable-zmq --with-incompatible-bdb --with-gui=qt5 CPPFLAGS='-DARENA_DEBUG -DDEBUG_LOCKORDER' --with-sanitizers=address,integer,undefined CC=clang CXX=clang++"

View File

@@ -7,7 +7,7 @@
export LC_ALL=C.UTF-8
export CONTAINER_NAME=ci_native_tsan
export DOCKER_NAME_TAG=ubuntu:hirsute
export DOCKER_NAME_TAG=ubuntu:22.04
export PACKAGES="clang llvm libc++abi-dev libc++-dev python3-zmq"
export DEP_OPTS="CC=clang CXX='clang++ -stdlib=libc++'"
export GOAL="install"

View File

@@ -62,7 +62,7 @@ if [ -n "$DPKG_ADD_ARCH" ]; then
DOCKER_EXEC dpkg --add-architecture "$DPKG_ADD_ARCH"
fi
if [[ $DOCKER_NAME_TAG == centos* ]]; then
if [[ $DOCKER_NAME_TAG == *centos* ]]; then
${CI_RETRY_EXE} DOCKER_EXEC dnf -y install epel-release
${CI_RETRY_EXE} DOCKER_EXEC dnf -y --allowerasing install $DOCKER_PACKAGES $PACKAGES
elif [ "$CI_USE_APT_INSTALL" != "no" ]; then

View File

@@ -45,11 +45,11 @@ if [[ $HOST = *-mingw32 ]]; then
DOCKER_EXEC update-alternatives --set $HOST-g++ \$\(which $HOST-g++-posix\)
fi
if [ -z "$NO_DEPENDS" ]; then
if [[ $DOCKER_NAME_TAG == centos* ]]; then
if [[ $DOCKER_NAME_TAG == *centos* ]]; then
# CentOS has problems building the depends if the config shell is not explicitly set
# (i.e. for libevent a Makefile with an empty SHELL variable is generated, leading to
# an error as the first command is executed)
SHELL_OPTS="LC_ALL=en_US.UTF-8 CONFIG_SHELL=/bin/bash"
SHELL_OPTS="LC_ALL=en_US.UTF-8 CONFIG_SHELL=/bin/dash"
else
SHELL_OPTS="CONFIG_SHELL="
fi

View File

@@ -1,9 +1,9 @@
AC_PREREQ([2.69])
define(_CLIENT_VERSION_MAJOR, 21)
define(_CLIENT_VERSION_MINOR, 99)
define(_CLIENT_VERSION_MAJOR, 22)
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, 2021)
define(_COPYRIGHT_HOLDERS,[The %s developers])
define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Bitcoin Core]])
@@ -568,13 +568,17 @@ AX_CHECK_COMPILE_FLAG([-march=armv8-a+crc+crypto],[[ARM_CRC_CXXFLAGS="-march=arm
TEMP_CXXFLAGS="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS $ARM_CRC_CXXFLAGS"
AC_MSG_CHECKING(for ARM CRC32 intrinsics)
AC_MSG_CHECKING(for AArch64 CRC32 intrinsics)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <arm_acle.h>
#include <arm_neon.h>
]],[[
#ifdef __aarch64__
__crc32cb(0, 0); __crc32ch(0, 0); __crc32cw(0, 0); __crc32cd(0, 0);
vmull_p64(0, 0);
#else
#error "crc32c library does not support hardware acceleration on 32-bit ARM"
#endif
]])],
[ AC_MSG_RESULT(yes); enable_arm_crc=yes; ],
[ AC_MSG_RESULT(no)]
@@ -692,10 +696,6 @@ case $host in
BDB_LIBS="-L$bdb_prefix/lib -ldb_cxx-4.8"
fi
if test "x$use_sqlite" != xno && $BREW list --versions sqlite3 >/dev/null; then
export PKG_CONFIG_PATH="$($BREW --prefix sqlite3 2>/dev/null)/lib/pkgconfig:$PKG_CONFIG_PATH"
fi
if $BREW list --versions qt5 >/dev/null; then
export PKG_CONFIG_PATH="$($BREW --prefix qt5 2>/dev/null)/lib/pkgconfig:$PKG_CONFIG_PATH"
fi
@@ -1894,7 +1894,7 @@ if test x$need_bundled_univalue = xyes; then
AC_CONFIG_SUBDIRS([src/univalue])
fi
ac_configure_args="${ac_configure_args} --disable-shared --with-pic --enable-benchmark=no --enable-module-recovery --enable-module-schnorrsig --enable-experimental"
ac_configure_args="${ac_configure_args} --disable-shared --with-pic --enable-benchmark=no --enable-module-recovery --enable-module-schnorrsig --enable-experimental --disable-openssl-tests"
AC_CONFIG_SUBDIRS([src/secp256k1])
AC_OUTPUT

View File

@@ -47,7 +47,6 @@ $BITCOIND --version | sed -n '1!p' >> footer.h2m
for cmd in $BITCOIND $BITCOINCLI $BITCOINTX $WALLET_TOOL $BITCOINUTIL $BITCOINQT; do
cmdname="${cmd##*/}"
help2man -N --version-string=${BTCVER[0]} --include=footer.h2m -o ${MANDIR}/${cmdname}.1 ${cmd}
sed -i "s/\\\-${BTCVER[1]}//g" ${MANDIR}/${cmdname}.1
done
rm -f footer.h2m

View File

@@ -79,8 +79,8 @@ Guix v1.2.0 is available as a distribution package starting in [Debian
21.04](https://packages.ubuntu.com/hirsute/guix).
Note that if you intend on using Guix without using any substitutes (more
details [here][security-model]), v1.2.0 has a known problems when building
GnuTLS from source. Solutions and workarounds are documented
details [here][security-model]), v1.2.0 has a known problem when building GnuTLS
from source. Solutions and workarounds are documented
[here](#gnutls-test-suite-fail-status-request-revoked).
@@ -124,7 +124,7 @@ particular commit of Guix). Previous experience with using autotools-style build
systems to build packages from source will be helpful. *hic sunt dracones.*
I strongly urge you to at least skim through the entire section once before you
start issuing commands, as it will save you a lot of unncessary pain and
start issuing commands, as it will save you a lot of unnecessary pain and
anguish.
### Installing common build tools
@@ -165,7 +165,7 @@ packaged and installable without manually building and installing.
For reference, the graphic below outlines Guix v1.3.0's dependency graph:
![boostrap map](https://user-images.githubusercontent.com/6399679/125064185-a9a59880-e0b0-11eb-82c1-9b8e5dc9950d.png)
![bootstrap map](https://user-images.githubusercontent.com/6399679/125064185-a9a59880-e0b0-11eb-82c1-9b8e5dc9950d.png)
#### Guile
@@ -270,23 +270,11 @@ Note that these environment variables are used to check for packages during
`./configure`, so they should be set as soon as possible should you want to use
a prefix other than `/usr`.
<!-- ##### Example: Consistently using Guile 3.0 on Ubuntu -->
<!-- For example, on Ubuntu, if you choose to use Guile 3.0 and install the -->
<!-- `guile-3.0` package, you want to make sure that if you also want to install the -->
<!-- `guile-git` package with `apt` that said `guile-git` package was built for Guile -->
<!-- v3.0. This can be checked by invoking the following: -->
<!-- ``` -->
<!-- apt update -->
<!-- apt show guile-git -->
<!-- ``` -->
#### Building and installing source-built packages
***IMPORTANT**: A few dependencies have non-obvious quirks/erratas which are documented in the
sub-sections immediately below. Please read these sections before proceeding to
build and install these packages.*
***IMPORTANT**: A few dependencies have non-obvious quirks/errata which are
documented in the sub-sections immediately below. Please read these sections
before proceeding to build and install these packages.*
Although you should always refer to the README or INSTALL files for the most
accurate information, most of these dependencies use autoconf-style build

View File

@@ -11,7 +11,7 @@ We achieve bootstrappability by using Guix as a functional package manager.
# Requirements
Conservatively, a x86_64 machine with:
Conservatively, you will need an x86_64 machine with:
- 16GB of free disk space on the partition that /gnu/store will reside in
- 8GB of free disk space **per platform triple** you're planning on building
@@ -87,7 +87,7 @@ crucial differences:
An invocation with all default options would look like:
```
env DETACHED_SIGS_REPO=<path/to/bitcoin-detached-sigs> ./contrib/guix-codesign
env DETACHED_SIGS_REPO=<path/to/bitcoin-detached-sigs> ./contrib/guix/guix-codesign
```
## Cleaning intermediate work directories
@@ -437,9 +437,8 @@ In the extraordinarily rare case where you messed up your Guix installation in
an irreversible way, you may want to completely purge Guix from your system and
start over.
1. Uninstall Guix itself according to the way you installed it. (e.g. `sudo apt
purge guix` for Ubuntu packaging, `sudo make uninstall` for
built-from-source).
1. Uninstall Guix itself according to the way you installed it (e.g. `sudo apt
purge guix` for Ubuntu packaging, `sudo make uninstall` for a build from source).
2. Remove all build users and groups
You may check for relevant users and groups using:

View File

@@ -159,23 +159,21 @@ Hint: You may wish to remove the existing attestations and their signatures by
EOF
}
# Given a document with unix line endings (just <LF>) in stdin, make all lines
# end in <CR><LF> and make sure there's no trailing <LF> at the end of the file.
#
# This is necessary as cleartext signatures are calculated on text after their
# line endings are canonicalized.
#
# For more information:
# 1. https://security.stackexchange.com/a/104261
# 2. https://datatracker.ietf.org/doc/html/rfc4880#section-7.1
#
rfc4880_normalize_document() {
sed 's/$/\r/' | head -c -2
}
echo "Attesting to build outputs for version: '${VERSION}'"
echo ""
# Given a SHA256SUMS file as stdin that has lines like:
# 0ba536819b221a91d3d42e978be016aac918f40984754d74058aa0c921cd3ea6 a/b/d/c/d/s/bitcoin-22.0rc2-riscv64-linux-gnu.tar.gz
# ...
#
# Replace each line's file name with its basename:
# 0ba536819b221a91d3d42e978be016aac918f40984754d74058aa0c921cd3ea6 bitcoin-22.0rc2-riscv64-linux-gnu.tar.gz
# ...
#
basenameify_SHA256SUMS() {
sed -E 's@(^[[:xdigit:]]{64}[[:space:]]+).+/([^/]+$)@\1\2@'
}
outsigdir="$GUIX_SIGS_REPO/$VERSION/$signer_name"
mkdir -p "$outsigdir"
(
@@ -188,7 +186,7 @@ mkdir -p "$outsigdir"
cat "${noncodesigned_fragments[@]}" \
| sort -u \
| sort -k2 \
| rfc4880_normalize_document \
| basenameify_SHA256SUMS \
> "$temp_noncodesigned"
if [ -e noncodesigned.SHA256SUMS ]; then
# The SHA256SUMS already exists, make sure it's exactly what we
@@ -207,8 +205,8 @@ mkdir -p "$outsigdir"
exit 1
fi
temp_codesigned="$(mktemp)"
trap 'rm -rf -- "$temp_codesigned"' EXIT
temp_all="$(mktemp)"
trap 'rm -rf -- "$temp_all"' EXIT
if (( ${#codesigned_fragments[@]} )); then
# Note: all.SHA256SUMS attests to all of $sha256sum_fragments, but is
@@ -216,20 +214,19 @@ mkdir -p "$outsigdir"
cat "${sha256sum_fragments[@]}" \
| sort -u \
| sort -k2 \
| sed 's/$/\r/' \
| rfc4880_normalize_document \
> "$temp_codesigned"
if [ -e codesigned.SHA256SUMS ]; then
| basenameify_SHA256SUMS \
> "$temp_all"
if [ -e all.SHA256SUMS ]; then
# The SHA256SUMS already exists, make sure it's exactly what we
# expect, error out if not
if diff -u all.SHA256SUMS "$temp_codesigned"; then
if diff -u all.SHA256SUMS "$temp_all"; then
echo "An all.SHA256SUMS file already exists for '${VERSION}' and is up-to-date."
else
shasum_already_exists all.SHA256SUMS
exit 1
fi
else
mv "$temp_codesigned" codesigned.SHA256SUMS
mv "$temp_all" all.SHA256SUMS
fi
else
# It is fine to have the codesigned outputs be missing (perhaps the

View File

@@ -190,7 +190,7 @@ fi
# Services database must have basic entries
################
if ! getent services http https ftp; then
if ! getent services http https ftp > /dev/null 2>&1; then
cat << EOF
ERR: Your system's C library can not find service database entries for at least
one of the following services: http, https, ftp.
@@ -232,7 +232,7 @@ host_to_commonname() {
}
# Determine the reference time used for determinism (overridable by environment)
SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH:-$(git log --format=%at -1)}"
SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH:-$(git -c log.showSignature=false log --format=%at -1)}"
# Execute "$@" in a pinned, possibly older version of Guix, for reproducibility
# across time.

View File

@@ -220,7 +220,7 @@ fi
JOBS="${JOBS:-$(nproc)}"
# Determine the reference time used for determinism (overridable by environment)
SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH:-$(git log --format=%at -1)}"
SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH:-$(git -c log.showSignature=false log --format=%at -1)}"
# Execute "$@" in a pinned, possibly older version of Guix, for reproducibility
# across time.

View File

@@ -28,7 +28,11 @@ cmd_usage() {
cat <<EOF
Synopsis:
env GUIX_SIGS_REPO=<path/to/guix.sigs> ./contrib/guix/guix-verify
env GUIX_SIGS_REPO=<path/to/guix.sigs> [ SIGNER=<signer> ] ./contrib/guix/guix-verify
Example overriding signer's manifest to use as base
env GUIX_SIGS_REPO=/home/dongcarl/guix.sigs SIGNER=achow101 ./contrib/guix/guix-verify
EOF
}
@@ -73,11 +77,13 @@ verify() {
echo ""
echo "Hint: Either the signature is invalid or the public key is missing"
echo ""
failure=1
elif ! diff --report-identical "$compare_manifest" "$current_manifest" 1>&2; then
echo "ERR: The SHA256SUMS attestation in these two directories differ:"
echo " '${compare_manifest}'"
echo " '${current_manifest}'"
echo ""
failure=1
else
echo "Verified: '${current_manifest}'"
echo ""
@@ -92,6 +98,17 @@ echo "--------------------"
echo ""
if (( ${#all_noncodesigned[@]} )); then
compare_noncodesigned="${all_noncodesigned[0]}"
if [[ -n "$SIGNER" ]]; then
signer_noncodesigned="$OUTSIGDIR_BASE/$SIGNER/noncodesigned.SHA256SUMS"
if [[ -f "$signer_noncodesigned" ]]; then
echo "Using $SIGNER's manifest as the base to compare against"
compare_noncodesigned="$signer_noncodesigned"
else
echo "Unable to find $SIGNER's manifest, using the first one found"
fi
else
echo "No SIGNER provided, using the first manifest found"
fi
for current_manifest in "${all_noncodesigned[@]}"; do
verify "$compare_noncodesigned" "$current_manifest"
@@ -112,6 +129,17 @@ echo "--------------------"
echo ""
if (( ${#all_all[@]} )); then
compare_all="${all_all[0]}"
if [[ -n "$SIGNER" ]]; then
signer_all="$OUTSIGDIR_BASE/$SIGNER/all.SHA256SUMS"
if [[ -f "$signer_all" ]]; then
echo "Using $SIGNER's manifest as the base to compare against"
compare_all="$signer_all"
else
echo "Unable to find $SIGNER's manifest, using the first one found"
fi
else
echo "No SIGNER provided, using the first manifest found"
fi
for current_manifest in "${all_all[@]}"; do
verify "$compare_all" "$current_manifest"
@@ -140,3 +168,7 @@ if (( ${#all_noncodesigned[@]} + ${#all_all[@]} == 0 )); then
echo ""
exit 1
fi
if [ -n "$failure" ]; then
exit 1
fi

View File

@@ -169,8 +169,8 @@ case "$HOST" in
arm-linux-gnueabihf) echo /lib/ld-linux-armhf.so.3 ;;
aarch64-linux-gnu) echo /lib/ld-linux-aarch64.so.1 ;;
riscv64-linux-gnu) echo /lib/ld-linux-riscv64-lp64d.so.1 ;;
powerpc64-linux-gnu) echo /lib/ld64.so.1;;
powerpc64le-linux-gnu) echo /lib/ld64.so.2;;
powerpc64-linux-gnu) echo /lib64/ld64.so.1;;
powerpc64le-linux-gnu) echo /lib64/ld64.so.2;;
*) exit 1 ;;
esac
)
@@ -227,7 +227,6 @@ GIT_ARCHIVE="${DIST_ARCHIVE_BASE}/${DISTNAME}.tar.gz"
# Create the source tarball if not already there
if [ ! -e "$GIT_ARCHIVE" ]; then
mkdir -p "$(dirname "$GIT_ARCHIVE")"
touch "${DIST_ARCHIVE_BASE}"/SKIPATTEST.TAG
git archive --prefix="${DISTNAME}/" --output="$GIT_ARCHIVE" HEAD
fi

View File

@@ -49,7 +49,7 @@ fi
# Set common variables
################
VERSION="${VERSION:-$(git_head_version)}"
VERSION="${FORCE_VERSION:-$(git_head_version)}"
DISTNAME="${DISTNAME:-bitcoin-${VERSION}}"
version_base_prefix="${PWD}/guix-build-"

View File

@@ -449,6 +449,11 @@ PKCS#8, PKCS#12, PKCS#5, X.509 and TSP.")
(string-append indent
"@unittest.skip(\"Disabled by Guix\")\n"
line)))
(substitute* "tests/test_validate.py"
(("^(.*)def test_revocation_mode_soft" line indent)
(string-append indent
"@unittest.skip(\"Disabled by Guix\")\n"
line)))
#t))
(replace 'check
(lambda _

View File

@@ -677,12 +677,20 @@ tddeij4qigtjr6jfnrmq6btnirmq5msgwcsdpcdjr7atftm7cxlqztid.onion:8333
vi5bnbxkleeqi6hfccjochnn65lcxlfqs4uwgmhudph554zibiusqnad.onion:8333
xqt25cobm5zqucac3634zfght72he6u3eagfyej5ellbhcdgos7t2had.onion:8333
# manually added 2021-05 for minimal i2p bootstrap support
72l3ucjkuscrbiiepoehuwqgknyzgo7zuix5ty4puwrkyhtmnsga.b32.i2p:0
# manually added 2021-08 for minimal i2p bootstrap support
4hllr6w55mbtemb3ebvlzl4zj6qke4si7zcob5qdyg63mjgq624a.b32.i2p:0
6s33jtpvwzkiej3nff5qm72slgqljxhxn62hdt6m7nvynqsxqdda.b32.i2p:0
a5qsnv3maw77mlmmzlcglu6twje6ttctd3fhpbfwcbpmewx6fczq.b32.i2p:0
bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p:0
c4gfnttsuwqomiygupdqqqyy5y5emnk5c73hrfvatri67prd7vyq.b32.i2p:0
dhtq2p76tyhi442aidb3vd2bv7yxxjuddpb2jydnnrl2ons5bhha.b32.i2p:0
gehtac45oaghz54ypyopim64mql7oad2bqclla74l6tfeolzmodq.b32.i2p:0
h3r6bkn46qxftwja53pxiykntegfyfjqtnzbm6iv6r5mungmqgmq.b32.i2p:0
hnbbyjpxx54623l555sta7pocy3se4sdgmuebi5k6reesz5rjp6q.b32.i2p:0
pjs7or2ctvteeo5tu4bwyrtydeuhqhvdprtujn4daxr75jpebjxa.b32.i2p:0
i3hcdakiz2tyvggkwefvdjoi7444kgvd2mbdfizjvv43q7zukezq.b32.i2p:0
jz3s4eurm5vzjresf4mwo7oni4bk36daolwxh4iqtewakylgkxmq.b32.i2p:0
kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p:0
kvrde7mcgjhz3xzeltwy4gs2rxdfbnbs2wc67mh2pt43wjmjnmbq.b32.i2p:0
shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p:0
wwbw7nqr3ahkqv62cuqfwgtneekvvpnuc4i4f6yo7tpoqjswvcwa.b32.i2p:0
zsxwyo6qcn3chqzwxnseusqgsnuw3maqnztkiypyfxtya4snkoka.b32.i2p:0

View File

@@ -1,89 +1,112 @@
-----BEGIN CERTIFICATE-----
MIIHfDCCBWSgAwIBAgIQCmVvdQal72U2QxbUTT3SRTANBgkqhkiG9w0BAQsFADBp
MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMT
OERpZ2lDZXJ0IFRydXN0ZWQgRzQgQ29kZSBTaWduaW5nIFJTQTQwOTYgU0hBMzg0
IDIwMjEgQ0ExMB4XDTIyMDUyNDAwMDAwMFoXDTI0MDUyOTIzNTk1OVowgYAxCzAJ
BgNVBAYTAlVTMREwDwYDVQQIEwhEZWxhd2FyZTEOMAwGA1UEBxMFTGV3ZXMxJjAk
BgNVBAoTHUJpdGNvaW4gQ29yZSBDb2RlIFNpZ25pbmcgTExDMSYwJAYDVQQDEx1C
aXRjb2luIENvcmUgQ29kZSBTaWduaW5nIExMQzCCAiIwDQYJKoZIhvcNAQEBBQAD
ggIPADCCAgoCggIBALewxfjztuRTDNAGf7zkqqWNEt28CZmVJHoYltVRxtE1BP45
BfmptH5eM1JC/XosTPytHRFeOkO4YVAtiELxK9S/82OZlKA7Mx7PW6vv1184u8+m
P3WpTN/KAZTaW9fB0ELTSCuqsvXq2crM2T7NudJnSyWh2VBjLfPPCAcYwzyGKQbl
jQWjFEJDJWFK83t9mK/v0WQgA3jGJeaz+V6CYXMS7UgpdG8dUhg9o63gYJZAW5pY
RIsNRcJCM5LHhwEMW5329UsTmYCfP7/53emepbQ0n8ijVZjgaJ+LZ8NspBLSeCiF
9UPCKX82uWiQAUTbYHCfSi3I0f3wQidXL9ZY+PXmalM7BMuQ+c2xEcl97CnhrDzx
EBwZvvOC9wGoG+8+epV4TjUZWf+7QN1ZYeg1rai7c7c8u9ILogE8su2xVoz333TH
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
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
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGQzCCBSugAwIBAgIQBSN7Cm16Z0UT9p7lA2jiKDANBgkqhkiG9w0BAQsFADBy
MIIGsDCCBJigAwIBAgIQCK1AsmDSnEyfXs2pvZOu2TANBgkqhkiG9w0BAQwFADBi
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQg
SUQgQ29kZSBTaWduaW5nIENBMB4XDTIxMDUyMTAwMDAwMFoXDTIyMDUyNjIzNTk1
OVowgYAxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhEZWxhd2FyZTEOMAwGA1UEBxMF
TGV3ZXMxJjAkBgNVBAoTHUJpdGNvaW4gQ29yZSBDb2RlIFNpZ25pbmcgTExDMSYw
JAYDVQQDEx1CaXRjb2luIENvcmUgQ29kZSBTaWduaW5nIExMQzCCAiIwDQYJKoZI
hvcNAQEBBQADggIPADCCAgoCggIBAKe6xtFgKAQ68MvxwCjNtpgPobfDQCLKvCAN
uBKGYuub6ufQB5dhCLN9fjMgfg33AyauvU3PcEUDUWD3/k925bPqgxHC3E7YqoB+
11b/2Y7a86okqUgcGgvKhaKoHmXxElpM9EjQHjJ0yL4QAR1Lp+9CMMW3wIulBYKt
wLIArFvbuQhMO/6rxL8frpK049v//WfQzB16GXuFnzN/6fDK7oOt5IrKTg4H6EY2
fj4+QaUj0lNX7aHnZ6Ki45h2RUPDgN1ipRIuhM67npyZ/tdzPPjI3PUgfXCccN6D
+qWWnbbbvPuOht4ziPciVnPd57PqJmAOnLI86gisDfd7VKlcpOSEaagdUGvMbU6f
uAps818GwnJzwCGllxlKASCgXDAckLLvMuit4RfYAhhdhw5R0AsaWK0HW88oHOqi
U7eWlMCbSGk34x9hBrxYl7tvcNcLPWIPYrrhFWNFpkV8bVVIoV5rUNRgWvBcdOq1
CCPTfsJp3nEH2WCoBghZquDZLSW12wMw2UsQyEojBeGhrR1inn8uK93wSnVCC8F4
21yWNRMNe/LQVhmZDgFOen9r/WijBsBdQw1bL8N4zGdYv8+soqkrWzW417FfSx81
pj4j5FEXYXXV5k/4/eBpIARXVRR8xya0nGkhNJmBk0jjDGD8fPW2gFQbqnUwAQ34
vOr8NUqHAgMBAAGjggHEMIIBwDAfBgNVHSMEGDAWgBRaxLl7KgqjpepxA8Bg+S32
ZXUOWDAdBgNVHQ4EFgQUVSLtZnifEHvd8z3E7AyLYNuDiaMwDgYDVR0PAQH/BAQD
AgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMHcGA1UdHwRwMG4wNaAzoDGGL2h0dHA6
Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9zaGEyLWFzc3VyZWQtY3MtZzEuY3JsMDWgM6Ax
hi9odHRwOi8vY3JsNC5kaWdpY2VydC5jb20vc2hhMi1hc3N1cmVkLWNzLWcxLmNy
bDBLBgNVHSAERDBCMDYGCWCGSAGG/WwDATApMCcGCCsGAQUFBwIBFhtodHRwOi8v
d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCAYGZ4EMAQQBMIGEBggrBgEFBQcBAQR4MHYw
JAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBOBggrBgEFBQcw
AoZCaHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0U0hBMkFzc3Vy
ZWRJRENvZGVTaWduaW5nQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEL
BQADggEBAOaJneI91NJgqghUxgc0AWQ01SAJTgN4z7xMQ3W0ZAtwGbA0byT7YRlj
j7h+j+hMX/JYkRJETTh8Nalq2tPWJBiMMEPOGFVttFER1pwouHkK9pSKyp4xRvNU
L0LPh7fE4EYMJoynys6ZTpMCHLku+X3jFat1+1moh9TJRvK5+ETZYGl0seFNU3mJ
dZzusObm4scffIGgi40kmmISKd5ZRuooRTu9FFR/3vpfbA+7Vg4RSH3CcQPo9bfk
+h/qRQhSfQInTBn7obRpIlvEcK782qivqseJGdtnTmcdVRShD5ckTVza1yv25uQz
l/yTqmG2LXlYjl5iMSdF0C1xYq6IsOA=
d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg
RzQwHhcNMjEwNDI5MDAwMDAwWhcNMzYwNDI4MjM1OTU5WjBpMQswCQYDVQQGEwJV
UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRy
dXN0ZWQgRzQgQ29kZSBTaWduaW5nIFJTQTQwOTYgU0hBMzg0IDIwMjEgQ0ExMIIC
IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1bQvQtAorXi3XdU5WRuxiEL1
M4zrPYGXcMW7xIUmMJ+kjmjYXPXrNCQH4UtP03hD9BfXHtr50tVnGlJPDqFX/IiZ
wZHMgQM+TXAkZLON4gh9NH1MgFcSa0OamfLFOx/y78tHWhOmTLMBICXzENOLsvsI
8IrgnQnAZaf6mIBJNYc9URnokCF4RS6hnyzhGMIazMXuk0lwQjKP+8bqHPNlaJGi
TUyCEUhSaN4QvRRXXegYE2XFf7JPhSxIpFaENdb5LpyqABXRN/4aBpTCfMjqGzLm
ysL0p6MDDnSlrzm2q2AS4+jWufcx4dyt5Big2MEjR0ezoQ9uo6ttmAaDG7dqZy3S
vUQakhCBj7A7CdfHmzJawv9qYFSLScGT7eG0XOBv6yb5jNWy+TgQ5urOkfW+0/tv
k2E0XLyTRSiDNipmKF+wc86LJiUGsoPUXPYVGUztYuBeM/Lo6OwKp7ADK5GyNnm+
960IHnWmZcy740hQ83eRGv7bUKJGyGFYmPV8AhY8gyitOYbs1LcNU9D4R+Z1MI3s
MJN2FKZbS110YU0/EpF23r9Yy3IQKUHw1cVtJnZoEUETWJrcJisB9IlNWdt4z4FK
PkBHX8mBUHOFECMhWWCKZFTBzCEa6DgZfGYczXg4RTCZT/9jT0y7qg0IU0F8WD1H
s/q27IwyCQLMbDwMVhECAwEAAaOCAVkwggFVMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFGg34Ou2O/hfEYb7/mF7CIhl9E5CMB8GA1UdIwQYMBaAFOzX44LS
cV1kTN8uZz/nupiuHA9PMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEF
BQcDAzB3BggrBgEFBQcBAQRrMGkwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRp
Z2ljZXJ0LmNvbTBBBggrBgEFBQcwAoY1aHR0cDovL2NhY2VydHMuZGlnaWNlcnQu
Y29tL0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5jcnQwQwYDVR0fBDwwOjA4oDagNIYy
aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5j
cmwwHAYDVR0gBBUwEzAHBgVngQwBAzAIBgZngQwBBAEwDQYJKoZIhvcNAQEMBQAD
ggIBADojRD2NCHbuj7w6mdNW4AIapfhINPMstuZ0ZveUcrEAyq9sMCcTEp6QRJ9L
/Z6jfCbVN7w6XUhtldU/SfQnuxaBRVD9nL22heB2fjdxyyL3WqqQz/WTauPrINHV
UHmImoqKwba9oUgYftzYgBoRGRjNYZmBVvbJ43bnxOQbX0P4PpT/djk9ntSZz0rd
KOtfJqGVWEjVGv7XJz/9kNF2ht0csGBc8w2o7uCJob054ThO2m67Np375SFTWsPK
6Wrxoj7bQ7gzyE84FJKZ9d3OVG3ZXQIUH0AzfAPilbLCIXVzUstG2MQ0HKKlS43N
b3Y3LIU/Gs4m6Ri+kAewQ3+ViCCCcPDMyu/9KTVcH4k4Vfc3iosJocsL6TEa/y4Z
XDlx4b6cpwoG1iZnt5LmTl/eeqxJzy6kdJKt2zyknIYf48FWGysj/4+16oh7cGvm
oLr9Oj9FpsToFpFSi0HASIRLlk2rREDjjfAVKM7t8RhWByovEMQMCGQ8M4+uKIw8
y4+ICw2/O/TOHnuO77Xry7fwdxPm5yg/rBKupS8ibEH5glwVZsxsDsrFhsP2JjMM
B0ug0wcCampAMEhLNKhRILutG4UI4lkNbcoFUCvqShyepf2gpx8GdOfy1lKQ/a+F
SCH5Vzu0nAPthkX0tGFuv2jiJmCG6sivqf6UHedjGzqGVnhO
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFMDCCBBigAwIBAgIQBAkYG1/Vu2Z1U0O1b5VQCDANBgkqhkiG9w0BAQsFADBl
MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBi
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
b3QgQ0EwHhcNMTMxMDIyMTIwMDAwWhcNMjgxMDIyMTIwMDAwWjByMQswCQYDVQQG
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
cnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQgSUQgQ29kZSBT
aWduaW5nIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+NOzHH8O
Ea9ndwfTCzFJGc/Q+0WZsTrbRPV/5aid2zLXcep2nQUut4/6kkPApfmJ1DcZ17aq
8JyGpdglrA55KDp+6dFn08b7KSfH03sjlOSRI5aQd4L5oYQjZhJUM1B0sSgmuyRp
wsJS8hRniolF1C2ho+mILCCVrhxKhwjfDPXiTWAYvqrEsq5wMWYzcT6scKKrzn/p
fMuSoeU7MRzP6vIK5Fe7SrXpdOYr/mzLfnQ5Ng2Q7+S1TqSp6moKq4TzrGdOtcT3
jNEgJSPrCGQ+UpbB8g8S9MWOD8Gi6CxR93O8vYWxYoNzQYIH5DiLanMg0A9kczye
n6Yzqf0Z3yWT0QIDAQABo4IBzTCCAckwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNV
HQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYIKwYBBQUHAwMweQYIKwYBBQUHAQEEbTBr
MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYBBQUH
MAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJ
RFJvb3RDQS5jcnQwgYEGA1UdHwR6MHgwOqA4oDaGNGh0dHA6Ly9jcmw0LmRpZ2lj
ZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwOqA4oDaGNGh0dHA6
Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmww
TwYDVR0gBEgwRjA4BgpghkgBhv1sAAIEMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCgYIYIZIAYb9bAMwHQYDVR0OBBYEFFrEuXsq
CqOl6nEDwGD5LfZldQ5YMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6enIZ3zbcgP
MA0GCSqGSIb3DQEBCwUAA4IBAQA+7A1aJLPzItEVyCx8JSl2qB1dHC06GsTvMGHX
fgtg/cM9D8Svi/3vKt8gVTew4fbRknUPUbRupY5a4l4kgU4QpO4/cY5jDhNLrddf
RHnzNhQGivecRk5c/5CxGwcOkRX7uq+1UcKNJK4kxscnKqEpKBo6cSgCPC6Ro8Al
EeKcFEehemhor5unXCBc2XGxDI+7qPjFEmifz0DLQESlE/DmZAwlCEIysjaKJAL+
L3J+HNdJRZboWR3p+nRka7LrZkPas7CM1ekN3fYBIM6ZMWM9CBoYs4GbT8aTEAb8
B4H6i9r5gkn3Ym6hU/oSlBiFLpKR6mhsRDKyZqHnGKSaZFHv
d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg
RzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBiMQswCQYDVQQGEwJV
UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu
Y29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqG
SIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3y
ithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1If
xp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDV
ySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiO
DCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQ
jdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/
CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCi
EhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADM
fRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QY
uKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXK
chYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t
9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
hjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD
ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2
SV1EY+CtnJYYZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd
+SeuMIW59mdNOj6PWTkiU0TryF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWc
fFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy7zBZLq7gcfJW5GqXb5JQbZaNaHqa
sjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iahixTXTBmyUEFxPT9N
cCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN5r5N
0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie
4u1Ki7wb/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mI
r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1
/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tKG48BtieVU+i2iW1bvGjUI+iLUaJW+fCm
gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c
JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP
mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+
wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4
VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/
AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB
AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun
pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC
dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf
fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm
NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx
H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
-----END CERTIFICATE-----

View File

@@ -1,8 +1,8 @@
package=libXau
$(package)_version=1.0.8
$(package)_version=1.0.9
$(package)_download_path=https://xorg.freedesktop.org/releases/individual/lib/
$(package)_file_name=$(package)-$($(package)_version).tar.bz2
$(package)_sha256_hash=fdd477320aeb5cdd67272838722d6b7d544887dfe7de46e1e7cc0c27c2bea4f2
$(package)_sha256_hash=ccf8cbf0dbf676faa2ea0a6d64bcc3b6746064722b606c8c52917ed00dcb73ec
$(package)_dependencies=xproto
# When updating this package, check the default value of

View File

@@ -1,6 +1,6 @@
PACKAGE=qt
$(package)_version=5.12.11
$(package)_download_path=https://download.qt.io/official_releases/qt/5.12/$($(package)_version)/submodules
$(package)_download_path=https://download.qt.io/archive/qt/5.12/$($(package)_version)/submodules
$(package)_suffix=everywhere-src-$($(package)_version).tar.xz
$(package)_file_name=qtbase-$($(package)_suffix)
$(package)_sha256_hash=1c1b4e33137ca77881074c140d54c3c9747e845a31338cfe8680f171f0bc3a39
@@ -13,6 +13,7 @@ $(package)_patches+= fix_android_qmake_conf.patch fix_android_jni_static.patch d
$(package)_patches+= no_sdk_version_check.patch
$(package)_patches+= fix_lib_paths.patch fix_android_pch.patch
$(package)_patches+= qtbase-moc-ignore-gcc-macro.patch fix_limits_header.patch
$(package)_patches+= fix_montery_include.patch
$(package)_qttranslations_file_name=qttranslations-$($(package)_suffix)
$(package)_qttranslations_sha256_hash=577b0668a777eb2b451c61e8d026d79285371597ce9df06b6dee6c814164b7c3
@@ -232,6 +233,7 @@ define $(package)_preprocess_cmds
patch -p1 -i $($(package)_patch_dir)/fix_lib_paths.patch && \
patch -p1 -i $($(package)_patch_dir)/qtbase-moc-ignore-gcc-macro.patch && \
patch -p1 -i $($(package)_patch_dir)/fix_limits_header.patch && \
patch -p1 -i $($(package)_patch_dir)/fix_montery_include.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

@@ -3,7 +3,7 @@ $(package)_version=4.3.1
$(package)_download_path=https://github.com/zeromq/libzmq/releases/download/v$($(package)_version)/
$(package)_file_name=$(package)-$($(package)_version).tar.gz
$(package)_sha256_hash=bcbabe1e2c7d0eec4ed612e10b94b112dd5f06fcefa994a0c79a45d835cd21eb
$(package)_patches=remove_libstd_link.patch
$(package)_patches=remove_libstd_link.patch fix_dash_compat.patch
define $(package)_set_vars
$(package)_config_opts=--without-docs --disable-shared --disable-curve --disable-curve-keygen --disable-perf
@@ -17,10 +17,12 @@ endef
define $(package)_preprocess_cmds
patch -p1 < $($(package)_patch_dir)/remove_libstd_link.patch && \
patch -p1 < $($(package)_patch_dir)/fix_dash_compat.patch && \
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub config
endef
define $(package)_config_cmds
./autogen.sh && \
$($(package)_autoconf)
endef

View File

@@ -0,0 +1,21 @@
From dece6f5840463ae2ddf927d65eb1b3680e34a547
From: Øystein Heskestad <oystein.heskestad@qt.io>
Date: Wed, 27 Oct 2021 13:07:46 +0200
Subject: [PATCH] Add missing macOS header file that was indirectly included before
See: https://bugreports.qt.io/browse/QTBUG-97855
Upstream Commits:
- Qt 6.2: c884bf138a21dd7320e35cef34d24e22e74d7ce0
diff --git a/qtbase/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h b/qtbase/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h
index e070ba97..07c75b04 100644
--- a/qtbase/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h
+++ b/qtbase/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h
@@ -40,6 +40,7 @@
#ifndef QIOSURFACEGRAPHICSBUFFER_H
#define QIOSURFACEGRAPHICSBUFFER_H
+#include <CoreGraphics/CGColorSpace.h>
#include <qpa/qplatformgraphicsbuffer.h>
#include <private/qcore_mac_p.h>

View File

@@ -0,0 +1,71 @@
commit 9a397666d28ca5f3c0d8233be3d39b2206555f45
Author: Alain Kalker <a.c.kalker@gmail.com>
Date: Wed May 22 01:30:54 2019 +0200
acinclude.m4, configure.ac: Fix several non-portable uses of `test`
Fixes #3517
diff --git a/acinclude.m4 b/acinclude.m4
index 036a30a0..4f5ae3c2 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -1058,12 +1058,12 @@ AC_DEFUN([LIBZMQ_CHECK_POLLER], [{
[AS_HELP_STRING([--with-api-poller],
[choose zmq_poll(er)_* API polling system manually. Valid values are 'poll', 'select', or 'auto'. [default=auto]])])
- if test "x$with_poller" == "x"; then
+ if test "x$with_poller" = "x"; then
pollers=auto
else
pollers=$with_poller
fi
- if test "$pollers" == "auto"; then
+ if test "$pollers" = "auto"; then
# We search for pollers in this order
pollers="kqueue epoll devpoll pollset poll select"
fi
@@ -1145,13 +1145,13 @@ AC_DEFUN([LIBZMQ_CHECK_POLLER], [{
if test $poller_found -eq 0; then
AC_MSG_ERROR([None of '$pollers' are valid pollers on this platform])
fi
- if test "x$with_api_poller" == "x"; then
+ if test "x$with_api_poller" = "x"; then
with_api_poller=auto
fi
- if test "x$with_api_poller" == "xauto"; then
- if test $poller == "select"; then
+ if test "x$with_api_poller" = "xauto"; then
+ if test $poller = "select"; then
api_poller=select
- elif test $poller == "wepoll"; then
+ elif test $poller = "wepoll"; then
api_poller=select
else
api_poller=poll
@@ -1159,10 +1159,10 @@ AC_DEFUN([LIBZMQ_CHECK_POLLER], [{
else
api_poller=$with_api_poller
fi
- if test "$api_poller" == "select"; then
+ if test "$api_poller" = "select"; then
AC_MSG_NOTICE([Using 'select' zmq_poll(er)_* API polling system])
AC_DEFINE(ZMQ_POLL_BASED_ON_SELECT, 1, [Use 'select' zmq_poll(er)_* API polling system])
- elif test "$api_poller" == "poll"; then
+ elif test "$api_poller" = "poll"; then
AC_MSG_NOTICE([Using 'poll' zmq_poll(er)_* API polling system])
AC_DEFINE(ZMQ_POLL_BASED_ON_POLL, 1, [Use 'poll' zmq_poll(er)_* API polling system])
else
diff --git a/configure.ac b/configure.ac
index 5c4e1e45..65bb4e0d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -143,7 +143,7 @@ AC_ARG_ENABLE(address-sanitizer, [AS_HELP_STRING([--enable-address-sanitizer=yes
[Build with GCC Address Sanitizer instrumentation])],
[ZMQ_ASAN="$enableval"])
-if test "x${ZMQ_ASAN}" == "xyes"; then
+if test "x${ZMQ_ASAN}" = "xyes"; then
CFLAGS="${CFLAGS} -fsanitize=address"
CXXFLAGS="${CXXFLAGS} -fsanitize=address"

View File

@@ -1,4 +1,4 @@
BIPs that are implemented by Bitcoin Core (up-to-date up to **v22.0**):
BIPs that are implemented by Bitcoin Core (up-to-date up to **v22.1**):
* [`BIP 9`](https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki): The changes allowing multiple soft-forks to be deployed in parallel have been implemented since **v0.12.1** ([PR #7575](https://github.com/bitcoin/bitcoin/pull/7575))
* [`BIP 11`](https://github.com/bitcoin/bips/blob/master/bip-0011.mediawiki): Multisig outputs are standard since **v0.6.0** ([PR #669](https://github.com/bitcoin/bitcoin/pull/669)).

View File

@@ -68,7 +68,7 @@ export AUTOMAKE_VERSION=1.16
Make sure `BDB_PREFIX` is set to the appropriate path from the above steps.
Note that building with external signer support currently fails on OpenBSD,
hence you have to explicitely disable it by passing the parameter
hence you have to explicitly disable it by passing the parameter
`--disable-external-signer` to the configure script.
(Background: the feature requires the header-only library boost::process, which
is available on OpenBSD 6.9 via Boost 1.72.0, but contains certain system calls

View File

@@ -115,15 +115,11 @@ brew install berkeley-db@4
###### Descriptor Wallet Support
Note: Apple has included a useable `sqlite` package since macOS 10.14.
You may not need to install this package.
`sqlite` is required to support for descriptor wallets.
`sqlite` is required to enable support for descriptor wallets.
Skip if you don't intend to use descriptor wallets.
macOS ships with a useable `sqlite` package, meaning you don't need to
install anything.
``` bash
brew install sqlite
```
---
#### GUI Dependencies

View File

@@ -99,7 +99,7 @@ Descriptors consist of several types of expressions. The top level expression is
`ADDR` expressions are any type of supported address:
- P2PKH addresses (base58, of the form `1...` for mainnet or `[nm]...` for testnet). Note that P2PKH addresses in descriptors cannot be used for P2PK outputs (use the `pk` function instead).
- P2SH addresses (base58, of the form `3...` for mainnet or `2...` for testnet, defined in [BIP 13](https://github.com/bitcoin/bips/blob/master/bip-0013.mediawiki)).
- Segwit addresses (bech32, of the form `bc1...` for mainnet or `tb1...` for testnet, defined in [BIP 173](https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki)).
- Segwit addresses (bech32 and bech32m, of the form `bc1...` for mainnet or `tb1...` for testnet, defined in [BIP 173](https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki) and [BIP 350](https://github.com/bitcoin/bips/blob/master/bip-0350.mediawiki)).
## Explanation

View File

@@ -10,11 +10,22 @@ started with I2P terminology.
## Run Bitcoin Core with an I2P router (proxy)
A running I2P router (proxy) with [SAM](https://geti2p.net/en/docs/api/samv3)
enabled is required (there is an [official one](https://geti2p.net) and
[a few alternatives](https://en.wikipedia.org/wiki/I2P#Routers)). Notice the IP
address and port the SAM proxy is listening to; usually, it is
`127.0.0.1:7656`. Once it is up and running with SAM enabled, use the following
Bitcoin Core options:
enabled is required. Options include:
- [i2prouter (I2P Router)](https://geti2p.net), the official implementation in
Java
- [i2pd (I2P Daemon)](https://github.com/PurpleI2P/i2pd)
([documentation](https://i2pd.readthedocs.io/en/latest)), a lighter
alternative in C++ (successfully tested with version 2.23 and up; version 2.36
or later recommended)
- [i2p-zero](https://github.com/i2p-zero/i2p-zero)
- [other alternatives](https://en.wikipedia.org/wiki/I2P#Routers)
Note the IP address and port the SAM proxy is listening to; usually, it is
`127.0.0.1:7656`.
Once an I2P router with SAM enabled is up and running, use the following Bitcoin
Core configuration options:
```
-i2psam=<ip:port>
@@ -47,13 +58,21 @@ information in the debug log about your I2P configuration and connections. Run
`bitcoin-cli help logging` for more information.
It is possible to restrict outgoing connections in the usual way with
`onlynet=i2p`. I2P support was added to Bitcoin Core in version 22.0 (mid 2021)
`onlynet=i2p`. I2P support was added to Bitcoin Core in version 22.0 (mid-2021)
and there may be fewer I2P peers than Tor or IP ones. Therefore, using
`onlynet=i2p` alone (without other `onlynet=`) may make a node more susceptible
to [Sybil attacks](https://en.bitcoin.it/wiki/Weaknesses#Sybil_attack). Use
`bitcoin-cli -addrinfo` to see the number of I2P addresses known to your node.
## I2P related information in Bitcoin Core
Another consideration with `onlynet=i2p` is that the initial blocks download
phase when syncing up a new node can be very slow. This phase can be sped up by
using other networks, for instance `onlynet=onion`, at the same time.
In general, a node can be run with both onion and I2P hidden services (or
any/all of IPv4/IPv6/onion/I2P), which can provide a potential fallback if one
of the networks has issues.
## I2P-related information in Bitcoin Core
There are several ways to see your I2P address in Bitcoin Core:
- in the debug log (grep for `AddLocal`, the I2P address ends in `.b32.i2p`)

View File

@@ -1,5 +1,163 @@
.TH BITCOIN-CLI "1"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2.
.TH BITCOIN-CLI "1" "December 2022" "bitcoin-cli v22.1.0" "User Commands"
.SH NAME
bitcoin-cli \- manual page for bitcoin-cli
This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release.
bitcoin-cli \- manual page for bitcoin-cli v22.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 v22.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.
.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 immediately, equivalent to RPC getnewaddress followed by
RPC generatetoaddress. Optional positional integer arguments are
number of blocks to generate (default: 1) and maximum iterations
to try (default: 1000000), equivalent to RPC generatetoaddress
nblocks and maxtries arguments. Example: bitcoin\-cli \fB\-generate\fR 4
1000
.HP
\fB\-getinfo\fR
.IP
Get general information from the remote server. Note that unlike
server\-side RPC calls, the results of \fB\-getinfo\fR is the result of
multiple non\-atomic requests. Some entries in the result may
represent results from different states (e.g. wallet balance may
be as of a different block from the chain state reported)
.HP
\fB\-named\fR
.IP
Pass named instead of positional arguments (default: false)
.HP
\fB\-netinfo\fR
.IP
Get network peer connection information from the remote server. An
optional integer argument from 0 to 4 can be passed for different
peers listings (default: 0). Pass "help" for detailed help
documentation.
.HP
\fB\-rpcclienttimeout=\fR<n>
.IP
Timeout in seconds during HTTP requests, or 0 for no timeout. (default:
900)
.HP
\fB\-rpcconnect=\fR<ip>
.IP
Send commands to node running on <ip> (default: 127.0.0.1)
.HP
\fB\-rpccookiefile=\fR<loc>
.IP
Location of the auth cookie. Relative paths will be prefixed by a
net\-specific datadir location. (default: data dir)
.HP
\fB\-rpcpassword=\fR<pw>
.IP
Password for JSON\-RPC connections
.HP
\fB\-rpcport=\fR<port>
.IP
Connect to JSON\-RPC on <port> (default: 8332, testnet: 18332, signet:
38332, regtest: 18443)
.HP
\fB\-rpcuser=\fR<user>
.IP
Username for JSON\-RPC connections
.HP
\fB\-rpcwait\fR
.IP
Wait for RPC server to start
.HP
\fB\-rpcwaittimeout=\fR<n>
.IP
Timeout in seconds to wait for the RPC server to start, or 0 for no
timeout. (default: 0)
.HP
\fB\-rpcwallet=\fR<walletname>
.IP
Send RPC for non\-default wallet on RPC server (needs to exactly match
corresponding \fB\-wallet\fR option passed to bitcoind). This changes
the RPC endpoint used, e.g.
http://127.0.0.1:8332/wallet/<walletname>
.HP
\fB\-stdin\fR
.IP
Read extra arguments from standard input, one per line until EOF/Ctrl\-D
(recommended for sensitive information such as passphrases). When
combined with \fB\-stdinrpcpass\fR, the first line from standard input
is used for the RPC password.
.HP
\fB\-stdinrpcpass\fR
.IP
Read RPC password from standard input as a single line. When combined
with \fB\-stdin\fR, the first line from standard input is used for the
RPC password. When combined with \fB\-stdinwalletpassphrase\fR,
\fB\-stdinrpcpass\fR consumes the first line, and \fB\-stdinwalletpassphrase\fR
consumes the second.
.HP
\fB\-stdinwalletpassphrase\fR
.IP
Read wallet passphrase from standard input as a single line. When
combined with \fB\-stdin\fR, the first line from standard input is used
for the wallet passphrase.
.HP
\fB\-version\fR
.IP
Print version and exit
.PP
Debugging/Testing options:
.PP
Chain selection options:
.HP
\fB\-chain=\fR<chain>
.IP
Use the chain <chain> (default: main). Allowed values: main, test,
signet, regtest
.HP
\fB\-signet\fR
.IP
Use the signet chain. Equivalent to \fB\-chain\fR=\fI\,signet\/\fR. Note that the network
is defined by the \fB\-signetchallenge\fR parameter
.HP
\fB\-signetchallenge\fR
.IP
Blocks must satisfy the given script to be considered valid (only for
signet networks; defaults to the global default signet test
network challenge)
.HP
\fB\-signetseednode\fR
.IP
Specify a seed node for the signet network, in the hostname[:port]
format, e.g. sig.net:1234 (may be used multiple times to specify
multiple seed nodes; defaults to the global default signet test
network seed node(s))
.HP
\fB\-testnet\fR
.IP
Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR.

View File

@@ -1,5 +1,780 @@
.TH BITCOIN-QT "1"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2.
.TH BITCOIN-QT "1" "December 2022" "bitcoin-qt v22.1.0" "User Commands"
.SH NAME
bitcoin-qt \- manual page for bitcoin-qt
This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release.
bitcoin-qt \- manual page for bitcoin-qt v22.1.0
.SH SYNOPSIS
.B bitcoin-qt
[\fI\,command-line options\/\fR]
.SH DESCRIPTION
Bitcoin Core version v22.1.0
.SH OPTIONS
.HP
\-?
.IP
Print this help message and exit
.HP
\fB\-alertnotify=\fR<cmd>
.IP
Execute command when a relevant alert is received or we see a really
long fork (%s in cmd is replaced by message)
.HP
\fB\-assumevalid=\fR<hex>
.IP
If this block is in the chain assume that it and its ancestors are valid
and potentially skip their script verification (0 to verify all,
default:
00000000000000000008a89e854d57e5667df88f1cdef6fde2fbca1de5b639ad,
testnet:
0000000000004ae2f3896ca8ecd41c460a35bf6184e145d91558cece1c688a76,
signet:
000000187d4440e5bff91488b700a140441e089a8aaea707414982460edbfe54)
.HP
\fB\-blockfilterindex=\fR<type>
.IP
Maintain an index of compact filters by block (default: 0, values:
basic). If <type> is not supplied or if <type> = 1, indexes for
all known types are enabled.
.HP
\fB\-blocknotify=\fR<cmd>
.IP
Execute command when the best block changes (%s in cmd is replaced by
block hash)
.HP
\fB\-blockreconstructionextratxn=\fR<n>
.IP
Extra transactions to keep in memory for compact block reconstructions
(default: 100)
.HP
\fB\-blocksdir=\fR<dir>
.IP
Specify directory to hold blocks subdirectory for *.dat files (default:
<datadir>)
.HP
\fB\-blocksonly\fR
.IP
Whether to reject transactions from network peers. Automatic broadcast
and rebroadcast of any transactions from inbound peers is
disabled, unless the peer has the 'forcerelay' permission. RPC
transactions are not affected. (default: 0)
.HP
\fB\-coinstatsindex\fR
.IP
Maintain coinstats index used by the gettxoutsetinfo RPC (default: 0)
.HP
\fB\-conf=\fR<file>
.IP
Specify path to read\-only configuration file. Relative paths will be
prefixed by datadir location. (default: bitcoin.conf)
.HP
\fB\-daemon\fR
.IP
Run in the background as a daemon and accept commands (default: 0)
.HP
\fB\-daemonwait\fR
.IP
Wait for initialization to be finished before exiting. This implies
\fB\-daemon\fR (default: 0)
.HP
\fB\-datadir=\fR<dir>
.IP
Specify data directory
.HP
\fB\-dbcache=\fR<n>
.IP
Maximum database cache size <n> MiB (4 to 16384, default: 450). In
addition, unused mempool memory is shared for this cache (see
\fB\-maxmempool\fR).
.HP
\fB\-debuglogfile=\fR<file>
.IP
Specify location of debug log file. Relative paths will be prefixed by a
net\-specific datadir location. (\fB\-nodebuglogfile\fR to disable;
default: debug.log)
.HP
\fB\-includeconf=\fR<file>
.IP
Specify additional configuration file, relative to the \fB\-datadir\fR path
(only useable from configuration file, not command line)
.HP
\fB\-loadblock=\fR<file>
.IP
Imports blocks from external file on startup
.HP
\fB\-maxmempool=\fR<n>
.IP
Keep the transaction memory pool below <n> megabytes (default: 300)
.HP
\fB\-maxorphantx=\fR<n>
.IP
Keep at most <n> unconnectable transactions in memory (default: 100)
.HP
\fB\-mempoolexpiry=\fR<n>
.IP
Do not keep transactions in the mempool longer than <n> hours (default:
336)
.HP
\fB\-par=\fR<n>
.IP
Set the number of script verification threads (\fB\-6\fR to 15, 0 = auto, <0 =
leave that many cores free, default: 0)
.HP
\fB\-persistmempool\fR
.IP
Whether to save the mempool on shutdown and load on restart (default: 1)
.HP
\fB\-pid=\fR<file>
.IP
Specify pid file. Relative paths will be prefixed by a net\-specific
datadir location. (default: bitcoind.pid)
.HP
\fB\-prune=\fR<n>
.IP
Reduce storage requirements by enabling pruning (deleting) of old
blocks. This allows the pruneblockchain RPC to be called to
delete specific blocks, and enables automatic pruning of old
blocks if a target size in MiB is provided. This mode is
incompatible with \fB\-txindex\fR, \fB\-coinstatsindex\fR and \fB\-rescan\fR. Warning:
Reverting this setting requires re\-downloading the entire
blockchain. (default: 0 = disable pruning blocks, 1 = allow
manual pruning via RPC, >=550 = automatically prune block files
to stay under the specified target size in MiB)
.HP
\fB\-reindex\fR
.IP
Rebuild chain state and block index from the blk*.dat files on disk
.HP
\fB\-reindex\-chainstate\fR
.IP
Rebuild chain state from the currently indexed blocks. When in pruning
mode or if blocks on disk might be corrupted, use full \fB\-reindex\fR
instead.
.HP
\fB\-settings=\fR<file>
.IP
Specify path to dynamic settings data file. Can be disabled with
\fB\-nosettings\fR. File is written at runtime and not meant to be
edited by users (use bitcoin.conf instead for custom settings).
Relative paths will be prefixed by datadir location. (default:
settings.json)
.HP
\fB\-startupnotify=\fR<cmd>
.IP
Execute command on startup.
.HP
\fB\-sysperms\fR
.IP
Create new files with system default permissions, instead of umask 077
(only effective with disabled wallet functionality)
.HP
\fB\-txindex\fR
.IP
Maintain a full transaction index, used by the getrawtransaction rpc
call (default: 0)
.HP
\fB\-version\fR
.IP
Print version and exit
.PP
Connection options:
.HP
\fB\-addnode=\fR<ip>
.IP
Add a node to connect to and attempt to keep the connection open (see
the addnode RPC help for more info). This option can be specified
multiple times to add multiple nodes; connections are limited to
8 at a time and are counted separately from the \fB\-maxconnections\fR
limit.
.HP
\fB\-asmap=\fR<file>
.IP
Specify asn mapping used for bucketing of the peers (default:
ip_asn.map). Relative paths will be prefixed by the net\-specific
datadir location.
.HP
\fB\-bantime=\fR<n>
.IP
Default duration (in seconds) of manually configured bans (default:
86400)
.HP
\fB\-bind=\fR<addr>[:<port>][=onion]
.IP
Bind to given address and always listen on it (default: 0.0.0.0). Use
[host]:port notation for IPv6. Append =onion to tag any incoming
connections to that address and port as incoming Tor connections
(default: 127.0.0.1:8334=onion, testnet: 127.0.0.1:18334=onion,
signet: 127.0.0.1:38334=onion, regtest: 127.0.0.1:18445=onion)
.HP
\fB\-connect=\fR<ip>
.IP
Connect only to the specified node; \fB\-noconnect\fR disables automatic
connections (the rules for this peer are the same as for
\fB\-addnode\fR). This option can be specified multiple times to connect
to multiple nodes.
.HP
\fB\-discover\fR
.IP
Discover own IP addresses (default: 1 when listening and no \fB\-externalip\fR
or \fB\-proxy\fR)
.HP
\fB\-dns\fR
.IP
Allow DNS lookups for \fB\-addnode\fR, \fB\-seednode\fR and \fB\-connect\fR (default: 1)
.HP
\fB\-dnsseed\fR
.IP
Query for peer addresses via DNS lookup, if low on addresses (default: 1
unless \fB\-connect\fR used)
.HP
\fB\-externalip=\fR<ip>
.IP
Specify your own public address
.HP
\fB\-fixedseeds\fR
.IP
Allow fixed seeds if DNS seeds don't provide peers (default: 1)
.HP
\fB\-forcednsseed\fR
.IP
Always query for peer addresses via DNS lookup (default: 0)
.HP
\fB\-i2pacceptincoming\fR
.IP
If set and \fB\-i2psam\fR is also set then incoming I2P connections are
accepted via the SAM proxy. If this is not set but \fB\-i2psam\fR is set
then only outgoing connections will be made to the I2P network.
Ignored if \fB\-i2psam\fR is not set. Listening for incoming I2P
connections is done through the SAM proxy, not by binding to a
local address and port (default: 1)
.HP
\fB\-i2psam=\fR<ip:port>
.IP
I2P SAM proxy to reach I2P peers and accept I2P connections (default:
none)
.HP
\fB\-listen\fR
.IP
Accept connections from outside (default: 1 if no \fB\-proxy\fR or \fB\-connect\fR)
.HP
\fB\-listenonion\fR
.IP
Automatically create Tor onion service (default: 1)
.HP
\fB\-maxconnections=\fR<n>
.IP
Maintain at most <n> connections to peers (default: 125). This limit
does not apply to connections manually added via \fB\-addnode\fR or the
addnode RPC, which have a separate limit of 8.
.HP
\fB\-maxreceivebuffer=\fR<n>
.IP
Maximum per\-connection receive buffer, <n>*1000 bytes (default: 5000)
.HP
\fB\-maxsendbuffer=\fR<n>
.IP
Maximum per\-connection send buffer, <n>*1000 bytes (default: 1000)
.HP
\fB\-maxtimeadjustment\fR
.IP
Maximum allowed median peer time offset adjustment. Local perspective of
time may be influenced by 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 (in MiB per 24h).
Limit does not apply to peers with 'download' permission. 0 = no
limit (default: 0)
.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 outgoing connections only through network <net> (ipv4, ipv6, onion,
i2p). Incoming connections are not affected by this option. This
option can be specified multiple times to allow multiple
networks. Warning: if it is used with non\-onion networks and the
\fB\-onion\fR or \fB\-proxy\fR option is set, then outbound onion connections
will still be made; use \fB\-noonion\fR or \fB\-onion\fR=\fI\,0\/\fR to disable outbound
onion connections in this case.
.HP
\fB\-peerblockfilters\fR
.IP
Serve compact block filters to peers per BIP 157 (default: 0)
.HP
\fB\-peerbloomfilters\fR
.IP
Support filtering of blocks and transaction with bloom filters (default:
0)
.HP
\fB\-permitbaremultisig\fR
.IP
Relay non\-P2SH multisig (default: 1)
.HP
\fB\-port=\fR<port>
.IP
Listen for connections on <port>. Nodes not using the default ports
(default: 8333, testnet: 18333, signet: 38333, regtest: 18444)
are unlikely to get incoming connections. Not relevant for I2P
(see doc/i2p.md).
.HP
\fB\-proxy=\fR<ip:port>
.IP
Connect through SOCKS5 proxy, set \fB\-noproxy\fR to disable (default:
disabled)
.HP
\fB\-proxyrandomize\fR
.IP
Randomize credentials for every proxy connection. This enables Tor
stream isolation (default: 1)
.HP
\fB\-seednode=\fR<ip>
.IP
Connect to a node to retrieve peer addresses, and disconnect. This
option can be specified multiple times to connect to multiple
nodes.
.HP
\fB\-timeout=\fR<n>
.IP
Specify socket connection timeout in milliseconds. If an initial attempt
to connect is unsuccessful after this amount of time, drop it
(minimum: 1, default: 5000)
.HP
\fB\-torcontrol=\fR<ip>:<port>
.IP
Tor control port to use if onion listening enabled (default:
127.0.0.1:9051)
.HP
\fB\-torpassword=\fR<pass>
.IP
Tor control port password (default: empty)
.HP
\fB\-upnp\fR
.IP
Use UPnP to map the listening port (default: 0)
.HP
\fB\-whitebind=\fR<[permissions@]addr>
.IP
Bind to the given address and add permission flags to the peers
connecting to it. Use [host]:port notation for IPv6. Allowed
permissions: bloomfilter (allow requesting BIP37 filtered blocks
and transactions), noban (do not ban for misbehavior; implies
download), forcerelay (relay transactions that are already in the
mempool; implies relay), relay (relay even in \fB\-blocksonly\fR mode,
and unlimited transaction announcements), mempool (allow
requesting BIP35 mempool contents), download (allow getheaders
during IBD, no disconnect after maxuploadtarget limit), addr
(responses to GETADDR avoid hitting the cache and contain random
records with the most up\-to\-date info). Specify multiple
permissions separated by commas (default:
download,noban,mempool,relay). Can be specified multiple times.
.HP
\fB\-whitelist=\fR<[permissions@]IP address or network>
.IP
Add permission flags to the peers connecting from the given IP address
(e.g. 1.2.3.4) or CIDR\-notated network (e.g. 1.2.3.0/24). Uses
the same permissions as \fB\-whitebind\fR. Can be specified multiple
times.
.PP
Wallet options:
.HP
\fB\-addresstype\fR
.IP
What type of addresses to use ("legacy", "p2sh\-segwit", or "bech32",
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", or "bech32").
Default is same as \fB\-addresstype\fR, except when
\fB\-addresstype\fR=\fI\,p2sh\-segwit\/\fR a native segwit output is used when
sending to a native segwit address)
.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\-rescan\fR
.IP
Rescan the block chain for missing wallet transactions on startup
.HP
\fB\-signer=\fR<cmd>
.IP
External signing tool, see doc/external\-signer.md
.HP
\fB\-spendzeroconfchange\fR
.IP
Spend unconfirmed change when sending transactions (default: 1)
.HP
\fB\-txconfirmtarget=\fR<n>
.IP
If paytxfee is not set, include enough fee so transactions begin
confirmation on average within n blocks (default: 6)
.HP
\fB\-wallet=\fR<path>
.IP
Specify wallet path to load at startup. Can be used multiple times to
load multiple wallets. Path is to a directory containing wallet
data and log files. If the path is not absolute, it is
interpreted relative to <walletdir>. This only loads existing
wallets and does not create new ones. For backwards compatibility
this also accepts names of existing top\-level data files in
<walletdir>.
.HP
\fB\-walletbroadcast\fR
.IP
Make the wallet broadcast transactions (default: 1)
.HP
\fB\-walletdir=\fR<dir>
.IP
Specify directory to hold wallets (default: <datadir>/wallets if it
exists, otherwise <datadir>)
.HP
\fB\-walletnotify=\fR<cmd>
.IP
Execute command when a wallet transaction changes. %s in cmd is replaced
by TxID, %w is replaced by wallet name, %b is replaced by the
hash of the block including the transaction (set to 'unconfirmed'
if the transaction is not included) and %h is replaced by the
block height (\fB\-1\fR if not included). %w is not currently
implemented on windows. On systems where %w is supported, it
should NOT be quoted because this would break shell escaping used
to invoke the command.
.HP
\fB\-walletrbf\fR
.IP
Send transactions with full\-RBF opt\-in enabled (RPC only, default: 0)
.PP
ZeroMQ notification options:
.HP
\fB\-zmqpubhashblock=\fR<address>
.IP
Enable publish hash block in <address>
.HP
\fB\-zmqpubhashblockhwm=\fR<n>
.IP
Set publish hash block outbound message high water mark (default: 1000)
.HP
\fB\-zmqpubhashtx=\fR<address>
.IP
Enable publish hash transaction in <address>
.HP
\fB\-zmqpubhashtxhwm=\fR<n>
.IP
Set publish hash transaction outbound message high water mark (default:
1000)
.HP
\fB\-zmqpubrawblock=\fR<address>
.IP
Enable publish raw block in <address>
.HP
\fB\-zmqpubrawblockhwm=\fR<n>
.IP
Set publish raw block outbound message high water mark (default: 1000)
.HP
\fB\-zmqpubrawtx=\fR<address>
.IP
Enable publish raw transaction in <address>
.HP
\fB\-zmqpubrawtxhwm=\fR<n>
.IP
Set publish raw transaction outbound message high water mark (default:
1000)
.HP
\fB\-zmqpubsequence=\fR<address>
.IP
Enable publish hash block and tx sequence in <address>
.HP
\fB\-zmqpubsequencehwm=\fR<n>
.IP
Set publish hash sequence message high water mark (default: 1000)
.PP
Debugging/Testing options:
.HP
\fB\-debug=\fR<category>
.IP
Output debugging information (default: \fB\-nodebug\fR, supplying <category> is
optional). If <category> is not supplied or if <category> = 1,
output all debugging information. <category> can be: net, tor,
mempool, http, bench, zmq, walletdb, rpc, estimatefee, addrman,
selectcoins, reindex, cmpctblock, rand, prune, proxy, mempoolrej,
libevent, coindb, qt, leveldb, validation, i2p, ipc. This option
can be specified multiple times to output multiple categories.
.HP
\fB\-debugexclude=\fR<category>
.IP
Exclude debugging information for a category. Can be used in conjunction
with \fB\-debug\fR=\fI\,1\/\fR to output debug logs for all categories except the
specified category. This option can be specified multiple times
to exclude multiple categories.
.HP
\fB\-help\-debug\fR
.IP
Print help message with debugging options and exit
.HP
\fB\-logips\fR
.IP
Include IP addresses in debug output (default: 0)
.HP
\fB\-logsourcelocations\fR
.IP
Prepend debug output with name of the originating source location
(source file, line number and function name) (default: 0)
.HP
\fB\-logthreadnames\fR
.IP
Prepend debug output with name of the originating thread (only available
on platforms supporting thread_local) (default: 0)
.HP
\fB\-logtimestamps\fR
.IP
Prepend debug output with timestamp (default: 1)
.HP
\fB\-maxtxfee=\fR<amt>
.IP
Maximum total fees (in BTC) to use in a single wallet transaction;
setting this too low may abort large transactions (default: 0.10)
.HP
\fB\-printtoconsole\fR
.IP
Send trace/debug info to console (default: 1 when no \fB\-daemon\fR. To disable
logging to file, set \fB\-nodebuglogfile\fR)
.HP
\fB\-shrinkdebugfile\fR
.IP
Shrink debug.log file on client startup (default: 1 when no \fB\-debug\fR)
.HP
\fB\-uacomment=\fR<cmt>
.IP
Append comment to the user agent string
.PP
Chain selection options:
.HP
\fB\-chain=\fR<chain>
.IP
Use the chain <chain> (default: main). Allowed values: main, test,
signet, regtest
.HP
\fB\-signet\fR
.IP
Use the signet chain. Equivalent to \fB\-chain\fR=\fI\,signet\/\fR. Note that the network
is defined by the \fB\-signetchallenge\fR parameter
.HP
\fB\-signetchallenge\fR
.IP
Blocks must satisfy the given script to be considered valid (only for
signet networks; defaults to the global default signet test
network challenge)
.HP
\fB\-signetseednode\fR
.IP
Specify a seed node for the signet network, in the hostname[:port]
format, e.g. sig.net:1234 (may be used multiple times to specify
multiple seed nodes; defaults to the global default signet test
network seed node(s))
.HP
\fB\-testnet\fR
.IP
Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR.
.PP
Node relay options:
.HP
\fB\-bytespersigop\fR
.IP
Equivalent bytes per sigop in transactions for relay and mining
(default: 20)
.HP
\fB\-datacarrier\fR
.IP
Relay and mine data carrier transactions (default: 1)
.HP
\fB\-datacarriersize\fR
.IP
Maximum size of data in data carrier transactions we relay and mine
(default: 83)
.HP
\fB\-minrelaytxfee=\fR<amt>
.IP
Fees (in BTC/kvB) smaller than this are considered zero fee for
relaying, mining and transaction creation (default: 0.00001)
.HP
\fB\-whitelistforcerelay\fR
.IP
Add 'forcerelay' permission to whitelisted inbound peers with default
permissions. This will relay transactions even if the
transactions were already in the mempool. (default: 0)
.HP
\fB\-whitelistrelay\fR
.IP
Add 'relay' permission to whitelisted inbound peers with default
permissions. This will accept relayed transactions even when not
relaying transactions (default: 1)
.PP
Block creation options:
.HP
\fB\-blockmaxweight=\fR<n>
.IP
Set maximum BIP141 block weight (default: 3996000)
.HP
\fB\-blockmintxfee=\fR<amt>
.IP
Set lowest fee rate (in BTC/kvB) for transactions to be included in
block creation. (default: 0.00001)
.PP
RPC server options:
.HP
\fB\-rest\fR
.IP
Accept public REST requests (default: 0)
.HP
\fB\-rpcallowip=\fR<ip>
.IP
Allow JSON\-RPC connections from specified source. Valid for <ip> are a
single IP (e.g. 1.2.3.4), a network/netmask (e.g.
1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This
option can be specified multiple times
.HP
\fB\-rpcauth=\fR<userpw>
.IP
Username and HMAC\-SHA\-256 hashed password for JSON\-RPC connections. The
field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A
canonical python script is included in share/rpcauth. The client
then connects normally using the
rpcuser=<USERNAME>/rpcpassword=<PASSWORD> pair of arguments. This
option can be specified multiple times
.HP
\fB\-rpcbind=\fR<addr>[:port]
.IP
Bind to given address to listen for JSON\-RPC connections. Do not expose
the RPC server to untrusted networks such as the public internet!
This option is ignored unless \fB\-rpcallowip\fR is also passed. Port is
optional and overrides \fB\-rpcport\fR. Use [host]:port notation for
IPv6. This option can be specified multiple times (default:
127.0.0.1 and ::1 i.e., localhost)
.HP
\fB\-rpccookiefile=\fR<loc>
.IP
Location of the auth cookie. Relative paths will be prefixed by a
net\-specific datadir location. (default: data dir)
.HP
\fB\-rpcpassword=\fR<pw>
.IP
Password for JSON\-RPC connections
.HP
\fB\-rpcport=\fR<port>
.IP
Listen for JSON\-RPC connections on <port> (default: 8332, testnet:
18332, signet: 38332, regtest: 18443)
.HP
\fB\-rpcserialversion\fR
.IP
Sets the serialization of raw transaction or block hex returned in
non\-verbose mode, non\-segwit(0) or segwit(1) (default: 1)
.HP
\fB\-rpcthreads=\fR<n>
.IP
Set the number of threads to service RPC calls (default: 4)
.HP
\fB\-rpcuser=\fR<user>
.IP
Username for JSON\-RPC connections
.HP
\fB\-rpcwhitelist=\fR<whitelist>
.IP
Set a whitelist to filter incoming RPC calls for a specific user. The
field <whitelist> comes in the format: <USERNAME>:<rpc 1>,<rpc
2>,...,<rpc n>. If multiple whitelists are set for a given user,
they are set\-intersected. See \fB\-rpcwhitelistdefault\fR documentation
for information on default whitelist behavior.
.HP
\fB\-rpcwhitelistdefault\fR
.IP
Sets default behavior for rpc whitelisting. Unless rpcwhitelistdefault
is set to 0, if any \fB\-rpcwhitelist\fR is set, the rpc server acts as
if all rpc users are subject to empty\-unless\-otherwise\-specified
whitelists. If rpcwhitelistdefault is set to 1 and no
\fB\-rpcwhitelist\fR is set, rpc server acts as if all rpc users are
subject to empty whitelists.
.HP
\fB\-server\fR
.IP
Accept command line and JSON\-RPC commands
.PP
UI Options:
.HP
\fB\-choosedatadir\fR
.IP
Choose data directory on startup (default: 0)
.HP
\fB\-lang=\fR<lang>
.IP
Set language, for example "de_DE" (default: system locale)
.HP
\fB\-min\fR
.IP
Start minimized
.HP
\fB\-resetguisettings\fR
.IP
Reset all settings changed in the GUI
.HP
\fB\-splash\fR
.IP
Show splash screen on startup (default: 1)

View File

@@ -1,5 +1,135 @@
.TH BITCOIN-TX "1"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2.
.TH BITCOIN-TX "1" "December 2022" "bitcoin-tx v22.1.0" "User Commands"
.SH NAME
bitcoin-tx \- manual page for bitcoin-tx
This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release.
bitcoin-tx \- manual page for bitcoin-tx v22.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 v22.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
Set RBF opt\-in sequence number for input N (if not provided, opt\-in all
available inputs)
.IP
sign=SIGHASH\-FLAGS
.IP
Add zero or more signatures to transaction. This command requires JSON
registers:prevtxs=JSON object, privatekeys=JSON object. See
signrawtransactionwithkey docs for format of sighash flags, JSON
objects.
.PP
Register Commands:
.IP
load=NAME:FILENAME
.IP
Load JSON file FILENAME into register NAME
.IP
set=NAME:JSON\-STRING
.IP
Set register NAME to given JSON\-STRING

View File

@@ -1,5 +1,55 @@
.TH BITCOIN-UTIL "1"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2.
.TH BITCOIN-UTIL "1" "December 2022" "bitcoin-util v22.1.0" "User Commands"
.SH NAME
bitcoin-util \- manual page for bitcoin-util
This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release.
bitcoin-util \- manual page for bitcoin-util v22.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 v22.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

View File

@@ -1,5 +1,107 @@
.TH BITCOIN-WALLET "1"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2.
.TH BITCOIN-WALLET "1" "December 2022" "bitcoin-wallet v22.1.0" "User Commands"
.SH NAME
bitcoin-wallet \- manual page for bitcoin-wallet
This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release.
bitcoin-wallet \- manual page for bitcoin-wallet v22.1.0
.SH DESCRIPTION
Bitcoin Core bitcoin\-wallet version v22.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\-testnet\fR/\-regtest 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\-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.

View File

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

View File

@@ -1,25 +1,9 @@
# Release notes now being edited on https://github.com/bitcoin-core/bitcoin-devwiki/wiki/22.0-Release-Notes-draft
22.1 Release Notes
==================
*After branching off for a major version release of Bitcoin Core, use this
template to create the initial release notes draft.*
Bitcoin Core version 22.1 is now available from:
*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.*
*Create the draft, named* "*version* Release Notes Draft"
*(e.g. "0.20.0 Release Notes Draft"), as a collaborative wiki in:*
https://github.com/bitcoin-core/bitcoin-devwiki/wiki/
*Before the final release, move the notes back to this git repository.*
*version* Release Notes Draft
===============================
Bitcoin Core version *version* is now available from:
<https://bitcoincore.org/bin/bitcoin-core-*version*/>
<https://bitcoincore.org/bin/bitcoin-core-22.1/>
This release includes new features, various bug fixes and performance
improvements, as well as updated translations.
@@ -37,7 +21,7 @@ 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 Mac)
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
@@ -58,166 +42,87 @@ From Bitcoin Core 22.0 onwards, macOS versions earlier than 10.14 are no longer
Notable changes
===============
P2P and network changes
-----------------------
- This release removes support for Tor version 2 hidden services in favor of Tor
v3 only, as the Tor network [dropped support for Tor
v2](https://blog.torproject.org/v2-deprecation-timeline) with the release of
Tor version 0.4.6. Henceforth, Bitcoin Core ignores Tor v2 addresses; it
neither rumors them over the network to other peers, nor stores them in memory
or to `peers.dat`. (#22050)
- Added NAT-PMP port mapping support via
[`libnatpmp`](https://miniupnp.tuxfamily.org/libnatpmp.html). (#18077)
Updated RPCs
------------
- Due to [BIP 350](https://github.com/bitcoin/bips/blob/master/bip-0350.mediawiki)
being implemented, behavior for all RPCs that accept addresses is changed when
a native witness version 1 (or higher) is passed. These now require a Bech32m
encoding instead of a Bech32 one, and Bech32m encoding will be used for such
addresses in RPC output as well. No version 1 addresses should be created
for mainnet until consensus rules are adopted that give them meaning
(e.g. through [BIP 341](https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki)).
Once that happens, Bech32m is expected to be used for them, so this shouldn't
affect any production systems, but may be observed on other networks where such
addresses already have meaning (like signet). (#20861)
- The `getpeerinfo` RPC returns two new boolean fields, `bip152_hb_to` and
`bip152_hb_from`, that respectively indicate whether we selected a peer to be
in compact blocks high-bandwidth mode or whether a peer selected us as a
compact blocks high-bandwidth peer. High-bandwidth peers send new block
announcements via a `cmpctblock` message rather than the usual inv/headers
announcements. See BIP 152 for more details. (#19776)
- `getpeerinfo` no longer returns the following fields: `addnode`, `banscore`,
and `whitelisted`, which were previously deprecated in 0.21. Instead of
`addnode`, the `connection_type` field returns manual. Instead of
`whitelisted`, the `permissions` field indicates if the peer has special
privileges. The `banscore` field has simply been removed. (#20755)
- The following RPCs: `gettxout`, `getrawtransaction`, `decoderawtransaction`,
`decodescript`, `gettransaction`, and REST endpoints: `/rest/tx`,
`/rest/getutxos`, `/rest/block` deprecated the following fields (which are no
longer returned in the responses by default): `addresses`, `reqSigs`.
The `-deprecatedrpc=addresses` flag must be passed for these fields to be
included in the RPC response. This flag/option will be available only for this major release, after which
the deprecation will be removed entirely. Note that these fields are attributes of
the `scriptPubKey` object returned in the RPC response. However, in the response
of `decodescript` these fields are top-level attributes, and included again as attributes
of the `scriptPubKey` object. (#20286)
- When creating a hex-encoded bitcoin transaction using the `bitcoin-tx` utility
with the `-json` option set, the following fields: `addresses`, `reqSigs` are no longer
returned in the tx output of the response. (#20286)
- The `listbanned` RPC now returns two new numeric fields: `ban_duration` and `time_remaining`.
Respectively, these new fields indicate the duration of a ban and the time remaining until a ban expires,
both in seconds. Additionally, the `ban_created` field is repositioned to come before `banned_until`. (#21602)
- The `getnodeaddresses` RPC now returns a "network" field indicating the
network type (ipv4, ipv6, onion, or i2p) for each address. (#21594)
- `getnodeaddresses` now also accepts a "network" argument (ipv4, ipv6, onion,
or i2p) to return only addresses of the specified network. (#21843)
- The `testmempoolaccept` RPC now accepts multiple transactions (still experimental at the moment,
API may be unstable). This is intended for testing transaction packages with dependency
relationships; it is not recommended for batch-validating independent transactions. In addition to
mempool policy, package policies apply: the list cannot contain more than 25 transactions or have a
total size exceeding 101K virtual bytes, and cannot conflict with (spend the same inputs as) each other or
the mempool, even if it would be a valid BIP125 replace-by-fee. There are some known limitations to
the accuracy of the test accept: it's possible for `testmempoolaccept` to return "allowed"=True for a
group of transactions, but "too-long-mempool-chain" if they are actually submitted. (#20833)
- `addmultisigaddress` and `createmultisig` now support up to 20 keys for
Segwit addresses. (#20867)
Changes to Wallet or GUI related RPCs can be found in the GUI or Wallet section below.
New RPCs
--------
Build System
------------
New settings
------------
- The `-natpmp` option has been added to use NAT-PMP to map the listening port.
If both UPnP and NAT-PMP are enabled, a successful allocation from UPnP
prevails over one from NAT-PMP. (#18077)
Updated settings
----------------
Changes to Wallet or GUI related settings can be found in the GUI or Wallet section below.
- In previous releases, the meaning of the command line option
`-persistmempool` (without a value provided) incorrectly disabled mempool
persistence. `-persistmempool` is now treated like other boolean options to
mean `-persistmempool=1`. Passing `-persistmempool=0`, `-persistmempool=1`
and `-nopersistmempool` is unaffected. (#23061)
- Passing an invalid `-rpcauth` argument now cause bitcoind to fail to start. (#20461)
### P2P
Tools and Utilities
-------------------
### RPC and other APIs
- A new CLI `-addrinfo` command returns the number of addresses known to the
node per network type (including Tor v2 versus v3) and total. This can be
useful to see if the node knows enough addresses in a network to use options
like `-onlynet=<network>` or to upgrade to this release of Bitcoin Core 22.0
that supports Tor v3 only. (#21595)
- #25237 rpc: Capture UniValue by ref for rpcdoccheck
- #25983 Prevent data race for pathHandlers
- #26275 Fix crash on deriveaddresses when index is 2147483647 (2^31-1)
- A new `-rpcwaittimeout` argument to `bitcoin-cli` sets the timeout
in seconds to use with `-rpcwait`. If the timeout expires,
`bitcoin-cli` will report a failure. (#21056)
### Wallet
Wallet
------
- #22781 wallet: fix the behavior of IsHDEnabled
- #22949 fee: Round up fee calculation to avoid a lower than expected feerate
- #23333 wallet: fix segfault by avoiding invalid default-ctored external_spk_managers entry
- A new `listdescriptors` RPC is available to inspect the contents of descriptor-enabled wallets.
The RPC returns public versions of all imported descriptors, including their timestamp and flags.
For ranged descriptors, it also returns the range boundaries and the next index to generate addresses from. (#20226)
### Build system
- The `bumpfee` RPC is not available with wallets that have private keys
disabled. `psbtbumpfee` can be used instead. (#20891)
- #22820 build, qt: Fix typo in QtInputSupport check
- #23045 build: Restrict check for CRC32C intrinsic to aarch64
- #23148 build: Fix guix linker-loader path and add check_ELF_interpreter
- #23314 build: explicitly disable libsecp256k1 openssl based tests
- #23580 build: patch qt to explicitly define previously implicit header include
- #24215 guix: ignore additional failing certvalidator test
- #24256 build: Bump depends packages (zmq, libXau)
- #25201 windeploy: Renewed windows code signing certificate
- #25985 Revert "build: Use Homebrew's sqlite package if it is available"
- #26633 depends: update qt 5.12 url to archive location
- The `fundrawtransaction`, `send` and `walletcreatefundedpsbt` RPCs now support an `include_unsafe` option
that when `true` allows using unsafe inputs to fund the transaction.
Note that the resulting transaction may become invalid if one of the unsafe inputs disappears.
If that happens, the transaction must be funded with different inputs and republished. (#21359)
### GUI
- We now support up to 20 keys in `multi()` and `sortedmulti()` descriptors
under `wsh()`. (#20867)
- #gui631 Disallow encryption of watchonly wallets
- #gui680 Fixes MacOS 13 segfault by preventing certain notifications
- #24498 qt: Avoid crash on startup if int specified in settings.json
GUI changes
-----------
### Tests
Low-level changes
=================
- #23716 test: replace hashlib.ripemd160 with an own implementation
- #24239 test: fix ceildiv division by using integers
RPC
---
### Utilities
- The RPC server can process a limited number of simultaneous RPC requests.
Previously, if this limit was exceeded, the RPC server would respond with
[status code 500 (`HTTP_INTERNAL_SERVER_ERROR`)](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#5xx_server_errors).
Now it returns status code 503 (`HTTP_SERVICE_UNAVAILABLE`). (#18335)
- #22390 system: skip trying to set the locale on NetBSD
- #22895 don't call GetBlockPos in ReadBlockFromDisk without cs_main lock
- #24104 fs: Make compatible with boost 1.78
- Error codes have been updated to be more accurate for the following error cases (#18466):
- `signmessage` now returns RPC_INVALID_ADDRESS_OR_KEY (-5) if the
passed address is invalid. Previously returned RPC_TYPE_ERROR (-3).
- `verifymessage` now returns RPC_INVALID_ADDRESS_OR_KEY (-5) if the
passed address is invalid. Previously returned RPC_TYPE_ERROR (-3).
- `verifymessage` now returns RPC_TYPE_ERROR (-3) if the passed signature
is malformed. Previously returned RPC_INVALID_ADDRESS_OR_KEY (-5).
### Miscellaneous
Tests
-----
- #23335 refactor: include a missing <limits> header in fs.cpp
- #23504 ci: Replace soon EOL hirsute with jammy
- #26321 Adjust .tx/config for new Transifex CLI
Credits
=======
Thanks to everyone who directly contributed to this release:
- Andrew Chow
- BlackcoinDev
- Carl Dong
- Hennadii Stepanov
- Joan Karadimov
- John Moffett
- Jon Atack
- Kittywhiskers Van Gogh
- Marco Falke
- Martin Zumsande
- Michael Ford
- muxator
- Pieter Wuille
- Ryan Ofsky
- Saibato
- Sebastian Falbesoner
- W. J. van der Laan
As well as to everyone that helped with translations on
[Transifex](https://www.transifex.com/bitcoin/bitcoin/).

File diff suppressed because it is too large Load Diff

View File

@@ -160,6 +160,9 @@ Codesigner only: Sign the windows binaries:
Enter the passphrase for the key when prompted
signature-win.tar.gz will be created
Code-signer only: It is advised to test that the code signature attaches properly prior to tagging by performing the `guix-codesign` step.
However if this is done, once the release has been tagged in the bitcoin-detached-sigs repo, the `guix-codesign` step must be performed again in order for the guix attestation to be valid when compared against the attestations of non-codesigner builds.
Codesigner only: Commit the detached codesign payloads:
```sh
@@ -196,30 +199,22 @@ popd
### After 3 or more people have guix-built and their results match:
Combine `all.SHA256SUMS` and `all.SHA256SUMS.asc` into a clear-signed
`SHA256SUMS.asc` message:
```sh
echo -e "-----BEGIN PGP SIGNED MESSAGE-----\nHash: SHA256\n\n$(cat all.SHA256SUMS)\n$(cat filename.txt.asc)" > SHA256SUMS.asc
```
Here's an equivalent, more readable command if you're confident that you won't
mess up whitespaces when copy-pasting:
Combine the `all.SHA256SUMS.asc` file from all signers into `SHA256SUMS.asc`:
```bash
cat << EOF > SHA256SUMS.asc
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
$(cat all.SHA256SUMS)
$(cat all.SHA256SUMS.asc)
EOF
cat "$VERSION"/*/all.SHA256SUMS.asc > SHA256SUMS.asc
```
- Upload to the bitcoincore.org server (`/var/www/bin/bitcoin-core-${VERSION}`):
1. The contents of `./bitcoin/guix-build-${VERSION}/output`, except for
- Upload to the bitcoincore.org server (`/var/www/bin/bitcoin-core-${VERSION}/`):
1. The contents of each `./bitcoin/guix-build-${VERSION}/output/${HOST}/` directory, except for
`*-debug*` files.
Guix will output all of the results into host subdirectories, but the SHA256SUMS
file does not include these subdirectories. In order for downloads via torrent
to verify without directory structure modification, all of the uploaded files
need to be in the same directory as the SHA256SUMS file.
The `*-debug*` files generated by the guix build contain debug symbols
for troubleshooting by developers. It is assumed that anyone that is
interested in debugging can run guix to generate the files for
@@ -227,7 +222,13 @@ EOF
as save storage space *do not upload these to the bitcoincore.org server,
nor put them in the torrent*.
2. The combined clear-signed message you just created `SHA256SUMS.asc`
```sh
find guix-build-${VERSION}/output/ -maxdepth 2 -type f -not -name "SHA256SUMS.part" -and -not -name "*debug*" -exec scp {} user@bitcoincore.org:/var/www/bin/bitcoin-core-${VERSION} \;
```
2. The `SHA256SUMS` file
3. The `SHA256SUMS.asc` combined signature file you just created
- Create a torrent of the `/var/www/bin/bitcoin-core-${VERSION}` directory such
that at the top level there is only one file: the `bitcoin-core-${VERSION}`

View File

@@ -1,7 +1,7 @@
QT_TS = \
qt/locale/bitcoin_af.ts \
qt/locale/bitcoin_am.ts \
qt/locale/bitcoin_ar.ts \
qt/locale/bitcoin_az.ts \
qt/locale/bitcoin_be.ts \
qt/locale/bitcoin_bg.ts \
qt/locale/bitcoin_bn.ts \
@@ -13,7 +13,6 @@ QT_TS = \
qt/locale/bitcoin_de.ts \
qt/locale/bitcoin_el.ts \
qt/locale/bitcoin_en.ts \
qt/locale/bitcoin_en_GB.ts \
qt/locale/bitcoin_eo.ts \
qt/locale/bitcoin_es.ts \
qt/locale/bitcoin_es_CL.ts \
@@ -27,7 +26,12 @@ QT_TS = \
qt/locale/bitcoin_fi.ts \
qt/locale/bitcoin_fil.ts \
qt/locale/bitcoin_fr.ts \
qt/locale/bitcoin_ga.ts \
qt/locale/bitcoin_gd.ts \
qt/locale/bitcoin_gl.ts \
qt/locale/bitcoin_gl_ES.ts \
qt/locale/bitcoin_gu.ts \
qt/locale/bitcoin_ha.ts \
qt/locale/bitcoin_he.ts \
qt/locale/bitcoin_hi.ts \
qt/locale/bitcoin_hr.ts \
@@ -38,6 +42,7 @@ QT_TS = \
qt/locale/bitcoin_ja.ts \
qt/locale/bitcoin_ka.ts \
qt/locale/bitcoin_kk.ts \
qt/locale/bitcoin_kl.ts \
qt/locale/bitcoin_km.ts \
qt/locale/bitcoin_ko.ts \
qt/locale/bitcoin_ku_IQ.ts \
@@ -54,12 +59,14 @@ QT_TS = \
qt/locale/bitcoin_nb.ts \
qt/locale/bitcoin_ne.ts \
qt/locale/bitcoin_nl.ts \
qt/locale/bitcoin_no.ts \
qt/locale/bitcoin_pam.ts \
qt/locale/bitcoin_pl.ts \
qt/locale/bitcoin_pt.ts \
qt/locale/bitcoin_pt_BR.ts \
qt/locale/bitcoin_ro.ts \
qt/locale/bitcoin_ru.ts \
qt/locale/bitcoin_sc.ts \
qt/locale/bitcoin_si.ts \
qt/locale/bitcoin_sk.ts \
qt/locale/bitcoin_sl.ts \
@@ -68,11 +75,15 @@ QT_TS = \
qt/locale/bitcoin_sr.ts \
qt/locale/bitcoin_sr@latin.ts \
qt/locale/bitcoin_sv.ts \
qt/locale/bitcoin_sw.ts \
qt/locale/bitcoin_szl.ts \
qt/locale/bitcoin_ta.ts \
qt/locale/bitcoin_te.ts \
qt/locale/bitcoin_th.ts \
qt/locale/bitcoin_tk.ts \
qt/locale/bitcoin_tl.ts \
qt/locale/bitcoin_tr.ts \
qt/locale/bitcoin_ug.ts \
qt/locale/bitcoin_uk.ts \
qt/locale/bitcoin_ur.ts \
qt/locale/bitcoin_uz@Cyrl.ts \

View File

@@ -683,12 +683,20 @@ static const uint8_t chainparams_seed_main[] = {
0x04,0x20,0x98,0xc6,0x44,0x27,0x90,0x41,0xa6,0x98,0xf9,0x25,0x6c,0x59,0x0f,0x06,0x6d,0x44,0x59,0x0e,0xb2,0x46,0xb0,0xa4,0x37,0x88,0x69,0x8f,0xc1,0x32,0xcd,0x9f,0x15,0xd7,0x20,0x8d,
0x04,0x20,0xaa,0x3a,0x16,0x86,0xea,0x59,0x09,0x04,0x78,0xe5,0x10,0x92,0xe1,0x1d,0xad,0xf7,0x56,0x2b,0xac,0xb0,0x97,0x29,0x63,0x30,0xf4,0x1b,0xcf,0xde,0xf3,0x28,0x0a,0x29,0x20,0x8d,
0x04,0x20,0xbc,0x27,0xae,0x89,0xc1,0x67,0x73,0x0a,0x08,0x02,0xdf,0xb7,0xcc,0x94,0xc7,0x9f,0xf4,0x72,0x7a,0x9b,0x20,0x0c,0x5c,0x11,0x3d,0x22,0xd6,0x13,0x88,0x66,0x74,0xbf,0x20,0x8d,
0x05,0x20,0xfe,0x97,0xba,0x09,0x2a,0xa4,0x85,0x10,0xa1,0x04,0x7b,0x88,0x7a,0x5a,0x06,0x53,0x71,0x93,0x3b,0xf9,0xa2,0x2f,0xd9,0xe3,0x8f,0xa5,0xa2,0xac,0x1e,0x6c,0x6c,0x8c,0x00,0x00,
0x05,0x20,0xe1,0xd6,0xb8,0xfa,0xdd,0xeb,0x03,0x32,0x30,0x3b,0x20,0x6a,0xbc,0xaf,0x99,0x4f,0xa0,0xa2,0x72,0x48,0xfe,0x44,0xe0,0xf6,0x03,0xc1,0xbd,0xb6,0x24,0xd0,0xf6,0xb8,0x00,0x00,
0x05,0x20,0xf4,0xb7,0xb4,0xcd,0xf5,0xb6,0x54,0x82,0x27,0x6d,0x29,0x7b,0x06,0x7f,0x52,0x59,0xa0,0xb4,0xdc,0xf7,0x6f,0xb4,0x71,0xcf,0xcc,0xfb,0x6b,0x86,0xc2,0x57,0x80,0xc6,0x00,0x00,
0x05,0x20,0x07,0x61,0x26,0xd7,0x6c,0x05,0xbf,0xf6,0x2d,0x8c,0xca,0xc4,0x65,0xd3,0xd3,0xb2,0x49,0xe9,0xcc,0x53,0x1e,0xca,0x77,0x84,0xb6,0x10,0x5e,0xc2,0x5a,0xfe,0x28,0xb3,0x00,0x00,
0x05,0x20,0x0a,0x26,0x27,0x45,0xb1,0x1e,0xfc,0x27,0x03,0x32,0x0e,0x65,0x9e,0x3c,0x64,0x0e,0x33,0x50,0x3d,0x6c,0x90,0x17,0x0e,0x29,0xee,0x5a,0x58,0xdf,0x08,0xde,0xbf,0x73,0x00,0x00,
0x05,0x20,0x17,0x0c,0x56,0xce,0x72,0xa5,0xa0,0xe6,0x23,0x06,0xa3,0xc7,0x08,0x43,0x18,0xee,0x3a,0x46,0x35,0x5d,0x17,0xf6,0x78,0x96,0xa0,0x9c,0x51,0xef,0xbe,0x23,0xfd,0x71,0x00,0x00,
0x05,0x20,0x19,0xe7,0x0d,0x3f,0xfe,0x9e,0x0e,0x8e,0x73,0x40,0x40,0xc3,0xba,0x8f,0x41,0xaf,0xf1,0x7b,0xa6,0x83,0x1b,0xc3,0xa4,0xe0,0x6d,0x6c,0x57,0xa7,0x36,0x5d,0x09,0xce,0x00,0x00,
0x05,0x20,0x31,0x0f,0x30,0x0b,0x9d,0x70,0x0c,0x7c,0xf7,0x98,0x7e,0x1c,0xf4,0x33,0xdc,0x64,0x17,0xf7,0x00,0x7a,0x0c,0x04,0xb5,0x83,0xfc,0x5f,0xa6,0x52,0x39,0x79,0x63,0x87,0x00,0x00,
0x05,0x20,0x3e,0xe3,0xe0,0xa9,0xbc,0xf4,0x2e,0x59,0xd9,0x20,0xee,0xdf,0x74,0x61,0x4d,0x99,0x0c,0x5c,0x15,0x30,0x9b,0x72,0x16,0x79,0x15,0xf4,0x7a,0xca,0x34,0xcc,0x81,0x99,0x00,0x00,
0x05,0x20,0x3b,0x42,0x1c,0x25,0xf7,0xbf,0x79,0xed,0x6d,0x7d,0xef,0x65,0x30,0x7d,0xee,0x16,0x37,0x22,0x72,0x43,0x33,0x28,0x40,0xa3,0xaa,0xf4,0x48,0x49,0x67,0xb1,0x4b,0xfd,0x00,0x00,
0x05,0x20,0x7a,0x65,0xf7,0x47,0x42,0x9d,0x66,0x42,0x3b,0xb3,0xa7,0x03,0x6c,0x46,0x78,0x19,0x28,0x78,0x1e,0xa3,0x7c,0x67,0x44,0xb7,0x83,0x05,0xe3,0xfe,0xa5,0xe4,0x0a,0x6e,0x00,0x00,
0x05,0x20,0x46,0xce,0x21,0x81,0x48,0xce,0xa7,0x8a,0x98,0xca,0xb1,0x0b,0x51,0xa5,0xc8,0xff,0x39,0xc5,0x1a,0xa3,0xd3,0x02,0x32,0xa3,0x29,0xad,0x79,0xb8,0x7f,0x34,0x51,0x33,0x00,0x00,
0x05,0x20,0x4e,0x77,0x2e,0x12,0x91,0x67,0x6b,0x94,0xc4,0x92,0x2f,0x19,0x67,0x7d,0xcd,0x47,0x02,0xad,0xf8,0x60,0x72,0xed,0x73,0xf1,0x10,0x99,0x2c,0x05,0x61,0x66,0x55,0xd9,0x00,0x00,
0x05,0x20,0x53,0x94,0xa6,0x3e,0x14,0x82,0xd4,0xf9,0xd3,0xa7,0x53,0x33,0x05,0xce,0x72,0x64,0xed,0x74,0x09,0x63,0x8f,0x24,0xef,0xda,0x12,0xa1,0x55,0xe0,0xd8,0xbb,0xd3,0x58,0x00,0x00,
0x05,0x20,0x55,0x62,0x32,0x7d,0x82,0x32,0x4f,0x9d,0xdf,0x24,0x5c,0xed,0x8e,0x1a,0x5a,0x8d,0xc6,0x50,0xb4,0x32,0xd5,0x85,0xef,0xb0,0xfa,0x7c,0xf9,0xbb,0x25,0x89,0x6b,0x03,0x00,0x00,
0x05,0x20,0x91,0xcf,0xa2,0x5b,0x04,0x33,0x69,0x66,0xb0,0x72,0x27,0x54,0xbe,0xcd,0xd8,0x08,0xeb,0x95,0x55,0x5a,0xc2,0x79,0x91,0x3a,0xd9,0xf2,0x2c,0x73,0x9f,0x78,0x50,0xca,0x00,0x00,
0x05,0x20,0xb5,0x83,0x6f,0xb6,0x11,0xd8,0x0e,0xa8,0x57,0xda,0x15,0x20,0x5b,0x1a,0x6d,0x21,0x15,0x5a,0xbd,0xb4,0x17,0x11,0xc2,0xfb,0x0e,0xfc,0xde,0xe8,0x26,0x56,0xa8,0xac,0x00,0x00,
0x05,0x20,0xcc,0xaf,0x6c,0x3b,0xd0,0x13,0x76,0x23,0xc3,0x36,0xbb,0x64,0x4a,0x4a,0x06,0x93,0x69,0x6d,0xb0,0x10,0x6e,0x66,0xa4,0x61,0xf8,0x2d,0xe7,0x80,0x72,0x4d,0x53,0x94,0x00,0x00,
};

View File

@@ -30,8 +30,10 @@ const std::string CLIENT_NAME("Satoshi");
#define BUILD_DESC BUILD_GIT_TAG
#define BUILD_SUFFIX ""
#else
#define BUILD_DESC "v" STRINGIZE(CLIENT_VERSION_MAJOR) "." STRINGIZE(CLIENT_VERSION_MINOR) "." STRINGIZE(CLIENT_VERSION_BUILD)
#ifdef BUILD_GIT_COMMIT
#define BUILD_DESC "v" PACKAGE_VERSION
#if CLIENT_VERSION_IS_RELEASE
#define BUILD_SUFFIX ""
#elif defined(BUILD_GIT_COMMIT)
#define BUILD_SUFFIX "-" BUILD_GIT_COMMIT
#elif defined(GIT_COMMIT_ID)
#define BUILD_SUFFIX "-g" GIT_COMMIT_ID

View File

@@ -23,7 +23,7 @@ enum BuriedDeployment : int16_t {
DEPLOYMENT_CSV,
DEPLOYMENT_SEGWIT,
};
constexpr bool ValidDeployment(BuriedDeployment dep) { return DEPLOYMENT_HEIGHTINCB <= dep && dep <= DEPLOYMENT_SEGWIT; }
constexpr bool ValidDeployment(BuriedDeployment dep) { return dep <= DEPLOYMENT_SEGWIT; }
enum DeploymentPos : uint16_t {
DEPLOYMENT_TESTDUMMY,
@@ -31,7 +31,7 @@ enum DeploymentPos : uint16_t {
// NOTE: Also add new deployments to VersionBitsDeploymentInfo in deploymentinfo.cpp
MAX_VERSION_BITS_DEPLOYMENTS
};
constexpr bool ValidDeployment(DeploymentPos dep) { return DEPLOYMENT_TESTDUMMY <= dep && dep <= DEPLOYMENT_TAPROOT; }
constexpr bool ValidDeployment(DeploymentPos dep) { return dep < MAX_VERSION_BITS_DEPLOYMENTS; }
/**
* Struct for each individual consensus rule change using BIP9.

View File

@@ -7,6 +7,8 @@
#include <consensus/params.h>
#include <versionbits.h>
#include <type_traits>
VersionBitsCache g_versionbitscache;
/* Basic sanity checking for BuriedDeployment/DeploymentPos enums and
@@ -15,3 +17,18 @@ VersionBitsCache g_versionbitscache;
static_assert(ValidDeployment(Consensus::DEPLOYMENT_TESTDUMMY), "sanity check of DeploymentPos failed (TESTDUMMY not valid)");
static_assert(!ValidDeployment(Consensus::MAX_VERSION_BITS_DEPLOYMENTS), "sanity check of DeploymentPos failed (MAX value considered valid)");
static_assert(!ValidDeployment(static_cast<Consensus::BuriedDeployment>(Consensus::DEPLOYMENT_TESTDUMMY)), "sanity check of BuriedDeployment failed (overlaps with DeploymentPos)");
/* ValidDeployment only checks upper bounds for ensuring validity.
* This checks that the lowest possible value or the type is also a
* (specific) valid deployment so that lower bounds don't need to be checked.
*/
template<typename T, T x>
static constexpr bool is_minimum()
{
using U = typename std::underlying_type<T>::type;
return x == std::numeric_limits<U>::min();
}
static_assert(is_minimum<Consensus::BuriedDeployment, Consensus::DEPLOYMENT_HEIGHTINCB>(), "heightincb is not minimum value for BuriedDeployment");
static_assert(is_minimum<Consensus::DeploymentPos, Consensus::DEPLOYMENT_TESTDUMMY>(), "testdummy is not minimum value for DeploymentPos");

View File

@@ -16,6 +16,7 @@
#define NOMINMAX
#endif
#include <codecvt>
#include <limits>
#include <windows.h>
#endif
@@ -242,7 +243,11 @@ void ofstream::close()
}
#else // __GLIBCXX__
#if BOOST_VERSION >= 107700
static_assert(sizeof(*BOOST_FILESYSTEM_C_STR(fs::path())) == sizeof(wchar_t),
#else
static_assert(sizeof(*fs::path().BOOST_FILESYSTEM_C_STR) == sizeof(wchar_t),
#endif // BOOST_VERSION >= 107700
"Warning: This build is using boost::filesystem ofstream and ifstream "
"implementations which will fail to open paths containing multibyte "
"characters. You should delete this static_assert to ignore this warning, "

View File

@@ -138,7 +138,8 @@ static std::vector<CSubNet> rpc_allow_subnets;
//! Work queue for handling longer requests off the event loop thread
static std::unique_ptr<WorkQueue<HTTPClosure>> g_work_queue{nullptr};
//! Handlers for (sub)paths
static std::vector<HTTPPathHandler> pathHandlers;
static Mutex g_httppathhandlers_mutex;
static std::vector<HTTPPathHandler> pathHandlers GUARDED_BY(g_httppathhandlers_mutex);
//! Bound listening sockets
static std::vector<evhttp_bound_socket *> boundSockets;
@@ -239,6 +240,7 @@ static void http_request_cb(struct evhttp_request* req, void* arg)
// Find registered handler for prefix
std::string strURI = hreq->GetURI();
std::string path;
LOCK(g_httppathhandlers_mutex);
std::vector<HTTPPathHandler>::const_iterator i = pathHandlers.begin();
std::vector<HTTPPathHandler>::const_iterator iend = pathHandlers.end();
for (; i != iend; ++i) {
@@ -633,11 +635,13 @@ HTTPRequest::RequestMethod HTTPRequest::GetRequestMethod() const
void RegisterHTTPHandler(const std::string &prefix, bool exactMatch, const HTTPRequestHandler &handler)
{
LogPrint(BCLog::HTTP, "Registering HTTP handler for %s (exactmatch %d)\n", prefix, exactMatch);
LOCK(g_httppathhandlers_mutex);
pathHandlers.push_back(HTTPPathHandler(prefix, exactMatch, handler));
}
void UnregisterHTTPHandler(const std::string &prefix, bool exactMatch)
{
LOCK(g_httppathhandlers_mutex);
std::vector<HTTPPathHandler>::iterator i = pathHandlers.begin();
std::vector<HTTPPathHandler>::iterator iend = pathHandlers.end();
for (; i != iend; ++i)

View File

@@ -217,7 +217,7 @@ void Shutdown(NodeContext& node)
node.banman.reset();
node.addrman.reset();
if (node.mempool && node.mempool->IsLoaded() && node.args->GetArg("-persistmempool", DEFAULT_PERSIST_MEMPOOL)) {
if (node.mempool && node.mempool->IsLoaded() && node.args->GetBoolArg("-persistmempool", DEFAULT_PERSIST_MEMPOOL)) {
DumpMempool(*node.mempool);
}

View File

@@ -394,18 +394,14 @@ bool ReadBlockFromDisk(CBlock& block, const FlatFilePos& pos, const Consensus::P
bool ReadBlockFromDisk(CBlock& block, const CBlockIndex* pindex, const Consensus::Params& consensusParams)
{
FlatFilePos blockPos;
{
LOCK(cs_main);
blockPos = pindex->GetBlockPos();
}
const FlatFilePos block_pos{WITH_LOCK(cs_main, return pindex->GetBlockPos())};
if (!ReadBlockFromDisk(block, blockPos, consensusParams)) {
if (!ReadBlockFromDisk(block, block_pos, consensusParams)) {
return false;
}
if (block.GetHash() != pindex->GetBlockHash()) {
return error("ReadBlockFromDisk(CBlock&, CBlockIndex*): GetHash() doesn't match index for %s at %s",
pindex->ToString(), pindex->GetBlockPos().ToString());
pindex->ToString(), block_pos.ToString());
}
return true;
}

View File

@@ -7,6 +7,8 @@
#include <tinyformat.h>
#include <cmath>
CFeeRate::CFeeRate(const CAmount& nFeePaid, uint32_t num_bytes)
{
const int64_t nSize{num_bytes};
@@ -22,7 +24,9 @@ CAmount CFeeRate::GetFee(uint32_t num_bytes) const
{
const int64_t nSize{num_bytes};
CAmount nFee = nSatoshisPerK * nSize / 1000;
// Be explicit that we're converting from a double to int64_t (CAmount) here.
// We've previously had issues with the silent double->int64_t conversion.
CAmount nFee{static_cast<CAmount>(std::ceil(nSatoshisPerK * nSize / 1000.0))};
if (nFee == 0 && nSize != 0) {
if (nSatoshisPerK > 0) nFee = CAmount(1);

View File

@@ -48,6 +48,7 @@ public:
CFeeRate(const CAmount& nFeePaid, uint32_t num_bytes);
/**
* Return the fee in satoshis for the given size in bytes.
* If the calculated fee would have fractional satoshis, then the returned fee will always be rounded up to the nearest satoshi.
*/
CAmount GetFee(uint32_t num_bytes) const;
/**

View File

@@ -1,8 +1,8 @@
<!DOCTYPE RCC><RCC version="1.0">
<qresource prefix="/translations">
<file alias="af">locale/bitcoin_af.qm</file>
<file alias="am">locale/bitcoin_am.qm</file>
<file alias="ar">locale/bitcoin_ar.qm</file>
<file alias="az">locale/bitcoin_az.qm</file>
<file alias="be">locale/bitcoin_be.qm</file>
<file alias="bg">locale/bitcoin_bg.qm</file>
<file alias="bn">locale/bitcoin_bn.qm</file>
@@ -14,7 +14,6 @@
<file alias="de">locale/bitcoin_de.qm</file>
<file alias="el">locale/bitcoin_el.qm</file>
<file alias="en">locale/bitcoin_en.qm</file>
<file alias="en_GB">locale/bitcoin_en_GB.qm</file>
<file alias="eo">locale/bitcoin_eo.qm</file>
<file alias="es">locale/bitcoin_es.qm</file>
<file alias="es_CL">locale/bitcoin_es_CL.qm</file>
@@ -28,7 +27,12 @@
<file alias="fi">locale/bitcoin_fi.qm</file>
<file alias="fil">locale/bitcoin_fil.qm</file>
<file alias="fr">locale/bitcoin_fr.qm</file>
<file alias="ga">locale/bitcoin_ga.qm</file>
<file alias="gd">locale/bitcoin_gd.qm</file>
<file alias="gl">locale/bitcoin_gl.qm</file>
<file alias="gl_ES">locale/bitcoin_gl_ES.qm</file>
<file alias="gu">locale/bitcoin_gu.qm</file>
<file alias="ha">locale/bitcoin_ha.qm</file>
<file alias="he">locale/bitcoin_he.qm</file>
<file alias="hi">locale/bitcoin_hi.qm</file>
<file alias="hr">locale/bitcoin_hr.qm</file>
@@ -39,6 +43,7 @@
<file alias="ja">locale/bitcoin_ja.qm</file>
<file alias="ka">locale/bitcoin_ka.qm</file>
<file alias="kk">locale/bitcoin_kk.qm</file>
<file alias="kl">locale/bitcoin_kl.qm</file>
<file alias="km">locale/bitcoin_km.qm</file>
<file alias="ko">locale/bitcoin_ko.qm</file>
<file alias="ku_IQ">locale/bitcoin_ku_IQ.qm</file>
@@ -55,12 +60,14 @@
<file alias="nb">locale/bitcoin_nb.qm</file>
<file alias="ne">locale/bitcoin_ne.qm</file>
<file alias="nl">locale/bitcoin_nl.qm</file>
<file alias="no">locale/bitcoin_no.qm</file>
<file alias="pam">locale/bitcoin_pam.qm</file>
<file alias="pl">locale/bitcoin_pl.qm</file>
<file alias="pt">locale/bitcoin_pt.qm</file>
<file alias="pt_BR">locale/bitcoin_pt_BR.qm</file>
<file alias="ro">locale/bitcoin_ro.qm</file>
<file alias="ru">locale/bitcoin_ru.qm</file>
<file alias="sc">locale/bitcoin_sc.qm</file>
<file alias="si">locale/bitcoin_si.qm</file>
<file alias="sk">locale/bitcoin_sk.qm</file>
<file alias="sl">locale/bitcoin_sl.qm</file>
@@ -69,11 +76,15 @@
<file alias="sr">locale/bitcoin_sr.qm</file>
<file alias="sr@latin">locale/bitcoin_sr@latin.qm</file>
<file alias="sv">locale/bitcoin_sv.qm</file>
<file alias="sw">locale/bitcoin_sw.qm</file>
<file alias="szl">locale/bitcoin_szl.qm</file>
<file alias="ta">locale/bitcoin_ta.qm</file>
<file alias="te">locale/bitcoin_te.qm</file>
<file alias="th">locale/bitcoin_th.qm</file>
<file alias="tk">locale/bitcoin_tk.qm</file>
<file alias="tl">locale/bitcoin_tl.qm</file>
<file alias="tr">locale/bitcoin_tr.qm</file>
<file alias="ug">locale/bitcoin_ug.qm</file>
<file alias="uk">locale/bitcoin_uk.qm</file>
<file alias="ur">locale/bitcoin_ur.qm</file>
<file alias="uz@Cyrl">locale/bitcoin_uz@Cyrl.qm</file>

View File

@@ -488,7 +488,7 @@ void BitcoinGUI::createMenuBar()
connect(minimize_action, &QAction::triggered, [] {
QApplication::activeWindow()->showMinimized();
});
connect(qApp, &QApplication::focusWindowChanged, [minimize_action] (QWindow* window) {
connect(qApp, &QApplication::focusWindowChanged, this, [minimize_action] (QWindow* window) {
minimize_action->setEnabled(window != nullptr && (window->flags() & Qt::Dialog) != Qt::Dialog && window->windowState() != Qt::WindowMinimized);
});
@@ -503,7 +503,7 @@ void BitcoinGUI::createMenuBar()
}
});
connect(qApp, &QApplication::focusWindowChanged, [zoom_action] (QWindow* window) {
connect(qApp, &QApplication::focusWindowChanged, this, [zoom_action] (QWindow* window) {
zoom_action->setEnabled(window != nullptr);
});
#endif
@@ -682,8 +682,6 @@ void BitcoinGUI::addWallet(WalletModel* walletModel)
m_wallet_selector_label_action->setVisible(true);
m_wallet_selector_action->setVisible(true);
}
const QString display_name = walletModel->getDisplayName();
m_wallet_selector->addItem(display_name, QVariant::fromValue(walletModel));
connect(wallet_view, &WalletView::outOfSyncWarningClicked, this, &BitcoinGUI::showModalOverlay);
connect(wallet_view, &WalletView::transactionClicked, this, &BitcoinGUI::gotoHistoryPage);
@@ -696,6 +694,8 @@ void BitcoinGUI::addWallet(WalletModel* walletModel)
connect(wallet_view, &WalletView::hdEnabledStatusChanged, this, &BitcoinGUI::updateWalletStatus);
connect(this, &BitcoinGUI::setPrivacy, wallet_view, &WalletView::setPrivacy);
wallet_view->setPrivacy(isPrivacyModeActivated());
const QString display_name = walletModel->getDisplayName();
m_wallet_selector->addItem(display_name, QVariant::fromValue(walletModel));
}
void BitcoinGUI::removeWallet(WalletModel* walletModel)
@@ -1310,6 +1310,12 @@ void BitcoinGUI::setEncryptionStatus(int status)
{
switch(status)
{
case WalletModel::NoKeys:
labelWalletEncryptionIcon->hide();
encryptWalletAction->setChecked(false);
changePassphraseAction->setEnabled(false);
encryptWalletAction->setEnabled(false);
break;
case WalletModel::Unencrypted:
labelWalletEncryptionIcon->hide();
encryptWalletAction->setChecked(false);

View File

@@ -32,7 +32,7 @@ CreateWalletDialog::CreateWalletDialog(QWidget* parent) :
// set to true, enable it when isEncryptWalletChecked is false.
ui->disable_privkeys_checkbox->setEnabled(!checked);
#ifdef ENABLE_EXTERNAL_SIGNER
ui->external_signer_checkbox->setEnabled(!checked);
ui->external_signer_checkbox->setEnabled(m_has_signers && !checked);
#endif
// When the disable_privkeys_checkbox is disabled, uncheck it.
if (!ui->disable_privkeys_checkbox->isEnabled()) {
@@ -115,7 +115,8 @@ CreateWalletDialog::~CreateWalletDialog()
void CreateWalletDialog::setSigners(const std::vector<ExternalSigner>& signers)
{
if (!signers.empty()) {
m_has_signers = !signers.empty();
if (m_has_signers) {
ui->external_signer_checkbox->setEnabled(true);
ui->external_signer_checkbox->setChecked(true);
ui->encrypt_wallet_checkbox->setEnabled(false);

View File

@@ -35,6 +35,7 @@ public:
private:
Ui::CreateWalletDialog *ui;
bool m_has_signers = false;
};
#endif // BITCOIN_QT_CREATEWALLETDIALOG_H

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,9 @@
<TS language="am" version="2.1">
<TS version="2.1" language="am">
<context>
<name>AddressBookPage</name>
<message>
<source>Right-click to edit address or label</source>
<translation> </translation>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Create a new address</source>
@@ -11,7 +11,7 @@
</message>
<message>
<source>&amp;New</source>
<translation>&amp;</translation>
<translation type="unfinished">&amp;</translation>
</message>
<message>
<source>Copy the currently selected address to the system clipboard</source>
@@ -19,11 +19,11 @@
</message>
<message>
<source>&amp;Copy</source>
<translation>&amp;</translation>
<translation type="unfinished">&amp;</translation>
</message>
<message>
<source>C&amp;lose</source>
<translation></translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete the currently selected address from the list</source>
@@ -43,70 +43,67 @@
</message>
<message>
<source>Choose the address to send coins to</source>
<translation>/ </translation>
<translation type="unfinished">/ </translation>
</message>
<message>
<source>Choose the address to receive coins with</source>
<translation>/ </translation>
<translation type="unfinished">/ </translation>
</message>
<message>
<source>C&amp;hoose</source>
<translation></translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Sending addresses</source>
<translation> </translation>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Receiving addresses</source>
<translation> </translation>
<translation type="unfinished"> </translation>
</message>
<message>
<source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
<translation> :: / ::</translation>
<translation type="unfinished"> :: / ::</translation>
</message>
<message>
<source>&amp;Copy Address</source>
<translation>&amp; </translation>
<translation type="unfinished">&amp; </translation>
</message>
<message>
<source>Copy &amp;Label</source>
<translation> &amp; </translation>
<translation type="unfinished"> &amp; </translation>
</message>
<message>
<source>&amp;Edit</source>
<translation> &amp;</translation>
<translation type="unfinished"> &amp;</translation>
</message>
<message>
<source>Export Address List</source>
<translation> </translation>
</message>
<message>
<source>Comma separated file (*.csv)</source>
<translation> (*.csv)</translation>
</message>
<message>
<source>Exporting Failed</source>
<translation> </translation>
<translation type="unfinished"> </translation>
</message>
<message>
<source>There was an error trying to save the address list to %1. Please try again.</source>
<translation> %1 :: ::</translation>
<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>
<name>AddressTableModel</name>
<message>
<source>Label</source>
<translation> </translation>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Address</source>
<translation></translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>(no label)</source>
<translation>( )</translation>
<translation type="unfinished">( )</translation>
</message>
</context>
<context>
@@ -129,102 +126,135 @@
</message>
<message>
<source>Encrypt wallet</source>
<translation> </translation>
<translation type="unfinished"> </translation>
</message>
<message>
<source>This operation needs your wallet passphrase to unlock the wallet.</source>
<translation> - ::</translation>
<translation type="unfinished"> - ::</translation>
</message>
<message>
<source>Unlock wallet</source>
<translation> </translation>
</message>
<message>
<source>This operation needs your wallet passphrase to decrypt the wallet.</source>
<translation> - ::</translation>
</message>
<message>
<source>Decrypt wallet</source>
<translation> </translation>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Change passphrase</source>
<translation>- </translation>
<translation type="unfinished">- </translation>
</message>
<message>
<source>Confirm wallet encryption</source>
<translation> </translation>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Warning: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!</source>
<translation>ማስጠንቀቂያ: የቢትኮይን - &lt;b&gt; &lt;/b&gt;!</translation>
<translation type="unfinished">ማስጠንቀቂያ: የቢትኮይን - &lt;b&gt; &lt;/b&gt;!</translation>
</message>
<message>
<source>Are you sure you wish to encrypt your wallet?</source>
<translation> ?</translation>
<translation type="unfinished"> ?</translation>
</message>
<message>
<source>Wallet encrypted</source>
<translation> </translation>
<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>አስፈላጊ: . , ::</translation>
<translation type="unfinished">አስፈላጊ: . , ::</translation>
</message>
<message>
<source>Wallet encryption failed</source>
<translation> </translation>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
<translation> :: ::</translation>
<translation type="unfinished"> :: ::</translation>
</message>
<message>
<source>The supplied passphrases do not match.</source>
<translation> - ::</translation>
<translation type="unfinished"> - ::</translation>
</message>
<message>
<source>Wallet unlock failed</source>
<translation> </translation>
<translation type="unfinished"> </translation>
</message>
<message>
<source>The passphrase entered for the wallet decryption was incorrect.</source>
<translation> - ::</translation>
</message>
<message>
<source>Wallet decryption failed</source>
<translation> </translation>
<translation type="unfinished"> - ::</translation>
</message>
<message>
<source>Wallet passphrase was successfully changed.</source>
<translation> - .</translation>
<translation type="unfinished"> - .</translation>
</message>
<message>
<source>Warning: The Caps Lock key is on!</source>
<translation>ማስጠንቀቂያ: "Caps Lock" !</translation>
<translation type="unfinished">ማስጠንቀቂያ: "Caps Lock" !</translation>
</message>
</context>
<context>
<name>BanTableModel</name>
<message>
<source>IP/Netmask</source>
<translation>/ IP/Netmask</translation>
<translation type="unfinished">/ IP/Netmask</translation>
</message>
<message>
<source>Banned Until</source>
<translation> </translation>
<translation type="unfinished"> </translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<source>Error: %1</source>
<translation type="unfinished"> %1</translation>
</message>
<message>
<source>Amount</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<source>%n second(s)</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n minute(s)</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n hour(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n day(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n week(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n year(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
</context>
<context>
<name>BitcoinGUI</name>
<message>
<source>Sign &amp;message...</source>
<translation> ...</translation>
</message>
<message>
<source>Synchronizing with network...</source>
<translation> ...</translation>
</message>
<message>
<source>&amp;Overview</source>
<translation>&amp; </translation>
@@ -251,11 +281,11 @@
</message>
<message>
<source>&amp;About %1</source>
<translation>&amp; %1</translation>
<translation type="unfinished">&amp; %1</translation>
</message>
<message>
<source>Show information about %1</source>
<translation> %1 </translation>
<translation type="unfinished"> %1 </translation>
</message>
<message>
<source>About &amp;Qt</source>
@@ -266,164 +296,418 @@
<translation> Qt </translation>
</message>
<message>
<source>&amp;Options...</source>
<translation>&amp;...</translation>
<source>Create a new wallet</source>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Wallet:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Send</source>
<translation>&amp;</translation>
</message>
<message>
<source>&amp;Receive</source>
<translation>&amp;</translation>
</message>
<message>
<source>&amp;Show / Hide</source>
<translation>&amp;/ </translation>
</message>
<message>
<source>&amp;File</source>
<translation>&amp;</translation>
</message>
<message>
<source>&amp;Settings</source>
<translation>&amp;</translation>
</message>
<message>
<source>&amp;Help</source>
<translation>&amp;</translation>
</message>
<message numerus="yes">
<source>Processed %n block(s) of transaction history.</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
<message>
<source>Error</source>
<translation></translation>
</message>
<message>
<source>Warning</source>
<translation></translation>
</message>
<message>
<source>Information</source>
<translation></translation>
</message>
<message>
<source>Open Wallet</source>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Open a wallet</source>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Close wallet</source>
<translation type="unfinished"> </translation>
</message>
<message>
<source>default wallet</source>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Minimize</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Zoom</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<source>%n active connection(s) to Bitcoin network.</source>
<extracomment>A substring of the tooltip.</extracomment>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
<message>
<source>Error: %1</source>
<translation type="unfinished"> %1</translation>
</message>
<message>
<source>Warning: %1</source>
<translation type="unfinished"> %1</translation>
</message>
<message>
<source>Date: %1
</source>
<translation type="unfinished"> %1
</translation>
</message>
<message>
<source>Amount: %1
</source>
<translation type="unfinished"> %1
</translation>
</message>
<message>
<source>Address: %1
</source>
<translation type="unfinished"> %1
</translation>
</message>
</context>
<context>
<name>CoinControlDialog</name>
<message>
<source>Quantity:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Amount:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fee:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Amount</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Date</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy amount</source>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Copy fee</source>
<translation type="unfinished"> </translation>
</message>
<message>
<source>yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>no</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>(no label)</source>
<translation>( )</translation>
<translation type="unfinished">( )</translation>
</message>
</context>
<context>
<name>CreateWalletActivity</name>
<name>OpenWalletActivity</name>
<message>
<source>default wallet</source>
<translation type="unfinished"> </translation>
</message>
</context>
<context>
<name>WalletController</name>
<message>
<source>Close wallet</source>
<translation type="unfinished"> </translation>
</message>
</context>
<context>
<name>CreateWalletDialog</name>
</context>
<context>
<name>EditAddressDialog</name>
<message>
<source>Wallet Name</source>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Create</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FreespaceChecker</name>
</context>
<context>
<name>HelpMessageDialog</name>
<message>
<source>name</source>
<translation></translation>
</message>
</context>
<context>
<name>Intro</name>
<message>
<source>Bitcoin</source>
<translation type="unfinished"></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 />
</translation>
</message>
<message>
<source>Error</source>
<translation></translation>
</message>
<message>
<source>Welcome</source>
<translation> </translation>
</message>
<message>
<source>Welcome to %1.</source>
<translation type="unfinished"> %1 </translation>
</message>
</context>
<context>
<name>HelpMessageDialog</name>
<message>
<source>version</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>About %1</source>
<translation type="unfinished"> %1</translation>
</message>
</context>
<context>
<name>ModalOverlay</name>
</context>
<context>
<name>OpenURIDialog</name>
</context>
<context>
<name>OpenWalletActivity</name>
<message>
<source>Form</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Hide</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OptionsDialog</name>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OverviewPage</name>
</context>
<context>
<name>PSBTOperationsDialog</name>
</context>
<context>
<name>PaymentServer</name>
<message>
<source>Form</source>
<translation></translation>
</message>
</context>
<context>
<name>PeerTableModel</name>
</context>
<context>
<name>QObject</name>
</context>
<context>
<name>QRImageWidget</name>
</context>
<context>
<name>RPCConsole</name>
</context>
<context>
<name>ReceiveCoinsDialog</name>
<message>
<source>Address</source>
<extracomment>Title of Peers Table column which contains the IP/Onion/I2P address of the connected peer.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ReceiveRequestDialog</name>
<message>
<source>Amount:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Wallet:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RecentRequestsTableModel</name>
<message>
<source>Date</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Label</source>
<translation> </translation>
<translation type="unfinished"> </translation>
</message>
<message>
<source>(no label)</source>
<translation>( )</translation>
<translation type="unfinished">( )</translation>
</message>
</context>
<context>
<name>SendCoinsDialog</name>
<message>
<source>Quantity:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Amount:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fee:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Hide</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy amount</source>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Copy fee</source>
<translation type="unfinished"> </translation>
</message>
<message numerus="yes">
<source>Estimated to begin confirmation within %n block(s).</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
<message>
<source>(no label)</source>
<translation>( )</translation>
<translation type="unfinished">( )</translation>
</message>
</context>
<context>
<name>SendCoinsEntry</name>
</context>
<context>
<name>ShutdownWindow</name>
</context>
<context>
<name>SignVerifyMessageDialog</name>
</context>
<context>
<name>TrafficGraphWidget</name>
</context>
<context>
<name>TransactionDesc</name>
</context>
<context>
<name>TransactionDescDialog</name>
<message numerus="yes">
<source>Open for %n more block(s)</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
<message>
<source>Date</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<source>matures in %n more block(s)</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
<message>
<source>Amount</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TransactionTableModel</name>
<message>
<source>Date</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Label</source>
<translation> </translation>
<translation type="unfinished"> </translation>
</message>
<message numerus="yes">
<source>Open for %n more block(s)</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
<message>
<source>(no label)</source>
<translation>( )</translation>
<translation type="unfinished">( )</translation>
</message>
</context>
<context>
<name>TransactionView</name>
<message>
<source>Comma separated file (*.csv)</source>
<translation> (*.csv)</translation>
<source>Date</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Label</source>
<translation> </translation>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Address</source>
<translation></translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Exporting Failed</source>
<translation> </translation>
<translation type="unfinished"> </translation>
</message>
</context>
<context>
<name>UnitDisplayStatusBarControl</name>
</context>
<context>
<name>WalletController</name>
</context>
<context>
<name>WalletFrame</name>
</context>
<message>
<source>Create a new wallet</source>
<translation type="unfinished"> </translation>
</message>
</context>
<context>
<name>WalletModel</name>
</context>
<message>
<source>default wallet</source>
<translation type="unfinished"> </translation>
</message>
</context>
<context>
<name>WalletView</name>
<message>
<source>&amp;Export</source>
<translation>&amp;</translation>
<translation type="unfinished">&amp;</translation>
</message>
<message>
<source>Export the data in the current tab to a file</source>
<translation> </translation>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>bitcoin-core</name>
</context>
</TS>

File diff suppressed because it is too large Load Diff

1334
src/qt/locale/bitcoin_az.ts Normal file

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

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

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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -749,8 +749,8 @@ Signing is only possible with addresses of the type &apos;legacy&apos;.</source>
<source>%n active connection(s) to Bitcoin network.</source>
<extracomment>A substring of the tooltip.</extracomment>
<translation type="unfinished">
<numerusform></numerusform>
<numerusform></numerusform>
<numerusform>%n active connection to Bitcoin network.</numerusform>
<numerusform>%n active connections to Bitcoin network.</numerusform>
</translation>
</message>
<message>
@@ -1376,8 +1376,8 @@ Signing is only possible with addresses of the type &apos;legacy&apos;.</source>
<source>(sufficient to restore backups %n day(s) old)</source>
<extracomment>Explanatory text on the capability of the current prune target.</extracomment>
<translation type="unfinished">
<numerusform></numerusform>
<numerusform></numerusform>
<numerusform>(sufficient to restore backups %n day old)</numerusform>
<numerusform>(sufficient to restore backups %n days old)</numerusform>
</translation>
</message>
<message>

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

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

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

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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

3642
src/qt/locale/bitcoin_ga.ts Normal file

File diff suppressed because it is too large Load Diff

246
src/qt/locale/bitcoin_gd.ts Normal file
View File

@@ -0,0 +1,246 @@
<TS version="2.1" language="gd">
<context>
<name>AddressBookPage</name>
<message>
<source>Right-click to edit address or label</source>
<translation type="unfinished">Dèan briogadh deas airson seòladh no bileag a dheasachadh</translation>
</message>
<message>
<source>Create a new address</source>
<translation>Cruthaich seòladh ùr</translation>
</message>
<message>
<source>Copy the currently selected address to the system clipboard</source>
<translation>Dèan lethbhreac den t-seòladh a chaidh a thaghadh an-dràsta gu cairt-bhòrd an t-siostaim</translation>
</message>
<message>
<source>Delete the currently selected address from the list</source>
<translation>Thoir às an seòladh a chaidh a thaghadh an-dràsta bhon liosta</translation>
</message>
<message>
<source>Choose the address to send coins to</source>
<translation type="unfinished">Tagh an seòladh airson buinn a chuir thuige</translation>
</message>
<message>
<source>Sending addresses</source>
<translation type="unfinished">A cur sheòlaidhean</translation>
</message>
</context>
<context>
<name>AddressTableModel</name>
<message>
<source>Address</source>
<translation type="unfinished">Seòladh</translation>
</message>
</context>
<context>
<name>QObject</name>
<message numerus="yes">
<source>%n second(s)</source>
<translation>
<numerusform />
<numerusform />
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n minute(s)</source>
<translation>
<numerusform />
<numerusform />
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n hour(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n day(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n week(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n year(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform />
<numerusform />
</translation>
</message>
</context>
<context>
<name>BitcoinGUI</name>
<message numerus="yes">
<source>Processed %n block(s) of transaction history.</source>
<translation>
<numerusform />
<numerusform />
<numerusform />
<numerusform />
</translation>
</message>
<message>
<source>Error</source>
<translation>Mearachd</translation>
</message>
<message>
<source>Warning</source>
<translation>Rabhadh</translation>
</message>
<message>
<source>Information</source>
<translation>Fiosrachadh</translation>
</message>
<message numerus="yes">
<source>%n active connection(s) to Bitcoin network.</source>
<extracomment>A substring of the tooltip.</extracomment>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform />
<numerusform />
</translation>
</message>
</context>
<context>
<name>CreateWalletDialog</name>
<message>
<source>Wallet Name</source>
<translation type="unfinished">Ainm Wallet</translation>
</message>
</context>
<context>
<name>FreespaceChecker</name>
<message>
<source>name</source>
<translation>ainm</translation>
</message>
</context>
<context>
<name>Intro</name>
<message numerus="yes">
<source>(sufficient to restore backups %n day(s) old)</source>
<extracomment>Explanatory text on the capability of the current prune target.</extracomment>
<translation type="unfinished">
<numerusform />
<numerusform />
<numerusform />
<numerusform />
</translation>
</message>
<message>
<source>Error</source>
<translation>Mearachd</translation>
</message>
</context>
<context>
<name>ModalOverlay</name>
<message>
<source>Form</source>
<translation type="unfinished">Fhoirm</translation>
</message>
</context>
<context>
<name>OptionsDialog</name>
<message>
<source>Error</source>
<translation type="unfinished">Mearachd</translation>
</message>
</context>
<context>
<name>OverviewPage</name>
<message>
<source>Form</source>
<translation>Fhoirm</translation>
</message>
</context>
<context>
<name>PeerTableModel</name>
<message>
<source>Address</source>
<extracomment>Title of Peers Table column which contains the IP/Onion/I2P address of the connected peer.</extracomment>
<translation type="unfinished">Seòladh</translation>
</message>
</context>
<context>
<name>SendCoinsDialog</name>
<message numerus="yes">
<source>Estimated to begin confirmation within %n block(s).</source>
<translation>
<numerusform />
<numerusform />
<numerusform />
<numerusform />
</translation>
</message>
</context>
<context>
<name>TransactionDesc</name>
<message numerus="yes">
<source>Open for %n more block(s)</source>
<translation>
<numerusform />
<numerusform />
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>matures in %n more block(s)</source>
<translation>
<numerusform />
<numerusform />
<numerusform />
<numerusform />
</translation>
</message>
</context>
<context>
<name>TransactionTableModel</name>
<message numerus="yes">
<source>Open for %n more block(s)</source>
<translation>
<numerusform />
<numerusform />
<numerusform />
<numerusform />
</translation>
</message>
</context>
<context>
<name>TransactionView</name>
<message>
<source>Address</source>
<translation type="unfinished">Seòladh</translation>
</message>
</context>
<context>
<name>WalletView</name>
<message>
<source>Error</source>
<translation type="unfinished">Mearachd</translation>
</message>
</context>
</TS>

1759
src/qt/locale/bitcoin_gl.ts Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

344
src/qt/locale/bitcoin_gu.ts Normal file
View File

@@ -0,0 +1,344 @@
<TS version="2.1" language="gu">
<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> </translation>
</message>
<message>
<source>&amp;New</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy the currently selected address to the system clipboard</source>
<translation> િ િ </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>િ </translation>
</message>
<message>
<source>Enter address or label to search</source>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Export the data in the current tab to a file</source>
<translation> િ િ </translation>
</message>
<message>
<source>&amp;Export</source>
<translation>&amp; િ </translation>
</message>
<message>
<source>&amp;Delete</source>
<translation>&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>Sending addresses</source>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Receiving addresses</source>
<translation type="unfinished"> </translation>
</message>
<message>
<source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
<translation type="unfinished"> , િ િ .</translation>
</message>
<message>
<source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.
Signing is only possible with addresses of the type 'legacy'.</source>
<translation type="unfinished"> . "મેળવવા" "ચૂકવણું લેવા માટે નવું સરનામુ બનાવો" .
િિ '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>Exporting Failed</source>
<translation type="unfinished">િ િ િ </translation>
</message>
</context>
<context>
<name>AddressTableModel</name>
<message>
<source>Label</source>
<translation type="unfinished">િ</translation>
</message>
<message>
<source>Address</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>(no label)</source>
<translation type="unfinished"> </translation>
</message>
</context>
<context>
<name>AskPassphraseDialog</name>
<message>
<source>Passphrase Dialog</source>
<translation> </translation>
</message>
<message>
<source>Enter passphrase</source>
<translation> </translation>
</message>
<message>
<source>New passphrase</source>
<translation> </translation>
</message>
<message>
<source>Repeat new passphrase</source>
<translation> </translation>
</message>
<message>
<source>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>
<message>
<source>Unlock wallet</source>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Change passphrase</source>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Confirm wallet encryption</source>
<translation type="unfinished">િ </translation>
</message>
<message>
<source>Warning: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!</source>
<translation type="unfinished">: letલેટ િ , િ !</translation>
</message>
<message>
<source>Are you sure you wish to encrypt your wallet?</source>
<translation type="unfinished"> િ ?</translation>
</message>
<message>
<source>Wallet encrypted</source>
<translation type="unfinished"> િ </translation>
</message>
</context>
<context>
<name>QObject</name>
<message numerus="yes">
<source>%n second(s)</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n minute(s)</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n hour(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n day(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n week(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n year(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
</context>
<context>
<name>BitcoinGUI</name>
<message numerus="yes">
<source>Processed %n block(s) of transaction history.</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n active connection(s) to Bitcoin network.</source>
<extracomment>A substring of the tooltip.</extracomment>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
</context>
<context>
<name>CoinControlDialog</name>
<message>
<source>(no label)</source>
<translation type="unfinished"> </translation>
</message>
</context>
<context>
<name>Intro</name>
<message numerus="yes">
<source>(sufficient to restore backups %n day(s) old)</source>
<extracomment>Explanatory text on the capability of the current prune target.</extracomment>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
</context>
<context>
<name>PeerTableModel</name>
<message>
<source>Address</source>
<extracomment>Title of Peers Table column which contains the IP/Onion/I2P address of the connected peer.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RecentRequestsTableModel</name>
<message>
<source>Label</source>
<translation type="unfinished">િ</translation>
</message>
<message>
<source>(no label)</source>
<translation type="unfinished"> </translation>
</message>
</context>
<context>
<name>SendCoinsDialog</name>
<message numerus="yes">
<source>Estimated to begin confirmation within %n block(s).</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
<message>
<source>(no label)</source>
<translation type="unfinished"> </translation>
</message>
</context>
<context>
<name>TransactionDesc</name>
<message numerus="yes">
<source>Open for %n more block(s)</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>matures in %n more block(s)</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
</context>
<context>
<name>TransactionTableModel</name>
<message>
<source>Label</source>
<translation type="unfinished">િ</translation>
</message>
<message numerus="yes">
<source>Open for %n more block(s)</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
<message>
<source>(no label)</source>
<translation type="unfinished"> </translation>
</message>
</context>
<context>
<name>TransactionView</name>
<message>
<source>Label</source>
<translation type="unfinished">િ</translation>
</message>
<message>
<source>Address</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Exporting Failed</source>
<translation type="unfinished">િ િ િ </translation>
</message>
</context>
<context>
<name>WalletView</name>
<message>
<source>&amp;Export</source>
<translation type="unfinished">&amp; િ </translation>
</message>
<message>
<source>Export the data in the current tab to a file</source>
<translation type="unfinished"> િ િ </translation>
</message>
</context>
</TS>

181
src/qt/locale/bitcoin_ha.ts Normal file
View File

@@ -0,0 +1,181 @@
<TS version="2.1" language="ha">
<context>
<name>AddressBookPage</name>
<message>
<source>Right-click to edit address or label</source>
<translation type="unfinished">Danna dama don gyara adireshi ko labil</translation>
</message>
<message>
<source>Create a new address</source>
<translation>Ƙirƙiri sabon adireshi</translation>
</message>
<message>
<source>&amp;New</source>
<translation type="unfinished">Sabontawa</translation>
</message>
<message>
<source>Copy the currently selected address to the system clipboard</source>
<translation>Kwafi adireshin da aka zaɓa a halin yanzu domin yin amfani dashi</translation>
</message>
<message>
<source>Delete the currently selected address from the list</source>
<translation>Share adireshin da aka zaɓa a halin yanzu daga jerin </translation>
</message>
<message>
<source>Enter address or label to search</source>
<translation type="unfinished">Shigar da adireshi ko lakabi don bincika</translation>
</message>
<message>
<source>Export the data in the current tab to a file</source>
<translation>Fitar da bayanan da ke cikin shafin na yanzu zuwa fayil</translation>
</message>
<message>
<source>&amp;Export</source>
<translation>&amp; Fitarwa</translation>
</message>
<message>
<source>&amp;Delete</source>
<translation>&amp;Sharewa</translation>
</message>
<message>
<source>Choose the address to receive coins with</source>
<translation type="unfinished">Zaɓi adireshin don karɓar kuɗi internet da shi</translation>
</message>
<message>
<source>Receiving addresses</source>
<translation type="unfinished">Adireshi da za a karba dashi</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">Waɗannan adiresoshin Bitcoin ne don tura kuɗi bitcoin . ka tabbatar da cewa adreshin daidai ne kamin ka tura abua a ciki</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">Waɗannan adiresoshin Bitcoin ne don karɓar kuɗi. Yi amfani da maɓallin 'Ƙirƙiri sabon adireshin karɓa' a cikin shafin karɓa don ƙirƙirar sababbin adireshi.
zaka iya shiga ne kawai da adiresoshin 'na musamman' kawai.</translation>
</message>
</context>
<context>
<name>QObject</name>
<message numerus="yes">
<source>%n second(s)</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n minute(s)</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n hour(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n day(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n week(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n year(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
</context>
<context>
<name>BitcoinGUI</name>
<message numerus="yes">
<source>Processed %n block(s) of transaction history.</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n active connection(s) to Bitcoin network.</source>
<extracomment>A substring of the tooltip.</extracomment>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
</context>
<context>
<name>Intro</name>
<message numerus="yes">
<source>(sufficient to restore backups %n day(s) old)</source>
<extracomment>Explanatory text on the capability of the current prune target.</extracomment>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
</context>
<context>
<name>SendCoinsDialog</name>
<message numerus="yes">
<source>Estimated to begin confirmation within %n block(s).</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
</context>
<context>
<name>TransactionDesc</name>
<message numerus="yes">
<source>Open for %n more block(s)</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>matures in %n more block(s)</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
</context>
<context>
<name>TransactionTableModel</name>
<message numerus="yes">
<source>Open for %n more block(s)</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
</context>
<context>
<name>WalletView</name>
<message>
<source>&amp;Export</source>
<translation type="unfinished">&amp; Fitarwa</translation>
</message>
<message>
<source>Export the data in the current tab to a file</source>
<translation type="unfinished">Fitar da bayanan da ke cikin shafin na yanzu zuwa fayil</translation>
</message>
</context>
</TS>

File diff suppressed because it is too large Load Diff

View File

@@ -1,820 +1,173 @@
<TS language="hi" version="2.1">
<TS version="2.1" language="hi">
<context>
<name>AddressBookPage</name>
<message>
<source>Right-click to edit address or label</source>
<translation> ि </translation>
<translation type="unfinished"> ि ि -ि
 </translation>
</message>
<message>
<source>Create a new address</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<source>&amp;New</source>
<translation></translation>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Copy the currently selected address to the system clipboard</source>
<translation> ि ि </translation>
<translation> ि ि </translation>
</message>
<message>
<source>&amp;Copy</source>
<translation>&amp;</translation>
<translation type="unfinished"> </translation>
</message>
<message>
<source>C&amp;lose</source>
<translation>&amp; </translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete the currently selected address from the list</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<source>Enter address or label to search</source>
<translation> ि </translation>
<translation type="unfinished"> ि </translation>
</message>
<message>
<source>Export the data in the current tab to a file</source>
<translation> ि </translation>
<translation> ि </translation>
</message>
<message>
<source>&amp;Export</source>
<translation>&amp;ि</translation>
<translation> ि</translation>
</message>
<message>
<source>&amp;Delete</source>
<translation>&amp;ि</translation>
<translation> </translation>
</message>
<message>
<source>Choose the address to send coins to</source>
<translation> ि </translation>
</message>
<message>
<source>Choose the address to receive coins with</source>
<translation> ि </translation>
</message>
<message>
<source>C&amp;hoose</source>
<translation>&amp;</translation>
</message>
<message>
<source>Sending addresses</source>
<translation> </translation>
</message>
<message>
<source>Receiving addresses</source>
<translation> ि </translation>
</message>
<message>
<source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
<translation> ि ि ि </translation>
</message>
<message>
<source>&amp;Copy Address</source>
<translation>&amp; </translation>
</message>
<message>
<source>Copy &amp;Label</source>
<translation> &amp; </translation>
</message>
<message>
<source>&amp;Edit</source>
<translation>&amp; </translation>
</message>
<message>
<source>Export Address List</source>
<translation> ि </translation>
</message>
<message>
<source>Comma separated file (*.csv)</source>
<translation> (* .csv)</translation>
</message>
<message>
<source>Exporting Failed</source>
<translation>ि ि </translation>
</message>
<message>
<source>There was an error trying to save the address list to %1. Please try again.</source>
<translation> %1 ि पुन: प्रय </translation>
</message>
</context>
</context>
<context>
<name>AddressTableModel</name>
<message>
<source>Label</source>
<translation></translation>
<name>QObject</name>
<message numerus="yes">
<source>%n second(s)</source>
<translation>
<numerusform>%n second</numerusform>
<numerusform>%n seconds</numerusform>
</translation>
</message>
<message>
<source>Address</source>
<translation></translation>
<message numerus="yes">
<source>%n minute(s)</source>
<translation>
<numerusform>%n minute</numerusform>
<numerusform>%n minutes</numerusform>
</translation>
</message>
<message>
<source>(no label)</source>
<translation>( )</translation>
<message numerus="yes">
<source>%n hour(s)</source>
<translation type="unfinished">
<numerusform>%n hour</numerusform>
<numerusform>%n hours</numerusform>
</translation>
</message>
</context>
<context>
<name>AskPassphraseDialog</name>
<message>
<source>Passphrase Dialog</source>
<translation> </translation>
<message numerus="yes">
<source>%n day(s)</source>
<translation type="unfinished">
<numerusform>%n day</numerusform>
<numerusform>%n days</numerusform>
</translation>
</message>
<message>
<source>Enter passphrase</source>
<translation> </translation>
<message numerus="yes">
<source>%n week(s)</source>
<translation type="unfinished">
<numerusform>%n week</numerusform>
<numerusform>%n weeks</numerusform>
</translation>
</message>
<message>
<source>New passphrase</source>
<translation> </translation>
<message numerus="yes">
<source>%n year(s)</source>
<translation type="unfinished">
<numerusform>%n year</numerusform>
<numerusform>%n years</numerusform>
</translation>
</message>
<message>
<source>Repeat new passphrase</source>
<translation> </translation>
</message>
<message>
<source>Show passphrase</source>
<translation> </translation>
</message>
<message>
<source>Encrypt wallet</source>
<translation> ि </translation>
</message>
<message>
<source>This operation needs your wallet passphrase to unlock the wallet.</source>
<translation> </translation>
</message>
<message>
<source>Unlock wallet</source>
<translation> </translation>
</message>
<message>
<source>This operation needs your wallet passphrase to decrypt the wallet.</source>
<translation> ि </translation>
</message>
<message>
<source>Decrypt wallet</source>
<translation> िि </translation>
</message>
<message>
<source>Change passphrase</source>
<translation> </translation>
</message>
<message>
<source>Confirm wallet encryption</source>
<translation> ि ि </translation>
</message>
<message>
<source>Warning: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!</source>
<translation>: ि ि &lt;b&gt; ि &lt;/b&gt;!</translation>
</message>
<message>
<source>Are you sure you wish to encrypt your wallet?</source>
<translation> िि ि ि ?</translation>
</message>
<message>
<source>Wallet encrypted</source>
<translation> ि ि </translation>
</message>
<message>
<source>Enter the new passphrase for the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;ten or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
<translation> | ि, ि ि ि </translation>
</message>
<message>
<source>Enter the old passphrase and new passphrase for the wallet.</source>
<translation> </translation>
</message>
<message>
<source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
<translation> ि () ि ि ि ि </translation>
</message>
<message>
<source>Wallet to be encrypted</source>
<translation> "वॉलेट" ि ि </translation>
</message>
<message>
<source>Your wallet is about to be encrypted. </source>
<translation> "वॉलेट" ि </translation>
</message>
<message>
<source>Your wallet is now encrypted. </source>
<translation> "वॉलेट" ि </translation>
</message>
<message>
<source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
<translation>महत्वपूर्ण: ि ि , ि ि ि ि , ि ि , ि </translation>
</message>
<message>
<source>Wallet encryption failed</source>
<translation> ि ि </translation>
</message>
<message>
<source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
<translation>ि ि ि ि "बटुआ" ि ि </translation>
</message>
<message>
<source>The supplied passphrases do not match.</source>
<translation>ि ि </translation>
</message>
<message>
<source>Wallet unlock failed</source>
<translation> ि </translation>
</message>
<message>
<source>The passphrase entered for the wallet decryption was incorrect.</source>
<translation> िि ि ि </translation>
</message>
<message>
<source>Wallet decryption failed</source>
<translation> िि ि</translation>
</message>
<message>
<source>Wallet passphrase was successfully changed.</source>
<translation> ि </translation>
</message>
<message>
<source>Warning: The Caps Lock key is on!</source>
<translation>: !</translation>
</message>
</context>
<context>
<name>BanTableModel</name>
<message>
<source>IP/Netmask</source>
<translation> / "Netmask"</translation>
</message>
<message>
<source>Banned Until</source>
<translation> ि</translation>
</message>
</context>
</context>
<context>
<name>BitcoinGUI</name>
<message>
<source>Sign &amp;message...</source>
<translation> ...</translation>
<source>Close Wallet</source>
<translation type="unfinished"> ...</translation>
</message>
<message>
<source>Synchronizing with network...</source>
<translation> ि ...</translation>
<source>Create Wallet</source>
<translation type="unfinished"> ...</translation>
</message>
<message>
<source>&amp;Overview</source>
<translation>&amp;ि</translation>
<source>Close All Wallets</source>
<translation type="unfinished"> ...</translation>
</message>
<message>
<source>Show general overview of wallet</source>
<translation> ि ि !</translation>
<message numerus="yes">
<source>Processed %n block(s) of transaction history.</source>
<translation>
<numerusform>Processed %n block of transaction history.</numerusform>
<numerusform>Processed %n blocks of transaction history.</numerusform>
</translation>
</message>
<message>
<source>&amp;Transactions</source>
<translation>&amp; -
</translation>
</message>
<message>
<source>Browse transaction history</source>
<translation>ि - ि !</translation>
</message>
<message>
<source>E&amp;xit</source>
<translation> </translation>
</message>
<message>
<source>Quit application</source>
<translation>ि ि !</translation>
</message>
<message>
<source>&amp;About %1</source>
<translation> %1 </translation>
</message>
<message>
<source>Show information about %1</source>
<translation>%1 ि</translation>
</message>
<message>
<source>About &amp;Qt</source>
<translation> "Qt"</translation>
</message>
<message>
<source>Show information about Qt</source>
<translation> "Qt" ि</translation>
</message>
<message>
<source>&amp;Options...</source>
<translation>&amp;ि</translation>
</message>
<message>
<source>&amp;Encrypt Wallet...</source>
<translation> ि "एन्क्रिप्ट" </translation>
</message>
<message>
<source>&amp;Backup Wallet...</source>
<translation>&amp; </translation>
</message>
<message>
<source>&amp;Change Passphrase...</source>
<translation> </translation>
</message>
<message>
<source>Wallet:</source>
<translation>ि</translation>
</message>
<message>
<source>Send coins to a Bitcoin address</source>
<translation> ि </translation>
</message>
<message>
<source>Change the passphrase used for wallet encryption</source>
<translation> / ि ि ि ि!</translation>
</message>
<message>
<source>&amp;File</source>
<translation>&amp;</translation>
</message>
<message>
<source>&amp;Settings</source>
<translation>&amp;ि</translation>
</message>
<message>
<source>&amp;Help</source>
<translation>&amp;</translation>
</message>
<message>
<source>Tabs toolbar</source>
<translation> </translation>
</message>
<message>
<source>%1 behind</source>
<translation>%1 </translation>
</message>
<message>
<source>Error</source>
<translation></translation>
</message>
<message>
<source>Warning</source>
<translation></translation>
</message>
<message>
<source>Information</source>
<translation></translation>
</message>
<message>
<source>Up to date</source>
<translation></translation>
</message>
<message>
<source>Open a wallet</source>
<translation> </translation>
</message>
<message>
<source>Close Wallet...</source>
<translation> ...</translation>
</message>
<message>
<source>Close wallet</source>
<translation> </translation>
</message>
<message>
<source>Close All Wallets...</source>
<translation> ...</translation>
</message>
<message>
<source>Sent transaction</source>
<translation> </translation>
</message>
<message>
<source>Incoming transaction</source>
<translation> </translation>
</message>
<message>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
<translation> ि </translation>
</message>
<message>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
<translation> ि </translation>
</message>
</context>
<context>
<name>CoinControlDialog</name>
<message>
<source>Quantity:</source>
<translation> :</translation>
</message>
<message>
<source>Amount:</source>
<translation>ि :</translation>
</message>
<message>
<source>Amount</source>
<translation>ि</translation>
</message>
<message>
<source>Date</source>
<translation>taareek</translation>
</message>
<message>
<source>Confirmed</source>
<translation></translation>
</message>
<message>
<source>yes</source>
<translation></translation>
</message>
<message>
<source>no</source>
<translation></translation>
</message>
<message>
<source>(no label)</source>
<translation>( )</translation>
</message>
</context>
<context>
<name>CreateWalletActivity</name>
</context>
<context>
<name>CreateWalletDialog</name>
</context>
<context>
<name>EditAddressDialog</name>
<message>
<source>Edit Address</source>
<translation> ि </translation>
</message>
<message>
<source>&amp;Label</source>
<translation>&amp;</translation>
</message>
<message>
<source>&amp;Address</source>
<translation>&amp;</translation>
</message>
</context>
<context>
<name>FreespaceChecker</name>
</context>
<context>
<name>HelpMessageDialog</name>
<message>
<source>version</source>
<translation></translation>
<message numerus="yes">
<source>%n active connection(s) to Bitcoin network.</source>
<extracomment>A substring of the tooltip.</extracomment>
<translation type="unfinished">
<numerusform>%n active connection(s) to Bitcoin network.</numerusform>
<numerusform>%n active connection(s) to Bitcoin network.</numerusform>
</translation>
</message>
</context>
<context>
<name>Intro</name>
<message>
<source>Bitcoin</source>
<translation></translation>
</message>
<message>
<source>Error</source>
<translation></translation>
</message>
</context>
<context>
<name>ModalOverlay</name>
<message>
<source>Form</source>
<translation></translation>
</message>
</context>
<context>
<name>OpenURIDialog</name>
</context>
<context>
<name>OpenWalletActivity</name>
</context>
<context>
<name>OptionsDialog</name>
<message>
<source>Options</source>
<translation>ि</translation>
</message>
<message>
<source>W&amp;allet</source>
<translation></translation>
</message>
<message>
<source>&amp;OK</source>
<translation>&amp;</translation>
</message>
<message>
<source>&amp;Cancel</source>
<translation>&amp;</translation>
</message>
<message>
<source>Error</source>
<translation></translation>
</message>
</context>
<context>
<name>OverviewPage</name>
<message>
<source>Form</source>
<translation></translation>
</message>
</context>
<context>
<name>PSBTOperationsDialog</name>
</context>
<context>
<name>PaymentServer</name>
</context>
<context>
<name>PeerTableModel</name>
</context>
<context>
<name>QObject</name>
<message>
<source>Amount</source>
<translation>ि</translation>
</message>
<message>
<source>N/A</source>
<translation>
</translation>
</message>
<message>
<source>unknown</source>
<translation></translation>
</message>
</context>
<context>
<name>QRImageWidget</name>
</context>
<context>
<name>RPCConsole</name>
<message>
<source>N/A</source>
<translation>
</translation>
</message>
<message>
<source>&amp;Information</source>
<translation></translation>
</message>
</context>
<context>
<name>ReceiveCoinsDialog</name>
<message>
<source>&amp;Amount:</source>
<translation>ि :</translation>
</message>
<message>
<source>&amp;Label:</source>
<translation>:</translation>
</message>
</context>
<context>
<name>ReceiveRequestDialog</name>
<message>
<source>Amount:</source>
<translation>ि :</translation>
</message>
<message>
<source>Wallet:</source>
<translation>ि</translation>
</message>
<message>
<source>Copy &amp;Address</source>
<translation>&amp; </translation>
</message>
</context>
<context>
<name>RecentRequestsTableModel</name>
<message>
<source>Date</source>
<translation>taareek</translation>
</message>
<message>
<source>Label</source>
<translation></translation>
</message>
<message>
<source>(no label)</source>
<translation>( )</translation>
<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>(sufficient to restore backups %n day(s) old)</numerusform>
<numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
</translation>
</message>
</context>
<context>
<name>SendCoinsDialog</name>
<message>
<source>Send Coins</source>
<translation>ि |</translation>
<message numerus="yes">
<source>Estimated to begin confirmation within %n block(s).</source>
<translation>
<numerusform>Estimated to begin confirmation within %n block.</numerusform>
<numerusform>Estimated to begin confirmation within %n blocks.</numerusform>
</translation>
</message>
<message>
<source>Quantity:</source>
<translation> :</translation>
</message>
<message>
<source>Amount:</source>
<translation>ि :</translation>
</message>
<message>
<source>Send to multiple recipients at once</source>
<translation> </translation>
</message>
<message>
<source>Balance:</source>
<translation> :</translation>
</message>
<message>
<source>Confirm the send action</source>
<translation> ि </translation>
</message>
<message>
<source>(no label)</source>
<translation>( )</translation>
</message>
</context>
<context>
<name>SendCoinsEntry</name>
<message>
<source>A&amp;mount:</source>
<translation>:</translation>
</message>
<message>
<source>Pay &amp;To:</source>
<translation>:</translation>
</message>
<message>
<source>&amp;Label:</source>
<translation>:</translation>
</message>
<message>
<source>Alt+A</source>
<translation>Alt-A</translation>
</message>
<message>
<source>Paste address from clipboard</source>
<translation>Clipboard paste </translation>
</message>
<message>
<source>Alt+P</source>
<translation>Alt-P</translation>
</message>
<message>
<source>Pay To:</source>
<translation>:</translation>
</message>
</context>
<context>
<name>ShutdownWindow</name>
</context>
<context>
<name>SignVerifyMessageDialog</name>
<message>
<source>Alt+A</source>
<translation>Alt-A</translation>
</message>
<message>
<source>Paste address from clipboard</source>
<translation>Clipboard paste </translation>
</message>
<message>
<source>Alt+P</source>
<translation>Alt-P</translation>
</message>
<message>
<source>Signature</source>
<translation></translation>
</message>
</context>
<context>
<name>TrafficGraphWidget</name>
</context>
<context>
<name>TransactionDesc</name>
<message>
<source>Date</source>
<translation>ि</translation>
<message numerus="yes">
<source>Open for %n more block(s)</source>
<translation>
<numerusform>Open for %n more block</numerusform>
<numerusform>Open for %n more blocks</numerusform>
</translation>
</message>
<message>
<source>Source</source>
<translation></translation>
</message>
<message>
<source>Generated</source>
<translation></translation>
</message>
<message>
<source>unknown</source>
<translation></translation>
</message>
<message>
<source>Amount</source>
<translation>ि</translation>
</message>
</context>
<context>
<name>TransactionDescDialog</name>
<message>
<source>This pane shows a detailed description of the transaction</source>
<translation> ि - ि ि !</translation>
<message numerus="yes">
<source>matures in %n more block(s)</source>
<translation>
<numerusform>matures in %n more block</numerusform>
<numerusform>matures in %n more blocks</numerusform>
</translation>
</message>
</context>
<context>
<name>TransactionTableModel</name>
<message>
<source>Date</source>
<translation>taareek</translation>
</message>
<message>
<source>Label</source>
<translation></translation>
</message>
<message>
<source>(no label)</source>
<translation>( )</translation>
<message numerus="yes">
<source>Open for %n more block(s)</source>
<translation>
<numerusform>Open for %n more block</numerusform>
<numerusform>Open for %n more blocks</numerusform>
</translation>
</message>
</context>
<context>
<name>TransactionView</name>
<message>
<source>Comma separated file (*.csv)</source>
<translation> (* .csv)</translation>
</message>
<message>
<source>Confirmed</source>
<translation></translation>
</message>
<message>
<source>Date</source>
<translation>taareek</translation>
</message>
<message>
<source>Label</source>
<translation></translation>
</message>
<message>
<source>Address</source>
<translation></translation>
</message>
<message>
<source>Exporting Failed</source>
<translation>ि ि </translation>
</message>
</context>
<context>
<name>UnitDisplayStatusBarControl</name>
</context>
<context>
<name>WalletController</name>
<message>
<source>Close wallet</source>
<translation> </translation>
</message>
</context>
<context>
<name>WalletFrame</name>
</context>
<context>
<name>WalletModel</name>
<message>
<source>Send Coins</source>
<translation>ि |</translation>
</message>
</context>
<context>
<name>WalletView</name>
<message>
<source>&amp;Export</source>
<translation>&amp;ि</translation>
</message>
<message>
<source>Export the data in the current tab to a file</source>
<translation> ि </translation>
</message>
<message>
<source>Error</source>
<translation></translation>
</message>
</context>
<context>
<name>bitcoin-core</name>
<message>
<source>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</source>
<translation> -ि ि - ि - ि </translation>
</message>
<message>
<source>Verifying blocks...</source>
<translation> ...</translation>
</message>
<message>
<source>Loading block index...</source>
<translation> ...</translation>
</message>
<message>
<source>Loading wallet...</source>
<translation> ...</translation>
</message>
<message>
<source>Rescanning...</source>
<translation>ि--...</translation>
</message>
<message>
<source>Done loading</source>
<translation> |</translation>
</message>
</context>
</TS>

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

@@ -1,33 +1,37 @@
<TS language="is" version="2.1">
<TS version="2.1" language="is">
<context>
<name>AddressBookPage</name>
<message>
<source>Right-click to edit address or label</source>
<translation>Smelltu á hægri músatakka til breyta færslugildi eða merkingu</translation>
<translation type="unfinished">Smelltu á hægri músatakka til velja veski eða merkingu</translation>
</message>
<message>
<source>Create a new address</source>
<translation>Búa til nýtt færslugildi</translation>
<translation>Búa til nýtt veski</translation>
</message>
<message>
<source>&amp;New</source>
<translation>&amp;Nýtt</translation>
<translation type="unfinished">&amp;Nýtt</translation>
</message>
<message>
<source>Copy the currently selected address to the system clipboard</source>
<translation>Afrita valið færslugildi í klemmuspjald</translation>
<translation>Afrita valið veski í klemmuspjald</translation>
</message>
<message>
<source>&amp;Copy</source>
<translation>&amp;Afrita</translation>
<translation type="unfinished">&amp;Afrita</translation>
</message>
<message>
<source>C&amp;lose</source>
<translation>&amp;Loka</translation>
<translation type="unfinished">&amp;Loka</translation>
</message>
<message>
<source>Delete the currently selected address from the list</source>
<translation>Eyða völdu færslugildi úr listanum</translation>
<translation>Eyða völdu veski úr listanum</translation>
</message>
<message>
<source>Enter address or label to search</source>
<translation type="unfinished">Veldu veski eða merkingu fyrir leit</translation>
</message>
<message>
<source>Export the data in the current tab to a file</source>
@@ -43,70 +47,67 @@
</message>
<message>
<source>Choose the address to send coins to</source>
<translation>Veldu færslugildi sem greiða skal til</translation>
<translation type="unfinished">Veldu veski sem greiða skal til</translation>
</message>
<message>
<source>Choose the address to receive coins with</source>
<translation>Veldu færslugildi sem á taka við mynt</translation>
<translation type="unfinished">Veldu veski til taka við rafmynt</translation>
</message>
<message>
<source>C&amp;hoose</source>
<translation>&amp;Veldu</translation>
<translation type="unfinished">&amp;Veldu</translation>
</message>
<message>
<source>Sending addresses</source>
<translation>Færslugildi sem senda frá sér</translation>
<translation type="unfinished">Veski sem senda frá sér</translation>
</message>
<message>
<source>Receiving addresses</source>
<translation>Færslugildi sem þiggja til sín</translation>
<translation type="unfinished">Veski sem þiggja til sín</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>Þetta eru Bitcoin færslugildin sem senda greiðslur. Skoðið ævinlega vel upphæðina og færslugildin sem þiggja greiðslur áður en mynt er send.</translation>
<translation type="unfinished">Þetta eru Bitcoin veskin sem senda greiðslur. Skoðið ævinlega vel upphæðina og veskin sem þiggja greiðslur áður en rafmynt er send.</translation>
</message>
<message>
<source>&amp;Copy Address</source>
<translation>&amp;Afrita færslugildi</translation>
<translation type="unfinished">&amp;Afrita færslugildi</translation>
</message>
<message>
<source>Copy &amp;Label</source>
<translation>Afrita og &amp;Merkja</translation>
<translation type="unfinished">Afrita og &amp;Merkja</translation>
</message>
<message>
<source>&amp;Edit</source>
<translation>&amp;Breyta</translation>
<translation type="unfinished">&amp;Breyta</translation>
</message>
<message>
<source>Export Address List</source>
<translation>Flytja út færslulista</translation>
</message>
<message>
<source>Comma separated file (*.csv)</source>
<translation>Gildi aðskilin með kommu (*.csv)</translation>
</message>
<message>
<source>Exporting Failed</source>
<translation>Útflutningur tókst ekki</translation>
<translation type="unfinished">Flytja út færslulista</translation>
</message>
<message>
<source>There was an error trying to save the address list to %1. Please try again.</source>
<translation>Ekki tókst að vista færslugildalistann á %1. Reyndu aftur.</translation>
<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">Ekki tókst vista færslugildalistann á %1. Reyndu aftur.</translation>
</message>
<message>
<source>Exporting Failed</source>
<translation type="unfinished">Útflutningur tókst ekki</translation>
</message>
</context>
<context>
<name>AddressTableModel</name>
<message>
<source>Label</source>
<translation>Merking</translation>
<translation type="unfinished">Merki</translation>
</message>
<message>
<source>Address</source>
<translation>Færslugildi</translation>
<translation type="unfinished">Færslugildi</translation>
</message>
<message>
<source>(no label)</source>
<translation>(engin merking)</translation>
<translation type="unfinished">(engin merking)</translation>
</message>
</context>
<context>
@@ -129,106 +130,135 @@
</message>
<message>
<source>Encrypt wallet</source>
<translation>Dulkóða veski</translation>
<translation type="unfinished">Dulkóða veski</translation>
</message>
<message>
<source>This operation needs your wallet passphrase to unlock the wallet.</source>
<translation>Þessi aðgerð þarf lykilsetninguna þína til opna veskið.</translation>
<translation type="unfinished">Þessi aðgerð þarf lykilsetninguna þína til opna veskið.</translation>
</message>
<message>
<source>Unlock wallet</source>
<translation>Opna veskið</translation>
</message>
<message>
<source>This operation needs your wallet passphrase to decrypt the wallet.</source>
<translation>Þessi aðgerð þarf lykilsetninguna þína til dulráða veskið.</translation>
</message>
<message>
<source>Decrypt wallet</source>
<translation>Dulráða veskið</translation>
<translation type="unfinished">Opna veskið</translation>
</message>
<message>
<source>Change passphrase</source>
<translation>Breyta lykilsetningu</translation>
<translation type="unfinished">Breyta lykilsetningu</translation>
</message>
<message>
<source>Confirm wallet encryption</source>
<translation>Staðfesta dulkóðun veskis</translation>
<translation type="unfinished">Staðfesta dulkóðun veskis</translation>
</message>
<message>
<source>Warning: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!</source>
<translation>Viðvörun: Ef þú dulkóðar veskið og týnir lykilsetningunn þá munt þú &lt;b&gt;TAPA ALLRI ÞINNI BITCOIN MYNT&lt;/b&gt;!</translation>
<translation type="unfinished">Viðvörun: Ef þú dulkóðar veskið og týnir lykilsetningunn þá munt þú &lt;b&gt;TAPA ALLRI ÞINNI BITCOIN MYNT&lt;/b&gt;!</translation>
</message>
<message>
<source>Are you sure you wish to encrypt your wallet?</source>
<translation>Ertu viss um þú viljir dulkóða veskið þitt?</translation>
<translation type="unfinished">Ertu viss um þú viljir dulkóða veskið þitt?</translation>
</message>
<message>
<source>Wallet encrypted</source>
<translation>Veski dulkóðað</translation>
<translation type="unfinished">Veski dulkóðað</translation>
</message>
<message>
<source>Wallet to be encrypted</source>
<translation>Veski sem á dulkóða</translation>
<translation type="unfinished">Veski sem á dulkóða</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>MIKILVÆGT: Nýja dulkóðaða veskisskráin þarf koma í staðinn fyrir öll fyrri afrit sem þú hefur gert af upprunalegu veskisskránni. Af öryggisástæðum munu öll fyrri afrit af ódulkóðaða veskinu verða óvirk um leið og þú byrjar nota nýja, dulkóðaða veskið.</translation>
<translation type="unfinished">MIKILVÆGT: Nýja dulkóðaða veskisskráin þarf koma í staðinn fyrir öll fyrri afrit sem þú hefur gert af upprunalegu veskisskránni. Af öryggisástæðum munu öll fyrri afrit af ódulkóðaða veskinu verða óvirk um leið og þú byrjar nota nýja, dulkóðaða veskið.</translation>
</message>
<message>
<source>Wallet encryption failed</source>
<translation>Dulkóðun veskis mistókst</translation>
<translation type="unfinished">Dulkóðun veskis mistókst</translation>
</message>
<message>
<source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
<translation>Dulkóðun veskis mistóks vegna innri villu. Veskið þitt var ekki dulkóðað.</translation>
<translation type="unfinished">Dulkóðun veskis mistóks vegna innri villu. Veskið þitt var ekki dulkóðað.</translation>
</message>
<message>
<source>The supplied passphrases do not match.</source>
<translation>Lykilsetningarnar eru ekki þær sömu.</translation>
<translation type="unfinished">Lykilsetningarnar eru ekki þær sömu.</translation>
</message>
<message>
<source>Wallet unlock failed</source>
<translation>Ekki tókst opna veskið</translation>
<translation type="unfinished">Ekki tókst opna veskið</translation>
</message>
<message>
<source>The passphrase entered for the wallet decryption was incorrect.</source>
<translation>Lykilsetningin sem notuð var til dulráða veskið var ekki rétt.</translation>
</message>
<message>
<source>Wallet decryption failed</source>
<translation>Ekki tókst dulráða veski</translation>
<translation type="unfinished">Lykilsetningin sem notuð var til dulráða veskið var ekki rétt.</translation>
</message>
<message>
<source>Wallet passphrase was successfully changed.</source>
<translation>Þ tókst breyta lykilsetningu veskis.</translation>
<translation type="unfinished">Þ tókst breyta lykilsetningu veskis.</translation>
</message>
<message>
<source>Warning: The Caps Lock key is on!</source>
<translation>Viðvörun: Kveikt er á HÁSTÖFUM!</translation>
<translation type="unfinished">Viðvörun: Kveikt er á HÁSTÖFUM!</translation>
</message>
</context>
<context>
<name>BanTableModel</name>
<message>
<source>IP/Netmask</source>
<translation>IP/Netgríma</translation>
<translation type="unfinished">IP/Netgríma</translation>
</message>
<message>
<source>Banned Until</source>
<translation>Bannað til</translation>
<translation type="unfinished">Bannað til</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<source>Amount</source>
<translation type="unfinished">Upphæð</translation>
</message>
<message numerus="yes">
<source>%n second(s)</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n minute(s)</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n hour(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n day(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n week(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>%n year(s)</source>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
</context>
<context>
<name>BitcoinGUI</name>
<message>
<source>Sign &amp;message...</source>
<translation>Undirrita &amp;skilaboð</translation>
</message>
<message>
<source>Synchronizing with network...</source>
<translation>Samstilli við netið...</translation>
</message>
<message>
<source>&amp;Overview</source>
<translation>&amp;Yfirlit</translation>
@@ -255,11 +285,11 @@
</message>
<message>
<source>&amp;About %1</source>
<translation>&amp;Um %1</translation>
<translation type="unfinished">&amp;Um %1</translation>
</message>
<message>
<source>Show information about %1</source>
<translation>Sýna upplýsingar um %1</translation>
<translation type="unfinished">Sýna upplýsingar um %1</translation>
</message>
<message>
<source>About &amp;Qt</source>
@@ -269,49 +299,14 @@
<source>Show information about Qt</source>
<translation>Sýna upplýsingar um Qt</translation>
</message>
<message>
<source>&amp;Options...</source>
<translation>&amp;Valkostir...</translation>
</message>
<message>
<source>Modify configuration options for %1</source>
<translation>Breyta samstillingum fyrir %1</translation>
</message>
<message>
<source>&amp;Encrypt Wallet...</source>
<translation>&amp;Dulkóða veski...</translation>
</message>
<message>
<source>&amp;Backup Wallet...</source>
<translation>&amp;Öryggisafrit á veski...</translation>
</message>
<message>
<source>&amp;Change Passphrase...</source>
<translation>&amp;Breyta lykilsetningu</translation>
</message>
<message>
<source>Open &amp;URI...</source>
<translation>Opna &amp;URL...</translation>
</message>
<message>
<source>Click to disable network activity.</source>
<translation>Smelltu til loka fyrir netumferð.</translation>
<translation type="unfinished">Breyta samstillingum fyrir %1</translation>
</message>
<message>
<source>Network activity disabled.</source>
<translation>Slökkt á netumferð.</translation>
</message>
<message>
<source>Click to enable network activity again.</source>
<translation>Smelltu til hefja aftur netumferð.</translation>
</message>
<message>
<source>Syncing Headers (%1%)...</source>
<translation>Samstilli hausa (%1%)...</translation>
</message>
<message>
<source>Reindexing blocks on disk...</source>
<translation>Endurraða blokkum á drifi...</translation>
<extracomment>A substring of the tooltip.</extracomment>
<translation type="unfinished">Slökkt á netumferð.</translation>
</message>
<message>
<source>Send coins to a Bitcoin address</source>
@@ -325,10 +320,6 @@
<source>Change the passphrase used for wallet encryption</source>
<translation>Breyta lykilsetningunni sem gildir um dulkóðun veskis</translation>
</message>
<message>
<source>&amp;Verify message...</source>
<translation>&amp;Yfirfara skilaboð...</translation>
</message>
<message>
<source>&amp;Send</source>
<translation>&amp;Senda</translation>
@@ -375,27 +366,26 @@
</message>
<message>
<source>Request payments (generates QR codes and bitcoin: URIs)</source>
<translation>Óska eftir greiðslum (býr til QR kóða og bitcoin: URI)</translation>
<translation type="unfinished">Óska eftir greiðslum (býr til QR kóða og bitcoin: URI)</translation>
</message>
<message>
<source>Show the list of used sending addresses and labels</source>
<translation>Sýna lista yfir færslugildi sem notuð hafa verið til sendingar og merkingar þeirra</translation>
<translation type="unfinished">Sýna lista yfir færslugildi sem notuð hafa verið til sendingar og merkingar þeirra</translation>
</message>
<message>
<source>Show the list of used receiving addresses and labels</source>
<translation>Sýna færslugildi sem notuð hafa verið til taka við mynt og merkingar þeirra</translation>
<translation type="unfinished">Sýna færslugildi sem notuð hafa verið til taka við mynt og merkingar þeirra</translation>
</message>
<message>
<source>&amp;Command-line options</source>
<translation>&amp;Valkostir skipanalínu</translation>
<translation type="unfinished">&amp;Valkostir skipanalínu</translation>
</message>
<message>
<source>Indexing blocks on disk...</source>
<translation>Raða blokkum á drifi</translation>
</message>
<message>
<source>Processing blocks on disk...</source>
<translation>Vinn úr blokkum á drifi...</translation>
<message numerus="yes">
<source>Processed %n block(s) of transaction history.</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
<message>
<source>%1 behind</source>
@@ -427,48 +417,48 @@
</message>
<message>
<source>Show the %1 help message to get a list with possible Bitcoin command-line options</source>
<translation>Sýna %1 hjálparskilaboðin til lista yfir valkosti Bitcoin aðgerðir í skipanalínu</translation>
<translation type="unfinished">Sýna %1 hjálparskilaboðin til lista yfir valkosti Bitcoin aðgerðir í skipanalínu</translation>
</message>
<message>
<source>%1 client</source>
<translation>%1 biðlarar</translation>
<translation type="unfinished">%1 biðlarar</translation>
</message>
<message>
<source>Connecting to peers...</source>
<translation>Tengist jafningjum...</translation>
</message>
<message>
<source>Catching up...</source>
<translation>Færist nær...</translation>
<message numerus="yes">
<source>%n active connection(s) to Bitcoin network.</source>
<extracomment>A substring of the tooltip.</extracomment>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
<message>
<source>Date: %1
</source>
<translation>Dagsetning: %1
<translation type="unfinished">Dagsetning: %1
</translation>
</message>
<message>
<source>Amount: %1
</source>
<translation>Upphæð: %1
<translation type="unfinished">Upphæð: %1
</translation>
</message>
<message>
<source>Type: %1
</source>
<translation>Tegund: %1
<translation type="unfinished">Tegund: %1
</translation>
</message>
<message>
<source>Label: %1
</source>
<translation>Merki: %1
<translation type="unfinished">Merki: %1
</translation>
</message>
<message>
<source>Address: %1
</source>
<translation>Færslugildi: %1
<translation type="unfinished">Færslugildi: %1
</translation>
</message>
<message>
@@ -481,11 +471,11 @@
</message>
<message>
<source>HD key generation is &lt;b&gt;enabled&lt;/b&gt;</source>
<translation>HD lyklagerð er &lt;b&gt;virkjuð&lt;/b&gt;</translation>
<translation type="unfinished">HD lyklagerð er &lt;b&gt;virkjuð&lt;/b&gt;</translation>
</message>
<message>
<source>HD key generation is &lt;b&gt;disabled&lt;/b&gt;</source>
<translation>HD lyklagerð er &lt;b&gt;óvirk&lt;/b&gt;</translation>
<translation type="unfinished">HD lyklagerð er &lt;b&gt;óvirk&lt;/b&gt;</translation>
</message>
<message>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
@@ -500,82 +490,75 @@
<name>CoinControlDialog</name>
<message>
<source>Coin Selection</source>
<translation>Myntval</translation>
<translation type="unfinished">Myntval</translation>
</message>
<message>
<source>Quantity:</source>
<translation>Magn:</translation>
<translation type="unfinished">Magn:</translation>
</message>
<message>
<source>Bytes:</source>
<translation>Bæti:</translation>
<translation type="unfinished">Bæti:</translation>
</message>
<message>
<source>Amount:</source>
<translation>Upphæð:</translation>
<translation type="unfinished">Upphæð:</translation>
</message>
<message>
<source>Fee:</source>
<translation>Gjald:</translation>
<translation type="unfinished">Gjald:</translation>
</message>
<message>
<source>Dust:</source>
<translation>Ryk:</translation>
<translation type="unfinished">Ryk:</translation>
</message>
<message>
<source>After Fee:</source>
<translation>Eftirgjald:</translation>
<translation type="unfinished">Eftirgjald:</translation>
</message>
<message>
<source>Change:</source>
<translation>Skiptimynt:</translation>
<translation type="unfinished">Skiptimynt:</translation>
</message>
<message>
<source>(un)select all</source>
<translation>(af)velja allt</translation>
<translation type="unfinished">(af)velja allt</translation>
</message>
<message>
<source>Tree mode</source>
<translation>Hrísluhamur</translation>
<translation type="unfinished">Hrísluhamur</translation>
</message>
<message>
<source>List mode</source>
<translation>Listahamur</translation>
<translation type="unfinished">Listahamur</translation>
</message>
<message>
<source>Amount</source>
<translation>Upphæð</translation>
<translation type="unfinished">Upphæð</translation>
</message>
<message>
<source>Received with label</source>
<translation>Móttekið með merkingu</translation>
<translation type="unfinished">Móttekið með merkingu</translation>
</message>
<message>
<source>Received with address</source>
<translation>Móttekið með færslugildi</translation>
</message>
<message>
<source>Copy address</source>
<translation>Afrita færslugildi</translation>
</message>
<message>
<source>Copy label</source>
<translation>Afrita merki</translation>
<translation type="unfinished">Móttekið með færslugildi</translation>
</message>
<message>
<source>This label turns red if any recipient receives an amount smaller than the current dust threshold.</source>
<translation>Þetta merki verður rautt ef einhver viðtakandi tekur við upphæð sem er lægri en núgildandi þröskuldur.</translation>
<translation type="unfinished">Þetta merki verður rautt ef einhver viðtakandi tekur við upphæð sem er lægri en núgildandi þröskuldur.</translation>
</message>
<message>
<source>(no label)</source>
<translation>(ekkert merki)</translation>
<translation type="unfinished">(engin merking)</translation>
</message>
</context>
<context>
<name>CreateWalletActivity</name>
</context>
<context>
<name>CreateWalletDialog</name>
<message>
<source>Wallet</source>
<translation type="unfinished">Veski</translation>
</message>
</context>
<context>
<name>EditAddressDialog</name>
@@ -589,11 +572,11 @@
</message>
<message>
<source>The label associated with this address list entry</source>
<translation>Merking tengd þessu færslugildi</translation>
<translation type="unfinished">Merking tengd þessu færslugildi</translation>
</message>
<message>
<source>The address associated with this address list entry. This can only be modified for sending addresses.</source>
<translation>Færslugildið sem tengt er þessari færslu. Þessu einungis breyta þegar sent er.</translation>
<translation type="unfinished">Færslugildið sem tengt er þessari færslu. Þessu einungis breyta þegar sent er.</translation>
</message>
<message>
<source>&amp;Address</source>
@@ -601,32 +584,30 @@
</message>
<message>
<source>New sending address</source>
<translation>Nýtt sendingarfærslugildi</translation>
<translation type="unfinished">Nýtt sendingarfærslugildi</translation>
</message>
<message>
<source>Edit receiving address</source>
<translation>Breyta móttökufærslugildi</translation>
<translation type="unfinished">Breyta móttökufærslugildi</translation>
</message>
<message>
<source>Edit sending address</source>
<translation>Breyta sendingarfærslugildi</translation>
<translation type="unfinished">Breyta sendingarfærslugildi</translation>
</message>
<message>
<source>The entered address "%1" is not a valid Bitcoin address.</source>
<translation>Færslugildið sem slegið var inn "%1" er ekki leyfilegt Bitcoin færslugildi.</translation>
<translation type="unfinished">Færslugildið sem slegið var inn "%1" er ekki leyfilegt Bitcoin færslugildi.</translation>
</message>
</context>
<context>
<name>FreespaceChecker</name>
</context>
<context>
<name>HelpMessageDialog</name>
</context>
<context>
<name>Intro</name>
<message>
<source>Bitcoin</source>
<translation>Bitcoin</translation>
<message numerus="yes">
<source>(sufficient to restore backups %n day(s) old)</source>
<extracomment>Explanatory text on the capability of the current prune target.</extracomment>
<translation type="unfinished">
<numerusform />
<numerusform />
</translation>
</message>
<message>
<source>Error</source>
@@ -637,32 +618,26 @@
<name>ModalOverlay</name>
<message>
<source>Number of blocks left</source>
<translation>Fjöldi blokka sem eftir eru</translation>
<translation type="unfinished">Fjöldi blokka sem eftir eru</translation>
</message>
<message>
<source>Last block time</source>
<translation>Tími síðustu blokkar</translation>
<translation type="unfinished">Tími síðustu blokkar</translation>
</message>
</context>
<context>
<name>OpenURIDialog</name>
</context>
<context>
<name>OpenWalletActivity</name>
</context>
<context>
<name>OptionsDialog</name>
<message>
<source>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</source>
<translation>IP tala staðgengils (t.d. IPv4: 127.0.0.1 / IPv6: ::1)</translation>
<translation type="unfinished">IP tala staðgengils (t.d. IPv4: 127.0.0.1 / IPv6: ::1)</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>URL frá þriðja aðila (t.d. blokkarskoðari) sem birtast í færsluflipanum sem samhengisatriði. %s í URL-inu skipt út fyrir færslutvíkross. Mörg URL eru aðskilin með lóðréttu striki |.</translation>
<translation type="unfinished">URL frá þriðja aðila (t.d. blokkarskoðari) sem birtast í færsluflipanum sem samhengisatriði. %s í URL-inu skipt út fyrir færslutvíkross. Mörg URL eru aðskilin með lóðréttu striki |.</translation>
</message>
<message>
<source>Error</source>
<translation>Villa</translation>
<translation type="unfinished">Villa</translation>
</message>
<message>
<source>The supplied proxy address is invalid.</source>
@@ -677,46 +652,34 @@
</message>
<message>
<source>Your current balance in watch-only addresses</source>
<translation>Innistæða færslugilda sem eru einungis til skoðunar</translation>
<translation type="unfinished">Innistæða færslugilda sem eru einungis til skoðunar</translation>
</message>
<message>
<source>Unconfirmed transactions to watch-only addresses</source>
<translation>Óstaðfestar færslur til færslugilda sem eru einungis til skoðunar</translation>
<translation type="unfinished">Óstaðfestar færslur til færslugilda sem eru einungis til skoðunar</translation>
</message>
<message>
<source>Mined balance in watch-only addresses that has not yet matured</source>
<translation>Námuunnin innistæða á færslugildum sem eru einungis til skoðunar og hafa ekki komið fram</translation>
<translation type="unfinished">Námuunnin innistæða á færslugildum sem eru einungis til skoðunar og hafa ekki komið fram</translation>
</message>
<message>
<source>Current total balance in watch-only addresses</source>
<translation>Innistæða á færslugildum sem eru einungis til skoðunar</translation>
</message>
</context>
<context>
<name>PSBTOperationsDialog</name>
</context>
<context>
<name>PaymentServer</name>
<message>
<source>Invalid payment address %1</source>
<translation>Ógilt færslugildi til greiðslu %1</translation>
<translation type="unfinished">Innistæða á færslugildum sem eru einungis til skoðunar</translation>
</message>
</context>
<context>
<name>PeerTableModel</name>
</context>
<context>
<name>QObject</name>
<message>
<source>Amount</source>
<translation>Upphæð</translation>
<source>Address</source>
<extracomment>Title of Peers Table column which contains the IP/Onion/I2P address of the connected peer.</extracomment>
<translation type="unfinished">Færslugildi</translation>
</message>
</context>
<context>
<name>QRImageWidget</name>
<message>
<source>Resulting URI too long, try to reduce the text for label / message.</source>
<translation>URI varð of langt, reyndu minnka texta í merki / skilaboðum.</translation>
<translation type="unfinished">URI varð of langt, reyndu minnka texta í merki / skilaboðum.</translation>
</message>
</context>
<context>
@@ -727,11 +690,11 @@
</message>
<message>
<source>Starting Block</source>
<translation>Upphafsblokk</translation>
<translation type="unfinished">Upphafsblokk</translation>
</message>
<message>
<source>Synced Blocks</source>
<translation>Samhæfðar blokkir</translation>
<translation type="unfinished">Samhæfðar blokkir</translation>
</message>
<message>
<source>Last block time</source>
@@ -742,72 +705,71 @@
<name>ReceiveCoinsDialog</name>
<message>
<source>&amp;Label:</source>
<translation>&amp;Merki:</translation>
<translation type="unfinished">&amp;Merki:</translation>
</message>
<message>
<source>An optional label to associate with the new receiving address.</source>
<translation>Valfrjálst merki sem tengist nýju móttökufærslutölunni.</translation>
</message>
<message>
<source>Copy label</source>
<translation>Afrita merki</translation>
<translation type="unfinished">Valfrjálst merki sem tengist nýju móttökufærslutölunni.</translation>
</message>
</context>
<context>
<name>ReceiveRequestDialog</name>
<message>
<source>Amount:</source>
<translation>Upphæð:</translation>
<translation type="unfinished">Upphæð:</translation>
</message>
</context>
<context>
<name>RecentRequestsTableModel</name>
<message>
<source>Label</source>
<translation>Merki</translation>
<translation type="unfinished">Merki</translation>
</message>
<message>
<source>(no label)</source>
<translation>(ekkert merki)</translation>
<translation type="unfinished">(engin merking)</translation>
</message>
</context>
<context>
<name>SendCoinsDialog</name>
<message>
<source>Quantity:</source>
<translation>Magn:</translation>
<translation type="unfinished">Magn:</translation>
</message>
<message>
<source>Bytes:</source>
<translation>Bæti:</translation>
<translation type="unfinished">Bæti:</translation>
</message>
<message>
<source>Amount:</source>
<translation>Upphæð:</translation>
<translation type="unfinished">Upphæð:</translation>
</message>
<message>
<source>Fee:</source>
<translation>Gjald:</translation>
<translation type="unfinished">Gjald:</translation>
</message>
<message>
<source>After Fee:</source>
<translation>Eftirgjald:</translation>
<translation type="unfinished">Eftirgjald:</translation>
</message>
<message>
<source>Change:</source>
<translation>Skiptimynt:</translation>
</message>
<message>
<source>(Smart fee not initialized yet. This usually takes a few blocks...)</source>
<translation>(Smart gjald er ekki gangsett ennþá. Þetta tekur venjulega nokkrar blokkir...)</translation>
<translation type="unfinished">Skiptimynt:</translation>
</message>
<message>
<source>Dust:</source>
<translation>Ryk:</translation>
<translation type="unfinished">Ryk:</translation>
</message>
<message numerus="yes">
<source>Estimated to begin confirmation within %n block(s).</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
<message>
<source>(no label)</source>
<translation>(ekkert merki)</translation>
<translation type="unfinished">(engin merking)</translation>
</message>
</context>
<context>
@@ -817,111 +779,92 @@
<translation>&amp;Merki:</translation>
</message>
</context>
<context>
<name>ShutdownWindow</name>
</context>
<context>
<name>SignVerifyMessageDialog</name>
</context>
<context>
<name>TrafficGraphWidget</name>
</context>
<context>
<name>TransactionDesc</name>
<message numerus="yes">
<source>Open for %n more block(s)</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
<message numerus="yes">
<source>matures in %n more block(s)</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
<message>
<source>Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
<translation>Fullgerð mynt verður nýta %1 blokkir. Þegar þú bjóst til þessa blokk, þá var jafnóðum tilkynnt á netinu hún eigi bætast við blokkakeðjuna. Ef hún kemst ekki í keðjuna þá mun staða hennar breytast í "ósamþykkt" og ekki verður hægt nota hana. Þetta gerist annað slagið ef annar hnútpunktur klárar blokk nokkrum sekúndum á undan þinni.</translation>
<translation type="unfinished">Fullgerð mynt verður nýta %1 blokkir. Þegar þú bjóst til þessa blokk, þá var jafnóðum tilkynnt á netinu hún eigi bætast við blokkakeðjuna. Ef hún kemst ekki í keðjuna þá mun staða hennar breytast í "ósamþykkt" og ekki verður hægt nota hana. Þetta gerist annað slagið ef annar hnútpunktur klárar blokk nokkrum sekúndum á undan þinni.</translation>
</message>
<message>
<source>Amount</source>
<translation>Upphæð</translation>
<translation type="unfinished">Upphæð</translation>
</message>
</context>
<context>
<name>TransactionDescDialog</name>
</context>
<context>
<name>TransactionTableModel</name>
<message>
<source>Label</source>
<translation>Merki</translation>
<translation type="unfinished">Merki</translation>
</message>
<message numerus="yes">
<source>Open for %n more block(s)</source>
<translation>
<numerusform />
<numerusform />
</translation>
</message>
<message>
<source>Mined</source>
<translation>Námuunnið</translation>
<translation type="unfinished">Námuunnið</translation>
</message>
<message>
<source>(no label)</source>
<translation>(ekkert merki)</translation>
<translation type="unfinished">(engin merking)</translation>
</message>
</context>
<context>
<name>TransactionView</name>
<message>
<source>Mined</source>
<translation>Námuunnið</translation>
</message>
<message>
<source>Copy address</source>
<translation>Afrita færslugildi</translation>
</message>
<message>
<source>Copy label</source>
<translation>Afrita merki</translation>
</message>
<message>
<source>Comma separated file (*.csv)</source>
<translation>Gildi aðskilin með kommu (*.csv)</translation>
<translation type="unfinished">Námuunnið</translation>
</message>
<message>
<source>Label</source>
<translation>Merki</translation>
<translation type="unfinished">Merki</translation>
</message>
<message>
<source>Address</source>
<translation>Vistfang</translation>
<translation type="unfinished">Færslugildi</translation>
</message>
<message>
<source>Exporting Failed</source>
<translation>Útflutningur tókst ekki</translation>
<translation type="unfinished">Útflutningur tókst ekki</translation>
</message>
</context>
<context>
<name>UnitDisplayStatusBarControl</name>
</context>
<context>
<name>WalletController</name>
</context>
<context>
<name>WalletFrame</name>
</context>
<context>
<name>WalletModel</name>
</context>
<context>
<name>WalletView</name>
<message>
<source>&amp;Export</source>
<translation>&amp;Flytja út</translation>
<translation type="unfinished">&amp;Flytja út</translation>
</message>
<message>
<source>Export the data in the current tab to a file</source>
<translation>Flytja gögn í flipanum í skrá</translation>
<translation type="unfinished">Flytja gögn í flipanum í skrá</translation>
</message>
<message>
<source>Error</source>
<translation>Villa</translation>
<translation type="unfinished">Villa</translation>
</message>
</context>
<context>
<name>bitcoin-core</name>
<message>
<source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source>
<translation>Villa við lestur %s! Allir lyklar fóru inn á réttan hátt, en færslugögn eða færslugildi gætu verið röng eða horfin.</translation>
</message>
<message>
<source>Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues.</source>
<translation>Viðvörun: Netið er ekki í fullu samræmi! Einhver námuvinnsla virðist í ólagi.</translation>
<translation type="unfinished">Villa við lestur %s! Allir lyklar fóru inn á réttan hátt, en færslugögn eða færslugildi gætu verið röng eða horfin.</translation>
</message>
</context>
</TS>

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

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