From 7ca56632cf25d66ec18a3843f315f8121ac8f095 Mon Sep 17 00:00:00 2001 From: pasta Date: Mon, 18 Nov 2024 12:22:13 -0600 Subject: [PATCH 01/24] Merge #6397: ci: add powerpc64 to GH Guix job matrix c5d5b14205e2e5f8b3775c3681f217e288319b8b ci: add powerpc64 to GH Guix job matrix (UdjinM6) Pull request description: ## Issue being fixed or feature implemented I guess we should make sure that binaries for every possible platform can be built via Guix with no issues even if we do not want to provide "official" binaries for it. ## What was done? ## How Has This Been Tested? ## Breaking Changes ## Checklist: - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ Top commit has no ACKs. Tree-SHA512: 6464b68a47e680bb379c82842599200d6917adb8f1493fa75ac80ddc7a6fea92a9190215cfa3f32b0bd88e2dd0425d4eb13846ea2d7e19e144afff9c1171ff13 --- .github/workflows/guix-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/guix-build.yml b/.github/workflows/guix-build.yml index 1ad6101e3a83c..8a48ee178b80f 100644 --- a/.github/workflows/guix-build.yml +++ b/.github/workflows/guix-build.yml @@ -68,7 +68,7 @@ jobs: # if: ${{ contains(github.event.pull_request.labels.*.name, 'guix-build') }} strategy: matrix: - build_target: [x86_64-linux-gnu, arm-linux-gnueabihf, aarch64-linux-gnu, riscv64-linux-gnu, x86_64-w64-mingw32, x86_64-apple-darwin, arm64-apple-darwin] + build_target: [x86_64-linux-gnu, arm-linux-gnueabihf, aarch64-linux-gnu, riscv64-linux-gnu, powerpc64-linux-gnu, x86_64-w64-mingw32, x86_64-apple-darwin, arm64-apple-darwin] timeout-minutes: 480 steps: From 66f67879dc8a89c586efb1b5262dd020c33c14ab Mon Sep 17 00:00:00 2001 From: pasta Date: Mon, 18 Nov 2024 13:18:03 -0600 Subject: [PATCH 02/24] Merge #6401: ci: deduplicate depends building 2f18c1af30c18f876ab1c550ad7ca5e50908e837 ci: deduplicate depends building (pasta) Pull request description: ## Issue being fixed or feature implemented Currently we build the same host / options multiple times. Don't do this! ## What was done? Now building depends only twice ## How Has This Been Tested? Local CI appears to be working ## Breaking Changes None ## Checklist: _Go over all the following points, and put an `x` in all the boxes that apply._ - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: kwvg: utACK 2f18c1af30c18f876ab1c550ad7ca5e50908e837 UdjinM6: utACK 2f18c1af30c18f876ab1c550ad7ca5e50908e837 Tree-SHA512: 67460508a2e9458152f7c8bb5f4a1a786aedcfded0e5c54fb03d85010ba8bb87362b66a0c322b51aeba75752e36418fc235d8dc4197ef10695e234ccc5a00a39 --- .github/workflows/build.yml | 70 ++++++++++--------------------------- 1 file changed, 18 insertions(+), 52 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7b8997dc15dfa..08340771196e3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,7 +25,6 @@ jobs: with: ref: ${{ github.event.pull_request.head.sha }} - - name: Prepare id: prepare run: | @@ -68,18 +67,6 @@ jobs: host: arm-linux-gnueabihf - build_target: linux64 host: x86_64-pc-linux-gnu - - build_target: linux64_tsan - host: x86_64-pc-linux-gnu - - build_target: linux64_ubsan - host: x86_64-pc-linux-gnu - - build_target: linux64_fuzz - host: x86_64-pc-linux-gnu - - build_target: linux64_cxx20 - host: x86_64-pc-linux-gnu - - build_target: linux64_sqlite - host: x86_64-pc-linux-gnu - - build_target: linux64_nowallet - host: x86_64-pc-linux-gnu container: image: ghcr.io/${{ needs.build-image.outputs.repo-name }}/dashcore-ci-runner:${{ needs.build-image.outputs.image-tag }} @@ -90,7 +77,6 @@ jobs: with: ref: ${{ github.event.pull_request.head.sha }} - - name: Cache depends sources uses: actions/cache@v4 with: @@ -113,6 +99,12 @@ jobs: - name: Build dependencies run: make -j$(nproc) -C depends HOST=${{ matrix.host }} + - name: Upload built depends + uses: actions/upload-artifact@v4 + with: + name: depends-${{ matrix.build_target }} + path: depends/${{ matrix.host }} + build: name: Build needs: [build-image, build-depends] @@ -123,20 +115,28 @@ jobs: include: - build_target: arm-linux host: arm-linux-gnueabihf + depends_on: arm-linux - build_target: linux64 host: x86_64-pc-linux-gnu + depends_on: linux64 - build_target: linux64_tsan host: x86_64-pc-linux-gnu + depends_on: linux64 - build_target: linux64_ubsan host: x86_64-pc-linux-gnu + depends_on: linux64 - build_target: linux64_fuzz host: x86_64-pc-linux-gnu + depends_on: linux64 - build_target: linux64_cxx20 host: x86_64-pc-linux-gnu + depends_on: linux64 - build_target: linux64_sqlite host: x86_64-pc-linux-gnu + depends_on: linux64 - build_target: linux64_nowallet host: x86_64-pc-linux-gnu + depends_on: linux64 container: image: ghcr.io/${{ needs.build-image.outputs.repo-name }}/dashcore-ci-runner:${{ needs.build-image.outputs.image-tag }} options: --user root @@ -146,16 +146,11 @@ jobs: with: ref: ${{ github.event.pull_request.head.sha }} - - - name: Restore Cache dependencies - uses: actions/cache/restore@v4 + - name: Download built depends + uses: actions/download-artifact@v4 with: - path: | - depends/${{ matrix.host }} - key: ${{ runner.os }}-depends-${{ matrix.build_target }}-${{ hashFiles('depends/packages/*') }} - restore-keys: | - ${{ runner.os }}-depends-${{ matrix.build_target }}-${{ hashFiles('depends/packages/*') }} - ${{ runner.os }}-depends-${{ matrix.build_target }} + name: depends-${{ matrix.depends_on }} + path: depends/${{ matrix.host }} - name: Determine PR Base SHA id: vars @@ -192,32 +187,3 @@ jobs: name: build-artifacts-${{ matrix.build_target }} path: | /output - - -# Come back to this later and implement tests :) -# test: -# name: Test -# needs: [build-image, build] -# runs-on: ubuntu-22.04 -# container: -# image: ghcr.io/${{ needs.build-image.outputs.repo-name }}/dashcore-ci-runner:${{ needs.build-image.outputs.image-tag }} -# options: --user root -# steps: -# - name: Checkout code -# uses: actions/checkout@v4 -# with: -# ref: ${{ github.event.pull_request.head.sha }} -# -# - name: Download build artifacts -# uses: actions/download-artifact@v4 -# with: -# name: build-artifacts -# path: src/ -# -## - name: Setup environment -## run: | -## echo "BUILD_TARGET=${{ needs.build.matrix.build_target }}" -## source ./ci/dash/matrix.sh -# -# - name: Run integration tests -# run: ./ci/dash/test_integrationtests.sh --extended --exclude feature_pruning,feature_dbcrash From 90a3807903f8176878dae281da854b6faf6d8701 Mon Sep 17 00:00:00 2001 From: pasta Date: Mon, 18 Nov 2024 13:16:37 -0600 Subject: [PATCH 03/24] Merge #6402: ci: cache built 9604d87af1689d844c5be870c2cb3f305d67856d ci: cache depends/built like gitlab (pasta) Pull request description: ## Issue being fixed or feature implemented Depends build didn't seem to be caching properly ## What was done? changed depends/${{ matrix.host }} to depends/built as gitlab does ## How Has This Been Tested? Depends "build" now takes only ~1 minute instead of ~15 minutes in CI: https://github.com/PastaPastaPasta/dash/actions/runs/11899038167 ## Breaking Changes None ## Checklist: - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: UdjinM6: utACK 9604d87af1689d844c5be870c2cb3f305d67856d kwvg: utACK 9604d87af1689d844c5be870c2cb3f305d67856d Tree-SHA512: 63d2321f41b284be6cc2f0b2d53294cf220b1623af464d411225c0e43ec14268e1c3a701e23973e5c641925b6ea28dcb92062d8cefb9e6baed6ac5bb619ce1a1 --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 08340771196e3..197426c65741a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -90,7 +90,7 @@ jobs: uses: actions/cache@v4 with: path: | - depends/${{ matrix.host }} + depends/built key: ${{ runner.os }}-depends-${{ matrix.build_target }}-${{ hashFiles('depends/packages/*') }} restore-keys: | ${{ runner.os }}-depends-${{ matrix.build_target }}-${{ hashFiles('depends/packages/*') }} From a1f7e96025c3e61f56feacc92dd2ddf6a7f1262f Mon Sep 17 00:00:00 2001 From: pasta Date: Tue, 19 Nov 2024 15:08:46 -0600 Subject: [PATCH 04/24] Merge #6406: ci: use `actions/cache` to manage depends cache 9cc29a832ed7021f9f6c27ece6fa48899d29d777 ci: use `actions/cache` to manage depends cache (Kittywhiskers Van Gogh) Pull request description: ## Additional Information * Builds after [dash#6401](https://github.com/dashpay/dash/pull/6401) have silently stopped building Dash Qt, see pre-[dash#6401](https://github.com/dashpay/dash/pull/6401) `develop` (6a51ab27)'s [build](https://github.com/dashpay/dash/actions/runs/11881892222/job/33106960691#step:7:725) compared against [build \#1](https://github.com/PastaPastaPasta/dash/actions/runs/11897504945/job/33152711720#step:7:1432) and [build \#2](https://github.com/kwvg/dash/actions/runs/11898510091/job/33156186503#step:7:1432) from [dash#6401](https://github.com/dashpay/dash/pull/6401)'s review process. This pull request aims to correct that regression. ## Breaking Changes None expected. ## Checklist - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)** - [x] I have added or updated relevant unit/integration/functional/e2e tests **(note: N/A)** - [x] I have made corresponding changes to the documentation **(note: N/A)** - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: PastaPastaPasta: utACK https://github.com/dashpay/dash/commit/9cc29a832ed7021f9f6c27ece6fa48899d29d777 UdjinM6: utACK 9cc29a832ed7021f9f6c27ece6fa48899d29d777 Tree-SHA512: 09663987696d29e12c98b48297960c7c1e6484e337ddc8311f340fee1d026ace572674e8cbca578ba743ff781caabb6fcc1853cee8ddff3e13af3fe3d0361776 --- .github/workflows/build.yml | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 197426c65741a..7b9dbd80207f2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -86,25 +86,20 @@ jobs: restore-keys: | depends-sources- - - name: Cache dependencies + - name: Cache depends uses: actions/cache@v4 with: path: | depends/built + depends/${{ matrix.host }} key: ${{ runner.os }}-depends-${{ matrix.build_target }}-${{ hashFiles('depends/packages/*') }} restore-keys: | ${{ runner.os }}-depends-${{ matrix.build_target }}-${{ hashFiles('depends/packages/*') }} ${{ runner.os }}-depends-${{ matrix.build_target }} - - name: Build dependencies + - name: Build depends run: make -j$(nproc) -C depends HOST=${{ matrix.host }} - - name: Upload built depends - uses: actions/upload-artifact@v4 - with: - name: depends-${{ matrix.build_target }} - path: depends/${{ matrix.host }} - build: name: Build needs: [build-image, build-depends] @@ -146,11 +141,13 @@ jobs: with: ref: ${{ github.event.pull_request.head.sha }} - - name: Download built depends - uses: actions/download-artifact@v4 + - name: Restore depends cache + uses: actions/cache/restore@v4 with: - name: depends-${{ matrix.depends_on }} - path: depends/${{ matrix.host }} + path: | + depends/built + depends/${{ matrix.host }} + key: ${{ runner.os }}-depends-${{ matrix.depends_on }}-${{ hashFiles('depends/packages/*') }} - name: Determine PR Base SHA id: vars From 86105daab3a23069ffa01508d6bbef8be2630c19 Mon Sep 17 00:00:00 2001 From: pasta Date: Wed, 20 Nov 2024 11:28:35 -0600 Subject: [PATCH 05/24] Merge #6408: refactor: removed pre-MN_RR logic of validation of CL 3f2e064b18bdb47bbf0100307d2b339ebe124998 refactor: set `const auto& cbTx` to avoid using optional throughout method (pasta) 0c0d91e49189739c4ba1eb3a36d7586e2499a619 fix: functional test feature_llmq_chainlocks.py should activate MN_RR instead v20 (Konstantin Akimov) af93e877f29828bb268ab8b472192a47186160e1 refactor: removed pre-MN_RR logic of validation of CL (Konstantin Akimov) Pull request description: ## Issue being fixed or feature implemented The fork MN_RR is active awhile on testnet and mainnet and no more need legacy check ## What was done? Removes legacy version of checks for CL and related functional tests ## How Has This Been Tested? Run unit / functional test - DONE Reindex testnet - DONE Reindex mainnet - DONE ## Breaking Changes Removed pre-mn_rr version of checks for CL. It's no more relevant on mainnet and testnet. It affects behavior on new devnets and regtest for pre-mn_rr activation blocks. ## Checklist: - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [x] I have added or updated relevant unit/integration/functional/e2e tests - [x] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone ACKs for top commit: UdjinM6: utACK 3f2e064b18bdb47bbf0100307d2b339ebe124998 Tree-SHA512: 8b4b3a20a54602f4df9d98e17c79004214493b15c0bce9c08c68d667a5cba86b817947f008d646c48ef9f2f86676c02085c7d0ed36e83548ef5425b64faffb89 --- src/evo/cbtx.cpp | 39 +++++++++++----------- src/evo/cbtx.h | 2 +- src/evo/specialtxman.cpp | 2 +- test/functional/feature_llmq_chainlocks.py | 33 ++++++------------ 4 files changed, 32 insertions(+), 44 deletions(-) diff --git a/src/evo/cbtx.cpp b/src/evo/cbtx.cpp index a9a5abe762f8e..fc08bd5db57fd 100644 --- a/src/evo/cbtx.cpp +++ b/src/evo/cbtx.cpp @@ -332,7 +332,7 @@ bool CalcCbTxMerkleRootQuorums(const CBlock& block, const CBlockIndex* pindexPre } bool CheckCbTxBestChainlock(const CBlock& block, const CBlockIndex* pindex, - const llmq::CChainLocksHandler& chainlock_handler, BlockValidationState& state, const bool check_clhdiff) + const llmq::CChainLocksHandler& chainlock_handler, BlockValidationState& state) { if (block.vtx[0]->nType != TRANSACTION_COINBASE) { return true; @@ -342,44 +342,43 @@ bool CheckCbTxBestChainlock(const CBlock& block, const CBlockIndex* pindex, if (!opt_cbTx) { return state.Invalid(BlockValidationResult::BLOCK_CONSENSUS, "bad-cbtx-payload"); } + const auto& cbTx = *opt_cbTx; - if (opt_cbTx->nVersion < CCbTx::Version::CLSIG_AND_BALANCE) { + if (cbTx.nVersion < CCbTx::Version::CLSIG_AND_BALANCE) { return true; } auto best_clsig = chainlock_handler.GetBestChainLock(); - if (best_clsig.getHeight() == pindex->nHeight - 1 && opt_cbTx->bestCLHeightDiff == 0 && opt_cbTx->bestCLSignature == best_clsig.getSig()) { + if (best_clsig.getHeight() == pindex->nHeight - 1 && cbTx.bestCLHeightDiff == 0 && cbTx.bestCLSignature == best_clsig.getSig()) { // matches our best clsig which still hold values for the previous block return true; } - if (check_clhdiff) { - auto prevBlockCoinbaseChainlock = GetNonNullCoinbaseChainlock(pindex->pprev); - // If std::optional prevBlockCoinbaseChainlock is empty, then up to the previous block, coinbase Chainlock is null. - if (prevBlockCoinbaseChainlock.has_value()) { - // Previous block Coinbase has a non-null Chainlock: current block's Chainlock must be non-null and at least as new as the previous one - if (!opt_cbTx->bestCLSignature.IsValid()) { - // IsNull() doesn't exist for CBLSSignature: we assume that a non valid BLS sig is null - return state.Invalid(BlockValidationResult::BLOCK_CONSENSUS, "bad-cbtx-null-clsig"); - } - if (opt_cbTx->bestCLHeightDiff > prevBlockCoinbaseChainlock.value().second + 1) { - return state.Invalid(BlockValidationResult::BLOCK_CONSENSUS, "bad-cbtx-older-clsig"); - } + const auto prevBlockCoinbaseChainlock = GetNonNullCoinbaseChainlock(pindex->pprev); + // If std::optional prevBlockCoinbaseChainlock is empty, then up to the previous block, coinbase Chainlock is null. + if (prevBlockCoinbaseChainlock.has_value()) { + // Previous block Coinbase has a non-null Chainlock: current block's Chainlock must be non-null and at least as new as the previous one + if (!cbTx.bestCLSignature.IsValid()) { + // IsNull() doesn't exist for CBLSSignature: we assume that a non valid BLS sig is null + return state.Invalid(BlockValidationResult::BLOCK_CONSENSUS, "bad-cbtx-null-clsig"); + } + if (cbTx.bestCLHeightDiff > prevBlockCoinbaseChainlock.value().second + 1) { + return state.Invalid(BlockValidationResult::BLOCK_CONSENSUS, "bad-cbtx-older-clsig"); } } // IsNull() doesn't exist for CBLSSignature: we assume that a valid BLS sig is non-null - if (opt_cbTx->bestCLSignature.IsValid()) { - int curBlockCoinbaseCLHeight = pindex->nHeight - static_cast(opt_cbTx->bestCLHeightDiff) - 1; - if (best_clsig.getHeight() == curBlockCoinbaseCLHeight && best_clsig.getSig() == opt_cbTx->bestCLSignature) { + if (cbTx.bestCLSignature.IsValid()) { + int curBlockCoinbaseCLHeight = pindex->nHeight - static_cast(cbTx.bestCLHeightDiff) - 1; + if (best_clsig.getHeight() == curBlockCoinbaseCLHeight && best_clsig.getSig() == cbTx.bestCLSignature) { // matches our best (but outdated) clsig, no need to verify it again return true; } uint256 curBlockCoinbaseCLBlockHash = pindex->GetAncestor(curBlockCoinbaseCLHeight)->GetBlockHash(); - if (chainlock_handler.VerifyChainLock(llmq::CChainLockSig(curBlockCoinbaseCLHeight, curBlockCoinbaseCLBlockHash, opt_cbTx->bestCLSignature)) != llmq::VerifyRecSigStatus::Valid) { + if (chainlock_handler.VerifyChainLock(llmq::CChainLockSig(curBlockCoinbaseCLHeight, curBlockCoinbaseCLBlockHash, cbTx.bestCLSignature)) != llmq::VerifyRecSigStatus::Valid) { return state.Invalid(BlockValidationResult::BLOCK_CONSENSUS, "bad-cbtx-invalid-clsig"); } - } else if (opt_cbTx->bestCLHeightDiff != 0) { + } else if (cbTx.bestCLHeightDiff != 0) { // Null bestCLSignature is allowed only with bestCLHeightDiff = 0 return state.Invalid(BlockValidationResult::BLOCK_CONSENSUS, "bad-cbtx-cldiff"); } diff --git a/src/evo/cbtx.h b/src/evo/cbtx.h index cb8ab1f92cc4f..ad6b74d10fb90 100644 --- a/src/evo/cbtx.h +++ b/src/evo/cbtx.h @@ -96,7 +96,7 @@ bool CalcCbTxMerkleRootQuorums(const CBlock& block, const CBlockIndex* pindexPre BlockValidationState& state); bool CheckCbTxBestChainlock(const CBlock& block, const CBlockIndex* pindexPrev, - const llmq::CChainLocksHandler& chainlock_handler, BlockValidationState& state, const bool check_clhdiff); + const llmq::CChainLocksHandler& chainlock_handler, BlockValidationState& state); bool CalcCbTxBestChainlock(const llmq::CChainLocksHandler& chainlock_handler, const CBlockIndex* pindexPrev, uint32_t& bestCLHeightDiff, CBLSSignature& bestCLSignature); diff --git a/src/evo/specialtxman.cpp b/src/evo/specialtxman.cpp index c8c84e84bed44..5ed1e08c10ba0 100644 --- a/src/evo/specialtxman.cpp +++ b/src/evo/specialtxman.cpp @@ -188,7 +188,7 @@ bool CSpecialTxProcessor::ProcessSpecialTxsInBlock(const CBlock& block, const CB nTimeMerkle += nTime5 - nTime4; LogPrint(BCLog::BENCHMARK, " - CheckCbTxMerkleRoots: %.2fms [%.2fs]\n", 0.001 * (nTime5 - nTime4), nTimeMerkle * 0.000001); - if (fCheckCbTxMerkleRoots && !CheckCbTxBestChainlock(block, pindex, m_clhandler, state, DeploymentActiveAt(*pindex, m_consensus_params, Consensus::DEPLOYMENT_MN_RR))) { + if (fCheckCbTxMerkleRoots && !CheckCbTxBestChainlock(block, pindex, m_clhandler, state)) { // pass the state returned by the function above return false; } diff --git a/test/functional/feature_llmq_chainlocks.py b/test/functional/feature_llmq_chainlocks.py index 03807ddd2ba30..1714393939b00 100755 --- a/test/functional/feature_llmq_chainlocks.py +++ b/test/functional/feature_llmq_chainlocks.py @@ -15,12 +15,12 @@ from test_framework.messages import CBlock, CCbTx from test_framework.test_framework import DashTestFramework -from test_framework.util import assert_equal, assert_raises_rpc_error, force_finish_mnsync, softfork_active +from test_framework.util import assert_equal, assert_raises_rpc_error, force_finish_mnsync class LLMQChainLocksTest(DashTestFramework): def set_test_params(self): - self.set_dash_test_params(5, 4, [["-testactivationheight=mn_rr@1100"]] * 5) + self.set_dash_test_params(5, 4) def run_test(self): # Connect all nodes to node1 so that we always have the whole network connected @@ -31,8 +31,8 @@ def run_test(self): self.test_coinbase_best_cl(self.nodes[0], expected_cl_in_cb=False) - self.activate_v20(expected_activation_height=900) - self.log.info("Activated v20 at height:" + str(self.nodes[0].getblockcount())) + self.activate_mn_rr(expected_activation_height=900) + self.log.info("Activated MN_RR at height:" + str(self.nodes[0].getblockcount())) # v20 is active for the next block, not for the tip self.test_coinbase_best_cl(self.nodes[0], expected_cl_in_cb=False) @@ -243,14 +243,8 @@ def run_test(self): assert_equal(tip_1['cbTx']['bestCLSignature'], tip_0['cbTx']['bestCLSignature']) assert_equal(tip_1['cbTx']['bestCLHeightDiff'], tip_0['cbTx']['bestCLHeightDiff'] + 1) - self.log.info("Test that bestCLHeightDiff conditions are relaxed before mn_rr") - self.test_bestCLHeightDiff(False) - - self.activate_mn_rr(expected_activation_height=1100) - self.log.info("Activated mn_rr at height:" + str(self.nodes[0].getblockcount())) - - self.log.info("Test that bestCLHeightDiff conditions are stricter after mn_rr") - self.test_bestCLHeightDiff(True) + self.log.info("Test bestCLHeightDiff restrictions") + self.test_bestCLHeightDiff() def create_chained_txs(self, node, amount): txid = node.sendtoaddress(node.getnewaddress(), amount) @@ -293,11 +287,10 @@ def test_coinbase_best_cl(self, node, expected_cl_in_cb=True, expected_null_cl=F else: assert "bestCLHeightDiff" not in cbtx and "bestCLSignature" not in cbtx - def test_bestCLHeightDiff(self, mn_rr_active): + def test_bestCLHeightDiff(self): # We need 2 blocks we can grab clsigs from for _ in range(2): self.wait_for_chainlocked_block_all_nodes(self.generate(self.nodes[0], 1, sync_fun=self.no_op)[0]) - assert_equal(softfork_active(self.nodes[1], "mn_rr"), mn_rr_active) tip1_hash = self.nodes[1].getbestblockhash() self.isolate_node(1) @@ -339,10 +332,10 @@ def test_bestCLHeightDiff(self, mn_rr_active): mal_block.hashMerkleRoot = mal_block.calc_merkle_root() mal_block.solve() result = self.nodes[1].submitblock(mal_block.serialize().hex()) - assert_equal(result, "bad-cbtx-older-clsig" if mn_rr_active else "bad-cbtx-invalid-clsig") + assert_equal(result, "bad-cbtx-older-clsig") assert_equal(self.nodes[1].getbestblockhash(), tip1_hash) - # Update the sig too and it should pass now when mn_rr is not active and fail otherwise + # Update the sig too and it should fail old_blockhash = self.nodes[1].getblockhash(self.nodes[1].getblockcount() - 1) cbtx.bestCLSignature = bytes.fromhex(self.nodes[1].getblock(old_blockhash, 2)["tx"][0]["cbTx"]["bestCLSignature"]) mal_block.vtx[0].vExtraPayload = cbtx.serialize() @@ -350,12 +343,8 @@ def test_bestCLHeightDiff(self, mn_rr_active): mal_block.hashMerkleRoot = mal_block.calc_merkle_root() mal_block.solve() result = self.nodes[1].submitblock(mal_block.serialize().hex()) - if mn_rr_active: - assert_equal(result, "bad-cbtx-older-clsig") - assert_equal(self.nodes[1].getbestblockhash(), tip1_hash) - else: - assert_equal(result, None) - assert not self.nodes[1].getbestblockhash() == tip1_hash + assert_equal(result, "bad-cbtx-older-clsig") + assert_equal(self.nodes[1].getbestblockhash(), tip1_hash) self.reconnect_isolated_node(1, 0) self.sync_all() From 9fed4564f4aa979560a9446a40545bdb3ed85227 Mon Sep 17 00:00:00 2001 From: pasta Date: Wed, 20 Nov 2024 22:08:56 -0600 Subject: [PATCH 06/24] Merge #6407: fix: dataraces 5078baea2b1ca3684ea582eda6ac4cea0924ce43 fix(test): wait for chainlock before mining a block we expect to include said chainlock (pasta) f39c1e6f4c2f7595a0d8b369f9edf6bb0132c6ce fix: guard m_can_tx_relay behind m_tx_relay_mutex; make it private; add additional annotations (pasta) Pull request description: ## Issue being fixed or feature implemented See each commit; fixes two bugs, both discovered while running feature_llmq_chainlocks.py with tsan / debug. one a datarace in net_processing.cpp and the other in the test I was using to ensure this fix was correct, feature_llmq_chainlocks ## What was done? ### net_processing.cpp You can see the datarace here: https://gist.github.com/PastaPastaPasta/c966a9f805758b34524085e3d52ea7f8 We simply guard it with an existing mutex that is always locked in close proximity. ### feature_llmq_chainlocks.py Most of the time, while generating the cycle quorum, there is sufficient time to generate a chainlock; however, this is racey, and I've observed locally where the block gets generated before a chainlock is present and as such `test_coinbase_best_cl` fails. We should instead wait for the chainlock first, and then mine the block. This was we can ensure the mined block will include that chainlock. This was observed locally maybe 1/10 times or so ## How Has This Been Tested? ran feature_llmq_chainlocks.py ~40 times locally with tsan / debug ## Breaking Changes None ## Checklist: _Go over all the following points, and put an `x` in all the boxes that apply._ - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: kwvg: utACK 5078baea2b1ca3684ea582eda6ac4cea0924ce43 knst: utACK 5078baea2b1ca3684ea582eda6ac4cea0924ce43 UdjinM6: utACK 5078baea2b1ca3684ea582eda6ac4cea0924ce43 Tree-SHA512: b346fc60809df72d0161f625073dce7062bd2641d35e4f80160fac9afeec63707de552e2856940ac2604875908ae3b98a225d352de36bfbfc6ee3fbe1e1538ff --- src/net_processing.cpp | 16 +++++++++------- test/functional/feature_llmq_chainlocks.py | 7 +++---- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/net_processing.cpp b/src/net_processing.cpp index 8676ad337116d..b6f75dfa00155 100644 --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -309,21 +309,23 @@ struct Peer { /** * (Bitcoin) Initializes a TxRelay struct for this peer. Can be called at most once for a peer. * (Dash) Enables the flag that allows GetTxRelay() to return m_tx_relay */ - TxRelay* SetTxRelay() + TxRelay* SetTxRelay() LOCKS_EXCLUDED(m_tx_relay_mutex) { + LOCK(m_tx_relay_mutex); Assume(!m_can_tx_relay); m_can_tx_relay = true; - return WITH_LOCK(m_tx_relay_mutex, return m_tx_relay.get()); + return m_tx_relay.get(); }; - TxRelay* GetInvRelay() + TxRelay* GetInvRelay() LOCKS_EXCLUDED(m_tx_relay_mutex) { return WITH_LOCK(m_tx_relay_mutex, return m_tx_relay.get()); } - TxRelay* GetTxRelay() + TxRelay* GetTxRelay() LOCKS_EXCLUDED(m_tx_relay_mutex) { - return m_can_tx_relay ? WITH_LOCK(m_tx_relay_mutex, return m_tx_relay.get()) : nullptr; + LOCK(m_tx_relay_mutex); + return m_can_tx_relay ? m_tx_relay.get() : nullptr; }; /** A vector of addresses to send to the peer, limited to MAX_ADDR_TO_SEND. */ @@ -353,8 +355,6 @@ struct Peer { * This field must correlate with whether m_addr_known has been * initialized.*/ std::atomic_bool m_addr_relay_enabled{false}; - /** Whether a peer can relay transactions */ - bool m_can_tx_relay{false}; /** Whether a getaddr request to this peer is outstanding. */ bool m_getaddr_sent GUARDED_BY(NetEventsInterface::g_msgproc_mutex){false}; /** Guards address sending timers. */ @@ -406,6 +406,8 @@ struct Peer { * (non-transaction relay should use GetInvRelay(), which will provide * unconditional access) */ std::unique_ptr m_tx_relay GUARDED_BY(m_tx_relay_mutex){std::make_unique()}; + /** Whether a peer can relay transactions */ + bool m_can_tx_relay GUARDED_BY(m_tx_relay_mutex) {false}; }; using PeerRef = std::shared_ptr; diff --git a/test/functional/feature_llmq_chainlocks.py b/test/functional/feature_llmq_chainlocks.py index 1714393939b00..599d350c7508b 100755 --- a/test/functional/feature_llmq_chainlocks.py +++ b/test/functional/feature_llmq_chainlocks.py @@ -56,11 +56,10 @@ def run_test(self): self.move_to_next_cycle() self.log.info("Cycle H+2C height:" + str(self.nodes[0].getblockcount())) self.mine_cycle_quorum(llmq_type_name="llmq_test_dip0024", llmq_type=103) - - - self.log.info("Mine single block, wait for chainlock") - self.generate(self.nodes[0], 1, sync_fun=self.no_op) self.wait_for_chainlocked_block_all_nodes(self.nodes[0].getbestblockhash()) + + self.log.info("Mine single block, ensure it includes latest chainlock") + self.generate(self.nodes[0], 1, sync_fun=self.sync_blocks) self.test_coinbase_best_cl(self.nodes[0]) # ChainLock locks all the blocks below it so nocl_block_hash should be locked too From 18f636f9a4c50981a80c4f2498a7f874a44d6eba Mon Sep 17 00:00:00 2001 From: pasta Date: Tue, 26 Nov 2024 08:25:57 -0600 Subject: [PATCH 07/24] Merge #6426: fix: respect SENDDSQUEUE message, move DSQ relay into net processing / peerman dafa7363a38f6ebe445461ff7d8a707f867bbc82 fix: respect SENDDSQUEUE message, move DSQ relay into net processing / peerman (pasta) Pull request description: ## Issue being fixed or feature implemented in #6148, I broke the functionality where a peer must opt in / opt out of DSQUEUE messages. This was mostly ok, and not immediately detected, as with this bug, simply everyone would receive DSQ messages over inventory (or classically, old proto versions were not affected by this bug). But this still would result in quite a bit of wasted bandwidth for peers which may not care about DSQ at all. ## What was done? This commit should restore the prior functionality, where a node should send the SENDDSQUEUE message if they wish to receive DSQs. Once they've sent that, depending on their protocol version, they will either have the messages pushed to them as available, or on modern protocols, they will thereafter receive DSQs over the inventory system. NOTE: I also refactor the code in this commit, moving some network proccessing into.... wait for it... net_processing.cpp! This allowed us to remove some dependencies in coinjoin.h. DSQ messages are now relayed to peers by calling peer_manager.RelayDSQ ## How Has This Been Tested? I have not yet mixed on testnet with this; we should include it in rc.2 and test ## Breaking Changes Slightly breaking for v22.0.x (so rc.1), as they in theory could be relying on this new logic of always receiving the DSQ inv. But I don't think anyone besides core is using this new protocol. ## Checklist: _Go over all the following points, and put an `x` in all the boxes that apply._ - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone ACKs for top commit: UdjinM6: light ACK dafa7363a38f6ebe445461ff7d8a707f867bbc82 kwvg: utACK dafa7363a38f6ebe445461ff7d8a707f867bbc82 Tree-SHA512: 18f9b0dfe05cde19db451653db9bb9a00352efd1bc37adffd83f74958010475f2782b1111b1c0d2dd967e7a851c3c4795fa55033b4bd0cc810aa293e754ce314 --- src/coinjoin/client.cpp | 2 +- src/coinjoin/client.h | 1 + src/coinjoin/coinjoin.cpp | 14 ------------ src/coinjoin/coinjoin.h | 4 ---- src/coinjoin/server.cpp | 6 ++--- src/coinjoin/server.h | 1 + src/net_processing.cpp | 46 ++++++++++++++++++++++++++++++++++++++- src/net_processing.h | 4 ++++ 8 files changed, 55 insertions(+), 23 deletions(-) diff --git a/src/coinjoin/client.cpp b/src/coinjoin/client.cpp index 4c15f98f4a518..9804b1be5bee9 100644 --- a/src/coinjoin/client.cpp +++ b/src/coinjoin/client.cpp @@ -132,7 +132,7 @@ PeerMsgRet CCoinJoinClientQueueManager::ProcessDSQueue(const CNode& peer, CDataS WITH_LOCK(cs_vecqueue, vecCoinJoinQueue.push_back(dsq)); } } // cs_ProcessDSQueue - dsq.Relay(connman, *peerman); + peerman->RelayDSQ(dsq); return {}; } diff --git a/src/coinjoin/client.h b/src/coinjoin/client.h index c4e22b71230ce..17239b9a71b7d 100644 --- a/src/coinjoin/client.h +++ b/src/coinjoin/client.h @@ -28,6 +28,7 @@ class CMasternodeSync; class CNode; class CoinJoinWalletManager; class CTxMemPool; +class PeerManager; class UniValue; diff --git a/src/coinjoin/coinjoin.cpp b/src/coinjoin/coinjoin.cpp index 338b4cf054c42..74fc644a70911 100644 --- a/src/coinjoin/coinjoin.cpp +++ b/src/coinjoin/coinjoin.cpp @@ -14,7 +14,6 @@ #include #include #include -#include #include #include #include @@ -71,19 +70,6 @@ bool CCoinJoinQueue::CheckSignature(const CBLSPublicKey& blsPubKey) const return true; } -bool CCoinJoinQueue::Relay(CConnman& connman, PeerManager& peerman) -{ - CInv inv(MSG_DSQ, GetHash()); - peerman.RelayInv(inv, DSQ_INV_VERSION); - connman.ForEachNode([&connman, this](CNode* pnode) { - CNetMsgMaker msgMaker(pnode->GetCommonVersion()); - if (pnode->fSendDSQueue && pnode->nVersion < DSQ_INV_VERSION) { - connman.PushMessage(pnode, msgMaker.Make(NetMsgType::DSQUEUE, (*this))); - } - }); - return true; -} - bool CCoinJoinQueue::IsTimeOutOfBounds(int64_t current_time) const { return current_time - nTime > COINJOIN_QUEUE_TIMEOUT || diff --git a/src/coinjoin/coinjoin.h b/src/coinjoin/coinjoin.h index 5680b8abc20fc..68e2f40c05549 100644 --- a/src/coinjoin/coinjoin.h +++ b/src/coinjoin/coinjoin.h @@ -24,14 +24,12 @@ class CActiveMasternodeManager; class CChainState; -class CConnman; class CBLSPublicKey; class CBlockIndex; class ChainstateManager; class CMasternodeSync; class CTxMemPool; class TxValidationState; -class PeerManager; namespace llmq { class CChainLocksHandler; @@ -221,8 +219,6 @@ class CCoinJoinQueue /// Check if we have a valid Masternode address [[nodiscard]] bool CheckSignature(const CBLSPublicKey& blsPubKey) const; - bool Relay(CConnman& connman, PeerManager& peerman); - /// Check if a queue is too old or too far into the future [[nodiscard]] bool IsTimeOutOfBounds(int64_t current_time = GetAdjustedTime()) const; diff --git a/src/coinjoin/server.cpp b/src/coinjoin/server.cpp index 856cf5fc7ed5e..bb65990dd9006 100644 --- a/src/coinjoin/server.cpp +++ b/src/coinjoin/server.cpp @@ -186,7 +186,7 @@ PeerMsgRet CCoinJoinServer::ProcessDSQUEUE(const CNode& peer, CDataStream& vRecv TRY_LOCK(cs_vecqueue, lockRecv); if (!lockRecv) return {}; vecCoinJoinQueue.push_back(dsq); - dsq.Relay(connman, *m_peerman); + m_peerman->RelayDSQ(dsq); } return {}; } @@ -519,7 +519,7 @@ void CCoinJoinServer::CheckForCompleteQueue() LogPrint(BCLog::COINJOIN, "CCoinJoinServer::CheckForCompleteQueue -- queue is ready, signing and relaying (%s) " /* Continued */ "with %d participants\n", dsq.ToString(), vecSessionCollaterals.size()); dsq.Sign(*m_mn_activeman); - dsq.Relay(connman, *m_peerman); + m_peerman->RelayDSQ(dsq); } } @@ -732,7 +732,7 @@ bool CCoinJoinServer::CreateNewSession(const CCoinJoinAccept& dsa, PoolMessage& GetAdjustedTime(), false); LogPrint(BCLog::COINJOIN, "CCoinJoinServer::CreateNewSession -- signing and relaying new queue: %s\n", dsq.ToString()); dsq.Sign(*m_mn_activeman); - dsq.Relay(connman, *m_peerman); + m_peerman->RelayDSQ(dsq); LOCK(cs_vecqueue); vecCoinJoinQueue.push_back(dsq); } diff --git a/src/coinjoin/server.h b/src/coinjoin/server.h index e7f3a2340b640..c33e98fbf8e70 100644 --- a/src/coinjoin/server.h +++ b/src/coinjoin/server.h @@ -11,6 +11,7 @@ class CActiveMasternodeManager; class CCoinJoinServer; +class CConnman; class CDataStream; class CDeterministicMNManager; class CDSTXManager; diff --git a/src/net_processing.cpp b/src/net_processing.cpp index b6f75dfa00155..0997044e504d2 100644 --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -366,6 +366,15 @@ struct Peer { /** Whether the peer has signaled support for receiving ADDRv2 (BIP155) * messages, indicating a preference to receive ADDRv2 instead of ADDR ones. */ std::atomic_bool m_wants_addrv2{false}; + + enum class WantsDSQ { + NONE, // Peer doesn't want DSQs + INV, // Peer will be notified of DSQs over Inventory System (see: DSQ_INV_VERSION) + ALL, // Peer will be notified of all DSQs, by simply sending them the DSQ + }; + + std::atomic m_wants_dsq{WantsDSQ::NONE}; + /** Whether this peer has already sent us a getaddr message. */ bool m_getaddr_recvd GUARDED_BY(NetEventsInterface::g_msgproc_mutex){false}; /** Number of addresses that can be processed from this peer. Start at 1 to @@ -607,6 +616,7 @@ class PeerManagerImpl final : public PeerManager void RelayInvFiltered(CInv &inv, const CTransaction &relatedTx, const int minProtoVersion) override EXCLUSIVE_LOCKS_REQUIRED(!m_peer_mutex); void RelayInvFiltered(CInv &inv, const uint256 &relatedTxHash, const int minProtoVersion) override EXCLUSIVE_LOCKS_REQUIRED(!m_peer_mutex); void RelayTransaction(const uint256& txid) override EXCLUSIVE_LOCKS_REQUIRED(!m_peer_mutex); + void RelayDSQ(const CCoinJoinQueue& queue) override EXCLUSIVE_LOCKS_REQUIRED(!m_peer_mutex); void SetBestHeight(int height) override { m_best_height = height; }; void Misbehaving(const NodeId pnode, const int howmuch, const std::string& message = "") override EXCLUSIVE_LOCKS_REQUIRED(!m_peer_mutex); void ProcessMessage(CNode& pfrom, const std::string& msg_type, CDataStream& vRecv, @@ -2276,6 +2286,34 @@ void PeerManagerImpl::RelayInv(CInv &inv, const int minProtoVersion) }); } +void PeerManagerImpl::RelayDSQ(const CCoinJoinQueue& queue) +{ + CInv inv{MSG_DSQ, queue.GetHash()}; + std::vector nodes_send_all; + { + LOCK(m_peer_mutex); + for (const auto& [nodeid, peer] : m_peer_map) { + switch (peer->m_wants_dsq) { + case Peer::WantsDSQ::NONE: + break; + case Peer::WantsDSQ::INV: + PushInv(*peer, inv); + break; + case Peer::WantsDSQ::ALL: + nodes_send_all.push_back(nodeid); + break; + } + } + } + for (auto nodeId : nodes_send_all) { + m_connman.ForNode(nodeId, [&](CNode* pnode) -> bool { + CNetMsgMaker msgMaker(pnode->GetCommonVersion()); + m_connman.PushMessage(pnode, msgMaker.Make(NetMsgType::DSQUEUE, queue)); + return true; + }); + } +} + void PeerManagerImpl::RelayInvFiltered(CInv &inv, const CTransaction& relatedTx, const int minProtoVersion) { // TODO: Migrate to iteration through m_peer_map @@ -3940,7 +3978,13 @@ void PeerManagerImpl::ProcessMessage( { bool b; vRecv >> b; - pfrom.fSendDSQueue = b; + if (!b) { + peer->m_wants_dsq = Peer::WantsDSQ::NONE; + } else if (pfrom.GetCommonVersion() < DSQ_INV_VERSION) { + peer->m_wants_dsq = Peer::WantsDSQ::ALL; + } else { + peer->m_wants_dsq = Peer::WantsDSQ::INV; + } return; } diff --git a/src/net_processing.h b/src/net_processing.h index a857201516053..58925a6db7218 100644 --- a/src/net_processing.h +++ b/src/net_processing.h @@ -16,6 +16,7 @@ class CActiveMasternodeManager; class AddrMan; class CTxMemPool; +class CCoinJoinQueue; class CDeterministicMNManager; class CMasternodeMetaMan; class CMasternodeSync; @@ -93,6 +94,9 @@ class PeerManager : public CValidationInterface, public NetEventsInterface /** Broadcast inventory message to a specific peer. */ virtual void PushInventory(NodeId nodeid, const CInv& inv) = 0; + /** Relay DSQ based on peer preference */ + virtual void RelayDSQ(const CCoinJoinQueue& queue) = 0; + /** Relay inventories to all peers */ virtual void RelayInv(CInv &inv, const int minProtoVersion = MIN_PEER_PROTO_VERSION) = 0; virtual void RelayInvFiltered(CInv &inv, const CTransaction &relatedTx, From 3bbcd3d4f8b54af18ef8edc3ec4c699a44d75ab2 Mon Sep 17 00:00:00 2001 From: pasta Date: Tue, 26 Nov 2024 08:26:58 -0600 Subject: [PATCH 08/24] Merge #6393: docs: mention building for some HOSTs only in `release-process.md` 87c31ad67a92f738e317f81ef9873a8fb80028f7 Update doc/release-process.md (UdjinM6) 55d74630b43058b51f22d3ac9da6f3d1295416a8 docs: mention building for some HOSTs only in `release-process.md` (UdjinM6) Pull request description: ## Issue being fixed or feature implemented https://github.com/dashpay/guix.sigs/pull/73 #6390 follow-up ## What was done? ## How Has This Been Tested? ## Breaking Changes ## Checklist: - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ Top commit has no ACKs. Tree-SHA512: b4a2cadf5899a8aea6612b4ff9c0e9f9c530a9e2344eb090967fbcf9a2ab219aff02f11f86434e4082f84c401d578cf2d033b6838c94705f532beca4ab604986 --- doc/release-process.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/release-process.md b/doc/release-process.md index 221da92d0d518..6089e43eab148 100644 --- a/doc/release-process.md +++ b/doc/release-process.md @@ -97,6 +97,8 @@ Follow the relevant Guix README.md sections: - [Building](/contrib/guix/README.md#building) - [Attesting to build outputs](/contrib/guix/README.md#attesting-to-build-outputs) +_Note: we ship releases for only some supported HOSTs so consider providing limited `HOSTS` variable or run `./contrib/containers/guix/scripts/guix-start` instead of `./contrib/guix/guix-build` when building binaries for quicker builds that exclude the supported but not shipped HOSTs_ + ### Verify other builders' signatures to your own. (Optional) Add other builders keys to your gpg keyring, and/or refresh keys: See `../dash/contrib/builder-keys/README.md`. From 02ad523a22fff8e475a80ed286d5bbeb893a143d Mon Sep 17 00:00:00 2001 From: pasta Date: Thu, 21 Nov 2024 14:29:19 -0600 Subject: [PATCH 09/24] Merge #6411: chore: update nMinimumChainWork, defaultAssumeValid, checkpointData, chainTxData for mainnet and testnet 31243ca313d52dd327d41ba1e7102ed4a6ee9b9b chore: update nMinimumChainWork, defaultAssumeValid, checkpointData, chainTxData for mainnet and testnet (pasta) Pull request description: ## Issue being fixed or feature implemented Bump chainparams in prep for v22 ## What was done? ## How Has This Been Tested? ## Breaking Changes ## Checklist: _Go over all the following points, and put an `x` in all the boxes that apply._ - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: UdjinM6: utACK 31243ca313d52dd327d41ba1e7102ed4a6ee9b9b Tree-SHA512: 6a01bbbaefb69437e053340b968e0ce68e2bd9e5e5fd2900864d88ffc21c5cd3f9c2a50d8f5b19f16515cd4c62a4a8fc2d981dd6d0456e86ef96f40e350e786a --- src/chainparams.cpp | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/chainparams.cpp b/src/chainparams.cpp index eeab97c2c479f..616f4e650f42c 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -219,10 +219,10 @@ class CMainParams : public CChainParams { consensus.vDeployments[Consensus::DEPLOYMENT_WITHDRAWALS].useEHF = true; // The best chain should have at least this much work. - consensus.nMinimumChainWork = uint256S("0x00000000000000000000000000000000000000000000988117deadb0db9cd5b8"); // 2109672 + consensus.nMinimumChainWork = uint256S("0x000000000000000000000000000000000000000000009eb0f1d7fefc8750aebb"); // 2175051 // By default assume that the signatures in ancestors of this block are valid. - consensus.defaultAssumeValid = uint256S("0x000000000000001889bd33ef019065e250d32bd46911f4003d3fdd8128b5358d"); // 2109672 + consensus.defaultAssumeValid = uint256S("0x000000000000001cf26547602d982dcaa909231bbcd1e70c0eb3c65de25473ba"); // 2175051 /** * The message start string is designed to be unlikely to occur in normal data. @@ -332,6 +332,7 @@ class CMainParams : public CChainParams { {1969000, uint256S("0x000000000000000c8b7a3bdcd8b9f516462122314529c8342244c685a4c899bf")}, {2029000, uint256S("0x0000000000000020d5e38b6aef5bc8e430029444d7977b46f710c7d281ef1281")}, {2109672, uint256S("0x000000000000001889bd33ef019065e250d32bd46911f4003d3fdd8128b5358d")}, + {2175051, uint256S("0x000000000000001cf26547602d982dcaa909231bbcd1e70c0eb3c65de25473ba")}, } }; @@ -339,12 +340,12 @@ class CMainParams : public CChainParams { // TODO to be specified in a future patch. }; - // getchaintxstats 17280 000000000000001889bd33ef019065e250d32bd46911f4003d3fdd8128b5358d + // getchaintxstats 17280 000000000000001cf26547602d982dcaa909231bbcd1e70c0eb3c65de25473ba chainTxData = ChainTxData{ - 1721769714, // * UNIX timestamp of last known number of transactions (Block 1969000) - 53767892, // * total number of transactions between genesis and that timestamp + 1732068694, // * UNIX timestamp of last known number of transactions (Block 1969000) + 55191134, // * total number of transactions between genesis and that timestamp // (the tx=... number in the ChainStateFlushed debug.log lines) - 0.1580795981751139, // * estimated number of transactions per second after that timestamp + 0.1528060985790164, // * estimated number of transactions per second after that timestamp }; } }; @@ -416,10 +417,10 @@ class CTestNetParams : public CChainParams { consensus.vDeployments[Consensus::DEPLOYMENT_WITHDRAWALS].useEHF = true; // The best chain should have at least this much work. - consensus.nMinimumChainWork = uint256S("0x000000000000000000000000000000000000000000000000031779704a0f54b4"); // 1069875 + consensus.nMinimumChainWork = uint256S("0x000000000000000000000000000000000000000000000000031ee38bc0876cef"); // 1143608 // By default assume that the signatures in ancestors of this block are valid. - consensus.defaultAssumeValid = uint256S("0x00000034bfeb926662ba547c0b8dd4ba8cbb6e0c581f4e7d1bddce8f9ca3a608"); // 1069875 + consensus.defaultAssumeValid = uint256S("0x000000eef20eb0062abd4e799967e98bdebb165dd1c567ab4118c1c86c6e948f"); // 1143608 pchMessageStart[0] = 0xce; pchMessageStart[1] = 0xe2; @@ -505,6 +506,7 @@ class CTestNetParams : public CChainParams { {905100, uint256S("0x0000020c5e0f86f385cbf8e90210de9a9fd63633f01433bf47a6b3227a2851fd")}, {960000, uint256S("0x0000000386cf5061ea16404c66deb83eb67892fa4f79b9e58e5eaab097ec2bd6")}, {1069875, uint256S("0x00000034bfeb926662ba547c0b8dd4ba8cbb6e0c581f4e7d1bddce8f9ca3a608")}, + {1143608, uint256S("0x000000eef20eb0062abd4e799967e98bdebb165dd1c567ab4118c1c86c6e948f")}, } }; @@ -512,12 +514,12 @@ class CTestNetParams : public CChainParams { // TODO to be specified in a future patch. }; - // getchaintxstats 17280 00000034bfeb926662ba547c0b8dd4ba8cbb6e0c581f4e7d1bddce8f9ca3a608 + // getchaintxstats 17280 000000eef20eb0062abd4e799967e98bdebb165dd1c567ab4118c1c86c6e948f chainTxData = ChainTxData{ - 1721770009, // * UNIX timestamp of last known number of transactions (Block 905100) - 6548039, // * total number of transactions between genesis and that timestamp + 1732068833, // * UNIX timestamp of last known number of transactions (Block 905100) + 6701197, // * total number of transactions between genesis and that timestamp // (the tx=... number in the ChainStateFlushed debug.log lines) - 0.0152605485140752, // * estimated number of transactions per second after that timestamp + 0.01528131540752872, // * estimated number of transactions per second after that timestamp }; } }; From 8b88ff7ed6085687e6b3a2e4248ff67663d445c0 Mon Sep 17 00:00:00 2001 From: pasta Date: Wed, 20 Nov 2024 13:59:00 -0600 Subject: [PATCH 10/24] Merge #6414: chore: bump seeds for v22 5741d5da28f9fb74256f3c636a3afcd87118bc8e chore: update seeds (Kittywhiskers Van Gogh) 2d732fc66e88ba6fb0af4c1c9c601f80a015b8a4 chore: drop defunct onion seeds, add new existing onion hosts as seeds (pasta) Pull request description: ## Issue being fixed or feature implemented Update onion seeds for upcoming version ## What was done? Update onion seeds to reflect latest status ## How Has This Been Tested? As of today, all of these are able to be connected to on port 9999; I've not actually connected to all of them and verified they're on latest core or something like that; but their addresses my core knows about, and are able to be trivially connected to ## Breaking Changes ## Checklist: - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: kwvg: utACK 5741d5da28f9fb74256f3c636a3afcd87118bc8e UdjinM6: utACK 5741d5da28f9fb74256f3c636a3afcd87118bc8e Tree-SHA512: 541bcc510b2ebf6de08ac91f2b7e5b1c910536dca9bab0b38930d6e5cfa1cd05e8c014ba4c74c14c43ed211cda3275fffb5baaf1489bbd1221567130d804b0ec --- contrib/seeds/nodes_main.txt | 258 ++++++++++++++++++++++------------ contrib/seeds/onion_seeds.txt | 43 ++++-- src/chainparamsseeds.h | 258 ++++++++++++++++++++++------------ 3 files changed, 368 insertions(+), 191 deletions(-) diff --git a/contrib/seeds/nodes_main.txt b/contrib/seeds/nodes_main.txt index 0078a96b726dc..1ec14942c37a9 100644 --- a/contrib/seeds/nodes_main.txt +++ b/contrib/seeds/nodes_main.txt @@ -1,170 +1,248 @@ -zmkohnwhp67nxtaspaudwvbac3r3oab4j36kxoo7ofk636wcd2bflxad.onion:9999 -yvcukkjk6vsjliszrlhh3f4qal76w6n2hoi4hl4edp6b5zyifhcixoyd.onion:9999 -v7ttoiov7rc5aut64nfomyfwxt424ihufwvr5ilf7moeg3fwibjpjcqd.onion:9999 +xmbwpdsrsn2gdamvofesyy5zrgqcswsoorrh25jx7qy4w2gftttga7ad.onion:9999 +xjn2wouhpr2jrqtqa3itkccjxfvrpvjgehgkrqltggnei5wl2535eiyd.onion:9999 +wzf6u7feqa65kyd5ooyyvw3rxozurmuzgzr4r3qrigne3xlj5tazwnyd.onion:9999 +wtby3fkid4eqaknfvmakg6vofvpda4ukhuec7k52no76n6szxcvf7pid.onion:9999 +uf3otvrjnj7grwm7skwslf6ltibo24hkolrwuyxyx7yzlalwnupw4bid.onion:9999 tuzjyti6guw32smcxgswmt2fkjlkyxnt47rtspvmqerbalzdeyguczyd.onion:9999 snu2xaql3crh2b4t6g2wxemgrpzmaxfxla4tua63bnp2phhxwr6hzzid.onion:9999 +rwl447roxllklmqkmbp5aq2bxj4vwzomx6ellodoguc5vegnrr6v3yyd.onion:9999 qkcdtz6ejiycge6i3g6uyf6m4ivby7t77syt7yezlwwhtmbsk37u74yd.onion:9999 +qbqa37m7uiie63723muhzgl4swqjvs6oddzhtzw5ke32t47am6lq5mad.onion:9999 +qaocy2qaktafiuzyd3i4apyukvr2hr6fwjet625cqwbwq5yr4qqocbid.onion:9999 pcabrbxdlxgybiyykuiccajsfzazmigvc7cemqbzpqw5du27iqaihmyd.onion:9999 -nl7j4rwrb2yemyn5meu64jfbfj5pkeuyo73afihtjdytsh6fpiibkrad.onion:9999 -njmniixuv2ji4an6lfqol6d3bqbijt7cko6wpfgc2wyxe2jg5htwoiad.onion:9999 -mn3zcamezyz5fryftzvmenv4vtbv5ki2eodxugq5gjwka7fft7po4uid.onion:9999 -l2ae5ngumxbcoqwpaxquxq7p6fwtvgfqbokrm7vqiaho4rkijd4ssmyd.onion:9999 +p2d6rg6vh5f3mjrb75l2ppxtbbpjbf45vteyp3c4u3nxfonwpezaq4ad.onion:9999 +mj5zq3oeodlwselk5bnx5lhiuhwuuz6xgmijx4kbnpnhamkf5t7aqcqd.onion:9999 +lqg6nfbek54fbsgdycq6rej7edqcg4ps6mqmvsqr645iecbt7cz7e5qd.onion:9999 k6bzqtkhtzyziethin3kkys342rlzcmqkrs5ibashqclcu23ehuz6oqd.onion:9999 +k5gdngvamlwymwh2an6qlazpgvlhkrukaso6nv56d35pentpfhimvayd.onion:9999 k532fqvgzqotj6epfw3rfc377elrj3td47ztad2tkn6vwnw6nhxacrqd.onion:9999 +jqssjynvlqwfiordnux2vqt6glnr3fypypfwasrizbpwhbj2lvtuzqqd.onion:9999 +jjjhwysk4t3i7nrjyxyrf4yjjqmole4doowga7nnkyjih3hmi7q2jsad.onion:9999 +iy6wzfp65f5peehquqchqperx5r4qsybfmvvdjhe2ak3ig6pt3a452yd.onion:9999 itkatc2gpfkuvbmjflxgranktjrsokc7wcunu25mq7ptqms7fwex6jyd.onion:9999 -iekgzhetngwhhf7rfxglb3mdwajtoikpcvg3e3etpx4ylku6chr6jrqd.onion:9999 +iddbcb6xzrbrjpzwbozhe3pztgrhkwjo76o4wkrpi43p5jya6jv6m7qd.onion:9999 i75yxbzhzkk6q55oig6xeidcexswpgcbquhjuxkkwehy6rvjq6sjxmad.onion:9999 +hu43stbffzpgfixmzgx4ae2sp65nrjui6kagzrhkpqhmgsk2kbnfs6id.onion:9999 +hsq4dkpmgc3yeirpiufopkonabxq62kl43vkzry65vhp7ctlyl3ngayd.onion:9999 +h4rycn3lgltahxvfxte6rzuyu3ooa3f3a5pcgzhkvh5baqei7s3w6yid.onion:9999 h2cpqmjd3rqehro52stehi4vnyofxymfqdsexchhf7dpbbkoqkmjjiyd.onion:9999 +ggyyhg4yr2cv4cbjedcs43ag3vh3qvynaptmlg6yzono5hhgjqif37yd.onion:9999 gbg2wd4uwc5k7w5j3w46zre6r5ioezulgjriketxv4qekybzg2zwdnid.onion:9999 -g6qaacqm3z6xup6kmprb2uvb5wtv3a4isflh4aege2yfgpuvaozfnkad.onion:9999 +g62ldh5nedukfk5hvokn6ztbhmql6q7qegrq6dbzyvzir72xerqba6yd.onion:9999 +fzo6z4dcjtfg5eg7absrzsskznto5ivgsqty23hmcvf6bjeg4mq2m6yd.onion:9999 +etiufki5csbodchyyoqv4bv4qm2xzaljidnst4khl632xkdrsiihulad.onion:9999 eee7cdynbju7pax44vm3bo7aazi72qbqgwktpvk37hoxg7jkqez2kcad.onion:9999 +dw4u6agw6gktz7ykmgxn7m3fmgnnybhhlnish3lvnuylcb5wcwzutdqd.onion:9999 cmhr5r3lqhy7ic2ebeil66ftcz5u62zq5qhbfdz53l6sqxljh7zxntyd.onion:9999 +c5qhh5xrwnonmtniag5r7bftfweniwt2f6fdixq37c7gnunbjzgx26qd.onion:9999 buo3et3xvzdjqkpx6iscjz4oexyurhpbpl3is46d653kfitl2gdzm6yd.onion:9999 +ayhwwpjq4rg3bslbtt7yejqyhucyaqsbb7tn45blh4r7xj62wfonryqd.onion:9999 5v5lgddolcidtt2qmhmvyka2ewht4mkmmj73tfwuimlckgmqb5lthtid.onion:9999 -467ho3bhmndzbktbqd3nxf64isib54umiis5xc5n2xnt35u2ofhs5gid.onion:9999 -2h6yzlqtogqkaj4yhrofsccntpjyafpjxwutti65dkpqliuzah3is7ad.onion:9999 +5gnyyuxpkwsqv6sm2ee2k6uaiuq5ayaipjm33n5pwe22uit37yozrcid.onion:9999 +542grzvty3cnbtzc3sjatubkmnhw22x5gfvnj2lromdparwlc4j7o4qd.onion:9999 +4da4s6fvz2wt672kxxqgra4iurots4jnzzmeplbdt7abix655fjn23qd.onion:9999 +3uvcjymiixi6n6m2p6fsgyjxkx2ceaesd7eopi3p7jn364i5z646koid.onion:9999 +3cova3snmiydrdaqrszj5krnujpwgkueh2kjodun4hvixk3y5l5zmgid.onion:9999 +2br37z5ilg3i3rawwkznmh6lhczboql5zdrfgmkaxns4tpfrxmu6s5yd.onion:9999 216.250.97.52:9999 216.238.75.46:9999 216.230.232.125:9999 -216.189.154.8:9999 -216.189.154.7:9999 -213.168.249.174:9999 +213.218.209.34:9999 +213.199.34.250:9999 +213.171.15.125:9999 +213.159.77.221:9999 +212.52.0.210:9999 212.24.110.128:9999 -212.24.107.223:9999 +209.145.48.154:9999 +209.141.36.206:9999 +209.58.164.42:9999 +208.87.102.91:9999 207.244.247.40:9999 -206.189.132.224:9999 -206.168.213.108:9999 -206.168.212.226:9999 -206.168.212.178:9999 -206.168.212.144:9999 -194.158.71.228:9999 +202.5.16.33:9999 +198.7.115.48:9999 +195.181.211.64:9999 +195.98.95.210:9999 194.135.81.214:9999 -193.164.149.50:9999 -193.31.30.55:9999 -188.208.196.183:9999 +194.5.157.214:9999 +192.169.6.87:9999 +188.127.237.243:9999 188.127.230.40:9999 -188.68.223.94:9999 +188.40.178.67:9999 185.243.115.219:9999 +185.228.83.156:9999 +185.217.127.139:9999 185.213.24.34:9999 +185.198.234.54:9999 +185.198.234.33:9999 +185.198.234.25:9999 +185.198.234.17:9999 +185.185.40.171:9999 +185.185.40.104:9999 +185.166.217.154:9999 185.165.171.117:9999 185.164.163.218:9999 185.164.163.85:9999 -185.135.80.200:9999 +185.158.107.124:9999 +185.155.99.34:9999 +185.142.212.144:9999 +185.112.249.49:9999 185.87.149.61:9999 178.208.87.226:9999 178.208.87.213:9999 -178.157.91.179:9999 -178.157.91.176:9999 -178.157.91.126:9999 +178.159.2.12:9999 +178.157.91.184:9999 +178.157.91.178:9999 +178.157.91.177:9999 178.63.121.129:9999 -176.126.127.16:9999 -176.126.127.15:9999 -174.34.233.207:9999 -174.34.233.206:9999 -174.34.233.205:9999 -174.34.233.202:9999 -173.249.21.122:9999 +176.102.65.145:9999 +174.34.233.212:9999 +174.34.233.211:9999 +174.34.233.209:9999 +174.34.233.204:9999 +172.104.145.166:9999 172.104.90.249:9999 +170.75.167.244:9999 +170.75.162.212:9999 168.119.80.4:9999 167.88.169.16:9999 +167.88.165.175:9999 165.22.234.135:9999 -159.89.124.102:9999 -155.133.23.221:9999 +163.172.66.41:9999 +163.172.20.210:9999 +163.172.20.209:9999 +163.172.20.205:9999 +162.250.191.31:9999 +162.246.17.248:9999 +159.75.121.163:9999 +157.173.202.14:9999 +157.66.81.162:9999 +157.10.199.82:9999 +157.10.199.79:9999 +157.10.199.77:9999 +154.127.57.63:9999 150.158.48.6:9999 -145.239.20.176:9999 -144.91.127.166:9999 -142.202.205.95:9999 -139.59.100.103:9999 +147.45.183.128:9999 +147.45.103.99:9999 +146.190.230.104:9999 +146.103.48.209:9999 +146.103.48.203:9999 +146.59.45.235:9999 +139.162.131.197:9999 +135.181.53.130:9999 +134.255.182.186:9999 133.18.228.84:9999 130.162.233.186:9999 +130.61.120.252:9999 123.193.64.166:9999 -109.235.70.100:9999 -109.235.69.170:9999 -109.235.65.226:9999 -109.235.65.95:9999 +109.235.69.82:9999 +109.173.240.233:9999 +107.189.3.74:9999 +107.170.254.160:9999 106.55.9.22:9999 -104.238.35.116:9999 -104.200.67.251:9999 +104.225.159.232:9999 104.200.24.196:9999 -103.160.95.219:9999 95.211.196.46:9999 +95.211.196.34:9999 95.211.196.32:9999 95.211.196.8:9999 -95.183.53.44:9999 95.183.51.141:9999 +95.171.21.131:9999 +95.169.181.71:9999 +94.172.109.161:9999 93.21.76.185:9999 +92.63.176.202:9999 +91.234.35.132:9999 +91.222.237.98:9999 +91.199.149.177:9999 89.179.73.96:9999 89.117.19.10:9999 +89.40.13.80:9999 +89.40.10.45:9999 +89.40.8.160:9999 +89.40.0.109:9999 +89.35.131.61:9999 +87.228.24.64:9999 +87.209.245.227:9999 +86.107.168.47:9999 +86.107.168.46:9999 +86.107.168.43:9999 +86.107.168.29:9999 85.215.107.202:9999 -85.209.241.190:9999 -85.209.241.188:9999 +85.209.241.185:9999 +85.209.241.86:9999 85.209.241.71:9999 85.209.241.35:9999 +84.242.179.204:9999 +84.9.50.17:9999 +83.239.99.40:9999 82.211.25.193:9999 82.211.25.105:9999 82.211.21.179:9999 82.211.21.23:9999 82.202.230.83:9999 81.227.250.51:9999 +80.249.147.8:9999 +80.240.132.231:9999 80.209.234.170:9999 78.83.19.0:9999 -77.232.132.89:9999 -77.232.132.4:9999 77.223.99.4:9999 +77.221.148.204:9999 +74.50.90.113:9999 +69.61.107.215:9999 +66.245.196.52:9999 66.244.243.70:9999 66.244.243.69:9999 -58.110.224.166:9999 -54.37.234.121:9999 +52.36.102.91:9999 52.33.9.172:9999 -51.158.243.250:9999 -51.158.169.237:9999 -51.79.160.197:9999 -51.68.155.64:9999 -51.15.117.42:9999 -51.15.96.206:9999 -47.109.109.166:9999 -46.254.241.21:9999 +51.38.142.66:9999 +51.38.142.62:9999 +51.38.142.61:9999 +47.110.184.170:9999 +46.254.241.9:9999 +46.254.241.8:9999 +46.254.241.7:9999 46.254.241.4:9999 46.36.40.242:9999 +46.30.189.251:9999 46.30.189.214:9999 +46.30.189.213:9999 46.30.189.116:9999 -46.4.162.127:9999 +45.153.186.100:9999 45.140.19.201:9999 -45.93.139.117:9999 +45.135.180.79:9999 45.91.94.217:9999 -45.85.117.169:9999 -45.85.117.40:9999 45.83.122.122:9999 -45.79.18.106:9999 45.76.83.91:9999 45.71.159.104:9999 45.71.158.108:9999 45.71.158.58:9999 -45.63.107.90:9999 -45.58.56.221:9999 +45.61.186.121:9999 +45.58.56.79:9999 45.32.159.48:9999 45.11.182.64:9999 -45.8.250.154:9999 44.240.99.214:9999 -37.77.104.166:9999 +43.229.77.46:9999 +43.167.244.109:9999 +43.167.240.90:9999 +43.163.251.51:9999 +43.128.72.114:9999 +38.99.82.230:9999 +38.99.82.21:9999 +38.91.101.92:9999 +38.91.100.202:9999 +38.88.125.51:9999 +38.88.125.50:9999 +37.97.227.21:9999 +35.174.217.98:9999 +34.246.176.25:9999 31.148.99.104:9999 +31.57.190.188:9999 +31.57.190.31:9999 31.10.97.36:9999 -23.163.0.203:9999 -23.163.0.175:9999 -13.251.11.55:9999 -5.252.21.24:9999 -5.189.253.252:9999 -5.189.239.52:9999 -5.189.145.80:9999 -5.181.202.15:9999 +5.255.106.192:9999 5.161.110.79:9999 -5.79.109.243:9999 -5.78.74.118:9999 -5.35.103.111:9999 -5.35.103.74:9999 -5.35.103.64:9999 -5.35.103.58:9999 -5.9.237.34:9999 +5.35.103.26:9999 +5.35.103.25:9999 +5.35.103.19:9999 5.2.73.58:9999 -3.35.224.65:9999 -2.56.213.221:9999 +2.233.120.35:9999 diff --git a/contrib/seeds/onion_seeds.txt b/contrib/seeds/onion_seeds.txt index 6833a1ce27132..6dcd72828b351 100644 --- a/contrib/seeds/onion_seeds.txt +++ b/contrib/seeds/onion_seeds.txt @@ -1,25 +1,46 @@ cmhr5r3lqhy7ic2ebeil66ftcz5u62zq5qhbfdz53l6sqxljh7zxntyd.onion:9999 k532fqvgzqotj6epfw3rfc377elrj3td47ztad2tkn6vwnw6nhxacrqd.onion:9999 -v7ttoiov7rc5aut64nfomyfwxt424ihufwvr5ilf7moeg3fwibjpjcqd.onion:9999 snu2xaql3crh2b4t6g2wxemgrpzmaxfxla4tua63bnp2phhxwr6hzzid.onion:9999 5v5lgddolcidtt2qmhmvyka2ewht4mkmmj73tfwuimlckgmqb5lthtid.onion:9999 -yvcukkjk6vsjliszrlhh3f4qal76w6n2hoi4hl4edp6b5zyifhcixoyd.onion:9999 k6bzqtkhtzyziethin3kkys342rlzcmqkrs5ibashqclcu23ehuz6oqd.onion:9999 -2h6yzlqtogqkaj4yhrofsccntpjyafpjxwutti65dkpqliuzah3is7ad.onion:9999 tuzjyti6guw32smcxgswmt2fkjlkyxnt47rtspvmqerbalzdeyguczyd.onion:9999 -467ho3bhmndzbktbqd3nxf64isib54umiis5xc5n2xnt35u2ofhs5gid.onion:9999 h2cpqmjd3rqehro52stehi4vnyofxymfqdsexchhf7dpbbkoqkmjjiyd.onion:9999 -l2ae5ngumxbcoqwpaxquxq7p6fwtvgfqbokrm7vqiaho4rkijd4ssmyd.onion:9999 eee7cdynbju7pax44vm3bo7aazi72qbqgwktpvk37hoxg7jkqez2kcad.onion:9999 qkcdtz6ejiycge6i3g6uyf6m4ivby7t77syt7yezlwwhtmbsk37u74yd.onion:9999 -g6qaacqm3z6xup6kmprb2uvb5wtv3a4isflh4aege2yfgpuvaozfnkad.onion:9999 buo3et3xvzdjqkpx6iscjz4oexyurhpbpl3is46d653kfitl2gdzm6yd.onion:9999 -iekgzhetngwhhf7rfxglb3mdwajtoikpcvg3e3etpx4ylku6chr6jrqd.onion:9999 -nl7j4rwrb2yemyn5meu64jfbfj5pkeuyo73afihtjdytsh6fpiibkrad.onion:9999 gbg2wd4uwc5k7w5j3w46zre6r5ioezulgjriketxv4qekybzg2zwdnid.onion:9999 pcabrbxdlxgybiyykuiccajsfzazmigvc7cemqbzpqw5du27iqaihmyd.onion:9999 -mn3zcamezyz5fryftzvmenv4vtbv5ki2eodxugq5gjwka7fft7po4uid.onion:9999 itkatc2gpfkuvbmjflxgranktjrsokc7wcunu25mq7ptqms7fwex6jyd.onion:9999 -zmkohnwhp67nxtaspaudwvbac3r3oab4j36kxoo7ofk636wcd2bflxad.onion:9999 -njmniixuv2ji4an6lfqol6d3bqbijt7cko6wpfgc2wyxe2jg5htwoiad.onion:9999 i75yxbzhzkk6q55oig6xeidcexswpgcbquhjuxkkwehy6rvjq6sjxmad.onion:9999 +ggyyhg4yr2cv4cbjedcs43ag3vh3qvynaptmlg6yzono5hhgjqif37yd.onion:9999 +g62ldh5nedukfk5hvokn6ztbhmql6q7qegrq6dbzyvzir72xerqba6yd.onion:9999 +5gnyyuxpkwsqv6sm2ee2k6uaiuq5ayaipjm33n5pwe22uit37yozrcid.onion:9999 +xmbwpdsrsn2gdamvofesyy5zrgqcswsoorrh25jx7qy4w2gftttga7ad.onion:9999 +qaocy2qaktafiuzyd3i4apyukvr2hr6fwjet625cqwbwq5yr4qqocbid.onion:9999 +2br37z5ilg3i3rawwkznmh6lhczboql5zdrfgmkaxns4tpfrxmu6s5yd.onion:9999 +3cova3snmiydrdaqrszj5krnujpwgkueh2kjodun4hvixk3y5l5zmgid.onion:9999 +iy6wzfp65f5peehquqchqperx5r4qsybfmvvdjhe2ak3ig6pt3a452yd.onion:9999 +k5gdngvamlwymwh2an6qlazpgvlhkrukaso6nv56d35pentpfhimvayd.onion:9999 +4da4s6fvz2wt672kxxqgra4iurots4jnzzmeplbdt7abix655fjn23qd.onion:9999 +uf3otvrjnj7grwm7skwslf6ltibo24hkolrwuyxyx7yzlalwnupw4bid.onion:9999 +dw4u6agw6gktz7ykmgxn7m3fmgnnybhhlnish3lvnuylcb5wcwzutdqd.onion:9999 +c5qhh5xrwnonmtniag5r7bftfweniwt2f6fdixq37c7gnunbjzgx26qd.onion:9999 +h4rycn3lgltahxvfxte6rzuyu3ooa3f3a5pcgzhkvh5baqei7s3w6yid.onion:9999 +mj5zq3oeodlwselk5bnx5lhiuhwuuz6xgmijx4kbnpnhamkf5t7aqcqd.onion:9999 +fzo6z4dcjtfg5eg7absrzsskznto5ivgsqty23hmcvf6bjeg4mq2m6yd.onion:9999 +3uvcjymiixi6n6m2p6fsgyjxkx2ceaesd7eopi3p7jn364i5z646koid.onion:9999 +wzf6u7feqa65kyd5ooyyvw3rxozurmuzgzr4r3qrigne3xlj5tazwnyd.onion:9999 +hu43stbffzpgfixmzgx4ae2sp65nrjui6kagzrhkpqhmgsk2kbnfs6id.onion:9999 +xjn2wouhpr2jrqtqa3itkccjxfvrpvjgehgkrqltggnei5wl2535eiyd.onion:9999 +hsq4dkpmgc3yeirpiufopkonabxq62kl43vkzry65vhp7ctlyl3ngayd.onion:9999 +ayhwwpjq4rg3bslbtt7yejqyhucyaqsbb7tn45blh4r7xj62wfonryqd.onion:9999 +iddbcb6xzrbrjpzwbozhe3pztgrhkwjo76o4wkrpi43p5jya6jv6m7qd.onion:9999 +542grzvty3cnbtzc3sjatubkmnhw22x5gfvnj2lromdparwlc4j7o4qd.onion:9999 +qbqa37m7uiie63723muhzgl4swqjvs6oddzhtzw5ke32t47am6lq5mad.onion:9999 +etiufki5csbodchyyoqv4bv4qm2xzaljidnst4khl632xkdrsiihulad.onion:9999 +lqg6nfbek54fbsgdycq6rej7edqcg4ps6mqmvsqr645iecbt7cz7e5qd.onion:9999 +rwl447roxllklmqkmbp5aq2bxj4vwzomx6ellodoguc5vegnrr6v3yyd.onion:9999 +p2d6rg6vh5f3mjrb75l2ppxtbbpjbf45vteyp3c4u3nxfonwpezaq4ad.onion:9999 +jqssjynvlqwfiordnux2vqt6glnr3fypypfwasrizbpwhbj2lvtuzqqd.onion:9999 +jjjhwysk4t3i7nrjyxyrf4yjjqmole4doowga7nnkyjih3hmi7q2jsad.onion:9999 +wtby3fkid4eqaknfvmakg6vofvpda4ukhuec7k52no76n6szxcvf7pid.onion:9999 diff --git a/src/chainparamsseeds.h b/src/chainparamsseeds.h index 8cebf2109c5ea..734090de975fc 100644 --- a/src/chainparamsseeds.h +++ b/src/chainparamsseeds.h @@ -7,176 +7,254 @@ * Each line contains a BIP155 serialized (networkID, addr, port) tuple. */ static const uint8_t chainparams_seed_main[] = { - 0x04,0x20,0xcb,0x14,0xe3,0xb6,0xc7,0x7f,0xbe,0xdb,0xcc,0x12,0x78,0x28,0x3b,0x54,0x20,0x16,0xe3,0xb7,0x00,0x3c,0x4e,0xfc,0xab,0xb9,0xdf,0x71,0x55,0xed,0xfa,0xc2,0x1e,0x82,0x27,0x0f, - 0x04,0x20,0xc5,0x45,0x45,0x29,0x2a,0xf5,0x64,0x95,0xa2,0x59,0x8a,0xce,0x7d,0x97,0x90,0x02,0xff,0xeb,0x79,0xba,0x3b,0x91,0xc3,0xaf,0x84,0x1b,0xfc,0x1e,0xe7,0x08,0x29,0xc4,0x27,0x0f, - 0x04,0x20,0xaf,0xe7,0x37,0x21,0xd5,0xfc,0x45,0xd0,0x52,0x7e,0xe3,0x4a,0xe6,0x60,0xb6,0xbc,0xf9,0xae,0x20,0xf4,0x2d,0xab,0x1e,0xa1,0x65,0xfb,0x1c,0x43,0x6c,0xb6,0x40,0x52,0x27,0x0f, + 0x04,0x20,0xbb,0x03,0x67,0x8e,0x51,0x93,0x74,0x61,0x81,0x95,0x71,0x49,0x2c,0x63,0xb9,0x89,0xa0,0x29,0x5a,0x4e,0x74,0x62,0x7d,0x75,0x37,0xfc,0x31,0xcb,0x68,0xc5,0x9c,0xe6,0x27,0x0f, + 0x04,0x20,0xba,0x5b,0xab,0x3a,0x87,0x7c,0x74,0x98,0xc2,0x70,0x06,0xd1,0x35,0x08,0x49,0xb9,0x6b,0x17,0xd5,0x26,0x21,0xcc,0xa8,0xc1,0x73,0x31,0x9a,0x44,0x76,0xcb,0xd7,0x77,0x27,0x0f, + 0x04,0x20,0xb6,0x4b,0xea,0x7c,0xa4,0x80,0x3d,0xd5,0x60,0x7d,0x73,0xb1,0x8a,0xdb,0x71,0xbb,0xb3,0x48,0xb2,0x99,0x36,0x63,0xc8,0xee,0x11,0x41,0x9a,0x4d,0xdd,0x69,0xec,0xc1,0x27,0x0f, + 0x04,0x20,0xb4,0xc3,0x8d,0x95,0x48,0x1f,0x09,0x00,0x29,0xa5,0xab,0x00,0xa3,0x7a,0xae,0x2d,0x5e,0x30,0x72,0x8a,0x3d,0x08,0x2f,0xab,0xba,0x6b,0xbf,0xe6,0xfa,0x59,0xb8,0xaa,0x27,0x0f, + 0x04,0x20,0xa1,0x76,0xe9,0xd6,0x29,0x6a,0x7e,0x68,0xd9,0x9f,0x92,0xad,0x25,0x97,0xcb,0x9a,0x02,0xed,0x70,0xea,0x72,0xe3,0x6a,0x62,0xf8,0xbf,0xf1,0x95,0x81,0x76,0x6d,0x1f,0x27,0x0f, 0x04,0x20,0x9d,0x32,0x9c,0x4d,0x1e,0x35,0x2d,0xbd,0x49,0x82,0xb9,0xa5,0x66,0x4f,0x45,0x52,0x56,0xac,0x5d,0xb3,0xe7,0xe3,0x39,0x3e,0xac,0x81,0x22,0x10,0x2f,0x23,0x26,0x0d,0x27,0x0f, 0x04,0x20,0x93,0x69,0xab,0x82,0x0b,0xd8,0xa2,0x7d,0x07,0x93,0xf1,0xb5,0x6b,0x91,0x86,0x8b,0xf2,0xc0,0x5c,0xb7,0x58,0x39,0x3a,0x03,0xdb,0x0b,0x5f,0xa7,0x9c,0xf7,0xb4,0x7c,0x27,0x0f, + 0x04,0x20,0x8d,0x97,0xce,0x7e,0x2e,0xba,0xd6,0xa5,0xb2,0x0a,0x60,0x5f,0xd0,0x43,0x41,0xba,0x79,0x5b,0x65,0xcc,0xbf,0x88,0xb5,0xb8,0x6e,0x35,0x05,0xda,0x90,0xcd,0x8c,0x7d,0x27,0x0f, 0x04,0x20,0x82,0x84,0x39,0xe7,0xc4,0x4a,0x30,0x23,0x13,0xc8,0xd9,0xbd,0x4c,0x17,0xcc,0xe2,0x2a,0x1c,0x7e,0x7f,0xfc,0xb1,0x3f,0xe0,0x99,0x5d,0xac,0x79,0xb0,0x32,0x56,0xff,0x27,0x0f, + 0x04,0x20,0x80,0x60,0x0d,0xfd,0x9f,0xa2,0x10,0x4f,0x6f,0xfa,0xdb,0x28,0x7c,0x99,0x7c,0x95,0xa0,0x9a,0xcb,0xce,0x18,0xf2,0x79,0xe6,0xdd,0x51,0x37,0xa9,0xf3,0xe0,0x67,0x97,0x27,0x0f, + 0x04,0x20,0x80,0x1c,0x2c,0x6a,0x00,0x54,0xc0,0x54,0x53,0x38,0x1e,0xd1,0xc0,0x3f,0x14,0x55,0x63,0xa3,0xc7,0xc5,0xb2,0x49,0x3f,0x6b,0xa2,0x85,0x83,0x68,0x77,0x11,0xe4,0x20,0x27,0x0f, 0x04,0x20,0x78,0x80,0x18,0x86,0xe3,0x5d,0xcd,0x80,0xa3,0x18,0x55,0x10,0x21,0x01,0x32,0x2e,0x41,0x96,0x20,0xd5,0x17,0xc4,0x46,0x40,0x39,0x7c,0x2d,0xd1,0xd3,0x5f,0x44,0x00,0x27,0x0f, - 0x04,0x20,0x6a,0xfe,0x9e,0x46,0xd1,0x0e,0xb0,0x46,0x61,0xbd,0x61,0x29,0xee,0x24,0xa1,0x2a,0x7a,0xf5,0x12,0x98,0x77,0xf6,0x02,0xa0,0xf3,0x48,0xf1,0x39,0x1f,0xc5,0x7a,0x10,0x27,0x0f, - 0x04,0x20,0x6a,0x58,0xd4,0x22,0xf4,0xae,0x92,0x8e,0x01,0xbe,0x59,0x60,0xe5,0xf8,0x7b,0x0c,0x02,0x84,0xcf,0xe2,0x53,0xbd,0x67,0x94,0xc2,0xd5,0xb1,0x72,0x69,0x26,0xe9,0xe7,0x27,0x0f, - 0x04,0x20,0x63,0x77,0x91,0x01,0x84,0xce,0x33,0xd2,0xc7,0x05,0x9e,0x6a,0xc2,0x36,0xbc,0xac,0xc3,0x5e,0xa9,0x1a,0x23,0x87,0x7a,0x1a,0x1d,0x32,0x6c,0xa0,0x7c,0xa5,0x9f,0xde,0x27,0x0f, - 0x04,0x20,0x5e,0x80,0x4e,0xb4,0xd4,0x65,0xc2,0x27,0x42,0xcf,0x05,0xe1,0x4b,0xc3,0xef,0xf1,0x6d,0x3a,0x98,0xb0,0x0b,0x95,0x16,0x7e,0xb0,0x40,0x0e,0xee,0x45,0x48,0x48,0xf9,0x27,0x0f, + 0x04,0x20,0x7e,0x87,0xe8,0x9b,0xd5,0x3f,0x4b,0xb6,0x26,0x21,0xff,0x57,0xa7,0xbe,0xf3,0x08,0x5e,0x90,0x97,0x9d,0xac,0xc9,0x87,0xec,0x5c,0xa6,0xdb,0x72,0xb9,0xb6,0x79,0x32,0x27,0x0f, + 0x04,0x20,0x62,0x7b,0x98,0x6d,0xc4,0x70,0xd7,0x69,0x11,0x6a,0xe8,0x5b,0x7e,0xac,0xe8,0xa1,0xed,0x4a,0x67,0xd7,0x33,0x10,0x9b,0xf1,0x41,0x6b,0xda,0x70,0x31,0x45,0xec,0xfe,0x27,0x0f, + 0x04,0x20,0x5c,0x0d,0xe6,0x94,0x24,0x57,0x78,0x50,0xc8,0xc3,0xc0,0xa1,0xe8,0x91,0x3f,0x20,0xe0,0x23,0x71,0xf2,0xf3,0x20,0xca,0xca,0x11,0xf7,0x3a,0x82,0x08,0x33,0xf8,0xb3,0x27,0x0f, 0x04,0x20,0x57,0x83,0x98,0x4d,0x47,0x9e,0x71,0x94,0x12,0x67,0x43,0x76,0xa5,0x62,0x5b,0xe6,0xa2,0xbc,0x89,0x90,0x54,0x65,0xd4,0x04,0x12,0x3c,0x04,0xb1,0x53,0x5b,0x21,0xe9,0x27,0x0f, + 0x04,0x20,0x57,0x4c,0x36,0x9a,0xa0,0x62,0xed,0x86,0x58,0xfa,0x03,0x7d,0x05,0x83,0x2f,0x35,0x56,0x75,0x46,0x8a,0x04,0x9d,0xe6,0xd7,0xbe,0x1e,0xfa,0xf2,0x36,0x6f,0x29,0xd0,0x27,0x0f, 0x04,0x20,0x57,0x77,0xa2,0xc2,0xa6,0xcc,0x1d,0x34,0xf8,0x8f,0x2d,0xb7,0x12,0x8b,0x7f,0xf9,0x17,0x14,0xee,0x63,0xe7,0xf3,0x30,0x0f,0x53,0x53,0x7d,0x5b,0x36,0xde,0x69,0xee,0x27,0x0f, + 0x04,0x20,0x4c,0x25,0x24,0xe1,0xb5,0x5c,0x2c,0x54,0x3a,0x23,0x6d,0x2f,0xaa,0xc2,0x7e,0x32,0xdb,0x1d,0x97,0x0f,0xc3,0xcb,0x60,0x4a,0x28,0xc8,0x5f,0x63,0x85,0x3a,0x5d,0x67,0x27,0x0f, + 0x04,0x20,0x4a,0x52,0x7b,0x62,0x4a,0xe4,0xf6,0x8f,0xb6,0x29,0xc5,0xf1,0x12,0xf3,0x09,0x4c,0x18,0xe5,0x93,0x83,0x73,0xac,0x60,0x7d,0xad,0x56,0x12,0x83,0xec,0xec,0x47,0xe1,0x27,0x0f, + 0x04,0x20,0x46,0x3d,0x6c,0x95,0xfe,0xe9,0x7a,0xf2,0x10,0xf0,0xa4,0x04,0x78,0x3c,0x91,0xbf,0x63,0xc8,0x4b,0x01,0x2b,0x2b,0x51,0xa4,0xe4,0xd0,0x15,0xb4,0x1b,0xcf,0x9e,0xc1,0x27,0x0f, 0x04,0x20,0x44,0xd4,0x09,0x8b,0x46,0x79,0x55,0x4a,0x85,0x89,0x2a,0xee,0x68,0x81,0xaa,0x9a,0x63,0x27,0x28,0x5f,0xb0,0xa8,0xda,0x6b,0xac,0x87,0xdf,0x38,0x32,0x5f,0x2d,0x89,0x27,0x0f, - 0x04,0x20,0x41,0x14,0x6c,0x9c,0x93,0x69,0xac,0x73,0x97,0xf1,0x2d,0xcc,0xb0,0xed,0x83,0xb0,0x13,0x37,0x21,0x4f,0x15,0x4d,0xb2,0x6c,0x93,0x7d,0xf9,0x85,0xaa,0x9e,0x11,0xe3,0x27,0x0f, + 0x04,0x20,0x40,0xc6,0x11,0x07,0xd7,0xcc,0x43,0x14,0xbf,0x36,0x0b,0xb2,0x72,0x6d,0xf9,0x99,0xa2,0x75,0x59,0x2e,0xff,0x9d,0xcb,0x2a,0x2f,0x47,0x36,0xfe,0xa7,0x00,0xf2,0x6b,0x27,0x0f, 0x04,0x20,0x47,0xfb,0x8b,0x87,0x27,0xca,0x95,0xe8,0x77,0xae,0x41,0xbd,0x72,0x20,0x62,0x25,0xe5,0x67,0x98,0x41,0x85,0x0e,0x9a,0x5d,0x4a,0xb1,0x0f,0x8f,0x46,0xa9,0x87,0xa4,0x27,0x0f, + 0x04,0x20,0x3d,0x39,0xb9,0x4c,0x25,0x2e,0x5e,0x62,0xa2,0xec,0xc9,0xaf,0xc0,0x13,0x52,0x7f,0xba,0xd8,0xa6,0x88,0xf2,0x80,0x6c,0xc4,0xea,0x7c,0x0e,0xc3,0x49,0x5a,0x50,0x5a,0x27,0x0f, + 0x04,0x20,0x3c,0xa1,0xc1,0xa9,0xec,0x30,0xb7,0x82,0x22,0x2f,0x45,0x0a,0xe7,0xa9,0xcd,0x00,0x6f,0x0f,0x69,0x4b,0xe6,0xea,0xac,0xc7,0x1e,0xed,0x4e,0xff,0x8a,0x6b,0xc2,0xf6,0x27,0x0f, + 0x04,0x20,0x3f,0x23,0x81,0x37,0x6b,0x32,0xe6,0x03,0xde,0xa5,0xbc,0xc9,0xe8,0xe6,0x98,0xa6,0xdc,0xe0,0x6c,0xbb,0x07,0x5e,0x23,0x64,0xea,0xa9,0xfa,0x10,0x40,0x88,0xfc,0xb7,0x27,0x0f, 0x04,0x20,0x3e,0x84,0xf8,0x31,0x23,0xdc,0x60,0x43,0xc5,0xdd,0xd4,0xa6,0x43,0xa3,0x95,0x6e,0x1c,0x5b,0xe1,0x85,0x80,0xe4,0x4b,0x88,0xe7,0x2f,0xc6,0xf0,0x85,0x4e,0x82,0x98,0x27,0x0f, + 0x04,0x20,0x31,0xb1,0x83,0x9b,0x98,0x8e,0x85,0x5e,0x08,0x29,0x20,0xc5,0x2e,0x6c,0x06,0xdd,0x4f,0xb8,0x57,0x0d,0x03,0xe6,0xc5,0x9b,0xd8,0xcb,0x9a,0xee,0x9c,0xe6,0x4c,0x10,0x27,0x0f, 0x04,0x20,0x30,0x4d,0xab,0x0f,0x94,0xb0,0xba,0xaf,0xdb,0xa9,0xdd,0xb9,0xec,0xc4,0x9e,0x8f,0x50,0xe2,0x66,0x8b,0x32,0x62,0x85,0x12,0x77,0xaf,0x20,0x45,0x60,0x39,0x36,0xb3,0x27,0x0f, - 0x04,0x20,0x37,0xa0,0x00,0x0a,0x0c,0xde,0x7d,0x7a,0x3f,0xca,0x63,0xe2,0x1d,0x52,0xa1,0xed,0xa7,0x5d,0x83,0x88,0x91,0x56,0x7e,0x00,0x86,0x26,0xb0,0x53,0x3e,0x95,0x03,0xb2,0x27,0x0f, + 0x04,0x20,0x37,0xb4,0xb1,0x9f,0xad,0x20,0xe8,0xa2,0xab,0xa7,0xab,0x94,0xdf,0x66,0x61,0x3b,0x20,0xbf,0x43,0xf0,0x21,0xa3,0x0f,0x0c,0x39,0xc5,0x72,0x88,0xff,0x57,0x24,0x60,0x27,0x0f, + 0x04,0x20,0x2e,0x5d,0xec,0xf0,0x62,0x4c,0xca,0x6e,0x90,0xdf,0x00,0x65,0x1c,0xca,0x4a,0xcb,0x66,0xee,0xa2,0xa6,0x94,0x27,0x8d,0x6c,0xec,0x15,0x4b,0xe0,0xa4,0x86,0xe3,0x21,0x27,0x0f, + 0x04,0x20,0x24,0xd1,0x42,0xa9,0x1d,0x14,0x82,0xe1,0x88,0xf8,0xc3,0xa1,0x5e,0x06,0xbc,0x83,0x35,0x7c,0x81,0x69,0x40,0xdb,0x29,0xf1,0x47,0x5f,0xb7,0xab,0xa8,0x71,0x92,0x10,0x27,0x0f, 0x04,0x20,0x21,0x09,0xf1,0x0f,0x0d,0x0a,0x69,0xf7,0x82,0xfc,0xe5,0x59,0xb0,0xbb,0xe0,0x06,0x51,0xfd,0x40,0x30,0x35,0x95,0x37,0xd5,0x5b,0xf9,0xdd,0x73,0x7d,0x2a,0x81,0x33,0x27,0x0f, + 0x04,0x20,0x1d,0xb9,0x4f,0x00,0xd6,0xf1,0x95,0x3c,0xff,0x0a,0x61,0xae,0xdf,0xb3,0x65,0x61,0x9a,0xdc,0x04,0xe7,0x5b,0x51,0x23,0xed,0x75,0x6d,0x30,0xb1,0x07,0xb6,0x15,0xb3,0x27,0x0f, 0x04,0x20,0x13,0x0f,0x1e,0xc7,0x6b,0x81,0xf1,0xf4,0x0b,0x44,0x09,0x10,0xbf,0x78,0xb3,0x16,0x7b,0x4f,0x6b,0x30,0xec,0x0e,0x12,0x8f,0x3d,0xda,0xfd,0x28,0x5d,0x69,0x3f,0xf3,0x27,0x0f, + 0x04,0x20,0x17,0x60,0x73,0xf6,0xf1,0xb3,0x5c,0xd6,0x4d,0xa8,0x01,0xbb,0x1f,0x84,0xb3,0x2d,0x88,0xd4,0x5a,0x7a,0x2f,0x8a,0x34,0x5e,0x1b,0xf8,0xbe,0x66,0xd1,0xa1,0x4e,0x4d,0x27,0x0f, 0x04,0x20,0x0d,0x1d,0xb2,0x4f,0x77,0xae,0x46,0x98,0x29,0xf7,0xf2,0x24,0x24,0xe7,0x8e,0x25,0xf1,0x48,0x9d,0xe1,0x7a,0xf6,0x89,0x73,0xc3,0xf7,0x76,0xa2,0xa2,0x6b,0xd1,0x87,0x27,0x0f, + 0x04,0x20,0x06,0x0f,0x6b,0x3d,0x30,0xe4,0x4d,0xb0,0xc9,0x61,0x9c,0xff,0x82,0x26,0x18,0x3d,0x05,0x80,0x42,0x41,0x0f,0xe6,0xde,0x74,0x2b,0x3f,0x23,0xfb,0xa7,0xda,0xb1,0x5c,0x27,0x0f, 0x04,0x20,0xed,0x7a,0xb3,0x0c,0x6e,0x58,0x90,0x39,0xcf,0x50,0x61,0xd9,0x5c,0x28,0x1a,0x25,0x8f,0x3e,0x31,0x4c,0x62,0x7f,0xb9,0x96,0xd4,0x43,0x16,0x25,0x19,0x90,0x0f,0x57,0x27,0x0f, - 0x04,0x20,0xe7,0xbe,0x77,0x6c,0x27,0x63,0x47,0x90,0xaa,0x61,0x80,0xf6,0xdb,0x97,0xdc,0x44,0x90,0x1e,0xf2,0x8c,0x42,0x25,0xdb,0x8b,0xad,0xd5,0xdb,0x3d,0xf6,0x9a,0x71,0x4f,0x27,0x0f, - 0x04,0x20,0xd1,0xfd,0x8c,0xae,0x13,0x71,0xa0,0xa0,0x27,0x98,0x3c,0x5c,0x59,0x08,0x4d,0x9b,0xd3,0x80,0x15,0xe9,0xbd,0xa9,0x39,0xa3,0xdd,0x1a,0x9f,0x05,0xa2,0x99,0x01,0xf6,0x27,0x0f, + 0x04,0x20,0xe9,0x9b,0x8c,0x52,0xef,0x55,0xa5,0x0a,0xfa,0x4c,0xd1,0x09,0xa5,0x7a,0x80,0x45,0x21,0xd0,0x60,0x08,0x7a,0x59,0xbd,0xb7,0xaf,0xb1,0x35,0xaa,0x22,0x7b,0xfe,0x1d,0x27,0x0f, + 0x04,0x20,0xef,0x34,0x68,0xe6,0xb3,0xc6,0xc4,0xd0,0xcf,0x22,0xdc,0x92,0x09,0xd0,0x2a,0x63,0x4f,0x6d,0x6a,0xfd,0x31,0x6a,0xd4,0xe9,0x71,0x73,0x06,0xf0,0x46,0xcb,0x17,0x13,0x27,0x0f, + 0x04,0x20,0xe0,0xc1,0xc9,0x78,0xb5,0xce,0xad,0x3f,0x7f,0x4a,0xbd,0xe0,0x68,0x83,0x88,0xa4,0x5d,0x39,0x71,0x2d,0xce,0x58,0x47,0xac,0x23,0x9f,0xc0,0x14,0x5f,0xdd,0xe9,0x52,0x27,0x0f, + 0x04,0x20,0xdd,0x2a,0x24,0xe1,0x88,0x45,0xd1,0xe6,0xf9,0x9a,0x7f,0x8b,0x23,0x61,0x37,0x55,0xf4,0x22,0x00,0x92,0x1f,0xc8,0xe7,0xa3,0x6f,0xfa,0x5b,0xbf,0x71,0x1d,0xcf,0xb9,0x27,0x0f, + 0x04,0x20,0xd8,0x9d,0x50,0x6e,0x4d,0x62,0x30,0x38,0x8c,0x10,0x8c,0xb2,0x9e,0xaa,0x2d,0xa2,0x5f,0x63,0x2a,0x84,0x3e,0x94,0x97,0x0e,0x8d,0xe1,0xea,0x8b,0xab,0x78,0xea,0xfb,0x27,0x0f, + 0x04,0x20,0xd0,0x63,0xbf,0xe7,0xa8,0x59,0xb6,0x8d,0xc4,0x16,0xb2,0xb2,0xd6,0x1f,0xcb,0x38,0xb2,0x17,0x41,0x7d,0xc8,0xe2,0x53,0x31,0x40,0xbb,0x65,0xc9,0xbc,0xb1,0xbb,0x29,0x27,0x0f, 0x01,0x04,0xd8,0xfa,0x61,0x34,0x27,0x0f, 0x01,0x04,0xd8,0xee,0x4b,0x2e,0x27,0x0f, 0x01,0x04,0xd8,0xe6,0xe8,0x7d,0x27,0x0f, - 0x01,0x04,0xd8,0xbd,0x9a,0x08,0x27,0x0f, - 0x01,0x04,0xd8,0xbd,0x9a,0x07,0x27,0x0f, - 0x01,0x04,0xd5,0xa8,0xf9,0xae,0x27,0x0f, + 0x01,0x04,0xd5,0xda,0xd1,0x22,0x27,0x0f, + 0x01,0x04,0xd5,0xc7,0x22,0xfa,0x27,0x0f, + 0x01,0x04,0xd5,0xab,0x0f,0x7d,0x27,0x0f, + 0x01,0x04,0xd5,0x9f,0x4d,0xdd,0x27,0x0f, + 0x01,0x04,0xd4,0x34,0x00,0xd2,0x27,0x0f, 0x01,0x04,0xd4,0x18,0x6e,0x80,0x27,0x0f, - 0x01,0x04,0xd4,0x18,0x6b,0xdf,0x27,0x0f, + 0x01,0x04,0xd1,0x91,0x30,0x9a,0x27,0x0f, + 0x01,0x04,0xd1,0x8d,0x24,0xce,0x27,0x0f, + 0x01,0x04,0xd1,0x3a,0xa4,0x2a,0x27,0x0f, + 0x01,0x04,0xd0,0x57,0x66,0x5b,0x27,0x0f, 0x01,0x04,0xcf,0xf4,0xf7,0x28,0x27,0x0f, - 0x01,0x04,0xce,0xbd,0x84,0xe0,0x27,0x0f, - 0x01,0x04,0xce,0xa8,0xd5,0x6c,0x27,0x0f, - 0x01,0x04,0xce,0xa8,0xd4,0xe2,0x27,0x0f, - 0x01,0x04,0xce,0xa8,0xd4,0xb2,0x27,0x0f, - 0x01,0x04,0xce,0xa8,0xd4,0x90,0x27,0x0f, - 0x01,0x04,0xc2,0x9e,0x47,0xe4,0x27,0x0f, + 0x01,0x04,0xca,0x05,0x10,0x21,0x27,0x0f, + 0x01,0x04,0xc6,0x07,0x73,0x30,0x27,0x0f, + 0x01,0x04,0xc3,0xb5,0xd3,0x40,0x27,0x0f, + 0x01,0x04,0xc3,0x62,0x5f,0xd2,0x27,0x0f, 0x01,0x04,0xc2,0x87,0x51,0xd6,0x27,0x0f, - 0x01,0x04,0xc1,0xa4,0x95,0x32,0x27,0x0f, - 0x01,0x04,0xc1,0x1f,0x1e,0x37,0x27,0x0f, - 0x01,0x04,0xbc,0xd0,0xc4,0xb7,0x27,0x0f, + 0x01,0x04,0xc2,0x05,0x9d,0xd6,0x27,0x0f, + 0x01,0x04,0xc0,0xa9,0x06,0x57,0x27,0x0f, + 0x01,0x04,0xbc,0x7f,0xed,0xf3,0x27,0x0f, 0x01,0x04,0xbc,0x7f,0xe6,0x28,0x27,0x0f, - 0x01,0x04,0xbc,0x44,0xdf,0x5e,0x27,0x0f, + 0x01,0x04,0xbc,0x28,0xb2,0x43,0x27,0x0f, 0x01,0x04,0xb9,0xf3,0x73,0xdb,0x27,0x0f, + 0x01,0x04,0xb9,0xe4,0x53,0x9c,0x27,0x0f, + 0x01,0x04,0xb9,0xd9,0x7f,0x8b,0x27,0x0f, 0x01,0x04,0xb9,0xd5,0x18,0x22,0x27,0x0f, + 0x01,0x04,0xb9,0xc6,0xea,0x36,0x27,0x0f, + 0x01,0x04,0xb9,0xc6,0xea,0x21,0x27,0x0f, + 0x01,0x04,0xb9,0xc6,0xea,0x19,0x27,0x0f, + 0x01,0x04,0xb9,0xc6,0xea,0x11,0x27,0x0f, + 0x01,0x04,0xb9,0xb9,0x28,0xab,0x27,0x0f, + 0x01,0x04,0xb9,0xb9,0x28,0x68,0x27,0x0f, + 0x01,0x04,0xb9,0xa6,0xd9,0x9a,0x27,0x0f, 0x01,0x04,0xb9,0xa5,0xab,0x75,0x27,0x0f, 0x01,0x04,0xb9,0xa4,0xa3,0xda,0x27,0x0f, 0x01,0x04,0xb9,0xa4,0xa3,0x55,0x27,0x0f, - 0x01,0x04,0xb9,0x87,0x50,0xc8,0x27,0x0f, + 0x01,0x04,0xb9,0x9e,0x6b,0x7c,0x27,0x0f, + 0x01,0x04,0xb9,0x9b,0x63,0x22,0x27,0x0f, + 0x01,0x04,0xb9,0x8e,0xd4,0x90,0x27,0x0f, + 0x01,0x04,0xb9,0x70,0xf9,0x31,0x27,0x0f, 0x01,0x04,0xb9,0x57,0x95,0x3d,0x27,0x0f, 0x01,0x04,0xb2,0xd0,0x57,0xe2,0x27,0x0f, 0x01,0x04,0xb2,0xd0,0x57,0xd5,0x27,0x0f, - 0x01,0x04,0xb2,0x9d,0x5b,0xb3,0x27,0x0f, - 0x01,0x04,0xb2,0x9d,0x5b,0xb0,0x27,0x0f, - 0x01,0x04,0xb2,0x9d,0x5b,0x7e,0x27,0x0f, + 0x01,0x04,0xb2,0x9f,0x02,0x0c,0x27,0x0f, + 0x01,0x04,0xb2,0x9d,0x5b,0xb8,0x27,0x0f, + 0x01,0x04,0xb2,0x9d,0x5b,0xb2,0x27,0x0f, + 0x01,0x04,0xb2,0x9d,0x5b,0xb1,0x27,0x0f, 0x01,0x04,0xb2,0x3f,0x79,0x81,0x27,0x0f, - 0x01,0x04,0xb0,0x7e,0x7f,0x10,0x27,0x0f, - 0x01,0x04,0xb0,0x7e,0x7f,0x0f,0x27,0x0f, - 0x01,0x04,0xae,0x22,0xe9,0xcf,0x27,0x0f, - 0x01,0x04,0xae,0x22,0xe9,0xce,0x27,0x0f, - 0x01,0x04,0xae,0x22,0xe9,0xcd,0x27,0x0f, - 0x01,0x04,0xae,0x22,0xe9,0xca,0x27,0x0f, - 0x01,0x04,0xad,0xf9,0x15,0x7a,0x27,0x0f, + 0x01,0x04,0xb0,0x66,0x41,0x91,0x27,0x0f, + 0x01,0x04,0xae,0x22,0xe9,0xd4,0x27,0x0f, + 0x01,0x04,0xae,0x22,0xe9,0xd3,0x27,0x0f, + 0x01,0x04,0xae,0x22,0xe9,0xd1,0x27,0x0f, + 0x01,0x04,0xae,0x22,0xe9,0xcc,0x27,0x0f, + 0x01,0x04,0xac,0x68,0x91,0xa6,0x27,0x0f, 0x01,0x04,0xac,0x68,0x5a,0xf9,0x27,0x0f, + 0x01,0x04,0xaa,0x4b,0xa7,0xf4,0x27,0x0f, + 0x01,0x04,0xaa,0x4b,0xa2,0xd4,0x27,0x0f, 0x01,0x04,0xa8,0x77,0x50,0x04,0x27,0x0f, 0x01,0x04,0xa7,0x58,0xa9,0x10,0x27,0x0f, + 0x01,0x04,0xa7,0x58,0xa5,0xaf,0x27,0x0f, 0x01,0x04,0xa5,0x16,0xea,0x87,0x27,0x0f, - 0x01,0x04,0x9f,0x59,0x7c,0x66,0x27,0x0f, - 0x01,0x04,0x9b,0x85,0x17,0xdd,0x27,0x0f, + 0x01,0x04,0xa3,0xac,0x42,0x29,0x27,0x0f, + 0x01,0x04,0xa3,0xac,0x14,0xd2,0x27,0x0f, + 0x01,0x04,0xa3,0xac,0x14,0xd1,0x27,0x0f, + 0x01,0x04,0xa3,0xac,0x14,0xcd,0x27,0x0f, + 0x01,0x04,0xa2,0xfa,0xbf,0x1f,0x27,0x0f, + 0x01,0x04,0xa2,0xf6,0x11,0xf8,0x27,0x0f, + 0x01,0x04,0x9f,0x4b,0x79,0xa3,0x27,0x0f, + 0x01,0x04,0x9d,0xad,0xca,0x0e,0x27,0x0f, + 0x01,0x04,0x9d,0x42,0x51,0xa2,0x27,0x0f, + 0x01,0x04,0x9d,0x0a,0xc7,0x52,0x27,0x0f, + 0x01,0x04,0x9d,0x0a,0xc7,0x4f,0x27,0x0f, + 0x01,0x04,0x9d,0x0a,0xc7,0x4d,0x27,0x0f, + 0x01,0x04,0x9a,0x7f,0x39,0x3f,0x27,0x0f, 0x01,0x04,0x96,0x9e,0x30,0x06,0x27,0x0f, - 0x01,0x04,0x91,0xef,0x14,0xb0,0x27,0x0f, - 0x01,0x04,0x90,0x5b,0x7f,0xa6,0x27,0x0f, - 0x01,0x04,0x8e,0xca,0xcd,0x5f,0x27,0x0f, - 0x01,0x04,0x8b,0x3b,0x64,0x67,0x27,0x0f, + 0x01,0x04,0x93,0x2d,0xb7,0x80,0x27,0x0f, + 0x01,0x04,0x93,0x2d,0x67,0x63,0x27,0x0f, + 0x01,0x04,0x92,0xbe,0xe6,0x68,0x27,0x0f, + 0x01,0x04,0x92,0x67,0x30,0xd1,0x27,0x0f, + 0x01,0x04,0x92,0x67,0x30,0xcb,0x27,0x0f, + 0x01,0x04,0x92,0x3b,0x2d,0xeb,0x27,0x0f, + 0x01,0x04,0x8b,0xa2,0x83,0xc5,0x27,0x0f, + 0x01,0x04,0x87,0xb5,0x35,0x82,0x27,0x0f, + 0x01,0x04,0x86,0xff,0xb6,0xba,0x27,0x0f, 0x01,0x04,0x85,0x12,0xe4,0x54,0x27,0x0f, 0x01,0x04,0x82,0xa2,0xe9,0xba,0x27,0x0f, + 0x01,0x04,0x82,0x3d,0x78,0xfc,0x27,0x0f, 0x01,0x04,0x7b,0xc1,0x40,0xa6,0x27,0x0f, - 0x01,0x04,0x6d,0xeb,0x46,0x64,0x27,0x0f, - 0x01,0x04,0x6d,0xeb,0x45,0xaa,0x27,0x0f, - 0x01,0x04,0x6d,0xeb,0x41,0xe2,0x27,0x0f, - 0x01,0x04,0x6d,0xeb,0x41,0x5f,0x27,0x0f, + 0x01,0x04,0x6d,0xeb,0x45,0x52,0x27,0x0f, + 0x01,0x04,0x6d,0xad,0xf0,0xe9,0x27,0x0f, + 0x01,0x04,0x6b,0xbd,0x03,0x4a,0x27,0x0f, + 0x01,0x04,0x6b,0xaa,0xfe,0xa0,0x27,0x0f, 0x01,0x04,0x6a,0x37,0x09,0x16,0x27,0x0f, - 0x01,0x04,0x68,0xee,0x23,0x74,0x27,0x0f, - 0x01,0x04,0x68,0xc8,0x43,0xfb,0x27,0x0f, + 0x01,0x04,0x68,0xe1,0x9f,0xe8,0x27,0x0f, 0x01,0x04,0x68,0xc8,0x18,0xc4,0x27,0x0f, - 0x01,0x04,0x67,0xa0,0x5f,0xdb,0x27,0x0f, 0x01,0x04,0x5f,0xd3,0xc4,0x2e,0x27,0x0f, + 0x01,0x04,0x5f,0xd3,0xc4,0x22,0x27,0x0f, 0x01,0x04,0x5f,0xd3,0xc4,0x20,0x27,0x0f, 0x01,0x04,0x5f,0xd3,0xc4,0x08,0x27,0x0f, - 0x01,0x04,0x5f,0xb7,0x35,0x2c,0x27,0x0f, 0x01,0x04,0x5f,0xb7,0x33,0x8d,0x27,0x0f, + 0x01,0x04,0x5f,0xab,0x15,0x83,0x27,0x0f, + 0x01,0x04,0x5f,0xa9,0xb5,0x47,0x27,0x0f, + 0x01,0x04,0x5e,0xac,0x6d,0xa1,0x27,0x0f, 0x01,0x04,0x5d,0x15,0x4c,0xb9,0x27,0x0f, + 0x01,0x04,0x5c,0x3f,0xb0,0xca,0x27,0x0f, + 0x01,0x04,0x5b,0xea,0x23,0x84,0x27,0x0f, + 0x01,0x04,0x5b,0xde,0xed,0x62,0x27,0x0f, + 0x01,0x04,0x5b,0xc7,0x95,0xb1,0x27,0x0f, 0x01,0x04,0x59,0xb3,0x49,0x60,0x27,0x0f, 0x01,0x04,0x59,0x75,0x13,0x0a,0x27,0x0f, + 0x01,0x04,0x59,0x28,0x0d,0x50,0x27,0x0f, + 0x01,0x04,0x59,0x28,0x0a,0x2d,0x27,0x0f, + 0x01,0x04,0x59,0x28,0x08,0xa0,0x27,0x0f, + 0x01,0x04,0x59,0x28,0x00,0x6d,0x27,0x0f, + 0x01,0x04,0x59,0x23,0x83,0x3d,0x27,0x0f, + 0x01,0x04,0x57,0xe4,0x18,0x40,0x27,0x0f, + 0x01,0x04,0x57,0xd1,0xf5,0xe3,0x27,0x0f, + 0x01,0x04,0x56,0x6b,0xa8,0x2f,0x27,0x0f, + 0x01,0x04,0x56,0x6b,0xa8,0x2e,0x27,0x0f, + 0x01,0x04,0x56,0x6b,0xa8,0x2b,0x27,0x0f, + 0x01,0x04,0x56,0x6b,0xa8,0x1d,0x27,0x0f, 0x01,0x04,0x55,0xd7,0x6b,0xca,0x27,0x0f, - 0x01,0x04,0x55,0xd1,0xf1,0xbe,0x27,0x0f, - 0x01,0x04,0x55,0xd1,0xf1,0xbc,0x27,0x0f, + 0x01,0x04,0x55,0xd1,0xf1,0xb9,0x27,0x0f, + 0x01,0x04,0x55,0xd1,0xf1,0x56,0x27,0x0f, 0x01,0x04,0x55,0xd1,0xf1,0x47,0x27,0x0f, 0x01,0x04,0x55,0xd1,0xf1,0x23,0x27,0x0f, + 0x01,0x04,0x54,0xf2,0xb3,0xcc,0x27,0x0f, + 0x01,0x04,0x54,0x09,0x32,0x11,0x27,0x0f, + 0x01,0x04,0x53,0xef,0x63,0x28,0x27,0x0f, 0x01,0x04,0x52,0xd3,0x19,0xc1,0x27,0x0f, 0x01,0x04,0x52,0xd3,0x19,0x69,0x27,0x0f, 0x01,0x04,0x52,0xd3,0x15,0xb3,0x27,0x0f, 0x01,0x04,0x52,0xd3,0x15,0x17,0x27,0x0f, 0x01,0x04,0x52,0xca,0xe6,0x53,0x27,0x0f, 0x01,0x04,0x51,0xe3,0xfa,0x33,0x27,0x0f, + 0x01,0x04,0x50,0xf9,0x93,0x08,0x27,0x0f, + 0x01,0x04,0x50,0xf0,0x84,0xe7,0x27,0x0f, 0x01,0x04,0x50,0xd1,0xea,0xaa,0x27,0x0f, 0x01,0x04,0x4e,0x53,0x13,0x00,0x27,0x0f, - 0x01,0x04,0x4d,0xe8,0x84,0x59,0x27,0x0f, - 0x01,0x04,0x4d,0xe8,0x84,0x04,0x27,0x0f, 0x01,0x04,0x4d,0xdf,0x63,0x04,0x27,0x0f, + 0x01,0x04,0x4d,0xdd,0x94,0xcc,0x27,0x0f, + 0x01,0x04,0x4a,0x32,0x5a,0x71,0x27,0x0f, + 0x01,0x04,0x45,0x3d,0x6b,0xd7,0x27,0x0f, + 0x01,0x04,0x42,0xf5,0xc4,0x34,0x27,0x0f, 0x01,0x04,0x42,0xf4,0xf3,0x46,0x27,0x0f, 0x01,0x04,0x42,0xf4,0xf3,0x45,0x27,0x0f, - 0x01,0x04,0x3a,0x6e,0xe0,0xa6,0x27,0x0f, - 0x01,0x04,0x36,0x25,0xea,0x79,0x27,0x0f, + 0x01,0x04,0x34,0x24,0x66,0x5b,0x27,0x0f, 0x01,0x04,0x34,0x21,0x09,0xac,0x27,0x0f, - 0x01,0x04,0x33,0x9e,0xf3,0xfa,0x27,0x0f, - 0x01,0x04,0x33,0x9e,0xa9,0xed,0x27,0x0f, - 0x01,0x04,0x33,0x4f,0xa0,0xc5,0x27,0x0f, - 0x01,0x04,0x33,0x44,0x9b,0x40,0x27,0x0f, - 0x01,0x04,0x33,0x0f,0x75,0x2a,0x27,0x0f, - 0x01,0x04,0x33,0x0f,0x60,0xce,0x27,0x0f, - 0x01,0x04,0x2f,0x6d,0x6d,0xa6,0x27,0x0f, - 0x01,0x04,0x2e,0xfe,0xf1,0x15,0x27,0x0f, + 0x01,0x04,0x33,0x26,0x8e,0x42,0x27,0x0f, + 0x01,0x04,0x33,0x26,0x8e,0x3e,0x27,0x0f, + 0x01,0x04,0x33,0x26,0x8e,0x3d,0x27,0x0f, + 0x01,0x04,0x2f,0x6e,0xb8,0xaa,0x27,0x0f, + 0x01,0x04,0x2e,0xfe,0xf1,0x09,0x27,0x0f, + 0x01,0x04,0x2e,0xfe,0xf1,0x08,0x27,0x0f, + 0x01,0x04,0x2e,0xfe,0xf1,0x07,0x27,0x0f, 0x01,0x04,0x2e,0xfe,0xf1,0x04,0x27,0x0f, 0x01,0x04,0x2e,0x24,0x28,0xf2,0x27,0x0f, + 0x01,0x04,0x2e,0x1e,0xbd,0xfb,0x27,0x0f, 0x01,0x04,0x2e,0x1e,0xbd,0xd6,0x27,0x0f, + 0x01,0x04,0x2e,0x1e,0xbd,0xd5,0x27,0x0f, 0x01,0x04,0x2e,0x1e,0xbd,0x74,0x27,0x0f, - 0x01,0x04,0x2e,0x04,0xa2,0x7f,0x27,0x0f, + 0x01,0x04,0x2d,0x99,0xba,0x64,0x27,0x0f, 0x01,0x04,0x2d,0x8c,0x13,0xc9,0x27,0x0f, - 0x01,0x04,0x2d,0x5d,0x8b,0x75,0x27,0x0f, + 0x01,0x04,0x2d,0x87,0xb4,0x4f,0x27,0x0f, 0x01,0x04,0x2d,0x5b,0x5e,0xd9,0x27,0x0f, - 0x01,0x04,0x2d,0x55,0x75,0xa9,0x27,0x0f, - 0x01,0x04,0x2d,0x55,0x75,0x28,0x27,0x0f, 0x01,0x04,0x2d,0x53,0x7a,0x7a,0x27,0x0f, - 0x01,0x04,0x2d,0x4f,0x12,0x6a,0x27,0x0f, 0x01,0x04,0x2d,0x4c,0x53,0x5b,0x27,0x0f, 0x01,0x04,0x2d,0x47,0x9f,0x68,0x27,0x0f, 0x01,0x04,0x2d,0x47,0x9e,0x6c,0x27,0x0f, 0x01,0x04,0x2d,0x47,0x9e,0x3a,0x27,0x0f, - 0x01,0x04,0x2d,0x3f,0x6b,0x5a,0x27,0x0f, - 0x01,0x04,0x2d,0x3a,0x38,0xdd,0x27,0x0f, + 0x01,0x04,0x2d,0x3d,0xba,0x79,0x27,0x0f, + 0x01,0x04,0x2d,0x3a,0x38,0x4f,0x27,0x0f, 0x01,0x04,0x2d,0x20,0x9f,0x30,0x27,0x0f, 0x01,0x04,0x2d,0x0b,0xb6,0x40,0x27,0x0f, - 0x01,0x04,0x2d,0x08,0xfa,0x9a,0x27,0x0f, 0x01,0x04,0x2c,0xf0,0x63,0xd6,0x27,0x0f, - 0x01,0x04,0x25,0x4d,0x68,0xa6,0x27,0x0f, + 0x01,0x04,0x2b,0xe5,0x4d,0x2e,0x27,0x0f, + 0x01,0x04,0x2b,0xa7,0xf4,0x6d,0x27,0x0f, + 0x01,0x04,0x2b,0xa7,0xf0,0x5a,0x27,0x0f, + 0x01,0x04,0x2b,0xa3,0xfb,0x33,0x27,0x0f, + 0x01,0x04,0x2b,0x80,0x48,0x72,0x27,0x0f, + 0x01,0x04,0x26,0x63,0x52,0xe6,0x27,0x0f, + 0x01,0x04,0x26,0x63,0x52,0x15,0x27,0x0f, + 0x01,0x04,0x26,0x5b,0x65,0x5c,0x27,0x0f, + 0x01,0x04,0x26,0x5b,0x64,0xca,0x27,0x0f, + 0x01,0x04,0x26,0x58,0x7d,0x33,0x27,0x0f, + 0x01,0x04,0x26,0x58,0x7d,0x32,0x27,0x0f, + 0x01,0x04,0x25,0x61,0xe3,0x15,0x27,0x0f, + 0x01,0x04,0x23,0xae,0xd9,0x62,0x27,0x0f, + 0x01,0x04,0x22,0xf6,0xb0,0x19,0x27,0x0f, 0x01,0x04,0x1f,0x94,0x63,0x68,0x27,0x0f, + 0x01,0x04,0x1f,0x39,0xbe,0xbc,0x27,0x0f, + 0x01,0x04,0x1f,0x39,0xbe,0x1f,0x27,0x0f, 0x01,0x04,0x1f,0x0a,0x61,0x24,0x27,0x0f, - 0x01,0x04,0x17,0xa3,0x00,0xcb,0x27,0x0f, - 0x01,0x04,0x17,0xa3,0x00,0xaf,0x27,0x0f, - 0x01,0x04,0x0d,0xfb,0x0b,0x37,0x27,0x0f, - 0x01,0x04,0x05,0xfc,0x15,0x18,0x27,0x0f, - 0x01,0x04,0x05,0xbd,0xfd,0xfc,0x27,0x0f, - 0x01,0x04,0x05,0xbd,0xef,0x34,0x27,0x0f, - 0x01,0x04,0x05,0xbd,0x91,0x50,0x27,0x0f, - 0x01,0x04,0x05,0xb5,0xca,0x0f,0x27,0x0f, + 0x01,0x04,0x05,0xff,0x6a,0xc0,0x27,0x0f, 0x01,0x04,0x05,0xa1,0x6e,0x4f,0x27,0x0f, - 0x01,0x04,0x05,0x4f,0x6d,0xf3,0x27,0x0f, - 0x01,0x04,0x05,0x4e,0x4a,0x76,0x27,0x0f, - 0x01,0x04,0x05,0x23,0x67,0x6f,0x27,0x0f, - 0x01,0x04,0x05,0x23,0x67,0x4a,0x27,0x0f, - 0x01,0x04,0x05,0x23,0x67,0x40,0x27,0x0f, - 0x01,0x04,0x05,0x23,0x67,0x3a,0x27,0x0f, - 0x01,0x04,0x05,0x09,0xed,0x22,0x27,0x0f, + 0x01,0x04,0x05,0x23,0x67,0x1a,0x27,0x0f, + 0x01,0x04,0x05,0x23,0x67,0x19,0x27,0x0f, + 0x01,0x04,0x05,0x23,0x67,0x13,0x27,0x0f, 0x01,0x04,0x05,0x02,0x49,0x3a,0x27,0x0f, - 0x01,0x04,0x03,0x23,0xe0,0x41,0x27,0x0f, - 0x01,0x04,0x02,0x38,0xd5,0xdd,0x27,0x0f, + 0x01,0x04,0x02,0xe9,0x78,0x23,0x27,0x0f, }; static const uint8_t chainparams_seed_test[] = { From db5b53a9a7d0c9b3e08a19269ecb839a40c785c9 Mon Sep 17 00:00:00 2001 From: pasta Date: Mon, 2 Dec 2024 20:46:18 -0600 Subject: [PATCH 11/24] Merge #6434: fix: early EHF and buried EHF are indistinguish 4629bb9ba5c2d5f4e4d24ddef90d8d657116d501 fix: add missing cs_main annotation for ForceSignalDBUpdate (Konstantin Akimov) 05041a4572bf125325764dc11f04ce8efcc1388f fix: force ehf signal db update (UdjinM6) 94d80323d48c466784ca8feb7c28a70866df36c4 fix: typo name of key (Konstantin Akimov) 9ceba88cdbfaace00b6f850ea72b48232f4fba00 style: clang suggestion (Konstantin Akimov) c6bb9a56857c69fcf1358ebf2d9e710dfece3a84 perf: re-use evo data about signals between v20 and mn_rr as non-corrupted (Konstantin Akimov) 7a7c9f12a413016e2f459715465bb95249583ba4 fix: early EHF and buried EHF are indistinguish (Konstantin Akimov) Pull request description: ## Issue being fixed or feature implemented It seems as EHF signal will be mined before node is updated, this signal is lost and node can't activate hard-fork anymore. ## What was done? EHF signals doesn't expire anymore. To avoid full re-index key in database is changed. Client with enabled "pruned mode" will be required to do re-index. Alternate solution - revert this commit 4b046bb60808927349cf5556fdb73f04f818057e and introduce time-out for expiring EHF signals. ## How Has This Been Tested? Test on my local instance with testnet and mainnet. Testing on miner-1 on testnet is done. First start of miner took 50 seconds, 29 of them the node was re-scanning blockchain and looking for EHF transaction ## Breaking Changes It requires re-index for nodes with enabled pruning of blocks. ## Checklist: - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: PastaPastaPasta: utACK [4629bb9](https://github.com/dashpay/dash/pull/6434/commits/4629bb9ba5c2d5f4e4d24ddef90d8d657116d501) UdjinM6: utACK 4629bb9ba5c2d5f4e4d24ddef90d8d657116d501 Tree-SHA512: 189533da5726edbcf2d9cf0e9a3957a10ebc223c25fd88aec3aa9095ae2e7d955ea1f7a1384bc2c97a0cc06110c9e38845a8cafdbd56ff9637bb907ddc639850 --- src/evo/mnhftx.cpp | 66 +++++++++++++++++++++++++++++++++------------- src/evo/mnhftx.h | 2 ++ src/init.cpp | 4 +++ 3 files changed, 54 insertions(+), 18 deletions(-) diff --git a/src/evo/mnhftx.cpp b/src/evo/mnhftx.cpp index 05e24db112d7b..618a5a640a8f1 100644 --- a/src/evo/mnhftx.cpp +++ b/src/evo/mnhftx.cpp @@ -24,6 +24,7 @@ static const std::string MNEHF_REQUESTID_PREFIX = "mnhf"; static const std::string DB_SIGNALS = "mnhf_s"; +static const std::string DB_SIGNALS_v2 = "mnhf_s2"; uint256 MNHFTxPayload::GetRequestId() const { @@ -57,34 +58,33 @@ CMNHFManager::Signals CMNHFManager::GetSignalsStage(const CBlockIndex* const pin { if (!DeploymentActiveAfter(pindexPrev, Params().GetConsensus(), Consensus::DEPLOYMENT_V20)) return {}; - Signals signals = GetForBlock(pindexPrev); + Signals signals_tmp = GetForBlock(pindexPrev); + if (pindexPrev == nullptr) return {}; const int height = pindexPrev->nHeight + 1; - for (auto it = signals.begin(); it != signals.end(); ) { - bool found{false}; - const auto signal_pindex = pindexPrev->GetAncestor(it->second); + + Signals signals_ret; + + for (auto signal : signals_tmp) { + bool expired{false}; + const auto signal_pindex = pindexPrev->GetAncestor(signal.second); assert(signal_pindex != nullptr); const int64_t signal_time = signal_pindex->GetMedianTimePast(); for (int index = 0; index < Consensus::MAX_VERSION_BITS_DEPLOYMENTS; ++index) { const auto& deployment = Params().GetConsensus().vDeployments[index]; - if (deployment.bit != it->first) continue; + if (deployment.bit != signal.first) continue; if (signal_time < deployment.nStartTime) { // new deployment is using the same bit as the old one - LogPrintf("CMNHFManager::GetSignalsStage: mnhf signal bit=%d height:%d is expired at height=%d\n", it->first, it->second, height); - it = signals.erase(it); - } else { - ++it; + LogPrintf("CMNHFManager::GetSignalsStage: mnhf signal bit=%d height:%d is expired at height=%d\n", + signal.first, signal.second, height); + expired = true; } - found = true; - break; } - if (!found) { - // no deployment means we buried it and aren't using the same bit (yet) - LogPrintf("CMNHFManager::GetSignalsStage: mnhf signal bit=%d height:%d is not known at height=%d\n", it->first, it->second, height); - it = signals.erase(it); + if (!expired) { + signals_ret.insert(signal); } } - return signals; + return signals_ret; } bool MNHFTx::Verify(const llmq::CQuorumManager& qman, const uint256& quorumHash, const uint256& requestId, const uint256& msgHash, TxValidationState& state) const @@ -287,6 +287,9 @@ CMNHFManager::Signals CMNHFManager::GetForBlock(const CBlockIndex* pindex) const Consensus::Params& consensusParams{Params().GetConsensus()}; while (!to_calculate.empty()) { const CBlockIndex* pindex_top{to_calculate.top()}; + if (pindex_top->nHeight % 1000 == 0) { + LogPrintf("re-index EHF signals at block %d\n", pindex_top->nHeight); + } CBlock block; if (!ReadBlockFromDisk(block, pindex_top, consensusParams)) { throw std::runtime_error("failed-getehfforblock-read"); @@ -328,11 +331,19 @@ std::optional CMNHFManager::GetFromCache(const CBlockInde return signals; } } - if (m_evoDb.Read(std::make_pair(DB_SIGNALS, blockHash), signals)) { + if (m_evoDb.Read(std::make_pair(DB_SIGNALS_v2, blockHash), signals)) { LOCK(cs_cache); mnhfCache.insert(blockHash, signals); return signals; } + if (!DeploymentActiveAt(*pindex, Params().GetConsensus(), Consensus::DEPLOYMENT_MN_RR)) { + // before mn_rr activation we are safe + if (m_evoDb.Read(std::make_pair(DB_SIGNALS, blockHash), signals)) { + LOCK(cs_cache); + mnhfCache.insert(blockHash, signals); + return signals; + } + } return std::nullopt; } @@ -346,7 +357,7 @@ void CMNHFManager::AddToCache(const Signals& signals, const CBlockIndex* const p } if (!DeploymentActiveAt(*pindex, Params().GetConsensus(), Consensus::DEPLOYMENT_V20)) return; - m_evoDb.Write(std::make_pair(DB_SIGNALS, blockHash), signals); + m_evoDb.Write(std::make_pair(DB_SIGNALS_v2, blockHash), signals); } void CMNHFManager::AddSignal(const CBlockIndex* const pindex, int bit) @@ -364,6 +375,25 @@ void CMNHFManager::ConnectManagers(gsl::not_null chainman, g m_qman = qman; } +bool CMNHFManager::ForceSignalDBUpdate() +{ + // force ehf signals db update + auto dbTx = m_evoDb.BeginTransaction(); + + const bool last_legacy = bls::bls_legacy_scheme.load(); + bls::bls_legacy_scheme.store(false); + GetSignalsStage(m_chainman->ActiveChainstate().m_chain.Tip()); + bls::bls_legacy_scheme.store(last_legacy); + + dbTx->Commit(); + // flush it to disk + if (!m_evoDb.CommitRootTransaction()) { + LogPrintf("CMNHFManager::%s -- failed to commit to evoDB\n", __func__); + return false; + } + return true; +} + std::string MNHFTx::ToString() const { return strprintf("MNHFTx(versionBit=%d, quorumHash=%s, sig=%s)", diff --git a/src/evo/mnhftx.h b/src/evo/mnhftx.h index eb92f1db82f75..1d6b577f3c1f6 100644 --- a/src/evo/mnhftx.h +++ b/src/evo/mnhftx.h @@ -155,6 +155,8 @@ class CMNHFManager : public AbstractEHFManager */ void DisconnectManagers() { m_chainman = nullptr; m_qman = nullptr; }; + bool ForceSignalDBUpdate() EXCLUSIVE_LOCKS_REQUIRED(cs_main); + private: void AddToCache(const Signals& signals, const CBlockIndex* const pindex); diff --git a/src/init.cpp b/src/init.cpp index efb29eae5dd0d..459851533a404 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -2064,6 +2064,10 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info) strLoadError = _("Error upgrading evo database"); break; } + if (!node.mnhf_manager->ForceSignalDBUpdate()) { + strLoadError = _("Error upgrading evo database for EHF"); + break; + } for (CChainState* chainstate : chainman.GetAll()) { if (!is_coinsview_empty(chainstate)) { From cb041141437e1cd1fdf843001d8bd5809992ef4a Mon Sep 17 00:00:00 2001 From: pasta Date: Tue, 3 Dec 2024 08:34:30 -0600 Subject: [PATCH 12/24] Merge #6442: fix: coin selection with `include_unsafe` option should respect `nCoinType` e5114da32536f977e69f6a0d531c3ca45dafdf07 fix: coin selection with `include_unsafe` option should respect `nCoinType` (UdjinM6) Pull request description: ## Issue being fixed or feature implemented The issue was introduced in #6074 via https://github.com/dashpay/dash/commit/69c5aa89479af20c2bdb0c02191617140efdae5e ## What was done? ## How Has This Been Tested? ## Breaking Changes ## Checklist: - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: PastaPastaPasta: utACK e5114da32536f977e69f6a0d531c3ca45dafdf07 kwvg: utACK e5114da32536f977e69f6a0d531c3ca45dafdf07 Tree-SHA512: 5d4e22f9d2cecf2239185e0f4c9d8b29b995b25b4f53a74d6c9b7929aac6ec918ebfb4029a83b72a003fe42fe82619f7ab4892d620bf5846cadf99f1f0cb0969 --- src/wallet/wallet.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index 3449332970180..0bc08a4c3ea3f 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -3041,7 +3041,7 @@ bool CWallet::SelectCoins(const std::vector& vAvailableCoins, const CAm if (coin_control.m_include_unsafe_inputs && SelectCoinsMinConf(value_to_select, CoinEligibilityFilter(0 /* conf_mine */, 0 /* conf_theirs */, max_ancestors-1, max_descendants-1, true /* include_partial_groups */), - vCoins, setCoinsRet, nValueRet, coin_selection_params, bnb_used)) { + vCoins, setCoinsRet, nValueRet, coin_selection_params, bnb_used, nCoinType)) { return true; } // Try with unlimited ancestors/descendants. The transaction will still need to meet From c074e0965b0ab95d07d0045a724a68be9778c0e0 Mon Sep 17 00:00:00 2001 From: pasta Date: Tue, 3 Dec 2024 07:40:55 -0600 Subject: [PATCH 13/24] Merge #6444: fix: add platform transfer to "most common" filter 36893e4ba461a55b75a066b6a26e59a37bdfd588 fix: add platform transfer to "most common" filter on transactions tab (Konstantin Akimov) d033a3ae06f79809dd9b49dc6f6879f3c210cb08 refactor: change mask from Dec presentation to Hex for transaction filter (Konstantin Akimov) Pull request description: ## Issue being fixed or feature implemented Follow-up https://github.com/dashpay/dash/pull/6131 - missing 'Platform Transfer' in the list of most common. Reported by splawik. ## What was done? Updated filter, added comment to prevent similar mistakes in future, present filter in hex for better readability. ## How Has This Been Tested? Transaction with platform transfer appeared in filter "Most Common" ![image](https://github.com/user-attachments/assets/ccc17553-d71a-45f8-be2f-8ce5fb699c1a) Also they are added to Overview page (compare screenshots by 'address' field) ![image](https://github.com/user-attachments/assets/ea657672-46c8-4a66-a972-15768feb4d57) ## Breaking Changes N/A ## Checklist: - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone ACKs for top commit: UdjinM6: utACK 36893e4ba461a55b75a066b6a26e59a37bdfd588 PastaPastaPasta: utACK 36893e4ba461a55b75a066b6a26e59a37bdfd588 Tree-SHA512: e072b78e257b2c262a912a3cc0daebde93aca655edfee9bbf4869f2528f10377d7d234c73c4fd7ab6006e87607d5a7c4eddd7634d55b16d1b3885d0bc48f225a --- src/qt/transactionfilterproxy.h | 2 +- src/qt/transactionrecord.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/qt/transactionfilterproxy.h b/src/qt/transactionfilterproxy.h index 38695e21b049f..9f07d290ad630 100644 --- a/src/qt/transactionfilterproxy.h +++ b/src/qt/transactionfilterproxy.h @@ -23,7 +23,7 @@ class TransactionFilterProxy : public QSortFilterProxyModel /** Type filter bit field (all types) */ static const quint32 ALL_TYPES = 0xFFFFFFFF; /** Type filter bit field (all types but Darksend-SPAM) */ - static const quint32 COMMON_TYPES = 4223; + static const quint32 COMMON_TYPES = 0x307f; static quint32 TYPE(int type) { return 1< Date: Tue, 3 Dec 2024 08:35:56 -0600 Subject: [PATCH 14/24] Merge #6441: fix: hold wallet shared pointer in CJ Manager/Sessions to prevent concurrent unload 2d7c7f81b8a4e2b31986129bcc76fc012a324a26 fix: do not transfer wallet ownership to CTransactionBuilder{Output} (UdjinM6) 0aeeb8583a0fbfd218c21d18433d78e4469382ab fix: add missing `AddWallet` call in `TestLoadWallet` (UdjinM6) e800d9d09c8837f2b5a4e89904accc2c5165e766 fix: hold wallet shared pointer in CJ Manager/Sessions to prevent concurrent unload (UdjinM6) Pull request description: ## Issue being fixed or feature implemented https://github.com/dashpay/dash/pull/6440#discussion_r1865042366 ## What was done? ## How Has This Been Tested? ## Breaking Changes ## Checklist: - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: PastaPastaPasta: utACK 2d7c7f81b8a4e2b31986129bcc76fc012a324a26 Tree-SHA512: 308e3bed077baa2167b7f9d81b87e5a61a113e4d465706548f303dfc499bc072d4e823e85772e591a879986b0fb0413d5afe0e3995e1f939fa772b29adc0300d --- src/coinjoin/client.cpp | 132 ++++++++++++++----------------- src/coinjoin/client.h | 32 +++++--- src/coinjoin/interfaces.cpp | 5 +- src/coinjoin/util.cpp | 41 +++++----- src/coinjoin/util.h | 6 +- src/interfaces/coinjoin.h | 2 +- src/wallet/test/wallet_tests.cpp | 4 + src/wallet/wallet.cpp | 24 +++--- src/wallet/wallet.h | 2 +- 9 files changed, 121 insertions(+), 127 deletions(-) diff --git a/src/coinjoin/client.cpp b/src/coinjoin/client.cpp index 9804b1be5bee9..9ee0fa0d911f3 100644 --- a/src/coinjoin/client.cpp +++ b/src/coinjoin/client.cpp @@ -160,7 +160,7 @@ void CCoinJoinClientManager::ProcessMessage(CNode& peer, CChainState& active_cha } } -CCoinJoinClientSession::CCoinJoinClientSession(CWallet& wallet, CoinJoinWalletManager& walletman, +CCoinJoinClientSession::CCoinJoinClientSession(const std::shared_ptr& wallet, CoinJoinWalletManager& walletman, CCoinJoinClientManager& clientman, CDeterministicMNManager& dmnman, CMasternodeMetaMan& mn_metaman, const CMasternodeSync& mn_sync, const std::unique_ptr& queueman, @@ -258,7 +258,7 @@ void CCoinJoinClientSession::ResetPool() { txMyCollateral = CMutableTransaction(); UnlockCoins(); - WITH_LOCK(m_wallet.cs_wallet, keyHolderStorage.ReturnAll()); + WITH_LOCK(m_wallet->cs_wallet, keyHolderStorage.ReturnAll()); WITH_LOCK(cs_coinjoin, SetNull()); } @@ -292,13 +292,13 @@ void CCoinJoinClientSession::UnlockCoins() if (!CCoinJoinClientOptions::IsEnabled()) return; while (true) { - TRY_LOCK(m_wallet.cs_wallet, lockWallet); + TRY_LOCK(m_wallet->cs_wallet, lockWallet); if (!lockWallet) { UninterruptibleSleep(std::chrono::milliseconds{50}); continue; } for (const auto& outpoint : vecOutPointLocked) - m_wallet.UnlockCoin(outpoint); + m_wallet->UnlockCoin(outpoint); break; } @@ -419,7 +419,7 @@ bool CCoinJoinClientSession::CheckTimeout() SetState(POOL_STATE_ERROR); UnlockCoins(); - WITH_LOCK(m_wallet.cs_wallet, keyHolderStorage.ReturnAll()); + WITH_LOCK(m_wallet->cs_wallet, keyHolderStorage.ReturnAll()); nTimeLastSuccessfulStep = GetTime(); strLastMessage = CoinJoin::GetMessageByID(ERR_SESSION); @@ -530,7 +530,7 @@ void CCoinJoinClientSession::ProcessPoolStateUpdate(CCoinJoinStatusUpdate psssup WalletCJLogPrint(m_wallet, "CCoinJoinClientSession::%s -- rejected by Masternode: %s\n", __func__, strMessageTmp.translated); SetState(POOL_STATE_ERROR); UnlockCoins(); - WITH_LOCK(m_wallet.cs_wallet, keyHolderStorage.ReturnAll()); + WITH_LOCK(m_wallet->cs_wallet, keyHolderStorage.ReturnAll()); nTimeLastSuccessfulStep = GetTime(); strLastMessage = strMessageTmp; break; @@ -564,7 +564,7 @@ bool CCoinJoinClientSession::SignFinalTransaction(CNode& peer, CChainState& acti if (m_is_masternode) return false; if (!mixingMasternode) return false; - LOCK(m_wallet.cs_wallet); + LOCK(m_wallet->cs_wallet); LOCK(cs_coinjoin); finalMutableTransaction = CMutableTransaction{finalTransactionNew}; @@ -646,9 +646,9 @@ bool CCoinJoinClientSession::SignFinalTransaction(CNode& peer, CChainState& acti } // fill values for found outpoints - m_wallet.chain().findCoins(coins); + m_wallet->chain().findCoins(coins); std::map signing_errors; - m_wallet.SignTransaction(finalMutableTransaction, coins, SIGHASH_ALL | SIGHASH_ANYONECANPAY, signing_errors); + m_wallet->SignTransaction(finalMutableTransaction, coins, SIGHASH_ALL | SIGHASH_ANYONECANPAY, signing_errors); for (const auto& [input_index, error_string] : signing_errors) { // NOTE: this is a partial signing so it's expected for SignTransaction to return @@ -697,7 +697,7 @@ void CCoinJoinClientSession::CompletedTransaction(PoolMessage nMessageID) keyHolderStorage.KeepAll(); WalletCJLogPrint(m_wallet, "CompletedTransaction -- success\n"); } else { - WITH_LOCK(m_wallet.cs_wallet, keyHolderStorage.ReturnAll()); + WITH_LOCK(m_wallet->cs_wallet, keyHolderStorage.ReturnAll()); WalletCJLogPrint(m_wallet, "CompletedTransaction -- error\n"); } UnlockCoins(); @@ -725,14 +725,14 @@ bool CCoinJoinClientManager::CheckAutomaticBackup() if (!CCoinJoinClientOptions::IsEnabled() || !IsMixing()) return false; // We don't need auto-backups for descriptor wallets - if (!m_wallet.IsLegacy()) return true; + if (!m_wallet->IsLegacy()) return true; switch (nWalletBackups) { case 0: strAutoDenomResult = _("Automatic backups disabled") + Untranslated(", ") + _("no mixing available."); WalletCJLogPrint(m_wallet, "CCoinJoinClientManager::CheckAutomaticBackup -- %s\n", strAutoDenomResult.original); StopMixing(); - m_wallet.nKeysLeftSinceAutoBackup = 0; // no backup, no "keys since last backup" + m_wallet->nKeysLeftSinceAutoBackup = 0; // no backup, no "keys since last backup" return false; case -1: // Automatic backup failed, nothing else we can do until user fixes the issue manually. @@ -750,16 +750,18 @@ bool CCoinJoinClientManager::CheckAutomaticBackup() return false; } - if (m_wallet.nKeysLeftSinceAutoBackup < COINJOIN_KEYS_THRESHOLD_STOP) { + if (m_wallet->nKeysLeftSinceAutoBackup < COINJOIN_KEYS_THRESHOLD_STOP) { // We should never get here via mixing itself but probably something else is still actively using keypool - strAutoDenomResult = strprintf(_("Very low number of keys left: %d") + Untranslated(", ") + _("no mixing available."), m_wallet.nKeysLeftSinceAutoBackup); + strAutoDenomResult = strprintf(_("Very low number of keys left: %d") + Untranslated(", ") + + _("no mixing available."), + m_wallet->nKeysLeftSinceAutoBackup); WalletCJLogPrint(m_wallet, "CCoinJoinClientManager::CheckAutomaticBackup -- %s\n", strAutoDenomResult.original); // It's getting really dangerous, stop mixing StopMixing(); return false; - } else if (m_wallet.nKeysLeftSinceAutoBackup < COINJOIN_KEYS_THRESHOLD_WARNING) { + } else if (m_wallet->nKeysLeftSinceAutoBackup < COINJOIN_KEYS_THRESHOLD_WARNING) { // Low number of keys left, but it's still more or less safe to continue - strAutoDenomResult = strprintf(_("Very low number of keys left: %d"), m_wallet.nKeysLeftSinceAutoBackup); + strAutoDenomResult = strprintf(_("Very low number of keys left: %d"), m_wallet->nKeysLeftSinceAutoBackup); WalletCJLogPrint(m_wallet, "CCoinJoinClientManager::CheckAutomaticBackup -- %s\n", strAutoDenomResult.original); if (fCreateAutoBackups) { @@ -767,7 +769,7 @@ bool CCoinJoinClientManager::CheckAutomaticBackup() bilingual_str errorString; std::vector warnings; - if (!m_wallet.AutoBackupWallet("", errorString, warnings)) { + if (!m_wallet->AutoBackupWallet("", errorString, warnings)) { if (!warnings.empty()) { // There were some issues saving backup but yet more or less safe to continue WalletCJLogPrint(m_wallet, "CCoinJoinClientManager::CheckAutomaticBackup -- WARNING! Something went wrong on automatic backup: %s\n", Join(warnings, Untranslated("\n")).translated); @@ -785,7 +787,8 @@ bool CCoinJoinClientManager::CheckAutomaticBackup() } } - WalletCJLogPrint(m_wallet, "CCoinJoinClientManager::CheckAutomaticBackup -- Keys left since latest backup: %d\n", m_wallet.nKeysLeftSinceAutoBackup); + WalletCJLogPrint(m_wallet, "CCoinJoinClientManager::CheckAutomaticBackup -- Keys left since latest backup: %d\n", + m_wallet->nKeysLeftSinceAutoBackup); return true; } @@ -809,9 +812,9 @@ bool CCoinJoinClientSession::DoAutomaticDenominating(ChainstateManager& chainman CAmount nBalanceNeedsAnonymized; { - LOCK(m_wallet.cs_wallet); + LOCK(m_wallet->cs_wallet); - if (!fDryRun && m_wallet.IsLocked(true)) { + if (!fDryRun && m_wallet->IsLocked(true)) { strAutoDenomResult = _("Wallet is locked."); return false; } @@ -834,7 +837,7 @@ bool CCoinJoinClientSession::DoAutomaticDenominating(ChainstateManager& chainman return false; } - const auto bal = m_wallet.GetBalance(); + const auto bal = m_wallet->GetBalance(); // check if there is anything left to do CAmount nBalanceAnonymized = bal.m_anonymized; @@ -849,13 +852,13 @@ bool CCoinJoinClientSession::DoAutomaticDenominating(ChainstateManager& chainman CAmount nValueMin = CoinJoin::GetSmallestDenomination(); // if there are no confirmed DS collateral inputs yet - if (!m_wallet.HasCollateralInputs()) { + if (!m_wallet->HasCollateralInputs()) { // should have some additional amount for them nValueMin += CoinJoin::GetMaxCollateralAmount(); } // including denoms but applying some restrictions - CAmount nBalanceAnonymizable = m_wallet.GetAnonymizableBalance(); + CAmount nBalanceAnonymizable = m_wallet->GetAnonymizableBalance(); // mixable balance is way too small if (nBalanceAnonymizable < nValueMin) { @@ -865,7 +868,7 @@ bool CCoinJoinClientSession::DoAutomaticDenominating(ChainstateManager& chainman } // excluding denoms - CAmount nBalanceAnonimizableNonDenom = m_wallet.GetAnonymizableBalance(true); + CAmount nBalanceAnonimizableNonDenom = m_wallet->GetAnonymizableBalance(true); // denoms CAmount nBalanceDenominatedConf = bal.m_denominated_trusted; CAmount nBalanceDenominatedUnconf = bal.m_denominated_untrusted_pending; @@ -917,8 +920,8 @@ bool CCoinJoinClientSession::DoAutomaticDenominating(ChainstateManager& chainman } //check if we have the collateral sized inputs - if (!m_wallet.HasCollateralInputs()) { - return !m_wallet.HasCollateralInputs(false) && MakeCollateralAmounts(); + if (!m_wallet->HasCollateralInputs()) { + return !m_wallet->HasCollateralInputs(false) && MakeCollateralAmounts(); } if (nSessionID) { @@ -957,10 +960,10 @@ bool CCoinJoinClientSession::DoAutomaticDenominating(ChainstateManager& chainman } // lock the funds we're going to use for our collateral for (const auto& txin : txMyCollateral.vin) { - m_wallet.LockCoin(txin.prevout); + m_wallet->LockCoin(txin.prevout); vecOutPointLocked.push_back(txin.prevout); } - } // LOCK(m_wallet.cs_wallet); + } // LOCK(m_wallet->cs_wallet); // Always attempt to join an existing queue if (JoinExistingQueue(nBalanceNeedsAnonymized, connman)) { @@ -985,7 +988,7 @@ bool CCoinJoinClientManager::DoAutomaticDenominating(ChainstateManager& chainman return false; } - if (!fDryRun && m_wallet.IsLocked(true)) { + if (!fDryRun && m_wallet->IsLocked(true)) { strAutoDenomResult = _("Wallet is locked."); return false; } @@ -1107,7 +1110,7 @@ bool CCoinJoinClientSession::JoinExistingQueue(CAmount nBalanceNeedsAnonymized, std::vector vecTxDSInTmp; // Try to match their denominations if possible, select exact number of denominations - if (!m_wallet.SelectTxDSInsByDenomination(dsq.nDenom, nBalanceNeedsAnonymized, vecTxDSInTmp)) { + if (!m_wallet->SelectTxDSInsByDenomination(dsq.nDenom, nBalanceNeedsAnonymized, vecTxDSInTmp)) { WalletCJLogPrint(m_wallet, "CCoinJoinClientSession::JoinExistingQueue -- Couldn't match denomination %d (%s)\n", dsq.nDenom, CoinJoin::DenominationToString(dsq.nDenom)); continue; } @@ -1153,7 +1156,7 @@ bool CCoinJoinClientSession::StartNewQueue(CAmount nBalanceNeedsAnonymized, CCon // find available denominated amounts std::set setAmounts; - if (!m_wallet.SelectDenominatedAmounts(nBalanceNeedsAnonymized, setAmounts)) { + if (!m_wallet->SelectDenominatedAmounts(nBalanceNeedsAnonymized, setAmounts)) { // this should never happen strAutoDenomResult = _("Can't mix: no compatible inputs found!"); WalletCJLogPrint(m_wallet, "CCoinJoinClientSession::StartNewQueue -- %s\n", strAutoDenomResult.original); @@ -1288,7 +1291,7 @@ bool CCoinJoinClientManager::MarkAlreadyJoinedQueueAsTried(CCoinJoinQueue& dsq) bool CCoinJoinClientSession::SubmitDenominate(CConnman& connman) { - LOCK(m_wallet.cs_wallet); + LOCK(m_wallet->cs_wallet); std::string strError; std::vector vecTxDSIn; @@ -1342,7 +1345,7 @@ bool CCoinJoinClientSession::SelectDenominate(std::string& strErrorRet, std::vec { if (!CCoinJoinClientOptions::IsEnabled()) return false; - if (m_wallet.IsLocked(true)) { + if (m_wallet->IsLocked(true)) { strErrorRet = "Wallet locked, unable to create transaction!"; return false; } @@ -1354,7 +1357,7 @@ bool CCoinJoinClientSession::SelectDenominate(std::string& strErrorRet, std::vec vecTxDSInRet.clear(); - bool fSelected = m_wallet.SelectTxDSInsByDenomination(nSessionDenom, CoinJoin::GetMaxPoolAmount(), vecTxDSInRet); + bool fSelected = m_wallet->SelectTxDSInsByDenomination(nSessionDenom, CoinJoin::GetMaxPoolAmount(), vecTxDSInRet); if (!fSelected) { strErrorRet = "Can't select current denominated inputs"; return false; @@ -1365,7 +1368,7 @@ bool CCoinJoinClientSession::SelectDenominate(std::string& strErrorRet, std::vec bool CCoinJoinClientSession::PrepareDenominate(int nMinRounds, int nMaxRounds, std::string& strErrorRet, const std::vector& vecTxDSIn, std::vector >& vecPSInOutPairsRet, bool fDryRun) { - AssertLockHeld(m_wallet.cs_wallet); + AssertLockHeld(m_wallet->cs_wallet); if (!CoinJoin::IsValidDenomination(nSessionDenom)) { strErrorRet = "Incorrect session denom"; @@ -1395,12 +1398,7 @@ bool CCoinJoinClientSession::PrepareDenominate(int nMinRounds, int nMaxRounds, s ++nSteps; continue; } - const auto pwallet = GetWallet(m_wallet.GetName()); - if (!pwallet) { - strErrorRet ="Couldn't get wallet pointer"; - return false; - } - scriptDenom = keyHolderStorage.AddKey(pwallet.get()); + scriptDenom = keyHolderStorage.AddKey(m_wallet.get()); } vecPSInOutPairsRet.emplace_back(entry, CTxOut(nDenomAmount, scriptDenom)); // step is complete @@ -1418,7 +1416,7 @@ bool CCoinJoinClientSession::PrepareDenominate(int nMinRounds, int nMaxRounds, s } for (const auto& [txDsIn, txDsOut] : vecPSInOutPairsRet) { - m_wallet.LockCoin(txDsIn.prevout); + m_wallet->LockCoin(txDsIn.prevout); vecOutPointLocked.push_back(txDsIn.prevout); } @@ -1430,13 +1428,13 @@ bool CCoinJoinClientSession::MakeCollateralAmounts() { if (!CCoinJoinClientOptions::IsEnabled()) return false; - LOCK(m_wallet.cs_wallet); + LOCK(m_wallet->cs_wallet); // NOTE: We do not allow txes larger than 100 kB, so we have to limit number of inputs here. // We still want to consume a lot of inputs to avoid creating only smaller denoms though. // Knowing that each CTxIn is at least 148 B big, 400 inputs should take 400 x ~148 B = ~60 kB. // This still leaves more than enough room for another data of typical MakeCollateralAmounts tx. - std::vector vecTally = m_wallet.SelectCoinsGroupedByAddresses(false, false, true, 400); + std::vector vecTally = m_wallet->SelectCoinsGroupedByAddresses(false, false, true, 400); if (vecTally.empty()) { WalletCJLogPrint(m_wallet, "CCoinJoinClientSession::MakeCollateralAmounts -- SelectCoinsGroupedByAddresses can't find any inputs!\n"); return false; @@ -1448,14 +1446,14 @@ bool CCoinJoinClientSession::MakeCollateralAmounts() }); // First try to use only non-denominated funds - if (ranges::any_of(vecTally, [&](const auto& item) EXCLUSIVE_LOCKS_REQUIRED(m_wallet.cs_wallet) { + if (ranges::any_of(vecTally, [&](const auto& item) EXCLUSIVE_LOCKS_REQUIRED(m_wallet->cs_wallet) { return MakeCollateralAmounts(item, false); })) { return true; } // There should be at least some denominated funds we should be able to break in pieces to continue mixing - if (ranges::any_of(vecTally, [&](const auto& item) EXCLUSIVE_LOCKS_REQUIRED(m_wallet.cs_wallet) { + if (ranges::any_of(vecTally, [&](const auto& item) EXCLUSIVE_LOCKS_REQUIRED(m_wallet->cs_wallet) { return MakeCollateralAmounts(item, true); })) { return true; @@ -1470,7 +1468,7 @@ bool CCoinJoinClientSession::MakeCollateralAmounts() bool CCoinJoinClientSession::MakeCollateralAmounts(const CompactTallyItem& tallyItem, bool fTryDenominated) { // TODO: consider refactoring to remove duplicated code with CCoinJoinClientSession::CreateDenominated - AssertLockHeld(m_wallet.cs_wallet); + AssertLockHeld(m_wallet->cs_wallet); if (!CCoinJoinClientOptions::IsEnabled()) return false; @@ -1484,14 +1482,7 @@ bool CCoinJoinClientSession::MakeCollateralAmounts(const CompactTallyItem& tally return false; } - const auto pwallet = GetWallet(m_wallet.GetName()); - - if (!pwallet) { - WalletCJLogPrint(m_wallet, "CCoinJoinClientSession::%s -- Couldn't get wallet pointer\n", __func__); - return false; - } - - CTransactionBuilder txBuilder(pwallet, tallyItem); + CTransactionBuilder txBuilder(m_wallet, tallyItem); WalletCJLogPrint(m_wallet, "CCoinJoinClientSession::%s -- Start %s\n", __func__, txBuilder.ToString()); @@ -1562,13 +1553,13 @@ bool CCoinJoinClientSession::MakeCollateralAmounts(const CompactTallyItem& tally bool CCoinJoinClientSession::CreateCollateralTransaction(CMutableTransaction& txCollateral, std::string& strReason) { - AssertLockHeld(m_wallet.cs_wallet); + AssertLockHeld(m_wallet->cs_wallet); std::vector vCoins; CCoinControl coin_control; coin_control.nCoinType = CoinType::ONLY_COINJOIN_COLLATERAL; - m_wallet.AvailableCoins(vCoins, &coin_control); + m_wallet->AvailableCoins(vCoins, &coin_control); if (vCoins.empty()) { strReason = strprintf("%s requires a collateral transaction and could not locate an acceptable input!", gCoinJoinName); @@ -1589,7 +1580,7 @@ bool CCoinJoinClientSession::CreateCollateralTransaction(CMutableTransaction& tx // make our change address CScript scriptChange; CTxDestination dest; - ReserveDestination reserveDest(&m_wallet); + ReserveDestination reserveDest(m_wallet.get()); bool success = reserveDest.GetReservedDestination(dest, true); assert(success); // should never fail, as we just unlocked scriptChange = GetScriptForDestination(dest); @@ -1601,7 +1592,7 @@ bool CCoinJoinClientSession::CreateCollateralTransaction(CMutableTransaction& tx txCollateral.vout.emplace_back(0, CScript() << OP_RETURN); } - if (!m_wallet.SignTransaction(txCollateral)) { + if (!m_wallet->SignTransaction(txCollateral)) { strReason = "Unable to sign collateral transaction!"; return false; } @@ -1614,13 +1605,13 @@ bool CCoinJoinClientSession::CreateDenominated(CAmount nBalanceToDenominate) { if (!CCoinJoinClientOptions::IsEnabled()) return false; - LOCK(m_wallet.cs_wallet); + LOCK(m_wallet->cs_wallet); // NOTE: We do not allow txes larger than 100 kB, so we have to limit number of inputs here. // We still want to consume a lot of inputs to avoid creating only smaller denoms though. // Knowing that each CTxIn is at least 148 B big, 400 inputs should take 400 x ~148 B = ~60 kB. // This still leaves more than enough room for another data of typical CreateDenominated tx. - std::vector vecTally = m_wallet.SelectCoinsGroupedByAddresses(true, true, true, 400); + std::vector vecTally = m_wallet->SelectCoinsGroupedByAddresses(true, true, true, 400); if (vecTally.empty()) { WalletCJLogPrint(m_wallet, "CCoinJoinClientSession::CreateDenominated -- SelectCoinsGroupedByAddresses can't find any inputs!\n"); return false; @@ -1631,7 +1622,7 @@ bool CCoinJoinClientSession::CreateDenominated(CAmount nBalanceToDenominate) return a.nAmount > b.nAmount; }); - bool fCreateMixingCollaterals = !m_wallet.HasCollateralInputs(); + bool fCreateMixingCollaterals = !m_wallet->HasCollateralInputs(); for (const auto& item : vecTally) { if (!CreateDenominated(nBalanceToDenominate, item, fCreateMixingCollaterals)) continue; @@ -1645,7 +1636,7 @@ bool CCoinJoinClientSession::CreateDenominated(CAmount nBalanceToDenominate) // Create denominations bool CCoinJoinClientSession::CreateDenominated(CAmount nBalanceToDenominate, const CompactTallyItem& tallyItem, bool fCreateMixingCollaterals) { - AssertLockHeld(m_wallet.cs_wallet); + AssertLockHeld(m_wallet->cs_wallet); if (!CCoinJoinClientOptions::IsEnabled()) return false; @@ -1654,14 +1645,7 @@ bool CCoinJoinClientSession::CreateDenominated(CAmount nBalanceToDenominate, con return false; } - const auto pwallet = GetWallet(m_wallet.GetName()); - - if (!pwallet) { - WalletCJLogPrint(m_wallet, "CCoinJoinClientSession::%s -- Couldn't get wallet pointer\n", __func__); - return false; - } - - CTransactionBuilder txBuilder(pwallet, tallyItem); + CTransactionBuilder txBuilder(m_wallet, tallyItem); WalletCJLogPrint(m_wallet, "CCoinJoinClientSession::%s -- Start %s\n", __func__, txBuilder.ToString()); @@ -1679,7 +1663,7 @@ bool CCoinJoinClientSession::CreateDenominated(CAmount nBalanceToDenominate, con std::map mapDenomCount; for (auto nDenomValue : denoms) { - mapDenomCount.insert(std::pair(nDenomValue, m_wallet.CountInputsWithAmount(nDenomValue))); + mapDenomCount.insert(std::pair(nDenomValue, m_wallet->CountInputsWithAmount(nDenomValue))); } // Will generate outputs for the createdenoms up to coinjoinmaxdenoms per denom @@ -1922,11 +1906,11 @@ void CCoinJoinClientManager::GetJsonInfo(UniValue& obj) const obj.pushKV("sessions", arrSessions); } -void CoinJoinWalletManager::Add(CWallet& wallet) +void CoinJoinWalletManager::Add(const std::shared_ptr& wallet) { { LOCK(cs_wallet_manager_map); - m_wallet_manager_map.try_emplace(wallet.GetName(), + m_wallet_manager_map.try_emplace(wallet->GetName(), std::make_unique(wallet, *this, m_dmnman, m_mn_metaman, m_mn_sync, m_queueman, m_is_masternode)); } diff --git a/src/coinjoin/client.h b/src/coinjoin/client.h index 17239b9a71b7d..0dd1cccb906b7 100644 --- a/src/coinjoin/client.h +++ b/src/coinjoin/client.h @@ -96,7 +96,7 @@ class CoinJoinWalletManager { } } - void Add(CWallet& wallet); + void Add(const std::shared_ptr& wallet); void DoMaintenance(); void Remove(const std::string& name); @@ -138,7 +138,7 @@ class CoinJoinWalletManager { class CCoinJoinClientSession : public CCoinJoinBaseSession { private: - CWallet& m_wallet; + const std::shared_ptr m_wallet; CoinJoinWalletManager& m_walletman; CCoinJoinClientManager& m_clientman; CDeterministicMNManager& m_dmnman; @@ -163,15 +163,15 @@ class CCoinJoinClientSession : public CCoinJoinBaseSession /// Create denominations bool CreateDenominated(CAmount nBalanceToDenominate); bool CreateDenominated(CAmount nBalanceToDenominate, const CompactTallyItem& tallyItem, bool fCreateMixingCollaterals) - EXCLUSIVE_LOCKS_REQUIRED(m_wallet.cs_wallet); + EXCLUSIVE_LOCKS_REQUIRED(m_wallet->cs_wallet); /// Split up large inputs or make fee sized inputs bool MakeCollateralAmounts(); bool MakeCollateralAmounts(const CompactTallyItem& tallyItem, bool fTryDenominated) - EXCLUSIVE_LOCKS_REQUIRED(m_wallet.cs_wallet); + EXCLUSIVE_LOCKS_REQUIRED(m_wallet->cs_wallet); bool CreateCollateralTransaction(CMutableTransaction& txCollateral, std::string& strReason) - EXCLUSIVE_LOCKS_REQUIRED(m_wallet.cs_wallet); + EXCLUSIVE_LOCKS_REQUIRED(m_wallet->cs_wallet); bool JoinExistingQueue(CAmount nBalanceNeedsAnonymized, CConnman& connman); bool StartNewQueue(CAmount nBalanceNeedsAnonymized, CConnman& connman); @@ -181,7 +181,7 @@ class CCoinJoinClientSession : public CCoinJoinBaseSession /// step 1: prepare denominated inputs and outputs bool PrepareDenominate(int nMinRounds, int nMaxRounds, std::string& strErrorRet, const std::vector& vecTxDSIn, std::vector>& vecPSInOutPairsRet, bool fDryRun = false) - EXCLUSIVE_LOCKS_REQUIRED(m_wallet.cs_wallet); + EXCLUSIVE_LOCKS_REQUIRED(m_wallet->cs_wallet); /// step 2: send denominated inputs and outputs prepared in step 1 bool SendDenominate(const std::vector >& vecPSInOutPairsIn, CConnman& connman) EXCLUSIVE_LOCKS_REQUIRED(!cs_coinjoin); @@ -200,7 +200,7 @@ class CCoinJoinClientSession : public CCoinJoinBaseSession void SetNull() override EXCLUSIVE_LOCKS_REQUIRED(cs_coinjoin); public: - explicit CCoinJoinClientSession(CWallet& wallet, CoinJoinWalletManager& walletman, + explicit CCoinJoinClientSession(const std::shared_ptr& wallet, CoinJoinWalletManager& walletman, CCoinJoinClientManager& clientman, CDeterministicMNManager& dmnman, CMasternodeMetaMan& mn_metaman, const CMasternodeSync& mn_sync, const std::unique_ptr& queueman, bool is_masternode); @@ -267,7 +267,7 @@ class CCoinJoinClientQueueManager : public CCoinJoinBaseManager class CCoinJoinClientManager { private: - CWallet& m_wallet; + const std::shared_ptr m_wallet; CoinJoinWalletManager& m_walletman; CDeterministicMNManager& m_dmnman; CMasternodeMetaMan& m_mn_metaman; @@ -306,11 +306,19 @@ class CCoinJoinClientManager CCoinJoinClientManager(CCoinJoinClientManager const&) = delete; CCoinJoinClientManager& operator=(CCoinJoinClientManager const&) = delete; - explicit CCoinJoinClientManager(CWallet& wallet, CoinJoinWalletManager& walletman, CDeterministicMNManager& dmnman, - CMasternodeMetaMan& mn_metaman, const CMasternodeSync& mn_sync, + explicit CCoinJoinClientManager(const std::shared_ptr& wallet, CoinJoinWalletManager& walletman, + CDeterministicMNManager& dmnman, CMasternodeMetaMan& mn_metaman, + const CMasternodeSync& mn_sync, const std::unique_ptr& queueman, bool is_masternode) : - m_wallet(wallet), m_walletman(walletman), m_dmnman(dmnman), m_mn_metaman(mn_metaman), m_mn_sync(mn_sync), m_queueman(queueman), - m_is_masternode{is_masternode} {} + m_wallet(wallet), + m_walletman(walletman), + m_dmnman(dmnman), + m_mn_metaman(mn_metaman), + m_mn_sync(mn_sync), + m_queueman(queueman), + m_is_masternode{is_masternode} + { + } void ProcessMessage(CNode& peer, CChainState& active_chainstate, CConnman& connman, const CTxMemPool& mempool, std::string_view msg_type, CDataStream& vRecv) EXCLUSIVE_LOCKS_REQUIRED(!cs_deqsessions); diff --git a/src/coinjoin/interfaces.cpp b/src/coinjoin/interfaces.cpp index 78a97194319ba..6c40a3b6d3e07 100644 --- a/src/coinjoin/interfaces.cpp +++ b/src/coinjoin/interfaces.cpp @@ -67,10 +67,7 @@ class CoinJoinLoaderImpl : public interfaces::CoinJoin::Loader explicit CoinJoinLoaderImpl(CoinJoinWalletManager& walletman) : m_walletman(walletman) {} - void AddWallet(CWallet& wallet) override - { - m_walletman.Add(wallet); - } + void AddWallet(const std::shared_ptr& wallet) override { m_walletman.Add(wallet); } void RemoveWallet(const std::string& name) override { m_walletman.Remove(name); diff --git a/src/coinjoin/util.cpp b/src/coinjoin/util.cpp index d936baf354661..e188972b68980 100644 --- a/src/coinjoin/util.cpp +++ b/src/coinjoin/util.cpp @@ -87,14 +87,15 @@ void CKeyHolderStorage::ReturnAll() } } -CTransactionBuilderOutput::CTransactionBuilderOutput(CTransactionBuilder* pTxBuilderIn, std::shared_ptr pwalletIn, CAmount nAmountIn) : +CTransactionBuilderOutput::CTransactionBuilderOutput(CTransactionBuilder* pTxBuilderIn, + const std::shared_ptr& wallet, CAmount nAmountIn) : pTxBuilder(pTxBuilderIn), - dest(pwalletIn.get()), + dest(wallet.get()), nAmount(nAmountIn) { assert(pTxBuilder); CTxDestination txdest; - LOCK(pwalletIn->cs_wallet); + LOCK(wallet->cs_wallet); dest.GetReservedDestination(txdest, false); script = ::GetScriptForDestination(txdest); } @@ -108,15 +109,15 @@ bool CTransactionBuilderOutput::UpdateAmount(const CAmount nNewAmount) return true; } -CTransactionBuilder::CTransactionBuilder(std::shared_ptr pwalletIn, const CompactTallyItem& tallyItemIn) : - pwallet(pwalletIn), - dummyReserveDestination(pwalletIn.get()), +CTransactionBuilder::CTransactionBuilder(const std::shared_ptr& wallet, const CompactTallyItem& tallyItemIn) : + m_wallet(wallet), + dummyReserveDestination(wallet.get()), tallyItem(tallyItemIn) { // Generate a feerate which will be used to consider if the remainder is dust and will go into fees or not - coinControl.m_discard_feerate = ::GetDiscardRate(*pwallet); + coinControl.m_discard_feerate = ::GetDiscardRate(*m_wallet); // Generate a feerate which will be used by calculations of this class and also by CWallet::CreateTransaction - coinControl.m_feerate = std::max(GetRequiredFeeRate(*pwallet), pwallet->m_pay_tx_fee); + coinControl.m_feerate = std::max(GetRequiredFeeRate(*m_wallet), m_wallet->m_pay_tx_fee); // Change always goes back to origin coinControl.destChange = tallyItemIn.txdest; // Only allow tallyItems inputs for tx creation @@ -131,16 +132,16 @@ CTransactionBuilder::CTransactionBuilder(std::shared_ptr pwalletIn, con // Get a comparable dummy scriptPubKey, avoid writing/flushing to the actual wallet db CScript dummyScript; { - LOCK(pwallet->cs_wallet); - WalletBatch dummyBatch(pwallet->GetDatabase(), false); + LOCK(m_wallet->cs_wallet); + WalletBatch dummyBatch(m_wallet->GetDatabase(), false); dummyBatch.TxnBegin(); CKey secret; - secret.MakeNewKey(pwallet->CanSupportFeature(FEATURE_COMPRPUBKEY)); + secret.MakeNewKey(m_wallet->CanSupportFeature(FEATURE_COMPRPUBKEY)); CPubKey dummyPubkey = secret.GetPubKey(); dummyBatch.TxnAbort(); dummyScript = ::GetScriptForDestination(PKHash(dummyPubkey)); // Calculate required bytes for the dummy signed tx with tallyItem's inputs only - nBytesBase = CalculateMaximumSignedTxSize(CTransaction(dummyTx), pwallet.get(), false); + nBytesBase = CalculateMaximumSignedTxSize(CTransaction(dummyTx), m_wallet.get(), false); } // Calculate the output size nBytesOutput = ::GetSerializeSize(CTxOut(0, dummyScript), PROTOCOL_VERSION); @@ -204,7 +205,7 @@ CTransactionBuilderOutput* CTransactionBuilder::AddOutput(CAmount nAmountOutput) { if (CouldAddOutput(nAmountOutput)) { LOCK(cs_outputs); - vecOutputs.push_back(std::make_unique(this, pwallet, nAmountOutput)); + vecOutputs.push_back(std::make_unique(this, m_wallet, nAmountOutput)); return vecOutputs.back().get(); } return nullptr; @@ -233,12 +234,12 @@ CAmount CTransactionBuilder::GetAmountUsed() const CAmount CTransactionBuilder::GetFee(unsigned int nBytes) const { CAmount nFeeCalc = coinControl.m_feerate->GetFee(nBytes); - CAmount nRequiredFee = GetRequiredFee(*pwallet, nBytes); + CAmount nRequiredFee = GetRequiredFee(*m_wallet, nBytes); if (nRequiredFee > nFeeCalc) { nFeeCalc = nRequiredFee; } - if (nFeeCalc > pwallet->m_default_max_tx_fee) { - nFeeCalc = pwallet->m_default_max_tx_fee; + if (nFeeCalc > m_wallet->m_default_max_tx_fee) { + nFeeCalc = m_wallet->m_default_max_tx_fee; } return nFeeCalc; } @@ -273,9 +274,9 @@ bool CTransactionBuilder::Commit(bilingual_str& strResult) CTransactionRef tx; { - LOCK2(pwallet->cs_wallet, cs_main); + LOCK2(m_wallet->cs_wallet, cs_main); FeeCalculation fee_calc_out; - if (!pwallet->CreateTransaction(vecSend, tx, nFeeRet, nChangePosRet, strResult, coinControl, fee_calc_out)) { + if (!m_wallet->CreateTransaction(vecSend, tx, nFeeRet, nChangePosRet, strResult, coinControl, fee_calc_out)) { return false; } } @@ -312,8 +313,8 @@ bool CTransactionBuilder::Commit(bilingual_str& strResult) } { - LOCK2(pwallet->cs_wallet, cs_main); - pwallet->CommitTransaction(tx, {}, {}); + LOCK2(m_wallet->cs_wallet, cs_main); + m_wallet->CommitTransaction(tx, {}, {}); } fKeepKeys = true; diff --git a/src/coinjoin/util.h b/src/coinjoin/util.h index 672d27432a1b2..f4e75aabc0a15 100644 --- a/src/coinjoin/util.h +++ b/src/coinjoin/util.h @@ -54,7 +54,7 @@ class CTransactionBuilderOutput CScript script; public: - CTransactionBuilderOutput(CTransactionBuilder* pTxBuilderIn, std::shared_ptr pwalletIn, CAmount nAmountIn); + CTransactionBuilderOutput(CTransactionBuilder* pTxBuilderIn, const std::shared_ptr& wallet, CAmount nAmountIn); CTransactionBuilderOutput(CTransactionBuilderOutput&&) = delete; CTransactionBuilderOutput& operator=(CTransactionBuilderOutput&&) = delete; /// Get the scriptPubKey of this output @@ -77,7 +77,7 @@ class CTransactionBuilderOutput class CTransactionBuilder { /// Wallet the transaction will be build for - std::shared_ptr pwallet; + const std::shared_ptr& m_wallet; /// See CTransactionBuilder() for initialization CCoinControl coinControl; /// Dummy since we anyway use tallyItem's destination as change destination in coincontrol. @@ -100,7 +100,7 @@ class CTransactionBuilder friend class CTransactionBuilderOutput; public: - CTransactionBuilder(std::shared_ptr pwalletIn, const CompactTallyItem& tallyItemIn); + CTransactionBuilder(const std::shared_ptr& wallet, const CompactTallyItem& tallyItemIn); ~CTransactionBuilder(); /// Check it would be possible to add a single output with the amount nAmount. Returns true if its possible and false if not. bool CouldAddOutput(CAmount nAmountOutput) const EXCLUSIVE_LOCKS_REQUIRED(!cs_outputs); diff --git a/src/interfaces/coinjoin.h b/src/interfaces/coinjoin.h index 345780cde0daf..7f881bf07f5c3 100644 --- a/src/interfaces/coinjoin.h +++ b/src/interfaces/coinjoin.h @@ -33,7 +33,7 @@ class Loader public: virtual ~Loader() {} //! Add new wallet to CoinJoin client manager - virtual void AddWallet(CWallet&) = 0; + virtual void AddWallet(const std::shared_ptr&) = 0; //! Remove wallet from CoinJoin client manager virtual void RemoveWallet(const std::string&) = 0; virtual void FlushWallet(const std::string&) = 0; diff --git a/src/wallet/test/wallet_tests.cpp b/src/wallet/test/wallet_tests.cpp index e7aa85c6d49fd..edbebf46bcb05 100644 --- a/src/wallet/test/wallet_tests.cpp +++ b/src/wallet/test/wallet_tests.cpp @@ -59,6 +59,10 @@ static std::shared_ptr TestLoadWallet(interfaces::Chain* chain, interfa std::vector warnings; auto database = MakeWalletDatabase("", options, status, error); auto wallet = CWallet::Create(chain, coinjoin_loader, "", std::move(database), options.create_flags, error, warnings); + if (coinjoin_loader) { + // TODO: see CreateWalletWithoutChain + AddWallet(wallet); + } if (chain) { wallet->postInitProcess(); } diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index 0bc08a4c3ea3f..8de2fcde8ed26 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -125,7 +125,7 @@ bool AddWallet(const std::shared_ptr& wallet) } wallet->ConnectScriptPubKeyManNotifiers(); wallet->AutoLockMasternodeCollaterals(); - wallet->coinjoin_loader().AddWallet(*wallet); + wallet->coinjoin_loader().AddWallet(wallet); wallet->NotifyCanGetAddressesChanged(); return true; } @@ -1432,7 +1432,7 @@ int CWallet::GetRealOutpointCoinJoinRounds(const COutPoint& outpoint, int nRound if (wtx == nullptr || wtx->tx == nullptr) { // no such tx in this wallet *nRoundsRef = -1; - WalletCJLogPrint((*this), "%s FAILED %-70s %3d\n", __func__, outpoint.ToStringShort(), -1); + WalletCJLogPrint(this, "%s FAILED %-70s %3d\n", __func__, outpoint.ToStringShort(), -1); return *nRoundsRef; } @@ -1440,7 +1440,7 @@ int CWallet::GetRealOutpointCoinJoinRounds(const COutPoint& outpoint, int nRound if (outpoint.n >= wtx->tx->vout.size()) { // should never actually hit this *nRoundsRef = -4; - WalletCJLogPrint((*this), "%s FAILED %-70s %3d\n", __func__, outpoint.ToStringShort(), -4); + WalletCJLogPrint(this, "%s FAILED %-70s %3d\n", __func__, outpoint.ToStringShort(), -4); return *nRoundsRef; } @@ -1448,14 +1448,14 @@ int CWallet::GetRealOutpointCoinJoinRounds(const COutPoint& outpoint, int nRound if (CoinJoin::IsCollateralAmount(txOutRef->nValue)) { *nRoundsRef = -3; - WalletCJLogPrint((*this), "%s UPDATED %-70s %3d\n", __func__, outpoint.ToStringShort(), *nRoundsRef); + WalletCJLogPrint(this, "%s UPDATED %-70s %3d\n", __func__, outpoint.ToStringShort(), *nRoundsRef); return *nRoundsRef; } // make sure the final output is non-denominate if (!CoinJoin::IsDenominatedAmount(txOutRef->nValue)) { //NOT DENOM *nRoundsRef = -2; - WalletCJLogPrint((*this), "%s UPDATED %-70s %3d\n", __func__, outpoint.ToStringShort(), *nRoundsRef); + WalletCJLogPrint(this, "%s UPDATED %-70s %3d\n", __func__, outpoint.ToStringShort(), *nRoundsRef); return *nRoundsRef; } @@ -1463,7 +1463,7 @@ int CWallet::GetRealOutpointCoinJoinRounds(const COutPoint& outpoint, int nRound if (!CoinJoin::IsDenominatedAmount(out.nValue)) { // this one is denominated but there is another non-denominated output found in the same tx *nRoundsRef = 0; - WalletCJLogPrint((*this), "%s UPDATED %-70s %3d\n", __func__, outpoint.ToStringShort(), *nRoundsRef); + WalletCJLogPrint(this, "%s UPDATED %-70s %3d\n", __func__, outpoint.ToStringShort(), *nRoundsRef); return *nRoundsRef; } } @@ -1471,7 +1471,7 @@ int CWallet::GetRealOutpointCoinJoinRounds(const COutPoint& outpoint, int nRound // make sure we spent all of it with 0 fee, reset to 0 rounds otherwise if (wtx->GetDebit(ISMINE_SPENDABLE) != wtx->GetCredit(ISMINE_SPENDABLE)) { *nRoundsRef = 0; - WalletCJLogPrint((*this), "%s UPDATED %-70s %3d\n", __func__, outpoint.ToStringShort(), *nRoundsRef); + WalletCJLogPrint(this, "%s UPDATED %-70s %3d\n", __func__, outpoint.ToStringShort(), *nRoundsRef); return *nRoundsRef; } @@ -1491,7 +1491,7 @@ int CWallet::GetRealOutpointCoinJoinRounds(const COutPoint& outpoint, int nRound *nRoundsRef = fDenomFound ? (nShortest >= nRoundsMax - 1 ? nRoundsMax : nShortest + 1) // good, we a +1 to the shortest one but only nRoundsMax rounds max allowed : 0; // too bad, we are the fist one in that chain - WalletCJLogPrint((*this), "%s UPDATED %-70s %3d\n", __func__, outpoint.ToStringShort(), *nRoundsRef); + WalletCJLogPrint(this, "%s UPDATED %-70s %3d\n", __func__, outpoint.ToStringShort(), *nRoundsRef); return *nRoundsRef; } @@ -3253,7 +3253,7 @@ bool CWallet::SelectTxDSInsByDenomination(int nDenom, CAmount nValueMax, std::ve CCoinControl coin_control; coin_control.nCoinType = CoinType::ONLY_READY_TO_MIX; AvailableCoins(vCoins, &coin_control); - WalletCJLogPrint((*this), "CWallet::%s -- vCoins.size(): %d\n", __func__, vCoins.size()); + WalletCJLogPrint(this, "CWallet::%s -- vCoins.size(): %d\n", __func__, vCoins.size()); Shuffle(vCoins.rbegin(), vCoins.rend(), FastRandomContext()); @@ -3271,11 +3271,11 @@ bool CWallet::SelectTxDSInsByDenomination(int nDenom, CAmount nValueMax, std::ve nValueTotal += nValue; vecTxDSInRet.emplace_back(CTxDSIn(txin, scriptPubKey, nRounds)); setRecentTxIds.emplace(txHash); - WalletCJLogPrint((*this), "CWallet::%s -- hash: %s, nValue: %d.%08d\n", + WalletCJLogPrint(this, "CWallet::%s -- hash: %s, nValue: %d.%08d\n", __func__, txHash.ToString(), nValue / COIN, nValue % COIN); } - WalletCJLogPrint((*this), "CWallet::%s -- setRecentTxIds.size(): %d\n", __func__, setRecentTxIds.size()); + WalletCJLogPrint(this, "CWallet::%s -- setRecentTxIds.size(): %d\n", __func__, setRecentTxIds.size()); return nValueTotal > 0; } @@ -4980,7 +4980,7 @@ std::shared_ptr CWallet::Create(interfaces::Chain* chain, interfaces::C } if (coinjoin_loader) { - coinjoin_loader->AddWallet(*walletInstance); + coinjoin_loader->AddWallet(walletInstance); } { diff --git a/src/wallet/wallet.h b/src/wallet/wallet.h index dd0238595b064..9c27b456937d9 100644 --- a/src/wallet/wallet.h +++ b/src/wallet/wallet.h @@ -153,7 +153,7 @@ extern const std::map WALLET_FLAG_CAVEATS; #define WalletCJLogPrint(wallet, ...) \ do { \ if (LogAcceptCategory(BCLog::COINJOIN)) { \ - wallet.WalletLogPrintf(__VA_ARGS__); \ + wallet->WalletLogPrintf(__VA_ARGS__); \ } \ } while (0) From 395447bf30673cf4bd9cfe90c4834871ab44b2f3 Mon Sep 17 00:00:00 2001 From: pasta Date: Wed, 4 Dec 2024 11:06:06 -0600 Subject: [PATCH 15/24] Merge #6451: depends: update 'src/dashbls' to dashpay/bls-signatures@7e747e8a as 62fa6652 f25a93647b10d838a0722de4dc74304ce5dbe646 build: stop tracking cmake dependency relic_conf.h.in (Kittywhiskers Van Gogh) 62fa66524c5ec4a5a005285a05b7a3314a523a16 Squashed 'src/dashbls/' changes from 4e070243ae..7e747e8a07 (Kittywhiskers Van Gogh) b1b3840ac540ae5980cbb4258a4b44d75ee27d75 revert: stop tracking cmake dependency relic_conf.h.in (Kittywhiskers Van Gogh) Pull request description: ## Additional Information * Closes https://github.com/dashpay/dash/issues/6343 * Includes [bls-signatures#102](https://github.com/dashpay/bls-signatures/pull/102) and [bls-signatures#104](https://github.com/dashpay/bls-signatures/pull/104) ## Breaking Changes None expected. ## Checklist: - [x] I have performed a self-review of my own code **(note: N/A)** - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)** - [x] I have added or updated relevant unit/integration/functional/e2e tests **(note: N/A)** - [x] I have made corresponding changes to the documentation **(note: N/A)** - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: PastaPastaPasta: utACK f25a93647b10d838a0722de4dc74304ce5dbe646 UdjinM6: utACK f25a93647b10d838a0722de4dc74304ce5dbe646 Tree-SHA512: 394a02a50f57538e9d12f836fd1ea1598d8a20e2d0079fcb44bb317a42a64a638a1ef906222f2d3bab06d2c0b8cfac43c6e0055d87fbdb86abe680c53ecd6b7a --- src/dashbls/.github/workflows/build-binds.yml | 4 +- src/dashbls/configure.ac | 135 +++++++++++------- 2 files changed, 85 insertions(+), 54 deletions(-) diff --git a/src/dashbls/.github/workflows/build-binds.yml b/src/dashbls/.github/workflows/build-binds.yml index f57acbd7e20f8..6fc729109d74c 100644 --- a/src/dashbls/.github/workflows/build-binds.yml +++ b/src/dashbls/.github/workflows/build-binds.yml @@ -23,8 +23,8 @@ jobs: fail-fast: false matrix: os: [macos-latest, ubuntu-latest] - golang: [ '1.17' ] - python: ['3.7', '3.8', '3.9', '3.10', '3.11'] + golang: [ '1.22' ] + python: ['3.9', '3.10', '3.11', '3.12'] steps: - name: Checkout code diff --git a/src/dashbls/configure.ac b/src/dashbls/configure.ac index e60fca8fc1991..df411ced0c98c 100644 --- a/src/dashbls/configure.ac +++ b/src/dashbls/configure.ac @@ -1,5 +1,5 @@ AC_PREREQ([2.60]) -AC_INIT([libdashbls],[1.3.3]) +AC_INIT([libdashbls],[1.3.4]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_MACRO_DIR([build-aux/m4]) @@ -100,7 +100,7 @@ dnl warning about something unrelated, for example about some path issue. If tha dnl -Werror cannot be used because all of those warnings would be turned into errors. AX_CHECK_COMPILE_FLAG([-Werror], [FLAG_WERROR="-Werror"], [FLAG_WERROR=""]) -if [[[ "$use_debug" == "yes" || "$use_optimizations" == "no" ]]]; then +if test x"$use_debug" = x"yes" -o x"$use_optimizations" = x"no"; then dnl Clear default -g -O2 flags if test x"$CFLAGS_overridden" = x"no"; then CFLAGS="" @@ -112,7 +112,7 @@ if [[[ "$use_debug" == "yes" || "$use_optimizations" == "no" ]]]; then dnl Disable optimizations AX_CHECK_COMPILE_FLAG([-O0], [[DEBUG_FLAGS="$DEBUG_FLAGS -O0"]], [], [[$FLAG_WERROR]]) - if [[[ "$use_debug" == "yes" ]]]; then + if test x"$use_debug" = x"yes"; then dnl Prefer -g3, fall back to -g if that is unavailable. AX_CHECK_COMPILE_FLAG( [-g3], @@ -220,7 +220,11 @@ case $host in GMP_LDFLAGS="-L$gmp_prefix/lib" fi fi - ;; + ;; + *freebsd*) + GMP_CPPFLAGS="-I/usr/local/include" + GMP_LDFLAGS="-L/usr/local/lib" + ;; esac if test x"$want_backend" = x"auto"; then @@ -432,44 +436,74 @@ fi use_pkgconfig=yes -if [[[ "$host_cpu" == x86_64 && "$use_optimizations" == "yes" ]]]; then - dnl Support for AMD64 (also known as x86_64 on some platforms) processors - CPU_ARCH="x64" - AC_DEFINE([ARCH], [X64], [Architecture.]) - AC_DEFINE([WSIZE], [64], [Size of word in this architecture.]) -elif [[[ "$host_cpu" == aarch* && "$use_optimizations" == "yes" ]]]; then - dnl Support for 64-bit ARM processors - dnl Relic doesn't support aarch64 yet, set CPU_ARCH to none and ARCH to RELIC_NONE. - CPU_ARCH="none" - AC_DEFINE([ARCH], [RELIC_NONE], [Architecture.]) - AC_DEFINE([WSIZE], [64], [Size of word in this architecture.]) -elif [[[ "$host_cpu" == i?86 && "$use_optimizations" == "yes" ]]]; then - dnl Support for Intel x86 processors - CPU_ARCH="x86" - AC_DEFINE([ARCH], [X86], [Architecture.]) - AC_DEFINE([WSIZE], [32], [Size of word in this architecture.]) -elif [[[ "$host_cpu" == arm* && "$use_optimizations" == "yes" ]]]; then - dnl Support for 32-bit native ARM processors - CPU_ARCH="arm" - AC_DEFINE([ARCH], [ARM], [Architecture.]) - AC_DEFINE([WSIZE], [32], [Size of word in this architecture.]) -elif [[[ "$host_cpu" == *64* ]]]; then - dnl Support for an undefined 64-bit architecture - CPU_ARCH="none" - AC_DEFINE([ARCH], [RELIC_NONE], [Architecture.]) - AC_DEFINE([WSIZE], [64], [Size of word in this architecture.]) -elif [[[ "$host_cpu" == *32* || "$host_cpu" == arm* || "$host_cpu" == i?86 ]]]; then - dnl Support for an undefined 32-bit architecture - CPU_ARCH="none" - AC_DEFINE([ARCH], [RELIC_NONE], [Architecture.]) - AC_DEFINE([WSIZE], [32], [Size of word in this architecture.]) +if test x"$use_optimizations" = x"yes"; then + case $host_cpu in + amd64 | x86_64) + dnl Support for AMD64 (also known as x86_64 on some platforms) processors + CPU_ARCH="x64" + AC_DEFINE([ARCH], [X64], [Architecture.]) + AC_DEFINE([WSIZE], [64], [Size of word in this architecture.]) + ;; + aarch*) + dnl Support for 64-bit ARM processors + dnl Relic does not support aarch64 yet, set CPU_ARCH to none and ARCH to RELIC_NONE. + CPU_ARCH="none" + AC_DEFINE([ARCH], [RELIC_NONE], [Architecture.]) + AC_DEFINE([WSIZE], [64], [Size of word in this architecture.]) + ;; + i?86) + dnl Support for Intel x86 processors + CPU_ARCH="x86" + AC_DEFINE([ARCH], [X86], [Architecture.]) + AC_DEFINE([WSIZE], [32], [Size of word in this architecture.]) + ;; + arm*) + dnl Support for 32-bit native ARM processors + CPU_ARCH="arm" + AC_DEFINE([ARCH], [ARM], [Architecture.]) + AC_DEFINE([WSIZE], [32], [Size of word in this architecture.]) + ;; + *64*) + dnl Support for an undefined 64-bit architecture + CPU_ARCH="none" + AC_DEFINE([ARCH], [RELIC_NONE], [Architecture.]) + AC_DEFINE([WSIZE], [64], [Size of word in this architecture.]) + ;; + *32*) + dnl Support for an undefined 32-bit architecture + CPU_ARCH="none" + AC_DEFINE([ARCH], [RELIC_NONE], [Architecture.]) + AC_DEFINE([WSIZE], [32], [Size of word in this architecture.]) + ;; + *) + AC_MSG_ERROR([Unable to determine host architecture, may not be supported!]) + ;; + esac else - AC_MSG_ERROR([Unable to determine host architecture, may not be supported!]) + case $host_cpu in + *64*) + dnl Support for an undefined 64-bit architecture + CPU_ARCH="none" + AC_DEFINE([ARCH], [RELIC_NONE], [Architecture.]) + AC_DEFINE([WSIZE], [64], [Size of word in this architecture.]) + ;; + *32* | arm* | i?86) + dnl Support for an undefined 32-bit architecture + CPU_ARCH="none" + AC_DEFINE([ARCH], [RELIC_NONE], [Architecture.]) + AC_DEFINE([WSIZE], [32], [Size of word in this architecture.]) + ;; + *) + AC_MSG_ERROR([Unable to determine host architecture, may not be supported!]) + ;; + esac fi case $host in *darwin*) AC_DEFINE([OPSYS], [MACOSX], [Detected operation system.]) + TARGET_OS=darwin + AC_PATH_PROG([BREW],brew,) if test x$BREW = x; then AC_PATH_PROG([PORT],port,) @@ -482,8 +516,10 @@ case $host in fi ;; *mingw*) - use_pkgconfig=no AC_DEFINE([OPSYS], [WINDOWS], [Detected operation system.]) + TARGET_OS=windows + + use_pkgconfig=no LIBTOOL_APP_LDFLAGS="$LIBTOOL_APP_LDFLAGS -all-static" dnl libtool insists upon adding -nostdlib and a list of objects/libs to link against. @@ -496,16 +532,21 @@ case $host in ;; *linux*) AC_DEFINE([OPSYS], [LINUX], [Detected operation system.]) + TARGET_OS=linux + RELIC_CPPFLAGS="-D_GNU_SOURCE" ;; *android*) AC_DEFINE([OPSYS], [DROID], [Detected operation system.]) + TARGET_OS=android ;; *freebsd*) AC_DEFINE([OPSYS], [FREEBSD], [Detected operation system.]) + TARGET_OS=freebsd ;; *netbsd*) AC_DEFINE([OPSYS], [NETBSD], [Detected operation system.]) + TARGET_OS=netbsd ;; *) AC_DEFINE([OPSYS], [RELIC_NONE], [Detected operation system.]) @@ -555,7 +596,7 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[char foo;]])], CFLAGS="$saved_CFLAGS" ]) -if [[[ "$CFLAGS_overridden" == "no" && "$CXXFLAGS_overridden" == "no" ]]]; then +if test x"$CFLAGS_overridden" = x"no" -a x"$CXXFLAGS_overridden" = x"no"; then dnl Enable warnings AX_CHECK_COMPILE_FLAG([-Wall],[WARN_FLAGS="$WARN_FLAGS -Wall"], [], [[$FLAG_WERROR]]) AX_CHECK_COMPILE_FLAG([-Wcast-align],[WARN_FLAGS="$WARN_FLAGS -Wcast-align"], [], [[$FLAG_WERROR]]) @@ -743,7 +784,6 @@ CORE_CPPFLAGS="$CORE_CPPFLAGS -DHAVE_BUILD_INFO" case $host in *mingw*) - TARGET_OS=windows AC_CHECK_LIB([user32], [main], [], [AC_MSG_ERROR([libuser32 missing])]) AC_CHECK_LIB([shell32], [SHGetSpecialFolderPathW], [], [AC_MSG_ERROR([libshell32 missing])]) AC_CHECK_LIB([advapi32], [CryptAcquireContextW], [], [AC_MSG_ERROR([libadvapi32 missing])]) @@ -771,15 +811,10 @@ case $host in AX_CHECK_LINK_FLAG([-Wl,--major-subsystem-version -Wl,6 -Wl,--minor-subsystem-version -Wl,1], [CORE_LDFLAGS="$CORE_LDFLAGS -Wl,--major-subsystem-version -Wl,6 -Wl,--minor-subsystem-version -Wl,1"], [], []) ;; *darwin*) - TARGET_OS=darwin - AX_CHECK_LINK_FLAG([-Wl,-headerpad_max_install_names], [CORE_LDFLAGS="$CORE_LDFLAGS -Wl,-headerpad_max_install_names"], [], []) CORE_CPPFLAGS="$CORE_CPPFLAGS -DMAC_OSX -DOBJC_OLD_DISPATCH_PROTOTYPES=0" OBJCXXFLAGS="$CXXFLAGS" ;; - *linux*) - TARGET_OS=linux - ;; esac dnl These flags are specific to ld64, and may cause issues with other linkers. @@ -799,19 +834,15 @@ AC_LANG_POP([C]) AC_MSG_CHECKING([whether to build runtest]) if test x$use_tests = xyes; then AC_MSG_RESULT([yes]) - BUILD_TEST="yes" else AC_MSG_RESULT([no]) - BUILD_TEST="" fi AC_MSG_CHECKING([whether to build runbench]) if test x$use_bench = xyes; then AC_MSG_RESULT([yes]) - BUILD_BENCH="yes" else AC_MSG_RESULT([no]) - BUILD_BENCH="" fi AM_CONDITIONAL([TARGET_DARWIN], [test "$TARGET_OS" = "darwin"]) @@ -836,8 +867,8 @@ AM_CONDITIONAL(WITH_MPC, test 1 -eq 1) AM_CONDITIONAL(WITH_DV, test 1 -eq 1) AM_CONDITIONAL(WITH_FBX, test 1 -eq 1) -AM_CONDITIONAL([USE_TESTS], [test x$BUILD_TEST = xyes]) -AM_CONDITIONAL([USE_BENCH], [test x$BUILD_BENCH = xyes]) +AM_CONDITIONAL([USE_TESTS], [test x"$use_tests" = x"yes"]) +AM_CONDITIONAL([USE_BENCH], [test x"$use_bench" = x"yes"]) AM_CONDITIONAL([HARDEN], [test "$use_hardening" = "yes"]) AM_CONDITIONAL([OPTIMIZE], [test "$use_optimizations" = "yes"]) @@ -874,8 +905,8 @@ echo echo "Options used to compile and link:" echo " target os = $TARGET_OS" echo " backend = $want_backend" -echo " build bench = $BUILD_BENCH" -echo " build test = $BUILD_TEST" +echo " build bench = $use_tests" +echo " build test = $use_bench" echo " use debug = $use_debug" echo " use hardening = $use_hardening" echo " use optimizations = $use_optimizations" From 758cd646a1fee7d9a4d0d08b7651f068eae83be9 Mon Sep 17 00:00:00 2001 From: pasta Date: Thu, 5 Dec 2024 19:40:07 -0600 Subject: [PATCH 16/24] Merge #6452: fix: store ready queues on the mixing masternode 24dcce979be16b4482b65e43faaf3f040064e8de fix: store ready queues on the mixing masternode (UdjinM6) Pull request description: ## Issue being fixed or feature implemented We normally do not re-relay/store "ready" `dsq`-s because these are ment to be relayed between mixing clients and the mixing masternode only. I works ok when you simply send `dsq` messages because no extra steps are required. However since 70235 we send `dsq` _`inv`-s_ first and we send actual `dsq`-s only if they are requested via `getdata`. The problem here is that `ProcessGetData()` queries `vecCoinJoinQueue` via `GetQueueFromHash()` to get the data to send back but there is none because we never saved it. ## What was done? ## How Has This Been Tested? To test this patch you need a MN but you can test 2 cases _without this patch_ to indirectly test the idea: 1. try mixing on develop: almost no mixing txes, maybe 10 or so in an hour if you are lucky to mix on an old MN that often 2. ignore old MNs (`MIN_PEER_PROTO_VERSION = 70235`): 0 mixing txes, no matter how long you wait 3. pretend being an old client to receive no-inv `dsq` only (`PROTOCOL_VERSION = 70233`): no issues, mixing on these nodes is as fast as usual, several txes per block (need a couple of nodes like that on the network so that a mixing session could be completed, I'm running one node for now so that anyone could join and test it) I'm running a testnet MN with this fix and applied "ignore old mn" patch on my local machine. Local wallet got mixing tx when it finally hit the patched mn. Also confirmed this via MN`debug.log` (`Create`/`Relay`/`CommitFinalTransaction` in logs). ## Breaking Changes ## Checklist: - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: PastaPastaPasta: utACK 24dcce979be16b4482b65e43faaf3f040064e8de Tree-SHA512: 69cee5401d26eec3f66166a754b8020e7f550dac4a0fdea8ec48ea1082f1286e647ac0a26a189c4d39e1a9da4e7ac36f71913684b13ea0fb4b3cfe831174970e --- src/coinjoin/server.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/coinjoin/server.cpp b/src/coinjoin/server.cpp index bb65990dd9006..6e0ee38474b7f 100644 --- a/src/coinjoin/server.cpp +++ b/src/coinjoin/server.cpp @@ -520,6 +520,7 @@ void CCoinJoinServer::CheckForCompleteQueue() "with %d participants\n", dsq.ToString(), vecSessionCollaterals.size()); dsq.Sign(*m_mn_activeman); m_peerman->RelayDSQ(dsq); + WITH_LOCK(cs_vecqueue, vecCoinJoinQueue.push_back(dsq)); } } From fa29ed5b5eef69dcf7735734309f378852c61173 Mon Sep 17 00:00:00 2001 From: pasta Date: Fri, 6 Dec 2024 16:51:57 -0600 Subject: [PATCH 17/24] Merge #6456: fix(qt): allow refreshing wallet data without crashing d296005194c7bd8c65006ddf1b25052b2655c923 fix(qt): allow refreshing wallet data without crashing (UdjinM6) Pull request description: ## Issue being fixed or feature implemented We re-use `refreshWallet` method to optimise loading for huge wallets https://github.com/dashpay/dash/pull/5453. However gui121 backport (via 25f87b9434b98a524d38a97d9fe580acc0fa47ce) added a condition that prevents this logic. Fix it by allowing explicit wallet refresh (force=true). ## What was done? ## How Has This Been Tested? Open a wallet with 10k+ txes, do `rescanblockchain` via rpc console ## Breaking Changes ## Checklist: - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: PastaPastaPasta: utACK d296005194c7bd8c65006ddf1b25052b2655c923; Tree-SHA512: d308b3fe9c4fbbfbf2e2339aa14c825aa6f69c72d1f04dab7a14dc1c8721138beca47c7b3801db9782d6cecf2c54023a19a6d22e04b84615f9bddb0b8ec1696c --- src/qt/transactiontablemodel.cpp | 16 +++++++++------- src/qt/transactiontablemodel.h | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/qt/transactiontablemodel.cpp b/src/qt/transactiontablemodel.cpp index 01de92c61d289..3d2052d445c19 100644 --- a/src/qt/transactiontablemodel.cpp +++ b/src/qt/transactiontablemodel.cpp @@ -106,10 +106,11 @@ class TransactionTablePriv /* Query entire wallet anew from core. */ - void refreshWallet(interfaces::Wallet& wallet) + void refreshWallet(interfaces::Wallet& wallet, bool force = false) { parent->beginResetModel(); - assert(!m_loaded); + assert(!m_loaded || force); + cachedWallet.clear(); try { for (const auto& wtx : wallet.getWalletTxs()) { if (TransactionRecord::showTransaction()) { @@ -284,9 +285,9 @@ TransactionTableModel::~TransactionTableModel() delete priv; } -void TransactionTableModel::refreshWallet() +void TransactionTableModel::refreshWallet(bool force) { - priv->refreshWallet(walletModel->wallet()); + priv->refreshWallet(walletModel->wallet(), force); } /** Updates the column title to "Amount (DisplayUnit)" and emits headerDataChanged() signal for table headers to react. */ @@ -846,12 +847,13 @@ void TransactionTablePriv::DispatchNotifications() vQueueNotifications[i].invoke(parent); } + vQueueNotifications.clear(); } else { - // it's much faster to just refresh the whole thing instead - bool invoked = QMetaObject::invokeMethod(parent, "refreshWallet", Qt::QueuedConnection); + // it's much faster to just drop all the queued notifications and refresh the whole thing instead + vQueueNotifications.clear(); + bool invoked = QMetaObject::invokeMethod(parent, "refreshWallet", Qt::QueuedConnection, Q_ARG(bool, true)); assert(invoked); } - vQueueNotifications.clear(); } void TransactionTableModel::subscribeToCoreSignals() diff --git a/src/qt/transactiontablemodel.h b/src/qt/transactiontablemodel.h index b1f933e25523e..630fec039f731 100644 --- a/src/qt/transactiontablemodel.h +++ b/src/qt/transactiontablemodel.h @@ -114,7 +114,7 @@ class TransactionTableModel : public QAbstractTableModel public Q_SLOTS: /* Refresh the whole wallet, helpful for huge notification queues */ - void refreshWallet(); + void refreshWallet(bool foce = false); /* New transaction, or transaction changed status */ void updateTransaction(const QString &hash, int status, bool showTransaction); void updateAddressBook(const QString &address, const QString &label, From 2f71f4d7d06174d6968d88e5131713c0d09bc10e Mon Sep 17 00:00:00 2001 From: pasta Date: Sat, 7 Dec 2024 12:14:43 -0600 Subject: [PATCH 18/24] Merge #6458: chore: bump MIN_MASTERNODE_PROTO_VERSION to latest proto 1ecfb891bcdcfd62db7827c55370be9bc3587f2e chore: bump MIN_MASTERNODE_PROTO_VERSION to latest proto (pasta) Pull request description: ## Issue being fixed or feature implemented Bump minimum master node protocol version to latest protocol. ## What was done? ## How Has This Been Tested? ## Breaking Changes Masternodes that don't upgrade will end up getting a PoSe ban ## Checklist: _Go over all the following points, and put an `x` in all the boxes that apply._ - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: UdjinM6: utACK 1ecfb891bcdcfd62db7827c55370be9bc3587f2e kwvg: utACK 1ecfb891bcdcfd62db7827c55370be9bc3587f2e Tree-SHA512: 18e0620370924c4f9b0c72b9f384a7b627b9d395b4a4a942d1eaabd8f4294869fb5831c8d237b825053a0ca5aa143cfbb4726312877670088333faa04ab10ef2 --- src/version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/version.h b/src/version.h index 88367edae5905..6be9c32090ad2 100644 --- a/src/version.h +++ b/src/version.h @@ -20,7 +20,7 @@ static const int INIT_PROTO_VERSION = 209; static const int MIN_PEER_PROTO_VERSION = 70216; //! minimum proto version of masternode to accept in DKGs -static const int MIN_MASTERNODE_PROTO_VERSION = 70233; +static const int MIN_MASTERNODE_PROTO_VERSION = 70235; //! protocol version is included in MNAUTH starting with this version static const int MNAUTH_NODE_VER_VERSION = 70218; From 9a8b68515d3a60ce5884b2396f2b558fbde9aa45 Mon Sep 17 00:00:00 2001 From: pasta Date: Tue, 10 Dec 2024 09:29:57 -0600 Subject: [PATCH 19/24] Merge #6460: chore: Translations 2024-12 1d36a4026c45e4424cd78f702c43dd06c899ad8f 80%+: it, pl, th, zh_CN (UdjinM6) adfdb5998c59e312682f32e1ecccbadef8192d03 90%+: fr (UdjinM6) bfff3c9c761608e55a048e3aa1ccaadffe9ea3cb 100%: ru (UdjinM6) ed5f02db9fd878ef56a4ba4188f6e419ed6e8cc3 en (UdjinM6) d373f85f6be90d8accd5aa53874b6412b61aba4c dashstrings.cpp (UdjinM6) Pull request description: ## Issue being fixed or feature implemented ## What was done? ## How Has This Been Tested? ## Breaking Changes ## Checklist: - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: knst: utACK 1d36a4026c45e4424cd78f702c43dd06c899ad8f Tree-SHA512: 5d860d2d78e354eeae2157e5d40e8ff659963a258b9eb216d15ec72c1c589e254c2f246173be9e3d1892f9c18acae6cfecc1f18956460be5ff13c5c84d6d0ba6 --- src/qt/dashstrings.cpp | 46 +- src/qt/locale/dash_en.ts | 984 ++++--- src/qt/locale/dash_en.xlf | 5477 ++++++++++++++++++----------------- src/qt/locale/dash_fr.ts | 1063 ++++++- src/qt/locale/dash_it.ts | 199 +- src/qt/locale/dash_pl.ts | 154 +- src/qt/locale/dash_ru.ts | 789 ++++- src/qt/locale/dash_th.ts | 154 +- src/qt/locale/dash_zh_CN.ts | 154 +- 9 files changed, 5164 insertions(+), 3856 deletions(-) diff --git a/src/qt/dashstrings.cpp b/src/qt/dashstrings.cpp index f749fc06399e7..7bf3e3feab186 100644 --- a/src/qt/dashstrings.cpp +++ b/src/qt/dashstrings.cpp @@ -23,6 +23,18 @@ QT_TRANSLATE_NOOP("dash-core", "" "-maxtxfee is set very high! Fees this large could be paid on a single " "transaction."), QT_TRANSLATE_NOOP("dash-core", "" +"-reindex-chainstate option is not compatible with -blockfilterindex. Please " +"temporarily disable blockfilterindex while using -reindex-chainstate, or " +"replace -reindex-chainstate with -reindex to fully rebuild all indexes."), +QT_TRANSLATE_NOOP("dash-core", "" +"-reindex-chainstate option is not compatible with -coinstatsindex. Please " +"temporarily disable coinstatsindex while using -reindex-chainstate, or " +"replace -reindex-chainstate with -reindex to fully rebuild all indexes."), +QT_TRANSLATE_NOOP("dash-core", "" +"-reindex-chainstate option is not compatible with -txindex. Please " +"temporarily disable txindex while using -reindex-chainstate, or replace -" +"reindex-chainstate with -reindex to fully rebuild all indexes."), +QT_TRANSLATE_NOOP("dash-core", "" "Cannot downgrade wallet from version %i to version %i. Wallet version " "unchanged."), QT_TRANSLATE_NOOP("dash-core", "" @@ -39,6 +51,11 @@ QT_TRANSLATE_NOOP("dash-core", "" QT_TRANSLATE_NOOP("dash-core", "" "Error loading %s: You can't enable HD on an already existing non-HD wallet"), QT_TRANSLATE_NOOP("dash-core", "" +"Error loading wallet. Wallet requires blocks to be downloaded, and software " +"does not currently support loading wallets while blocks are being downloaded " +"out of order when using assumeutxo snapshots. Wallet should be able to load " +"successfully after node sync reaches height %s"), +QT_TRANSLATE_NOOP("dash-core", "" "Error reading %s! All keys read correctly, but transaction data or address " "book entries might be missing or incorrect."), QT_TRANSLATE_NOOP("dash-core", "" @@ -55,6 +72,9 @@ QT_TRANSLATE_NOOP("dash-core", "" "restarted wallet in less than 60 seconds. You can continue if you are ok " "with this."), QT_TRANSLATE_NOOP("dash-core", "" +"Failed to rename invalid peers.dat file. Please move or delete it and try " +"again."), +QT_TRANSLATE_NOOP("dash-core", "" "Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -" "fallbackfee."), QT_TRANSLATE_NOOP("dash-core", "" @@ -64,6 +84,9 @@ QT_TRANSLATE_NOOP("dash-core", "" "Found unconfirmed denominated outputs, will wait till they confirm to " "continue."), QT_TRANSLATE_NOOP("dash-core", "" +"Incompatible options: -dnsseed=1 was explicitly specified, but -onlynet " +"forbids connections to IPv4/IPv6"), +QT_TRANSLATE_NOOP("dash-core", "" "Incorrect or no devnet genesis block found. Wrong datadir for devnet " "specified?"), QT_TRANSLATE_NOOP("dash-core", "" @@ -105,17 +128,27 @@ QT_TRANSLATE_NOOP("dash-core", "" QT_TRANSLATE_NOOP("dash-core", "" "Prune configured below the minimum of %d MiB. Please use a higher number."), QT_TRANSLATE_NOOP("dash-core", "" +"Prune mode is incompatible with -reindex-chainstate. Use full -reindex " +"instead."), +QT_TRANSLATE_NOOP("dash-core", "" "Prune: last wallet synchronisation goes beyond pruned data. You need to -" "reindex (download the whole blockchain again in case of pruned node)"), QT_TRANSLATE_NOOP("dash-core", "" "SQLiteDatabase: Unknown sqlite wallet schema version %d. Only version %d is " "supported"), QT_TRANSLATE_NOOP("dash-core", "" +"The -txindex upgrade started by a previous version can not be completed. " +"Restart with the previous version or run a full -reindex."), +QT_TRANSLATE_NOOP("dash-core", "" "The block database contains a block which appears to be from the future. " "This may be due to your computer's date and time being set incorrectly. Only " "rebuild the block database if you are sure that your computer's date and " "time are correct"), QT_TRANSLATE_NOOP("dash-core", "" +"The block index db contains a legacy 'txindex'. To clear the occupied disk " +"space, run a full -reindex, otherwise ignore this error. This error message " +"will not be displayed again."), +QT_TRANSLATE_NOOP("dash-core", "" "The transaction amount is too small to send after the fee has been deducted"), QT_TRANSLATE_NOOP("dash-core", "" "This error could occur if this wallet was not shutdown cleanly and was last " @@ -162,7 +195,7 @@ QT_TRANSLATE_NOOP("dash-core", "" "Warning: We do not appear to fully agree with our peers! You may need to " "upgrade, or other nodes may need to upgrade."), QT_TRANSLATE_NOOP("dash-core", "" -"You need to rebuild the database using -reindex to change -timestampindex"), +"You need to rebuild the database using -reindex to enable -timestampindex"), QT_TRANSLATE_NOOP("dash-core", "" "You need to rebuild the database using -reindex to go back to unpruned " "mode. This will redownload the entire blockchain"), @@ -221,6 +254,7 @@ QT_TRANSLATE_NOOP("dash-core", "Error: Got key that was not hex: %s"), QT_TRANSLATE_NOOP("dash-core", "Error: Got value that was not hex: %s"), QT_TRANSLATE_NOOP("dash-core", "Error: Keypool ran out, please call keypoolrefill first"), QT_TRANSLATE_NOOP("dash-core", "Error: Missing checksum"), +QT_TRANSLATE_NOOP("dash-core", "Error: No addresses available."), QT_TRANSLATE_NOOP("dash-core", "Error: Unable to parse version %u as a uint32_t"), QT_TRANSLATE_NOOP("dash-core", "Error: Unable to write record to new wallet"), QT_TRANSLATE_NOOP("dash-core", "Exceeded max tries."), @@ -240,6 +274,7 @@ QT_TRANSLATE_NOOP("dash-core", "Failed to load sporks cache from %s"), QT_TRANSLATE_NOOP("dash-core", "Failed to rescan the wallet during initialization"), QT_TRANSLATE_NOOP("dash-core", "Failed to start a new mixing queue"), QT_TRANSLATE_NOOP("dash-core", "Failed to verify database"), +QT_TRANSLATE_NOOP("dash-core", "Fee rate (%s) is lower than the minimum fee rate setting (%s)"), QT_TRANSLATE_NOOP("dash-core", "Found enough users, signing ( waiting %s )"), QT_TRANSLATE_NOOP("dash-core", "Found enough users, signing…"), QT_TRANSLATE_NOOP("dash-core", "Ignoring duplicate -wallet %s."), @@ -250,6 +285,7 @@ QT_TRANSLATE_NOOP("dash-core", "Incorrect -rescan mode, falling back to default QT_TRANSLATE_NOOP("dash-core", "Incorrect or no genesis block found. Wrong datadir for network?"), QT_TRANSLATE_NOOP("dash-core", "Initialization sanity check failed. %s is shutting down."), QT_TRANSLATE_NOOP("dash-core", "Input is not valid."), +QT_TRANSLATE_NOOP("dash-core", "Input not found or already spent"), QT_TRANSLATE_NOOP("dash-core", "Inputs vs outputs size mismatch."), QT_TRANSLATE_NOOP("dash-core", "Insufficient funds."), QT_TRANSLATE_NOOP("dash-core", "Invalid '%s'. Allowed values: 128, 160, 192, 224, 256."), @@ -279,6 +315,7 @@ QT_TRANSLATE_NOOP("dash-core", "Missing input transaction information."), QT_TRANSLATE_NOOP("dash-core", "Mixing in progress…"), QT_TRANSLATE_NOOP("dash-core", "Need to specify a port with -whitebind: '%s'"), QT_TRANSLATE_NOOP("dash-core", "No Masternodes detected."), +QT_TRANSLATE_NOOP("dash-core", "No addresses available"), QT_TRANSLATE_NOOP("dash-core", "No compatible Masternode found."), QT_TRANSLATE_NOOP("dash-core", "No errors detected."), QT_TRANSLATE_NOOP("dash-core", "No matching denominations found for mixing."), @@ -288,7 +325,6 @@ QT_TRANSLATE_NOOP("dash-core", "Not enough file descriptors available."), QT_TRANSLATE_NOOP("dash-core", "Not enough funds to mix."), QT_TRANSLATE_NOOP("dash-core", "Not in the Masternode list."), QT_TRANSLATE_NOOP("dash-core", "Prune cannot be configured with a negative value."), -QT_TRANSLATE_NOOP("dash-core", "Prune mode is incompatible with -coinstatsindex."), QT_TRANSLATE_NOOP("dash-core", "Prune mode is incompatible with -disablegovernance=false."), QT_TRANSLATE_NOOP("dash-core", "Prune mode is incompatible with -txindex."), QT_TRANSLATE_NOOP("dash-core", "Pruning blockstore…"), @@ -337,6 +373,7 @@ QT_TRANSLATE_NOOP("dash-core", "Unable to generate initial keys"), QT_TRANSLATE_NOOP("dash-core", "Unable to locate enough mixed funds for this transaction."), QT_TRANSLATE_NOOP("dash-core", "Unable to locate enough non-denominated funds for this transaction."), QT_TRANSLATE_NOOP("dash-core", "Unable to open %s for writing"), +QT_TRANSLATE_NOOP("dash-core", "Unable to parse -maxuploadtarget: '%s' (possible integer overflow?)"), QT_TRANSLATE_NOOP("dash-core", "Unable to sign spork message, wrong key?"), QT_TRANSLATE_NOOP("dash-core", "Unable to start HTTP server. See debug log for details."), QT_TRANSLATE_NOOP("dash-core", "Unknown -blockfilterindex value %s."), @@ -346,7 +383,6 @@ QT_TRANSLATE_NOOP("dash-core", "Unknown response."), QT_TRANSLATE_NOOP("dash-core", "Unknown state: id = %u"), QT_TRANSLATE_NOOP("dash-core", "Unsupported logging category %s=%s."), QT_TRANSLATE_NOOP("dash-core", "Upgrading UTXO database"), -QT_TRANSLATE_NOOP("dash-core", "Upgrading txindex database"), QT_TRANSLATE_NOOP("dash-core", "User Agent comment (%s) contains unsafe characters."), QT_TRANSLATE_NOOP("dash-core", "Verifying blocks…"), QT_TRANSLATE_NOOP("dash-core", "Verifying wallet(s)…"), @@ -361,8 +397,8 @@ QT_TRANSLATE_NOOP("dash-core", "Wiping wallet transactions…"), QT_TRANSLATE_NOOP("dash-core", "You are starting with governance validation disabled."), QT_TRANSLATE_NOOP("dash-core", "You can not disable governance validation on a masternode."), QT_TRANSLATE_NOOP("dash-core", "You can not start a masternode with wallet enabled."), -QT_TRANSLATE_NOOP("dash-core", "You need to rebuild the database using -reindex to change -addressindex"), -QT_TRANSLATE_NOOP("dash-core", "You need to rebuild the database using -reindex to change -spentindex"), +QT_TRANSLATE_NOOP("dash-core", "You need to rebuild the database using -reindex to enable -addressindex"), +QT_TRANSLATE_NOOP("dash-core", "You need to rebuild the database using -reindex to enable -spentindex"), QT_TRANSLATE_NOOP("dash-core", "Your entries added successfully."), QT_TRANSLATE_NOOP("dash-core", "no mixing available."), QT_TRANSLATE_NOOP("dash-core", "see debug.log for details."), diff --git a/src/qt/locale/dash_en.ts b/src/qt/locale/dash_en.ts index e09bd41051708..21696b586b507 100644 --- a/src/qt/locale/dash_en.ts +++ b/src/qt/locale/dash_en.ts @@ -50,6 +50,7 @@ + &Delete &Delete @@ -69,7 +70,7 @@ C&lose - + Choose the address to send coins to Choose the address to send coins to @@ -104,7 +105,7 @@ These are your Dash addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. - + &Copy Address &Copy Address @@ -120,23 +121,23 @@ - &Show address QR code - &Show address QR code + Show address &QR code + Show address &QR code - + QR code QR code - + Export Address List Export Address List Comma separated file - Expanded name of the CSV file format. See https://en.wikipedia.org/wiki/Comma-separated_values + Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values. Comma separated file @@ -402,7 +403,7 @@ BitcoinApplication - + Runaway exception Runaway exception @@ -425,7 +426,7 @@ BitcoinGUI - + &Overview &Overview @@ -435,7 +436,7 @@ Show general overview of wallet - + &Send &Send @@ -535,7 +536,7 @@ Close wallet - + No wallets available No wallets available @@ -580,7 +581,7 @@ Browse masternodes - + E&xit E&xit @@ -750,12 +751,12 @@ default wallet - + %1 client %1 client - + Wallet: %1 Wallet: %1 @@ -767,12 +768,12 @@ Wallet is <b>unencrypted</b> - + &File &File - + Show information about %1 Show information about %1 @@ -827,7 +828,7 @@ - + &Settings &Settings @@ -852,8 +853,9 @@ View Governance Proposals - + %n active connection(s) to Dash network + A substring of the tooltip. %n active connection to Dash network %n active connections to Dash network @@ -865,7 +867,7 @@ Network activity disabled - + Processed %n block(s) of transaction history. Processed %n block of transaction history. @@ -878,7 +880,7 @@ %1 behind - + Close Wallet… Close Wallet… @@ -898,12 +900,36 @@ Ctrl+Shift+D - + Ctrl+M Ctrl+M - + + Click for more actions. + A substring of the tooltip. "More actions" are available via the context menu. + Click for more actions. + + + + Show Peers tab + A context menu item. The "Peers tab" is an element of the "Node window". + Show Peers tab + + + + Disable network activity + A context menu item. + Disable network activity + + + + Enable network activity + A context menu item. The network activity was disabled previously. + Enable network activity + + + Syncing Headers (%1%)… Syncing Headers (%1%)… @@ -983,7 +1009,7 @@ Information - + Received and sent multiple transactions Received and sent multiple transactions @@ -1077,7 +1103,7 @@ Wallet is <b>encrypted</b> and currently <b>locked</b> - + Proxy is <b>enabled</b>: %1 Proxy is <b>enabled</b>: %1 @@ -1190,38 +1216,42 @@ Confirmed - - Copy address - Copy address + + Copy amount + Copy amount - - Copy label - Copy label + + &Copy address + &Copy address - - Copy amount - Copy amount + Copy &label + Copy &label - - Copy transaction ID - Copy transaction ID + + Copy &amount + Copy &amount - Lock unspent - Lock unspent + Copy transaction &ID and output index + Copy transaction &ID and output index + + + + L&ock unspent + L&ock unspent - Unlock unspent - Unlock unspent + &Unlock unspent + &Unlock unspent - + Copy quantity Copy quantity @@ -1256,7 +1286,7 @@ Please switch to "List mode" to use this function. - + (%1 locked) (%1 locked) @@ -1330,8 +1360,15 @@ CreateWalletActivity - + + Create Wallet + Title of window indicating the progress of creation of a new wallet. + Create Wallet + + + Creating Wallet <b>%1</b>… + Descriptive text of the create wallet progress window which indicates to the user which wallet is currently being created. Creating Wallet <b>%1</b>… @@ -1542,7 +1579,7 @@ Filter by Title - + Proposal Info: %1 Proposal Info: %1 @@ -1780,7 +1817,7 @@ Voting Address - + Copy ProTx Hash Copy ProTx Hash @@ -1790,18 +1827,18 @@ Copy Collateral Outpoint - - + + Please wait… Please wait… - + Updating… Updating… - + ENABLED ENABLED @@ -1872,7 +1909,7 @@ - + Unknown… Unknown… @@ -1908,12 +1945,12 @@ Hide - + %1 is currently syncing. It will download headers and blocks from peers and validate them until reaching the tip of the block chain. %1 is currently syncing. It will download headers and blocks from peers and validate them until reaching the tip of the block chain. - + Unknown. Syncing Headers (%1, %2%)… Unknown. Syncing Headers (%1, %2%)… @@ -1949,8 +1986,15 @@ default wallet - + + Open Wallet + Title of window indicating the progress of opening of a wallet. + Open Wallet + + + Opening Wallet <b>%1</b>… + Descriptive text of the open wallet progress window which indicates to the user which wallet is currently being opened. Opening Wallet <b>%1</b>… @@ -2034,7 +2078,31 @@ Set the number of script verification threads. Negative values correspond to the number of cores you want to leave free to the system. - + + This allows you or a third party tool to communicate with the node through command-line and JSON-RPC commands. + Tooltip text for Options window setting that enables the RPC server. + This allows you or a third party tool to communicate with the node through command-line and JSON-RPC commands. + + + + Enable R&PC server + An Options window setting to enable the RPC server. + Enable R&PC server + + + + Whether to set subtract fee from amount as default or not. + Tooltip text for Options window setting that sets subtracting the fee from a sending amount as default. + Whether to set subtract fee from amount as default or not. + + + + Subtract &fee from amount by default + An Options window setting to set subtracting the fee from a sending amount as default. + Subtract &fee from amount by default + + + Whether to keep the specified custom change address or not. Whether to keep the specified custom change address or not. @@ -2218,12 +2286,12 @@ https://explore.transifex.com/dash/dash/ Options set in this dialog are overridden by the command line or in the configuration file: - + Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu. Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu. - + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items.<br/>%s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items.<br/>%s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. @@ -2239,7 +2307,7 @@ https://explore.transifex.com/dash/dash/ Whether to show coin control features or not. - + Automatically start %1 after logging in to the system. Automatically start %1 after logging in to the system. @@ -2249,7 +2317,7 @@ https://explore.transifex.com/dash/dash/ &Start %1 on system login - + Enable coin &control features Enable coin &control features @@ -2264,7 +2332,7 @@ https://explore.transifex.com/dash/dash/ This setting determines the amount of individual masternodes that an input will be mixed through.<br/>More rounds of mixing gives a higher degree of privacy, but also costs more in fees. - + &Network &Network @@ -2274,7 +2342,7 @@ https://explore.transifex.com/dash/dash/ Enabling pruning significantly reduces the disk space required to store transactions. All blocks are still fully validated. Reverting this setting requires re-downloading the entire blockchain. - + Map port using &UPnP Map port using &UPnP @@ -2328,7 +2396,7 @@ https://explore.transifex.com/dash/dash/ Tor - + Show only a tray icon after minimizing the window. Show only a tray icon after minimizing the window. @@ -2348,7 +2416,7 @@ https://explore.transifex.com/dash/dash/ &Display - + Connect to the Dash network through a separate SOCKS5 proxy for Tor onion services. Connect to the Dash network through a separate SOCKS5 proxy for Tor onion services. @@ -2413,7 +2481,7 @@ https://explore.transifex.com/dash/dash/ default - + Confirm options reset Confirm options reset @@ -2447,14 +2515,14 @@ https://explore.transifex.com/dash/dash/ Form - + - + The displayed information may be out of date. Your wallet automatically synchronizes with the Dash network after a connection is established, but this process has not completed yet. The displayed information may be out of date. Your wallet automatically synchronizes with the Dash network after a connection is established, but this process has not completed yet. - + Available: Available: @@ -2564,12 +2632,12 @@ https://explore.transifex.com/dash/dash/ n/a - + Recent transactions Recent transactions - + Start/Stop Mixing Start/Stop Mixing @@ -2579,14 +2647,14 @@ https://explore.transifex.com/dash/dash/ The denominations you submitted to the Masternode.<br>To mix, other users must submit the exact same denominations. - + out of sync out of sync - + Automatic backups are disabled, no mixing available! Automatic backups are disabled, no mixing available! @@ -2597,12 +2665,12 @@ https://explore.transifex.com/dash/dash/ No inputs detected - + %1 Balance %1 Balance - + Discreet mode activated for the Overview tab. To unmask the values, uncheck Settings->Discreet mode. Discreet mode activated for the Overview tab. To unmask the values, uncheck Settings->Discreet mode. @@ -2774,12 +2842,12 @@ https://explore.transifex.com/dash/dash/ Close - + Failed to load transaction: %1 Failed to load transaction: %1 - + Failed to sign transaction: %1 Failed to sign transaction: %1 @@ -2840,7 +2908,12 @@ https://explore.transifex.com/dash/dash/ * Sends %1 to %2 - + + own address + own address + + + Unable to calculate transaction fee or total transaction amount. Unable to calculate transaction fee or total transaction amount. @@ -2865,7 +2938,7 @@ https://explore.transifex.com/dash/dash/ Transaction has %1 unsigned inputs. - + Transaction is missing some information about inputs. Transaction is missing some information about inputs. @@ -2874,6 +2947,11 @@ https://explore.transifex.com/dash/dash/ Transaction still needs signature(s). Transaction still needs signature(s). + + + (But no wallet is loaded.) + (But no wallet is loaded.) + (But this wallet cannot sign transactions.) @@ -2898,7 +2976,7 @@ https://explore.transifex.com/dash/dash/ PaymentServer - + Payment request error Payment request error @@ -2923,17 +3001,13 @@ https://explore.transifex.com/dash/dash/ - Cannot process payment request as BIP70 is no longer supported. - Cannot process payment request as BIP70 is no longer supported. + Cannot process payment request as BIP70 is no longer supported. +Due to discontinued support, you should request the merchant to provide you with a BIP21 compatible URI or use a wallet that does continue to support BIP70. + Cannot process payment request as BIP70 is no longer supported. +Due to discontinued support, you should request the merchant to provide you with a BIP21 compatible URI or use a wallet that does continue to support BIP70. - - - Due to discontinued support, you should request the merchant to provide you with a BIP21 compatible URI or use a wallet that does continue to support BIP70. - Due to discontinued support, you should request the merchant to provide you with a BIP21 compatible URI or use a wallet that does continue to support BIP70. - - - + URI cannot be parsed! This can be caused by an invalid Dash address or malformed URI parameters. URI cannot be parsed! This can be caused by an invalid Dash address or malformed URI parameters. @@ -2946,7 +3020,7 @@ https://explore.transifex.com/dash/dash/ PeerTableModel - + User Agent Title of Peers Table column which contains the peer's User Agent string. User Agent @@ -2958,13 +3032,25 @@ https://explore.transifex.com/dash/dash/ Ping - + Peer Title of Peers Table column which contains a unique number used to identify a connection. Peer + + + Age + Title of Peers Table column which indicates the duration (length of time) since the peer connection started. + Age + + Direction + Title of Peers Table column which indicates the direction the peer connection was initiated from. + Direction + + + Type Title of Peers Table column which describes the type of peer connection. The "type" describes why the connection exists. Type @@ -2982,22 +3068,34 @@ https://explore.transifex.com/dash/dash/ Received - + Address Title of Peers Table column which contains the IP/Onion/I2P address of the connected peer. Address - + Network Title of Peers Table column which states the network the peer connected through. Network + + + Inbound + An Inbound Connection from a Peer. + Inbound + + + + Outbound + An Outbound Connection to a Peer. + Outbound + Proposal - + Passing +%1 Passing +%1 @@ -3058,19 +3156,19 @@ https://explore.transifex.com/dash/dash/ QObject - + Do you want to reset settings to default values, or to abort without making changes? Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting. Do you want to reset settings to default values, or to abort without making changes? - - A fatal error occured. Check that settings file is writable, or try running with -nosettings. + + A fatal error occurred. Check that settings file is writable, or try running with -nosettings. Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file. - A fatal error occured. Check that settings file is writable, or try running with -nosettings. + A fatal error occurred. Check that settings file is writable, or try running with -nosettings. - + Choose data directory on startup (default: %u) Choose data directory on startup (default: %u) @@ -3115,7 +3213,7 @@ https://explore.transifex.com/dash/dash/ Show splash screen on startup (default: %u) - + Error: Specified data directory "%1" does not exist. Error: Specified data directory "%1" does not exist. @@ -3170,12 +3268,12 @@ https://explore.transifex.com/dash/dash/ %1 didn't yet exit safely… - + Amount Amount - + Enter a Dash address (e.g. %1) Enter a Dash address (e.g. %1) @@ -3195,7 +3293,7 @@ https://explore.transifex.com/dash/dash/ This can also be adjusted later in the "Appearance" tab of the preferences. - + Ctrl+W Ctrl+W @@ -3253,22 +3351,26 @@ https://explore.transifex.com/dash/dash/ + %1 d %1 d - + + %1 h %1 h - + + %1 m %1 m - - + + + %1 s %1 s @@ -3348,8 +3450,8 @@ https://explore.transifex.com/dash/dash/ - %1 KB - %1 KB + %1 kB + %1 kB @@ -3393,12 +3495,12 @@ https://explore.transifex.com/dash/dash/ &Save Image… - + &Copy Image &Copy Image - + Resulting URI too long, try to reduce the text for label / message. Resulting URI too long, try to reduce the text for label / message. @@ -3420,7 +3522,7 @@ https://explore.transifex.com/dash/dash/ PNG Image - Expanded name of the PNG file format. See https://en.wikipedia.org/wiki/Portable_Network_Graphics + Expanded name of the PNG file format. See: https://en.wikipedia.org/wiki/Portable_Network_Graphics. PNG Image @@ -3467,6 +3569,8 @@ https://explore.transifex.com/dash/dash/ + + @@ -3492,14 +3596,12 @@ https://explore.transifex.com/dash/dash/ - - - + N/A N/A - + Number of connections Number of connections @@ -3515,12 +3617,12 @@ https://explore.transifex.com/dash/dash/ - + Network Network - + Last block time Last block time @@ -3570,7 +3672,7 @@ https://explore.transifex.com/dash/dash/ &Network Traffic - + Received Received @@ -3580,7 +3682,7 @@ https://explore.transifex.com/dash/dash/ Sent - + &Peers &Peers @@ -3596,12 +3698,12 @@ https://explore.transifex.com/dash/dash/ - + Select a peer to view detailed information. Select a peer to view detailed information. - + Version Version @@ -3674,34 +3776,25 @@ https://explore.transifex.com/dash/dash/ Whether we relay addresses to this peer. - Tooltip text for the Address Relay field in the peer details area. + Tooltip text for the Address Relay field in the peer details area, which displays whether we relay addresses to this peer (Yes/No). Whether we relay addresses to this peer. Address Relay + Text title for the Address Relay field in the peer details area, which displays whether we relay addresses to this peer (Yes/No). Address Relay - - Total number of addresses processed, excluding those dropped due to rate-limiting. - Tooltip text for the Addresses Processed field in the peer details area. - Total number of addresses processed, excluding those dropped due to rate-limiting. - - - + Addresses Processed + Text title for the Addresses Processed field in the peer details area, which displays the total number of addresses received from this peer that were processed (excludes addresses that were dropped due to rate-limiting). Addresses Processed - - Total number of addresses dropped due to rate-limiting. - Tooltip text for the Addresses Rate-Limited field in the peer details area. - Total number of addresses dropped due to rate-limiting. - - - + Addresses Rate-Limited + Text title for the Addresses Rate-Limited field in the peer details area, which displays the total number of addresses received from this peer that were dropped (not processed) due to rate-limiting. Addresses Rate-Limited @@ -3730,13 +3823,13 @@ https://explore.transifex.com/dash/dash/ -rescan=2: Rescan the block chain for missing wallet transactions starting from genesis block. - - + + User Agent User Agent - + Datadir Datadir @@ -3825,6 +3918,26 @@ https://explore.transifex.com/dash/dash/ PoSe Score PoSe Score + + + The transport layer version: %1 + The transport layer version: %1 + + + + Transport + Transport + + + + The BIP324 session ID string in hex. + The BIP324 session ID string in hex. + + + + Session ID + Session ID + The network protocol this peer is connected through: IPv4, IPv6, Onion, I2P, or CJDNS. @@ -3891,12 +4004,24 @@ https://explore.transifex.com/dash/dash/ Time Offset - + &Wallet Repair &Wallet Repair - + + The total number of addresses received from this peer that were processed (excludes addresses that were dropped due to rate-limiting). + Tooltip text for the Addresses Processed field in the peer details area, which displays the total number of addresses received from this peer that were processed (excludes addresses that were dropped due to rate-limiting). + The total number of addresses received from this peer that were processed (excludes addresses that were dropped due to rate-limiting). + + + + The total number of addresses received from this peer that were dropped (not processed) due to rate-limiting. + Tooltip text for the Addresses Rate-Limited field in the peer details area, which displays the total number of addresses received from this peer that were dropped (not processed) due to rate-limiting. + The total number of addresses received from this peer that were dropped (not processed) due to rate-limiting. + + + Wallet repair options. Wallet repair options. @@ -3911,7 +4036,7 @@ https://explore.transifex.com/dash/dash/ -reindex: Rebuild block chain index from current blk000??.dat files. - + Inbound: initiated by peer Explanatory text for an inbound peer connection. Inbound: initiated by peer @@ -3947,60 +4072,52 @@ https://explore.transifex.com/dash/dash/ Outbound Address Fetch: short-lived, for soliciting addresses - + To To - + we selected the peer for high bandwidth relay we selected the peer for high bandwidth relay - + From From - + the peer selected us for high bandwidth relay the peer selected us for high bandwidth relay - + No No - + no high bandwidth relay selected no high bandwidth relay selected - + &Disconnect &Disconnect - - - - + Ban for Ban for - + 1 &hour 1 &hour - - 1 &day - 1 &day - - - + 1 &week 1 &week @@ -4010,37 +4127,12 @@ https://explore.transifex.com/dash/dash/ 1 &year - + &Unban &Unban - - Welcome to the %1 RPC console. - Welcome to the %1 RPC console. - - - - Use up and down arrows to navigate history, and %1 to clear screen. - Use up and down arrows to navigate history, and %1 to clear screen. - - - - Type %1 for an overview of available commands. - Type %1 for an overview of available commands. - - - - For more information on using this console type %1. - For more information on using this console type %1. - - - - WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. - WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. - - - + In: In: @@ -4061,12 +4153,36 @@ https://explore.transifex.com/dash/dash/ Total: %1 (Enabled: %2) - + Executing command without any wallet Executing command without any wallet - + + Ctrl++ + Main shortcut to increase the RPC console font size. + Ctrl++ + + + + Ctrl+= + Secondary shortcut to increase the RPC console font size. + Ctrl+= + + + + Ctrl+- + Main shortcut to decrease the RPC console font size. + Ctrl+- + + + + Ctrl+_ + Secondary shortcut to decrease the RPC console font size. + Ctrl+_ + + + Ctrl+Shift+I Ctrl+Shift+I @@ -4091,12 +4207,71 @@ https://explore.transifex.com/dash/dash/ Ctrl+Shift+R - + Executing command using "%1" wallet Executing command using "%1" wallet - + + detecting: peer could be v1 or v2 + Explanatory text for "detecting" transport type. + detecting: peer could be v1 or v2 + + + + v1: unencrypted, plaintext transport protocol + Explanatory text for v1 transport type. + v1: unencrypted, plaintext transport protocol + + + + v2: BIP324 encrypted transport protocol + Explanatory text for v2 transport type. + v2: BIP324 encrypted transport protocol + + + + &Copy address + Context menu action to copy the address of a peer + &Copy address + + + + 1 d&ay + 1 d&ay + + + + &Copy IP/Netmask + Context menu action to copy the IP/Netmask of a banned peer. IP/Netmask is the combination of a peer's IP address and its Netmask. For IP address see: https://en.wikipedia.org/wiki/IP_address + &Copy IP/Netmask + + + + Welcome to the %1 RPC console. +Use up and down arrows to navigate history, and %2 to clear screen. +Use %3 and %4 to increase or decrease the font size. +Type %5 for an overview of available commands. +For more information on using this console, type %6. + +%7WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command.%8 + RPC console welcome message. Placeholders %7 and %8 are style tags for the warning content, and they are not space separated from the rest of the text intentionally. + Welcome to the %1 RPC console. +Use up and down arrows to navigate history, and %2 to clear screen. +Use %3 and %4 to increase or decrease the font size. +Type %5 for an overview of available commands. +For more information on using this console, type %6. + +%7WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command.%8 + + + + Executing… + A console message indicating an entered command is currently being executed. + Executing… + + + (peer: %1) (peer: %1) @@ -4106,7 +4281,7 @@ https://explore.transifex.com/dash/dash/ via %1 - + Regular Regular @@ -4121,13 +4296,17 @@ https://explore.transifex.com/dash/dash/ Verified Masternode - - + + Yes + Yes + + + Unknown Unknown - + Never Never @@ -4231,32 +4410,32 @@ https://explore.transifex.com/dash/dash/ Enter a message to attach to the payment request - - Copy URI - Copy URI + + Copy &URI + Copy &URI - Copy address - Copy address + &Copy address + &Copy address - Copy label - Copy label + Copy &label + Copy &label - Copy message - Copy message + Copy &message + Copy &message - Copy amount - Copy amount + Copy &amount + Copy &amount - + Could not unlock wallet. Could not unlock wallet. @@ -4327,7 +4506,7 @@ https://explore.transifex.com/dash/dash/ RecentRequestsTableModel - + Date Date @@ -4357,7 +4536,7 @@ https://explore.transifex.com/dash/dash/ (no amount requested) - + Requested Requested @@ -4366,7 +4545,7 @@ https://explore.transifex.com/dash/dash/ SendCoinsDialog - + Send Coins Send Coins @@ -5151,12 +5330,25 @@ https://explore.transifex.com/dash/dash/ Message verified. + + SplashScreen + + + (press q to shutdown and continue later) + (press q to shutdown and continue later) + + + + press q to shutdown + press q to shutdown + + TrafficGraphWidget - KB/s - KB/s + kB/s + kB/s @@ -5177,7 +5369,7 @@ https://explore.transifex.com/dash/dash/ TransactionDesc - + Open for %n more block(s) Open for %n more block @@ -5195,7 +5387,7 @@ https://explore.transifex.com/dash/dash/ conflicted - + 0/unconfirmed, %1 0/unconfirmed, %1 @@ -5210,12 +5402,12 @@ https://explore.transifex.com/dash/dash/ not in memory pool - + abandoned abandoned - + %1/unconfirmed %1/unconfirmed @@ -5246,14 +5438,20 @@ https://explore.transifex.com/dash/dash/ + Source Source - + Generated Generated + + + Platform Transfer + Platform Transfer + @@ -5418,7 +5616,7 @@ https://explore.transifex.com/dash/dash/ TransactionTableModel - + Date Date @@ -5433,7 +5631,7 @@ https://explore.transifex.com/dash/dash/ Address / Label - + Open for %n more block(s) Open for %n more block @@ -5520,6 +5718,11 @@ https://explore.transifex.com/dash/dash/ Mined Mined + + + Platform Transfer + Platform Transfer + %1 Mixing @@ -5546,17 +5749,17 @@ https://explore.transifex.com/dash/dash/ %1 Send - + watch-only watch-only - + (n/a) (n/a) - + (no label) (no label) @@ -5594,7 +5797,7 @@ https://explore.transifex.com/dash/dash/ TransactionView - + All All @@ -5679,6 +5882,11 @@ https://explore.transifex.com/dash/dash/ Mined Mined + + + Platform Transfer + Platform Transfer + Other @@ -5696,68 +5904,68 @@ https://explore.transifex.com/dash/dash/ - Abandon transaction - Abandon transaction + &Copy address + &Copy address - Resend transaction - Resend transaction + Copy &label + Copy &label - Copy address - Copy address + Copy &amount + Copy &amount - Copy label - Copy label + Copy transaction &ID + Copy transaction &ID - Copy amount - Copy amount + Copy &raw transaction + Copy &raw transaction - Copy transaction ID - Copy transaction ID + Copy full transaction &details + Copy full transaction &details - Copy raw transaction - Copy raw transaction + &Show transaction details + &Show transaction details - - Copy full transaction details - Copy full transaction details + + A&bandon transaction + A&bandon transaction - Edit address label - Edit address label + Rese&nd transaction + Rese&nd transaction - Show transaction details - Show transaction details + &Edit address label + &Edit address label - Show address QR code - Show address QR code + Show address &QR code + Show address &QR code - + Export Transaction History Export Transaction History Comma separated file - Expanded name of the CSV file format. See https://en.wikipedia.org/wiki/Comma-separated_values + Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values. Comma separated file @@ -5842,7 +6050,7 @@ https://explore.transifex.com/dash/dash/ WalletController - + Close wallet Close wallet @@ -5870,7 +6078,7 @@ https://explore.transifex.com/dash/dash/ WalletFrame - + No wallet has been loaded. Go to File > Open Wallet to load a wallet. - OR - @@ -5883,6 +6091,38 @@ Go to File > Open Wallet to load a wallet. Create a new wallet Create a new wallet + + + + + Error + Error + + + + Unable to decode PSBT from clipboard (invalid base64) + Unable to decode PSBT from clipboard (invalid base64) + + + + Load Transaction Data + Load Transaction Data + + + + Partially Signed Transaction (*.psbt) + Partially Signed Transaction (*.psbt) + + + + PSBT file must be smaller than 100 MiB + PSBT file must be smaller than 100 MiB + + + + Unable to decode PSBT + Unable to decode PSBT + WalletModel @@ -5900,7 +6140,7 @@ Go to File > Open Wallet to load a wallet. WalletView - + &Export &Export @@ -5915,45 +6155,13 @@ Go to File > Open Wallet to load a wallet. Selected amount: - - Unable to decode PSBT from clipboard (invalid base64) - Unable to decode PSBT from clipboard (invalid base64) - - - - Load Transaction Data - Load Transaction Data - - - - Partially Signed Transaction (*.psbt) - Partially Signed Transaction (*.psbt) - - - - Unable to decode PSBT - Unable to decode PSBT - - - + Wallet Data Name of the wallet data file format. Wallet Data - - - - Error - Error - - - - PSBT file must be smaller than 100 MiB - PSBT file must be smaller than 100 MiB - - - + Backup Wallet Backup Wallet @@ -5986,17 +6194,17 @@ Go to File > Open Wallet to load a wallet. dash-core - + Error: Listening for incoming connections failed (listen returned error %s) Error: Listening for incoming connections failed (listen returned error %s) - + Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee. Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee. - + This error could occur if this wallet was not shutdown cleanly and was last loaded using a build with a newer version of Berkeley DB. If so, please use the software that last loaded this wallet This error could occur if this wallet was not shutdown cleanly and was last loaded using a build with a newer version of Berkeley DB. If so, please use the software that last loaded this wallet @@ -6071,7 +6279,7 @@ Go to File > Open Wallet to load a wallet. Error: Missing checksum - + Error: Unable to parse version %u as a uint32_t Error: Unable to parse version %u as a uint32_t @@ -6086,22 +6294,22 @@ Go to File > Open Wallet to load a wallet. Failed to listen on any port. Use -listen=0 if you want this. - + -maxtxfee is set very high! Fees this large could be paid on a single transaction. -maxtxfee is set very high! Fees this large could be paid on a single transaction. - + Cannot provide specific connections and have addrman find outgoing connections at the same. Cannot provide specific connections and have addrman find outgoing connections at the same. - + Found unconfirmed denominated outputs, will wait till they confirm to continue. Found unconfirmed denominated outputs, will wait till they confirm to continue. - + Invalid -socketevents ('%s') specified. Only these modes are supported: %s Invalid -socketevents ('%s') specified. Only these modes are supported: %s @@ -6111,12 +6319,12 @@ Go to File > Open Wallet to load a wallet. Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) - + SQLiteDatabase: Unknown sqlite wallet schema version %d. Only version %d is supported SQLiteDatabase: Unknown sqlite wallet schema version %d. Only version %d is supported - + Transaction index can't be disabled with governance validation enabled. Either start with -disablegovernance command line switch or enable transaction index. Transaction index can't be disabled with governance validation enabled. Either start with -disablegovernance command line switch or enable transaction index. @@ -6131,7 +6339,7 @@ Go to File > Open Wallet to load a wallet. Entry exceeds maximum size. - + Found enough users, signing ( waiting %s ) Found enough users, signing ( waiting %s ) @@ -6156,7 +6364,7 @@ Go to File > Open Wallet to load a wallet. Input is not valid. - + Insufficient funds. Insufficient funds. @@ -6191,7 +6399,7 @@ Go to File > Open Wallet to load a wallet. No Masternodes detected. - + No compatible Masternode found. No compatible Masternode found. @@ -6206,7 +6414,7 @@ Go to File > Open Wallet to load a wallet. Not in the Masternode list. - + Pruning blockstore… Pruning blockstore… @@ -6246,7 +6454,7 @@ Go to File > Open Wallet to load a wallet. Synchronizing governance objects… - + Unable to start HTTP server. See debug log for details. Unable to start HTTP server. See debug log for details. @@ -6256,12 +6464,12 @@ Go to File > Open Wallet to load a wallet. Unknown response. - + User Agent comment (%s) contains unsafe characters. User Agent comment (%s) contains unsafe characters. - + Can't find random Masternode. Can't find random Masternode. @@ -6281,7 +6489,7 @@ Go to File > Open Wallet to load a wallet. Can't mix while sync in progress. - + Invalid netmask specified in -whitelist: '%s' Invalid netmask specified in -whitelist: '%s' @@ -6291,17 +6499,17 @@ Go to File > Open Wallet to load a wallet. Invalid script detected. - + %s file contains all private keys from this wallet. Do not share it with anyone! %s file contains all private keys from this wallet. Do not share it with anyone! - + Failed to create backup, file already exists! This could happen if you restarted wallet in less than 60 seconds. You can continue if you are ok with this. Failed to create backup, file already exists! This could happen if you restarted wallet in less than 60 seconds. You can continue if you are ok with this. - + Make sure to encrypt your wallet and delete all non-encrypted backups after you have verified that the wallet works! Make sure to encrypt your wallet and delete all non-encrypted backups after you have verified that the wallet works! @@ -6316,17 +6524,17 @@ Go to File > Open Wallet to load a wallet. Prune configured below the minimum of %d MiB. Please use a higher number. - + Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node) Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node) - + The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct - + The transaction amount is too small to send after the fee has been deducted The transaction amount is too small to send after the fee has been deducted @@ -6351,12 +6559,7 @@ Go to File > Open Wallet to load a wallet. Wallet is locked, can't replenish keypool! Automatic backups and mixing are disabled, please unlock your wallet to replenish keypool. - - You need to rebuild the database using -reindex to change -timestampindex - You need to rebuild the database using -reindex to change -timestampindex - - - + You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain @@ -6441,7 +6644,12 @@ Go to File > Open Wallet to load a wallet. Error: Keypool ran out, please call keypoolrefill first - + + Error: No addresses available. + Error: No addresses available. + + + Exceeded max tries. Exceeded max tries. @@ -6475,6 +6683,11 @@ Go to File > Open Wallet to load a wallet. Failed to verify database Failed to verify database + + + Fee rate (%s) is lower than the minimum fee rate setting (%s) + Fee rate (%s) is lower than the minimum fee rate setting (%s) + Found enough users, signing… @@ -6486,7 +6699,12 @@ Go to File > Open Wallet to load a wallet. Ignoring duplicate -wallet %s. - + + Input not found or already spent + Input not found or already spent + + + Invalid P2P permission: '%s' Invalid P2P permission: '%s' @@ -6521,7 +6739,12 @@ Go to File > Open Wallet to load a wallet. Mixing in progress… - + + No addresses available + No addresses available + + + No errors detected. No errors detected. @@ -6551,7 +6774,7 @@ Go to File > Open Wallet to load a wallet. Prune cannot be configured with a negative value. - + Prune mode is incompatible with -disablegovernance=false. Prune mode is incompatible with -disablegovernance=false. @@ -6665,6 +6888,11 @@ Go to File > Open Wallet to load a wallet. Unable to open %s for writing Unable to open %s for writing + + + Unable to parse -maxuploadtarget: '%s' (possible integer overflow?) + Unable to parse -maxuploadtarget: '%s' (possible integer overflow?) + Unknown -blockfilterindex value %s. @@ -6681,7 +6909,7 @@ Go to File > Open Wallet to load a wallet. Upgrading UTXO database - + Verifying blocks… Verifying blocks… @@ -6711,17 +6939,7 @@ Go to File > Open Wallet to load a wallet. You can not start a masternode with wallet enabled. - - You need to rebuild the database using -reindex to change -addressindex - You need to rebuild the database using -reindex to change -addressindex - - - - You need to rebuild the database using -reindex to change -spentindex - You need to rebuild the database using -reindex to change -spentindex - - - + no mixing available. no mixing available. @@ -6731,7 +6949,7 @@ Go to File > Open Wallet to load a wallet. see debug.log for details. - + The %s developers The %s developers @@ -6742,6 +6960,21 @@ Go to File > Open Wallet to load a wallet. + -reindex-chainstate option is not compatible with -blockfilterindex. Please temporarily disable blockfilterindex while using -reindex-chainstate, or replace -reindex-chainstate with -reindex to fully rebuild all indexes. + -reindex-chainstate option is not compatible with -blockfilterindex. Please temporarily disable blockfilterindex while using -reindex-chainstate, or replace -reindex-chainstate with -reindex to fully rebuild all indexes. + + + + -reindex-chainstate option is not compatible with -coinstatsindex. Please temporarily disable coinstatsindex while using -reindex-chainstate, or replace -reindex-chainstate with -reindex to fully rebuild all indexes. + -reindex-chainstate option is not compatible with -coinstatsindex. Please temporarily disable coinstatsindex while using -reindex-chainstate, or replace -reindex-chainstate with -reindex to fully rebuild all indexes. + + + + -reindex-chainstate option is not compatible with -txindex. Please temporarily disable txindex while using -reindex-chainstate, or replace -reindex-chainstate with -reindex to fully rebuild all indexes. + -reindex-chainstate option is not compatible with -txindex. Please temporarily disable txindex while using -reindex-chainstate, or replace -reindex-chainstate with -reindex to fully rebuild all indexes. + + + Cannot downgrade wallet from version %i to version %i. Wallet version unchanged. Cannot downgrade wallet from version %i to version %i. Wallet version unchanged. @@ -6767,6 +7000,11 @@ Go to File > Open Wallet to load a wallet. + Error loading wallet. Wallet requires blocks to be downloaded, and software does not currently support loading wallets while blocks are being downloaded out of order when using assumeutxo snapshots. Wallet should be able to load successfully after node sync reaches height %s + Error loading wallet. Wallet requires blocks to be downloaded, and software does not currently support loading wallets while blocks are being downloaded out of order when using assumeutxo snapshots. Wallet should be able to load successfully after node sync reaches height %s + + + Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect. Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect. @@ -6786,12 +7024,22 @@ Go to File > Open Wallet to load a wallet. Error: Dumpfile version is not supported. This version of bitcoin-wallet only supports version 1 dumpfiles. Got dumpfile with version %s - + + Failed to rename invalid peers.dat file. Please move or delete it and try again. + Failed to rename invalid peers.dat file. Please move or delete it and try again. + + + File %s already exists. If you are sure this is what you want, move it out of the way first. File %s already exists. If you are sure this is what you want, move it out of the way first. + Incompatible options: -dnsseed=1 was explicitly specified, but -onlynet forbids connections to IPv4/IPv6 + Incompatible options: -dnsseed=1 was explicitly specified, but -onlynet forbids connections to IPv4/IPv6 + + + Incorrect or no devnet genesis block found. Wrong datadir for devnet specified? Incorrect or no devnet genesis block found. Wrong datadir for devnet specified? @@ -6836,7 +7084,22 @@ Go to File > Open Wallet to load a wallet. Please contribute if you find %s useful. Visit %s for further information about the software. - + + Prune mode is incompatible with -reindex-chainstate. Use full -reindex instead. + Prune mode is incompatible with -reindex-chainstate. Use full -reindex instead. + + + + The -txindex upgrade started by a previous version can not be completed. Restart with the previous version or run a full -reindex. + The -txindex upgrade started by a previous version can not be completed. Restart with the previous version or run a full -reindex. + + + + The block index db contains a legacy 'txindex'. To clear the occupied disk space, run a full -reindex, otherwise ignore this error. This error message will not be displayed again. + The block index db contains a legacy 'txindex'. To clear the occupied disk space, run a full -reindex, otherwise ignore this error. This error message will not be displayed again. + + + This is the maximum transaction fee you pay (in addition to the normal fee) to prioritize partial spend avoidance over regular coin selection. This is the maximum transaction fee you pay (in addition to the normal fee) to prioritize partial spend avoidance over regular coin selection. @@ -6871,7 +7134,12 @@ Go to File > Open Wallet to load a wallet. Warning: Private keys detected in wallet {%s} with disabled private keys - + + You need to rebuild the database using -reindex to enable -timestampindex + You need to rebuild the database using -reindex to enable -timestampindex + + + %s -- Incorrect seed, it should be a hex string %s -- Incorrect seed, it should be a hex string @@ -6976,7 +7244,7 @@ Go to File > Open Wallet to load a wallet. Error upgrading chainstate database - + Loading P2P addresses… Loading P2P addresses… @@ -6996,7 +7264,7 @@ Go to File > Open Wallet to load a wallet. Loading wallet… - + Failed to clear fulfilled requests cache at %s Failed to clear fulfilled requests cache at %s @@ -7041,7 +7309,7 @@ Go to File > Open Wallet to load a wallet. Failed to start a new mixing queue - + Importing… Importing… @@ -7056,7 +7324,7 @@ Go to File > Open Wallet to load a wallet. Initialization sanity check failed. %s is shutting down. - + Inputs vs outputs size mismatch. Inputs vs outputs size mismatch. @@ -7091,12 +7359,7 @@ Go to File > Open Wallet to load a wallet. Invalid spork address specified with -sporkaddr - - Prune mode is incompatible with -coinstatsindex. - Prune mode is incompatible with -coinstatsindex. - - - + Reducing -maxconnections from %d to %d, because of system limitations. Reducing -maxconnections from %d to %d, because of system limitations. @@ -7126,12 +7389,12 @@ Go to File > Open Wallet to load a wallet. Last queue was created too recently. - + %s corrupt. Try using the wallet tool dash-wallet to salvage or restoring a backup. %s corrupt. Try using the wallet tool dash-wallet to salvage or restoring a backup. - + Last successful action was too recent. Last successful action was too recent. @@ -7196,7 +7459,7 @@ Go to File > Open Wallet to load a wallet. Unable to locate enough non-denominated funds for this transaction. - + Unable to sign spork message, wrong key? Unable to sign spork message, wrong key? @@ -7216,12 +7479,7 @@ Go to File > Open Wallet to load a wallet. Unsupported logging category %s=%s. - - Upgrading txindex database - Upgrading txindex database - - - + Very low number of keys left: %d Very low number of keys left: %d @@ -7256,9 +7514,29 @@ Go to File > Open Wallet to load a wallet. You can not disable governance validation on a masternode. - + + You need to rebuild the database using -reindex to enable -addressindex + You need to rebuild the database using -reindex to enable -addressindex + + + + You need to rebuild the database using -reindex to enable -spentindex + You need to rebuild the database using -reindex to enable -spentindex + + + Your entries added successfully. Your entries added successfully. + + + Settings file could not be read + Settings file could not be read + + + + Settings file could not be written + Settings file could not be written + diff --git a/src/qt/locale/dash_en.xlf b/src/qt/locale/dash_en.xlf index def238ffca9f0..4b115b8c42bb6 100644 --- a/src/qt/locale/dash_en.xlf +++ b/src/qt/locale/dash_en.xlf @@ -51,6 +51,7 @@ &Delete &Delete 106 + ../addressbookpage.cpp121 Export the data in the current tab to a file @@ -109,49 +110,49 @@ &Copy Address &Copy Address - 111 + 112 Copy &Label Copy &Label - 112 + 113 &Edit &Edit - 113 - - - &Show address QR code - &Show address QR code 114 + + Show address &QR code + + 115 + QR code QR code - 251 + 239 Export Address List Export Address List - 321 + 307 Comma separated file Comma separated file - 324 - Expanded name of the CSV file format. See https://en.wikipedia.org/wiki/Comma-separated_values + 310 + Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values. There was an error trying to save the address list to %1. Please try again. There was an error trying to save the address list to %1. Please try again. - 340 + 326 An error message. %1 is a stand-in argument for the name of the file we attempted to save to. Exporting Failed Exporting Failed - 337 + 323 @@ -414,919 +415,956 @@ - + Runaway exception - - 498 + Runaway exception + 419 - + A fatal error occurred. %1 can no longer continue safely and will quit. - A fatal error occurred. %1 can no longer continue safely and will quit. - 499 + A fatal error occurred. %1 can no longer continue safely and will quit. + 420 - + Internal error - - 508 + Internal error + 429 - + An internal error occurred. %1 will attempt to continue safely. This is an unexpected bug which can be reported as described below. - - 509 + An internal error occurred. %1 will attempt to continue safely. This is an unexpected bug which can be reported as described below. + 430 Do you want to reset settings to default values, or to abort without making changes? Do you want to reset settings to default values, or to abort without making changes? - 170 + 165 Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting. - - A fatal error occured. Check that settings file is writable, or try running with -nosettings. - A fatal error occured. Check that settings file is writable, or try running with -nosettings. - 193 + + A fatal error occurred. Check that settings file is writable, or try running with -nosettings. + + 189 Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file. Choose data directory on startup (default: %u) Choose data directory on startup (default: %u) - 534 + 455 Set the font family. Possible values: %1. (default: %2) Set the font family. Possible values: %1. (default: %2) - 536 + 457 Set a scale factor which gets applied to the base font size. Possible range %1 (smallest fonts) to %2 (largest fonts). (default: %3) Set a scale factor which gets applied to the base font size. Possible range %1 (smallest fonts) to %2 (largest fonts). (default: %3) - 537 + 458 Set the font weight for bold texts. Possible range %1 to %2 (default: %3) Set the font weight for bold texts. Possible range %1 to %2 (default: %3) - 538 + 459 Set the font weight for normal texts. Possible range %1 to %2 (default: %3) Set the font weight for normal texts. Possible range %1 to %2 (default: %3) - 539 + 460 Set language, for example "de_DE" (default: system locale) Set language, for example "de_DE" (default: system locale) - 540 + 461 Start minimized Start minimized - 541 + 462 Reset all settings changed in the GUI Reset all settings changed in the GUI - 542 + 463 Show splash screen on startup (default: %u) Show splash screen on startup (default: %u) - 543 + 464 Error: Specified data directory "%1" does not exist. Error: Specified data directory "%1" does not exist. - 638 + 560 Error: Cannot parse configuration file: %1. Error: Cannot parse configuration file: %1. - 644 + 566 Error: %1 Error: %1 - 659 + 581 Error: Failed to load application fonts. Error: Failed to load application fonts. - 710 + 632 Error: Specified font-family invalid. Valid values: %1. Error: Specified font-family invalid. Valid values: %1. - 723 + 645 Error: Specified font-weight-normal invalid. Valid range %1 to %2. Error: Specified font-weight-normal invalid. Valid range %1 to %2. - 733 + 655 Error: Specified font-weight-bold invalid. Valid range %1 to %2. Error: Specified font-weight-bold invalid. Valid range %1 to %2. - 743 + 665 Error: Specified font-scale invalid. Valid range %1 to %2. Error: Specified font-scale invalid. Valid range %1 to %2. - 754 + 676 Error: Invalid -custom-css-dir path. Error: Invalid -custom-css-dir path. - 768 + 690 Error: %1 CSS file(s) missing in -custom-css-dir path. Error: %1 CSS file(s) missing in -custom-css-dir path. - 788 + 710 - + %1 didn't yet exit safely… + %1 didn't yet exit safely… + 742 + + + + + Settings file could not be read + + 158 + + + Settings file could not be written - 820 + 181 - + &Overview &Overview - 681 + 683 - + Show general overview of wallet Show general overview of wallet - 682 + 684 - + &Send &Send - 353 + 356 - + Send coins to a Dash address Send coins to a Dash address - 354 + 357 - + &Receive &Receive - 362 + 365 - + Request payments (generates QR codes and dash: URIs) Request payments (generates QR codes and dash: URIs) - 363 + 366 - + Ctrl+Q - - 379 + Ctrl+Q + 382 - + &Options… - - 388 + &Options… + 391 - + &Encrypt Wallet… - - 395 + &Encrypt Wallet… + 398 - + &Backup Wallet… - - 397 + &Backup Wallet… + 400 - + &Change Passphrase… - - 399 + &Change Passphrase… + 402 - + &Unlock Wallet… - - 401 + &Unlock Wallet… + 404 - + Sign &message… - - 404 + Sign &message… + 407 - + &Verify message… - - 406 + &Verify message… + 409 - + &Load PSBT from file… - - 408 + &Load PSBT from file… + 411 - + Load PSBT from clipboard… - - 410 + Load PSBT from clipboard… + 413 - + &Sending addresses &Sending addresses - 437 + 440 - + &Receiving addresses &Receiving addresses - 439 + 442 - + Open &URI… - - 442 + Open &URI… + 445 - + Open Wallet Open Wallet - 445 + 448 - + Open a wallet Open a wallet - 447 + 450 - + Close wallet Close wallet - 451 + 454 - + No wallets available No wallets available - 540 + 542 - + &Window &Window - 609 + 611 - + Minimize Minimize - 611 + 613 - + Zoom Zoom - 621 + 623 - + Main Window Main Window - 639 + 641 - + &Transactions &Transactions - 696 + 698 - + Browse transaction history Browse transaction history - 697 + 699 - + &Masternodes &Masternodes - 708 + 710 - + Browse masternodes Browse masternodes - 709 + 711 - + E&xit E&xit - 377 + 380 - + Quit application Quit application - 378 + 381 - + About &Qt About &Qt - 385 + 388 - + Show information about Qt Show information about Qt - 386 + 389 - + &About %1 &About %1 - 381 + 384 - + Send %1 funds to a Dash address Send %1 funds to a Dash address - 359 + 362 - + Modify configuration options for %1 Modify configuration options for %1 - 389 + 392 - + &Show / Hide &Show / Hide - 392 + 395 - + Show or hide the main Window Show or hide the main Window - 393 + 396 - + Encrypt the private keys that belong to your wallet Encrypt the private keys that belong to your wallet - 396 + 399 - + Backup wallet to another location Backup wallet to another location - 398 + 401 - + Change the passphrase used for wallet encryption Change the passphrase used for wallet encryption - 400 + 403 - + Unlock wallet Unlock wallet - 402 + 405 - + &Lock Wallet &Lock Wallet - 403 + 406 - + Sign messages with your Dash addresses to prove you own them Sign messages with your Dash addresses to prove you own them - 405 + 408 - + Verify messages to ensure they were signed with specified Dash addresses Verify messages to ensure they were signed with specified Dash addresses - 407 + 410 - + &Information &Information - 413 + 416 - + Show diagnostic information Show diagnostic information - 414 + 417 - + &Debug console &Debug console - 415 + 418 - + &Network Monitor &Network Monitor - 417 + 420 - + Show network monitor Show network monitor - 418 + 421 - + &Peers list &Peers list - 419 + 422 - + Show peers info Show peers info - 420 + 423 - + Wallet &Repair Wallet &Repair - 421 + 424 - + Show wallet repair options Show wallet repair options - 422 + 425 - + Open Wallet &Configuration File Open Wallet &Configuration File - 423 + 426 - + Open configuration file Open configuration file - 424 + 427 - + Show Automatic &Backups Show Automatic &Backups - 427 + 430 - + Show automatically created wallet backups Show automatically created wallet backups - 428 + 431 - + Show the list of used sending addresses and labels Show the list of used sending addresses and labels - 438 + 441 - + Show the list of used receiving addresses and labels Show the list of used receiving addresses and labels - 440 + 443 - + &Command-line options &Command-line options - 460 + 463 - + Show the %1 help message to get a list with possible Dash command-line options Show the %1 help message to get a list with possible Dash command-line options - 462 + 465 - + default wallet default wallet - 519 + 522 - + %1 client %1 client - 1011 + 1030 - + Wallet: %1 Wallet: %1 - 1759 + 1803 - + Wallet is <b>unencrypted</b> Wallet is <b>unencrypted</b> - 1834 + 1878 - + &File &File - 573 + 575 - + Show information about %1 Show information about %1 - 382 + 385 - + Load Partially Signed Dash Transaction Load Partially Signed Dash Transaction - 409 + 412 - + Load Partially Signed Bitcoin Transaction from clipboard Load Partially Signed Bitcoin Transaction from clipboard - 411 + 414 - + Open debugging and diagnostic console Open debugging and diagnostic console - 416 + 419 - + Open a dash: URI Open a dash: URI - 443 + 446 - + Create a new wallet Create a new wallet - 455 + 458 - + Close all wallets Close all wallets - 458 + 461 - + %1 &information %1 &information - 464 + 467 - + Show the %1 basic information Show the %1 basic information - 466 + 469 - + &Discreet mode &Discreet mode - 468 + 471 - + Mask the values in the Overview tab - 470 + 473 - + &Settings &Settings - 596 + 598 - + &Help &Help - 659 + 661 - + Tabs toolbar Tabs toolbar - 672 + 674 - + &Governance &Governance - 717 + 719 - + View Governance Proposals View Governance Proposals - 718 + 720 - 1272 - + 1293 + A substring of the tooltip. + %n active connection(s) to Dash network %n active connection to Dash network - + %n active connection(s) to Dash network %n active connections to Dash network - + Network activity disabled Network activity disabled - 1274 + 1295 - 1451 - + 1493 + Processed %n block(s) of transaction history. Processed %n block of transaction history. - + Processed %n block(s) of transaction history. Processed %n blocks of transaction history. - + %1 behind %1 behind - 1470 + 1512 - + Close Wallet… - - 450 + Close Wallet… + 453 - + Create Wallet… - - 453 + Create Wallet… + 456 - + Close All Wallets… - - 457 + Close All Wallets… + 460 - + Ctrl+Shift+D - - 469 + Ctrl+Shift+D + 472 - + Ctrl+M + Ctrl+M + 614 + + + Click for more actions. - 612 + 1303 + A substring of the tooltip. "More actions" are available via the context menu. - - Syncing Headers (%1%)… + + Show Peers tab - 1304 + 1326 + A context menu item. The "Peers tab" is an element of the "Node window". - - Synchronizing with network… + + Disable network activity - 1425 + 1334 + A context menu item. - - Indexing blocks on disk… + + Enable network activity - 1430 + 1336 + A context menu item. The network activity was disabled previously. - + + Syncing Headers (%1%)… + Syncing Headers (%1%)… + 1346 + + + Synchronizing with network… + Synchronizing with network… + 1467 + + + Indexing blocks on disk… + Indexing blocks on disk… + 1472 + + Processing blocks on disk… - - 1432 + Processing blocks on disk… + 1474 - + Reindexing blocks on disk… - - 1436 + Reindexing blocks on disk… + 1478 - + Connecting to peers… - - 1442 + Connecting to peers… + 1484 - + Catching up… - - 1474 + Catching up… + 1516 - + Last received block was generated %1 ago. Last received block was generated %1 ago. - 1484 + 1526 - + Transactions after this will not yet be visible. Transactions after this will not yet be visible. - 1486 + 1528 - + Up to date Up to date - 1525 + 1567 - + Synchronizing additional data: %p% Synchronizing additional data: %p% - 1538 + 1580 - + Error Error - 1569 + 1611 - + Error: %1 Error: %1 - 1570 + 1612 - + Warning Warning - 1573 + 1615 - + Warning: %1 Warning: %1 - 1574 + 1616 - + Information Information - 1577 + 1619 - + Received and sent multiple transactions Received and sent multiple transactions - 1732 + 1776 - + Sent multiple transactions Sent multiple transactions - 1734 + 1778 - + Received multiple transactions Received multiple transactions - 1736 + 1780 - + Sent Amount: %1 Sent Amount: %1 - 1746 + 1790 - + Received Amount: %1 Received Amount: %1 - 1749 + 1793 - + Date: %1 Date: %1 - 1756 + 1800 - + Amount: %1 Amount: %1 - 1757 + 1801 - + Type: %1 Type: %1 - 1761 + 1805 - + Label: %1 Label: %1 - 1763 + 1807 - + Address: %1 Address: %1 - 1765 + 1809 - + Sent transaction Sent transaction - 1766 + 1810 - + Incoming transaction Incoming transaction - 1766 + 1810 - + HD key generation is <b>enabled</b> HD key generation is <b>enabled</b> - 1821 + 1865 - + Wallet is <b>encrypted</b> and currently <b>unlocked</b> Wallet is <b>encrypted</b> and currently <b>unlocked</b> - 1843 + 1887 - + Wallet is <b>encrypted</b> and currently <b>unlocked</b> for mixing only Wallet is <b>encrypted</b> and currently <b>unlocked</b> for mixing only - 1852 + 1896 - + Wallet is <b>encrypted</b> and currently <b>locked</b> Wallet is <b>encrypted</b> and currently <b>locked</b> - 1861 + 1905 - + Proxy is <b>enabled</b>: %1 Proxy is <b>enabled</b>: %1 - 1894 + 1937 - + Original message: Original message: - 1986 + 2029 - + Unit to show amounts in. Click to select another unit. Unit to show amounts in. Click to select another unit. - 2033 + 2076 - + Quantity: Quantity: 42 - + Bytes: Bytes: 65 - + Amount: Amount: 104 - + Fee: Fee: 172 - + Coin Selection Coin Selection 14 - + Dust: Dust: 130 - + After Fee: After Fee: 211 - + Change: Change: 237 - + (un)select all (un)select all 293 - + toggle lock state toggle lock state 309 - + Tree mode Tree mode 341 - + List mode List mode 354 - + (1 locked) (1 locked) 364 - + Amount Amount 410 - + Received with label Received with label 415 - + Received with address Received with address 420 - + Mixing Rounds Mixing Rounds 425 - + Date Date 430 - + Confirmations Confirmations 435 - + Confirmed Confirmed 438 @@ -1335,207 +1373,225 @@ - - Copy address - Copy address - 66 - - - Copy label - Copy label - 67 - - + Copy amount Copy amount + 78 + + + &Copy address + + 67 + + + Copy &label + 68 - 94 - - Copy transaction ID - Copy transaction ID + + Copy &amount + 69 - - Lock unspent - Lock unspent + + Copy transaction &ID and output index + 70 - - Unlock unspent - Unlock unspent - 71 + + L&ock unspent + + 72 - + + &Unlock unspent + + 73 + + Copy quantity Copy quantity - 93 + 77 - + Copy fee Copy fee - 95 + 79 - + Copy after fee Copy after fee - 96 + 80 - + Copy bytes Copy bytes - 97 + 81 - + Copy dust Copy dust - 98 + 82 - + Copy change Copy change - 99 + 83 - + Please switch to "List mode" to use this function. Please switch to "List mode" to use this function. - 238 + 222 - + (%1 locked) (%1 locked) - 445 + 433 - + yes yes - 602 + 590 - + no no - 602 + 590 - + This label turns red if any recipient receives an amount smaller than the current dust threshold. This label turns red if any recipient receives an amount smaller than the current dust threshold. - 616 + 604 - + Can vary +/- %1 duff(s) per input. Can vary +/- %1 duff(s) per input. - 621 + 609 - + Some coins were unselected because they were spent. Some coins were unselected because they were spent. - 641 + 629 - + Show all coins Show all coins - 665 + 653 - + Hide %1 coins Hide %1 coins - 667 + 655 - + Show all %1 coins Show all %1 coins - 671 + 659 - + Show spendable coins only Show spendable coins only - 673 + 661 - + (no label) (no label) - 693 - 768 + 681 + 756 - + change from %1 (%2) change from %1 (%2) - 763 + 751 - + (change) (change) - 764 + 752 - + n/a n/a - 788 + 776 - + + Create Wallet + Create Wallet + 257 + Title of window indicating the progress of creation of a new wallet. + + Creating Wallet <b>%1</b>… - - 254 + Creating Wallet <b>%1</b>… + 260 + Descriptive text of the create wallet progress window which indicates to the user which wallet is currently being created. - + Create wallet failed Create wallet failed - 282 + 288 - + Create wallet warning Create wallet warning - 284 + 290 - + Open wallet failed Open wallet failed - 323 + 329 - + Open wallet warning Open wallet warning - 325 + 331 - + default wallet default wallet - 335 + 341 + + + Open Wallet + Open Wallet + 345 + Title of window indicating the progress of opening of a wallet. - + Opening Wallet <b>%1</b>… - - 337 + Opening Wallet <b>%1</b>… + 348 + Descriptive text of the open wallet progress window which indicates to the user which wallet is currently being opened. - + Close wallet Close wallet 87 - + Are you sure you wish to close the wallet <i>%1</i>? Are you sure you wish to close the wallet <i>%1</i>? 88 - + Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled. Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled. 89 - + Close all wallets Close all wallets 102 - + Are you sure you wish to close all wallets? Are you sure you wish to close all wallets? 103 @@ -1544,105 +1600,105 @@ - + Create Wallet Create Wallet 14 - + Wallet Name Wallet Name 25 - + Wallet Wallet 38 - + Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice. Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice. 47 - + Encrypt Wallet Encrypt Wallet 50 - + Advanced Options Advanced Options 76 - + Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets. Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets. 85 - + Disable Private Keys Disable Private Keys 88 - + Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time. Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time. 95 - + Make Blank Wallet Make Blank Wallet 98 - + Use descriptors for scriptPubKey management. This feature is well-tested but still considered experimental and not recommended for use yet. - + Use descriptors for scriptPubKey management. This feature is well-tested but still considered experimental and not recommended for use yet. 105 - + Descriptor Wallet (EXPERIMENTAL) - + Descriptor Wallet (EXPERIMENTAL) 108 - + Create Create 21 - + Compiled without sqlite support (required for descriptor wallets) - + Compiled without sqlite support (required for descriptor wallets) 62 - + Edit Address Edit Address 14 - + &Label &Label 25 - + The label associated with this address list entry The label associated with this address list entry 35 - + &Address &Address 42 - + The address associated with this address list entry. This can only be modified for sending addresses. The address associated with this address list entry. This can only be modified for sending addresses. 52 @@ -1651,42 +1707,42 @@ - + New sending address New sending address 31 - + Edit receiving address Edit receiving address 34 - + Edit sending address Edit sending address 38 - + The entered address "%1" is not a valid Dash address. The entered address "%1" is not a valid Dash address. 114 - + Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. 147 - + The entered address "%1" is already in the address book with label "%2". The entered address "%1" is already in the address book with label "%2". 152 - + Could not unlock wallet. Could not unlock wallet. 124 - + New key generation failed. New key generation failed. 129 @@ -1695,54 +1751,54 @@ - + A new data directory will be created. A new data directory will be created. 74 - + name name 96 - + Directory already exists. Add %1 if you intend to create a new directory here. Directory already exists. Add %1 if you intend to create a new directory here. 98 - + Path already exists, and is not a directory. Path already exists, and is not a directory. 101 - + Cannot create data directory here. Cannot create data directory here. 108 - + %1 GB of free space available - + %1 GB of free space available 307 - + (of %1 GB needed) - + (of %1 GB needed) 309 - + (%1 GB needed for full chain) - + (%1 GB needed for full chain) 312 - + At least %1 GB of data will be stored in this directory, and it will grow over time. At least %1 GB of data will be stored in this directory, and it will grow over time. 384 - + Approximately %1 GB of data will be stored in this directory. Approximately %1 GB of data will be stored in this directory. 387 @@ -1750,31 +1806,31 @@ 396 Explanatory text on the capability of the current prune target. - + (sufficient to restore backups %n day(s) old) (sufficient to restore backups %n day old) - + (sufficient to restore backups %n day(s) old) (sufficient to restore backups %n days old) - + %1 will download and store a copy of the Dash block chain. %1 will download and store a copy of the Dash block chain. 398 - + The wallet will also be stored in this directory. The wallet will also be stored in this directory. 400 - + Error: Specified data directory "%1" cannot be created. Error: Specified data directory "%1" cannot be created. 255 - + Error Error 286 @@ -1783,27 +1839,27 @@ - + Form Form 14 - + Filter List: Filter List: 57 - + Filter proposal list Filter proposal list 64 - + Proposal Count: Proposal Count: 87 - + Filter by Title Filter by Title 67 @@ -1812,66 +1868,66 @@ - + Proposal Info: %1 Proposal Info: %1 - 409 + 410 - + Passing +%1 Passing +%1 85 - + Needs additional %1 votes Needs additional %1 votes 87 - + Yes Yes 141 - + No No 141 - + Hash Hash 181 - + Title Title 183 - + Start Start 185 - + End End 187 - + Amount Amount 189 - + Active Active 191 - + Status Status 193 @@ -1880,39 +1936,39 @@ - + version version 40 - + About %1 About %1 44 - + Command-line options Command-line options 64 - + %1 information %1 information 111 - + <h3>%1 Basics</h3> %1 gives you true financial privacy by obscuring the origins of your funds. All the Dash in your wallet is comprised of different "inputs" which you can think of as separate, discrete coins.<br> %1 uses an innovative process to mix your inputs with the inputs of two or more other people, without having your coins ever leave your wallet. You retain control of your money at all times.<hr> <b>The %1 process works like this:</b><ol type="1"> <li>%1 begins by breaking your transaction inputs down into standard denominations. These denominations are 0.001 DASH, 0.01 DASH, 0.1 DASH, 1 DASH and 10 DASH -- sort of like the paper money you use every day.</li> <li>Your wallet then sends requests to specially configured software nodes on the network, called "masternodes." These masternodes are informed then that you are interested in mixing a certain denomination. No identifiable information is sent to the masternodes, so they never know "who" you are.</li> <li>When two or more other people send similar messages, indicating that they wish to mix the same denomination, a mixing session begins. The masternode mixes up the inputs and instructs all three users' wallets to pay the now-transformed input back to themselves. Your wallet pays that denomination directly to itself, but in a different address (called a change address).</li> <li>In order to fully obscure your funds, your wallet must repeat this process a number of times with each denomination. Each time the process is completed, it's called a "round." Each round of %1 makes it exponentially more difficult to determine where your funds originated.</li> <li>This mixing process happens in the background without any intervention on your part. When you wish to make a transaction, your funds will already be mixed. No additional waiting is required.</li> </ol> <hr><b>IMPORTANT:</b> Your wallet only contains 1000 of these "change addresses." Every time a mixing event happens, up to 9 of your addresses are used up. This means those 1000 addresses last for about 100 mixing events. When 900 of them are used, your wallet must create more addresses. It can only do this, however, if you have automatic backups enabled.<br> Consequently, users who have backups disabled will also have %1 disabled. <hr>For more information, see the <a style="%2" href="%3">%1 documentation</a>. <h3>%1 Basics</h3> %1 gives you true financial privacy by obscuring the origins of your funds. All the Dash in your wallet is comprised of different "inputs" which you can think of as separate, discrete coins.<br> %1 uses an innovative process to mix your inputs with the inputs of two or more other people, without having your coins ever leave your wallet. You retain control of your money at all times.<hr> <b>The %1 process works like this:</b><ol type="1"> <li>%1 begins by breaking your transaction inputs down into standard denominations. These denominations are 0.001 DASH, 0.01 DASH, 0.1 DASH, 1 DASH and 10 DASH -- sort of like the paper money you use every day.</li> <li>Your wallet then sends requests to specially configured software nodes on the network, called "masternodes." These masternodes are informed then that you are interested in mixing a certain denomination. No identifiable information is sent to the masternodes, so they never know "who" you are.</li> <li>When two or more other people send similar messages, indicating that they wish to mix the same denomination, a mixing session begins. The masternode mixes up the inputs and instructs all three users' wallets to pay the now-transformed input back to themselves. Your wallet pays that denomination directly to itself, but in a different address (called a change address).</li> <li>In order to fully obscure your funds, your wallet must repeat this process a number of times with each denomination. Each time the process is completed, it's called a "round." Each round of %1 makes it exponentially more difficult to determine where your funds originated.</li> <li>This mixing process happens in the background without any intervention on your part. When you wish to make a transaction, your funds will already be mixed. No additional waiting is required.</li> </ol> <hr><b>IMPORTANT:</b> Your wallet only contains 1000 of these "change addresses." Every time a mixing event happens, up to 9 of your addresses are used up. This means those 1000 addresses last for about 100 mixing events. When 900 of them are used, your wallet must create more addresses. It can only do this, however, if you have automatic backups enabled.<br> Consequently, users who have backups disabled will also have %1 disabled. <hr>For more information, see the <a style="%2" href="%3">%1 documentation</a>. 115 - + %1 is shutting down… - + %1 is shutting down… 189 - + Do not shut down the computer until this window disappears. Do not shut down the computer until this window disappears. 190 @@ -1921,57 +1977,57 @@ - + Welcome Welcome 14 - + Welcome to %1. Welcome to %1. 23 - + As this is the first time the program is launched, you can choose where %1 will store its data. As this is the first time the program is launched, you can choose where %1 will store its data. 49 - + Limit block chain storage to Limit block chain storage to 238 - + Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features. Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features. 241 - + GB GB 248 - + This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. 216 - + When you click OK, %1 will begin to download and process the full %4 block chain (%2 GB) starting with the earliest transactions in %3 when %4 initially launched. - + When you click OK, %1 will begin to download and process the full %4 block chain (%2 GB) starting with the earliest transactions in %3 when %4 initially launched. 206 - + If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low. If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low. 226 - + Use the default data directory Use the default data directory 66 - + Use a custom data directory: Use a custom data directory: 73 @@ -1980,97 +2036,97 @@ - + Form Form 14 - + Status Status 142 - + Filter List: Filter List: 57 - + Filter masternode list Filter masternode list 64 - + Node Count: Node Count: 97 - + Show only masternodes this wallet has keys for. Show only masternodes this wallet has keys for. 74 - + My masternodes only My masternodes only 77 - + Service Service 132 - + Type Type 137 - + PoSe Score PoSe Score 147 - + Registered Registered 152 - + Last Paid Last Paid 157 - + Next Payment Next Payment 162 - + Payout Address Payout Address 167 - + Operator Reward Operator Reward 172 - + Collateral Address Collateral Address 177 - + Owner Address Owner Address 182 - + Voting Address Voting Address 187 - + Filter by any property (e.g. address or protx hash) Filter by any property (e.g. address or protx hash) 67 @@ -2079,126 +2135,126 @@ - + Copy ProTx Hash Copy ProTx Hash - 84 + 85 - + Copy Collateral Outpoint Copy Collateral Outpoint - 85 + 86 - + Please wait… - - 146 - 326 + Please wait… + 143 + 324 - + Updating… - - 195 + Updating… + 192 - + ENABLED ENABLED - 232 + 230 - + POSE_BANNED POSE_BANNED - 232 + 230 - + UNKNOWN UNKNOWN - 246 - 269 + 244 + 267 - + to %1 to %1 - 259 + 257 - + to UNKNOWN to UNKNOWN - 261 + 259 - + but not claimed but not claimed - 264 + 262 - + NONE NONE - 252 + 250 - + Additional information for DIP3 Masternode %1 Additional information for DIP3 Masternode %1 - 372 + 370 - + Form Form 14 - + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the Dash network, as detailed below. Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the Dash network, as detailed below. 114 - + Attempting to spend Dash that are affected by not-yet-displayed transactions will not be accepted by the network. Attempting to spend Dash that are affected by not-yet-displayed transactions will not be accepted by the network. 127 - + Number of blocks left Number of blocks left 187 - + Unknown… - + Unknown… 194 214 - ../modaloverlay.cpp166 + ../modaloverlay.cpp172 - + calculating… - + calculating… 246 260 - + Last block time Last block time 201 - + Progress Progress 221 - + Progress increase per hour Progress increase per hour 239 - + Estimated time left until synced Estimated time left until synced 253 - + Hide Hide 290 @@ -2207,33 +2263,33 @@ - + %1 is currently syncing. It will download headers and blocks from peers and validate them until reaching the tip of the block chain. %1 is currently syncing. It will download headers and blocks from peers and validate them until reaching the tip of the block chain. - 48 + 49 - + Unknown. Syncing Headers (%1, %2%)… - - 172 + Unknown. Syncing Headers (%1, %2%)… + 178 - + unknown unknown - 137 + 143 - + Open URI Open URI 14 - + URI: URI: 22 @@ -2242,834 +2298,859 @@ - + Options Options 20 - + &Main &Main 37 - + Size of &database cache Size of &database cache 223 - + Number of script &verification threads Number of script &verification threads 269 - + (0 = auto, <0 = leave that many cores free) (0 = auto, <0 = leave that many cores free) 282 - + W&allet W&allet 47 - + &Appearance &Appearance 87 - + Show the icon in the system tray. - + Show the icon in the system tray. 135 - + &Show tray icon - + &Show tray icon 138 - + Prune &block storage to Prune &block storage to 173 - + GB GB 183 - + Reverting this setting requires re-downloading the entire blockchain. Reverting this setting requires re-downloading the entire blockchain. 208 - + Maximum database cache size. A larger cache can contribute to faster sync, after which the benefit is less pronounced for most use cases. Lowering the cache size will reduce memory usage. Unused mempool memory is shared for this cache. Maximum database cache size. A larger cache can contribute to faster sync, after which the benefit is less pronounced for most use cases. Lowering the cache size will reduce memory usage. Unused mempool memory is shared for this cache. 220 Tooltip text for Options window setting that sets the size of the database cache. Explains the corresponding effects of increasing/decreasing this value. - + MiB MiB 239 - + Set the number of script verification threads. Negative values correspond to the number of cores you want to leave free to the system. Set the number of script verification threads. Negative values correspond to the number of cores you want to leave free to the system. 266 Tooltip text for Options window setting that sets the number of script verification threads. Explains that negative values mean to leave these many cores free to the system. - + + This allows you or a third party tool to communicate with the node through command-line and JSON-RPC commands. + + 304 + Tooltip text for Options window setting that enables the RPC server. + + + Enable R&PC server + + 307 + An Options window setting to enable the RPC server. + + + Whether to set subtract fee from amount as default or not. + + 331 + Tooltip text for Options window setting that sets subtracting the fee from a sending amount as default. + + + Subtract &fee from amount by default + + 334 + An Options window setting to set subtracting the fee from a sending amount as default. + + Whether to keep the specified custom change address or not. Whether to keep the specified custom change address or not. - 333 + 353 - + Keep custom change &address Keep custom change &address - 336 + 356 - + Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab. Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab. - 343 + 363 - + Show Masternodes Tab Show Masternodes Tab - 346 + 366 - + Show additional tab listing governance proposals. Show additional tab listing governance proposals. - 353 + 373 - + Show Governance Tab Show Governance Tab - 356 + 376 - + If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. - 363 + 383 - + Show mixing interface on Overview screen and reveal an additional screen which allows to spend fully mixed coins only.<br/>A new tab with more settings will also appear in this dialog, please make sure to check them before mixing your coins. Show mixing interface on Overview screen and reveal an additional screen which allows to spend fully mixed coins only.<br/>A new tab with more settings will also appear in this dialog, please make sure to check them before mixing your coins. - 373 + 393 - + Show additional information and buttons on overview screen. Show additional information and buttons on overview screen. - 402 + 422 - + Enable advanced interface Enable advanced interface - 405 + 425 - + Show system popups for mixing transactions<br/>just like for all other transaction types. Show system popups for mixing transactions<br/>just like for all other transaction types. - 412 + 432 - + Show popups for mixing transactions Show popups for mixing transactions - 415 + 435 - + Show warning dialog when the wallet has very low number of keys left. Show warning dialog when the wallet has very low number of keys left. - 422 + 442 - + Warn if the wallet is running out of keys Warn if the wallet is running out of keys - 425 + 445 - + Whether to use experimental mode with multiple mixing sessions per block.<br/>Note: You must use this feature carefully.<br/>Make sure you always have recent wallet (auto)backup in a safe place! Whether to use experimental mode with multiple mixing sessions per block.<br/>Note: You must use this feature carefully.<br/>Make sure you always have recent wallet (auto)backup in a safe place! - 432 + 452 - + Enable &multi-session Enable &multi-session - 435 + 455 - + Use this many separate masternodes in parallel to mix funds.<br/>Note: You must use this feature carefully.<br/>Make sure you always have recent wallet (auto)backup in a safe place! Use this many separate masternodes in parallel to mix funds.<br/>Note: You must use this feature carefully.<br/>Make sure you always have recent wallet (auto)backup in a safe place! - 444 + 464 - + Parallel sessions Parallel sessions - 447 + 467 - + Mixing rounds Mixing rounds - 470 + 490 - + This amount acts as a threshold to turn off mixing once it's reached. This amount acts as a threshold to turn off mixing once it's reached. - 490 + 510 - + Target balance Target balance - 505 + 525 - + How many inputs of each denominated amount are created.<br/>Lower these numbers if you want fewer smaller denominations. How many inputs of each denominated amount are created.<br/>Lower these numbers if you want fewer smaller denominations. - 528 + 548 - + Inputs per denomination Inputs per denomination - 531 + 551 - + Try to create at least this many inputs for each denominated amount.<br/>Lower this number if you want fewer smaller denominations. Try to create at least this many inputs for each denominated amount.<br/>Lower this number if you want fewer smaller denominations. - 542 + 562 - + Target Target - 545 + 565 - + Create up to this many inputs for each denominated amount.<br/>Lower this number if you want fewer smaller denominations. Create up to this many inputs for each denominated amount.<br/>Lower this number if you want fewer smaller denominations. - 572 + 592 - + Maximum Maximum - 575 + 595 - + Automatically open the Dash Core client port on the router. This only works when your router supports UPnP and it is enabled. Automatically open the Dash Core client port on the router. This only works when your router supports UPnP and it is enabled. - 621 + 641 - + Map port using NA&T-PMP Map port using NA&T-PMP - 634 + 654 - + Accept connections from outside. Accept connections from outside. - 641 + 661 - + Allow incomin&g connections Allow incomin&g connections - 644 + 664 - + Connect to the Dash network through a SOCKS5 proxy. Connect to the Dash network through a SOCKS5 proxy. - 651 + 671 - + &Connect through SOCKS5 proxy (default proxy): &Connect through SOCKS5 proxy (default proxy): - 654 + 674 - + Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type. Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type. - 757 - 770 - 783 + 777 + 790 + 803 - + Language missing or translation incomplete? Help contributing translations here: https://explore.transifex.com/dash/dash/ - - 952 + Language missing or translation incomplete? Help contributing translations here: +https://explore.transifex.com/dash/dash/ + 972 - + Options set in this dialog are overridden by the command line or in the configuration file: Options set in this dialog are overridden by the command line or in the configuration file: - 1083 + 1103 - + Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu. Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu. 158 - + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items.<br/>%s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items.<br/>%s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - 1016 - 1029 + 1036 + 1049 - + &Third party transaction URLs &Third party transaction URLs - 1019 + 1039 - + Whether to show coin control features or not. Whether to show coin control features or not. - 323 + 343 - + Automatically start %1 after logging in to the system. Automatically start %1 after logging in to the system. 112 - + &Start %1 on system login &Start %1 on system login 115 - + Enable coin &control features Enable coin &control features - 326 + 346 - + &Spend unconfirmed change &Spend unconfirmed change - 366 + 386 - + This setting determines the amount of individual masternodes that an input will be mixed through.<br/>More rounds of mixing gives a higher degree of privacy, but also costs more in fees. This setting determines the amount of individual masternodes that an input will be mixed through.<br/>More rounds of mixing gives a higher degree of privacy, but also costs more in fees. - 467 + 487 - + &Network &Network 67 - + Enabling pruning significantly reduces the disk space required to store transactions. All blocks are still fully validated. Reverting this setting requires re-downloading the entire blockchain. Enabling pruning significantly reduces the disk space required to store transactions. All blocks are still fully validated. Reverting this setting requires re-downloading the entire blockchain. 170 - + Map port using &UPnP Map port using &UPnP - 624 + 644 - + Automatically open the Dash Core client port on the router. This only works when your router supports NAT-PMP and it is enabled. The external port could be random. Automatically open the Dash Core client port on the router. This only works when your router supports NAT-PMP and it is enabled. The external port could be random. - 631 + 651 - + Proxy &IP: Proxy &IP: - 663 - 820 + 683 + 840 - + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - 688 - 845 + 708 + 865 - + &Port: &Port: - 695 - 852 + 715 + 872 - + Port of the proxy (e.g. 9050) Port of the proxy (e.g. 9050) - 720 - 877 + 740 + 897 - + Used for reaching peers via: Used for reaching peers via: - 744 + 764 - + IPv4 IPv4 - 760 + 780 - + IPv6 IPv6 - 773 + 793 - + Tor Tor - 786 + 806 - + Show only a tray icon after minimizing the window. Show only a tray icon after minimizing the window. 148 - + &Minimize to the tray instead of the taskbar &Minimize to the tray instead of the taskbar 151 - + M&inimize on close M&inimize on close 161 - + &Display &Display 77 - + Connect to the Dash network through a separate SOCKS5 proxy for Tor onion services. Connect to the Dash network through a separate SOCKS5 proxy for Tor onion services. - 808 + 828 - + Use separate SOCKS&5 proxy to reach peers via Tor onion services: Use separate SOCKS&5 proxy to reach peers via Tor onion services: - 811 + 831 - + User Interface &language: User Interface &language: - 918 + 938 - + The user interface language can be set here. This setting will take effect after restarting %1. The user interface language can be set here. This setting will take effect after restarting %1. - 931 + 951 - + &Unit to show amounts in: &Unit to show amounts in: - 978 + 998 - + Choose the default subdivision unit to show in the interface and when sending coins. Choose the default subdivision unit to show in the interface and when sending coins. - 991 + 1011 - + Decimal digits Decimal digits - 1002 + 1022 - + Reset all client options to default. Reset all client options to default. - 1129 + 1149 - + &Reset Options &Reset Options - 1132 + 1152 - + &OK &OK - 1187 + 1207 - + &Cancel &Cancel - 1200 + 1220 - + Enable %1 features Enable %1 features 72 - + default default 153 - + Confirm options reset Confirm options reset - 394 + 397 - + Client restart required to activate changes. Client restart required to activate changes. - 395 - 450 + 398 + 453 - + Client will be shut down. Do you want to proceed? Client will be shut down. Do you want to proceed? - 395 + 398 - + This change would require a client restart. This change would require a client restart. - 454 + 457 - + The supplied proxy address is invalid. The supplied proxy address is invalid. - 482 + 485 - + Form Form 20 - + The displayed information may be out of date. Your wallet automatically synchronizes with the Dash network after a connection is established, but this process has not completed yet. The displayed information may be out of date. Your wallet automatically synchronizes with the Dash network after a connection is established, but this process has not completed yet. - 64 - 362 - 586 + 80 + 378 + 615 - + Available: Available: - 274 + 290 - + Your current spendable balance Your current spendable balance - 284 + 300 - + Pending: Pending: - 319 + 335 - + Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - 119 + 135 - + Immature: Immature: - 219 + 235 - + Mined balance that has not yet matured Mined balance that has not yet matured - 190 + 206 - + Balances Balances - 57 + 73 - + Unconfirmed transactions to watch-only addresses Unconfirmed transactions to watch-only addresses - 100 + 116 - + Mined balance in watch-only addresses that has not yet matured Mined balance in watch-only addresses that has not yet matured - 138 + 154 - + Total: Total: - 180 + 196 - + Your current total balance Your current total balance - 229 + 245 - + Current total balance in watch-only addresses Current total balance in watch-only addresses - 248 + 264 - + Watch-only: Watch-only: - 264 + 280 - + Your current balance in watch-only addresses Your current balance in watch-only addresses - 303 + 319 - + Spendable: Spendable: - 326 + 342 - + Status: Status: - 401 + 417 - + Enabled/Disabled Enabled/Disabled - 408 + 424 - + Completion: Completion: - 415 + 431 - + Amount and Rounds: Amount and Rounds: - 449 + 465 - + 0 DASH / 0 Rounds 0 DASH / 0 Rounds - 456 + 472 - + Submitted Denom: Submitted Denom: - 463 + 479 - + n/a n/a - 473 + 489 - + Recent transactions Recent transactions - 579 + 608 - + Start/Stop Mixing Start/Stop Mixing - 511 + 527 - + The denominations you submitted to the Masternode.<br>To mix, other users must submit the exact same denominations. The denominations you submitted to the Masternode.<br>To mix, other users must submit the exact same denominations. - 470 + 486 - + out of sync out of sync - 157 - 158 - 159 + 181 + 182 + 183 - + Automatic backups are disabled, no mixing available! Automatic backups are disabled, no mixing available! - 480 + 499 - + No inputs detected No inputs detected - 366 - 372 + 385 + 391 - + %1 Balance %1 Balance - 163 + 187 - + Discreet mode activated for the Overview tab. To unmask the values, uncheck Settings->Discreet mode. Discreet mode activated for the Overview tab. To unmask the values, uncheck Settings->Discreet mode. - 196 + 215 - 370 - 390 - 401 - + 389 + 409 + 420 + %n Rounds %n Round - + %n Rounds %n Rounds - + Found enough compatible inputs to mix %1 Found enough compatible inputs to mix %1 - 387 + 406 - + Not enough compatible inputs to mix <span style='%1'>%2</span>,<br>will mix <span style='%1'>%3</span> instead Not enough compatible inputs to mix <span style='%1'>%2</span>,<br>will mix <span style='%1'>%3</span> instead - 393 + 412 - + Overall progress Overall progress - 452 + 471 - + Denominated Denominated - 453 + 472 - + Partially mixed Partially mixed - 454 + 473 - + Mixed Mixed - 455 + 474 - 456 - + 475 + Denominated inputs have %5 of %n rounds on average Denominated inputs have %5 of %n round on average - + Denominated inputs have %5 of %n rounds on average Denominated inputs have %5 of %n rounds on average - + keys left: %1 keys left: %1 - 538 + 557 - + Start %1 Start %1 - 556 - 691 + 575 + 710 - + If you don't want to see internal %1 fees/transactions select "Most Common" as Type on the "Transactions" tab. If you don't want to see internal %1 fees/transactions select "Most Common" as Type on the "Transactions" tab. - 654 + 673 - + %1 requires at least %2 to use. %1 requires at least %2 to use. - 665 + 684 - + Wallet is locked and user declined to unlock. Disabling %1. Wallet is locked and user declined to unlock. Disabling %1. - 679 + 698 - + Stop %1 Stop %1 - 695 + 714 - + Disabled Disabled - 558 - 612 - 731 - 734 + 577 + 631 + 750 + 753 - + Very low number of keys left since last automatic backup! Very low number of keys left since last automatic backup! - 577 + 596 - + We are about to create a new automatic backup for you, however <span style='%1'> you should always make sure you have backups saved in some safe place</span>! We are about to create a new automatic backup for you, however <span style='%1'> you should always make sure you have backups saved in some safe place</span>! - 578 + 597 - + Note: You can turn this message off in options. Note: You can turn this message off in options. - 581 + 600 - + WARNING! Something went wrong on automatic backup WARNING! Something went wrong on automatic backup - 597 + 616 - + ERROR! Failed to create automatic backup ERROR! Failed to create automatic backup - 605 - 622 + 624 + 641 - + Mixing is disabled, please close your wallet and fix the issue! Mixing is disabled, please close your wallet and fix the issue! - 606 - 624 + 625 + 643 - + Enabled Enabled - 612 + 631 - + see debug.log for details. see debug.log for details. - 623 + 642 - + WARNING! Failed to replenish keypool, please unlock your wallet to do so. WARNING! Failed to replenish keypool, please unlock your wallet to do so. - 630 + 649 - + Dialog Dialog 14 - + Sign Tx Sign Tx 86 - + Broadcast Tx Broadcast Tx 102 - + Copy to Clipboard Copy to Clipboard 122 - + Save… - + Save… 129 - + Close Close 136 @@ -3078,530 +3159,567 @@ https://explore.transifex.com/dash/dash/ - + Failed to load transaction: %1 Failed to load transaction: %1 - 55 + 58 - + Failed to sign transaction: %1 Failed to sign transaction: %1 - 73 + 80 - + Could not sign any more inputs. Could not sign any more inputs. - 81 + 88 - + Signed %1 inputs, but more signatures are still required. Signed %1 inputs, but more signatures are still required. - 83 + 90 - + Signed transaction successfully. Transaction is ready to broadcast. Signed transaction successfully. Transaction is ready to broadcast. - 86 + 93 - + Unknown error processing transaction. Unknown error processing transaction. - 98 + 105 - + Transaction broadcast successfully! Transaction ID: %1 Transaction broadcast successfully! Transaction ID: %1 - 108 + 115 - + Transaction broadcast failed: %1 Transaction broadcast failed: %1 - 111 + 118 - + PSBT copied to clipboard. PSBT copied to clipboard. - 120 + 127 - + Save Transaction Data Save Transaction Data - 143 + 150 - + Partially Signed Transaction (Binary) Partially Signed Transaction (Binary) - 145 + 152 Expanded name of the binary PSBT file format. See: BIP 174. - + PSBT saved to disk. PSBT saved to disk. - 152 + 159 - + * Sends %1 to %2 * Sends %1 to %2 - 168 + 175 - + + own address + own address + 179 + + Unable to calculate transaction fee or total transaction amount. Unable to calculate transaction fee or total transaction amount. - 178 + 187 - + Pays transaction fee: Pays transaction fee: - 180 + 189 - + Total Amount Total Amount - 192 + 201 - + or or - 195 + 204 - + Transaction has %1 unsigned inputs. Transaction has %1 unsigned inputs. - 201 + 210 - + Transaction is missing some information about inputs. Transaction is missing some information about inputs. - 243 + 256 - + Transaction still needs signature(s). Transaction still needs signature(s). - 247 + 260 - + + (But no wallet is loaded.) + + 263 + + (But this wallet cannot sign transactions.) (But this wallet cannot sign transactions.) - 250 + 266 - + (But this wallet does not have the right keys.) (But this wallet does not have the right keys.) - 253 + 269 - + Transaction is fully signed and ready for broadcast. Transaction is fully signed and ready for broadcast. - 261 + 277 - + Transaction status is unknown. Transaction status is unknown. - 265 + 281 - + Payment request error Payment request error - 174 + 153 - + Cannot start dash: click-to-pay handler Cannot start dash: click-to-pay handler - 175 + 154 - + URI handling URI handling + 204 + 220 225 - 241 - 246 - 254 + 233 - + 'dash://' is not a valid URI. Use 'dash:' instead. 'dash://' is not a valid URI. Use 'dash:' instead. - 225 - - - Cannot process payment request as BIP70 is no longer supported. - Cannot process payment request as BIP70 is no longer supported. - 242 - 265 + 204 - - Due to discontinued support, you should request the merchant to provide you with a BIP21 compatible URI or use a wallet that does continue to support BIP70. - Due to discontinued support, you should request the merchant to provide you with a BIP21 compatible URI or use a wallet that does continue to support BIP70. - 243 - 266 + + Cannot process payment request as BIP70 is no longer supported. +Due to discontinued support, you should request the merchant to provide you with a BIP21 compatible URI or use a wallet that does continue to support BIP70. + + 221 + 244 - + URI cannot be parsed! This can be caused by an invalid Dash address or malformed URI parameters. URI cannot be parsed! This can be caused by an invalid Dash address or malformed URI parameters. - 255 + 234 - + Payment request file handling Payment request file handling - 264 + 243 - + User Agent User Agent - 115 + 112 Title of Peers Table column which contains the peer's User Agent string. - + Ping Ping - 106 + 103 Title of Peers Table column which indicates the current latency of the connection with the peer. - + Peer + Peer + 85 + Title of Peers Table column which contains a unique number used to identify a connection. + + + Age + + 88 + Title of Peers Table column which indicates the duration (length of time) since the peer connection started. + + + Direction 94 - Title of Peers Table column which contains a unique number used to identify a connection. + Title of Peers Table column which indicates the direction the peer connection was initiated from. - + Type - Type - 100 + Type + 97 Title of Peers Table column which describes the type of peer connection. The "type" describes why the connection exists. - + Sent Sent - 109 + 106 Title of Peers Table column which indicates the total amount of network information we have sent to the peer. - + Received Received - 112 + 109 Title of Peers Table column which indicates the total amount of network information we have received from the peer. - + Address Address - 97 + 91 Title of Peers Table column which contains the IP/Onion/I2P address of the connected peer. - + Network Network - 103 + 100 Title of Peers Table column which states the network the peer connected through. + + + + Inbound + Inbound + 81 + An Inbound Connection from a Peer. + + + Outbound + Outbound + 83 + An Outbound Connection to a Peer. + + + - + Amount Amount - 256 + 258 - + Enter a Dash address (e.g. %1) Enter a Dash address (e.g. %1) - 295 + 301 - + Appearance Setup Appearance Setup - 307 + 313 - + Please choose your preferred settings for the appearance of %1 Please choose your preferred settings for the appearance of %1 - 310 + 316 - + This can also be adjusted later in the "Appearance" tab of the preferences. This can also be adjusted later in the "Appearance" tab of the preferences. - 313 + 319 - + Ctrl+W - - 632 + Ctrl+W + 643 - + Unroutable Unroutable - 1666 + 1677 - + Internal Internal - 1672 + 1683 - + Inbound - Inbound - 1685 + Inbound + 1696 An inbound connection from a peer. An inbound connection is a connection initiated by a peer. - + Outbound - Outbound - 1688 + Outbound + 1699 An outbound connection to a peer. An outbound connection is a connection initiated by us. - + Full Relay - - 1693 + Full Relay + 1704 Peer connection type that relays all network information. - + Block Relay - - 1696 + Block Relay + 1707 Peer connection type that relays network information about blocks and not transactions or addresses. - + Manual - - 1698 + Manual + 1709 Peer connection type established manually through one of several methods. - + Feeler - - 1700 + Feeler + 1711 Short-lived peer connection type that tests the aliveness of known addresses. - + Address Fetch - - 1702 + Address Fetch + 1713 Short-lived peer connection type that solicits known addresses from a peer. - + %1 d %1 d - 1715 + 1726 + 1738 - + %1 h %1 h - 1716 + 1727 + 1739 - + %1 m %1 m - 1717 + 1728 + 1740 - + %1 s %1 s - 1719 - 1746 + 1730 + 1741 + 1767 - + None None - 1734 + 1755 - + N/A N/A - 1740 + 1761 - + %1 ms %1 ms - 1741 + 1762 - 1759 - + 1780 + %n second(s) %n second - + %n second(s) %n seconds - 1763 - + 1784 + %n minute(s) %n minute - + %n minute(s) %n minutes - 1767 - + 1788 + %n hour(s) %n hour - + %n hour(s) %n hours - 1771 - + 1792 + %n day(s) %n day - + %n day(s) %n days - 1775 - 1781 - + 1796 + 1802 + %n week(s) %n week - + %n week(s) %n weeks - 1781 - + 1802 + %n year(s) %n year - + %n year(s) %n years - + %1 and %2 %1 and %2 - 1781 + 1802 - + %1 B %1 B - 1789 + 1810 - - %1 KB - %1 KB - 1791 + + %1 kB + + 1812 - + %1 MB %1 MB - 1793 + 1814 - + %1 GB %1 GB - 1795 + 1816 - + QR-Code Title QR-Code Title 17 - + QR Code QR Code 39 - + &Save Image… - + &Save Image… 85 - + &Save Image… - + &Save Image… 30 - + &Copy Image &Copy Image - 33 + 31 - + Resulting URI too long, try to reduce the text for label / message. Resulting URI too long, try to reduce the text for label / message. - 46 + 42 - + Error encoding URI into QR Code. Error encoding URI into QR Code. - 53 + 49 - + QR code support not available. QR code support not available. - 108 + 104 - + Save QR Code Save QR Code - 138 + 134 - + PNG Image PNG Image - 141 - Expanded name of the PNG file format. See https://en.wikipedia.org/wiki/Portable_Network_Graphics + 137 + Expanded name of the PNG file format. See: https://en.wikipedia.org/wiki/Portable_Network_Graphics. - + Tools window Tools window 14 - + &Information &Information 44 - + General General 112 - + Name Name 256 - + N/A N/A 129 @@ -3624,772 +3742,843 @@ https://explore.transifex.com/dash/dash/ 946 969 995 - 1018 - 1044 - 1067 - 1090 - 1116 + 1021 + 1047 + 1070 + 1096 + 1119 1142 1168 - 1191 - 1214 - 1237 - 1260 - 1286 + 1194 + 1220 + 1243 + 1266 + 1289 1312 - 1335 - 1358 - 1381 - 1404 - 1427 - 1453 - 1476 - 1499 - 1525 + 1338 + 1364 + 1387 + 1410 + 1433 + 1456 + 1479 + 1505 + 1528 1551 1577 1603 - ../rpcconsole.cpp1324 - ../rpcconsole.cpp1332 - ../rpcconsole.cpp1336 + 1629 + 1655 + ../rpcconsole.h156 - + Number of connections Number of connections 279 - + &Open &Open 545 - + Startup time Startup time 226 - + Network Network 249 - 985 + 1037 - + Last block time Last block time 372 - + Debug log file Debug log file 535 - + Client version Client version 119 - + Block chain Block chain 342 - + Memory Pool Memory Pool 464 - + Current number of transactions Current number of transactions 471 - + Memory usage Memory usage 494 - + &Console &Console 54 - + Clear console Clear console 654 - + &Network Traffic &Network Traffic 64 - + Received Received - 1394 + 1446 - + Sent Sent - 1371 + 1423 - + &Peers &Peers 74 - + Wallet: Wallet: 608 - + Banned peers Banned peers 842 - + Select a peer to view detailed information. Select a peer to view detailed information. 905 - ../rpcconsole.cpp1292 + ../rpcconsole.cpp1275 - + Version Version - 1057 + 1109 - + Whether the peer requested us to relay transactions. - - 1129 + Whether the peer requested us to relay transactions. + 1181 - + Wants Tx Relay - - 1132 + Wants Tx Relay + 1184 - + High bandwidth BIP152 compact block relay: %1 - - 1155 + High bandwidth BIP152 compact block relay: %1 + 1207 - + High Bandwidth - - 1158 + High Bandwidth + 1210 - + Starting Block Starting Block - 1181 + 1233 - + Synced Headers Synced Headers - 1204 + 1256 - + Synced Blocks Synced Blocks - 1227 + 1279 - + Elapsed time since a novel block passing initial validity checks was received from this peer. - - 1273 + Elapsed time since a novel block passing initial validity checks was received from this peer. + 1325 - + Last Block - - 1276 + Last Block + 1328 - + Elapsed time since a novel transaction accepted into our mempool was received from this peer. - - 1299 + Elapsed time since a novel transaction accepted into our mempool was received from this peer. + 1351 Tooltip text for the Last Transaction field in the peer details area. - + Last Transaction - - 1302 + Last Transaction + 1354 - + The mapped Autonomous System used for diversifying peer selection. The mapped Autonomous System used for diversifying peer selection. - 1512 + 1564 - + Mapped AS Mapped AS - 1515 + 1567 - + Whether we relay addresses to this peer. - - 1538 - Tooltip text for the Address Relay field in the peer details area. + Whether we relay addresses to this peer. + 1590 + Tooltip text for the Address Relay field in the peer details area, which displays whether we relay addresses to this peer (Yes/No). - + Address Relay - - 1541 - - - Total number of addresses processed, excluding those dropped due to rate-limiting. - - 1564 - Tooltip text for the Addresses Processed field in the peer details area. + Address Relay + 1593 + Text title for the Address Relay field in the peer details area, which displays whether we relay addresses to this peer (Yes/No). - + Addresses Processed - - 1567 + Addresses Processed + 1619 + Text title for the Addresses Processed field in the peer details area, which displays the total number of addresses received from this peer that were processed (excludes addresses that were dropped due to rate-limiting). - - Total number of addresses dropped due to rate-limiting. - - 1590 - Tooltip text for the Addresses Rate-Limited field in the peer details area. - - + Addresses Rate-Limited - - 1593 + Addresses Rate-Limited + 1645 + Text title for the Addresses Rate-Limited field in the peer details area, which displays the total number of addresses received from this peer that were dropped (not processed) due to rate-limiting. - + Rescan blockchain files 1 Rescan blockchain files 1 - 1674 + 1726 - + Rescan blockchain files 2 Rescan blockchain files 2 - 1697 + 1749 - + The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockchain files or missing/obsolete transactions. The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockchain files or missing/obsolete transactions. - 1654 + 1706 - + -rescan=1: Rescan the block chain for missing wallet transactions starting from wallet creation time. -rescan=1: Rescan the block chain for missing wallet transactions starting from wallet creation time. - 1681 + 1733 - + -rescan=2: Rescan the block chain for missing wallet transactions starting from genesis block. -rescan=2: Rescan the block chain for missing wallet transactions starting from genesis block. - 1704 + 1756 - + User Agent User Agent 142 - 1080 + 1132 - + Datadir Datadir 168 - + To specify a non-default location of the data directory use the '%1' option. To specify a non-default location of the data directory use the '%1' option. 178 - + Blocksdir Blocksdir 197 - + To specify a non-default location of the blocks directory use the '%1' option. To specify a non-default location of the blocks directory use the '%1' option. 207 - + Number of regular Masternodes Number of regular Masternodes 302 - + Number of EvoNodes Number of EvoNodes 322 - + Current block height Current block height 349 - + Last block hash Last block hash 395 - + Latest ChainLocked block hash Latest ChainLocked block hash 418 - + Latest ChainLocked block height Latest ChainLocked block height 441 - + Open the %1 debug log file from the current data directory. This can take a few seconds for large log files. Open the %1 debug log file from the current data directory. This can take a few seconds for large log files. 542 - + InstantSend locks InstantSend locks 557 - + (none) (none) 619 - + Decrease font size Decrease font size 640 - + Increase font size Increase font size 647 - + &Reset &Reset 759 - + Node Type Node Type 936 - + PoSe Score PoSe Score 959 - + + The transport layer version: %1 + + 982 + + + Transport + + 985 + + + The BIP324 session ID string in hex. + + 1008 + + + Session ID + + 1011 + + The network protocol this peer is connected through: IPv4, IPv6, Onion, I2P, or CJDNS. The network protocol this peer is connected through: IPv4, IPv6, Onion, I2P, or CJDNS. - 982 + 1034 - + Permissions Permissions - 1008 + 1060 - + The direction and type of peer connection: %1 - - 1031 + The direction and type of peer connection: %1 + 1083 - + Direction/Type - - 1034 + Direction/Type + 1086 - + Services Services - 1106 + 1158 - + Connection Time Connection Time - 1250 + 1302 - + Last Send Last Send - 1325 + 1377 - + Last Receive Last Receive - 1348 + 1400 - + Ping Time Ping Time - 1417 + 1469 - + The duration of a currently outstanding ping. The duration of a currently outstanding ping. - 1440 + 1492 - + Ping Wait Ping Wait - 1443 + 1495 - + Min Ping Min Ping - 1466 + 1518 - + Time Offset Time Offset - 1489 + 1541 - + &Wallet Repair &Wallet Repair 84 - + + The total number of addresses received from this peer that were processed (excludes addresses that were dropped due to rate-limiting). + + 1616 + Tooltip text for the Addresses Processed field in the peer details area, which displays the total number of addresses received from this peer that were processed (excludes addresses that were dropped due to rate-limiting). + + + The total number of addresses received from this peer that were dropped (not processed) due to rate-limiting. + + 1642 + Tooltip text for the Addresses Rate-Limited field in the peer details area, which displays the total number of addresses received from this peer that were dropped (not processed) due to rate-limiting. + + Wallet repair options. Wallet repair options. - 1644 + 1696 - + Rebuild index Rebuild index - 1714 + 1766 - + -reindex: Rebuild block chain index from current blk000??.dat files. -reindex: Rebuild block chain index from current blk000??.dat files. - 1721 + 1773 - + Inbound: initiated by peer - - 509 + Inbound: initiated by peer + 516 Explanatory text for an inbound peer connection. - + Outbound Full Relay: default - - 513 + Outbound Full Relay: default + 520 Explanatory text for an outbound peer connection that relays all network information. This is the default behavior for outbound connections. - + Outbound Block Relay: does not relay transactions or addresses - - 516 + Outbound Block Relay: does not relay transactions or addresses + 523 Explanatory text for an outbound peer connection that relays network information about blocks and not transactions or addresses. - + Outbound Manual: added using RPC %1 or %2/%3 configuration options - - 521 + Outbound Manual: added using RPC %1 or %2/%3 configuration options + 528 Explanatory text for an outbound peer connection that was established manually through one of several methods. The numbered arguments are stand-ins for the methods available to establish manual connections. - + Outbound Feeler: short-lived, for testing addresses - - 527 + Outbound Feeler: short-lived, for testing addresses + 534 Explanatory text for a short-lived outbound peer connection that is used to test the aliveness of known addresses. - + Outbound Address Fetch: short-lived, for soliciting addresses - - 530 + Outbound Address Fetch: short-lived, for soliciting addresses + 537 Explanatory text for a short-lived outbound peer connection that is used to request addresses from a peer. - - To - To - 534 - - + we selected the peer for high bandwidth relay - - 534 - - - From - From - 535 + we selected the peer for high bandwidth relay + 550 - + the peer selected us for high bandwidth relay - - 535 - - - No - No - 536 + the peer selected us for high bandwidth relay + 551 - + no high bandwidth relay selected - - 536 + no high bandwidth relay selected + 552 - + &Disconnect &Disconnect - 709 - - - Ban for - Ban for - 710 - 711 - 712 - 713 + 738 - + 1 &hour 1 &hour - 710 + 739 - - 1 &day - 1 &day - 711 - - + 1 &week 1 &week - 712 + 741 - + 1 &year 1 &year - 713 + 742 - + &Unban &Unban - 750 - - - Welcome to the %1 RPC console. - Welcome to the %1 RPC console. - 972 - - - Use up and down arrows to navigate history, and %1 to clear screen. - Use up and down arrows to navigate history, and %1 to clear screen. - 973 - - - Type %1 for an overview of available commands. - Type %1 for an overview of available commands. - 974 - - - For more information on using this console type %1. - For more information on using this console type %1. - 975 + 772 - - WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. - WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. - 977 - - + In: In: - 1008 + 1032 - + Out: Out: - 1009 + 1033 - + Network activity disabled Network activity disabled - 1012 + 1036 - + Total: %1 (Enabled: %2) Total: %1 (Enabled: %2) - 1056 - 1060 + 1080 + 1084 - + Executing command without any wallet Executing command without any wallet - 1128 + 1163 - - Ctrl+Shift+I + + Ctrl++ - 1522 + 1371 + Main shortcut to increase the RPC console font size. - - Ctrl+Shift+C + + Ctrl+= - 1523 + 1373 + Secondary shortcut to increase the RPC console font size. - - Ctrl+Shift+G + + Ctrl+- - 1524 + 1377 + Main shortcut to decrease the RPC console font size. - - Ctrl+Shift+P + + Ctrl+_ - 1525 + 1379 + Secondary shortcut to decrease the RPC console font size. + + + Ctrl+Shift+I + Ctrl+Shift+I + 1529 + + + Ctrl+Shift+C + Ctrl+Shift+C + 1530 + + + Ctrl+Shift+G + Ctrl+Shift+G + 1531 + + + Ctrl+Shift+P + Ctrl+Shift+P + 1532 - + Ctrl+Shift+R - - 1526 + Ctrl+Shift+R + 1533 - + Executing command using "%1" wallet Executing command using "%1" wallet - 1126 + 1161 - - (peer: %1) + + detecting: peer could be v1 or v2 + + 542 + Explanatory text for "detecting" transport type. + + + v1: unencrypted, plaintext transport protocol - 1298 + 544 + Explanatory text for v1 transport type. - + + v2: BIP324 encrypted transport protocol + + 546 + Explanatory text for v2 transport type. + + + &Copy address + + 734 + Context menu action to copy the address of a peer + + + 1 d&ay + + 740 + + + &Copy IP/Netmask + + 768 + Context menu action to copy the IP/Netmask of a banned peer. IP/Netmask is the combination of a peer's IP address and its Netmask. For IP address see: https://en.wikipedia.org/wiki/IP_address + + + Welcome to the %1 RPC console. +Use up and down arrows to navigate history, and %2 to clear screen. +Use %3 and %4 to increase or decrease the font size. +Type %5 for an overview of available commands. +For more information on using this console, type %6. + +%7WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command.%8 + + 985 + RPC console welcome message. Placeholders %7 and %8 are style tags for the warning content, and they are not space separated from the rest of the text intentionally. + + + Executing… + + 1171 + A console message indicating an entered command is currently being executed. + + + (peer: %1) + (peer: %1) + 1281 + + via %1 via %1 - 1300 + 1283 - + Regular Regular - 1335 + 1326 - + Masternode Masternode - 1339 + 1330 - + Verified Masternode Verified Masternode - 1341 - - - Unknown - Unknown - 1353 - 1359 + 1332 - + + To + To + 155 + + + From + From + 155 + + + No + No + 155 + + + Ban for + Ban for + 156 + + + Yes + Yes + 155 + + + Unknown + Unknown + 156 + + Never - - 198 + Never + 203 - + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Dash network. An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Dash network. 34 - + &Message: &Message: 37 - + An optional label to associate with the new receiving address. An optional label to associate with the new receiving address. 77 - + An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the Dash network. An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the Dash network. 60 - + An optional label to associate with the new receiving address (used by you to identify an invoice). It is also attached to the payment request. An optional label to associate with the new receiving address (used by you to identify an invoice). It is also attached to the payment request. 50 - + Use this form to request payments. All fields are <b>optional</b>. Use this form to request payments. All fields are <b>optional</b>. 70 - + &Label: &Label: 80 - + An optional amount to request. Leave this empty or zero to not request a specific amount. An optional amount to request. Leave this empty or zero to not request a specific amount. 93 179 - + &Amount: &Amount: 96 - + &Create new receiving address &Create new receiving address 117 - + Clear all fields of the form. Clear all fields of the form. 136 - + Clear Clear 139 - + Requested payments history Requested payments history 234 - + Show the selected request (does the same as double clicking an entry) Show the selected request (does the same as double clicking an entry) 259 - + Show Show 262 - + Remove the selected entries from the list Remove the selected entries from the list 275 - + Remove Remove 278 - + Enter a label to associate with the new receiving address Enter a label to associate with the new receiving address 53 - + Enter a message to attach to the payment request Enter a message to attach to the payment request 63 @@ -4398,91 +4587,91 @@ https://explore.transifex.com/dash/dash/ - - Copy URI - Copy URI - 35 - - - Copy address - Copy address + + Copy &URI + Copy &URI 36 - - Copy label - Copy label + + &Copy address + 37 - - Copy message - Copy message + + Copy &label + 38 - - Copy amount - Copy amount + + Copy &message + 39 - + + Copy &amount + + 40 + + Could not unlock wallet. - Could not unlock wallet. - 159 + Could not unlock wallet. + 145 - + Could not generate new address - - 164 + Could not generate new address + 150 - + Request payment to … - + Request payment to … 14 - + Address: Address: 90 - + Amount: Amount: 119 - + Label: Label: 148 - + Message: Message: 180 - + Wallet: Wallet: 212 - + Copy &URI Copy &URI 240 - + Copy &Address Copy &Address 250 - + &Save Image… - + &Save Image… 260 - + Payment information Payment information 39 @@ -4491,7 +4680,7 @@ https://explore.transifex.com/dash/dash/ - + Request payment to %1 Request payment to %1 52 @@ -4500,219 +4689,219 @@ https://explore.transifex.com/dash/dash/ - + Date Date - 29 + 32 - + Label Label - 29 + 32 - + Message Message - 29 + 32 - + (no label) (no label) - 70 + 73 - + (no message) (no message) - 79 + 82 - + (no amount requested) (no amount requested) - 87 + 90 - + Requested Requested - 129 + 133 - + Send Coins Send Coins 14 - ../sendcoinsdialog.cpp762 + ../sendcoinsdialog.cpp765 - + Coin Control Features Coin Control Features 81 - + automatically selected automatically selected 111 - + Insufficient funds! Insufficient funds! 121 - + Quantity: Quantity: 204 - + Bytes: Bytes: 233 - + Amount: Amount: 275 - + Fee: Fee: 343 - + Dust: Dust: 301 - + Inputs… - + Inputs… 101 - + After Fee: After Fee: 388 - + Change: Change: 414 - + If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. 458 - + Custom change address Custom change address 461 - + Transaction Fee: Transaction Fee: 658 - + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for dash transactions than the network can process. When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for dash transactions than the network can process. 822 - + A too low fee might result in a never confirming transaction (read the tooltip) A too low fee might result in a never confirming transaction (read the tooltip) 825 - + (Smart fee not initialized yet. This usually takes a few blocks…) - + (Smart fee not initialized yet. This usually takes a few blocks…) 942 - + Confirmation time target: Confirmation time target: 968 - + If the custom fee is set to 1000 duffs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 duffs in fee,<br />while "at least" pays 1000 duffs. For transactions bigger than a kilobyte both pay by kilobyte. If the custom fee is set to 1000 duffs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 duffs in fee,<br />while "at least" pays 1000 duffs. For transactions bigger than a kilobyte both pay by kilobyte. 789 - + per kilobyte per kilobyte 792 - + Using the fallbackfee can result in sending a transaction that will take several hours or days (or never) to confirm. Consider choosing your fee manually or wait until you have validated the complete chain. Using the fallbackfee can result in sending a transaction that will take several hours or days (or never) to confirm. Consider choosing your fee manually or wait until you have validated the complete chain. 694 - + Choose… - + Choose… 672 - + Note: Not enough data for fee estimation, using the fallback fee instead. Note: Not enough data for fee estimation, using the fallback fee instead. 697 - + Hide transaction fee settings Hide transaction fee settings 735 - + Hide Hide 738 - + Recommended: Recommended: 857 - + Custom: Custom: 890 - + Confirm the send action Confirm the send action 1055 - ../sendcoinsdialog.cpp152 + ../sendcoinsdialog.cpp155 - + S&end S&end 1058 - ../sendcoinsdialog.cpp151 + ../sendcoinsdialog.cpp154 - + Clear all fields of the form. Clear all fields of the form. 1077 - + Clear &All Clear &All 1080 - + Send to multiple recipients at once Send to multiple recipients at once 1090 - + Add &Recipient Add &Recipient 1093 - + Balance: Balance: 1121 @@ -4721,391 +4910,391 @@ https://explore.transifex.com/dash/dash/ - + Copy quantity Copy quantity - 106 + 109 - + Copy amount Copy amount - 107 + 110 - + Copy fee Copy fee - 108 + 111 - + Copy after fee Copy after fee - 109 + 112 - + Copy bytes Copy bytes - 110 + 113 - + Copy dust Copy dust - 111 + 114 - + Copy change Copy change - 112 + 115 - + %1 (%2 blocks) %1 (%2 blocks) - 208 + 211 - + This will produce a Partially Signed Transaction (PSBT) which you can save or copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet. This will produce a Partially Signed Transaction (PSBT) which you can save or copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet. - 373 + 376 - + using using - 383 - 385 + 386 + 388 - + %1 to %2 %1 to %2 - 354 + 357 - + Are you sure you want to send? Are you sure you want to send? - 369 + 372 - + <b>(%1 of %2 entries displayed)</b> <b>(%1 of %2 entries displayed)</b> - 394 + 397 - + S&end mixed funds S&end mixed funds - 148 + 151 - + Confirm the %1 send action Confirm the %1 send action - 149 + 152 - + Cr&eate Unsigned Cr&eate Unsigned - 231 + 234 - + Creates a Partially Signed Bitcoin Transaction (PSBT) for use with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet. Creates a Partially Signed Bitcoin Transaction (PSBT) for use with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet. - 232 + 235 - + from wallet '%1' from wallet '%1' - 338 + 341 - + %1 to '%2' %1 to '%2' - 349 + 352 - + Do you want to draft this transaction? Do you want to draft this transaction? - 367 + 370 - + %1 funds only %1 funds only - 383 + 386 - + any available funds any available funds - 385 + 388 - + Transaction fee Transaction fee - 404 + 407 - + (%1 transactions have higher fees usually due to no change output being allowed) (%1 transactions have higher fees usually due to no change output being allowed) - 410 + 413 - + Transaction size: %1 Transaction size: %1 - 417 + 420 - + Fee rate: %1 Fee rate: %1 - 420 + 423 - 426 - + 429 + This transaction will consume %n input(s) This transaction will consume %n input - + This transaction will consume %n input(s) This transaction will consume %n inputs - + Warning: Using %1 with %2 or more inputs can harm your privacy and is not recommended Warning: Using %1 with %2 or more inputs can harm your privacy and is not recommended - 432 + 435 - + Click to learn more Click to learn more - 434 + 437 - + Total Amount Total Amount - 451 + 454 - + or or - 454 + 457 - + Confirm send coins Confirm send coins - 473 + 476 - + Confirm transaction proposal Confirm transaction proposal - 473 + 476 - + Create Unsigned Create Unsigned - 474 + 477 - + Save Transaction Data Save Transaction Data - 518 + 521 - + PSBT saved PSBT saved - 527 + 530 - + Watch-only balance: Watch-only balance: - 705 + 708 - + Send Send - 474 + 477 - + To review recipient list click "Show Details…" - - 457 + To review recipient list click "Show Details…" + 460 - + Partially Signed Transaction (Binary) Partially Signed Transaction (Binary) - 520 + 523 Expanded name of the binary PSBT file format. See: BIP 174. - + The recipient address is not valid. Please recheck. The recipient address is not valid. Please recheck. - 735 + 738 - + The amount to pay must be larger than 0. The amount to pay must be larger than 0. - 738 + 741 - + The amount exceeds your balance. The amount exceeds your balance. - 741 + 744 - + The total exceeds your balance when the %1 transaction fee is included. The total exceeds your balance when the %1 transaction fee is included. - 744 + 747 - + Duplicate address found: addresses should only be used once each. Duplicate address found: addresses should only be used once each. - 747 + 750 - + Transaction creation failed! Transaction creation failed! - 750 + 753 - + A fee higher than %1 is considered an absurdly high fee. A fee higher than %1 is considered an absurdly high fee. - 754 + 757 - 872 - + 875 + Estimated to begin confirmation within %n block(s). Estimated to begin confirmation within %n block. - + Estimated to begin confirmation within %n block(s). Estimated to begin confirmation within %n blocks. - + Warning: Invalid Dash address Warning: Invalid Dash address - 973 + 976 - + Warning: Unknown change address Warning: Unknown change address - 978 + 981 - + Confirm custom change address Confirm custom change address - 981 + 984 - + The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure? The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure? - 981 + 984 - + (no label) (no label) - 1002 + 1005 - + Pay &To: Pay &To: 39 - + The Dash address to send the payment to The Dash address to send the payment to 57 - + Choose previously used address Choose previously used address 64 - + Alt+A Alt+A 76 - + Paste address from clipboard Paste address from clipboard 83 - + Alt+P Alt+P 95 - + Remove this entry Remove this entry 102 660 1189 - + &Label: &Label: 120 - + Enter a label for this address to add it to the list of used addresses Enter a label for this address to add it to the list of used addresses 133 136 - + A&mount: A&mount: 143 689 1218 - + The amount to send in the selected unit The amount to send in the selected unit 158 - + The fee will be deducted from the amount being sent. The recipient will receive a lower amount of Dash than you enter in the amount field. If multiple recipients are selected, the fee is split equally. The fee will be deducted from the amount being sent. The recipient will receive a lower amount of Dash than you enter in the amount field. If multiple recipients are selected, the fee is split equally. 165 - + S&ubtract fee from amount S&ubtract fee from amount 168 - + Use available balance Use available balance 175 - + Message: Message: 184 - + A message that was attached to the dash: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Dash network. A message that was attached to the dash: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Dash network. 194 - + This is an unauthenticated payment request. This is an unauthenticated payment request. 627 - + This is an authenticated payment request. This is an authenticated payment request. 1152 - + Pay To: Pay To: 642 1167 - + Memo: Memo: 672 @@ -5115,140 +5304,140 @@ https://explore.transifex.com/dash/dash/ - + Signatures - Sign / Verify a Message Signatures - Sign / Verify a Message 14 - + &Sign Message &Sign Message 31 - + You can sign messages/agreements with your addresses to prove you can receive Dash sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. You can sign messages/agreements with your addresses to prove you can receive Dash sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. 66 - + The Dash address to sign the message with The Dash address to sign the message with 84 - + Choose previously used address Choose previously used address 91 264 - + Alt+A Alt+A 97 270 - + Paste address from clipboard Paste address from clipboard 104 - + Alt+P Alt+P 110 - + Enter the message you want to sign here Enter the message you want to sign here 119 - + Signature Signature 129 - + Copy the current signature to the system clipboard Copy the current signature to the system clipboard 154 - + Sign the message to prove you own this Dash address Sign the message to prove you own this Dash address 168 - + Sign &Message Sign &Message 171 - + Reset all sign message fields Reset all sign message fields 181 - + Clear &All Clear &All 184 317 - + &Verify Message &Verify Message 41 - + Enter the receiver's address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. Note that this only proves the signing party receives with the address, it cannot prove sendership of any transaction! Enter the receiver's address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. Note that this only proves the signing party receives with the address, it cannot prove sendership of any transaction! 236 - + The Dash address the message was signed with The Dash address the message was signed with 257 - + The signed message to verify The signed message to verify 279 - + The signature given when the message was signed The signature given when the message was signed 289 - + Verify the message to ensure it was signed with the specified Dash address Verify the message to ensure it was signed with the specified Dash address 301 - + Verify &Message Verify &Message 304 - + Reset all verify message fields Reset all verify message fields 314 - + Enter a message to be signed Enter a message to be signed 122 - + Click "Sign Message" to generate signature Click "Sign Message" to generate signature 144 - + Enter a message to be verified Enter a message to be verified 282 - + Enter a signature for the message to be verified Enter a signature for the message to be verified 292 @@ -5257,13 +5446,13 @@ https://explore.transifex.com/dash/dash/ - + The entered address is invalid. The entered address is invalid. 151 250 - + Please check the address and try again. Please check the address and try again. 151 @@ -5271,83 +5460,97 @@ https://explore.transifex.com/dash/dash/ 251 258 - + The entered address does not refer to a key. The entered address does not refer to a key. 158 257 - + Wallet unlock was cancelled. Wallet unlock was cancelled. 166 - + No error No error 177 - + Private key for the entered address is not available. Private key for the entered address is not available. 180 - + Message signing failed. Message signing failed. 183 - + Message signed. Message signed. 195 - + The signature could not be decoded. The signature could not be decoded. 264 - + Please check the signature and try again. Please check the signature and try again. 265 272 - + The signature did not match the message digest. The signature did not match the message digest. 271 - + Message verification failed. Message verification failed. 277 - + Message verified. Message verified. 245 + + + + (press q to shutdown and continue later) + + 192 + + + press q to shutdown + + 193 + + + - - KB/s - KB/s + + kB/s + 101 - + Total Total 166 - + Received Received 167 - + Sent Sent 168 @@ -5357,241 +5560,247 @@ https://explore.transifex.com/dash/dash/ - 34 - + 36 + Open for %n more block(s) Open for %n more block - + Open for %n more block(s) Open for %n more blocks - + Open until %1 Open until %1 - 36 + 38 - + conflicted conflicted - 41 + 43 - + 0/unconfirmed, %1 0/unconfirmed, %1 - 47 + 50 - + in memory pool in memory pool - 47 + 50 - + not in memory pool not in memory pool - 47 + 50 - + abandoned abandoned - 47 + 49 - + %1/unconfirmed %1/unconfirmed - 49 + 52 - + %1 confirmations %1 confirmations - 51 + 54 - + locked via ChainLocks locked via ChainLocks - 53 + 56 - + verified via InstantSend verified via InstantSend - 59 + 62 - + Status Status - 84 + 87 - + Date Date - 87 + 90 - + Source Source - 94 + 97 + 101 - + Generated Generated - 94 + 97 - + + Platform Transfer + + 101 + + From From - 99 - 113 - 185 + 106 + 120 + 192 - + unknown unknown - 113 + 120 - + To To - 114 - 134 - 204 + 121 + 141 + 211 - + own address own address - 116 + 123 - + watch-only watch-only - 116 - 185 + 123 + 192 - + label label - 118 + 125 - + Credit Credit - 154 - 166 - 220 - 250 - 293 + 161 + 173 + 227 + 257 + 300 - 156 - + 163 + matures in %n more block(s) matures in %n more block - + matures in %n more block(s) matures in %n more blocks - + not accepted not accepted - 158 + 165 - + Debit Debit - 218 - 244 - 290 + 225 + 251 + 297 - + Total debit Total debit - 228 + 235 - + Total credit Total credit - 229 + 236 - + Transaction fee Transaction fee - 234 + 241 - + Net amount Net amount - 256 + 263 - + Message Message - 262 - 273 + 269 + 280 - + Comment Comment - 264 + 271 - + Transaction ID Transaction ID - 266 + 273 - + Output index Output index - 267 + 274 - + Transaction total size Transaction total size - 268 + 275 - + 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. 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. - 279 + 286 - + Debug information Debug information - 287 + 294 - + Transaction Transaction - 295 + 302 - + Inputs Inputs - 298 + 305 - + Amount Amount - 319 + 326 - + true true - 320 - 321 + 327 + 328 - + false false - 320 - 321 + 327 + 328 - + This pane shows a detailed description of the transaction This pane shows a detailed description of the transaction 20 @@ -5600,7 +5809,7 @@ https://explore.transifex.com/dash/dash/ - + Details for %1 Details for %1 21 @@ -5609,451 +5818,493 @@ https://explore.transifex.com/dash/dash/ - + Date Date - 270 + 275 - + Type Type - 270 + 275 - + Address / Label Address / Label - 270 + 275 - 353 - + 356 + Open for %n more block(s) Open for %n more block - + Open for %n more block(s) Open for %n more blocks - + Open until %1 Open until %1 - 356 + 359 - + Unconfirmed Unconfirmed - 359 + 362 - + Abandoned Abandoned - 362 + 365 - + Confirming (%1 of %2 recommended confirmations) Confirming (%1 of %2 recommended confirmations) - 365 + 368 - + Confirmed (%1 confirmations) Confirmed (%1 confirmations) - 368 + 371 - + Conflicted Conflicted - 371 + 374 - + Immature (%1 confirmations, will be available after %2) Immature (%1 confirmations, will be available after %2) - 374 + 377 - + Generated but not accepted Generated but not accepted - 377 + 380 - + verified via InstantSend verified via InstantSend - 382 + 385 - + locked via ChainLocks locked via ChainLocks - 385 + 388 - + Received with Received with - 422 + 425 - + Received from Received from - 424 + 427 - + Received via %1 Received via %1 - 426 + 429 - + Sent to Sent to - 429 + 432 - + Payment to yourself Payment to yourself - 431 + 434 - + Mined Mined - 433 + 436 - + + Platform Transfer + + 438 + + %1 Mixing %1 Mixing - 436 + 441 - + %1 Collateral Payment %1 Collateral Payment - 438 + 443 - + %1 Make Collateral Inputs %1 Make Collateral Inputs - 440 + 445 - + %1 Create Denominations %1 Create Denominations - 442 + 447 - + %1 Send %1 Send - 444 + 449 - + watch-only watch-only - 464 + 470 - + (n/a) (n/a) - 482 + 495 - + (no label) (no label) - 715 + 731 - + Transaction status. Hover over this field to show number of confirmations. Transaction status. Hover over this field to show number of confirmations. - 754 + 770 - + Date and time that the transaction was received. Date and time that the transaction was received. - 756 + 772 - + Type of transaction. Type of transaction. - 758 + 774 - + Whether or not a watch-only address is involved in this transaction. Whether or not a watch-only address is involved in this transaction. - 760 + 776 - + User-defined intent/purpose of the transaction. User-defined intent/purpose of the transaction. - 762 + 778 - + Amount removed from or added to balance. Amount removed from or added to balance. - 764 + 780 - + All All - 67 - 80 + 69 + 82 - + Today Today - 68 + 70 - + This week This week - 69 + 71 - + This month This month - 70 + 72 - + Last month Last month - 71 + 73 - + This year This year - 72 + 74 - + Range… - - 73 + Range… + 75 - + Most Common Most Common - 81 + 83 - + Received with Received with - 82 + 84 - + Sent to Sent to - 84 + 86 - + %1 Send %1 Send - 86 + 88 - + %1 Make Collateral Inputs %1 Make Collateral Inputs - 87 + 89 - + %1 Create Denominations %1 Create Denominations - 88 + 90 - + %1 Mixing %1 Mixing - 89 + 91 - + %1 Collateral Payment %1 Collateral Payment - 90 + 92 - + To yourself To yourself - 91 + 93 - + Mined Mined - 92 + 94 - + + Platform Transfer + + 95 + + Other Other - 93 + 96 - + Enter address, transaction id, or label to search Enter address, transaction id, or label to search - 99 + 102 - + Min amount Min amount - 104 - - - Abandon transaction - Abandon transaction - 150 - - - Resend transaction - Resend transaction - 151 - - - Copy address - Copy address - 152 + 107 - - Copy label - Copy label + + &Copy address + 153 - - Copy amount - Copy amount + + Copy &label + 154 - - Copy transaction ID - Copy transaction ID + + Copy &amount + 155 - - Copy raw transaction - Copy raw transaction + + Copy transaction &ID + 156 - - Copy full transaction details - Copy full transaction details + + Copy &raw transaction + 157 - - Edit address label - Edit address label + + Copy full transaction &details + 158 - - Show transaction details - Show transaction details + + &Show transaction details + 159 - - Show address QR code - Show address QR code - 160 + + A&bandon transaction + + 161 - + + Rese&nd transaction + + 162 + + + &Edit address label + + 163 + + + Show address &QR code + + 164 + + Export Transaction History Export Transaction History - 389 + 367 - + Comma separated file Comma separated file - 392 - Expanded name of the CSV file format. See https://en.wikipedia.org/wiki/Comma-separated_values + 370 + Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values. - + Confirmed Confirmed - 401 + 379 - + Watch-only Watch-only - 403 + 381 - + Date Date - 404 + 382 - + Type Type - 405 + 383 - + Label Label - 406 + 384 - + Address Address - 407 + 385 - + ID ID - 409 + 387 - + Exporting Failed Exporting Failed - 412 + 390 - + There was an error trying to save the transaction history to %1. There was an error trying to save the transaction history to %1. - 412 + 390 - + Exporting Successful Exporting Successful - 416 + 394 - + The transaction history was successfully saved to %1. The transaction history was successfully saved to %1. - 416 + 394 - + QR code QR code - 574 + 552 - + Range: Range: - 617 + 595 - + to to - 626 + 604 - + No wallet has been loaded. Go to File > Open Wallet to load a wallet. - OR - No wallet has been loaded. Go to File > Open Wallet to load a wallet. - OR - - 41 + 46 - + Create a new wallet Create a new wallet - 46 + 51 + + + Error + Error + 259 + 268 + 278 + + + Unable to decode PSBT from clipboard (invalid base64) + Unable to decode PSBT from clipboard (invalid base64) + 259 + + + Load Transaction Data + Load Transaction Data + 264 + + + Partially Signed Transaction (*.psbt) + Partially Signed Transaction (*.psbt) + 265 + + + PSBT file must be smaller than 100 MiB + PSBT file must be smaller than 100 MiB + 268 + + + Unable to decode PSBT + Unable to decode PSBT + 278 - + Send Coins Send Coins 265 - + default wallet default wallet 587 @@ -6062,1367 +6313,1395 @@ Go to File > Open Wallet to load a wallet. - + &Export &Export - 55 + 51 - + Export the data in the current tab to a file Export the data in the current tab to a file - 56 + 52 - + Selected amount: Selected amount: - 62 - - - Unable to decode PSBT from clipboard (invalid base64) - Unable to decode PSBT from clipboard (invalid base64) - 310 - - - Load Transaction Data - Load Transaction Data - 315 - - - Partially Signed Transaction (*.psbt) - Partially Signed Transaction (*.psbt) - 316 - - - Unable to decode PSBT - Unable to decode PSBT - 329 + 58 - + Wallet Data Wallet Data - 370 + 319 Name of the wallet data file format. - - Error - Error - 310 - 319 - 329 - - - PSBT file must be smaller than 100 MiB - PSBT file must be smaller than 100 MiB - 319 - - + Backup Wallet Backup Wallet - 368 + 317 - + Backup Failed Backup Failed - 376 + 325 - + There was an error trying to save the wallet data to %1. There was an error trying to save the wallet data to %1. - 376 + 325 - + Backup Successful Backup Successful - 380 + 329 - + The wallet data was successfully saved to %1. The wallet data was successfully saved to %1. - 380 + 329 - + Cancel Cancel - 433 + 382 - + Error: Listening for incoming connections failed (listen returned error %s) Error: Listening for incoming connections failed (listen returned error %s) - 51 + 68 - + Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee. Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee. - 57 + 77 - + This error could occur if this wallet was not shutdown cleanly and was last loaded using a build with a newer version of Berkeley DB. If so, please use the software that last loaded this wallet This error could occur if this wallet was not shutdown cleanly and was last loaded using a build with a newer version of Berkeley DB. If so, please use the software that last loaded this wallet - 120 + 153 - + This is a pre-release test build - use at your own risk - do not use for mining or merchant applications This is a pre-release test build - use at your own risk - do not use for mining or merchant applications - 124 + 157 - + Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. - 161 + 194 - + Already have that input. Already have that input. - 181 + 214 - + Collateral not valid. Collateral not valid. - 190 + 223 - + Corrupted block database detected Corrupted block database detected - 193 + 226 - + Do you want to rebuild the block database now? Do you want to rebuild the block database now? - 197 + 230 - + Done loading Done loading - 198 + 231 - + Entries are full. Entries are full. - 201 + 234 - + Error initializing block database Error initializing block database - 204 + 237 - + Error initializing wallet database environment %s! Error initializing wallet database environment %s! - 205 + 238 - + Error loading block database Error loading block database - 211 + 244 - + Error opening block database Error opening block database - 212 + 245 - + Error reading from database, shutting down. Error reading from database, shutting down. - 213 + 246 - + Error: Missing checksum - - 223 + Error: Missing checksum + 256 - + Error: Unable to parse version %u as a uint32_t - - 224 + Error: Unable to parse version %u as a uint32_t + 258 - + Error: Unable to write record to new wallet - - 225 + Error: Unable to write record to new wallet + 259 - + Failed to listen on any port. Use -listen=0 if you want this. Failed to listen on any port. Use -listen=0 if you want this. - 235 + 269 - + -maxtxfee is set very high! Fees this large could be paid on a single transaction. -maxtxfee is set very high! Fees this large could be paid on a single transaction. 22 - + Cannot provide specific connections and have addrman find outgoing connections at the same. Cannot provide specific connections and have addrman find outgoing connections at the same. - 30 + 42 - + Found unconfirmed denominated outputs, will wait till they confirm to continue. Found unconfirmed denominated outputs, will wait till they confirm to continue. - 63 + 83 - + Invalid -socketevents ('%s') specified. Only these modes are supported: %s Invalid -socketevents ('%s') specified. Only these modes are supported: %s - 69 + 92 - + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) - 71 + 94 - + SQLiteDatabase: Unknown sqlite wallet schema version %d. Only version %d is supported SQLiteDatabase: Unknown sqlite wallet schema version %d. Only version %d is supported - 110 + 136 - + Transaction index can't be disabled with governance validation enabled. Either start with -disablegovernance command line switch or enable transaction index. Transaction index can't be disabled with governance validation enabled. Either start with -disablegovernance command line switch or enable transaction index. - 138 + 171 - + Can't mix: no compatible inputs found! Can't mix: no compatible inputs found! - 185 + 218 - + Entry exceeds maximum size. Entry exceeds maximum size. - 202 + 235 - + Found enough users, signing ( waiting %s ) Found enough users, signing ( waiting %s ) - 243 + 278 - + Incompatible mode. Incompatible mode. - 247 + 282 - + Incompatible version. Incompatible version. - 248 + 283 - + Incorrect or no genesis block found. Wrong datadir for network? Incorrect or no genesis block found. Wrong datadir for network? - 250 + 285 - + Input is not valid. Input is not valid. - 252 + 287 - + Insufficient funds. Insufficient funds. - 254 + 290 - + Invalid amount for -discardfee=<amount>: '%s' Invalid amount for -discardfee=<amount>: '%s' - 261 + 297 - + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) - 263 + 299 - + Invalid minimum number of spork signers specified with -minsporkkeys Invalid minimum number of spork signers specified with -minsporkkeys - 265 + 301 - + Lock is already in place. Lock is already in place. - 275 + 311 - + Need to specify a port with -whitebind: '%s' Need to specify a port with -whitebind: '%s' - 280 + 316 - + No Masternodes detected. No Masternodes detected. - 281 + 317 - + No compatible Masternode found. No compatible Masternode found. - 282 + 319 - + Not enough funds to mix. Not enough funds to mix. - 288 + 325 - + Not in the Masternode list. Not in the Masternode list. - 289 + 326 - + Pruning blockstore… - - 294 + Pruning blockstore… + 330 - + Replaying blocks… - - 296 + Replaying blocks… + 332 - + Rescanning… - - 297 + Rescanning… + 333 - + Starting network threads… - - 310 + Starting network threads… + 346 - + Submitted to masternode, waiting in queue %s Submitted to masternode, waiting in queue %s - 311 + 347 - + Synchronization finished Synchronization finished - 312 + 348 - + Synchronizing blockchain… - - 313 + Synchronizing blockchain… + 349 - + Synchronizing governance objects… - - 314 + Synchronizing governance objects… + 350 - + Unable to start HTTP server. See debug log for details. Unable to start HTTP server. See debug log for details. - 341 + 378 - + Unknown response. Unknown response. - 345 + 382 - + User Agent comment (%s) contains unsafe characters. User Agent comment (%s) contains unsafe characters. - 350 + 386 - + Can't find random Masternode. Can't find random Masternode. - 183 + 216 - + %s can't be lower than %s %s can't be lower than %s - 170 + 203 - + %s is idle. %s is idle. - 172 + 205 - + Can't mix while sync in progress. Can't mix while sync in progress. - 184 + 217 - + Invalid netmask specified in -whitelist: '%s' Invalid netmask specified in -whitelist: '%s' - 266 + 302 - + Invalid script detected. Invalid script detected. - 267 + 303 - + %s file contains all private keys from this wallet. Do not share it with anyone! %s file contains all private keys from this wallet. Do not share it with anyone! 16 - + Failed to create backup, file already exists! This could happen if you restarted wallet in less than 60 seconds. You can continue if you are ok with this. Failed to create backup, file already exists! This could happen if you restarted wallet in less than 60 seconds. You can continue if you are ok with this. - 53 + 70 - + Make sure to encrypt your wallet and delete all non-encrypted backups after you have verified that the wallet works! Make sure to encrypt your wallet and delete all non-encrypted backups after you have verified that the wallet works! - 78 + 101 - + More than one onion bind address is provided. Using %s for the automatically created Tor onion service. More than one onion bind address is provided. Using %s for the automatically created Tor onion service. - 81 + 104 - + Prune configured below the minimum of %d MiB. Please use a higher number. Prune configured below the minimum of %d MiB. Please use a higher number. - 105 + 128 - + Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node) Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node) - 107 + 133 - + The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct - 113 + 142 - + The transaction amount is too small to send after the fee has been deducted The transaction amount is too small to send after the fee has been deducted - 118 + 151 - + Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. - 135 + 168 - + Transaction needs a change address, but we can't generate it. Please call keypoolrefill first. Transaction needs a change address, but we can't generate it. Please call keypoolrefill first. - 142 + 175 - + WARNING! Failed to replenish keypool, please unlock your wallet to do so. WARNING! Failed to replenish keypool, please unlock your wallet to do so. - 151 + 184 - + Wallet is locked, can't replenish keypool! Automatic backups and mixing are disabled, please unlock your wallet to replenish keypool. Wallet is locked, can't replenish keypool! Automatic backups and mixing are disabled, please unlock your wallet to replenish keypool. - 153 - - - You need to rebuild the database using -reindex to change -timestampindex - You need to rebuild the database using -reindex to change -timestampindex - 164 + 186 - + You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain - 166 + 199 - + %s failed %s failed - 171 + 204 - + -maxmempool must be at least %d MB -maxmempool must be at least %d MB - 177 + 210 - + Automatic backups disabled Automatic backups disabled - 182 + 215 - + Cannot set -peerblockfilters without -blockfilterindex. Cannot set -peerblockfilters without -blockfilterindex. - 187 + 220 - + Config setting for %s only applied on %s network when in [%s] section. Config setting for %s only applied on %s network when in [%s] section. - 191 + 224 - + Could not find asmap file %s Could not find asmap file %s - 194 + 227 - + Could not parse asmap file %s Could not parse asmap file %s - 195 + 228 - + ERROR! Failed to create automatic backup ERROR! Failed to create automatic backup - 200 + 233 - + Error loading %s: Private keys can only be disabled during creation Error loading %s: Private keys can only be disabled during creation - 207 + 240 - + Error upgrading evo database Error upgrading evo database - 216 + 249 - + Error: Couldn't create cursor into database - - 217 + Error: Couldn't create cursor into database + 250 - + Error: Disk space is low for %s Error: Disk space is low for %s - 218 + 251 - + Error: Dumpfile checksum does not match. Computed %s, expected %s - - 219 + Error: Dumpfile checksum does not match. Computed %s, expected %s + 252 - + Error: Got key that was not hex: %s - - 220 + Error: Got key that was not hex: %s + 253 - + Error: Got value that was not hex: %s - - 221 + Error: Got value that was not hex: %s + 254 - + Error: Keypool ran out, please call keypoolrefill first Error: Keypool ran out, please call keypoolrefill first - 222 + 255 - + + Error: No addresses available. + + 257 + + Exceeded max tries. Exceeded max tries. - 226 + 260 - + Failed to commit EvoDB Failed to commit EvoDB - 230 + 264 - + Failed to create backup %s! Failed to create backup %s! - 231 + 265 - + Failed to create backup, error: %s Failed to create backup, error: %s - 232 + 266 - + Failed to delete backup, error: %s Failed to delete backup, error: %s - 233 + 267 - + Failed to rescan the wallet during initialization Failed to rescan the wallet during initialization - 240 + 274 - + Failed to verify database Failed to verify database - 242 + 276 - - Found enough users, signing… + + Fee rate (%s) is lower than the minimum fee rate setting (%s) - 244 + 277 - + + Found enough users, signing… + Found enough users, signing… + 279 + + Ignoring duplicate -wallet %s. Ignoring duplicate -wallet %s. - 245 + 280 - + + Input not found or already spent + + 288 + + Invalid P2P permission: '%s' Invalid P2P permission: '%s' - 259 + 295 - + Invalid amount for -fallbackfee=<amount>: '%s' Invalid amount for -fallbackfee=<amount>: '%s' - 262 + 298 - + Invalid masternodeblsprivkey. Please see documentation. Invalid masternodeblsprivkey. Please see documentation. - 264 + 300 - + Masternode queue is full. Masternode queue is full. - 276 + 312 - + Masternode: Masternode: - 277 + 313 - + Missing input transaction information. Missing input transaction information. - 278 + 314 - + Mixing in progress… + Mixing in progress… + 315 + + + No addresses available - 279 + 318 - + No errors detected. No errors detected. - 283 + 320 - + No matching denominations found for mixing. No matching denominations found for mixing. - 284 + 321 - + No proxy server specified. Use -proxy=<ip> or -proxy=<ip:port>. No proxy server specified. Use -proxy=<ip> or -proxy=<ip:port>. - 285 + 322 - + Not compatible with existing transactions. Not compatible with existing transactions. - 286 + 323 - + Not enough file descriptors available. Not enough file descriptors available. - 287 + 324 - + Prune cannot be configured with a negative value. Prune cannot be configured with a negative value. - 290 + 327 - + Prune mode is incompatible with -disablegovernance=false. Prune mode is incompatible with -disablegovernance=false. - 292 + 328 - + Prune mode is incompatible with -txindex. Prune mode is incompatible with -txindex. - 293 + 329 - + SQLiteDatabase: Failed to execute statement to verify database: %s SQLiteDatabase: Failed to execute statement to verify database: %s - 298 + 334 - + SQLiteDatabase: Failed to prepare statement to verify database: %s SQLiteDatabase: Failed to prepare statement to verify database: %s - 299 + 335 - + SQLiteDatabase: Failed to read database verification error: %s SQLiteDatabase: Failed to read database verification error: %s - 300 + 336 - + SQLiteDatabase: Unexpected application id. Expected %u, got %u SQLiteDatabase: Unexpected application id. Expected %u, got %u - 301 + 337 - + Section [%s] is not recognized. Section [%s] is not recognized. - 302 + 338 - + Specified -walletdir "%s" does not exist Specified -walletdir "%s" does not exist - 306 + 342 - + Specified -walletdir "%s" is a relative path Specified -walletdir "%s" is a relative path - 307 + 343 - + Specified -walletdir "%s" is not a directory Specified -walletdir "%s" is not a directory - 308 + 344 - + The wallet will avoid paying less than the minimum relay fee. The wallet will avoid paying less than the minimum relay fee. - 318 + 354 - + This is expected because you are running a pruned node. This is expected because you are running a pruned node. - 319 + 355 - + This is the minimum transaction fee you pay on every transaction. This is the minimum transaction fee you pay on every transaction. - 321 + 357 - + This is the transaction fee you will pay if you send a transaction. This is the transaction fee you will pay if you send a transaction. - 322 + 358 - + Topping up keypool… - - 323 + Topping up keypool… + 359 - + Transaction amounts must not be negative Transaction amounts must not be negative - 325 + 361 - + Transaction has too long of a mempool chain Transaction has too long of a mempool chain - 328 + 364 - + Transaction must have at least one recipient Transaction must have at least one recipient - 329 + 365 - + Transaction too large Transaction too large - 331 + 367 - + Unable to bind to %s on this computer. %s is probably already running. Unable to bind to %s on this computer. %s is probably already running. - 334 + 370 - + Unable to create the PID file '%s': %s Unable to create the PID file '%s': %s - 335 + 371 - + Unable to generate initial keys Unable to generate initial keys - 336 + 372 - + Unable to open %s for writing + Unable to open %s for writing + 375 + + + Unable to parse -maxuploadtarget: '%s' (possible integer overflow?) - 339 + 376 - + Unknown -blockfilterindex value %s. Unknown -blockfilterindex value %s. - 342 + 379 - + Unknown new rules activated (versionbit %i) Unknown new rules activated (versionbit %i) - 344 + 381 - + Upgrading UTXO database Upgrading UTXO database - 348 + 385 - + Verifying blocks… - - 351 + Verifying blocks… + 387 - + Verifying wallet(s)… - - 352 + Verifying wallet(s)… + 388 - + Wallet needed to be rewritten: restart %s to complete Wallet needed to be rewritten: restart %s to complete - 355 + 391 - + Wasn't able to create wallet backup folder %s! Wasn't able to create wallet backup folder %s! - 358 + 394 - + Wiping wallet transactions… - - 360 + Wiping wallet transactions… + 396 - + You can not start a masternode with wallet enabled. You can not start a masternode with wallet enabled. - 363 - - - You need to rebuild the database using -reindex to change -addressindex - You need to rebuild the database using -reindex to change -addressindex - 364 - - - You need to rebuild the database using -reindex to change -spentindex - You need to rebuild the database using -reindex to change -spentindex - 365 + 399 - + no mixing available. no mixing available. - 367 + 403 - + see debug.log for details. see debug.log for details. - 368 + 404 - + The %s developers The %s developers 12 - + %s uses exact denominated amounts to send funds, you might simply need to mix some more coins. %s uses exact denominated amounts to send funds, you might simply need to mix some more coins. 19 - - Cannot downgrade wallet from version %i to version %i. Wallet version unchanged. + + -reindex-chainstate option is not compatible with -blockfilterindex. Please temporarily disable blockfilterindex while using -reindex-chainstate, or replace -reindex-chainstate with -reindex to fully rebuild all indexes. 25 - + + -reindex-chainstate option is not compatible with -coinstatsindex. Please temporarily disable coinstatsindex while using -reindex-chainstate, or replace -reindex-chainstate with -reindex to fully rebuild all indexes. + + 29 + + + -reindex-chainstate option is not compatible with -txindex. Please temporarily disable txindex while using -reindex-chainstate, or replace -reindex-chainstate with -reindex to fully rebuild all indexes. + + 33 + + + Cannot downgrade wallet from version %i to version %i. Wallet version unchanged. + Cannot downgrade wallet from version %i to version %i. Wallet version unchanged. + 37 + + Cannot obtain a lock on data directory %s. %s is probably already running. Cannot obtain a lock on data directory %s. %s is probably already running. - 28 + 40 - + Cannot upgrade a non HD wallet from version %i to version %i which is non-HD wallet. Use upgradetohd RPC - - 33 + Cannot upgrade a non HD wallet from version %i to version %i which is non-HD wallet. Use upgradetohd RPC + 45 - + Distributed under the MIT software license, see the accompanying file %s or %s Distributed under the MIT software license, see the accompanying file %s or %s - 36 + 48 - + Error loading %s: You can't enable HD on an already existing non-HD wallet Error loading %s: You can't enable HD on an already existing non-HD wallet - 39 + 51 - + + Error loading wallet. Wallet requires blocks to be downloaded, and software does not currently support loading wallets while blocks are being downloaded out of order when using assumeutxo snapshots. Wallet should be able to load successfully after node sync reaches height %s + + 53 + + Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect. Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect. - 41 + 58 - + Error: Dumpfile format record is incorrect. Got "%s", expected "format". - - 44 + Error: Dumpfile format record is incorrect. Got "%s", expected "format". + 61 - + Error: Dumpfile identifier record is incorrect. Got "%s", expected "%s". - - 46 + Error: Dumpfile identifier record is incorrect. Got "%s", expected "%s". + 63 - + Error: Dumpfile version is not supported. This version of bitcoin-wallet only supports version 1 dumpfiles. Got dumpfile with version %s + Error: Dumpfile version is not supported. This version of bitcoin-wallet only supports version 1 dumpfiles. Got dumpfile with version %s + 65 + + + Failed to rename invalid peers.dat file. Please move or delete it and try again. - 48 + 74 - + File %s already exists. If you are sure this is what you want, move it out of the way first. + File %s already exists. If you are sure this is what you want, move it out of the way first. + 80 + + + Incompatible options: -dnsseed=1 was explicitly specified, but -onlynet forbids connections to IPv4/IPv6 - 60 + 86 - + Incorrect or no devnet genesis block found. Wrong datadir for devnet specified? Incorrect or no devnet genesis block found. Wrong datadir for devnet specified? - 66 + 89 - + Invalid or corrupt peers.dat (%s). If you believe this is a bug, please report it to %s. As a workaround, you can move the file (%s) out of the way (rename, move, or delete) to have a new one created on the next start. - - 74 + Invalid or corrupt peers.dat (%s). If you believe this is a bug, please report it to %s. As a workaround, you can move the file (%s) out of the way (rename, move, or delete) to have a new one created on the next start. + 97 - + No dump file provided. To use createfromdump, -dumpfile=<filename> must be provided. - - 84 + No dump file provided. To use createfromdump, -dumpfile=<filename> must be provided. + 107 - + No dump file provided. To use dump, -dumpfile=<filename> must be provided. - - 87 + No dump file provided. To use dump, -dumpfile=<filename> must be provided. + 110 - + No wallet file format provided. To use createfromdump, -format=<format> must be provided. - - 89 + No wallet file format provided. To use createfromdump, -format=<format> must be provided. + 112 - + Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is explicitly forbidden: -onion=0 - - 92 + Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is explicitly forbidden: -onion=0 + 115 - + Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided: none of -proxy, -onion or -listenonion is given - - 95 + Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided: none of -proxy, -onion or -listenonion is given + 118 - + Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly. Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly. - 99 + 122 - + Please contribute if you find %s useful. Visit %s for further information about the software. Please contribute if you find %s useful. Visit %s for further information about the software. - 102 + 125 - - This is the maximum transaction fee you pay (in addition to the normal fee) to prioritize partial spend avoidance over regular coin selection. + + Prune mode is incompatible with -reindex-chainstate. Use full -reindex instead. - 127 + 130 - + + The -txindex upgrade started by a previous version can not be completed. Restart with the previous version or run a full -reindex. + + 139 + + + The block index db contains a legacy 'txindex'. To clear the occupied disk space, run a full -reindex, otherwise ignore this error. This error message will not be displayed again. + + 147 + + + This is the maximum transaction fee you pay (in addition to the normal fee) to prioritize partial spend avoidance over regular coin selection. + This is the maximum transaction fee you pay (in addition to the normal fee) to prioritize partial spend avoidance over regular coin selection. + 160 + + This is the transaction fee you may discard if change is smaller than dust at this level This is the transaction fee you may discard if change is smaller than dust at this level - 130 + 163 - + This is the transaction fee you may pay when fee estimates are not available. This is the transaction fee you may pay when fee estimates are not available. - 133 + 166 - + Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate. Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate. - 145 + 178 - + Unknown wallet file format "%s" provided. Please provide one of "bdb" or "sqlite". - - 148 + Unknown wallet file format "%s" provided. Please provide one of "bdb" or "sqlite". + 181 - + Warning: Dumpfile wallet format "%s" does not match command line specified format "%s". - - 156 + Warning: Dumpfile wallet format "%s" does not match command line specified format "%s". + 189 - + Warning: Private keys detected in wallet {%s} with disabled private keys Warning: Private keys detected in wallet {%s} with disabled private keys - 159 + 192 - - %s -- Incorrect seed, it should be a hex string + + You need to rebuild the database using -reindex to enable -timestampindex - 169 + 197 + + + %s -- Incorrect seed, it should be a hex string + %s -- Incorrect seed, it should be a hex string + 202 - + %s is not a valid backup folder! %s is not a valid backup folder! - 173 + 206 - + %s is set very high! %s is set very high! - 174 + 207 - + %s request incomplete: %s request incomplete: - 175 + 208 - + -devnet can only be specified once -devnet can only be specified once - 176 + 209 - + -port must be specified when -devnet and -listen are specified -port must be specified when -devnet and -listen are specified - 178 + 211 - + -rpcport must be specified when -devnet and -server are specified -rpcport must be specified when -devnet and -server are specified - 179 + 212 - + A fatal internal error occurred, see debug.log for details A fatal internal error occurred, see debug.log for details - 180 + 213 - + Cannot resolve -%s address: '%s' Cannot resolve -%s address: '%s' - 186 + 219 - + Cannot write to data directory '%s'; check permissions. Cannot write to data directory '%s'; check permissions. - 188 + 221 - + Change index out of range Change index out of range - 189 + 222 - + Copyright (C) Copyright (C) - 192 + 225 - + Disk space is too low! Disk space is too low! - 196 + 229 - + Dump file %s does not exist. - - 199 + Dump file %s does not exist. + 232 - + Error creating %s - - 203 + Error creating %s + 236 - + Error loading %s Error loading %s - 206 + 239 - + Error loading %s: Wallet corrupted Error loading %s: Wallet corrupted - 208 + 241 - + Error loading %s: Wallet requires newer version of %s Error loading %s: Wallet requires newer version of %s - 209 + 242 - + Error loading %s: You can't disable HD on an already existing HD wallet Error loading %s: You can't disable HD on an already existing HD wallet - 210 + 243 - + Error reading next record from wallet database - - 214 + Error reading next record from wallet database + 247 - + Error upgrading chainstate database Error upgrading chainstate database - 215 + 248 - + Loading P2P addresses… - - 271 + Loading P2P addresses… + 307 - + Loading banlist… - - 272 + Loading banlist… + 308 - + Loading block index… - - 273 + Loading block index… + 309 - + Loading wallet… - - 274 + Loading wallet… + 310 - + Failed to clear fulfilled requests cache at %s Failed to clear fulfilled requests cache at %s - 227 + 261 - + Failed to clear governance cache at %s Failed to clear governance cache at %s - 228 + 262 - + Failed to clear masternode cache at %s Failed to clear masternode cache at %s - 229 + 263 - + Failed to find mixing queue to join Failed to find mixing queue to join - 234 + 268 - + Failed to load fulfilled requests cache from %s Failed to load fulfilled requests cache from %s - 236 + 270 - + Failed to load governance cache from %s Failed to load governance cache from %s - 237 + 271 - + Failed to load masternode cache from %s Failed to load masternode cache from %s - 238 + 272 - + Failed to load sporks cache from %s Failed to load sporks cache from %s - 239 + 273 - + Failed to start a new mixing queue Failed to start a new mixing queue - 241 + 275 - + Importing… - - 246 + Importing… + 281 - + Incorrect -rescan mode, falling back to default value Incorrect -rescan mode, falling back to default value - 249 + 284 - + Initialization sanity check failed. %s is shutting down. Initialization sanity check failed. %s is shutting down. - 251 + 286 - + Inputs vs outputs size mismatch. Inputs vs outputs size mismatch. - 253 + 289 - + Invalid '%s'. Allowed values: 128, 160, 192, 224, 256. Invalid '%s'. Allowed values: 128, 160, 192, 224, 256. - 255 + 291 - + Invalid -i2psam address or hostname: '%s' Invalid -i2psam address or hostname: '%s' - 256 + 292 - + Invalid -onion address or hostname: '%s' Invalid -onion address or hostname: '%s' - 257 + 293 - + Invalid -proxy address or hostname: '%s' Invalid -proxy address or hostname: '%s' - 258 + 294 - + Invalid amount for -%s=<amount>: '%s' Invalid amount for -%s=<amount>: '%s' - 260 + 296 - + Invalid spork address specified with -sporkaddr Invalid spork address specified with -sporkaddr - 268 - - - Prune mode is incompatible with -coinstatsindex. - Prune mode is incompatible with -coinstatsindex. - 291 + 304 - + Reducing -maxconnections from %d to %d, because of system limitations. Reducing -maxconnections from %d to %d, because of system limitations. - 295 + 331 - + Session not complete! Session not complete! - 303 + 339 - + Session timed out. Session timed out. - 304 + 340 - + Signing transaction failed Signing transaction failed - 305 + 341 - + Specified blocks directory "%s" does not exist. Specified blocks directory "%s" does not exist. - 309 + 345 - + Last queue was created too recently. Last queue was created too recently. - 269 + 305 - + %s corrupt. Try using the wallet tool dash-wallet to salvage or restoring a backup. %s corrupt. Try using the wallet tool dash-wallet to salvage or restoring a backup. 13 - + Last successful action was too recent. Last successful action was too recent. - 270 + 306 - + The source code is available from %s. The source code is available from %s. - 315 + 351 - + The specified config file %s does not exist The specified config file %s does not exist - 316 + 352 - + The transaction amount is too small to pay the fee The transaction amount is too small to pay the fee - 317 + 353 - + This is experimental software. This is experimental software. - 320 + 356 - + Transaction amount too small Transaction amount too small - 324 + 360 - + Transaction created successfully. Transaction created successfully. - 326 + 362 - + Transaction fees are too high. Transaction fees are too high. - 327 + 363 - + Transaction not valid. Transaction not valid. - 330 + 366 - + Trying to connect… - - 332 + Trying to connect… + 368 - + Unable to bind to %s on this computer (bind returned error %s) Unable to bind to %s on this computer (bind returned error %s) - 333 + 369 - + Unable to locate enough mixed funds for this transaction. Unable to locate enough mixed funds for this transaction. - 337 + 373 - + Unable to locate enough non-denominated funds for this transaction. Unable to locate enough non-denominated funds for this transaction. - 338 + 374 - + Unable to sign spork message, wrong key? Unable to sign spork message, wrong key? - 340 + 377 - + Unknown network specified in -onlynet: '%s' Unknown network specified in -onlynet: '%s' - 343 + 380 - + Unknown state: id = %u Unknown state: id = %u - 346 + 383 - + Unsupported logging category %s=%s. Unsupported logging category %s=%s. - 347 - - - Upgrading txindex database - Upgrading txindex database - 349 + 384 - + Very low number of keys left: %d Very low number of keys left: %d - 353 + 389 - + Wallet is locked. Wallet is locked. - 354 + 390 - + Warning: can't use %s and %s together, will prefer %s Warning: can't use %s and %s together, will prefer %s - 356 + 392 - + Warning: incorrect parameter %s, path must exist! Using default path. Warning: incorrect parameter %s, path must exist! Using default path. - 357 + 393 - + Will retry… - - 359 + Will retry… + 395 - + You are starting with governance validation disabled. You are starting with governance validation disabled. - 361 + 397 - + You can not disable governance validation on a masternode. You can not disable governance validation on a masternode. - 362 + 398 - + + You need to rebuild the database using -reindex to enable -addressindex + + 400 + + + You need to rebuild the database using -reindex to enable -spentindex + + 401 + + Your entries added successfully. Your entries added successfully. - 366 + 402 diff --git a/src/qt/locale/dash_fr.ts b/src/qt/locale/dash_fr.ts index 336dab7beb9bb..c9bffe9ce916c 100644 --- a/src/qt/locale/dash_fr.ts +++ b/src/qt/locale/dash_fr.ts @@ -93,10 +93,6 @@ &Edit &Modifier - - &Show address QR code - Voir le QR-code de l'adresse - QR code QR-code @@ -105,6 +101,16 @@ Export Address List Exporter la liste d'adresses + + Comma separated file + Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values. + Fichier avec virgules comme séparations + + + There was an error trying to save the address list to %1. Please try again. + An error message. %1 is a stand-in argument for the name of the file we attempted to save to. + Une erreur s'est produite en essayant de sauvegarder la liste d'adresses sur %1. Veuillez réessayer. + Exporting Failed L'exportation a échoué @@ -303,7 +309,23 @@ BitcoinApplication - + + Runaway exception + Exception lors de l'exécution + + + A fatal error occurred. %1 can no longer continue safely and will quit. + Une erreur fatale s'est produite. %1 ne peut plus continuer de manière sûre, il va se fermer. + + + Internal error + Erreur interne + + + An internal error occurred. %1 will attempt to continue safely. This is an unexpected bug which can be reported as described below. + Une erreur interne s'est produite. %1 va essayer de continuer de manière sûre. C'est un bug inattendu qui peut être signalé avec la description ci-dessous. + + BitcoinGUI @@ -330,6 +352,10 @@ Request payments (generates QR codes and dash: URIs) Demande de paiements (génère des QR-codes et des URIs Dash) + + Ctrl+Q + Ctrl+Q + &Options… &Options… @@ -358,6 +384,14 @@ &Verify message… &Vérifier un message… + + &Load PSBT from file… + Charger PSBT depuis fichier… + + + Load PSBT from clipboard… + Charger PSBT depuis le presse-papiers… + &Sending addresses Envoyer des adresses @@ -576,10 +610,30 @@ Show information about %1 Afficher les informations sur %1 + + Load Partially Signed Dash Transaction + Charger transaction Dash partiellement signée + + + Load Partially Signed Bitcoin Transaction from clipboard + Charger transaction Bitcoin partiellement signée depuis le presse-papiers + + + Open debugging and diagnostic console + Ouvrir la console de débogage et de diagnostic + + + Open a dash: URI + Ouvrir une URI dash: + Create a new wallet Créer un nouveau portefeuille + + Close all wallets + Fermer tous les portefeuilles + %1 &information %1 &Informations @@ -588,6 +642,14 @@ Show the %1 basic information Afficher les informations de base %1 + + &Discreet mode + Mode &Discret + + + Mask the values in the Overview tab + Masquer les valeurs dans l'onglet Vue d'ensemble + &Settings &Réglages @@ -610,6 +672,7 @@ %n active connection(s) to Dash network + A substring of the tooltip. %n connexion active au réseau Dash %n connexions actives au réseau Dash %n connexions actives au réseau Dash @@ -632,6 +695,18 @@ Create Wallet… Créer un portefeuille… + + Close All Wallets… + Fermer tous les portefeuilles… + + + Ctrl+Shift+D + Ctrl+Maj+D + + + Ctrl+M + Ctrl+M + Syncing Headers (%1%)… Synchronisation des en-têtes (%1%)… @@ -865,30 +940,10 @@ Confirmed Confirmée - - Copy address - Copier l’adresse - - - Copy label - Copier l’étiquette - Copy amount Copier le montant - - Copy transaction ID - Copier l'ID de la transaction - - - Lock unspent - Verrouiller ce qui n'est pas dépensé - - - Unlock unspent - Déverrouiller ce qui n'est pas dépensé - Copy quantity Copier la quantité @@ -978,6 +1033,7 @@ CreateWalletActivity Creating Wallet <b>%1</b>… + Descriptive text of the create wallet progress window which indicates to the user which wallet is currently being created. Création du portefeuille <b>%1</b>… @@ -999,6 +1055,10 @@ Wallet Name Nom du portefeuille + + Wallet + Portefeuille + Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice. Chiffrer le portefeuille. Le portefeuille sera chiffré avec une phrase de passe de votre choix. @@ -1007,6 +1067,10 @@ Encrypt Wallet Chiffrer le portefeuille + + Advanced Options + Options avancées + Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets. Désactiver les clés privées pour ce portefeuille. Les portefeuilles avec des clés privées désactivées n'auront pas de clés privées et ne peuvent avoir une graine HD ou des clés privées importées. C'est idéal pour les portefeuilles en consultation seule. @@ -1023,11 +1087,23 @@ Make Blank Wallet Créer un portefeuille vierge + + Use descriptors for scriptPubKey management. This feature is well-tested but still considered experimental and not recommended for use yet. + Utiliser des descripteurs pour la gestion scriptPubKey. Cette fonction a été bien testée mais reste considérée comme expérimentale, son utilisation n'est pas encore recommandée. + + + Descriptor Wallet (EXPERIMENTAL) + Portefeuille à descripteur (EXPÉRIMENTAL) + Create Créer - + + Compiled without sqlite support (required for descriptor wallets) + Compilé sans support sqlite (indispensable pour les portefeuilles à descripteurs) + + EditAddressDialog @@ -1116,6 +1192,10 @@ Filter List: Liste de filtres : + + Filter proposal list + Filtrer la liste des propositions + Proposal Count: Nombre de propositions : @@ -1166,10 +1246,26 @@ As this is the first time the program is launched, you can choose where %1 will store its data. Puisque c’est la première fois que le logiciel est lancé, vous pouvez choisir où %1 stockera ses données. + + Limit block chain storage to + Limiter le stockage de blockchain à + + + Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features. + Inverser ce réglage entraîne un nouveau téléchargement de la blockchain entière. Il est plus rapide de télécharger la chaîne entière d'abord, puis de la tailler ensuite. Désactive certaines fonctions avancées. + + + GB + Go + This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. La synchronisation initiale est très exigeante et pourrait exposer des problèmes matériels dans votre ordinateur passés inaperçus auparavant. Chaque fois que vous exécuterez %1, le téléchargement reprendra où il s’était arrêté. + + When you click OK, %1 will begin to download and process the full %4 block chain (%2 GB) starting with the earliest transactions in %3 when %4 initially launched. + Quand vous cliquez sur OK, %1 se mettra à télécharger et traiter la blockchain %4 entière (%2 Go) en commençant par les premières transactions dans %3 quand %4 a été lancé initialement. + If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low. Si vous avez choisi de limiter le stockage de la chaîne de blocs (élagage), les données historiques doivent quand même être téléchargées et traitées, mais seront supprimées par la suite pour minimiser l’utilisation de votre espace disque. @@ -1182,6 +1278,18 @@ Use a custom data directory: Utiliser un répertoire de données personnalisé : + + %1 GB of free space available + %1 Go d'espace disponible + + + (of %1 GB needed) + (de %1 Go nécessaire) + + + (%1 GB needed for full chain) + (%1 Go nécessaires pour la chaîne entière) + At least %1 GB of data will be stored in this directory, and it will grow over time. Au moins %1 Go de données seront stockés dans ce répertoire et sa taille augmentera avec le temps. @@ -1190,6 +1298,11 @@ Approximately %1 GB of data will be stored in this directory. Approximativement %1 Go de données seront stockés dans ce répertoire. + + (sufficient to restore backups %n day(s) old) + Explanatory text on the capability of the current prune target. + (suffisant pour restaurer des sauvegardes vieilles de %n jour)(suffisant pour restaurer des sauvegardes vieilles de %n jours)(suffisant pour restaurer des sauvegardes vieilles de %n jours) + %1 will download and store a copy of the Dash block chain. %1 téléchargera et stockera une copie de la chaîne de blocs Dash. @@ -1241,6 +1354,10 @@ Service Service + + Type + Type + PoSe Score Score PoSe @@ -1376,6 +1493,10 @@ Hide Masquer + + %1 is currently syncing. It will download headers and blocks from peers and validate them until reaching the tip of the block chain. + %1 est en cours de synchronisation. Il téléchargera les en-têtes et les blocs des pairs, et les validera jusqu'à atteindre le bout de la blockchain. + Unknown. Syncing Headers (%1, %2%)… Inconnu. Synchronisation d'en-têtes (%1, %2%)… @@ -1408,6 +1529,7 @@ Opening Wallet <b>%1</b>… + Descriptive text of the open wallet progress window which indicates to the user which wallet is currently being opened. Ouverture du portefeuille <b>%1</b>… @@ -1441,6 +1563,14 @@ &Appearance &Apparence + + Show the icon in the system tray. + Afficher l'icône dans le tiroir système. + + + &Show tray icon + Afficher l'icône de tiroir + Prune &block storage to Élaguer le stockage &block à @@ -1453,10 +1583,28 @@ Reverting this setting requires re-downloading the entire blockchain. Inverser ce réglage impose de télécharger à nouveau la blockchain entière. + + Maximum database cache size. A larger cache can contribute to faster sync, after which the benefit is less pronounced for most use cases. Lowering the cache size will reduce memory usage. Unused mempool memory is shared for this cache. + Tooltip text for Options window setting that sets the size of the database cache. Explains the corresponding effects of increasing/decreasing this value. + Taille maximale du cache de la base de données. Un cache plus grand peut entraîner une synchronisation plus rapide, après quoi le bénéfice est moins évident dans la plupart des cas d'utilisation. Baisser la taille du cache réduira la mémoire utilisée. La mémoire mempool inutilisée est partagée pour ce cache. + MiB Mio + + Set the number of script verification threads. Negative values correspond to the number of cores you want to leave free to the system. + Tooltip text for Options window setting that sets the number of script verification threads. Explains that negative values mean to leave these many cores free to the system. + Fixe le nombre de files de vérification de scripts. Les valeurs négatives correspondent au nombre de cœurs que vous souhaitez laisser disponibles au système. + + + Whether to keep the specified custom change address or not. + S'il faut garder ou non l'adresse personnalisée de monnaie spécifiée. + + + Keep custom change &address + Garder l'adresse de monnaie personnalisée + Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab. Ajouter un onglet montrant tous vos masternodes dans le premier sous-onglet<br/>et tous les masternodes du réseau dans le second. @@ -1513,6 +1661,14 @@ Enable &multi-session Activer le mode &multi-session + + Use this many separate masternodes in parallel to mix funds.<br/>Note: You must use this feature carefully.<br/>Make sure you always have recent wallet (auto)backup in a safe place! + Utiliser en parallèle ce nombre de masternodes distincts pour mélanger les fonds.<br/>Note : vous devez utiliser cette fonction avec précaution.<br/>Vérifiez que vous avez toujours une sauvegarde récente de votre portefeuille dans un endroit sûr ! + + + Parallel sessions + Sessions parallèles + Mixing rounds Cycles de mélange @@ -1525,6 +1681,30 @@ Target balance Solde cible + + How many inputs of each denominated amount are created.<br/>Lower these numbers if you want fewer smaller denominations. + Combien d'entrées de chaque coupure sont créées.<br/>Baissez ces nombres si vous souhaitez moins de petites coupures. + + + Inputs per denomination + Entrées par coupure + + + Try to create at least this many inputs for each denominated amount.<br/>Lower this number if you want fewer smaller denominations. + Tenter la création d'au moins ce nombre d'entrées pour chaque coupure.<br/>Baissez ce nombre si vous souhaitez moins de petites coupures. + + + Target + Cible + + + Create up to this many inputs for each denominated amount.<br/>Lower this number if you want fewer smaller denominations. + Créer ce maximum d'entrées pour chaque coupure.<br/>Baissez ce nombre si vous souhaitez moins de petites coupures. + + + Maximum + Maximum + Automatically open the Dash Core client port on the router. This only works when your router supports UPnP and it is enabled. Ouvrir automatiquement le port du client Dash Core sur le routeur. Cela ne fonctionne que si votre routeur supporte UPnP et est activé. @@ -1553,6 +1733,12 @@ Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type. Indique si le proxy SOCKS5 par défaut est utilisé pour atteindre les pairs à travers ce type de réseau. + + Language missing or translation incomplete? Help contributing translations here: +https://explore.transifex.com/dash/dash/ + Langue absent ou traduction incompléte ? Aidez à traduire ici : +https://explore.transifex.com/dash/dash/ + Options set in this dialog are overridden by the command line or in the configuration file: Les options choisies dans ce dialogue sont remplacées par la ligne de commande ou dans le fichier de configuration : @@ -1605,6 +1791,10 @@ Map port using &UPnP Mapper le port avec l'&UPnP + + Automatically open the Dash Core client port on the router. This only works when your router supports NAT-PMP and it is enabled. The external port could be random. + Ouvrir automatiquement le port client Dash Core sur le routeur. Cela ne fonctionne que si votre routeur supporte NAT-PMP et qu'il est activé. Le port externe peut être choisi au hasard. + Proxy &IP: &IP du serveur mandataire : @@ -1653,6 +1843,14 @@ &Display &Afficher + + Connect to the Dash network through a separate SOCKS5 proxy for Tor onion services. + Connexion au réseau Dash via un proxy SOCKS5 distinct pour les services onion Tor. + + + Use separate SOCKS&5 proxy to reach peers via Tor onion services: + Utiliser un proxy SOCKS5 distinct pour atteindre les pairs via les services onion Tor : + User Interface &language: &Langue de l'interface utilisateur : @@ -1844,6 +2042,10 @@ %1 Balance Solde %1 + + Discreet mode activated for the Overview tab. To unmask the values, uncheck Settings->Discreet mode. + Mode discret activé pour l'onglet Vue d'ensemble. Pour révéler les valeurs, décochez Mode discret dans les Réglages. + %n Rounds %n Cycle%n cycles%n cycles @@ -1943,7 +2145,128 @@ PSBTOperationsDialog - + + Dialog + Dialogue + + + Sign Tx + Signature Tx + + + Broadcast Tx + Diffusion Tx + + + Copy to Clipboard + Copier dans le presse-papiers + + + Save… + Enregistrer… + + + Close + Fermer + + + Failed to load transaction: %1 + Échec du chargement de la transaction : %1 + + + Failed to sign transaction: %1 + Échec de la signature de la transaction : %1 + + + Could not sign any more inputs. + Impossible de signer plus d'entrées. + + + Signed %1 inputs, but more signatures are still required. + Signé %1 entrées, mais plus de signatures restent demandées. + + + Signed transaction successfully. Transaction is ready to broadcast. + Transaction signée avec succès. La transaction est prête à être diffusée. + + + Unknown error processing transaction. + Erreur inconnue en traitant la transaction. + + + Transaction broadcast successfully! Transaction ID: %1 + Transaction diffusée avec succès ! ID de la transaction : %1 + + + Transaction broadcast failed: %1 + Échec de la diffusion de la transaction : %1 + + + PSBT copied to clipboard. + PSBT copié dans le presse-papiers. + + + Save Transaction Data + Enregistrer les données de transaction + + + Partially Signed Transaction (Binary) + Expanded name of the binary PSBT file format. See: BIP 174. + Transaction partiellement signée (binaire) + + + PSBT saved to disk. + PSBT enregistré sur le disque. + + + * Sends %1 to %2 + * Envoie %1 à %2 + + + Unable to calculate transaction fee or total transaction amount. + Impossible de calculer les frais de transaction ou le montant total de la transaction.@ + + + Pays transaction fee: + Paie les frais de transaction : + + + Total Amount + Montant total + + + or + ou + + + Transaction has %1 unsigned inputs. + La transaction a %1 entrées non signées. + + + Transaction is missing some information about inputs. + Il manque à la transaction certains informations sur les entrées. + + + Transaction still needs signature(s). + La transaction a encore besoin de signature(s). + + + (But this wallet cannot sign transactions.) + (Mais ce portefeuille ne peut pas signer les transactions.) + + + (But this wallet does not have the right keys.) + (Mais ce portefeuille ne détient pas les bonnes clés.) + + + Transaction is fully signed and ready for broadcast. + La transaction est entièrement signée et prête à être diffusée. + + + Transaction status is unknown. + L'état de la transaction est inconnu. + + PaymentServer @@ -1983,6 +2306,16 @@ Title of Peers Table column which indicates the current latency of the connection with the peer. Ping + + Peer + Title of Peers Table column which contains a unique number used to identify a connection. + Pair + + + Type + Title of Peers Table column which describes the type of peer connection. The "type" describes why the connection exists. + Type + Sent Title of Peers Table column which indicates the total amount of network information we have sent to the peer. @@ -1993,6 +2326,16 @@ Title of Peers Table column which indicates the total amount of network information we have received from the peer. Reçu + + Address + Title of Peers Table column which contains the IP/Onion/I2P address of the connected peer. + Adresse + + + Network + Title of Peers Table column which states the network the peer connected through. + Réseau + Proposal @@ -2046,6 +2389,11 @@ QObject + + Do you want to reset settings to default values, or to abort without making changes? + Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting. + Souhaitez-vous réinitialiser les réglages à leurs valeurs de défaut, ou abandonner sans faire de modification ? + Choose data directory on startup (default: %u) Choisir le répertoire de données au démarrage (par défaut : %u) @@ -2146,6 +2494,53 @@ This can also be adjusted later in the "Appearance" tab of the preferences. Vous pouvez aussi choisir cela plus tard, dans l'onglet "Apparence" des préférences. + + Ctrl+W + Ctrl+W + + + Unroutable + Non routable + + + Internal + Interne + + + Inbound + An inbound connection from a peer. An inbound connection is a connection initiated by a peer. + Entrant + + + Outbound + An outbound connection to a peer. An outbound connection is a connection initiated by us. + Sortant + + + Full Relay + Peer connection type that relays all network information. + Relais entier + + + Block Relay + Peer connection type that relays network information about blocks and not transactions or addresses. + Relais de bloc + + + Manual + Peer connection type established manually through one of several methods. + Manuel + + + Feeler + Short-lived peer connection type that tests the aliveness of known addresses. + Feeler + + + Address Fetch + Short-lived peer connection type that solicits known addresses from a peer. + Atteinte d'adresse + %1 d %1 j @@ -2206,10 +2601,6 @@ %1 B %1 o - - %1 KB - %1 Ko - %1 MB %1 Mo @@ -2264,7 +2655,12 @@ Save QR Code Sauvegarder le QR-code - + + PNG Image + Expanded name of the PNG file format. See: https://en.wikipedia.org/wiki/Portable_Network_Graphics. + Image PNG + + RPCConsole @@ -2371,6 +2767,22 @@ Version Version + + Whether the peer requested us to relay transactions. + Si le pair nous a demandés de relayer des transactions. + + + Wants Tx Relay + Souhaite un relais de transaction + + + High bandwidth BIP152 compact block relay: %1 + Relais de bloc compact BIP152 haute bande passante : %1 + + + High Bandwidth + Haute bande passante + Starting Block Bloc de départ @@ -2384,31 +2796,76 @@ Blocs synchronisés - Rescan blockchain files 1 - Rebalayer les fichiers de la chaîne de blocs (1) + Elapsed time since a novel block passing initial validity checks was received from this peer. + Temps écoulé depuis qu'un nouveau bloc passant les vérifications initiales a été reçu de ce pair. - Rescan blockchain files 2 - Rebalayer les fichiers de la chaîne de blocs (2) + Last Block + Dernier bloc - The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockchain files or missing/obsolete transactions. - Les boutons ci-dessous vont redémarrer le portefeuille avec des options de ligne de commande pour réparer le portefeuille, régler les problèmes avec des fichiers corrompus de blockchain ou des transactions manquantes ou obsolètes. + Elapsed time since a novel transaction accepted into our mempool was received from this peer. + Tooltip text for the Last Transaction field in the peer details area. + Temps écoulé depuis qu'une nouvelle transaction acceptée par notre mempool a été reçue de ce pair. - -rescan=1: Rescan the block chain for missing wallet transactions starting from wallet creation time. - -rescan=1 : Rebalaye la chaîne de blocs pour les transactions de portefeuille manquantes, à compter du moment de création du portefeuille. + Last Transaction + Dernière transaction - -rescan=2: Rescan the block chain for missing wallet transactions starting from genesis block. - -rescan=2 : Rebalaye la chaîne de blocs pour les transactions de portefeuille manquantes, à compter du tout premier bloc. + The mapped Autonomous System used for diversifying peer selection. + Le Système Autonome cartographié utilisé pour diversifier le choix de pairs. - User Agent - Agent utilisateur + Mapped AS + AS cartographié - Datadir + Whether we relay addresses to this peer. + Tooltip text for the Address Relay field in the peer details area, which displays whether we relay addresses to this peer (Yes/No). + Si nous relayons les adresses vers ce pair. + + + Address Relay + Text title for the Address Relay field in the peer details area, which displays whether we relay addresses to this peer (Yes/No). + Relay d'adresses + + + Addresses Processed + Text title for the Addresses Processed field in the peer details area, which displays the total number of addresses received from this peer that were processed (excludes addresses that were dropped due to rate-limiting). + Adresses traitées + + + Addresses Rate-Limited + Text title for the Addresses Rate-Limited field in the peer details area, which displays the total number of addresses received from this peer that were dropped (not processed) due to rate-limiting. + Adresses au taux limité + + + Rescan blockchain files 1 + Rebalayer les fichiers de la chaîne de blocs (1) + + + Rescan blockchain files 2 + Rebalayer les fichiers de la chaîne de blocs (2) + + + The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockchain files or missing/obsolete transactions. + Les boutons ci-dessous vont redémarrer le portefeuille avec des options de ligne de commande pour réparer le portefeuille, régler les problèmes avec des fichiers corrompus de blockchain ou des transactions manquantes ou obsolètes. + + + -rescan=1: Rescan the block chain for missing wallet transactions starting from wallet creation time. + -rescan=1 : Rebalaye la chaîne de blocs pour les transactions de portefeuille manquantes, à compter du moment de création du portefeuille. + + + -rescan=2: Rescan the block chain for missing wallet transactions starting from genesis block. + -rescan=2 : Rebalaye la chaîne de blocs pour les transactions de portefeuille manquantes, à compter du tout premier bloc. + + + User Agent + Agent utilisateur + + + Datadir Rép. de données @@ -2423,6 +2880,14 @@ To specify a non-default location of the blocks directory use the '%1' option. Pour indiquer une localisation non-défaut du répertoire de blocs, utilisez l'option '%1'. + + Number of regular Masternodes + Nombre de masternodes standard + + + Number of EvoNodes + Nombre d'Evonodes + Current block height Hauteur du bloc actuel @@ -2471,6 +2936,22 @@ PoSe Score Score PoSe + + The network protocol this peer is connected through: IPv4, IPv6, Onion, I2P, or CJDNS. + Le protocole de réseau à travers lequel ce pair est connecté : IPv4, IPv6, Onion, I2P ou CJDNS. + + + Permissions + Autorisations + + + The direction and type of peer connection: %1 + La direction et le type de connexion au pair : %1 + + + Direction/Type + Direction/Type + Services Services @@ -2524,52 +3005,82 @@ -reindex: Reconstruit l'index de la chaîne de blocs à partir des fichiers blk000??.dat actuels. - &Disconnect - &Déconnecter + Inbound: initiated by peer + Explanatory text for an inbound peer connection. + Entrant : initié par pair - Ban for - Bannir pour + Outbound Full Relay: default + Explanatory text for an outbound peer connection that relays all network information. This is the default behavior for outbound connections. + Relais entier sortant : par défaut - 1 &hour - 1 &heure + Outbound Block Relay: does not relay transactions or addresses + Explanatory text for an outbound peer connection that relays network information about blocks and not transactions or addresses. + Relais de bloc sortant : ne relaye pas les transactions ou adresses - 1 &day - 1 &jour + Outbound Manual: added using RPC %1 or %2/%3 configuration options + Explanatory text for an outbound peer connection that was established manually through one of several methods. The numbered arguments are stand-ins for the methods available to establish manual connections. + Sortant manuel : ajouté avec les options de configuration RPC %1 ou %2/%3 - 1 &week - 1 &semaine + Outbound Feeler: short-lived, for testing addresses + Explanatory text for a short-lived outbound peer connection that is used to test the aliveness of known addresses. + Feeler sortant : durée de vie brève, pour tester les adresses - 1 &year - 1 &an + Outbound Address Fetch: short-lived, for soliciting addresses + Explanatory text for a short-lived outbound peer connection that is used to request addresses from a peer. + Atteinte d'adresse sortante : durée de vie brève, pour solliciter les adresses - &Unban - Dé&bannir + To + À + + + we selected the peer for high bandwidth relay + nous avons choisi le pair pour relais à haute bande passante + + + From + De + + + the peer selected us for high bandwidth relay + le pair nous a choisis pour relais à haute bande passante + + + No + Non + + + no high bandwidth relay selected + Aucun relais à haute bande passante n'a été choisi + + + &Disconnect + &Déconnecter - Welcome to the %1 RPC console. - Bienvenue sur la console RPC de %1. + Ban for + Bannir pour - Use up and down arrows to navigate history, and %1 to clear screen. - Utilisez les touches de curseur pour naviguer dans l'historique et %1 pour effacer l'écran. + 1 &hour + 1 &heure - Type %1 for an overview of available commands. - Saisissez %1 pour un aperçu des commandes disponibles. + 1 &week + 1 &semaine - For more information on using this console type %1. - Pour en savoir plus sur l'utilisation de cette console, saisissez %1. + 1 &year + 1 &an - WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. - AVERTISSEMENT : des escrocs ont déjà tenté d'inciter des utilisateurs à saisir des commandes ici même, pour voler le contenu de leur portefeuille. N'utilisez pas cette console sans comprendre exactement la portée d'une commande. + &Unban + Dé&bannir In: @@ -2591,10 +3102,34 @@ Executing command without any wallet Exécution de commande sans aucun portefeuille + + Ctrl+Shift+I + Ctrl+Maj+I + + + Ctrl+Shift+C + Ctrl+Maj+C + + + Ctrl+Shift+G + Ctrl+Maj+G + + + Ctrl+Shift+P + Ctrl+Maj+P + + + Ctrl+Shift+R + Ctrl+Maj+R + Executing command using "%1" wallet Exécution de commande avec le portefeuille "%1" + + (peer: %1) + (pair : %1) + via %1 via %1 @@ -2615,7 +3150,11 @@ Unknown Inconnus - + + Never + Jamais + + ReceiveCoinsDialog @@ -2634,6 +3173,10 @@ An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the Dash network. Un message optionnel à joindre à la demande de paiement, qui sera affiché quand la demande sera ouverte.<br>Note : ce message ne sera pas envoyé avec le paiement à travers le réseau Dash. + + An optional label to associate with the new receiving address (used by you to identify an invoice). It is also attached to the payment request. + Une étiquette facultative à associer à la nouvelle adresse de réception (utilisée par vous pour identifier une facture). Elle est aussi jointe à la demande de paiement. + Use this form to request payments. All fields are <b>optional</b>. Utilisez ce formulaire pour demander des paiements. Tous les champs sont <b>optionnels</b>. @@ -2691,28 +3234,40 @@ Saisissez un message à joindre à la requête de paiement - Copy URI - Copier l'&URI + Could not unlock wallet. + Impossible de déverrouiller le portefeuille. - Copy address - Copier l'adresse + Could not generate new address + Impossible de générer une nouvelle adresse + + + ReceiveRequestDialog - Copy label - Copier l’étiquette + Request payment to … + Demander un paiement à… - Copy message - Copier le message + Address: + Adresse : - Copy amount - Copier le montant + Amount: + Montant : + + + Label: + Étiquette : + + + Message: + Message : + + + Wallet: + Portefeuille : - - - ReceiveRequestDialog Copy &URI Copier l'&URI @@ -2827,6 +3382,14 @@ Transaction Fee: Frais de transaction : + + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for dash transactions than the network can process. + Quand il y a moins de volume de transactions que d'espace dans les blocs, les mineurs comme les nœuds de relais peuvent imposer des frais minimaux. Payer seulement ces frais minimaux est parfait, mais soyez conscient que cela peut entraîner une transaction jamais confirmée, dans le cas où il y a plus de demandes de transactions Dash que ne peut en traiter le réseau. + + + A too low fee might result in a never confirming transaction (read the tooltip) + Des frais trop bas peuvent entraîner une transaction jamais confirmée (lisez la bulle d'aide) + (Smart fee not initialized yet. This usually takes a few blocks…) (Les frais intelligents ne sont pas encore disponibles. Cette fonction apparaît d'habitude après quelques blocs…) @@ -2931,6 +3494,10 @@ %1 (%2 blocks) %1 (%2 blocs) + + This will produce a Partially Signed Transaction (PSBT) which you can save or copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet. + Cela produira une transaction partiellement signée (PSBT) que vous pouvez enregistrer ou copier, puis signer avec (par exemple) un portefeuille %1 hors ligne, ou un portefeuille matériel compatible PSBT. + using utiliser @@ -2955,6 +3522,26 @@ Confirm the %1 send action Confirmer l’action d'envoi %1 + + Cr&eate Unsigned + Créer non-signée + + + Creates a Partially Signed Bitcoin Transaction (PSBT) for use with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet. + Créer une transaction Bitcoin partiellement signée (PSBT) pour utilisation avec (par exemple) un portefeuille %1 hors ligne, ou un portefeuille matériel compatible PSBT. + + + from wallet '%1' + depuis le portefeuille '%1' + + + %1 to '%2' + %1 à '%2' + + + Do you want to draft this transaction? + Voulez-vous créer un brouillon de cette transaction ? + %1 funds only Fonds %1 seulement @@ -3003,6 +3590,39 @@ Confirm send coins Confirmer l’envoi des fonds + + Confirm transaction proposal + Confirmer la proposition de transaction + + + Create Unsigned + Créer non-signée + + + Save Transaction Data + Enregistrer les données de transaction + + + PSBT saved + PSBT enregistré + + + Watch-only balance: + Solde à consultation seule : + + + Send + Envoyer + + + To review recipient list click "Show Details…" + Pour voir la liste des destinataires, cliquez sur "Voir les détails…" + + + Partially Signed Transaction (Binary) + Expanded name of the binary PSBT file format. See: BIP 174. + Transaction partiellement signée (binaire) + The recipient address is not valid. Please recheck. L'adresse du destinataire n’est pas valide. Veuillez la vérifier. @@ -3276,6 +3896,10 @@ Wallet unlock was cancelled. Le déverrouillage du portefeuille a été annulé. + + No error + Pas d'erreur + Private key for the entered address is not available. La clef privée pour l'adresse indiquée n'est pas disponible. @@ -3309,12 +3933,11 @@ Message vérifié. + + SplashScreen + TrafficGraphWidget - - KB/s - Ko/s - Total Total @@ -3727,50 +4350,15 @@ Min amount Montant min. - - Abandon transaction - Abandonner la transaction - - - Copy address - Copier l’adresse - - - Copy label - Copier l’étiquette - - - Copy amount - Copier le montant - - - Copy transaction ID - Copier l'ID de la transaction - - - Copy raw transaction - Copier la transaction brute - - - Copy full transaction details - Copier les détails complets de la transaction - - - Edit address label - Modifier le label d'adresse - - - Show transaction details - Afficher les détails de la transaction - - - Show address QR code - Voir le QR-code de l'adresse - Export Transaction History Exporter l'historique des transactions + + Comma separated file + Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values. + Fichier avec virgules comme séparations + Confirmed Confirmée @@ -3849,9 +4437,29 @@ Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled. Fermer trop longtemps le portefeuille peut entraîner la nécessité de resynchroniser la chaîne entière si l'élagage est activé. - + + Close all wallets + Fermer tous les portefeuilles + + + Are you sure you wish to close all wallets? + Souhaitez-vous vraiment fermer tous les portefeuilles ? + + WalletFrame + + No wallet has been loaded. +Go to File > Open Wallet to load a wallet. +- OR - + Aucun portefeuille n'a été chargé. +Allez à Fichier > Ouvrir le portefeuille pour charger un portefeuille. +- OU - + + + Create a new wallet + Créer un nouveau portefeuille + WalletModel @@ -3878,6 +4486,11 @@ Selected amount: Montant sélectionné : + + Wallet Data + Name of the wallet data file format. + Données de portefeuille + Backup Wallet Sauvegarder le portefeuille @@ -3969,6 +4582,18 @@ Error reading from database, shutting down. Erreur à la lecture de la base de données, arrêt en cours. + + Error: Missing checksum + Erreur : checksum manquant + + + Error: Unable to parse version %u as a uint32_t + Erreur : impossible de traiter la version %u en tant que uint32_t + + + Error: Unable to write record to new wallet + Erreur : impossible d'écrire l'enregistrement vers un nouveau portefeuille + Failed to listen on any port. Use -listen=0 if you want this. Échec de l'écoute sur un port quelconque. Utilisez -listen=0 si vous voulez ceci. @@ -3993,6 +4618,10 @@ Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) Montant invalide pour -maxtxfee=<montant> : « %s » (doit être au moins du montant de frais minrelay de %s pour éviter des transactions bloquées) + + SQLiteDatabase: Unknown sqlite wallet schema version %d. Only version %d is supported + SQLiteDatabase : version %d de portefeuille sqlite inconnue. Seule la version %d est supportée + Transaction index can't be disabled with governance validation enabled. Either start with -disablegovernance command line switch or enable transaction index. L'index de transaction ne peut pas être désactivé lorsque la validation de gouvernance est activée. Démarrez en ligne de commande avec l'argument -disablegovernance, ou bien activez l'index de transaction. @@ -4145,6 +4774,10 @@ Make sure to encrypt your wallet and delete all non-encrypted backups after you have verified that the wallet works! Assurez-vous de chiffrer votre portefeuille, et effacez toutes vos sauvegardes non chiffrées après avoir vérifié que ce portefeuille marche ! + + More than one onion bind address is provided. Using %s for the automatically created Tor onion service. + Plus d'une adresse onion bind est fournie. Utilisation de %s pour le service onion Tor automatiquement créé. + Prune configured below the minimum of %d MiB. Please use a higher number. Élagage configuré sous le minimum de %d Mio. Veuillez s'il vous plaît utiliser une valeur supérieure. @@ -4165,6 +4798,10 @@ Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. La taille totale de la chaîne de version réseau (%i) dépasse la taille maximum (%i). Réduisez le nombre ou la taille des uacomments. + + Transaction needs a change address, but we can't generate it. Please call keypoolrefill first. + La transaction nécessite une adresse de monnaie rendue, mais nous ne pouvons pas la générer. Veuillez appeler d'abord keypoolrefill. + WARNING! Failed to replenish keypool, please unlock your wallet to do so. ATTENTION ! Impossible de réalimenter la série de clefs. Veuillez déverrouiller votre portefeuille pour cela. @@ -4173,10 +4810,6 @@ Wallet is locked, can't replenish keypool! Automatic backups and mixing are disabled, please unlock your wallet to replenish keypool. Le portefeuille est verrouillé, impossible de réalimenter la série de clefs ! La sauvegarde automatique et le mélange sont désactivés, veuillez déverrouiller votre portefeuille pour la réalimenter. - - You need to rebuild the database using -reindex to change -timestampindex - Vous devez reconstruire la base de données avec l'option -reindex afin de modifier -timestampindex - You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain Vous devez reconstruire la base de données en utilisant -reindex pour retourner en mode non-élagué. Ceci aura pour effet de télécharger à nouveau la chaîne de blocs complète. @@ -4221,10 +4854,30 @@ Error upgrading evo database Erreur en mettant à jour la base de données evo + + Error: Couldn't create cursor into database + Erreur : impossible de créer de curseur dans la base de données + Error: Disk space is low for %s Erreur : l'espace-disque est trop bas pour %s + + Error: Dumpfile checksum does not match. Computed %s, expected %s + Erreur : le checksum du dumpfile ne correspond pas. Calculé %s, attendu %s + + + Error: Got key that was not hex: %s + Erreur : eu une clé qui n'était pas hexadécimale : %s + + + Error: Got value that was not hex: %s + Erreur : eu une valeur qui n'était pas hexadécimale : %s + + + Error: Keypool ran out, please call keypoolrefill first + Erreur : keypool épuisé, veuillez appeler d'abord keypoolrefill + Exceeded max tries. Le nombre maximal d'essais est dépassé. @@ -4249,10 +4902,18 @@ Failed to rescan the wallet during initialization Échec de la réinspection du portefeuille pendant le démarrage + + Failed to verify database + Échec de la vérification de la base de données + Found enough users, signing… Nombre suffisant d'utilisateurs trouvé, signature… + + Ignoring duplicate -wallet %s. + Portefeuille en double ignoré -wallet %s. + Invalid P2P permission: '%s' Autorisation P2P invalide : '%s' @@ -4289,6 +4950,10 @@ No matching denominations found for mixing. Pas de coupures équivalentes trouvées pour le mélange. + + No proxy server specified. Use -proxy=<ip> or -proxy=<ip:port>. + Aucun serveur proxy spécifié. Utilisez -proxy=<ip> ou -proxy=<ip:port>. + Not compatible with existing transactions. Non compatible avec les transactions existantes. @@ -4309,6 +4974,22 @@ Prune mode is incompatible with -txindex. Le mode Élaguer est incompatible avec -txindex. + + SQLiteDatabase: Failed to execute statement to verify database: %s + SQLiteDatabase: impossible d'exécuter la commande pour vérifier la base de données : %s + + + SQLiteDatabase: Failed to prepare statement to verify database: %s + SQLiteDatabase: impossible de préparer la commande pour vérifier la base de données : %s + + + SQLiteDatabase: Failed to read database verification error: %s + SQLiteDatabase: impossible de lire l'erreur de vérification de la base de données : %s + + + SQLiteDatabase: Unexpected application id. Expected %u, got %u + SQLiteDatabase: Id d'application inattendu. Attendu %u, obtenu %u + Section [%s] is not recognized. La section [%s] n'est pas reconnue. @@ -4341,6 +5022,10 @@ This is the transaction fee you will pay if you send a transaction. Il s’agit des frais minimaux que vous payez si vous envoyez une transaction. + + Topping up keypool… + Remplissage du keypool… + Transaction amounts must not be negative Les montants transactionnels ne doivent pas être négatifs @@ -4369,10 +5054,18 @@ Unable to generate initial keys Impossible de générer les clés initiales + + Unable to open %s for writing + Impossible d'ouvrir %s pour y écrire + Unknown -blockfilterindex value %s. Valeur inconnue de -blockfilterindex %s. + + Unknown new rules activated (versionbit %i) + Nouvelles règles inconnues activées (versionbit %i) + Upgrading UTXO database Mise à niveau de la base de données UTXO @@ -4394,16 +5087,12 @@ La création du répertoire de sauvegarde du portefeuille %s a échoué ! - You can not start a masternode with wallet enabled. - Impossible de démarrer un masternode avec le portefeuille activé. - - - You need to rebuild the database using -reindex to change -addressindex - Vous devez reconstruire la base de données avec l'option -reindex afin de modifier -addressindex + Wiping wallet transactions… + Effacement des transactions de portefeuille… - You need to rebuild the database using -reindex to change -spentindex - Vous devez reconstruire la base de données avec l'option -reindex afin de modifier -spentindex + You can not start a masternode with wallet enabled. + Impossible de démarrer un masternode avec le portefeuille activé. no mixing available. @@ -4421,10 +5110,18 @@ %s uses exact denominated amounts to send funds, you might simply need to mix some more coins. %s utilise des montants exacts de coupures pour envoyer des fonds, vous pourriez simplement avoir besoin de mélanger plus de fonds. + + Cannot downgrade wallet from version %i to version %i. Wallet version unchanged. + Impossible de baisser le portefeuille de la version %i à %i. Version de portefeuille inchangée. + Cannot obtain a lock on data directory %s. %s is probably already running. Impossible d’obtenir un verrou sur le répertoire de données %s. %s fonctionne probablement déjà. + + Cannot upgrade a non HD wallet from version %i to version %i which is non-HD wallet. Use upgradetohd RPC + Impossible de monter un portefeuille non-HD de la version %i à la version %i qui est un portefeuille non-HD. Utilisez RPC upgradetohd + Distributed under the MIT software license, see the accompanying file %s or %s Distribué sous la licence MIT d’utilisation d’un logiciel. Consulter le fichier joint %s ou %s @@ -4437,10 +5134,50 @@ Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect. Erreur de lecture de %s ! Toutes les clés ont été lues correctement, mais les données transactionnelles ou les entrées du carnet d’adresses sont peut-être manquantes ou incorrectes. + + Error: Dumpfile format record is incorrect. Got "%s", expected "format". + Erreur : l'enregistrement de format dumpfile est incorrect. Obtenu "%s", attendu "format". + + + Error: Dumpfile identifier record is incorrect. Got "%s", expected "%s". + Erreur : l'enregistrement d'identifieur dumpfile est incorrect. Obtenu "%s", attendu "%s". + + + Error: Dumpfile version is not supported. This version of bitcoin-wallet only supports version 1 dumpfiles. Got dumpfile with version %s + Erreur : version de dumpfile non supportée. Cette version de bitcoin-wallet supporte seulement les dumpfiles de version 1. Obtenu un dumpfile de version %s + + + File %s already exists. If you are sure this is what you want, move it out of the way first. + Le fichier %s existe déjà. Si vous êtes sûr que c'est ce que vous souhaitez, sortez-le d'abord. + Incorrect or no devnet genesis block found. Wrong datadir for devnet specified? Le bloc de genèse devnet est incorrect ou introuvable. Mauvais répertoire de données pour devnet ? + + Invalid or corrupt peers.dat (%s). If you believe this is a bug, please report it to %s. As a workaround, you can move the file (%s) out of the way (rename, move, or delete) to have a new one created on the next start. + peers.dat invalide ou corrompu (%s). Si vous pensez que c'est un bug, veuillez le signaler à %s. Comme contournement, vous pouvez déplacer ailleurs le fichier %s (renommez-le, déplacez-le ou effacez-le) pour qu'un nouveau soit créé au prochain démarrage. + + + No dump file provided. To use createfromdump, -dumpfile=<filename> must be provided. + Aucun dumpfile fourni. Pour utiliser createfromdump, -dumpfile=<filename> doit être fourni. + + + No dump file provided. To use dump, -dumpfile=<filename> must be provided. + Aucun dumpfile fourni. Pour utiliser dump, -dumpfile=<filename> doit être fourni. + + + No wallet file format provided. To use createfromdump, -format=<format> must be provided. + Aucun format de fichier portefeuille fourni. Pour utiliser createfromdump, -format=<format> doit être fourni. + + + Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is explicitly forbidden: -onion=0 + Connexions sortantes restreintes à Tor (-onlynet=onion) mais le proxy pour atteindre le réseau Tor est explicitement interdit : -onion=0 + + + Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided: none of -proxy, -onion or -listenonion is given + Connexions sortantes restreintes à Tor (-onlynet=onion) mais le proxy pour atteindre le réseau Tor n'est pas indiqué : aucun -proxy, -onion ou -listenonion n'est fourni + Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly. Veuillez vérifier que l’heure et la date de votre ordinateur sont justes ! Si votre horloge n’est pas à l’heure, %s ne fonctionnera pas correctement. @@ -4449,6 +5186,10 @@ Please contribute if you find %s useful. Visit %s for further information about the software. Si vous trouvez %s utile, vous pouvez y contribuer. Vous trouverez davantage d’informations à propos du logiciel sur %s. + + This is the maximum transaction fee you pay (in addition to the normal fee) to prioritize partial spend avoidance over regular coin selection. + Ceci sont les frais de transaction maximaux que vous payez (en addition des frais normaux) pour prioriser l'évitement de dépense partielle sur le choix normal de pièces. + This is the transaction fee you may discard if change is smaller than dust at this level Il s’agit des frais de transaction auxquels vous pouvez renoncer si la monnaie rendue est inférieure à ce qui est considéré comme "poussière" à ce niveau @@ -4461,10 +5202,22 @@ Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate. Impossible de repasser les blocs. Vous devez reconstruire la base de données en utilisant -reindex-chainstate. + + Unknown wallet file format "%s" provided. Please provide one of "bdb" or "sqlite". + Format de fichier portefeuille "%s" inconnu. Veuillez fournir "bdb" ou "sqlite". + + + Warning: Dumpfile wallet format "%s" does not match command line specified format "%s". + Avertissement : le format de portefeuille dumpfile "%s" ne correspond pas au format "%s" spécifié en ligne de commande. + Warning: Private keys detected in wallet {%s} with disabled private keys Avertissement : clés privées détectées dans le portefeuille {%s} avec des clés privées désactivées + + %s -- Incorrect seed, it should be a hex string + %s -- graine incorrecte, elle devrait être une chaîne hexadécimale + %s is not a valid backup folder! %s n'est pas un répertoire de sauvegarde valide ! @@ -4513,6 +5266,14 @@ Disk space is too low! L'espace-disque est trop faible ! + + Dump file %s does not exist. + Le dumpfile %s n'existe pas. + + + Error creating %s + Erreur en créant %s + Error loading %s Erreur de chargement de %s @@ -4529,6 +5290,10 @@ Error loading %s: You can't disable HD on an already existing HD wallet Erreur au chargement de %s : Impossible de désactiver HD sur un portefeuille HD déjà existant + + Error reading next record from wallet database + Erreur à la lecture de l'enregistrement suivant sur la base de données du portefeuille + Error upgrading chainstate database Erreur de mise à niveau de la base de données d’état de la chaîne @@ -4601,6 +5366,14 @@ Inputs vs outputs size mismatch. Différence de taille entre entrées et sorties. + + Invalid '%s'. Allowed values: 128, 160, 192, 224, 256. + '%s' invalide. Valeurs autorisées : 128, 160, 192, 224, 256. + + + Invalid -i2psam address or hostname: '%s' + Adresse ou nom d'hôte -i2psam invalide : '%s' + Invalid -onion address or hostname: '%s' Adresse ou nom d’hôte -onion invalide : « %s » @@ -4653,6 +5426,10 @@ The source code is available from %s. Le code source se trouve sur %s. + + The specified config file %s does not exist + Le fichier de configuration spécifié %s n'existe pas + The transaction amount is too small to pay the fee Le montant de la transaction est trop bas pour payer les frais @@ -4709,10 +5486,6 @@ Unsupported logging category %s=%s. Catégorie de journalisation non supportée %s=%s. - - Upgrading txindex database - Mise à jour de la base de données txindex - Very low number of keys left: %d Très peu de clefs restantes : %d @@ -4745,5 +5518,5 @@ Your entries added successfully. Vos entrées ajoutées avec succès. - + \ No newline at end of file diff --git a/src/qt/locale/dash_it.ts b/src/qt/locale/dash_it.ts index 7061404ff9cbb..c36cb1698d009 100644 --- a/src/qt/locale/dash_it.ts +++ b/src/qt/locale/dash_it.ts @@ -93,10 +93,6 @@ &Edit &Modifica - - &Show address QR code - &Mostra l'indirizzo del codice QR - QR code codice QR @@ -107,7 +103,7 @@ Comma separated file - Expanded name of the CSV file format. See https://en.wikipedia.org/wiki/Comma-separated_values + Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values. File separato da virgole @@ -390,11 +386,11 @@ Open Wallet - Portafoglio aperto + Apri Wallet Open a wallet - Apri un portafoglio + Apri Wallet Close wallet @@ -656,6 +652,7 @@ %n active connection(s) to Dash network + A substring of the tooltip. %n connessione attiva alla rete Dash%n connessioni attive alla rete Dash%n connessioni attive alla rete Dash @@ -915,30 +912,10 @@ Confirmed Confermato - - Copy address - Copia l'indirizzo - - - Copy label - Copia l'etichetta - Copy amount Copia l'importo - - Copy transaction ID - Copia l'ID della transazione - - - Lock unspent - Blocca i non spesi - - - Unlock unspent - Sblocca i non spesi - Copy quantity Copia quantità @@ -1028,6 +1005,7 @@ CreateWalletActivity Creating Wallet <b>%1</b>… + Descriptive text of the create wallet progress window which indicates to the user which wallet is currently being created. Creazione del portafoglio<b>%1</b>… @@ -1490,6 +1468,7 @@ Opening Wallet <b>%1</b>… + Descriptive text of the open wallet progress window which indicates to the user which wallet is currently being opened. Apertura Portafoglio <b>%1</b>… @@ -2231,14 +2210,6 @@ 'dash://' is not a valid URI. Use 'dash:' instead. "dash: //" non è un URI valido. Utilizza "dash:". - - Cannot process payment request as BIP70 is no longer supported. - Impossibile elaborare la richiesta di pagamento in quanto BIP70 non è più supportato. - - - Due to discontinued support, you should request the merchant to provide you with a BIP21 compatible URI or use a wallet that does continue to support BIP70. - A causa dell'interruzione del supporto, dovresti richiedere al commerciante di fornirti un URI compatibile con BIP21 o utilizzare un portafoglio che continui a supportare BIP70. - URI cannot be parsed! This can be caused by an invalid Dash address or malformed URI parameters. Impossibile interpretare l'URI! La causa puó essere un indirizzo Dash non valido o parametri URI non corretti. @@ -2280,7 +2251,7 @@ Title of Peers Table column which states the network the peer connected through. Network - + Proposal @@ -2338,11 +2309,6 @@ Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting. Desideri ripristinare le impostazioni sui valori predefiniti o interrompere senza apportare modifiche? - - A fatal error occured. Check that settings file is writable, or try running with -nosettings. - Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file. - Si è verificato un errore irreversibile. Controlla che il file delle impostazioni sia scrivibile o prova a eseguirlo con -nosettings. - Choose data directory on startup (default: %u) Seleziona la directory dei dati all'avvio (default: %u) @@ -2511,10 +2477,6 @@ %1 B %1 B - - %1 KB - %1 KB - %1 MB %1 MB @@ -2571,7 +2533,7 @@ PNG Image - Expanded name of the PNG file format. See https://en.wikipedia.org/wiki/Portable_Network_Graphics + Expanded name of the PNG file format. See: https://en.wikipedia.org/wiki/Portable_Network_Graphics. Immagine PNG @@ -2869,10 +2831,6 @@ 1 &hour 1 &ora - - 1 &day - 1 &giorno - 1 &week 1 &settimana @@ -2885,26 +2843,6 @@ &Unban &Elimina Ban - - Welcome to the %1 RPC console. - Benvenuto nella console RPC di %1. - - - Use up and down arrows to navigate history, and %1 to clear screen. - Usa le frecce direzionali per navigare nella cronologia, e %1 per cancellarla. - - - Type %1 for an overview of available commands. - Digita %1 per una panoramica dei comandi disponibili. - - - For more information on using this console type %1. - Per ulteriori informazioni sull'utilizzo di questo tipo di console %1. - - - WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. - ATTENZIONE: truffatori sono stati attivi, chiedendo agli utenti di digitare comandi qui, rubando il contenuto del loro portafoglio. Non utilizzare questa console senza comprendere appieno la diramazione di un comando. - In: Entrata: @@ -3028,26 +2966,6 @@ Enter a message to attach to the payment request Inserisci un messaggio da allegare alla richiesta di pagamento - - Copy URI - Copia URI - - - Copy address - Copia Indirizzo - - - Copy label - Copia l'etichetta - - - Copy message - Copia messaggio - - - Copy amount - Copia l'importo - ReceiveRequestDialog @@ -3740,12 +3658,11 @@ Messaggio verificato. + + SplashScreen + TrafficGraphWidget - - KB/s - KB/s - Total Totale @@ -4158,57 +4075,13 @@ Min amount Importo minimo - - Abandon transaction - Abbandona transazione - - - Resend transaction - Invia nuovamente la transazione - - - Copy address - Copia l'indirizzo - - - Copy label - Copia l'etichetta - - - Copy amount - Copia l'importo - - - Copy transaction ID - Copia l'ID transazione - - - Copy raw transaction - Copia la transazione raw - - - Copy full transaction details - Copia i dettagli dell'intera transazione - - - Edit address label - Modifica etichetta indirizzo - - - Show transaction details - Mostra i dettagli della transazione - - - Show address QR code - Mostra indirizzo del codice QR - Export Transaction History Esporta lo storico delle transazioni Comma separated file - Expanded name of the CSV file format. See https://en.wikipedia.org/wiki/Comma-separated_values + Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values. File separato da virgole @@ -4312,7 +4185,7 @@ Vai su File > Apri Wallet per caricare un Wallet. Create a new wallet Crea un nuovo Wallet - + WalletModel @@ -4338,35 +4211,11 @@ Vai su File > Apri Wallet per caricare un Wallet. Selected amount: Importo selezionato: - - Unable to decode PSBT from clipboard (invalid base64) - Impossibile decodificare PSBT dagli appunti (base64 non valido) - - - Load Transaction Data - Carica i Dati della Transazione - - - Partially Signed Transaction (*.psbt) - Transazione parzialmente firmata (*.psbt) - - - Unable to decode PSBT - Impossibile decodificare PSBT - Wallet Data Name of the wallet data file format. Dati del wallet - - Error - Errore - - - PSBT file must be smaller than 100 MiB - Il file PSBT deve essere inferiore a 100 MiB - Backup Wallet Backup Portafoglio @@ -4674,10 +4523,6 @@ Vai su File > Apri Wallet per caricare un Wallet. Wallet is locked, can't replenish keypool! Automatic backups and mixing are disabled, please unlock your wallet to replenish keypool. Il Portafoglio è bloccato, non può ricostituire il keypool! I backup e il mixaggio automatici sono disabilitati, sblocca il tuo portafoglio per ricostituire il keypool. - - You need to rebuild the database using -reindex to change -timestampindex - È necessario ricostruire il database usando -reindex per cambiare -timestampindex - You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain Per ritornare alla modalità unpruned sarà necessario ricostruire il database utilizzando l'opzione -reindex. L'intera blockchain sarà riscaricata. @@ -4942,14 +4787,6 @@ Vai su File > Apri Wallet per caricare un Wallet. You can not start a masternode with wallet enabled. Non è possibile avviare un nodo principale con il wallet abilitato. - - You need to rebuild the database using -reindex to change -addressindex - È necessario ricostruire il database usando -reindex per cambiare -addressindex - - - You need to rebuild the database using -reindex to change -spentindex - È necessario ricostruire il database usando -reindex per cambiare -spentindex - no mixing available. nessun mixing disponibile. @@ -5170,10 +5007,6 @@ Vai su File > Apri Wallet per caricare un Wallet. Invalid spork address specified with -sporkaddr Indirizzo di spork non valido specificato con -sporkaddr - - Prune mode is incompatible with -coinstatsindex. - La modalità Prune è incompatibile con -coinstatsindex. - Reducing -maxconnections from %d to %d, because of system limitations. Riduzione -maxconnections da %d a %d a causa di limitazioni di sistema. @@ -5270,10 +5103,6 @@ Vai su File > Apri Wallet per caricare un Wallet. Unsupported logging category %s=%s. Categoria di registrazione non supportata %s=%s. - - Upgrading txindex database - Aggiornamento del database txindex - Very low number of keys left: %d Il numero di chiavi rimaste è molto basso: %d @@ -5306,5 +5135,5 @@ Vai su File > Apri Wallet per caricare un Wallet. Your entries added successfully. Le tue voci sono state aggiunte con successo. - + \ No newline at end of file diff --git a/src/qt/locale/dash_pl.ts b/src/qt/locale/dash_pl.ts index b62abdcbf52c0..86c272e3fa035 100644 --- a/src/qt/locale/dash_pl.ts +++ b/src/qt/locale/dash_pl.ts @@ -93,10 +93,6 @@ &Edit &Edytuj - - &Show address QR code - &Pokaż adres kodu QR - QR code Kod QR @@ -618,6 +614,7 @@ %n active connection(s) to Dash network + A substring of the tooltip. %n aktywne połączenie z siecią Dash%n aktywne połączenia z siecią Dash%n aktywnych połączeń z siecią Dash%n aktywne połączenia z siecią Dash @@ -873,30 +870,10 @@ Confirmed Potwierdzony - - Copy address - Kopiuj adres - - - Copy label - Kopiuj etykietę - Copy amount Kopiuj kwotę - - Copy transaction ID - Skopiuj ID transakcji - - - Lock unspent - Zablokuj - - - Unlock unspent - Odblokuj - Copy quantity Skopiuj ilość @@ -986,6 +963,7 @@ CreateWalletActivity Creating Wallet <b>%1</b>… + Descriptive text of the create wallet progress window which indicates to the user which wallet is currently being created. Tworzenie Portfela <b>%1</b>… @@ -1424,6 +1402,7 @@ Opening Wallet <b>%1</b>… + Descriptive text of the open wallet progress window which indicates to the user which wallet is currently being opened. Otwieranie Portfela <b>%1</b>… @@ -1990,14 +1969,6 @@ 'dash://' is not a valid URI. Use 'dash:' instead. 'Dash: //' nie jest prawidłowym identyfikatorem URI. Zamiast tego użyj 'Dash:'. - - Cannot process payment request as BIP70 is no longer supported. - Nie można przetworzyć żądania płatności, ponieważ BIP70 nie jest już obsługiwany. - - - Due to discontinued support, you should request the merchant to provide you with a BIP21 compatible URI or use a wallet that does continue to support BIP70. - Ze względu na wycofanie wsparcia należy poprosić sprzedawcę o dostarczenie identyfikatora URI zgodnego z BIP21 lub skorzystać z portfela, który nadal obsługuje BIP70. - URI cannot be parsed! This can be caused by an invalid Dash address or malformed URI parameters. URI nie może zostać przeanalizowany! Mogło to być spowodowane przez niewłaściwy adres Dash lub niewłaściwe parametry URI @@ -2242,10 +2213,6 @@ %1 B %1 B - - %1 KB - %1 KB - %1 MB %1 MB @@ -2571,10 +2538,6 @@ 1 &hour 1 &godzinę - - 1 &day - 1 &dzień - 1 &week 1 &tydzień @@ -2587,26 +2550,6 @@ &Unban &Miejski - - Welcome to the %1 RPC console. - Witaj w konsoli %1 RPC. - - - Use up and down arrows to navigate history, and %1 to clear screen. - Użyj strzałek do przewijania historii i %1 aby wyczyścić ekran - - - Type %1 for an overview of available commands. - Wpisz %1 aby uzyskać listę dostępnych komend. - - - For more information on using this console type %1. - Aby uzyskać więcej informacji jak używać tę konsolę wpisz %1. - - - WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. - UWAGA: Oszuści często mówią użytkownikom aby wpisywali tutaj komendy, co umożliwia kradzież monet. Nie używaj tej konsoli, jeśli nie rozumiesz funkcji używanych komend. - In: Wejście: @@ -2730,26 +2673,6 @@ Enter a message to attach to the payment request Wprowadź wiadomość, którą chcesz dołączyć do żądania zapłaty - - Copy URI - Kopiuj URI - - - Copy address - Kopiuj adres - - - Copy label - Kopiuj etykietę - - - Copy message - Kopiuj wiadomość - - - Copy amount - Kopiuj kwotę - ReceiveRequestDialog @@ -3389,12 +3312,11 @@ Wiadomość zweryfikowana. + + SplashScreen + TrafficGraphWidget - - KB/s - KB/s - Total Całkowity @@ -3807,50 +3729,6 @@ Min amount Min suma - - Abandon transaction - Porzuć transakcję - - - Resend transaction - Wyślij ponownie transakcje - - - Copy address - Kopiuj adres - - - Copy label - Kopiuj etykietę - - - Copy amount - Kopiuj kwotę - - - Copy transaction ID - Skopiuj ID transakcji - - - Copy raw transaction - Kopiuj surowa transakcje - - - Copy full transaction details - Skopiuj wszystkie szczegóły transakcji. - - - Edit address label - Zmień nazwę adresu - - - Show transaction details - Pokaż szczegóły transakcji - - - Show address QR code - Pokaż adres kodu QR - Export Transaction History Eksport historii transakcji @@ -3948,7 +3826,7 @@ Przejdź do Plik > Otwórz portfel, aby załadować portfel. Create a new wallet Stwórz nowy portfel - + WalletModel @@ -4273,10 +4151,6 @@ Przejdź do Plik > Otwórz portfel, aby załadować portfel. Wallet is locked, can't replenish keypool! Automatic backups and mixing are disabled, please unlock your wallet to replenish keypool. Portfel jest zamknięty , nie można uzupełnić pul* kluczy! Automatyczne tworzenie kopi zapasowych oraz miksowanie są wyłączone. Otwórz porfel aby uzupełnić pul* kluczy. - - You need to rebuild the database using -reindex to change -timestampindex - Musisz odnowić bazę danych używając -reindex aby zmienić -timestampindex - You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain Aby wrócić do trybu bez bez obcinki, musisz odtworzyć bazę danych za pomocą komendy -reindex. Cały blockchain zostanie ponownie ściągnięty. @@ -4521,14 +4395,6 @@ Przejdź do Plik > Otwórz portfel, aby załadować portfel. You can not start a masternode with wallet enabled. Nie możesz uruchomić masternode z włączonym portfelem. - - You need to rebuild the database using -reindex to change -addressindex - Musisz odnowić bazę danych używając -reindex aby zmienić -addressindex - - - You need to rebuild the database using -reindex to change -spentindex - Musisz odnowić bazę danych używając -reindex aby zmienić -spentindex - no mixing available. Mieszanie niedostępne. @@ -4833,10 +4699,6 @@ Przejdź do Plik > Otwórz portfel, aby załadować portfel. Unsupported logging category %s=%s. Nieobsługiwana kategoria rejestrowania %s=%s. - - Upgrading txindex database - Aktualizowanie bazy danych txindex - Very low number of keys left: %d Pozostało bardzo mało kluczy: %d @@ -4869,5 +4731,5 @@ Przejdź do Plik > Otwórz portfel, aby załadować portfel. Your entries added successfully. Twoje wejścia zostały dodane z powodzeniem. - + \ No newline at end of file diff --git a/src/qt/locale/dash_ru.ts b/src/qt/locale/dash_ru.ts index 1ad64f4281261..8aa611db50fd6 100644 --- a/src/qt/locale/dash_ru.ts +++ b/src/qt/locale/dash_ru.ts @@ -94,8 +94,8 @@ &Правка - &Show address QR code - &Показать QR-код адреса + Show address &QR code + Показать QR-&код адреса QR code @@ -107,7 +107,7 @@ Comma separated file - Expanded name of the CSV file format. See https://en.wikipedia.org/wiki/Comma-separated_values + Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values. Текст, разделённый запятыми @@ -313,6 +313,10 @@ BitcoinApplication + + Runaway exception + Неконтролируемое исключение + A fatal error occurred. %1 can no longer continue safely and will quit. Произошла критическая ошибка. Дальнейшая безопасная работа %1 невозможна, программа будет закрыта. @@ -321,7 +325,11 @@ Internal error Внутренняя ошибка - + + An internal error occurred. %1 will attempt to continue safely. This is an unexpected bug which can be reported as described below. + Произошла внутренняя ошибка. %1 попытается продолжить работу в безопасном режиме. Это неожиданная ошибка, о которой можно сообщить, как описано ниже. + + BitcoinGUI @@ -348,6 +356,10 @@ Request payments (generates QR codes and dash: URIs) Запросить платежи (создать QR-коды и dash: URI) + + Ctrl+Q + Ctrl+Q + &Options… &Параметры… @@ -664,6 +676,7 @@ %n active connection(s) to Dash network + A substring of the tooltip. %n активное соединение с сетью Dash%n активных соединения с сетью Dash%n активных соединений с сетью Dash%n активных соединений с сетью Dash @@ -690,6 +703,34 @@ Close All Wallets… Закрыть все кошельки… + + Ctrl+Shift+D + Ctrl+Shift+D + + + Ctrl+M + Ctrl+M + + + Click for more actions. + A substring of the tooltip. "More actions" are available via the context menu. + Нажмите, для других действий + + + Show Peers tab + A context menu item. The "Peers tab" is an element of the "Node window". + Показать вкладку с пирами + + + Disable network activity + A context menu item. + Отключить сеть + + + Enable network activity + A context menu item. The network activity was disabled previously. + Включить сеть + Syncing Headers (%1%)… Синхронизация заголовков (%1%)… @@ -924,28 +965,32 @@ Подтверждено - Copy address - Копировать адрес + Copy amount + Скопировать сумму - Copy label - Копировать метку + &Copy address + &Копировать адрес - Copy amount - Скопировать сумму + Copy &label + Копировать &метку + + + Copy &amount + Скопировать &сумму - Copy transaction ID - Скопировать ID транзакции + Copy transaction &ID and output index + Скопировать ID &транзакции - Lock unspent - Заблокировать непотраченное + L&ock unspent + &Заблокировать непотраченное - Unlock unspent - Разблокировать непотраченное + &Unlock unspent + &Разблокировать непотраченное Copy quantity @@ -1034,8 +1079,14 @@ CreateWalletActivity + + Create Wallet + Title of window indicating the progress of creation of a new wallet. + Создать кошелёк + Creating Wallet <b>%1</b>… + Descriptive text of the create wallet progress window which indicates to the user which wallet is currently being created. Создается кошелёк<b>%1</b>… @@ -1089,11 +1140,23 @@ Make Blank Wallet Создать пустой кошелёк + + Use descriptors for scriptPubKey management. This feature is well-tested but still considered experimental and not recommended for use yet. + Используйте дескрипторы для управления scriptPubKey. Эта функция хорошо протестирована, но все еще считается экспериментальной и пока не рекомендуется к использованию. + + + Descriptor Wallet (EXPERIMENTAL) + Descriptor Wallet (ЭКСПЕРИМЕНТАЛЬНО) + Create Создать - + + Compiled without sqlite support (required for descriptor wallets) + Скомпилировано без поддержки sqlite (требуется для дескрипторных кошельков). + + EditAddressDialog @@ -1517,8 +1580,14 @@ default wallet кошелек по умолчанию + + Open Wallet + Title of window indicating the progress of opening of a wallet. + Открыть кошелёк + Opening Wallet <b>%1</b>… + Descriptive text of the open wallet progress window which indicates to the user which wallet is currently being opened. Открывается кошелёк<b>%1</b>… @@ -1586,6 +1655,26 @@ Tooltip text for Options window setting that sets the number of script verification threads. Explains that negative values mean to leave these many cores free to the system. Установить количество потоков проверки скриптов. Отрицательные значения соответствуют количеству ядер, которые останутся доступными для системы. + + This allows you or a third party tool to communicate with the node through command-line and JSON-RPC commands. + Tooltip text for Options window setting that enables the RPC server. + Это позволит вам или стороннему инструменту взаимодействовать с нодой через команды командной строки и JSON-RPC. + + + Enable R&PC server + An Options window setting to enable the RPC server. + Включить сервер R&PC + + + Whether to set subtract fee from amount as default or not. + Tooltip text for Options window setting that sets subtracting the fee from a sending amount as default. + Вычитать комиссию из суммы по умолчанию или нет + + + Subtract &fee from amount by default + An Options window setting to set subtracting the fee from a sending amount as default. + Вычесть &комиссию из суммы по умолчанию + Whether to keep the specified custom change address or not. Сохранять указанный свой адрес для сдачи или нет. @@ -2211,6 +2300,10 @@ https://explore.transifex.com/dash/dash/ * Sends %1 to %2 * отправляет %1 на %2 + + own address + свой адрес + Unable to calculate transaction fee or total transaction amount. Невозможно вычислить комиссию или полную сумму транзакции. @@ -2239,6 +2332,10 @@ https://explore.transifex.com/dash/dash/ Transaction still needs signature(s). Транзакции все еще нужны подписи. + + (But no wallet is loaded.) + (Нету загруженных кошельков) + (But this wallet cannot sign transactions.) (Но этот кошелёк не может подписывать транзакции.) @@ -2275,12 +2372,10 @@ https://explore.transifex.com/dash/dash/ 'dash://' не является валидным URI. Используйте 'dash:'. - Cannot process payment request as BIP70 is no longer supported. - Невозможно обработать запрос платежа так как BIP70 больше не поддерживается. - - - Due to discontinued support, you should request the merchant to provide you with a BIP21 compatible URI or use a wallet that does continue to support BIP70. - В связи с прекращением поддержки следует запросить у мерчанта URI, совместимый с BIP21, или использовать кошелек, который продолжает поддерживать BIP70. + Cannot process payment request as BIP70 is no longer supported. +Due to discontinued support, you should request the merchant to provide you with a BIP21 compatible URI or use a wallet that does continue to support BIP70. + Невозможно обработать запрос так как BIP70 больше не поддерживается. +В связи с прекращением поддержки следует запросить у мерчанта URI, совместимый с BIP21, или использовать кошелек, который продолжает поддерживать BIP70. URI cannot be parsed! This can be caused by an invalid Dash address or malformed URI parameters. @@ -2308,6 +2403,16 @@ https://explore.transifex.com/dash/dash/ Title of Peers Table column which contains a unique number used to identify a connection. Пир + + Age + Title of Peers Table column which indicates the duration (length of time) since the peer connection started. + Возраст + + + Direction + Title of Peers Table column which indicates the direction the peer connection was initiated from. + Направление + Type Title of Peers Table column which describes the type of peer connection. The "type" describes why the connection exists. @@ -2333,6 +2438,16 @@ https://explore.transifex.com/dash/dash/ Title of Peers Table column which states the network the peer connected through. Сеть + + Inbound + An Inbound Connection from a Peer. + Входящее + + + Outbound + An Outbound Connection to a Peer. + Исходящее + Proposal @@ -2392,7 +2507,7 @@ https://explore.transifex.com/dash/dash/ Вы хотите сбросить настройки в значения по умолчанию или прервать без внесения изменений? - A fatal error occured. Check that settings file is writable, or try running with -nosettings. + A fatal error occurred. Check that settings file is writable, or try running with -nosettings. Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file. Произошла критическая ошибка. Убедитесь, что файл настроек доступен для записи или попробуйте запустить с флагом -nosettings. @@ -2496,6 +2611,10 @@ https://explore.transifex.com/dash/dash/ This can also be adjusted later in the "Appearance" tab of the preferences. Вы также можете поменять их позже на закладке "Внешний вид" в настройках. + + Ctrl+W + Ctrl+W + Unroutable Немаршрутизируемый @@ -2514,6 +2633,31 @@ https://explore.transifex.com/dash/dash/ An outbound connection to a peer. An outbound connection is a connection initiated by us. Исходящее + + Full Relay + Peer connection type that relays all network information. + Полная трансляция + + + Block Relay + Peer connection type that relays network information about blocks and not transactions or addresses. + Трансляция блоков + + + Manual + Peer connection type established manually through one of several methods. + Ручное + + + Feeler + Short-lived peer connection type that tests the aliveness of known addresses. + Пробное + + + Address Fetch + Short-lived peer connection type that solicits known addresses from a peer. + Запрос адресов + %1 d %1 д @@ -2575,8 +2719,8 @@ https://explore.transifex.com/dash/dash/ %1 Б - %1 KB - %1 КБ + %1 kB + %1 кБ %1 MB @@ -2634,7 +2778,7 @@ https://explore.transifex.com/dash/dash/ PNG Image - Expanded name of the PNG file format. See https://en.wikipedia.org/wiki/Portable_Network_Graphics + Expanded name of the PNG file format. See: https://en.wikipedia.org/wiki/Portable_Network_Graphics. PNG изображение @@ -2744,6 +2888,22 @@ https://explore.transifex.com/dash/dash/ Version Версия + + Whether the peer requested us to relay transactions. + Запрашивал ли пир ретрансляцию транзакций. + + + Wants Tx Relay + Хочет ретрансляцию Tx + + + High bandwidth BIP152 compact block relay: %1 + Компактное блочное реле BIP152 с высокой пропускной способностью: %1 + + + High Bandwidth + Высокая пропускная способность + Starting Block Начальный блок @@ -2756,10 +2916,19 @@ https://explore.transifex.com/dash/dash/ Synced Blocks Синхронизированные блоки + + Elapsed time since a novel block passing initial validity checks was received from this peer. + Прошло время с тех пор, как от этого однорангового узла был получен новый блок, прошедший первоначальную проверку на достоверность. + Last Block Последний блок + + Elapsed time since a novel transaction accepted into our mempool was received from this peer. + Tooltip text for the Last Transaction field in the peer details area. + Прошло время с тех пор, как от этого однорангового узла была получена новая транзакция, принятая в наш mempool. + Last Transaction Последняя транзакция @@ -2772,6 +2941,26 @@ https://explore.transifex.com/dash/dash/ Mapped AS Сопоставление AS + + Whether we relay addresses to this peer. + Tooltip text for the Address Relay field in the peer details area, which displays whether we relay addresses to this peer (Yes/No). + Будем ли мы передавать адреса этому пиру. + + + Address Relay + Text title for the Address Relay field in the peer details area, which displays whether we relay addresses to this peer (Yes/No). + Трансляция адресов + + + Addresses Processed + Text title for the Addresses Processed field in the peer details area, which displays the total number of addresses received from this peer that were processed (excludes addresses that were dropped due to rate-limiting). + Обработано адресов + + + Addresses Rate-Limited + Text title for the Addresses Rate-Limited field in the peer details area, which displays the total number of addresses received from this peer that were dropped (not processed) due to rate-limiting. + Отброшено адресов + Rescan blockchain files 1 Пересканировать цепочку блоков 1 @@ -2868,6 +3057,22 @@ https://explore.transifex.com/dash/dash/ PoSe Score PoSe штраф + + The transport layer version: %1 + Версия транспортного уровня: %1 + + + Transport + Транспорт + + + The BIP324 session ID string in hex. + Строка идентификатора сеанса BIP324 в HEX формате. + + + Session ID + ID сессии + The network protocol this peer is connected through: IPv4, IPv6, Onion, I2P, or CJDNS. Сетевой протокол, через который подсоединён этот пир: IPv4, IPv6, Onion, I2P или CJDNS. @@ -2876,6 +3081,10 @@ https://explore.transifex.com/dash/dash/ Permissions Разрешения + + The direction and type of peer connection: %1 + Направление и тип одноранговой связи: %1 + Direction/Type Направление/тип @@ -2920,6 +3129,16 @@ https://explore.transifex.com/dash/dash/ &Wallet Repair Ремонт &кошелька + + The total number of addresses received from this peer that were processed (excludes addresses that were dropped due to rate-limiting). + Tooltip text for the Addresses Processed field in the peer details area, which displays the total number of addresses received from this peer that were processed (excludes addresses that were dropped due to rate-limiting). + Общее количество адресов, полученных от этого узла и обработанных (не включая адреса, отброшенные из-за ограничения скорости). + + + The total number of addresses received from this peer that were dropped (not processed) due to rate-limiting. + Tooltip text for the Addresses Rate-Limited field in the peer details area, which displays the total number of addresses received from this peer that were dropped (not processed) due to rate-limiting. + Общее количество адресов, полученных от этого пира и отброшенных (не обработанных) из-за ограничения скорости. + Wallet repair options. Варианты ремонта кошелька. @@ -2932,14 +3151,60 @@ https://explore.transifex.com/dash/dash/ -reindex: Rebuild block chain index from current blk000??.dat files. -reindex: Перестроить индекс цепочки блоков из текущих файлов blk000??.dat. + + Inbound: initiated by peer + Explanatory text for an inbound peer connection. + Входящее: инициируются одноранговым узлом + + + Outbound Full Relay: default + Explanatory text for an outbound peer connection that relays all network information. This is the default behavior for outbound connections. + Исходящее полное соединение: по умолчанию + + + Outbound Block Relay: does not relay transactions or addresses + Explanatory text for an outbound peer connection that relays network information about blocks and not transactions or addresses. + Исходящее соединение для передачи блоков: не передает транзакции или адреса + + + Outbound Manual: added using RPC %1 or %2/%3 configuration options + Explanatory text for an outbound peer connection that was established manually through one of several methods. The numbered arguments are stand-ins for the methods available to establish manual connections. + Исходящее соединение вручную: добавлено с использованием RPC %1 или параметров конфигурации %2/%3 + + + Outbound Feeler: short-lived, for testing addresses + Explanatory text for a short-lived outbound peer connection that is used to test the aliveness of known addresses. + Исходящее тестовое соединение: кратковременное, для проверки активности адресов + + + Outbound Address Fetch: short-lived, for soliciting addresses + Explanatory text for a short-lived outbound peer connection that is used to request addresses from a peer. + Исходящее соединение для получения адресов: кратковременное, используется для запроса адресов у узла." + + + To + Для + + + we selected the peer for high bandwidth relay + Мы выбрали этот узел для высокоскоростной передачи данных + From От + + the peer selected us for high bandwidth relay + Этот узел выбрал нас для высокоскоростной передачи данных. + No Нет + + no high bandwidth relay selected + Высокоскоростная передача данных не выбрана. + &Disconnect &Отключить @@ -2952,10 +3217,6 @@ https://explore.transifex.com/dash/dash/ 1 &hour 1 &час - - 1 &day - 1 &день - 1 &week 1 &неделя @@ -2968,26 +3229,6 @@ https://explore.transifex.com/dash/dash/ &Unban &Разблокировать - - Welcome to the %1 RPC console. - Добро пожаловать в RPC-консоль %1. - - - Use up and down arrows to navigate history, and %1 to clear screen. - Используйте стрелки вверх и вниз для просмотра истории и %1 для очистки экрана. - - - Type %1 for an overview of available commands. - Введите %1 для просмотра доступных команд. - - - For more information on using this console type %1. - Для получения дополнительной информации по использованию этой консоли введите %1. - - - WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. - ВНИМАНИЕ: Мошенники могут попросить Вас ввести сюда команды и таким образом украсть Ваши средства. Не используйте эту консоль, если Вы не до конца понимаете последствия вводимых команд. - In: Вход: @@ -3008,10 +3249,101 @@ https://explore.transifex.com/dash/dash/ Executing command without any wallet Выполнение команд без какого либо кошелька + + Ctrl++ + Main shortcut to increase the RPC console font size. + Ctrl++ + + + Ctrl+= + Secondary shortcut to increase the RPC console font size. + Ctrl+= + + + Ctrl+- + Main shortcut to decrease the RPC console font size. + Ctrl+- + + + Ctrl+_ + Secondary shortcut to decrease the RPC console font size. + Ctrl+_ + + + Ctrl+Shift+I + Ctrl+Shift+I + + + Ctrl+Shift+C + Ctrl+Shift+C + + + Ctrl+Shift+G + Ctrl+Shift+G + + + Ctrl+Shift+P + Ctrl+Shift+P + + + Ctrl+Shift+R + Ctrl+Shift+R + Executing command using "%1" wallet Выполнение команд, используя "%1" кошелек + + detecting: peer could be v1 or v2 + Explanatory text for "detecting" transport type. + Обнаружение: узел может использовать версию протокола v1 или v2. + + + v1: unencrypted, plaintext transport protocol + Explanatory text for v1 transport type. + v1: нешифрованный протокол передачи данных в открытом виде. + + + v2: BIP324 encrypted transport protocol + Explanatory text for v2 transport type. + v2: зашифрованный протокол передачи данных BIP324. + + + &Copy address + Context menu action to copy the address of a peer + &Копировать адрес + + + 1 d&ay + 1 &день + + + &Copy IP/Netmask + Context menu action to copy the IP/Netmask of a banned peer. IP/Netmask is the combination of a peer's IP address and its Netmask. For IP address see: https://en.wikipedia.org/wiki/IP_address + &Копировать IP/Маску сети + + + Welcome to the %1 RPC console. +Use up and down arrows to navigate history, and %2 to clear screen. +Use %3 and %4 to increase or decrease the font size. +Type %5 for an overview of available commands. +For more information on using this console, type %6. + +%7WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command.%8 + RPC console welcome message. Placeholders %7 and %8 are style tags for the warning content, and they are not space separated from the rest of the text intentionally. + Добро пожаловать в RPC-консоль %1. +Используйте стрелки вверх и вниз для навигации по истории, и %2 для очистки экрана. +Используйте %3 и %4 для увеличения или уменьшения размера шрифта. +Введите %5 для просмотра списка доступных команд. +Для получения дополнительной информации о работе с этой консолью введите %6. + +%7ВНИМАНИЕ: Мошенники активно используют команды, вводимые в этой консоли, чтобы похищать содержимое кошельков. Не используйте эту консоль без полного понимания последствий выполнения команд.%8 + + + Executing… + A console message indicating an entered command is currently being executed. + Выполняется… + (peer: %1) (id пира: %1) @@ -3032,6 +3364,10 @@ https://explore.transifex.com/dash/dash/ Verified Masternode Проверенная мастернода + + Yes + Да + Unknown Неизвестно @@ -3120,30 +3456,34 @@ https://explore.transifex.com/dash/dash/ Введите сообщение для прикрепления к запросу платежа - Copy URI - Копировать URI + Copy &URI + Копировать &URI - Copy address - Копировать адрес + &Copy address + &Копировать адрес - Copy label - Копировать метку + Copy &label + Копировать &метку - Copy message - Копировать сообщение + Copy &message + Копировать &сообщение - Copy amount - Скопировать сумму + Copy &amount + Скопировать &сумму Could not unlock wallet. Не удается разблокировать кошелёк. - + + Could not generate new address + Не удалось сгенерировать новый адрес + + ReceiveRequestDialog @@ -3835,11 +4175,22 @@ https://explore.transifex.com/dash/dash/ Сообщение проверено. + + SplashScreen + + (press q to shutdown and continue later) + (нажмите q для завершения и продолжите позже) + + + press q to shutdown + нажмите q для завершения + + TrafficGraphWidget - KB/s - КБ/сек + kB/s + кБ/с Total @@ -3916,6 +4267,10 @@ https://explore.transifex.com/dash/dash/ Generated Сгенерированно + + Platform Transfer + Перевод платформы + From От @@ -4114,6 +4469,10 @@ https://explore.transifex.com/dash/dash/ Mined Добыто + + Platform Transfer + Перевод платформы + %1 Mixing %1 Перемешивание @@ -4241,6 +4600,10 @@ https://explore.transifex.com/dash/dash/ Mined Добытые + + Platform Transfer + Перевод платформы + Other Другое @@ -4254,48 +4617,48 @@ https://explore.transifex.com/dash/dash/ Мин. сумма - Abandon transaction - Сбросить транзакцию + &Copy address + Копировать &адрес - Resend transaction - Отправить транзакцию еще раз + Copy &label + Копировать &метку - Copy address - Копировать адрес + Copy &amount + Скопировать &сумму - Copy label - Копировать метку + Copy transaction &ID + Скопировать ID &транзакции - Copy amount - Скопировать сумму + Copy &raw transaction + Скопировать код тран&закции - Copy transaction ID - Скопировать ID транзакции + Copy full transaction &details + Скопировать все &детали транзакции - Copy raw transaction - Скопировать код транзакции + &Show transaction details + &Показать подробности транзакции - Copy full transaction details - Скопировать все детали транзакции + A&bandon transaction + С&бросить транзакцию - Edit address label - Изменить метку адреса + Rese&nd transaction + &Отправить транзакцию еще раз - Show transaction details - Показать подробности транзакции + &Edit address label + &Изменить метку адреса - Show address QR code - Показать QR-код адреса + Show address &QR code + Показать QR-&код адреса Export Transaction History @@ -4303,7 +4666,7 @@ https://explore.transifex.com/dash/dash/ Comma separated file - Expanded name of the CSV file format. See https://en.wikipedia.org/wiki/Comma-separated_values + Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values. Текст, разделённый запятыми @@ -4407,6 +4770,30 @@ Go to File > Open Wallet to load a wallet. Create a new wallet Создать новый кошелёк + + Error + Ошибка + + + Unable to decode PSBT from clipboard (invalid base64) + Невозможно декодировать PSBT из буфера обмена (некорректный base64) + + + Load Transaction Data + Загрузить данные транзакции + + + Partially Signed Transaction (*.psbt) + Частично подписанная транзакция (*.psbt) + + + PSBT file must be smaller than 100 MiB + Файл PSBT должен быть меньше 100 МиБ + + + Unable to decode PSBT + Невозможно декодировать PSBT + WalletModel @@ -4433,35 +4820,11 @@ Go to File > Open Wallet to load a wallet. Selected amount: Сумма выбранных: - - Unable to decode PSBT from clipboard (invalid base64) - Невозможно декодировать PSBT из буфера обмена (некорректный base64) - - - Load Transaction Data - Загрузить данные транзакции - - - Partially Signed Transaction (*.psbt) - Частично подписанная транзакция (*.psbt) - - - Unable to decode PSBT - Невозможно декодировать PSBT - Wallet Data Name of the wallet data file format. Данные кошелька - - Error - Ошибка - - - PSBT file must be smaller than 100 MiB - Файл PSBT должен быть меньше 100 МиБ - Backup Wallet Сделать резервную копию кошелька @@ -4553,6 +4916,18 @@ Go to File > Open Wallet to load a wallet. Error reading from database, shutting down. Ошибка чтения базы данных, завершение работы. + + Error: Missing checksum + Ошибка: Отсутствует контрольная сумма + + + Error: Unable to parse version %u as a uint32_t + Ошибка: Не удалось проанализировать версию %u как uint32_t + + + Error: Unable to write record to new wallet + Ошибка: не удалось импортировать данные в новый wallet. + Failed to listen on any port. Use -listen=0 if you want this. Не удалось начать прослушивание на порту. Используйте -listen=0, если вас это устраивает. @@ -4769,10 +5144,6 @@ Go to File > Open Wallet to load a wallet. Wallet is locked, can't replenish keypool! Automatic backups and mixing are disabled, please unlock your wallet to replenish keypool. Кошелек заблокирован, невозможно пополнить пул ключей! Автоматические резервные копии и перемешивание отключены. Пожалуйста, разблокируйте кошелек для пополнения пула ключей. - - You need to rebuild the database using -reindex to change -timestampindex - Вам необходимо пересобрать базы данных с помощью -reindex, чтобы изменить -timestampindex - You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain Вам необходимо пересоздать базы данных, запустив клиент с ключом -reindex, чтобы вернуться в полный режим. Это приведет к повторному скачиванию всей цепи блоков. @@ -4817,14 +5188,34 @@ Go to File > Open Wallet to load a wallet. Error upgrading evo database Ошибка обновления базы данных evo + + Error: Couldn't create cursor into database + Ошибка: Не удалось создать cursor в базе данных + Error: Disk space is low for %s Ошибка: мало места на диске для %s + + Error: Dumpfile checksum does not match. Computed %s, expected %s + Ошибка: Контрольная сумма файла дампа не совпадает. Вычисленный %s, ожидаемый %s + + + Error: Got key that was not hex: %s + Ошибка: Получен ключ, который не был HEX: %s + + + Error: Got value that was not hex: %s + Ошибка: Получено значение, которое не было HEX: %s + Error: Keypool ran out, please call keypoolrefill first Ошибка: Не осталось ключей, пожалуйста, выполните команду keypoolrefill + + Error: No addresses available. + Ошибка: Нет доступных адресов. + Exceeded max tries. Превышено максимальное количество попыток. @@ -4853,6 +5244,10 @@ Go to File > Open Wallet to load a wallet. Failed to verify database Ошибка проверки базы данных + + Fee rate (%s) is lower than the minimum fee rate setting (%s) + Указанная комиссия (%s) ниже минимальной установленной комиссии (%s) + Found enough users, signing… Найдено достаточное количество участников, подписываем… @@ -4861,6 +5256,10 @@ Go to File > Open Wallet to load a wallet. Ignoring duplicate -wallet %s. Игнорирование дублирования -wallet %s. + + Input not found or already spent + Вход не найден или уже израсходован + Invalid P2P permission: '%s' Некорректные разрешения P2P : '%s' @@ -4889,6 +5288,10 @@ Go to File > Open Wallet to load a wallet. Mixing in progress… Выполняется перемешивание… + + No addresses available + Нету доступных адресов + No errors detected. Ошибок не обнаружено. @@ -5001,6 +5404,14 @@ Go to File > Open Wallet to load a wallet. Unable to generate initial keys Не удалось сгенерировать начальные ключи + + Unable to open %s for writing + Невозможно открыть %s для записи + + + Unable to parse -maxuploadtarget: '%s' (possible integer overflow?) + Невозможно пропарсить -maxuploadtarget: '%s' (возможно integer overflow?) + Unknown -blockfilterindex value %s. Неизвестное значение -blockfilterindex %s. @@ -5037,14 +5448,6 @@ Go to File > Open Wallet to load a wallet. You can not start a masternode with wallet enabled. Вы не можете запустить мастерноду с включенным кошельком. - - You need to rebuild the database using -reindex to change -addressindex - Вам необходимо пересобрать базы данных с помощью -reindex, чтобы изменить -addressindex - - - You need to rebuild the database using -reindex to change -spentindex - Вам необходимо пересобрать базы данных с помощью -reindex, чтобы изменить -spentindex - no mixing available. перемешивание недоступно. @@ -5061,10 +5464,30 @@ Go to File > Open Wallet to load a wallet. %s uses exact denominated amounts to send funds, you might simply need to mix some more coins. %s использует только номиналы, возможно, Вам просто нужно перемешать немного больше монет. + + -reindex-chainstate option is not compatible with -blockfilterindex. Please temporarily disable blockfilterindex while using -reindex-chainstate, or replace -reindex-chainstate with -reindex to fully rebuild all indexes. + опция -reindex-chainstate несовместима с -blockfilterindex. Пожалуйста, временно отключите blockfilterindex при использовании -reindex-chainstate или замените -reindex-chainstate на -reindex для полного восстановления всех индексов. + + + -reindex-chainstate option is not compatible with -coinstatsindex. Please temporarily disable coinstatsindex while using -reindex-chainstate, or replace -reindex-chainstate with -reindex to fully rebuild all indexes. + Опция -reindex-chainstate несовместима с -coinstatsindex. Пожалуйста, временно отключите coinstatsindex при использовании -reindex-chainstate или замените -reindex-chainstate на -reindex для полного восстановления всех индексов. + + + -reindex-chainstate option is not compatible with -txindex. Please temporarily disable txindex while using -reindex-chainstate, or replace -reindex-chainstate with -reindex to fully rebuild all indexes. + Опция -reindex-chainstate несовместима с -txindex. Пожалуйста, временно отключите txindex при использовании -reindex-chainstate или замените -reindex-chainstate на -reindex для полного восстановления всех индексов. + + + Cannot downgrade wallet from version %i to version %i. Wallet version unchanged. + Невозможно понизить версию кошелька с %i до %i. Версия кошелька не изменена. + Cannot obtain a lock on data directory %s. %s is probably already running. Не удалось установить блокировку на каталог данных %s. Возможно, %s уже запущен. + + Cannot upgrade a non HD wallet from version %i to version %i which is non-HD wallet. Use upgradetohd RPC + Невозможно обновить не-HD кошелек с версии %i до версии %i, которая также является не-HD кошельком. Используйте команду upgradetohd RPC. + Distributed under the MIT software license, see the accompanying file %s or %s Распространяется под лицензией на программное обеспечение MIT, смотрите прилагаемый файл %s или %s. @@ -5073,14 +5496,66 @@ Go to File > Open Wallet to load a wallet. Error loading %s: You can't enable HD on an already existing non-HD wallet Ошибка загрузки %s: Вы не можете включить HD режим для существующего не-HD кошелька + + Error loading wallet. Wallet requires blocks to be downloaded, and software does not currently support loading wallets while blocks are being downloaded out of order when using assumeutxo snapshots. Wallet should be able to load successfully after node sync reaches height %s + Ошибка загрузки кошелька. Для работы кошелька требуется загрузка блоков, а текущее программное обеспечение не поддерживает загрузку кошельков во время загрузки блоков вне порядка при использовании снимков assumeutxo. Кошелек должен успешно загрузиться после того, как синхронизация ноды достигнет высоты %s. + Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect. Ошибка чтения %s! Все ключи прочитаны верно, но данные транзакций или записи адресной книги могут отсутствовать или быть неправильными. + + Error: Dumpfile format record is incorrect. Got "%s", expected "format". + Ошибка: формат записи файла дампа некорректен. Получено: "%s", ожидалось: "format". + + + Error: Dumpfile identifier record is incorrect. Got "%s", expected "%s". + Ошибка: идентификатор записи файла дампа некорректен. Получено: "%s", ожидалось: "%s". + + + Error: Dumpfile version is not supported. This version of bitcoin-wallet only supports version 1 dumpfiles. Got dumpfile with version %s + Ошибка: версия файла дампа не поддерживается. Эта версия bitcoin-wallet поддерживает только файлы дампа версии 1. Получен файл дампа версии %s. + + + Failed to rename invalid peers.dat file. Please move or delete it and try again. + Не удалось переименовать некорректный файл peers.dat. Пожалуйста, переместите или удалите его и повторите попытку. + + + File %s already exists. If you are sure this is what you want, move it out of the way first. + Файл %s уже существует. Если вы уверены, что это необходимо, сначала переместите его в другое место. + + + Incompatible options: -dnsseed=1 was explicitly specified, but -onlynet forbids connections to IPv4/IPv6 + Несовместимые параметры: указано -dnsseed=1, но параметр -onlynet запрещает подключения к IPv4/IPv6. + Incorrect or no devnet genesis block found. Wrong datadir for devnet specified? Неверный или отсутствующий начальный блок devnet. Неправильный каталог данных для devnet? + + Invalid or corrupt peers.dat (%s). If you believe this is a bug, please report it to %s. As a workaround, you can move the file (%s) out of the way (rename, move, or delete) to have a new one created on the next start. + Некорректный или поврежденный файл peers.dat (%s). Если вы считаете, что это ошибка, пожалуйста, сообщите об этом на %s. В качестве временного решения вы можете переместить файл (%s) (переименовать, переместить или удалить), чтобы при следующем запуске был создан новый файл. + + + No dump file provided. To use createfromdump, -dumpfile=<filename> must be provided. + Файл дампа не указан. Для использования createfromdump необходимо указать -dumpfile=<filename>. + + + No dump file provided. To use dump, -dumpfile=<filename> must be provided. + Файл дампа не указан. Для использования команды dump необходимо задать параметр -dumpfile=<filename>. + + + No wallet file format provided. To use createfromdump, -format=<format> must be provided. + Формат файла кошелька не указан. Для использования команды createfromdump необходимо задать параметр -format=<format>. + + + Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is explicitly forbidden: -onion=0 + Исходящие подключения ограничены сетью Tor (-onlynet=onion), но прокси для подключения к сети Tor явно запрещен: -onion=0. + + + Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided: none of -proxy, -onion or -listenonion is given + Исходящие подключения ограничены сетью Tor (-onlynet=onion), но прокси для подключения к сети Tor не указан: отсутствуют параметры -proxy, -onion или -listenonion. + Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly. Пожалуйста, убедитесь что дата и время на Вашем компьютере выставлены правильно! %s не сможет работать корректно, если часы настроены неверно. @@ -5089,6 +5564,22 @@ Go to File > Open Wallet to load a wallet. Please contribute if you find %s useful. Visit %s for further information about the software. Пожалуйста, поддержите нас, если считаете %s полезным. Посетите %s для дополнительной информации. + + Prune mode is incompatible with -reindex-chainstate. Use full -reindex instead. + Режим prune несовместим с параметром -reindex-chainstate. Используйте полный параметр -reindex вместо этого. + + + The -txindex upgrade started by a previous version can not be completed. Restart with the previous version or run a full -reindex. + Обновление -txindex, начатое предыдущей версией, не может быть завершено. Перезапустите с предыдущей версией или выполните полный -reindex. + + + The block index db contains a legacy 'txindex'. To clear the occupied disk space, run a full -reindex, otherwise ignore this error. This error message will not be displayed again. + База данных индекса блоков содержит устаревший 'txindex'. Чтобы освободить занятое дисковое пространство, выполните полный -reindex, в противном случае игнорируйте эту ошибку. Это сообщение об ошибке больше не будет отображаться. + + + This is the maximum transaction fee you pay (in addition to the normal fee) to prioritize partial spend avoidance over regular coin selection. + Это максимальная комиссия за транзакцию, которую вы платите (в дополнение к обычной комиссии), чтобы отдать приоритет частичному избеганию траты монет по сравнению с обычным выбором монет. + This is the transaction fee you may discard if change is smaller than dust at this level Это комиссия, которую Вы заплатите дополнительно, если сдача меньше "пыли" при таком уровне комиссии @@ -5101,10 +5592,26 @@ Go to File > Open Wallet to load a wallet. Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate. Невозможно повторить блоки. Необходимо перестроить базы даных с помощью -reindex-chainstate. + + Unknown wallet file format "%s" provided. Please provide one of "bdb" or "sqlite". + Указан неизвестный формат файла кошелька "%s". Пожалуйста, укажите один из следующих: "bdb" или "sqlite". + + + Warning: Dumpfile wallet format "%s" does not match command line specified format "%s". + Предупреждение: формат кошелька в файле дампа "%s" не соответствует указанному в командной строке формату "%s". + Warning: Private keys detected in wallet {%s} with disabled private keys Внимание: Закрытые ключи обнаружены в кошельке {%s} с отключенными закрытыми ключами + + You need to rebuild the database using -reindex to enable -timestampindex + Для включения параметра -timestampindex необходимо перестроить базу данных с использованием параметра -reindex. + + + %s -- Incorrect seed, it should be a hex string + %s — Некорректный seed, он должен быть строкой в HEX формате. + %s is not a valid backup folder! %s не является корректной директорией для резервной копии! @@ -5153,6 +5660,14 @@ Go to File > Open Wallet to load a wallet. Disk space is too low! Слишком мало места на диске! + + Dump file %s does not exist. + Файл %s дампа не существует. + + + Error creating %s + Ошибка при создании %s. + Error loading %s Ошибка при загрузке %s @@ -5169,6 +5684,10 @@ Go to File > Open Wallet to load a wallet. Error loading %s: You can't disable HD on an already existing HD wallet Ошибка загрузки %s: Вы не можете отключить HD режим для существующего HD кошелька + + Error reading next record from wallet database + Ошибка чтения следующей записи из базы данных кошелька. + Error upgrading chainstate database Ошибка обновления базы данных состояний цепочки @@ -5265,10 +5784,6 @@ Go to File > Open Wallet to load a wallet. Invalid spork address specified with -sporkaddr В -sporkaddr указан некорректный адрес - - Prune mode is incompatible with -coinstatsindex. - Режим удаления блоков несовместим с -coinstatsindex. - Reducing -maxconnections from %d to %d, because of system limitations. Настройка -maxconnections снижена с %d до %d из-за ограничений системы. @@ -5365,10 +5880,6 @@ Go to File > Open Wallet to load a wallet. Unsupported logging category %s=%s. Неподдерживаемая категория отладочной информации %s=%s. - - Upgrading txindex database - Обновление базы txindex - Very low number of keys left: %d Осталось очень мало ключей: %d @@ -5397,9 +5908,25 @@ Go to File > Open Wallet to load a wallet. You can not disable governance validation on a masternode. Вы не можете отключить проверку данных управления на мастерноде. + + You need to rebuild the database using -reindex to enable -addressindex + Вам необходимо перестроить базы данных с помощью -reindex, чтобы включить -addressindex + + + You need to rebuild the database using -reindex to enable -spentindex + Вам необходимо перестроить базы данных с помощью -reindex, чтобы включить -spentindex + Your entries added successfully. Ваши записи успешно добавлены. + + Settings file could not be read + Не удалось прочитать файл настроек. + + + Settings file could not be written + Не удалось записать файл настроек. + \ No newline at end of file diff --git a/src/qt/locale/dash_th.ts b/src/qt/locale/dash_th.ts index 5e72856c9452a..d51d06e075292 100644 --- a/src/qt/locale/dash_th.ts +++ b/src/qt/locale/dash_th.ts @@ -93,10 +93,6 @@ &Edit &แก้ไข - - &Show address QR code - &แสดง ที่อยู่ QR code - QR code โค้ด QR @@ -618,6 +614,7 @@ %n active connection(s) to Dash network + A substring of the tooltip. %n เชื่อมต่อใช้งานกับเครือข่าย Dash @@ -873,30 +870,10 @@ Confirmed ยืนยันแล้ว - - Copy address - คัดลอกที่อยู่ - - - Copy label - คัดลอกป้ายชื่อ - Copy amount คัดลอกจำนวน - - Copy transaction ID - คัดลอก ID ธุรกรรม - - - Lock unspent - Lock unspent - - - Unlock unspent - Unlock unspent - Copy quantity ปริมาณการคัดลอก @@ -986,6 +963,7 @@ CreateWalletActivity Creating Wallet <b>%1</b>… + Descriptive text of the create wallet progress window which indicates to the user which wallet is currently being created. การสร้างกระเป๋าเงิน <b>%1</b>… @@ -1424,6 +1402,7 @@ Opening Wallet <b>%1</b>… + Descriptive text of the open wallet progress window which indicates to the user which wallet is currently being opened. เปิดกระเป๋า <b>%1</b>… @@ -1990,14 +1969,6 @@ 'dash://' is not a valid URI. Use 'dash:' instead. 'dash://' ไม่ใช่ URI ที่ถูกต้องใช้ 'dash:' แทน - - Cannot process payment request as BIP70 is no longer supported. - ไม่สามารถดำเนินการคำขอชำระเงินได้เนื่องจากไม่รองรับ BIP70 อีกต่อไป - - - Due to discontinued support, you should request the merchant to provide you with a BIP21 compatible URI or use a wallet that does continue to support BIP70. - เนื่องจากการสนับสนุนถูกยกเลิก คุณควรขอให้ผู้ค้าจัดเตรียม URI ที่เข้ากันได้กับ BIP21 หรือใช้กระเป๋าเงินที่รองรับ BIP70 ต่อไป - URI cannot be parsed! This can be caused by an invalid Dash address or malformed URI parameters. ไม่สามารถประมวลผล URI ได้สำเร็จ ! ซึ่งอาจเกิดจากที่อยู่ Dash ไม่ถูกต้องหรือพารามิเตอร์ URI ที่มีรูปแบบไม่ถูกต้อง @@ -2242,10 +2213,6 @@ %1 B %1 B - - %1 KB - %1 KB - %1 MB %1 MB @@ -2571,10 +2538,6 @@ 1 &hour 1 &ชั่วโมง - - 1 &day - 1 &วัน - 1 &week 1 &สัปดาห์ @@ -2587,26 +2550,6 @@ &Unban &Unban - - Welcome to the %1 RPC console. - ยินดีต้อนรับสู่คอนโซล %1 RPC - - - Use up and down arrows to navigate history, and %1 to clear screen. - ใช้ลูกศรขึ้นและลงเพื่อเลื่อนดูประวัติ และ %1 เพื่อเคลียร์หน้าจอ - - - Type %1 for an overview of available commands. - พิมพ์ %1 สำหรับภาพรวมของคำสั่งที่ใช้ได้ - - - For more information on using this console type %1. - สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้คอนโซลประเภทนี้พิมพ์ %1 - - - WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. - คำเตือน: สแกมเมอร์กำลังใช้งานอยู่, กำลังบอกให้ผู้ใช้พิมพ์คำสั่งที่นี่, ขโมยเนื้อหาใน wallet ได้ ห้ามใช้คอนโซลนี้โดยไม่เข้าใจส่วนย่อยของคำสั่ง - In: ใน: @@ -2730,26 +2673,6 @@ Enter a message to attach to the payment request ป้อนข้อความที่จะแนบไปร้องขอการชำระเงิน - - Copy URI - คัดลอก URI - - - Copy address - คัดลอกที่อยู่ - - - Copy label - คัดลอกป้ายชื่อ - - - Copy message - คัดลอกข้อความ - - - Copy amount - คัดลอกจำนวน - ReceiveRequestDialog @@ -3389,12 +3312,11 @@ ข้อความได้รับการยืนยัน + + SplashScreen + TrafficGraphWidget - - KB/s - KB/s - Total ยอดรวม: @@ -3807,50 +3729,6 @@ Min amount จำนวนเงินขั้นต่ำ - - Abandon transaction - ยกเลิกรายการ - - - Resend transaction - ส่งการทำธุรกรรมอีกครั้ง - - - Copy address - คัดลอกที่อยู่ - - - Copy label - คัดลอกป้ายชื่อ - - - Copy amount - คัดลอกจำนวน - - - Copy transaction ID - คัดลอก ID ธุรกรรม - - - Copy raw transaction - คัดลอกธุรกรรมดิบ - - - Copy full transaction details - คัดลอกรายละเอียดธุรกรรมทั้งหมด - - - Edit address label - แก้ไขที่อยู่ฉลาก - - - Show transaction details - แสดงรายละเอียดธุรกรรม - - - Show address QR code - แสดงที่อยู่ของ QR code - Export Transaction History ส่งออกประวัติการทำธุรกรรม @@ -3948,7 +3826,7 @@ Go to File > Open Wallet to load a wallet. Create a new wallet สร้างกระเป๋าเงินใหม่ - + WalletModel @@ -4273,10 +4151,6 @@ Go to File > Open Wallet to load a wallet. Wallet is locked, can't replenish keypool! Automatic backups and mixing are disabled, please unlock your wallet to replenish keypool. กระเป๋าสตางค์ถูกล็อคไม่สามารถเติม keypool! ปิดใช้งานการสำรองข้อมูลและการผสมข้อมูลอัตโนมัติ โปรดปลดล็อกเพื่อใส่พวง keypool - - You need to rebuild the database using -reindex to change -timestampindex - คุณจำเป็นต้องสร้างฐานข้อมูลโดยใช้ -reindex เพื่อเปลี่ยน -timestampindex - You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain คุณจำเป็นต้องสร้างฐานข้อมูลโดยใช้ -reindex ที่จะกลับไปที่โหมด unpruned และนี่จะดาวน์โหลด blockchain ที่เหลือใหม่ทั้งหมด @@ -4521,14 +4395,6 @@ Go to File > Open Wallet to load a wallet. You can not start a masternode with wallet enabled. คุณไม่สามารถเริ่มต้น masternode กับกระเป๋าสตางค์เปิดการใช้งาน - - You need to rebuild the database using -reindex to change -addressindex - คุณจำเป็นต้องสร้างฐานข้อมูลโดยใช้ -reindex เพื่อเปลี่ยน -addressindex - - - You need to rebuild the database using -reindex to change -spentindex - คุณจำเป็นต้องสร้างฐานข้อมูลโดยใช้ -reindex เพื่อเปลี่ยน -spentindex - no mixing available. ไม่มีการผสม @@ -4833,10 +4699,6 @@ Go to File > Open Wallet to load a wallet. Unsupported logging category %s=%s. การบันทึกประเภทที่ไม่ได้รับการสนับสนุน %s=%s - - Upgrading txindex database - การอัพเกรดฐานข้อมูล txindex - Very low number of keys left: %d จำนวนคีย์ที่เหลืออยู่ต่ำมาก: %d @@ -4869,5 +4731,5 @@ Go to File > Open Wallet to load a wallet. Your entries added successfully. เพิ่มรายการของคุณเรียบร้อยแล้ว - + \ No newline at end of file diff --git a/src/qt/locale/dash_zh_CN.ts b/src/qt/locale/dash_zh_CN.ts index 6322eaf0e620a..fae029a8bee3d 100644 --- a/src/qt/locale/dash_zh_CN.ts +++ b/src/qt/locale/dash_zh_CN.ts @@ -93,10 +93,6 @@ &Edit 编辑(&E) - - &Show address QR code - &显示地址二维码 - QR code 二维码 @@ -618,6 +614,7 @@ %n active connection(s) to Dash network + A substring of the tooltip. %n个有效的Dash网络连接 @@ -873,30 +870,10 @@ Confirmed 已确认 - - Copy address - 复制地址 - - - Copy label - 复制标签 - Copy amount 复制金额 - - Copy transaction ID - 复制交易编号 - - - Lock unspent - 锁定未花费 - - - Unlock unspent - 解锁未花费 - Copy quantity 复制金额 @@ -986,6 +963,7 @@ CreateWalletActivity Creating Wallet <b>%1</b>… + Descriptive text of the create wallet progress window which indicates to the user which wallet is currently being created. 正在创建钱包 <b>%1</b>… @@ -1424,6 +1402,7 @@ Opening Wallet <b>%1</b>… + Descriptive text of the open wallet progress window which indicates to the user which wallet is currently being opened. 正在打开钱包 <b>%1</b>… @@ -1990,14 +1969,6 @@ 'dash://' is not a valid URI. Use 'dash:' instead. 'dash://' 不是一个有效链接. 请使用'dash:' - - Cannot process payment request as BIP70 is no longer supported. - 无法处理付款请求因为不再支持BIP70. - - - Due to discontinued support, you should request the merchant to provide you with a BIP21 compatible URI or use a wallet that does continue to support BIP70. - 由于终止支持, 您应当要求商家为您提供一个兼容BIP21的URI, 或使用仍支持BIP70的钱包. - URI cannot be parsed! This can be caused by an invalid Dash address or malformed URI parameters. URI不能被解析! 原因可能是无效的Dash地址或URI参数格式错误。 @@ -2242,10 +2213,6 @@ %1 B %1 B - - %1 KB - %1 KB - %1 MB %1 MB @@ -2571,10 +2538,6 @@ 1 &hour 1 小时(&H) - - 1 &day - 1 天(&D) - 1 &week 1 周(&W) @@ -2587,26 +2550,6 @@ &Unban 解禁(&U) - - Welcome to the %1 RPC console. - 欢迎使用 %1 的 RPC 控制台。 - - - Use up and down arrows to navigate history, and %1 to clear screen. - 使用上下方向键浏览历史, %1清除屏幕。 - - - Type %1 for an overview of available commands. - 输入 %1 以获得可用命令描述. - - - For more information on using this console type %1. - 关于使用此控制台的更多信息, 请输入 %1. - - - WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. - 警告: 骗子总是积极地劝说用户在此输入指令, 以窃取用户钱包中的资金. 在没有完全理解各命令行作用前, 请不要使用控制台。 - In: 输入: @@ -2730,26 +2673,6 @@ Enter a message to attach to the payment request 输入消息以添加到支付请求中 - - Copy URI - 复制URI - - - Copy address - 复制地址 - - - Copy label - 复制标签 - - - Copy message - 复制消息 - - - Copy amount - 复制金额 - ReceiveRequestDialog @@ -3389,12 +3312,11 @@ 消息验证成功。 + + SplashScreen + TrafficGraphWidget - - KB/s - KB/s - Total 总额 @@ -3807,50 +3729,6 @@ Min amount 最小金额 - - Abandon transaction - 放弃交易 - - - Resend transaction - 重新发送交易 - - - Copy address - 复制地址 - - - Copy label - 复制标签 - - - Copy amount - 复制金额 - - - Copy transaction ID - 复制交易编号 - - - Copy raw transaction - 复制原始交易 - - - Copy full transaction details - 复制完整交易详情 - - - Edit address label - 编辑地址标签 - - - Show transaction details - 显示交易详情 - - - Show address QR code - 显示地址二维码 - Export Transaction History 导出交易历史 @@ -3948,7 +3826,7 @@ Go to File > Open Wallet to load a wallet. Create a new wallet 创建一个新钱包 - + WalletModel @@ -4273,10 +4151,6 @@ Go to File > Open Wallet to load a wallet. Wallet is locked, can't replenish keypool! Automatic backups and mixing are disabled, please unlock your wallet to replenish keypool. 钱包被锁定,无法补充keypool!自动备份和混合功能被禁用,请解锁您的钱包以补充keypool。 - - You need to rebuild the database using -reindex to change -timestampindex - 您需要通过使用-reindex改变-timestampindex来重新建立数据库 - You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain 您需要使用 -reindex 重新构建数据库以返回未修剪的模式。这将重新下载整个区块链 @@ -4521,14 +4395,6 @@ Go to File > Open Wallet to load a wallet. You can not start a masternode with wallet enabled. 您无法在开启钱包时启动主节点. - - You need to rebuild the database using -reindex to change -addressindex - 您需要通过使用-reindex改变-addressindex来重新建立数据库 - - - You need to rebuild the database using -reindex to change -spentindex - 您需要通过使用-reindex改变-spentindex来重新建立数据库 - no mixing available. 无法进行混合。 @@ -4833,10 +4699,6 @@ Go to File > Open Wallet to load a wallet. Unsupported logging category %s=%s. 不支持的日志记录类别 %s=%s. - - Upgrading txindex database - 正在升级交易指数数据库 - Very low number of keys left: %d 尚余少量的密匙:%d @@ -4869,5 +4731,5 @@ Go to File > Open Wallet to load a wallet. Your entries added successfully. 您的词条已添加成功. - + \ No newline at end of file From 212f91c35f237aa3a3b068ae2538b4b35f4adbd7 Mon Sep 17 00:00:00 2001 From: pasta Date: Sat, 7 Dec 2024 12:27:25 -0600 Subject: [PATCH 20/24] Merge #6461: docs: update supported versions in SECURITY.md 87b3c7f5d19291c80c078a3a63ceb2f22cc3b666 docs: update supported versions in SECURITY.md (Kittywhiskers Van Gogh) Pull request description: ## Additional Information Updates the supported versions list in `SECURITY.md` ## Checklist: - [x] I have performed a self-review of my own code **(note: N/A)** - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)** - [x] I have added or updated relevant unit/integration/functional/e2e tests **(note: N/A)** - [x] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: knst: utACK 87b3c7f5d19291c80c078a3a63ceb2f22cc3b666 UdjinM6: utACK 87b3c7f5d19291c80c078a3a63ceb2f22cc3b666 Tree-SHA512: 2a196b0e07e40a557f87a5137ede7d3984f14f48dedbec742e540c9ff1a9a762eccb317b35d102154745756cb83145ce5577495c2a2e581691edcfb0fa18553c --- SECURITY.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/SECURITY.md b/SECURITY.md index e88192ddc03b7..36f39013d9381 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -4,9 +4,8 @@ | Version | Supported | | ------- | ------------------ | -| 21 | :white_check_mark: | -| 20.1 | :white_check_mark: | -| < 20.1 | :x: | +| 22 | :white_check_mark: | +| < 22 | :x: | ## Reporting a Vulnerability From d7cd9f10fdfb45473076f113e9aea161efc9f1d3 Mon Sep 17 00:00:00 2001 From: pasta Date: Tue, 10 Dec 2024 09:25:40 -0600 Subject: [PATCH 21/24] Merge #6464: chore: update man pages for v22 2dabd7895636b881fa97d8db79f5c70ddcc2cf7d chore: update man pages for v22 (UdjinM6) Pull request description: ## Issue being fixed or feature implemented ## What was done? ## How Has This Been Tested? ## Breaking Changes ## Checklist: - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: PastaPastaPasta: utACK 2dabd7895636b881fa97d8db79f5c70ddcc2cf7d knst: utACK 2dabd7895636b881fa97d8db79f5c70ddcc2cf7d Tree-SHA512: fc03af689e9c5be54f150d6727772038c70e1fafad0f450b431203aa0e662873e17095e702c8d970eafdd92e386bb471d7894ba51bb72b166fadefabdfaad116 --- doc/man/dash-cli.1 | 8 ++-- doc/man/dash-qt.1 | 95 ++++++++++++++++++++++++++----------------- doc/man/dash-tx.1 | 8 ++-- doc/man/dash-wallet.1 | 6 +-- doc/man/dashd.1 | 95 ++++++++++++++++++++++++++----------------- 5 files changed, 129 insertions(+), 83 deletions(-) diff --git a/doc/man/dash-cli.1 b/doc/man/dash-cli.1 index 508646ba254c0..48977e9aa33bf 100644 --- a/doc/man/dash-cli.1 +++ b/doc/man/dash-cli.1 @@ -1,7 +1,7 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. -.TH DASH-CLI "1" "August 2024" "dash-cli v21.1.0" "User Commands" +.TH DASH-CLI "1" "December 2024" "dash-cli v22.0.0" "User Commands" .SH NAME -dash-cli \- manual page for dash-cli v21.1.0 +dash-cli \- manual page for dash-cli v22.0.0 .SH SYNOPSIS .B dash-cli [\fI\,options\/\fR] \fI\, \/\fR[\fI\,params\/\fR] \fI\,Send command to Dash Core\/\fR @@ -15,7 +15,7 @@ dash-cli \- manual page for dash-cli v21.1.0 .B dash-cli [\fI\,options\/\fR] \fI\,help Get help for a command\/\fR .SH DESCRIPTION -Dash Core RPC client version v21.1.0 +Dash Core RPC client version v22.0.0 .SH OPTIONS .HP \-? @@ -136,6 +136,8 @@ for the wallet passphrase. .IP Print version and exit .PP +Debugging/Testing options: +.PP Chain selection options: .HP \fB\-chain=\fR diff --git a/doc/man/dash-qt.1 b/doc/man/dash-qt.1 index 43a0b48486e1f..833ac4c6ca98c 100644 --- a/doc/man/dash-qt.1 +++ b/doc/man/dash-qt.1 @@ -1,12 +1,12 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. -.TH DASH-QT "1" "August 2024" "dash-qt v21.1.0" "User Commands" +.TH DASH-QT "1" "December 2024" "dash-qt v22.0.0" "User Commands" .SH NAME -dash-qt \- manual page for dash-qt v21.1.0 +dash-qt \- manual page for dash-qt v22.0.0 .SH SYNOPSIS .B dash-qt [\fI\,command-line options\/\fR] .SH DESCRIPTION -Dash Core version v21.1.0 +Dash Core version v22.0.0 .SH OPTIONS .HP \-? @@ -23,9 +23,9 @@ message) If this block is in the chain assume that it and its ancestors are valid and potentially skip their script verification (0 to verify all, default: -000000000000001889bd33ef019065e250d32bd46911f4003d3fdd8128b5358d, +000000000000001cf26547602d982dcaa909231bbcd1e70c0eb3c65de25473ba, testnet: -00000034bfeb926662ba547c0b8dd4ba8cbb6e0c581f4e7d1bddce8f9ca3a608) +000000eef20eb0062abd4e799967e98bdebb165dd1c567ab4118c1c86c6e948f) .HP \fB\-blockfilterindex=\fR .IP @@ -140,12 +140,11 @@ 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, \fB\-rescan\fR and -\fB\-disablegovernance\fR=\fI\,false\/\fR. Warning: Reverting this setting -requires re\-downloading the entire blockchain. (default: 0 = -disable pruning blocks, 1 = allow manual pruning via RPC, >945 = -automatically prune block files to stay under the specified -target size in MiB) +incompatible with \fB\-txindex\fR, \fB\-rescan\fR and \fB\-disablegovernance\fR=\fI\,false\/\fR. +Warning: Reverting this setting requires re\-downloading the +entire blockchain. (default: 0 = disable pruning blocks, 1 = +allow manual pruning via RPC, >945 = automatically prune block +files to stay under the specified target size in MiB) .HP \fB\-settings=\fR .IP @@ -277,7 +276,8 @@ Maximum per\-connection receive buffer, *1000 bytes (default: 5000) .HP \fB\-maxsendbuffer=\fR .IP -Maximum per\-connection send buffer, *1000 bytes (default: 1000) +Maximum per\-connection memory usage for the send buffer, *1000 bytes +(default: 1000) .HP \fB\-maxtimeadjustment\fR .IP @@ -287,9 +287,11 @@ amount. (default: 4200 seconds) .HP \fB\-maxuploadtarget=\fR .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) +Tries to keep outbound traffic under the given target per 24h. Limit +does not apply to peers with 'download' permission or blocks +created within past week. 0 = no limit (default: 0M). Optional +suffix units [k|K|m|M|g|G|t|T] (default: M). Lowercase is 1000 +base while uppercase is 1024 base .HP \fB\-natpmp\fR .IP @@ -379,6 +381,10 @@ Tor control port password (default: empty) Use UPnP to map the listening port (default: 1 when listening and no \fB\-proxy\fR) .HP +\fB\-v2transport\fR +.IP +Support v2 transport (default: 0) +.HP \fB\-whitebind=\fR<[permissions@]addr> .IP Bind to the given address and add permission flags to the peers @@ -410,13 +416,14 @@ unspent outputs for addresses (default: 0) .HP \fB\-reindex\fR .IP -Rebuild chain state and block index from the blk*.dat files on disk +Rebuild chain state and block index from the blk*.dat files on disk. +This will also rebuild active optional indexes. .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. +instead. Deactivate all optional indexes before running this. .HP \fB\-spentindex\fR .IP @@ -435,6 +442,11 @@ call (default: 1) .PP Masternode options: .HP +\fB\-deprecated\-platform\-user=\fR +.IP +Set the username for the "platform user", a restricted user intended to +be used by Dash Platform, to the specified username. +.HP \fB\-llmq\-data\-recovery=\fR .IP Enable automated quorum data recovery (default: 1) @@ -451,29 +463,21 @@ defined by if a member of any of the quorums) .IP Set the masternode BLS private key and enable the client to act as a masternode -.HP -\fB\-platform\-user=\fR -.IP -Set the username for the "platform user", a restricted user intended to -be used by Dash Platform, to the specified username. .PP Statsd options: .HP -\fB\-statsenabled\fR -.IP -Publish internal stats to statsd (default: 0) -.HP -\fB\-statshost=\fR +\fB\-statsbatchsize=\fR .IP -Specify statsd host (default: 127.0.0.1) +Specify the size of each batch of stats messages (default: 1024) .HP -\fB\-statshostname=\fR +\fB\-statsduration=\fR .IP -Specify statsd host name (default: ) +Specify the number of milliseconds between stats messages (default: +1000) .HP -\fB\-statsns=\fR +\fB\-statshost=\fR .IP -Specify additional namespace prefix (default: ) +Specify statsd host (default: ) .HP \fB\-statsperiod=\fR .IP @@ -483,6 +487,14 @@ Specify the number of seconds between periodic measurements (default: \fB\-statsport=\fR .IP Specify statsd port (default: 8125) +.HP +\fB\-statsprefix=\fR +.IP +Specify an optional string prepended to every stats key (default: ) +.HP +\fB\-statssuffix=\fR +.IP +Specify an optional string appended to every stats key (default: ) .PP Wallet options: .HP @@ -831,6 +843,14 @@ Enable publish raw transaction (locked via InstantSend) and ISLOCK in .IP Set publish raw transaction lock signature outbound message high water mark (default: 1000) +.HP +\fB\-zmqpubsequence=\fR
+.IP +Enable publish hash block and tx sequence in
+.HP +\fB\-zmqpubsequencehwm=\fR +.IP +Set publish hash sequence message high water mark (default: 1000) .PP Debugging/Testing options: .HP @@ -840,11 +860,12 @@ Output debugging information (default: \fB\-nodebug\fR, supplying is optional). If is not supplied or if = 1, output all debugging information. can be: addrman, bench, chainlocks, cmpctblock, coindb, coinjoin, creditpool, ehf, -estimatefee, gobject, http, i2p, instantsend, leveldb, libevent, -llmq, llmq\-dkg, llmq\-sigs, lock, mempool, mempoolrej, mnpayments, -mnsync, net, netconn, proxy, prune, qt, rand, reindex, rpc, -selectcoins, spork, tor, validation, walletdb, zmq. This option -can be specified multiple times to output multiple categories. +estimatefee, gobject, http, i2p, instantsend, ipc, leveldb, +libevent, llmq, llmq\-dkg, llmq\-sigs, lock, mempool, mempoolrej, +mnpayments, mnsync, net, netconn, proxy, prune, qt, rand, +reindex, rpc, selectcoins, spork, tor, txreconciliation, +validation, walletdb, zmq. This option can be specified multiple +times to output multiple categories. .HP \fB\-debugexclude=\fR .IP diff --git a/doc/man/dash-tx.1 b/doc/man/dash-tx.1 index c0ab3a5308bca..2053e6ddcb4ba 100644 --- a/doc/man/dash-tx.1 +++ b/doc/man/dash-tx.1 @@ -1,7 +1,7 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. -.TH DASH-TX "1" "August 2024" "dash-tx v21.1.0" "User Commands" +.TH DASH-TX "1" "December 2024" "dash-tx v22.0.0" "User Commands" .SH NAME -dash-tx \- manual page for dash-tx v21.1.0 +dash-tx \- manual page for dash-tx v22.0.0 .SH SYNOPSIS .B dash-tx [\fI\,options\/\fR] \fI\, \/\fR[\fI\,commands\/\fR] \fI\,Update hex-encoded dash transaction\/\fR @@ -9,7 +9,7 @@ dash-tx \- manual page for dash-tx v21.1.0 .B dash-tx [\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR] \fI\,Create hex-encoded dash transaction\/\fR .SH DESCRIPTION -Dash Core dash\-tx utility version v21.1.0 +Dash Core dash\-tx utility version v22.0.0 .SH OPTIONS .HP \-? @@ -32,6 +32,8 @@ Output only the hex\-encoded transaction id of the resultant transaction. .IP Print version and exit .PP +Debugging/Testing options: +.PP Chain selection options: .HP \fB\-chain=\fR diff --git a/doc/man/dash-wallet.1 b/doc/man/dash-wallet.1 index 24d317153370e..bfc45e025235d 100644 --- a/doc/man/dash-wallet.1 +++ b/doc/man/dash-wallet.1 @@ -1,9 +1,9 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. -.TH DASH-WALLET "1" "August 2024" "dash-wallet v21.1.0" "User Commands" +.TH DASH-WALLET "1" "December 2024" "dash-wallet v22.0.0" "User Commands" .SH NAME -dash-wallet \- manual page for dash-wallet v21.1.0 +dash-wallet \- manual page for dash-wallet v22.0.0 .SH DESCRIPTION -Dash Core dash\-wallet version v21.1.0 +Dash Core dash\-wallet version v22.0.0 .PP dash\-wallet is an offline tool for creating and interacting with Dash Core wallet files. By default dash\-wallet will act on wallets in the default mainnet wallet directory in the datadir. diff --git a/doc/man/dashd.1 b/doc/man/dashd.1 index 66cbadb8b27d2..e7e5b52ac142d 100644 --- a/doc/man/dashd.1 +++ b/doc/man/dashd.1 @@ -1,12 +1,12 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. -.TH DASHD "1" "August 2024" "dashd v21.1.0" "User Commands" +.TH DASHD "1" "December 2024" "dashd v22.0.0" "User Commands" .SH NAME -dashd \- manual page for dashd v21.1.0 +dashd \- manual page for dashd v22.0.0 .SH SYNOPSIS .B dashd [\fI\,options\/\fR] \fI\,Start Dash Core\/\fR .SH DESCRIPTION -Dash Core version v21.1.0 +Dash Core version v22.0.0 Copyright \(co 2014\-2024 The Dash Core developers Copyright \(co 2009\-2024 The Bitcoin Core developers .PP @@ -33,9 +33,9 @@ message) If this block is in the chain assume that it and its ancestors are valid and potentially skip their script verification (0 to verify all, default: -000000000000001889bd33ef019065e250d32bd46911f4003d3fdd8128b5358d, +000000000000001cf26547602d982dcaa909231bbcd1e70c0eb3c65de25473ba, testnet: -00000034bfeb926662ba547c0b8dd4ba8cbb6e0c581f4e7d1bddce8f9ca3a608) +000000eef20eb0062abd4e799967e98bdebb165dd1c567ab4118c1c86c6e948f) .HP \fB\-blockfilterindex=\fR .IP @@ -150,12 +150,11 @@ 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, \fB\-rescan\fR and -\fB\-disablegovernance\fR=\fI\,false\/\fR. Warning: Reverting this setting -requires re\-downloading the entire blockchain. (default: 0 = -disable pruning blocks, 1 = allow manual pruning via RPC, >945 = -automatically prune block files to stay under the specified -target size in MiB) +incompatible with \fB\-txindex\fR, \fB\-rescan\fR and \fB\-disablegovernance\fR=\fI\,false\/\fR. +Warning: Reverting this setting requires re\-downloading the +entire blockchain. (default: 0 = disable pruning blocks, 1 = +allow manual pruning via RPC, >945 = automatically prune block +files to stay under the specified target size in MiB) .HP \fB\-settings=\fR .IP @@ -287,7 +286,8 @@ Maximum per\-connection receive buffer, *1000 bytes (default: 5000) .HP \fB\-maxsendbuffer=\fR .IP -Maximum per\-connection send buffer, *1000 bytes (default: 1000) +Maximum per\-connection memory usage for the send buffer, *1000 bytes +(default: 1000) .HP \fB\-maxtimeadjustment\fR .IP @@ -297,9 +297,11 @@ amount. (default: 4200 seconds) .HP \fB\-maxuploadtarget=\fR .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) +Tries to keep outbound traffic under the given target per 24h. Limit +does not apply to peers with 'download' permission or blocks +created within past week. 0 = no limit (default: 0M). Optional +suffix units [k|K|m|M|g|G|t|T] (default: M). Lowercase is 1000 +base while uppercase is 1024 base .HP \fB\-natpmp\fR .IP @@ -389,6 +391,10 @@ Tor control port password (default: empty) Use UPnP to map the listening port (default: 1 when listening and no \fB\-proxy\fR) .HP +\fB\-v2transport\fR +.IP +Support v2 transport (default: 0) +.HP \fB\-whitebind=\fR<[permissions@]addr> .IP Bind to the given address and add permission flags to the peers @@ -420,13 +426,14 @@ unspent outputs for addresses (default: 0) .HP \fB\-reindex\fR .IP -Rebuild chain state and block index from the blk*.dat files on disk +Rebuild chain state and block index from the blk*.dat files on disk. +This will also rebuild active optional indexes. .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. +instead. Deactivate all optional indexes before running this. .HP \fB\-spentindex\fR .IP @@ -445,6 +452,11 @@ call (default: 1) .PP Masternode options: .HP +\fB\-deprecated\-platform\-user=\fR +.IP +Set the username for the "platform user", a restricted user intended to +be used by Dash Platform, to the specified username. +.HP \fB\-llmq\-data\-recovery=\fR .IP Enable automated quorum data recovery (default: 1) @@ -461,29 +473,21 @@ defined by if a member of any of the quorums) .IP Set the masternode BLS private key and enable the client to act as a masternode -.HP -\fB\-platform\-user=\fR -.IP -Set the username for the "platform user", a restricted user intended to -be used by Dash Platform, to the specified username. .PP Statsd options: .HP -\fB\-statsenabled\fR -.IP -Publish internal stats to statsd (default: 0) -.HP -\fB\-statshost=\fR +\fB\-statsbatchsize=\fR .IP -Specify statsd host (default: 127.0.0.1) +Specify the size of each batch of stats messages (default: 1024) .HP -\fB\-statshostname=\fR +\fB\-statsduration=\fR .IP -Specify statsd host name (default: ) +Specify the number of milliseconds between stats messages (default: +1000) .HP -\fB\-statsns=\fR +\fB\-statshost=\fR .IP -Specify additional namespace prefix (default: ) +Specify statsd host (default: ) .HP \fB\-statsperiod=\fR .IP @@ -493,6 +497,14 @@ Specify the number of seconds between periodic measurements (default: \fB\-statsport=\fR .IP Specify statsd port (default: 8125) +.HP +\fB\-statsprefix=\fR +.IP +Specify an optional string prepended to every stats key (default: ) +.HP +\fB\-statssuffix=\fR +.IP +Specify an optional string appended to every stats key (default: ) .PP Wallet options: .HP @@ -841,6 +853,14 @@ Enable publish raw transaction (locked via InstantSend) and ISLOCK in .IP Set publish raw transaction lock signature outbound message high water mark (default: 1000) +.HP +\fB\-zmqpubsequence=\fR
+.IP +Enable publish hash block and tx sequence in
+.HP +\fB\-zmqpubsequencehwm=\fR +.IP +Set publish hash sequence message high water mark (default: 1000) .PP Debugging/Testing options: .HP @@ -850,11 +870,12 @@ Output debugging information (default: \fB\-nodebug\fR, supplying is optional). If is not supplied or if = 1, output all debugging information. can be: addrman, bench, chainlocks, cmpctblock, coindb, coinjoin, creditpool, ehf, -estimatefee, gobject, http, i2p, instantsend, leveldb, libevent, -llmq, llmq\-dkg, llmq\-sigs, lock, mempool, mempoolrej, mnpayments, -mnsync, net, netconn, proxy, prune, qt, rand, reindex, rpc, -selectcoins, spork, tor, validation, walletdb, zmq. This option -can be specified multiple times to output multiple categories. +estimatefee, gobject, http, i2p, instantsend, ipc, leveldb, +libevent, llmq, llmq\-dkg, llmq\-sigs, lock, mempool, mempoolrej, +mnpayments, mnsync, net, netconn, proxy, prune, qt, rand, +reindex, rpc, selectcoins, spork, tor, txreconciliation, +validation, walletdb, zmq. This option can be specified multiple +times to output multiple categories. .HP \fB\-debugexclude=\fR .IP From a6f1fc590cb12fe85e3a3c64bec26bbaf21d0ad1 Mon Sep 17 00:00:00 2001 From: pasta Date: Tue, 10 Dec 2024 09:19:18 -0600 Subject: [PATCH 22/24] Merge #6475: chore: bumped chain assumed sizes based on latest usage 2712968384fce646598199d9ab3c1ea1b36e96cf chore: bumped chain assumed sizes based on latest usage (pasta) Pull request description: ## Issue being fixed or feature implemented Release process item to bump assumed size ## What was done? bump sizes as manually calculated ## How Has This Been Tested? n/a ## Breaking Changes none ## Checklist: _Go over all the following points, and put an `x` in all the boxes that apply._ - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: knst: ACK 2712968384fce646598199d9ab3c1ea1b36e96cf kwvg: utACK 2712968384fce646598199d9ab3c1ea1b36e96cf Tree-SHA512: d0131d692f4ccc858dcc4fff3c494b44bf9f702e2e7a9172d166c53dc693d6eb90e9c86ff412b31defa4cff13e21099808d9fb2ea2174032e6fe79339b1a57d4 --- src/chainparams.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 616f4e650f42c..bff4c5dcd23a6 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -237,7 +237,7 @@ class CMainParams : public CChainParams { nDefaultPlatformP2PPort = 26656; nDefaultPlatformHTTPPort = 443; nPruneAfterHeight = 100000; - m_assumed_blockchain_size = 45; + m_assumed_blockchain_size = 50; m_assumed_chain_state_size = 1; genesis = CreateGenesisBlock(1390095618, 28917698, 0x1e0ffff0, 1, 50 * COIN); @@ -430,7 +430,7 @@ class CTestNetParams : public CChainParams { nDefaultPlatformP2PPort = 22000; nDefaultPlatformHTTPPort = 22001; nPruneAfterHeight = 1000; - m_assumed_blockchain_size = 4; + m_assumed_blockchain_size = 5; m_assumed_chain_state_size = 1; genesis = CreateGenesisBlock(1390666206UL, 3861367235UL, 0x1e0ffff0, 1, 50 * COIN); From c90339eb6125e9b25ec6974376297eff4a89cb27 Mon Sep 17 00:00:00 2001 From: pasta Date: Tue, 10 Dec 2024 09:28:32 -0600 Subject: [PATCH 23/24] Merge #6459: docs: add release notes for v22.0.0 3404fa02471e9dd0e602bab7c679d7b747ef88ac docs: add release notes for v22.0.0 (pasta) Pull request description: ## Issue being fixed or feature implemented Release notes for v22 ## What was done? ## How Has This Been Tested? ## Breaking Changes ## Checklist: _Go over all the following points, and put an `x` in all the boxes that apply._ - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ Top commit has no ACKs. Tree-SHA512: b1fca9297814ab3497cc87512eb2a66daff22a17802c6cd87ef9af75c48fbecda8963c332191c3e3e7abdf495817da3e505b12baa646e97d388cb1aee74a67a7 --- doc/release-notes-154.md | 4 - doc/release-notes-20755.md | 7 - doc/release-notes-21141.md | 6 - doc/release-notes-24806.md | 5 - doc/release-notes-6093.md | 4 - doc/release-notes-6107.md | 4 - doc/release-notes-6108.md | 4 - doc/release-notes-6147.md | 12 - doc/release-notes-6148.md | 6 - doc/release-notes-6183.md | 4 - doc/release-notes-6187.md | 3 - doc/release-notes-6189.md | 6 - doc/release-notes-6209.md | 3 - doc/release-notes-6229.md | 4 - doc/release-notes-6239.md | 5 - doc/release-notes-6247.md | 3 - doc/release-notes-6267.md | 25 -- doc/release-notes-6279.md | 8 - doc/release-notes-6281.md | 4 - doc/release-notes-6296.md | 6 - doc/release-notes-6297.md | 5 - doc/release-notes-6337.md | 5 - doc/release-notes-6365.md | 8 - doc/release-notes-6383.md | 5 - doc/release-notes.md | 219 ++++++++++++++++-- .../dash/release-notes-21.1.1.md | 116 ++++++++++ 26 files changed, 314 insertions(+), 167 deletions(-) delete mode 100644 doc/release-notes-154.md delete mode 100644 doc/release-notes-20755.md delete mode 100644 doc/release-notes-21141.md delete mode 100644 doc/release-notes-24806.md delete mode 100644 doc/release-notes-6093.md delete mode 100644 doc/release-notes-6107.md delete mode 100644 doc/release-notes-6108.md delete mode 100644 doc/release-notes-6147.md delete mode 100644 doc/release-notes-6148.md delete mode 100644 doc/release-notes-6183.md delete mode 100644 doc/release-notes-6187.md delete mode 100644 doc/release-notes-6189.md delete mode 100644 doc/release-notes-6209.md delete mode 100644 doc/release-notes-6229.md delete mode 100644 doc/release-notes-6239.md delete mode 100644 doc/release-notes-6247.md delete mode 100644 doc/release-notes-6267.md delete mode 100644 doc/release-notes-6279.md delete mode 100644 doc/release-notes-6281.md delete mode 100644 doc/release-notes-6296.md delete mode 100644 doc/release-notes-6297.md delete mode 100644 doc/release-notes-6337.md delete mode 100644 doc/release-notes-6365.md delete mode 100644 doc/release-notes-6383.md create mode 100644 doc/release-notes/dash/release-notes-21.1.1.md diff --git a/doc/release-notes-154.md b/doc/release-notes-154.md deleted file mode 100644 index a31e82433b94b..0000000000000 --- a/doc/release-notes-154.md +++ /dev/null @@ -1,4 +0,0 @@ -Compatibility -============== - -Dash Core change appearance when macOS "dark mode" is activated. diff --git a/doc/release-notes-20755.md b/doc/release-notes-20755.md deleted file mode 100644 index f0b4ca0cd3a7f..0000000000000 --- a/doc/release-notes-20755.md +++ /dev/null @@ -1,7 +0,0 @@ -Updated RPCs ------------- -- `getpeerinfo` no longer returns the following fields: `addnode`, - and `whitelisted`, which were previously deprecated in v21. Instead of - `addnode`, the `connection_type` field returns manual. Instead of - `whitelisted`, the `permissions` field indicates if the peer has special - privileges. (#20755) diff --git a/doc/release-notes-21141.md b/doc/release-notes-21141.md deleted file mode 100644 index c69da4f1c1b26..0000000000000 --- a/doc/release-notes-21141.md +++ /dev/null @@ -1,6 +0,0 @@ -## Command-line options -### Changes in existing cmd-line options: - -- `-walletnotify=` has a new format options "%h" and "%b". -%b is replaced by the hash of the block including the transaction (set to 'unconfirmed' if the transaction is not included). -%h is replaced by the block height (-1 if not included). diff --git a/doc/release-notes-24806.md b/doc/release-notes-24806.md deleted file mode 100644 index 1d2fe1996b827..0000000000000 --- a/doc/release-notes-24806.md +++ /dev/null @@ -1,5 +0,0 @@ -## RPC changes - -- `getblockfrompeer`, introduced in v21.0.0, named argument `block_hash` has been - renamed `blockhash` to be aligned with the rest of the codebase. This is a breaking - change if using named parameters. (#6149) diff --git a/doc/release-notes-6093.md b/doc/release-notes-6093.md deleted file mode 100644 index a61b40c9a69f9..0000000000000 --- a/doc/release-notes-6093.md +++ /dev/null @@ -1,4 +0,0 @@ -New functionality ------------ - -- A new RPC command, `coinjoinsalt`, allows for manipulating a CoinJoin salt stored in a wallet. `coinjoinsalt get` will fetch an existing salt, `coinjoinsalt set` will allow setting a custom salt and `coinjoinsalt generate` will set a random hash as the new salt. diff --git a/doc/release-notes-6107.md b/doc/release-notes-6107.md deleted file mode 100644 index d8299b2ee4697..0000000000000 --- a/doc/release-notes-6107.md +++ /dev/null @@ -1,4 +0,0 @@ -RPC changes ------------ - -- `coinjoin stop` will now return an error if there is no CoinJoin mixing session to stop diff --git a/doc/release-notes-6108.md b/doc/release-notes-6108.md deleted file mode 100644 index 13b81240fcc83..0000000000000 --- a/doc/release-notes-6108.md +++ /dev/null @@ -1,4 +0,0 @@ -RPC changes ------------ - -- `getcoinjoininfo` will no longer report `keys_left` and will not incorrectly warn about keypool depletion with descriptor wallets diff --git a/doc/release-notes-6147.md b/doc/release-notes-6147.md deleted file mode 100644 index c7b4df7b92784..0000000000000 --- a/doc/release-notes-6147.md +++ /dev/null @@ -1,12 +0,0 @@ -P2P and Network Changes ------------------------ - -### Improved Onion Connectivity - -To enhance censorship resistance and mitigate network partitioning risks, Dash Core now aims to maintain at least two -outbound onion connections and generally protects these connections from eviction. As a result of the low percentage -of gossiped addresses being onion nodes, it was often the case where, unless you specify `onlynet=onion`, a node -would rarely if ever establish any outbound onion connections. This change ensures that nodes which can access the -onion network maintain a few onion connections. As a result, network messages could continue to propagate across -the network even if non-onion IPv4 traffic is blocked, reducing the risk of partitioning. Additionally, this update improves -security by enabling p2p encryption for these peers. (#6147) \ No newline at end of file diff --git a/doc/release-notes-6148.md b/doc/release-notes-6148.md deleted file mode 100644 index ad447eba5b0fc..0000000000000 --- a/doc/release-notes-6148.md +++ /dev/null @@ -1,6 +0,0 @@ -P2P and Network Changes ------------------------ - -The DSQ message, starting in protocol version 70234, is broadcast using the inventory system, and not simply -relaying to all connected peers. This should reduce the bandwidth needs for all nodes, however, this affect will -be most noticeable on highly connected masternodes. (#6148) diff --git a/doc/release-notes-6183.md b/doc/release-notes-6183.md deleted file mode 100644 index e559050f40f46..0000000000000 --- a/doc/release-notes-6183.md +++ /dev/null @@ -1,4 +0,0 @@ -New functionality ------------ - -- LLMQ type LLMQ_50_60 is enabled for Devnet networks. This is needed when testing on a large Devnet. diff --git a/doc/release-notes-6187.md b/doc/release-notes-6187.md deleted file mode 100644 index 848bfb6b2092c..0000000000000 --- a/doc/release-notes-6187.md +++ /dev/null @@ -1,3 +0,0 @@ -## Devnet Breaking Changes - -`BRR` (`realloc`), `DIP0020`, `DIP0024`, `V19`, `V20` and `MN_R` hardforks are activated at block 2 instead of block 300 on devnets now. Please note that this is a breaking change so you will no longer be able to sync on devnets created with earlier Dash Core versions and vice versa. diff --git a/doc/release-notes-6189.md b/doc/release-notes-6189.md deleted file mode 100644 index b4b2678516dfe..0000000000000 --- a/doc/release-notes-6189.md +++ /dev/null @@ -1,6 +0,0 @@ -Tests ------ - -- For the `regtest` network the activation heights of several softforks were - set to block height 1. They can be changed by the runtime setting - `-testactivationheight=name@height`. (dash#6214) diff --git a/doc/release-notes-6209.md b/doc/release-notes-6209.md deleted file mode 100644 index 06b99f27249ba..0000000000000 --- a/doc/release-notes-6209.md +++ /dev/null @@ -1,3 +0,0 @@ -## Command-line options - -- `-platform-user` is deprecated in favor of the whitelist feature. In releases 22.x of Dash Core it has been renamed to `-deprecated-platform-user` and will be removed in version 23.x diff --git a/doc/release-notes-6229.md b/doc/release-notes-6229.md deleted file mode 100644 index 9400e96606b37..0000000000000 --- a/doc/release-notes-6229.md +++ /dev/null @@ -1,4 +0,0 @@ -RPC changes ------------ - -- `creditOutputs` entries in various RPCs that output transaction JSON are shown as objects now instead of being shown as strings. diff --git a/doc/release-notes-6239.md b/doc/release-notes-6239.md deleted file mode 100644 index fbfaff2f9a00e..0000000000000 --- a/doc/release-notes-6239.md +++ /dev/null @@ -1,5 +0,0 @@ -P2P and Network Changes ------------------------ - -The max number of compressed block headers which can be requested at once has been increased from 2000 to 8000. This -change activates with the protocol version `70235` and only applies to compressed block headers. diff --git a/doc/release-notes-6247.md b/doc/release-notes-6247.md deleted file mode 100644 index fe90973791201..0000000000000 --- a/doc/release-notes-6247.md +++ /dev/null @@ -1,3 +0,0 @@ -### RPC changes - -- Deprecated `protx *_hpmn` RPC entry points have been droppepd in favor of `protx *_evo`. The following have been removed: `protx register_fund_hpmn`, `protx register_hpmn`, `protx register_prepare_hpmn`, `protx update_service_hpmn` diff --git a/doc/release-notes-6267.md b/doc/release-notes-6267.md deleted file mode 100644 index 73881366a382a..0000000000000 --- a/doc/release-notes-6267.md +++ /dev/null @@ -1,25 +0,0 @@ -Statistics ------------ - -### New Features - -- The Statsd client now supports queueing and batching messages, reducing the number of packets and the rate at which - they are sent to the Statsd daemon. - -- The maximum size of each batch of messages (default, 1KiB) can be adjusted using `-statsbatchsize` (in bytes) - and the frequency at which queued messages are sent to the daemon (default, 1 second) can be adjusted using - `-statsduration` (in milliseconds) - - `-statsduration` has no bearing on `-statsperiod`, which dictates how frequently some stats are _collected_. - -### Deprecations - -- `-statsenabled` has been deprecated and enablement will now be implied by the presence of `-statshost`. `-statsenabled` - will be removed in a future release. - -- `-statshostname` has been deprecated and replaced with `-statssuffix` as the latter is better representative of the - argument's purpose. They behave identically to each other. `-statshostname` will be removed in a future - release. - -- `-statsns` has been deprecated and replaced with `-statsprefix` as the latter is better representative of the - argument's purpose. `-statsprefix`, unlike `-statsns`, will enforce the usage of a delimiter between the prefix - and key. `-statsns` will be removed in a future release. diff --git a/doc/release-notes-6279.md b/doc/release-notes-6279.md deleted file mode 100644 index f7c73d3cf1182..0000000000000 --- a/doc/release-notes-6279.md +++ /dev/null @@ -1,8 +0,0 @@ -# Notable changes - -## Asset Unlock transactions (platform transfer) - -This version introduces a new fork `withdrawals` that changes consensus rules. -New logic of validation of Asset Unlock transactions's signature. It let to use all 24 active quorums and the most recent inactive, while previous version of Dash Core may refuse withdrawal with error `bad-assetunlock-not-active-quorum` even if quorum is active. - -Limits for withdrawals has been increased to flat 2000 Dash per 576 latest blocks. diff --git a/doc/release-notes-6281.md b/doc/release-notes-6281.md deleted file mode 100644 index 8958cd8b815da..0000000000000 --- a/doc/release-notes-6281.md +++ /dev/null @@ -1,4 +0,0 @@ -P2P and Network Changes ------------------------ - -`MIN_PEER_PROTO_VERSION` has been bumped to `70216` diff --git a/doc/release-notes-6296.md b/doc/release-notes-6296.md deleted file mode 100644 index e3838f990cd2f..0000000000000 --- a/doc/release-notes-6296.md +++ /dev/null @@ -1,6 +0,0 @@ -Updated settings ----------------- - -- `-maxuploadtarget` now allows human readable byte units [k|K|m|M|g|G|t|T]. - E.g. `-maxuploadtarget=500g`. No whitespace, +- or fractions allowed. - Default is `M` if no suffix provided. diff --git a/doc/release-notes-6297.md b/doc/release-notes-6297.md deleted file mode 100644 index 970e02ad6a850..0000000000000 --- a/doc/release-notes-6297.md +++ /dev/null @@ -1,5 +0,0 @@ -RPC changes ------------ - -- `quorum dkgsimerror` will no longer accept a decimal value between 0 and 1 for the `rate` argument, it will now - expect an integer between 0 to 100. diff --git a/doc/release-notes-6337.md b/doc/release-notes-6337.md deleted file mode 100644 index e10943ee2a1f0..0000000000000 --- a/doc/release-notes-6337.md +++ /dev/null @@ -1,5 +0,0 @@ -GUI changes ------------ - -A new option has been added in to the "Main" tab in "Options" that allow -users to enable RPC server functionality. diff --git a/doc/release-notes-6365.md b/doc/release-notes-6365.md deleted file mode 100644 index 3b478f11b7929..0000000000000 --- a/doc/release-notes-6365.md +++ /dev/null @@ -1,8 +0,0 @@ -P2P and network changes ------- - -- Nodes with multiple reachable networks will actively try to have at least one - outbound connection to each network. This improves individual resistance to - eclipse attacks and network level resistance to partition attacks. Users no - longer need to perform active measures to ensure being connected to multiple - enabled networks. diff --git a/doc/release-notes-6383.md b/doc/release-notes-6383.md deleted file mode 100644 index c6f685f2b4520..0000000000000 --- a/doc/release-notes-6383.md +++ /dev/null @@ -1,5 +0,0 @@ -Compatibility -============= - -The minimum required glibc to run Dash Core is now 2.31. This means that RHEL 8 and Ubuntu 18.04 (Bionic) -are no-longer supported. diff --git a/doc/release-notes.md b/doc/release-notes.md index 06f26776e08a4..d03dd201b50b0 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,8 +1,9 @@ -# Dash Core version v21.1.1 +# Dash Core version v22.0.0 -This is a new patch version release, bringing important bugfixes. +This is a new major version release, bringing new features, various bugfixes +and other improvements. -This release is **optional** but recommended for all nodes. +This release is **mandatory** for all nodes, as it includes a hard fork. Please report bugs using the issue tracker at GitHub: @@ -20,28 +21,200 @@ dashd/dash-qt (on Linux). ## Downgrade warning -### Downgrade to a version < v21.0.0 +### Downgrade to a version < v22.0.0 -Downgrading to a version older than v21.0.0 may not be supported due to changes -if you are using descriptor wallets. +Downgrading to a version older than v22.0.0 may not be supported, and will +likely require a reindex. -### Downgrade to a version < v19.2.0 +# Release Notes -Downgrading to a version older than v19.2.0 is not supported due to changes -in the evodb database. If you need to use an older version, you must either -reindex or re-sync the whole chain. +## Notable Changes -# Notable changes +- **Asset Unlock Transactions (Platform Transfer)** + - Introduces a new fork, `withdrawals`, that changes consensus rules. + - **Validation Logic Update:** + - Allows using all **24 active quorums** and the most recent inactive quorum. + - Previous versions may refuse withdrawals with `bad-assetunlock-not-active-quorum` even if the quorum is active. + - **Withdrawal Limits Increased:** + - Flat **2000 Dash** per **576 latest blocks**. The previous limit was 1000 Dash. +- **Increased Minimum Protocol Version** + - The minimum protocol version has been increased to **70216**. + - Masternode minimum protocol version has increased to **70235**. -- Core now categorizes asset unlock transactions as "Platform Transfers" on the Transactions tab in Dash-Qt and in the output of the `gettransaction` RPC (#6131) -- Persist Coinjoin Denoms options changes made via GUI over restarts (#6208) -- Fix incorrect payment predictions for evonodes in Dash-Qt and in RPC `masternode winners` (#6222) -- `creditOutputs` entries in various RPCs that output transaction JSON are shown as objects now instead of being shown as strings (#6229) -- Updated PGP key for builder 'pasta' to reflect new subkeys. You may need to reimport this key to validate signatures. (#6290) -- Build failures on Ubuntu 24.10 / clang 19.1.1 resolved (#6328) -- RPC errors in `masternode payments`, `getblock`, `getblockstats` related to Asset Unlock parsing have been fixed (#6336) +## P2P and Network Changes -# v21.1.0 Change log +- **Improved Onion Connectivity** + - Nodes with onion connectivity will attempt to maintain at least **two outbound onion connections** and will protect these connections from eviction. + - **Benefit:** Ensures nodes capable of accessing the onion network maintain a few onion connections, allowing network messages to propagate even if non-onion IPv4 traffic is blocked. + - **Security Enhancement:** Enables P2P encryption for these peers. + +- **DSQ Message Broadcast Update** + - Starting in protocol version **70234**, DSQ messages are broadcast using the inventory system instead of relaying to all connected peers. + - **Benefit:** Reduces bandwidth needs for all nodes, especially noticeable on highly connected masternodes. + +- **Compressed Block Headers Request Limit** + - Starting in protocol version **70235**, the maximum number of compressed block headers that can be requested at once has been increased from **2000** to **8000**. + - **Applies to:** Compressed block headers only. + - **Benefit:** Potential for improved header sync performance. + +- **Multi-Network Connectivity Enhancement** + - Nodes with multiple reachable networks will actively try to maintain at least one outbound connection to each network. + - **Benefits:** + - Improves resistance to eclipse attacks. + - Enhances network-level resistance to partition attacks. + - **User Impact:** Users no longer need to perform active measures to ensure connections to multiple enabled networks. + +- **BIP324 Encrypted Communication (Experimental)** + - Dash Core now experimentally implements [BIP324](https://github.com/bitcoin/bips/blob/master/bip-0324.mediawiki), introducing encrypted communication for P2P network traffic. + - **Opt-In Adoption** + - **Enable Encryption:** Users can opt-in to use BIP324 by adding `v2transport=1` to their Dash Core configuration. + - **Default Behavior:** Encryption is **disabled by default** as this is currently experimental. + - **Benefits** + - **Enhanced Privacy:** Encrypts P2P messages for v2 connections, reducing the risk of traffic analysis and eavesdropping. + - **Improved Security:** Protects against certain types of network attacks by ensuring that communication between nodes is confidential and tamper-proof. + - **Limitations and Considerations** + - **Compatibility:** Encrypted connections may only be established between nodes that have BIP324 enabled. Nodes without encryption support will continue to communicate over unencrypted channels. + - **Status and Future Plans** + - **Experimental Phase:** This feature is currently in an experimental phase. Users are encouraged to test and provide feedback to ensure stability. + - **Future Development:** BIP324 will likely be enabled by default in the next minor version, v22.1.0. + +## Compatibility + +- **Dark Mode Appearance** + - Dash Core changes appearance when macOS "dark mode" is activated. + +- **glibc Requirement** + - The minimum required glibc to run Dash Core is now **2.31**. This means that **RHEL 8** and **Ubuntu 18.04 (Bionic)** are no longer supported. + +## New RPCs + +- **`quorum platformsign`** + - A new subcommand has been introduced, offering a structured way to perform platform-related quorum signing operations. + +- **`coinjoinsalt`** + - Allows manipulation of a CoinJoin salt stored in a wallet. + - `coinjoinsalt get`: Fetches an existing salt. + - `coinjoinsalt set`: Allows setting a custom salt. + - `coinjoinsalt generate`: Sets a random hash as the new salt. + +## Updated RPCs + +- **`getpeerinfo` Changes** + - `getpeerinfo` no longer returns the following fields: `addnode` and `whitelisted`, which were previously deprecated in v21. + - Instead of `addnode`, the `connection_type` field returns `manual`. + - Instead of `whitelisted`, the `permissions` field indicates if the peer has special privileges. + +- **`getblockfrompeer` Parameter Renaming** + - The named argument `block_hash` has been renamed to `blockhash` to align with the rest of the codebase. + - **Breaking Change:** If using named parameters, make sure to update them accordingly. + +- **`coinjoin stop` Error Handling** + - `coinjoin stop` will now return an error if there is no CoinJoin mixing session to stop. + +- **`getcoinjoininfo` Adjustments** + - `getcoinjoininfo` will no longer report `keys_left` and will not incorrectly warn about keypool depletion with descriptor wallets. + +- **`creditOutputs` Format Change** + - `creditOutputs` entries in various RPCs that output transactions as JSON are now shown as objects instead of strings. + +- **`quorum dkgsimerror` Argument Update** + - `quorum dkgsimerror` will no longer accept a decimal value between 0 and 1 for the `rate` argument. + - It will now expect an integer between **0** to **100**. + +- **Deprecated `protx *_hpmn` RPC Endpoints** + - Deprecated `protx *_hpmn` RPC entry points have been dropped in favor of `protx *_evo`. + - **Removed Endpoints:** + - `protx register_fund_hpmn` + - `protx register_hpmn` + - `protx register_prepare_hpmn` + - `protx update_service_hpmn` + +- **`governance` Descriptor Wallet Support** + - The `governance votemany` and `governance votealias` RPC commands now support descriptor-based wallets. + +- **`createwallet` Behavior for Descriptor Wallets** + - When creating descriptor wallets, `createwallet` now requires explicitly setting `load_on_startup`. + +## Command-line Options + +### Changes in Existing Command-line Options + +- **`-walletnotify=` Enhancements** + - Introduces new format options `%h` and `%b`. + - `%b`: Replaced by the hash of the block including the transaction (set to `'unconfirmed'` if the transaction is not included). + - `%h`: Replaced by the block height (**-1** if not included). + +- **`-maxuploadtarget` Format Update** + - Now allows human-readable byte units `[k|K|m|M|g|G|t|T]`. + - **Example:** `-maxuploadtarget=500g`. + - **Constraints:** No whitespace, `+`, `-`, or fractions allowed. + - **Default:** `M` if no suffix is provided. + +## Devnet Breaking Changes + +- **Hardfork Activation Changes** + - `BRR` (`realloc`), `DIP0020`, `DIP0024`, `V19`, `V20`, and `MN_R` hardforks are now activated at **block 2** instead of block **300** on devnets. + - **Implications:** + - Breaking change. + - Inability to sync on devnets created with earlier Dash Core versions and vice versa. + +- **LLMQ Type Enhancement** + - **LLMQ_50_60** is enabled for **Devnet** networks. + - Necessary for testing on a large Devnet. + +## Tests + +- **Regtest Network Softfork Activation Heights** + - For the `regtest` network, the activation heights of several softforks have been set to **block height 1**. + - **Customization:** Can be changed using the runtime setting `-testactivationheight=name@height`. + - *(dash#6214)* + +## Statistics + +### New Features + +- **Statsd Client Enhancements** + - Supports queueing and batching messages. + - **Benefits:** + - Reduces the number of packets. + - Lowers the rate at which messages are sent to the Statsd daemon. + +- **Batch Configuration Options** + - **Maximum Batch Size:** + - Adjustable using `-statsbatchsize` (in bytes). + - **Default:** **1KiB**. + - **Batch Send Frequency:** + - Adjustable using `-statsduration` (in milliseconds). + - **Default:** **1 second**. + - **Note:** `-statsduration` does not affect `-statsperiod`, which dictates how frequently some stats are *collected*. + +### Deprecations + +- **Deprecation of `-platform-user`** + - `-platform-user` is deprecated in favor of the whitelist feature. + - In releases **22.x** of Dash Core, it has been renamed to `-deprecated-platform-user`. + - It will be removed in version **23.x**. + +- **`-statsenabled` Deprecation** + - Now implied by the presence of `-statshost`. + - It will be removed in version **23.x**. + +- **`-statshostname` Replacement** + - Deprecated and replaced with `-statssuffix` for better representation of the argument's purpose. + - **Behavior:** Behave identically to each other. + - It will be removed in version **23.x**. + +- **`-statsns` Replacement** + - Deprecated and replaced with `-statsprefix` for better representation of the argument's purpose. + - **Behavior:** `-statsprefix` enforces the usage of a delimiter between the prefix and key. + - It will be removed in version **23.x**. + +## GUI Changes + +- **RPC Server Functionality Option** + - A new option has been added to the "Main" tab in "Options" that allows users to enable RPC server functionality. + +# v22.0.0 Change log See detailed [set of changes][set-of-changes]. @@ -49,18 +222,22 @@ See detailed [set of changes][set-of-changes]. Thanks to everyone who directly contributed to this release: +- AJ ONeal - Kittywhiskers Van Gogh - Konstantin Akimov +- Odysseas Gabrielides - PastaPastaPasta - UdjinM6 +- Vijaydasmp As well as everyone that submitted issues, reviewed pull requests and helped debug the release candidates. # Older releases -These release are considered obsolete. Old release notes can be found here: +These releases are considered obsolete. Old release notes can be found here: +- [v21.1.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-21.1.1.md) released Oct/22/2024 - [v21.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-21.1.0.md) released Aug/8/2024 - [v21.0.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-21.0.2.md) released Aug/1/2024 - [v21.0.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-21.0.0.md) released Jul/25/2024 @@ -113,4 +290,4 @@ These release are considered obsolete. Old release notes can be found here: - [v0.10.x](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.10.0.md) released Sep/25/2014 - [v0.9.x](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.9.0.md) released Mar/13/2014 -[set-of-changes]: https://github.com/dashpay/dash/compare/v21.1.0...dashpay:v21.1.1 +[set-of-changes]: https://github.com/dashpay/dash/compare/v21.1.1...dashpay:v22.0.0 diff --git a/doc/release-notes/dash/release-notes-21.1.1.md b/doc/release-notes/dash/release-notes-21.1.1.md new file mode 100644 index 0000000000000..06f26776e08a4 --- /dev/null +++ b/doc/release-notes/dash/release-notes-21.1.1.md @@ -0,0 +1,116 @@ +# Dash Core version v21.1.1 + +This is a new patch version release, bringing important bugfixes. + +This release is **optional** but recommended for all nodes. + +Please report bugs using the issue tracker at GitHub: + + + + +# Upgrading and downgrading + +## How to Upgrade + +If you are running an older version, shut it down. Wait until it has completely +shut down (which might take a few minutes for older versions), then run the +installer (on Windows) or just copy over /Applications/Dash-Qt (on Mac) or +dashd/dash-qt (on Linux). + +## Downgrade warning + +### Downgrade to a version < v21.0.0 + +Downgrading to a version older than v21.0.0 may not be supported due to changes +if you are using descriptor wallets. + +### Downgrade to a version < v19.2.0 + +Downgrading to a version older than v19.2.0 is not supported due to changes +in the evodb database. If you need to use an older version, you must either +reindex or re-sync the whole chain. + +# Notable changes + +- Core now categorizes asset unlock transactions as "Platform Transfers" on the Transactions tab in Dash-Qt and in the output of the `gettransaction` RPC (#6131) +- Persist Coinjoin Denoms options changes made via GUI over restarts (#6208) +- Fix incorrect payment predictions for evonodes in Dash-Qt and in RPC `masternode winners` (#6222) +- `creditOutputs` entries in various RPCs that output transaction JSON are shown as objects now instead of being shown as strings (#6229) +- Updated PGP key for builder 'pasta' to reflect new subkeys. You may need to reimport this key to validate signatures. (#6290) +- Build failures on Ubuntu 24.10 / clang 19.1.1 resolved (#6328) +- RPC errors in `masternode payments`, `getblock`, `getblockstats` related to Asset Unlock parsing have been fixed (#6336) + +# v21.1.0 Change log + +See detailed [set of changes][set-of-changes]. + +# Credits + +Thanks to everyone who directly contributed to this release: + +- Kittywhiskers Van Gogh +- Konstantin Akimov +- PastaPastaPasta +- UdjinM6 + +As well as everyone that submitted issues, reviewed pull requests and helped +debug the release candidates. + +# Older releases + +These release are considered obsolete. Old release notes can be found here: + +- [v21.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-21.1.0.md) released Aug/8/2024 +- [v21.0.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-21.0.2.md) released Aug/1/2024 +- [v21.0.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-21.0.0.md) released Jul/25/2024 +- [v20.1.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.1.1.md) released April/3/2024 +- [v20.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.1.0.md) released March/5/2024 +- [v20.0.4](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.0.4.md) released Jan/13/2024 +- [v20.0.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.0.3.md) released December/26/2023 +- [v20.0.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.0.2.md) released December/06/2023 +- [v20.0.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.0.1.md) released November/18/2023 +- [v20.0.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.0.0.md) released November/15/2023 +- [v19.3.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-19.3.0.md) released July/31/2023 +- [v19.2.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-19.2.0.md) released June/19/2023 +- [v19.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-19.1.0.md) released May/22/2023 +- [v19.0.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-19.0.0.md) released Apr/14/2023 +- [v18.2.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.2.2.md) released Mar/21/2023 +- [v18.2.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.2.1.md) released Jan/17/2023 +- [v18.2.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.2.0.md) released Jan/01/2023 +- [v18.1.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.1.1.md) released January/08/2023 +- [v18.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.1.0.md) released October/09/2022 +- [v18.0.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.0.2.md) released October/09/2022 +- [v18.0.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.0.1.md) released August/17/2022 +- [v0.17.0.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.17.0.3.md) released June/07/2021 +- [v0.17.0.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.17.0.2.md) released May/19/2021 +- [v0.16.1.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.16.1.1.md) released November/17/2020 +- [v0.16.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.16.1.0.md) released November/14/2020 +- [v0.16.0.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.16.0.1.md) released September/30/2020 +- [v0.15.0.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.15.0.0.md) released Febrary/18/2020 +- [v0.14.0.5](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.5.md) released December/08/2019 +- [v0.14.0.4](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.4.md) released November/22/2019 +- [v0.14.0.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.3.md) released August/15/2019 +- [v0.14.0.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.2.md) released July/4/2019 +- [v0.14.0.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.1.md) released May/31/2019 +- [v0.14.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.md) released May/22/2019 +- [v0.13.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.3.md) released Apr/04/2019 +- [v0.13.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.2.md) released Mar/15/2019 +- [v0.13.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.1.md) released Feb/9/2019 +- [v0.13.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.0.md) released Jan/14/2019 +- [v0.12.3.4](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.3.4.md) released Dec/14/2018 +- [v0.12.3.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.3.3.md) released Sep/19/2018 +- [v0.12.3.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.3.2.md) released Jul/09/2018 +- [v0.12.3.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.3.1.md) released Jul/03/2018 +- [v0.12.2.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.2.3.md) released Jan/12/2018 +- [v0.12.2.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.2.2.md) released Dec/17/2017 +- [v0.12.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.2.md) released Nov/08/2017 +- [v0.12.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.1.md) released Feb/06/2017 +- [v0.12.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.0.md) released Aug/15/2015 +- [v0.11.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.11.2.md) released Mar/04/2015 +- [v0.11.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.11.1.md) released Feb/10/2015 +- [v0.11.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.11.0.md) released Jan/15/2015 +- [v0.10.x](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.10.0.md) released Sep/25/2014 +- [v0.9.x](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.9.0.md) released Mar/13/2014 + +[set-of-changes]: https://github.com/dashpay/dash/compare/v21.1.0...dashpay:v21.1.1 From 1c7bfcbde18d6c8f5f8e64bc41466fd275e3e1ef Mon Sep 17 00:00:00 2001 From: pasta Date: Tue, 19 Nov 2024 21:08:20 -0600 Subject: [PATCH 24/24] chore: set release true --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index b5b4ea541a398..1e084dc0be00d 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ dnl Don't forget to push a corresponding tag when updating any of _CLIENT_VERSIO define(_CLIENT_VERSION_MAJOR, 22) define(_CLIENT_VERSION_MINOR, 0) define(_CLIENT_VERSION_BUILD, 0) -define(_CLIENT_VERSION_IS_RELEASE, false) +define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2024) define(_COPYRIGHT_HOLDERS,[The %s developers]) define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Dash Core]])